/proc/partitions 中的大小单位没有意义

Dan*_*nny 6 linux partition block-device

我有一个希捷 750GB 硬盘。

Parted 显示驱动器为 750GB

parted /dev/sdc print
Model: ST375064 0AS (scsi)
Disk /dev/sdc: 750GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End    Size   File system  Name     Flags
 1      17.4kB  750GB  750GB  ext3         primary
Run Code Online (Sandbox Code Playgroud)

但是,输入的大小/proc/partitions应该以块为单位:

cat /proc/partitions
major minor  #blocks  name
8       32  732574584 sdc
Run Code Online (Sandbox Code Playgroud)

Parted 说块大小是 512B,blockdev --getbsz /dev/sdc说块大小是 4096。

但是……很明显,这/proc/partition是错误地以 KiB 而不是块报告设备大小。

这种行为可以依赖于跨 Linux 和/或内核版本吗?(我需要一种可编写脚本且一致的方法来查找块设备的大小)

Centos 6.6 与 3.10 内核。

编辑我

lsblk -o kname,phy-sec,log-sec,min-io
KNAME PHY-SEC LOG-SEC MIN-IO
sda       512     512    512
sda1      512     512    512
sda2      512     512    512
Run Code Online (Sandbox Code Playgroud)

Sig*_*-IO -2

使用 /proc/partitions 或 (c)fdisk。一些不漂亮的打印结果会导致更​​好的人类可读性。

/proc/partitions 中的块始终为 512B 块...较新的磁盘将在内部使用 4k 块,但通常在外部模拟 512B 块。有些磁盘只能读取 4k 块,在外部也是如此,但 /proc/partitions 仍将以 512B 块打印结果。

  • 这个答案是不正确的。块大小 1024 通常(如果不是总是)用于“/proc/partitions”中的数字。 (3认同)