6

我正在运行 Ubuntu Precise。在我的 /etc/init.d 我有一个 bash 脚本,它在启动时执行以下操作:

  1. 循环在 NTFS 驱动器上安装映像。该映像包含一个 ext2 文件系统,其目录名为home

  2. 然后它使用 --rbind 选项进行挂载,将映像文件中的主页挂载到/home上。

到目前为止运行良好,尽管在/home中打开文件并不能阻止循环挂载被卸载。

不幸的是,Nautilus 在可移动驱动器列表中显示循环安装,并带有一个图标,允许用户卸载循环安装。卸载安装了 /home 的驱动器不利于系统运行良好。

如何防止 Nautilus 显示此循环安装设备?

man udisk(7)说“udev 数据库中的有影响的设备属性”之一是:

UDISKS_PRESENTATION_HIDE

如果设置为 1,这是对演示级软件的提示,即不应向用户显示设备。

我假设在 /dev/loop 上设置这个属性会告诉 Nautilus 不要显示设备。

如何在 bash 脚本中设置 UDISKS_PRESENTATION_HIDE?

4

4 回答 4

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"

其余的都是一样的:)

于 2013-04-14T14:09:32.277 回答
4

您必须在 上写下以下内容/etc/udev/rules.d/99-hide-disks.rules

内核=="sdxy",ENV{UDISKS_PRESENTATION_HIDE}="1"

sdxy里面的隔断在哪里/dev。您可以通过运行轻松找到分区mount(但我认为您已经知道了)。

于 2012-07-05T18:14:56.877 回答
0

另一种方法是将设备安装在 /media 以外的其他位置。我选择了 /run,它允许 /mnt 用于临时挂载。

于 2012-07-09T19:13:10.340 回答
0

根据archlinux wiki上的udisk页面并总结其他答案:
添加一个名为/etc/udev/rules.d/99-hide-disks.rules

对于 udisk:

# hide the device sda1
KERNEL=="sda1", ENV{UDISKS_PRESENTATION_HIDE}="1"

对于 udisk2:

# 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"
于 2017-04-05T14:56:28.077 回答