파티션 테이블은 32K 데이터를 소비합니까?

파티션 테이블은 32K 데이터를 소비합니까?

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

따라서 저는 fdisk빈 DOS 파티션 테이블을 만들고 전체 디스크에 걸쳐 있는 새 파티션을 만들곤 했습니다.

제가 보기에 이상하고 이해하기 어려운 점은 위의 파티션이 섹터 63에서 시작한다는 것입니다. 이는 파티션 테이블이 62개의 섹터, 즉 31Kb를 차지한다는 의미입니다.

내 생각에는 파티션 항목에 대한 모든 데이터가 마스터 부트 레코드(드라이브의 첫 번째 섹터)에 기록되므로 디스크의 처음 512바이트만 범위를 벗어나야 한다는 것입니다.

드라이브를 확인해보면 첫 번째 섹터 이후의 섹터는 빈 공간으로 완전히 채워지지 않았으므로 분명히 파티션 테이블에 대한 일부 세부 정보가 누락되었습니다.

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비트입니다. 헤드당 트랙 수, 즉 실린더 수(1-1023)이며 한 섹터에는 512바이트가 포함됩니다. 요즘 컴퓨터는 디스크의 실제 구조를 알 필요가 없지만(숫자는 의미가 없습니다) 형식은 그대로 유지되며 MBR로 파티션된 디스크는 CHS 형식으로 표시되는 크기를 가지지만 중요한 것은 세 숫자의 곱은 총 섹터 수와 같습니다.

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

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

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

관련 정보