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.

아무 것도 변경하지 않고 계속하면 Quick Analysis는 다음을 출력합니다.

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 파티션을 인식했습니다. 이번에는 "테스트 디스크"만 적용했기 때문에 더 적은 노력으로 파티션 테이블에 쓸 수 있었습니다.


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

관련 정보