다양한 크기의 디스크 복사본에 대한 MBR 및 부트로더 설명

다양한 크기의 디스크 복사본에 대한 MBR 및 부트로더 설명

나는 희망클론500GB MBR 소스 디스크에서 250GB MBR 대상 디스크로수동대상 디스크에 각각의 해당 파티션을 생성하고 복구만 수행데이터각 콘텐츠. 이렇게 하면 100GB 파티션이 5%만 채워진 경우 dd.I를 사용하면 파티션 레이블을 포함하여 각 파티션의 내용을 올바르게 복원할 수 있다고 생각합니다. 변경되는 유일한 것은 파티션 크기이지만 그것은 중요하지 않습니다.

내 이해MBR 디스크그건처음 446바이트~이다부트 코드 영역. 다음 64바이트는 파티션 테이블로, 친숙한 형식을 구성합니다.512바이트 MBR. 하지만 저는 대상 디스크에서 이 64바이트(파티션 테이블)를 수동으로 처리했습니다.

  • 부트 코드 영역(디스크 첫 번째 섹터의 처음 446바이트)은 어떻게 처리하나요?
  • 그렇게 간단합니까 dd if=/dev/sdb of=/dev/sdc bs=446 count=1?
  • ~ 할 것이다부팅 코드모든 MBR 디스크에서 동일합니까, 아니면 대상 디스크에서 작동하도록 수정해야 합니까? 그렇다면 어떻게 수정하나요?
  • 부팅 코드는 무엇을 합니까?

일부 타사 무료 소프트웨어에 의존하는 대신 다양한 크기의 MBR 디스크를 수동으로 복제하는 방법을 알고 싶습니다. dd if=/dev/sdb of=/dev/sdc bs=32M동일한 크기의 디스크 간 작업을 성공적으로 수행했으며 대상 디스크가 작동합니다. 모든 것은 디스크 레이블을 통해 마운트됩니다. 저는 Fedora 18(Spherical Cow)을 다루고 있습니다. grub2와 모든 파티션은 ext3이라고 생각합니다.

답변1

내 이해MBR 디스크그건처음 446바이트~이다부트 코드 영역.다음 64바이트는 파티션 테이블로, 친숙한 형식을 구성합니다.512바이트 MBR.

네, 거의요. 446 + 64 = 510바이트, 0x55aaMBR 스타일 디스크의 오프셋 510 인 디스크 서명의 2바이트를 잊어버렸습니다 .

그렇게 간단합니까 dd if=/dev/sdb of=/dev/sdc bs=446 count=1?

예. 이 작업을 수행하기 전에 전체 512바이트를 다른 디스크의 파일에 백업하십시오. 이렇게 하면 많은 문제를 줄일 수 있습니다.

부팅 코드는 각 MBR 디스크에서 동일합니까, 아니면 대상 디스크에서 작동하려면 수정해야 합니까? 그렇다면 어떻게 수정하나요?

운영 체제와 부트로더(Grub, syslinux, Windows...)에 따라 다르므로 코드가 다를 수 있습니다. 귀하의 경우 디스크 복제는 중요하지 않습니다. 단지 다른 파티션 오프셋과 크기를 사용하면 됩니다.

부팅 코드는 무엇을 합니까?

전체 부팅 코드가 MBR에 맞지 않기 때문에 활성 파티션을 결정하고 활성 파티션의 부팅 섹터에서 2단계 부트 로더를 로드하는 데 자주 사용됩니다.

적절한 사례: 오래된 노트북에서 Win10, Debian, OSX를 세 번 부팅했습니다. 첫 번째 파티션을 활성화하면 Windows가 부팅되고, 두 번째 파티션이 활성화되면 Grub(MBR이 아닌 해당 파티션의 부팅 섹터에 설치됨)이 로드되고, 세 번째 파티션이 활성화되면 hackintosh 부트로더가 로드됩니다. 부팅 코드가 원래 Windows 코드인지, 아니면 해킨토시 부트 로더에서 나온 것인지 확실하지 않습니다. 그들은 모두 일했습니다.

노트:파티션을 대상 디스크에 복사하는 방법을 모르겠지만 원본 디스크의 파티션 크기를 대상 크기(gparted)로 조정하는 것이 좋습니다.

그 다음에
ㅏ)dd
대상 디스크에 동일한 크기의 파티션 테이블을 생성하고 파티션을 사용하거나 복사합니다.
비)gparted를 사용하여 대상 디스크에 깨끗한 MBR 파티션 테이블을 생성하고 파티션을 복사합니다.

완료되면 부팅 코드를 대상 디스크에 복사합니다. 이렇게 하면 모든 데이터가 복사되고 파일 시스템이 그대로 유지됩니다. 완료되면 소스 디스크의 파티션 크기를 다시 원래 크기로 조정할 수 있습니다.

관련된:

관련 정보