파티션의 섹터 크기 찾기


24

나는 대답 이 질문을 , 가정 것을 *.img파일의 섹터 크기를했다 512.

올바른 섹터 크기를 찾기 위해 장치 또는 장치 이미지를 쿼리하는 방법은 무엇입니까?

답변:


26

fdisk -l (매개 변수에서 L이 더 낮음)는 다른 정보 중에서 섹터 크기도 표시합니다.

$ sudo fdisk -l

Disk /dev/sda: 150.3 GB, 150323855360 bytes
255 heads, 63 sectors/track, 18275 cylinders, total 293601280 sectors
Units = sectors of 1 * 512 = 512 bytes

   Device Boot      Start         End      Blocks   Id  System
   /dev/sda1   *          63      208844      104391   83  Linux
   /dev/sda2          208845   209712509   104751832+  83  Linux

이것은 섹터 크기가 512 바이트임을 나타냅니다.

편집 : fdisk예 를 들어 fdisk(패키지에서 util-linux 2.20.1) 의 최신 버전 에도 논리 및 물리 섹터 크기가 표시됩니다. 예를 들어 "WDC WD10EFRX 1TB 드라이브"의 관련 출력은 다음과 같습니다.

Disk /dev/sdn: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

따라서 512 바이트가 아닌 4096 바이트였습니다.
Hibou57

26

에 따르면 큐 sysfs를 파일에 대한 문서 :

# cat /sys/block/sda/queue/hw_sector_size
512

1
임의의 이미지 파일에는 작동하지 않습니다. 커널은 그들에 대해 어떻게 알아야합니까?
Christian Pietsch

1
이 너무 @ChristianPietsch 임의의 이미지 파일은 일반적으로 루프 장치를 통해 장착되는 것이다 들을 위해 작동한다. loopN대신에 사용하십시오 sdX. 이미지 파일에는 실제로 섹터가 없으므로이 정보는 현재 마운트 된 장치의 섹터 크기 만 알려줍니다.
Ruslan

1

file(1)명령을 사용 하고 수학을 직접 할 수 있습니다 . FAT 시스템 이미지 만있는 경우에도 작동합니다.

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

$ sudo file -s /dev/sda5 | tr , '\n'
/dev/sda5: DOS/MBR boot sector
 code offset 0x58+2
 OEM-ID "mkfs.fat"
 sectors/cluster 64
 reserved sectors 64
 Media descriptor 0xf8
 sectors/track 63
 heads 255
 hidden sectors 147632128
 sectors 536870912 (volumes > 32 MB)
 FAT (32 bit)
 sectors/FAT 65536
 serial number 0x9f981691
 unlabeled

이 파티션에는 클러스터 당 64 개의 섹터가 있습니다. 각 섹터의 바이트 수는 기본값이므로 512이므로 클러스터 크기는 32KB입니다.

섹터 크기는 512보다 클 수 있습니다 (FAT 사양은 4096으로 제한하지만 더 높아질 수 있음). 이 경우 출력에 추가 "바이트 / 섹터"필드가 표시됩니다.

$ sudo mkfs.fat -S 4096 -s 16 /dev/sda5
mkfs.fat 4.1 (2017-01-24)

$ sudo file -s /dev/sda5 | tr , '\n'
/dev/sda5: DOS/MBR boot sector
 code offset 0x58+2
 OEM-ID "mkfs.fat"
 Bytes/sector 4096
 sectors/cluster 16
 Media descriptor 0xf8
 sectors/track 63
 heads 255
 hidden sectors 147632128
 sectors 67108864 (volumes > 32 MB)
 FAT (32 bit)
 sectors/FAT 4096
 serial number 0xb059d826
 label: unlabeled

클러스터 당 4096 바이트 × 16 섹터 = 64 KiB로 다시 일치시킵니다.


0

위의 답변, 물리적 섹터 크기를 표시하는 fdisk 및 / sys 경로에 대해서는 ...하지만 한 가지 참고 사항 ... 책 Absolute FreeBSD에서 Lucas의 거의 모든 hdd는 거의 모든 hdd가 섹터 크기에 대해 거짓말하므로 Linux의 경우

/sys/block/sda/queue/hw_sector_size

내가 이해할 수있는 한 항상 더 나은 성능을 위해 512를 표시하여 실제 하드웨어 논리에 실제로 사용되는 실제 섹터 크기를 고려하는 것이 좋습니다. fdisk로 보여 주었다

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