Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 在鹦鹉螺中隐藏一个已安装的装置_Linux_Bash_Nautilus - Fatal编程技术网

Linux 在鹦鹉螺中隐藏一个已安装的装置

Linux 在鹦鹉螺中隐藏一个已安装的装置,linux,bash,nautilus,Linux,Bash,Nautilus,我正在运行Ubuntu。 在my/etc/init.d中,我有一个bash脚本,它在启动时执行以下操作: loop将映像装载到NTFS驱动器上。该映像包含一个名为home的ext2文件系统 然后使用--rbind选项执行装载,该选项将映像文件中的home装载到/home 尽管在/home中打开文件并不能阻止卸载循环装载,但到目前为止效果良好 不幸的是,Nautilus在可移动驱动器列表中显示循环挂载,并带有一个图标,允许用户卸载循环挂载。卸载安装了/home的驱动器不利于系统的良好运行 我怎样才

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

  • loop将映像装载到NTFS驱动器上。该映像包含一个名为home的ext2文件系统

  • 然后使用--rbind选项执行装载,该选项将映像文件中的home装载到/home

  • 尽管在/home中打开文件并不能阻止卸载循环装载,但到目前为止效果良好

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

    我怎样才能阻止Nautilus显示这个环装设备

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

    UDISKS_演示_隐藏

    如果设置为1,则提示演示级软件不应向用户显示设备

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


    如何在bash脚本中设置UDISKS\u PRESENTATION\u HIDE?

    您必须在
    /etc/udev/rules.d/99 HIDE disks.rules上编写以下内容:

    KERNEL=="sdxy", ENV{UDISKS_PRESENTATION_HIDE}="1" KERNEL==“sdxy”,ENV{UDISKS\u PRESENTATION\u HIDE}=“1”
    其中
    sdxy
    /dev
    中的分区。您可以通过运行
    mount
    轻松找到分区(但我想您已经知道了)。

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

    现在应该更新答案(至少对于Ubuntu 12.10)。 你不必再写这个了(就像最初在另一个答案中写的那样):

    相反,您应该这样写:

    KERNEL=="sda1", ENV{UDISKS_IGNORE}="1"
    KERNEL=="sdb2", ENV{UDISKS_IGNORE}="1"
    
    其余的都一样:)

    根据ArchLinuxWiki上的页面,并总结其他答案:
    添加名为
    /etc/udev/rules.d/99的文件以隐藏磁盘.rules

    对于udisk: 对于udisk2:
    离题;这对Fedora 19也是如此。我试过UUID,但不知什么原因没用?
    KERNEL=="sda1", ENV{UDISKS_IGNORE}="1"
    KERNEL=="sdb2", ENV{UDISKS_IGNORE}="1"
    
    # 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"