我需要隐藏 Nautilus 列表中的 NTFS 分区。我该如何实现?
有什么工具可以做到这一点吗?
如何在 ubuntu 中隐藏文件(. 运算符除外)
答案1
答案2
这指南可能会对您有所帮助。
如何隐藏磁盘,不让其显示在 Nautilus 中?
首先,您必须知道要隐藏哪些磁盘和/或分区。据我观察,Nautilus 将按标签显示这些设备。如果没有标签,则设备将与磁盘/分区大小相关联。
看看下面的图片。红框中的分区没有标签。文件系统始终是当前
/root
分区,而 45 GB 文件系统是没有标签的分区。在此示例中,它是/root
我的 Ubuntu 10.10 的分区(我在 Natty Narwhal 上运行,但保留了我的 Maverick Meerkat 作为某种备份)。另外两个 - Lucid Lynx 和 Karmic Koala - 是我的 2 个 NTFS 分区的标签。如果您不熟悉 Linux 如何引用这些设备,标签很重要。在 Windows 中,无论是磁盘还是分区,都用字母 C 或 D 等来称呼它们。Linux 有一个更具体的命名系统。它通常是 sdaX 或 hdbY,其中 X 和 Y 分别是 sda 或 hdb 驱动器上的分区编号。因此,如果 sda 驱动器上有 3 个分区,那么将有 sda1、sda2 和 sda3。Windows 更可能将其称为 C、D 和 E。
现在安装所有驱动器和/或分区。你知道怎么做,对吧?单击 Nautilus 中的名称,它将为您安装。我建议您卸载并移除所有可移动驱动器以避免混淆。
挂载完所有设备后,运行 gnome-terminal 打开终端。如果您使用的是 Natty,只需在 dash 中输入该命令即可;如果您使用的是经典 Ubuntu 桌面,则可在菜单中找到它。挂载所有设备是查找设备名称的更简单方法,因为 mount 会直接告诉您设备 X 已挂载在目录 Y 中,名称为 Z。很简单吧?您可以查看
/proc/partitions
或/dev/disks/
,但这只会让您感到困惑。运行一次 mount 命令。从输出中,通过其关联标签记下驱动器或分区的名称。它看起来类似于下面的图片。
在上面的第二幅图中,您会注意到没有对已安装的 45 GB 文件系统的引用。这是因为后者没有标签,正如我之前提到的那样,并且 uuid 太长,在 Nautilus 上看起来很糟糕。底层系统将通过其 uuid 名称在 /media 上安装它,而其余的则通过其标签安装。
由于 45 GB 文件系统 (
/dev/sdb2
) 实际上与 Nautilus 无关,因此我想将其隐藏。我还想隐藏 Karmic Koala (/dev/sda1
),因为它是我的 Windows C 分区。但愿我不会意外删除这些分区中的任何一个文件。现在开始隐藏!但在此之前,请确保您知道要隐藏哪些分区(就像我上面识别它们的方式一样)。您还可以使用命令列出所有分区,
sudo fdisk -l
以便更快地识别它们。我将在接下来的步骤中隐藏它们sda1
,sdb2
但您应该替换您的分区名称。
使用您最喜欢的编辑器创建一个名为的文件
99-hide-disks.rules
。我们将规则放入此文件中,以告诉 Linux 内核隐藏该设备。我不会解释为什么文件名听起来很奇怪。如果我不会懒得解释的话,这将是另一篇文章的主题。将下面的文本放入您刚刚创建的文件中,但请确保更改适合您情况的设备名称。在我的文件中,我想隐藏 sda1 和 sdb2。
一般格式为(区分大小写):
KERNEL=="device name", ENV{UDISKS_PRESENTATION_HIDE}="1"
就我而言,我将在 99-hide-disks.rules 中写入以下内容:
KERNEL=="sda1", ENV{UDISKS_PRESENTATION_HIDE}="1" KERNEL=="sdb2", ENV{UDISKS_PRESENTATION_HIDE}="1"
完成后别忘了保存。
/etc/udev/rules.d/
现在使用以下命令将文件复制到,sudo cp 99-hide-disks.rules /etc/udev/rules.d/
现在我们完成了。系统会立即注意到这一点,因为 udev(Linux 的设备管理器)会通过 inotify(这是一个文件系统事件通知程序服务)查找规则文件夹的更改。但是,直到您重新启动后,它才会应用。据说您可以使用 udevadm 命令来触发新规则,但我还没有真正测试过。重新启动您的 Ubuntu,并注意分区在 Nautilus 中不再可见。
编辑:
至少对于 Ubuntu 12.10,上面的行不再起作用,应该改为使用这种格式:
KERNEL=="sda1", ENV{UDISKS_IGNORE}="1" KERNEL=="sdb2", ENV{UDISKS_IGNORE}="1"
答案3
谢谢你的教程,非常实用。实际上,我在 Ubuntu 14.04 中找到了更简单的方法
- 按 Super/Windows 键
- 键入并打开磁盘
- 选择要隐藏的分区,使其变为橙色
- 选择 cog/settings/advanced settings 图标。单击 Edit Mount Options
- 关闭自动挂载
- 取消选中启动时安装和在用户界面中显示
- 保存并重启
无需终端,也许这是 14.04 的新功能?不确定这是否更容易和有效。
完成此任务后,我再次重新启动以仔细检查 Windows 系统,发现双启动工作正常。如果您没有时间处理出现问题的情况,或者您仍在学习终端命令的精妙之处,那么这是一种很棒的方法 :P
希望这可以帮助。
干杯
答案4
现在答案应该已经更新。您可以关注本指南,但有一点不同:你不必写这个(正如最初在另一个答案中写的那样)
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"
其余的都一样:)