MBR(마스터 부트 레코드) 형식에 대한 완전한 RFC 문서가 있습니까? 설명이 더 좋습니까?

MBR(마스터 부트 레코드) 형식에 대한 완전한 RFC 문서가 있습니까? 설명이 더 좋습니까?

나는 시스템의 파티션을 열거하는 코드를 디자인하고 있습니다. 수많은 문서를 읽어도 알고리즘에 대한 완전하고 명확한 제약 조건 목록을 고안할 수 없으며 제약 조건이 존재하는 이유를 찾을 수 없습니다.

  • 루트 MBR에는 4개의 항목이 있으므로 MBR에는 4개의 기본 파티션이 포함될 수 있습니다.
  • 이 루트 MBR 목록에는 확장된 파티션이 하나만 있을 수 있으며, 이 파티션은 논리 볼륨이 있는 보조 MBR로 연결됩니다.

질문:

  1. DOS 6.22 FDISK에서 기본 파티션 3개 생성이 허용되지 않고 하나만 생성되는 이유는 무엇입니까?
  2. 확장 파티션 체인의 보조 MBR에는 논리 볼륨이 하나만 있어야 하고 3개가 있을 수 있는 이유는 무엇입니까(확장된 파티션 목록에 2개의 추가 링크 저장)?
  3. 확장 파티션이 체인 끝까지 논리 드라이브에 대해 검사되면 열거가 루트 MBR로 돌아가고 확장 파티션 항목 다음의 다음 항목부터 계속됩니까? 왜 안 돼?
  4. 제약 조건을 따르지 않는 MBR 항목을 발견하면 DOS 또는 Windows OS는 어떻게 됩니까(위의 질문 1~3 참조)? 즉, 운영 체제가 해당 파티션/논리 드라이브를 열거하는 프로세스에 대한 설명이 있습니까?

답변1

마스터 부트 레코드는 IBM PC 호환 시스템에서 사용하기 위한 일종의 부트 섹터입니다. MBR의 원본 버전은 IBM의 David Litton이 1982년 6월에 작성했으며 1983년 PC-DOS 2.0과 함께 공개적으로 소개되었습니다. 그러나 PC-DOS는 모든 기능이 아닌 가장 중요한 기능만 구현했습니다.

(내가 알고 있는) "사양"에 가장 가까운 것은https://thestarman.pcministry.com/asm/mbr/STDMBR.htm

MBR 구조는 다음과 같습니다.

주소 16진수(12월) 크기 기능
0x0000 (0) 440 부트 로더
0x01B8 (440) 4 디스크 서명(Windows NT 제품군부터)
0x01BC 및 0x01BC(444 및 445) 2 0(0x0000)
0x01BE (446) 64 파티션 테이블
0x01FE 및 0x01FF(510 및 511) 2 서명
512

답변:

  1. DOS 6.22 FDISK에서 기본 파티션 3개 생성이 허용되지 않고 하나만 생성되는 이유는 무엇입니까?

파티션된 미디어에 대한 지원은 1983년 3월 IBM PC DOS 2.0에 도입되었지만 당시에는 하나의 기본 파티션만 지원했습니다. 이것은 결코 변하지 않았습니다. DOS 자체절대둘 이상의 기본 파티션을 사용했습니다. 결과적으로 FDISK하나 이상의 기본 파티션을 생성할 수 없습니다.

  1. 확장 파티션 체인의 보조 MBR에는 논리 볼륨이 하나만 있어야 하고 3개가 있을 수 있는 이유는 무엇입니까(확장된 파티션 목록에 2개의 추가 링크 저장)?

"보조 MBR"이 정확히 무엇을 의미하는지 완전히 확신하지 못하므로 결국 다음 내용이 귀하의 질문에 대답하지 않습니다. (조심히 다루어주세요!)

확장 파티션에 대한 지원은 DOS 3.2에 추가되었습니다. 확장 파티션 내부에 중첩된 논리 드라이브는 DOS 3.30과 함께 제공되었습니다.

각 확장 파티션 테이블은 정확히 하나의 논리 파티션을 정의하고 필요한 경우 다음 확장 파티션 테이블을 가리킵니다. 즉, 확장 파티션 테이블은 연결 목록 원칙에 따라 작동합니다. 시작 섹터는 현재 파티션 테이블의 위치를 ​​기준으로 지정됩니다. 두 번째 항목은 다른 확장 파티션 테이블에 대한 연결을 포함할 수 있으며 항상 유형 5를 갖습니다. 이 항목의 시작 섹터에서는 항상 첫 번째 확장 파티션의 섹터를 기준으로 참조됩니다. 정의상 체인으로 연결되어 있기 때문에 확장 파티션을 모두 참조할 수는 없으므로 추가 링크 2개를 저장할 수 없습니다.

  1. 확장 파티션이 체인 끝까지 논리 드라이브에 대해 검사되면 열거가 루트 MBR로 돌아가고 확장 파티션 항목 다음의 다음 항목부터 계속됩니까? 왜 안 돼?

아니요. "다음 항목"이라는 것이 없기 때문입니다.

  1. 제약 조건을 따르지 않는 MBR 항목을 발견하면 DOS 또는 Windows OS는 어떻게 됩니까(위의 질문 1~3 참조)? 즉, 운영 체제가 해당 파티션/논리 드라이브를 열거하는 프로세스에 대한 설명이 있습니까?

파티션을 인식할 수 없으면 사용되지 않습니다. 첫 번째 기본 파티션을 찾을 수 없으면 DOS/Windows를 부팅할 수 없습니다.

메모: 이전 버전의 Windows는 MS-DOS에서 결정된 드라이브 문자에 의존했지만 Windows 2000에서는 이러한 매핑이 HKLM\SYSTEM\MountedDevices와 같은 레지스트리 키에 저장됩니다. 특정 시스템 집합의 경우 Windows NT 부트 로더(NTLDR)의 일부인 boot.ini 파일에도 디스크 서명이 사용됩니다. Windows는 새 디스크가 초기화될 때 디스크 서명을 할당합니다.

관련 정보