Como copiar informações de particionamento com dd?

Como copiar informações de particionamento com dd?

Estou tentando recuperar informações de particionamento usandoTestDisk. Para testar, copiei todos os dados do disco rígido original para outra unidade física usandodddo seguinte modo:

$ dd if=/dev/sda of=/dev/sdb bs=4096 conv=notrunc,noerror,sync

A execução do TestDisk na unidade original aparece assim:

Disc /dev/sda - 500 GB / 465 GiB - CHS 969021 16 63

Warning: the current number of heads per cylinder is 16
but the correct value may be 255
You can use the Geometry menu to change this value.
It's something to try if
- some partitions are not found by TestDisk
- or the partition table can not be written because partitions overlaps.

E depois de continuar sem alterar nada, a "Análise rápida" sai:

Disk /dev/sda - 500 GB / 465 GiB - CHS 969021 16 63
     Partition             Start        End    Size in sectors
 * HPFS - NTFS               2   0 33    205   3 19     204800 [System-reserviert]
 P HPFS - NTFS             205   3 20 203174   9 41  204593152 [W764]
 P Linux                203176  10 11 305359   3 51  103000064
 L Linux                313112   6  7 373707   2 50   61079552
   HPFS - NTFS          373707   2 51 969022  15 47  600078336 [DATA]
   HPFS - NTFS          373707   2 58 969020  15 63  600076329

A execução do TestDisk "Análise rápida" no test drive aparece assim:

Disk /dev/sdb - 500 GB / 465 GiB - CHS 969021 255 63
     Partition             Start        End    Size in sectors
   HPFS - NTFS               0  32 33     12 223 19     204800 [System-reserviert]
   HPFS - NTFS              12 223 20  12748  53 41  204593152 [W764]
   Linux                 12748  86 11  19159 202 51  103000064
   Linux                 19646  68  7  23448  74 50   61079552
   HPFS - NTFS           23448  74 51  60801 112 47  600078336 [DATA]

Os discos não são da mesma marca. O test drive é um SSD. Parece que as informações de particionamento não foram copiadas para o test drive. Por que?


A saída dedisco sfé o mesmo para ambos os discos. Aqui para /dev/sda:

$ sudo sfdisk -d /dev/sda
# partition table of /dev/sda
unit: sectors

/dev/sda1 : start=376696782, size=600076386, Id= 7, bootable
/dev/sda2 : start=        0, size=        0, Id= 0, bootable
/dev/sda3 : start=        0, size=        0, Id= 0, bootable
/dev/sda4 : start=        0, size=        0, Id= 0, bootable

Aqui está a saída dese separaram. O modelo do disco é diferente - os outros dados são os mesmos:

$ sudo parted /dev/sda print
Model: Disk Name (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start  End    Size    Type     File systems  Flags
 1      193GB  500GB  307GB  primary  ntfs          boot

A geometria (conforme vista pelo kernel) do disco S-ATA ...

$ sudo sfdisk -g /dev/sda
/dev/sda: 969021 cyclinders, 16 heads, 63 sectors/track

... e para o disco SSD

$ sudo sfdisk -g /dev/sdb
/dev/sdb: 60801 cyclinders, 255 heads, 63 sectors/track

Responder1

Finalmente, consegui reproduzir a saída do TestDisk na segunda unidade. Simplesmente alterei as configurações de geometria para as da unidade original. Eu fiz o seguinte:

Pesquise as configurações de geometria da unidade original:

$ sudo sfdisk -g /dev/sda
/dev/sda: 969021 cyclinders, 16 heads, 63 sectors/track

Abra o TestDisk, selecione o “disco de teste” e aplique as configurações acima no Geometrymenu. Não tenha medo - as configurações não são permanentes.

Em seguida, escolha Quick analyzee o resultado deverá ser igual ao da unidade original. Desta vez ele reconheceu as partições Linux desejadas como a unidade original. Desta vez eu poderia escrever a tabela de partições com segurança, pois ela aplicava apenas o "disco de teste".


Leitura adicional, muito útil:Como montar uma partição inicial criptografada?

informação relacionada