我的系统已连接 USB、SD 卡和 SSD。我已将所有设备 USB(/dev/sdb1)、SSD(/dev/sda1)和 SD 卡(/dev/mmcblk1p1)安装在 /mnt 下。有没有办法卸载 /mnt 上连接的所有设备?
(我可以通过对 lsblk/df/mount 输出执行 grep 并卸载单个输出来做到这一点,但我正在寻找另一个简单的解决方案,或者通过执行 3 次 umount /mnt)
更新 2
以下是 lsblk 的输出(多个挂载点)
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 232.9G 0 disk
└─sda1 8:1 0 232.9G 0 part /mnt
sdb 8:16 1 14.7G 0 disk
└─sdb1 8:17 1 14.7G 0 part /mnt
并执行递归卸载后
sudo umount --recursive /mnt
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 232.9G 0 disk
└─sda1 8:1 0 232.9G 0 part /mnt
sdb 8:16 1 14.7G 0 disk
└─sdb1 8:17 1 14.7G 0 part
答案1
-A, --all-targets
Unmount all mountpoints in the current namespace for the specified
filesystem. The filesystem can be specified by one of the mountpoints
or the device name (or UUID, etc.). When this option is used together
with --recursive, then all nested mounts within the filesystem are
recursively unmounted. This option is only supported on systems where
/etc/mtab is a symlink to /proc/mounts.
这也许就是你想要的?来自man 8 umount
。
答案2
这行代码对我有用:
while [[ $(findmnt /mnt) != "" ]]; do sudo umount /mnt; done
解释:
如果命令findmnt /mnt
产生非空输出,则表示在 下挂载了某些东西/mnt
。测试检查输出是否为空,如果输出不为空,则运行umount /mnt
一次。如果findmnt /mnt
产生空输出,则表示在 下不再挂载任何东西,/mnt
测试就完成了。
如果你运行根您可以sudo
从该行中删除。如果您以普通用户身份运行,则需要sudo
-command umount
,但只需输入一次密码。
答案3
尝试延迟卸载:
sudo umount -l /mnt
答案4
您可以卸载设备本身,允许使用通配符。
umount /dev/sda1 /dev/sdb? /dev/sdc*