在 Linux 系统中查看硬盘大小有多种方式,需要根据查看的是物理硬盘(块设备)容量还是文件系统已用/可用空间来选择工具。以下为最常用且专业的命令及其区别。

使用 lsblk 命令可以列出所有块设备(block device)的层次关系,直接显示硬盘及其分区的总容量。执行 lsblk 后,SIZE 列即为设备大小,例如 sda 显示 500G 代表整块物理硬盘容量,分区如 sda1 则显示对应分区大小。该命令默认不显示挂载点信息,添加 -f 参数可查看文件系统类型和 UUID。
使用 fdisk -l 可以查看磁盘分区表,其中会列出每个物理硬盘的总扇区数、扇区大小以及总容量。例如输出中 “Disk /dev/sda: 500.1 GB” 即为硬盘容量。注意 fdisk 主要支持 MBR 和分区表操作,对于 GPT 分区可用 gdisk -l 替代,但查看容量效果相同。
使用 df -h 主要查看已挂载文件系统的使用情况,输出的 Size 列表示该分区的总容量,Used 和 Avail 分别表示已用和可用空间。该命令反映的是逻辑容量,即文件系统在格式化后的大小,通常会略小于对应分区的物理容量(因为文件系统元数据占用)。若需要查看包含 inode 信息,可加 -i 参数。
使用 parted -l 可以查看硬盘型号、容量、分区表类型以及分区起始和结束位置。该命令对 GPT 和 MBR 均支持,输出中的 “Disk /dev/sda: 500GB” 即硬盘总容量。相比 fdisk,parted 在脚本化和处理大容量硬盘时更可靠。
直接读取 /proc/partitions 文件可以快速获取内核识别的所有块设备及大小,其中 blocks 列乘以 1024 字节即可换算为字节容量。例如数值 488386584 代表约 500GB。这种方法适合在无额外工具的环境下使用。
对于 NVMe 固态硬盘或 SCSI/SAS 硬盘,可使用 smartctl -i /dev/sda(需安装 smartmontools)查看设备信息,其中 “User Capacity” 一行会显示精确的字节数和逻辑块大小,这也是最底层的硬件容量数据。
如果需要区分硬盘物理容量与操作系统可见容量,建议优先使用 lsblk 和 fdisk -l;如果需要关注可用空间,则使用 df -h。在服务器场景下,还可结合 lsscsi、lshw -class disk 等工具进一步获取总线类型和厂家信息。

查看详情

查看详情