在 Linux(Gnome 桌面)上,如何防止外部 USB 驱动器连接到机器时自动安装其中一个分区?
我不只是想阻止 Nautilus 窗口弹出——我还想不安装该分区。
摆弄 /etc/fstab 是不可接受的,因为这是一个连接到不同机器的可移动驱动器。
我似乎记得你在文件系统的根目录中创建了一个隐藏文件,但我记不清它叫什么了。类似于:
touch /media/usbdisk/.no-mount
您实际上是怎样实现这一点的?
答案1
要读取该文件,必须挂载该分区。自动挂载是操作系统的一项功能(实际上是热插拔,或者其他一些监控 USB 的服务),必须针对每台机器关闭。
答案2
如果你特别担心 gnome 中的自动挂载,并且不想碰/etc/fstab,请尝试以下命令针对特定分区将其关闭:
gnome-mount --write-settings --mount-options noauto --device /dev/sda1
如果您不想再发生这种情况,请删除以下设置:
gnome-mount --erase-settings --device /dev/sda1
我还认为您可以通过以下方式完全关闭自动挂载gconf-编辑器实用性:桌面 > gnome > volume_manager > automount_media
我不知道有什么方法可以让自动挂载守护进程在驱动器上查找文件并在找到后卸载该驱动器,但我可以看到类似这样的实用程序。
答案3
首先,运行udisksctl status
以获取设备路径,然后例如udevadm info --attribute-walk --name=/dev/sr0
,以获取要忽略的 USB 设备的特征。
UDISKS_IGNORE
然后添加一条规则/etc/udev/rules.d/12-prevent-automount.rules
。例如,这会阻止华为 Matepad Pro 12.6 英寸的“HiSuite”“Linux File-CD Gadget”,因为 Windows 软件不太相关 - 而且它的挂载通知也同样不相关:
ACTION=="add|change", SUBSYSTEM=="block", KERNEL=="sr[0-9]*", ATTRS{model}=="File-CD Gadget ", ENV{UDISKS_IGNORE}="1"
然后使用以下命令重新加载规则:udevadm control --reload-rules && udevadm trigger
。
为了测试规则:udevadm monitor --environment --udev