防止 USB 驱动器在移除后自动重新安装

rub*_*o77 5 usb automount

当我以用户身份在 Nautilus 中按“安全移除驱动器”到我的 USB 3.0 Transcent Storejet 25H3驱动器时,它会立即重新连接。

如果没有这种行为,我如何安全地删除它?

我认为唯一的解决方案是在 Ubuntu 中禁用自动挂载。我现在这样做了: 如何在 nautilus 的首选项中禁用自动挂载

但很遗憾,因为现在我的外部音乐库不再自动挂载了。

难道没有一个解决方案,硬盘在安全移除时不会重新安装?!

Han*_*nnu 5

至少对这个 Ubuntu 有效:

$ lsb_release -d  
Description:    Ubuntu 14.04.1 LTS
Run Code Online (Sandbox Code Playgroud)


我发现:

$ udisksctl mount --block-device /dev/$device
Run Code Online (Sandbox Code Playgroud)

...将以与自动挂载相同的样式挂载 /dev/xxx,
即 - 在/media/$USER/Disk_Label-or-UUID/自动创建的最后一级目录中。

$ udisksctl unmount --block-device /dev/$device;  
Run Code Online (Sandbox Code Playgroud)

...umount以上内容,但不是'-eject' 存储卡/USB 读卡器内容。

$ gvfs-mount --eject "file:///media/$USER/DISK_LABEL"  
Run Code Online (Sandbox Code Playgroud)

...最后似乎等于“安全删除”或“弹出”-并且无需立即重新安装。

注意:$ udisksctl power-off --block-device /dev/$device;
...否则将是一个“自然”的选择,但会受到立即重新安装的阻碍。


编辑--- 您可以使用此脚本“全部卸载”而无需挖掘名称:

#! /bin/bash
#
for device in $(mount | grep "/media/$USER/" | cut -d" " -f1); do
        echo Unmounting $device 
        udisksctl unmount --block-device $device
done
Run Code Online (Sandbox Code Playgroud)

如果你喜欢弹出,改变-f1-f3cut命令,并与线udiskctl

gvfs-mount --eject "file://$device"
Run Code Online (Sandbox Code Playgroud)

(我认为 --- 您在正确引用带有空格的标签时可能会遇到问题;如果设备安装了多个分区,您会收到警告)。



$ lsblk
Run Code Online (Sandbox Code Playgroud)

... 将显示所有可用的块设备(除了 ram 磁盘,不需要 sudo)。
RAM 和循环 --> lsblk --all.



如何“自动挂载”带标签的磁盘?

调出 Dash(点击“超级”键)并输入“启动应用程序”,然后会出现“启动应用程序”,点击它。单击Add并在“名称”和“评论”字段中输入您想要的任何内容。然后用您的版本填写“命令”:

/bin/bash -c '/bin/sleep 5 && /usr/bin/udisksctl mount -b /dev/disk/by-label/GreenWD_3TB'
Run Code Online (Sandbox Code Playgroud)

.../dev/disk/by-label/GreenWD_3TB
展示中找到什么合适的ls -lR /dev/disk/* | less



更多:
如何从命令行访问 gvfs 挂载?
如何像 nautilus 一样使用 udisks 在 /media/userName/ 中安装驱动器

  • 嗯,似乎与回答问题没有直接关系 - 但可能对某人有用。 (2认同)