32K의 데이터를 소비하는 파티션 테이블이 있습니까?

32K의 데이터를 소비하는 파티션 테이블이 있습니까?

100MB 크기의 파일을 생성하고 losetup이를 /dev/loop0.

결과적으로 저는 fdisk빈 DOS 파티션 테이블을 생성하고 전체 디스크에 걸쳐 있는 새로운 파티션을 생성하는 데 사용합니다.

제가 보기에 이상하고 이해할 수 없는 점은 앞서 언급한 분할이 63번째 섹터에서 시작된다는 것입니다. 이는 파티션 테이블이 62개 섹터, 즉 31Kb를 차지한다는 것을 의미합니다.

파티션 항목과 관련된 모든 데이터는 드라이브의 첫 번째 섹터인 마스터 부트 레코드에 기록되므로 디스크의 처음 512바이트만 경계를 벗어나야 한다는 인상을 받았습니다.

드라이브를 조사해 보면 첫 번째 섹터 이후의 섹터가 Null로 완전히 채워지지 않았으므로 파티션 테이블과 관련하여 누락된 세부 정보가 분명히 있습니다.

fdisk 인쇄(표시 유형 = 섹터):

      Device Boot     Start        End     Blocks   Id  System
/dev/loop0p1   *         63     192779      96358+  83  Linux

답변1

MBR 파티션 형식은 30년이 지났으며 역사적 이유로 이상할 수 있습니다.

그 당시에는 컴퓨터가 하드 디스크의 구조를 알아야 했습니다. 하드 디스크의 데이터는 어떻게 구성되어 있나요? 3차원에서:실린더, 헤드 및 섹터.

트랙, 실린더, 섹터, 헤드

(다이어그램사자킴브로)

기하학은 헤드 수(1~255)에 대해 8비트, 트랙의 섹터 수(1~63)에 대해 6비트, 번호에 대해 10비트 등 해당 시간에 충분히 큰 최대값으로 저장되었습니다. 헤드당 트랙 수, 즉 하나의 섹터가 512바이트를 포함하는 실린더 수(1~1023)입니다. 요즘 컴퓨터는 디스크의 실제 구조를 알 필요가 없지만(그리고 그 숫자는 의미가 없습니다) 형식은 그대로 유지되며 MBR 파티셔닝을 사용하는 디스크의 크기는 CHS 형식으로 표시되지만 중요한 것은 세 숫자의 곱은 총 섹터 수와 같습니다.

파티션 시작의 시작 주소는 CHS 형식으로 표현되며 많은 이전 운영 체제는 서로 다른 트랙에 걸쳐 있는 파티션을 지원하지 않았습니다. 즉, 파티션은 실린더 경계에 정렬되어야 했습니다. 이는 첫 번째 파티션에 대해 63개 섹터의 배수를 의미합니다.

파티션 콘텐츠에 사용되지 않는 31kB 공간이 있습니다. 부트로더에 사용할 수 있습니다.

현대GPT 파티션 형식1TB 이상의 디스크가 있는 최신 PC의 표준인 는 1MB 경계에 파티션을 정렬하는 것을 좋아하므로 첫 번째 파티션이 시작되기 전에 약 1023kB의 여유 공간이 있습니다. 다시 말하지만, 이는 부트로더에서 사용될 수 있습니다. 최신 운영 체제는 MBR 파티션을 1MB 경계에도 정렬하여 CHS 호환성을 떨어뜨리고 파티션이 4kB 섹터(= 512kB의 8개 기존 섹터)가 있는 드라이브의 섹터 경계에 있도록 합니다. 섹터 경계에 파티션을 정렬하면(예: 디스크에서 사용하는 실제 섹터 크기, 즉 기본 전송 크기) 성능에 도움이 됩니다.

관련 정보