J'ai couru fdisk sur un mauvais lecteur. Comment puis-je récupérer

J'ai couru fdisk sur le mauvais HD. J'ai essentiellement effacé la table de partition, pressé w et a quitté fdisk et seulement alors réalisé que c'était mon disque dur principal …

J'ai eu ce message:

AVERTISSEMENT: La relecture de la table de partition a échoué avec l'erreur 16: périphérique ou ressource occupé. Le kernel utilise toujours l'ancienne table. La nouvelle table sera utilisée lors du prochain redémarrage ou après l'exécution de partprobe (8) ou de kpartx (8) Synchronisation des disques.

J'ai regardé à travers / sys / class / block / sdb / sdb * les files de démarrage et de taille – je savais que c'était le kernel conservé les vieux décalages de partition et les tailles jusqu'au redémarrage … Et voici ma reconstruction de table.

name | startsector | size, sectors | type? ------------------------------------------------------------ sdb1 | 2048 | 2048 | sdb2 | 195510270 | 2 | sdb3 | 4096 | 195504128 | / sdb5 | 195510272 | 761716736 | /home sdb6 | 957229056 | 19542016 | swap partition 

Voici test pour quel type de partition il y avait:

 cr1tter@cr1tterhost:~$ sudo file -s /dev/sdb{1,2,3,5,6} /dev/sdb1: data /dev/sdb2: x86 boot sector; partition 1: ID=0x83, starthead 254, startsector 2, 761716736 sectors; partition 2: ID=0x5, starthead 254, startsector 761716738, 19544064 sectors, code offset 0x97 /dev/sdb3: Linux rev 1.0 ext4 filesystem data, UUID=b6d939b9-c197-4513-a1fe-9c614574afb0 (needs journal recovery) (extents) (large files) (huge files) /dev/sdb5: Linux rev 1.0 ext4 filesystem data, UUID=96f97705-f292-49db-b31d-249fab87d3d7 (needs journal recovery) (extents) (large files) (huge files) /dev/sdb6: Linux/i386 swap file (new style), version 1 (4K pages), size 2442751 pages, no label, UUID=a5744b72-248c-4ceb-8009-db6351cdc231 

Je suppose que je suis confus ce sdb1 et sdb2 sont? Honnêtement, je ne peux pas me souvenir de ce qu'ils sont …. Quand j'installais os – je devais spécifier des paths, comme dans / home ou path racine: / – fdisk ne semble pas permettre de faire cela …

PS> RÉSOLU. Merci Jim Paris! Voici la transcription de ce que j'ai fait. J'ai déjà redémarré et le système fonctionne aussi bien ..!

 sudo fdisk /dev/sdb Command (m for help): p Disk /dev/sdb: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000cd649 Device Boot Start End Blocks Id System Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-976773167, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-976773167, default 976773167): +1M Command (m for help): p Disk /dev/sdb: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000cd649 Device Boot Start End Blocks Id System /dev/sdb1 2048 4095 1024 83 Linux Command (m for help): n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): p Partition number (1-4, default 2): 3 First sector (4096-976773167, default 4096): Using default value 4096 Last sector, +sectors or +size{K,M,G} (4096-976773167, default 976773167): +95461M Command (m for help): t Partition number (1-4): 3 Hex code (type L to list codes): 83 Command (m for help): n Partition type: p primary (2 primary, 0 extended, 2 free) e extended Select (default p): e Partition number (1-4, default 2): Using default value 2 First sector (195508224-976773167, default 195508224): Using default value 195508224 Last sector, +sectors or +size{K,M,G} (195508224-976773167, default 976773167): Using default value 976773167 Command (m for help): n Partition type: p primary (2 primary, 1 extended, 1 free) l logical (numbered from 5) Select (default p): l Adding logical partition 5 First sector (195510272-976773167, default 195510272): Using default value 195510272 Last sector, +sectors or +size{K,M,G} (195510272-976773167, default 976773167): +371932M Command (m for help): t Partition number (1-5): 5 Hex code (type L to list codes): 83 Command (m for help): n Partition type: p primary (2 primary, 1 extended, 1 free) l logical (numbered from 5) Select (default p): l Adding logical partition 6 First sector (957229056-976773167, default 957229056): Using default value 957229056 Last sector, +sectors or +size{K,M,G} (957229056-976773167, default 976773167): +9542M Command (m for help): t Partition number (1-6): 6 Hex code (type L to list codes): L 0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris 1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT- 2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT- 3 XENIX usr 3c PartitionMagic 84 OS/2 hidden C: c6 DRDOS/sec (FAT- 4 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx 5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data 6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / . 7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility 8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt 9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi eb BeOS fs e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT f W95 Ext'd (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/ 10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC b 11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor 12 Compaq diagnost 5c Priam Edisk a9 NetBSD f4 SpeedStor 14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f2 DOS secondary 16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS 17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE 18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto 1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep 1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT 1e Hidden W95 FAT1 80 Old Minix Hex code (type L to list codes): 82 Changed system type of partition 6 to 82 (Linux swap / Solaris) Command (m for help): a Partition number (1-6): 1 Command (m for help): p Disk /dev/sdb: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000cd649 Device Boot Start End Blocks Id System /dev/sdb1 * 2048 4095 1024 83 Linux /dev/sdb2 195508224 976773167 390632472 5 Extended /dev/sdb3 4096 195508223 97752064 83 Linux /dev/sdb5 195510272 957227007 380858368 83 Linux /dev/sdb6 957229056 976771071 9771008 82 Linux swap / Solaris Partition table ensortinges are not in disk order Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks. 

fdisk ne fait que des partitions; c'est à d'autres choses comme votre command line du kernel et le contenu de /etc/fstab de décider comment les utiliser. Lorsque vous avez dit à l'installeur que /dev/sdb5 devait être utilisé comme /home , il a fait un tas de choses pour que cela se produise (définir la table de partition, formater la partition, ajuster fstab , etc).

Pour répondre à votre question spécifique:

  • On dirait que sdb1 est votre partition de démarrage, utilisée pour maintenir le kernel dans un location où grub peut utiliser les appels du BIOS pour le récupérer. Probablement ext2 , mais vous pouvez utiliser le file -s /dev/sdb1 pour essayer de comprendre le format.

  • sdb2 ressemble à une partition étendue. Les tables de partition de type MS-DOS normales ne peuvent avoir que 4 partitions primaires numérotées de 1 à 4. Si vous en créez une avec le type 0x05, vous pouvez créer d'autres partitions logiques avec des numéros plus élevés.

  • sdb3 ressemble à votre partition racine.

C'est un peu bizarre que votre sdb3 et sdb2 soient hors service, mais c'est possible. Ma conjecture est que vous devez faire quelque chose comme ça dans fdisk:

  • nouvelle table de partition
  • nouvelle partition primaire 1, début 2048, taille +2047
  • changez l'ID de la partition 1 à 0x83 (Linux)
  • nouvelle partition étendue 2, début 195504128, taille (maximum)
  • nouvelle partition primaire 3, début 4096, taille +195504127
  • changer l'ID de la partition 3 à 0x83 (Linux)
  • nouvelle partition logique 5, début 195510272, taille +761716735
  • changer l'ID de la partition 5 à 0x83 (Linux)
  • nouvelle partition logique 6, début 957229056, taille +19542015
  • changez l'ID de la partition 6 à 0x82 (échange Linux)

Bien que je ne l'aie pas encore utilisé, consultez testdisk – http://www.cgsecurity.org/wiki/TestDisk

J'ai utilisé photorec qui fait partie des mêmes outils de récupération de files.