lsblk -e 7 可排除主设备号为7的loop设备;如需聚焦真实磁盘,推荐 lsblk -e 1,7,11 -d,排除ram(1)、loop(7)、rom(11)设备并仅显示顶层disk。

lsblk -e 本身不能直接排除 loop 设备,因为 -e(--exclude)选项排除的是主设备号(major number),不是设备类型名(如 loop)。Loop 设备的主设备号是 7,所以正确做法是:
排除 loop 设备:用 -e 7
lsblk -e 7
这条命令会过滤掉所有主设备号为 7 的设备(即 /dev/loop0、/dev/loop1 等),只显示其他块设备(如 sda、nvme0n1、vdb 等真实物理或虚拟磁盘)。
✅ 验证方式:运行
ls -l /dev/loop*,你会看到类似brw-rw---- 1 root disk 7, 0 ... /dev/loop0—— 第二个数字7就是主设备号。
想更干净地聚焦「真实磁盘」?推荐组合使用
仅排除 loop 不够,常还需过滤掉 RAM 盘(ram,主设备号 1)、ROM(光驱,主设备号 11)、以及空设备。默认 lsblk 已自动排除 RAM 盘,但可显式加强:
lsblk -e 1,7,11 -d
-
-e 1,7,11:排除主设备号为 1(ram)、7(loop)、11(rom/scd)的设备 -
-d:只显示顶层磁盘(TYPE=disk),不展开分区(避免干扰视觉)
输出示例:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 1.8T 0 disk nvme0n1 259:0 0 477G 0 disk vdb 252:16 0 500G 0 disk
补充:确认 loop 设备是否真的被排除了?
对比执行:
lsblk | grep loop # 查看是否有 loop 行 lsblk -e 7 | grep loop # 应该无输出
如果仍有 loop 出现,说明系统启用了 modprobe loop 或有活跃镜像挂载(如 snap、flatpak),但 -e 7 仍会将其从 lsblk 列表中剔除——这是内核设备树层面的过滤,可靠。
小技巧:快速识别「真实磁盘」特征
| 特征 | 说明 |
|---|---|
RM=0 |
RM 列为 0 表示不可移动,大概率是内置磁盘(SSD/HDD)或云盘(vdb/nvme);RM=1 多为 U 盘、SD 卡 |
TYPE=disk |
真实物理/虚拟磁盘本体(非分区、非 LVM、非 loop) |
| 名称规律 |
sda/sdb(SCSI/SATA)、nvme0n1(NVMe)、vda/vdb(KVM/QEMU 虚拟磁盘) |
不需要依赖 /sys/block/ 或 lshw,lsblk -e 7 -d 已足够清晰。


















