dd를 사용하여 MBR을 복사하면 파티션 테이블 크기가 두 배로 늘어납니다.

dd를 사용하여 MBR을 복사하면 파티션 테이블 크기가 두 배로 늘어납니다.

저는 500GB 내장 하드 드라이브와 500GB 외장 USB 하드 드라이브를 갖춘 노트북을 가지고 있습니다.

Windows 8.1 시스템에서 Linux Live CD로 부팅하고 있습니다.

내 목표는 MBR, 파티션 1(350mb) 및 파티션 2(40GB)를 복제하는 것입니다.

복제에 사용할 명령/dev/sda마스터 부트 레코드는 다음과 같습니다.

dd if=/dev/sda of=/dev/sdb bs=512 count=1

우리의 소스는 다음과 같습니다/dev/sda통과한 것 같아fdisk -l

Disk /dev/sda: 465.9 GiB, 500277790720 bytes, 977105060 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xb77d45d7

Device    Boot     Start       End   Blocks  Id System
/dev/sda1 *         2048    718847   358400   7 HPFS/NTFS/exFAT
/dev/sda2         718848  81922047 40601600   7 HPFS/NTFS/exFAT

대상 드라이브의 모습은 다음과 같습니다.

ddcmd를 실행하기 전에

Disk /dev/sdb: 465.8 GiB, 500107862016 bytes, 488386584 sectors
Units: sectors of 1 * 1024 = 1024 bytes
Sector size (logical/physical): 1024 bytes / 1024 bytes
I/O size (minimum/optimal): 1024 bytes / 1024 bytes
Disklabel type: dos
Disk identifier: 0xb77d45d7

ddcmd 실행 후

Disk /dev/sdb: 465.8 GiB, 500107862016 bytes, 488386584 sectors
Units: sectors of 1 * 1024 = 1024 bytes
Sector size (logical/physical): 1024 bytes / 1024 bytes
I/O size (minimum/optimal): 1024 bytes / 1024 bytes
Disklabel type: dos
Disk identifier: 0xb77d45d7

Device    Boot     Start       End   Blocks  Id System
/dev/sdb1 *         2048    718847   716800   7 HPFS/NTFS/exFAT
/dev/sdb2         718848  81922047 81203200   7 HPFS/NTFS/exFAT

cmd를 실행한 후 두 파티션의 대상 블록 크기가 소스 블록 크기 파티션의 두 배임을 확인할 수 있습니다 dd.

이 문제의 원인은 무엇입니까?

그 질문을 제쳐두고, 계속해서 dd하드 드라이브를 복제 해 보았습니다.

dd if=/dev/sda1 of=/dev/sdb1 bs=4096
dd if=/dev/sda2 of=/dev/sdb2 bs=4096

그러나 부팅에 실패합니다. 데이터 크기가 두 배로 늘어나서 다른 바람직하지 않은 영향이 있는지 궁금합니다.

BIOS는 외장 하드 드라이브를 내장 하드 드라이브와 이름이 같은 부팅 옵션으로 표시하지만 부팅 디스크로 선택한 후에는 작동이 멈춥니다(오류가 반환되지 않음)

답변1

dd명령은 요청된 대로 정확히 512바이트를 복사합니다.

혼동의 주요 원인은 /dev/sda논리 섹터 크기가 512바이트이고 /dev/sdb섹터 크기가 1024바이트라는 것입니다.

그렇지 않으면 파티션이 동일하게 보입니다.

MBR또한 파티션의 파일이 사용하는 크기에는 영향을 주지 않습니다 . 부팅되지 않는다는 사실은 MBR해당 드라이브에 적합하지 않은 구성 을 반영한 것일 수 있습니다 .

부팅 가능하게 만들려면 설치하고 필요한 마운트 지점(예 /dev/: /proc, , /sys)을 마운트한 다음 chroot를 사용하여 부트로더를 실행합니다.

업데이트: @sourcejedi가 지적했듯이 파티션 테이블이 /dev/sdb. 이는 분명히 MBR파티션 정보의 복사본을 보관한 결과입니다.

파일 시스템에서 아무것도 변경하지 않았고 원래 구성(다른 드라이브와 일치하는 것으로 의심됨)을 알고 있는 경우 파티션을 삭제하고 다시 생성하면 문제가 해결됩니다.

관련 정보