如何用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。好像分割區資訊沒有複製到測試磁碟機上。為什麼?


的輸出軟碟兩張光碟都是一樣的。這裡是為了/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

最後,我能夠在第二個驅動器上重現 TestDisk 的輸出。我只是將幾何設定更改為原始驅動器的幾何設定。我做了以下事情:

尋找原始驅動器的幾何設定:

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

開啟TestDisk,選擇「測試光碟」並套用Geometry選單中的上述設定。不要害怕 - 該設定不是永久性的。

然後選擇Quick analyze,結果應該與原始磁碟機顯示的結果相同。這次它像原始磁碟機一樣識別了所需的 Linux 分割區。這次我可以省力地寫入分區表,因為它只套用了「測試盤」。


進一步閱讀,非常有幫助:如何掛載加密的主分割區?

相關內容