dd を使用してパーティション情報をコピーするにはどうすればよいでしょうか?

dd を使用してパーティション情報をコピーするにはどうすればよいでしょうか?

私はパーティション情報を回復しようとしていますテストディスク試しに、元のハードディスクから別の物理ドライブにすべてのデータをコピーしました。dd次のように:

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

元のドライブで TestDisk を実行すると、次のように表示されます。

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.

何も変更せずに続行すると、「クイック分析」の出力は次のようになります。

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

テストドライブで TestDisk の「クイック分析」を実行すると、次のように表示されます。

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]

ディスクは同じブランドではありません。テスト ドライブは SSD です。パーティション情報がテスト ドライブにコピーされていないようです。なぜでしょうか。


の出力sfディスク両方のディスクは同じです。ここでは/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

出力は次のようになります別れたディスクモデルは異なりますが、その他のデータは同じです。

$ 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

S-ATA ディスクのジオメトリ (カーネルから見たもの) ...

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

...そしてSSDディスクの場合

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

答え1

最終的に、2 番目のドライブで TestDisk の出力を再現することができました。ジオメトリ設定を元のドライブの設定に変更しただけです。次の操作を実行しました。

元のドライブのジオメトリ設定を検索します。

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

TestDisk を開き、「テスト ディスク」を選択して、メニューで上記の設定を適用しますGeometry。心配しないでください。設定は永続的ではありません。

次に選択するQuick analyzeと、元のドライブと同じ結果が表示されます。今回は、元のドライブと同様に、必要な Linux パーティションが認識されました。今回は、「テスト ディスク」のみが適用されたため、パーティション テーブルを安全に書き込むことができました。


さらに役立つ参考資料:暗号化されたホームパーティションをマウントするにはどうすればいいですか?

関連情報