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

마침내 두 번째 드라이브에서 TestDisk의 출력을 재현할 수 있었습니다. 저는 단순히 기하학적 설정을 원래 드라이브의 설정으로 변경했습니다. 나는 다음을 수행했습니다.

원래 드라이브의 형상 설정을 조회합니다.

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

TestDisk를 열고 "테스트 디스크"를 선택한 다음 메뉴에서 위 설정을 적용합니다 Geometry. 두려워하지 마십시오. 설정은 영구적이지 않습니다.

그런 다음 선택 Quick analyze하면 결과가 원래 드라이브에서와 동일하게 표시됩니다. 이번에는 원래 드라이브와 같이 원하는 Linux 파티션을 인식했습니다. 이번에는 "테스트 디스크"만 적용했기 때문에 파티션 테이블을 아껴 쓸 수 있었습니다.


더 읽어보면 매우 도움이 됩니다:암호화된 홈 파티션을 마운트하는 방법은 무엇입니까?

관련 정보