SDDC = 28GB

SDDC = 28GB

나는 대답했다이 문제,가설파일 *.img의 섹터 크기는 입니다 512.

올바른 섹터 크기를 찾기 위해 장치 또는 장치 이미지를 쿼리하려면 어떻게 해야 합니까?

답변1

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 Drive"에 대한 관련 출력은 다음과 같습니다.

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

답변2

~에 따르면대기 중인 sysfs 파일에 대한 문서:

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

답변3

명령을 사용 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섹터 = 클러스터당 64KiB입니다.

답변4

이 시도

disk_sector_num=$(cat /sys/block/sdc/size)
disk_size_gb=$(expr $disk_sector_num / 2097152)
echo "sdc = ${disk_size_gb} GB"

SDDC = 28GB

관련 정보