我正在运行Ubuntu Precise。 在我的/etc/init.d中我有一个bash脚本,在启动时执行以下操作:
循环在NTFS驱动器上安装映像。该映像包含一个ext2文件系统,其目录名为 home
然后使用--rbind选项进行挂载,将图像文件中的 home 挂载到 / home 。
到目前为止效果很好,虽然在 / home 中打开文件并不能阻止循环挂载被卸载。
不幸的是,Nautilus在可移动驱动器列表中显示了环路安装,其图标允许用户卸载环路安装。卸载安装/ home的驱动器不利于运行良好的系统。
如何让Nautilus不显示这个循环安装设备?
man udisk(7)表示udev数据库中的“有影响力的设备属性”之一是:
UDISKS_PRESENTATION_HIDE
如果设置为1,则这是对演示级软件的提示,不应向用户显示该设备。
我假设在/ dev / loop上设置此属性会告诉Nautilus不要显示设备。
如何在bash脚本中设置UDISKS_PRESENTATION_HIDE?
答案 0 :(得分:6)
现在应该更新答案(至少对于Ubuntu 12.10)。 你不必再写这个了(最初在另一个答案中写的):
KERNEL=="sda1", ENV{UDISKS_PRESENTATION_HIDE}="1"
KERNEL=="sdb2", ENV{UDISKS_PRESENTATION_HIDE}="1"
相反,你应该这样写:
KERNEL=="sda1", ENV{UDISKS_IGNORE}="1"
KERNEL=="sdb2", ENV{UDISKS_IGNORE}="1"
其余的是相同的:))
答案 1 :(得分:4)
您必须在/etc/udev/rules.d/99-hide-disks.rules
上写下以下内容:
KERNEL=="sdxy", ENV{UDISKS_PRESENTATION_HIDE}="1"
sdxy
是/dev
内的分区。您可以通过运行mount
轻松找到分区(但我想您已经知道了)。
答案 2 :(得分:0)
另一种方法是将设备安装在/ media下面以外的地方。我选择了/ run,它允许/ mnt用于临时安装。
答案 3 :(得分:0)
根据archlinux wiki上的udisk页面,总结其他答案:
添加名为/etc/udev/rules.d/99-hide-disks.rules
# hide the device sda1
KERNEL=="sda1", ENV{UDISKS_PRESENTATION_HIDE}="1"
# hide the device sda1
KERNEL=="sda1", ENV{UDISKS_IGNORE}="1"
# hide the device sda2 using UUID
# use: blkid /dev/sda2 to get the UUID of /dev/sda2
ENV{ID_FS_UUID}=="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX", ENV{UDISKS_IGNORE}="1"