在Linux系统中,查看磁盘驱动器列表是运维和开发过程中的基础操作。无论是扩容、排查IO异常,还是确认新硬盘是否被正确识别,都需要先掌握系统中存在哪些块设备。Linux将一切设备抽象为文件,磁盘驱动器通常对应/dev下的sd、nvme、vd等前缀节点,但仅看目录名无法获知层级与属性,因此要借助专用命令。

使用lsblk命令查看块设备树
lsblk(list block devices)是最直观的工具,它以树形结构展示所有块设备及其分区关系。该命令来自util-linux包,绝大多数发行版默认安装,且普通用户即可执行,不需要root权限。输出中NAME表示设备名,SIZE为容量,TYPE标识是disk(磁盘)还是part(分区),MOUNTPOINT显示挂载位置。
以下示例列出所有设备并包含文件系统类型与只读标记:
# 以树状显示所有块设备,并追加文件系统与只读信息 lsblk -f -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT,RO # 仅查看磁盘本身,过滤掉分区与循环设备 lsblk -d -e 7
通过lsblk -d -e 7可以排除loop设备,只保留真正的磁盘驱动器,避免把快照或镜像文件误认为物理盘。对于有多路径或RAID的场景,lsblk也能呈现底层设备与上层逻辑卷的对应关系,方便梳理存储拓扑。
利用fdisk与lshw获取详细信息
当需要进一步确认磁盘容量边界、分区表类型甚至厂商型号时,fdisk与lshw更为合适。fdisk -l需要root权限,它会列出每块磁盘的大小、扇区数以及分区表(MBR或GPT)。lshw -class disk则直接从系统总线读取硬件描述,能暴露磁盘的 logical name、vendor、product 与 bus info。
下面给出两个命令的典型用法:
# 列出所有磁盘及分区表概要(需root) sudo fdisk -l # 仅查看磁盘类硬件的详细属性 sudo lshw -class disk -short
fdisk输出中的Disk /dev/sda标识具体驱动器,后面紧跟的容量和扇区数可用来核对云厂商分配的空间是否足额。lshw的bus info字段能区分该盘是接在SATA、SAS还是virtio上,对性能排查很有价值。要注意,fdisk不认识某些高级逻辑卷,此时应配合lsblk共同分析。
通过/proc与/sys辅助确认
除了命令行工具,Linux内核也通过虚拟文件系统暴露磁盘信息。/proc/partitions记录了内核识别到的块设备主次号与扇区数,/sys/block目录下每个子目录对应一块磁盘,内部device/model等文件保存型号。虽然不如命令直观,但在极小容器或救援模式中,这些路径往往仍可读。
可用如下方式快速抽取:
# 查看内核分区表 cat /proc/partitions # 读取第一块SCSI磁盘的型号 cat /sys/block/sda/device/model
这种方式的优势是不依赖外部二进制,只要挂载了proc与sysfs即可。缺点是没有树状视图,需要人工拼装关系。通常建议将lsblk作为首选,/proc与/sys作为交叉验证手段,确保脚本在精简环境中也能降级运行。
不同场景下的命令选择
在实际工作中,应根据目标选择工具。如果只是想确认新加的云盘是否出现,lsblk一眼便知;若要写自动化巡检脚本,解析lsblk的JSON输出(lsblk -J)最稳;当磁盘频繁掉线,结合lshw的bus info能判断是否链路问题。避免始终用root跑fdisk,以减少误操作风险。
下表归纳了常用命令的特点:
| 命令 | 权限需求 | 主要用途 | 输出特点 |
|---|---|---|---|
| lsblk | 普通用户 | 查看设备树与挂载点 | 树状、易读、支持JSON |
| fdisk -l | root | 看分区表与容量 | 按磁盘分节、含扇区数 |
| lshw -class disk | root | 看硬件型号与总线 | 偏硬件描述 |
综合来看,Linux查看磁盘驱动器列表并不复杂,核心在于理解块设备抽象与命令边界。把lsblk放在日常首位,遇到容量或硬件疑点再叠加fdisk与lshw,基本可以覆盖从笔记本到数据中心的各类环境。