Linux:如何在使用 mount 命令时抑制列出循环设备?

Linux:如何在使用 mount 命令时抑制列出循环设备?

有没有办法在使用mount命令本身列出现有挂载时防止包含循环设备?

当有几十个环回设备时,筛选输出以找到“真实”的硬件安装是很繁琐的。

当然,我可以使用类似的方法,mount | grep -v squashfs | grep -v loop但是有没有更好的方法呢?

答案1

mount

mount没有排除特定文件系统类型的选项,但-t <some-type>可以单独使用而不指定设备 — 在这种情况下mount将仅列出给定类型的文件系统。由于-t开关可以接受多种文件系统类型,因此仅列出“真实”磁盘并忽略其他所有内容(例如,,tmpfs等)的可能别名可能是(添加标签):squashfsramfssysfs-l

mount -l -t ext4,ext3,ext2,ntfs3,ntfs-3g,hfsplus,fat,vfat,exfat

findmnt

正如@ChrisDavies所评论的那样,可以实现相同甚至更多的功能,findmnt具体如下所述这个答案, 包括-我文件系统类型的反转,例如列出除指定类型之外的所有文件系统(-i代表反转):

findmnt -it tmpfs,squashfs,fuse.lxcfs,binfmt_misc,hugetlbfs,devtmpfs,proc,sysfs,securityfs,devpts,cgroup,cgroup2,pstore,bpf,autofs,mqueue,rpc_pipefs,debugfs,tracefs,configfs,nfsd,fusectl,fuse.gvfsd-fuse

# same as above but with custom columns, `df` style
findmnt -it tmpfs,squashfs,fuse.lxcfs,binfmt_misc,hugetlbfs,devtmpfs,proc,sysfs,securityfs,devpts,cgroup,cgroup2,pstore,bpf,autofs,mqueue,rpc_pipefs,debugfs,tracefs,configfs,nfsd,fusectl,fuse.gvfsd-fuse -o LABEL,SOURCE,FSTYPE,SIZE,USED,AVAIL,USE%,TARGET

## example output:
# LABEL  SOURCE         FSTYPE   SIZE   USED  AVAIL USE% TARGET
# rootfs /dev/mmcblk0p2 ext4      57G  38.4G  16.3G  67% /
# boot   /dev/mmcblk0p1 vfat     255M  51.7M 203.3M  20% ├─/boot
# ext3   /dev/sda3      ext3   825.5G 721.6G  61.9G  87% ├─/media/usb0

lsblk -f

另一种方法是lsblk -f生成如下输出:

# NAME        FSTYPE  FSVER LABEL  UUID                                 FSAVAIL FSUSE% MOUNTPOINT
# sda
# ├─sda1      vfat    FAT32 EFI    4860-1E0F
# ├─sda2      hfsplus       machfs ee5f1caa-d14b-369f-9f2a-161000514cd9
# └─sda3      ext3    1.0   ext3   e3ad15e9-7640-44f1-af6c-f2d535fcf218   61.9G    87% /media/usb0
# mmcblk0
# ├─mmcblk0p1 vfat    FAT32 boot   D386-9DE9                             203.3M    20% /mnt/mmcblk0p1
# └─mmcblk0p2 ext4    1.0   rootfs 996c1b5f-170b-4f38-a5e0-85eef5acf12c   16.3G    67% /mnt/mmcblk0p2

从上面的输出可以看出,lsblk -f与 相比,它具有潜在的优势mountfindmnt因为它还显示分区当前尚未安装

类似地,findmnt您可以配置您想要的列lsblk,例如添加总设备大小(SIZE)、分区类型(PTTYPE)、uuid(UUID)、分区 UUID(PARTUUID):

lsblk -f -o NAME,LABEL,FSTYPE,SIZE,FSAVAIL,FSUSE%,MOUNTPOINT,PTTYPE,UUID,PARTUUID
# NAME        LABEL  FSTYPE    SIZE FSAVAIL FSUSE% MOUNTPOINT     PTTYPE UUID                                 PARTUUID
# sda                          1.8T                               gpt
# ├─sda1      EFI    vfat      200M                               gpt    4860-1E0F                            b88cc4b9-4c97-4370-9cc7-ce084f43efc9
# ├─sda2      machfs hfsplus     1T                               gpt    ee5f1caa-d14b-369f-9f2a-161000514cd9 d8ca0df7-e060-4bcc-84a6-b014441cf5f4
# └─sda3      ext3   ext3    838.8G   61.9G    87% /media/usb0    gpt    e3ad15e9-7640-44f1-af6c-f2d535fcf218 272d223e-3eb5-4cd1-be54-81924a16db82
# mmcblk0                     58.2G                               dos
# ├─mmcblk0p1 boot   vfat      256M  203.3M    20% /mnt/mmcblk0p1 dos    D386-9DE9                            cd6fc030-01
# └─mmcblk0p2 rootfs ext4       58G   16.3G    67% /mnt/mmcblk0p2 dos    996c1b5f-170b-4f38-a5e0-85eef5acf12c cd6fc030-02

相关内容