파티션의 블록 크기가 기본 디스크의 블록 크기보다 작은 이유는 무엇입니까?

파티션의 블록 크기가 기본 디스크의 블록 크기보다 작은 이유는 무엇입니까?

제가 이해한 바에 따르면 블록("블록 크기"라는 문구에서)은 IO 버퍼 또는 장치의 최소 IO 크기와 같습니다. 파티션은 물리적 장치에 구축되는데 어떻게 더 작은 블록을 가질 수 있습니까? 예를 들어, 내 컴퓨터에서는 1024for xvda1그러나 4096for 를 얻습니다 xvda. 아래 코드를 참조하세요.

λ> sudo blockdev --getbsz /dev/xvda
4096
λ> sudo blockdev --getbsz /dev/xvda1
1024
λ> sudo fdisk -l /dev/xvda
Disk /dev/xvda: 50 GiB, 53687091200 bytes, 104857600 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
Disklabel type: dos
Disk identifier: 0x8be88ed1

Device     Boot    Start       End  Sectors  Size Id Type
/dev/xvda1 *        2048    409599   407552  199M 83 Linux
/dev/xvda2        409600  41943039 41533440 19.8G 83 Linux
/dev/xvda3      41943040  58720255 16777216    8G 82 Linux swap / Solaris
/dev/xvda4      58720256 104857599 46137344   22G 83 Linux

편집하다:

블록 장치(예: 파티션)의 "블록 크기"와 파일 시스템의 "블록 크기"는 서로 다른 것이라고 생각합니다. 예를 들어:

λ> sudo dumpe2fs -h /dev/xvda3 | grep -i 'block size'
dumpe2fs 1.42.13 (17-May-2015)
dumpe2fs: Bad magic number in super-block while trying to open /dev/xvda3
λ> sudo blockdev --getbsz /dev/xvda3
4096

답변1

fdisk"가짜" 물리적 섹터 크기를 보고합니다. "역사적 호환성".

시스템 또는 디스크 하드웨어는 파티션 정렬에 필요한 경우 512바이트 섹터를 에뮬레이트할 수 있지만 이는 속도가 느립니다(그리고 SSD가 더 빨리 마모될 수 있음). 그렇기 때문에 귀하의 파티션과 같이 더 큰 경계에 파티션을 정렬하는 것이 널리 권장됩니다(2048*512=1MB에 정렬됨).

관련 정보