更新 2

更新 2

我的系统已连接 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*

相关内容