왜 파티션이 63이 아닌 2048 섹터에서 시작합니까?


54

두 개의 드라이브가 동일하게 파티션되었고 각각에 두 개의 RAID 파티션을 실행했습니다.

하나는 죽었고 같은 모델에 대해 보증 기간 동안 교체했습니다.

파티션을 분할하는 동안 첫 번째 파티션은 이전의 63 개 대신 섹터 2048에서만 시작할 수 있습니다. 드라이브는 이전 및 나머지와 다른 형상을 갖습니다. (더 적은 헤드 / 더 많은 실린더)

오래된 드라이브 :

$ sudo fdisk -c -u -l /dev/sdb 

Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000aa189

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *          63   174080339    87040138+  83  Linux
/dev/sdb2       174080340   182482334     4200997+  82  Linux swap / Solaris
/dev/sdb3       182482335  3907024064  1862270865   fd  Linux raid autodetect

보증에서받은 재생산 드라이브 :

$ sudo fdisk -c -u -l /dev/sda

Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
81 heads, 63 sectors/track, 765633 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000d0b5d

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048  ...

왜 그런 겁니까?


1
출력은 이것이 Advanced Format 4K 드라이브임을 나타내지 않습니다 Sector size (logical/physical): 512 bytes / 512 bytes.
bwDraco

1
이것이 왜 하향 조정 되었습니까?
bwDraco

1
나는 downvote에 동의하지 않으며, 또한 트랙 정렬 오해를 알지 못했고 JdeBP의 정보는 유용하고 유효한 질문과 관련이 있습니다.
Garrett


최신 디스크 드라이브 를 사용 하는 경우 기본적으로 시작 섹터로 사용하는 GPT가 권장2048 됩니다. 이전 디스크는 이전 유틸리티를 사용하고 비 GPT 파티션 테이블 형식을 사용하여 포맷되었을 수 있습니다. 최신 "Advanced Format 4K"디스크를 파티션하려면 GPT fdisk유틸리티를 사용하십시오 . RAID의 경우 fd00 Linux RAID파티션을 올바르게 입력 하고 레이블을 지정하십시오.
TrinitronX

답변:


44

이전 디스크가 Linux와 같은 이전 유틸리티로 분할 되었기 때문에 fdisk보고 된 완전히 가짜 디스크 구조를 사용하여 트랙 정렬을 쓸모 없게 구현했으며 새 디스크가 다음과 같은 새로운 유틸리티로 분할되었거나 분할되고 있습니다. default) 대신 1MiB 경계에 정렬됩니다.

추가 자료


7
즉, LBA 섹터 번호 63은 CHS 형식의 실린더 0, 헤드 1, 섹터 1에 해당 하며 MBR 형식에서 사용할 수있는 첫 번째 섹터입니다. 그러나 숫자 63은 8로 나눌 수 없으므로 4K 드라이브에 문제가 발생하므로 일부 최신 도구는 2048에서 첫 번째 파티션을 시작하여 향후 GPT 호환성을 제공합니다.
billc.cn

8
의견을 표시하는 방법, 특히 다른 사람이 입에 명백한 실수를하려고하는 의견에 대해 열망하는 경우가 있습니다. 그 "다른 단어들"은 틀리기 때문에 내가 쓴 것이 아닙니다 . MBR 파티션 테이블이있는 기본 파티션에 여러 사람이 사용할 수있는 첫 번째 섹터는 LB # 2이거나 IBM의 LVM과 호환되지 않는 경우 LB # 1입니다. 1MiB 정렬은 EFI 파티션 테이블 호환성과 관련없습니다 .
JdeBP

맞습니다. 첫 번째 부분에 대해 실수를 한 것 같지만 두 번째 비트의 경우 2048에서 시작하면 나중에 드라이브를 GPT로 변환하는 데 아무런 문제가 없으므로 "또한"및 "미래"라는 단어가 나타납니다 .
billc.cn

5
여전히 잘못되었습니다. 하나는 없을 것이다 어쨌든 아무 문제 . 산술을하십시오. (가짜) 트랙 경계에 대한 원래 정렬조차도 충분한 공간을 제공합니다. 60 개의 512 바이트 섹터는 240 개의 EFI 파티션 테이블 항목을 보유 할 수 있습니다. 다시 : 1MiB 정렬은 EFI 파티션 테이블 호환성과 관련없습니다 .
JdeBP

4
fdisk"오래된 유틸리티"가 아니며 적극적으로 유지 관리됩니다. "가짜 디스크 지오메트리"를 통해 사용하지 마십시오 -c=dos(기본적으로 꺼져 있습니다). 맨 페이지는 CHS가 디스코처럼 죽어가는 것에 대해 명시 적으로 경고합니다. JdBP의 페이지에 대한 링크가 작동하지 않지만 1MiB (2048 섹터) 정렬 히스토리는 Wikipedia 항목 논리 디스크 관리자 에서 찾을 수 있습니다 . "1-MiB 정렬 경계를 사용하면 Vista Disk Mgt로 파티션 테이블을보다 안전하게 편집 할 수 있습니다."
David Tonhofer

36
fdisk -c=dos

파티션을 만들 때 이전 DOS 파티션 테이블을 사용했습니다. 최신 버전의 fdiskdos는 기본적으로 dos 호환 모드를 사용하지 않습니다.


3
허용되는 답변에는 유용한 정보가 있지만이 답변에는 문제를 해결하는 데 필요한 보석이 있습니다.
jcbwlkr 2013 년

FDISK 날이 인수없이 부문 2048에서 시작하는 파티션을 다시하지 것 - 내가 가진First sector (3072-314572799, default 3072):
tomfanning

5
fdisk를 사용하여 파티션을 삭제하고 다시 만드는 것을 의미하는 경우 파티션 크기를 조정하려는 경우에 중요합니다. 같은 장소에서 시작하려면 파티션이 필요합니다.
mcr

더 이상 다음과 함께 작동하지 않습니다 fdisk from util-linux 2.28: /
akostadinov

1
gist.github.com/jkullick/febf46756435f1fa99dc56f00782de03fdisk -c=dos -u=cylinders /dev/sdb 에서 발견
akostadinov

7

여기에 의견을 추가하면 도움이 될 것입니다. LUKS 파티션의 경우 같은 위치에서 파티션을 삭제하고 다시 작성한다고하지만 호출하기 전에 더 큽니다 cryptsetup resize. 그러나 파티션을 오래 전에 만들면 섹터 63에서 시작합니다. fdisk를 사용하면 파티션이 잘못된 오프셋으로 다시 만들어 져서 파티션이 손실됩니다.

fdisk -c=dos문제없이 섹터 63에서 파티션을 만들 수 있도록 복구했습니다 .


1

처음 63에서 시작한 이유는 확실하지 않지만 fdisk에 따르면 섹터 크기는 512입니다.

따라서 파티션과 클러스터를 정렬하려면 시작 오프셋을 512로 나눌 수 있어야합니다. 요즘에는 2048이 일반적입니다.

정렬이 잘못된 섹터를 선호하는 경우 GPart가 파티션을 63으로 다시 이동하도록 할 수 있습니다.

편집하다:

죄송합니다. RAID가있는 것을 보지 못했습니다. RAID 및 스트라이프 크기를 게시해야합니다.


1
63은 이진수로 111111입니다. PC의 BIOS, 섹터 번호는 6 비트로 인코딩되어 트랙 당 최대 111111 (63) 섹터를 생성합니다. 이 최대 값은 여전히 ​​가상 CHS 형상에 사용됩니다.
Chris Reid

1

실제 질문에 대한 답변을 받았지만 63 대 2048 첫 실린더 문제에 대한 빠른 수정은 다음과 같습니다.

sfdisk -d /dev/sdb | sfdisk --force /dev/sda

(동일한 크기의 드라이브가있는 경우)

그런 다음 다양한 파티션을 RAID에 다시 추가하여 최종 파티션 크기를 벗어난 63/2048 시작 실린더 차이로 인해 파티션의 크기가 동일하지 않다는 불만이 접수되었습니다.


소스 대상이 무엇인지 설명해야합니까?
Pawel Cioch

0

1MiB (2048 * 512 바이트 에뮬레이트 블록 크기) 선택은 다양한 하드웨어 스토리지 구성에 매우 적합합니다. 파일 시스템 데이터 구조는 일반적으로 파티션 시작점과 정렬되므로 스토리지 읽기 / 쓰기 속도를 최대화하는 데 중요 할 수 있습니다.

예를 들면 다음과 같습니다.

RAID는 16-256 KiB 범위의 데이터 스트라이프를 사용할 수 있습니다. 1 MiB는 정수의 배수이므로 1MiB에서 파티션을 시작하면 기본 RAID 모델과 호환됩니다.

SSD는 일반적으로 128-256 NAND 페이지의 지우기 블록 크기를 가지며, 드라이브에 따라 256 KiB 또는 512 KiB 일 수 있습니다. 다시 여기서 1MiB에서 파티션을 시작하는 것은 기본 SSD 스토리지 특성과 호환됩니다.

Advance Format 512e 회전 HDD는 4 KiB 물리적 블록 크기를 가지며, 다시 1MiB는 이것의 정수배입니다.

따라서 AF 드라이브가 있고 GPT로 파티셔닝하는 경우 LBA 블록 40 (HDD의 각 물리 블록에있는 8 개의 논리 블록의 정수배)부터 시작하는 첫 번째 파티션에 만족할 것입니다. LBA 블록 2048 (1MiB)에서 시작하면 세계 스토리지가 손실됩니다. 이는 거의 모든 하드웨어 구성에 적합하기 때문에 소프트웨어를 기본값으로 파티션하기위한보다 유연한 값입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.