Sre*_*akh 40 filesystem partitioning ntfs
我需要在 nautilus 中隐藏一个 NTFS 分区。我怎样才能做到这一点?
有没有什么工具可以做到这一点?
以及如何在 ubuntu 中隐藏文件(. 运算符除外)
小智 37
在 Ubuntu 12.10 及更高版本中,有一个名为 Disks 的实用程序,它显示所有可用磁盘并允许修改每个分区的挂载选项。
在各种选项中,您可以决定是否在启动时挂载分区,以及它是否会出现在用户界面中。应用更改需要管理员权限。
Tac*_*ons 20
本指南可能对您有所帮助。
如何在 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,只需在破折号中输入它,或者如果您使用经典的 Ubuntu 桌面,则在菜单中找到它。mount all 是找出设备名称的更简单方法的原因是因为 mount 会从字面上告诉您设备 X 以名称 Z 安装在目录 Y 中。很简单吧?您可以查看
/proc/partitions
或 查看,/dev/disks/
但它只会让您感到困惑。运行命令 mount 一次。从输出中,通过相关标签记下驱动器或分区的名称。它看起来类似于下图。
在上面的第二张图片中,您会注意到没有引用已安装的 45 GB 文件系统。那是因为后者没有标签,正如我之前提到的,而且 uuid 太长,在 Nautilus 上看起来很糟糕。底层系统将在 /media 上通过其 uuid 名称挂载它,而其余的则通过其标签挂载。
由于 45 GB 文件系统 (
/dev/sdb2
) 在 Nautilus 上确实没有显示任何业务,我想隐藏它。我也想隐藏 Karmic Koala (/dev/sda1
) 因为它是我的 Windows C 分区。天堂禁止我从这些分区中的任何一个意外删除文件。现在隐藏开始了!但在此之前,请确保您知道要隐藏哪些分区(就像我在上面识别它们的方式)。您还可以使用命令列出所有分区
sudo fdisk -l
以更快地识别它们。我将隐藏sda1
并sdb2
在接下来的步骤中,但您应该替换您的分区名称。
创建一个
99-hide-disks.rules
使用您喜欢的编辑器命名的文件。这个文件是我们放置规则来告诉 Linux 内核隐藏设备的地方。我不会解释为什么文件名听起来很有趣。如果我不会懒得解释的话,这将是另一篇文章的主题。将下面的文本放入您刚刚创建的文件中,但请确保更改适用于您的情况的设备名称。我想隐藏 sda1 和 sdb2。
一般格式为(区分大小写):
Run Code Online (Sandbox Code Playgroud)KERNEL=="device name", ENV{UDISKS_PRESENTATION_HIDE}="1"
就我而言,我将在 99-hide-disks.rules 中写入以下内容:
Run Code Online (Sandbox Code Playgroud)KERNEL=="sda1", ENV{UDISKS_PRESENTATION_HIDE}="1" KERNEL=="sdb2", ENV{UDISKS_PRESENTATION_HIDE}="1"
完成后不要忘记保存。
现在
/etc/udev/rules.d/
使用命令将文件复制到,Run Code Online (Sandbox Code Playgroud)sudo cp 99-hide-disks.rules /etc/udev/rules.d/
现在我们完成了。系统会立即注意到这一点,因为 udev(Linux 的设备管理器)通过 inotify(这是一个文件系统事件通知程序服务)查找对规则文件夹的更改。但是,在您重新启动之前它不会被应用。据说你可以使用 udevadm 命令来触发新规则,但我还没有真正测试过。重新启动您的 Ubuntu 并注意分区在 Nautilus 中如何不再可见。
编辑:
至少对于 Ubuntu 12.10,上面的行不再起作用,应该改为使用这种格式:
Run Code Online (Sandbox Code Playgroud)KERNEL=="sda1", ENV{UDISKS_IGNORE}="1" KERNEL=="sdb2", ENV{UDISKS_IGNORE}="1"
小智 9
感谢这个,非常方便的教程。我实际上在 Ubuntu 14.04 中找到了一种更简单的方法来做到这一点
不需要终端,也许这是 14.04 的新功能?不确定这两种方式是否更容易和有效。
完成此任务后,我再次重新启动以仔细检查 Windows 系统,并且双启动工作正常。这是一个很棒的方法,如果你没有时间做一些事情,以防出现问题,或者你还在学习终端命令的艺术:P
希望这可以帮助。
干杯
Tachyons 提供了一个很好的答案,展示了如何将分区隐藏到 udisks 应用程序(例如 Dolphin)。依赖固定的分区名称容易出错,但最好使用分区唯一的 UUID。此答案已使用 Kubuntu 13.10 进行了测试。
为此,首先必须找到一个 UUID。这可以通过多种方式找到,其中之一是运行命令udisksctl info -b /dev/sda1
(/dev/sda1
当然你的分区在哪里)。UUID 在IdUUID下可见,并且分区未标记为隐藏(忽略):
/org/freedesktop/UDisks2/block_devices/sda1: org.freedesktop.UDisks2.Block: 配置: [] CryptoBackingDevice: '/' 设备:/dev/sda1 设备编号:2049 驱动器:'/org/freedesktop/UDisks2/drives/...' 提示自动:false 提示图标名称: 提示忽略: 假 提示名称: 提示可分区:true 提示符号图标名称: 提示系统:true id: by-id-ata-...-part1 IdLabel:系统保留 身份类型:ntfs IdUUID: A10CDE7682786D73 IdUsage:文件系统 版本号: MDRaid:'/' MDRaidMember: '/' 首选设备:/dev/sda1 只读:假 尺寸:104857600 符号链接:/dev/disk/by-id/ata-...-part1 /dev/disk/by-id/wwn-...-part1 /dev/disk/by-label/SystemReserved /dev/disk/by-uuid/A10CDE7682786D73
现在,为了隐藏这个分区,创建一个通过这个 UUID 匹配分区的 udev 规则,并将它从 udisks 中隐藏起来。例如,如果您想隐藏上述 NTFS 分区(UUID A10CDE7682786D73)和另一个 ext4 分区(UUID faae2c6a-0545-4bfa-a545-440c63467467),您的/etc/udev/rules.d/99-hide-partitions.rules
文件应包含:
# 在 UI 中隐藏“SystemReserved”分区 SUBSYSTEM=="block", ENV{ID_FS_UUID}==" A10CDE7682786D73 ", ENV{UDISKS_IGNORE}="1" # 在左侧面板中隐藏 /home 分区 SUBSYSTEM=="block", ENV{ ID_FS_UUID}==" faae2c6a-0545-4bfa-a545-440c63467467 ", ENV{UDISKS_IGNORE}="1"
注释是可选的,但建议使用以使 UUID 变得不那么神奇。务必不能混淆=
使用==
,一个设置变量,其他比较反对的变量。
创建规则文件后,通过重新启动或运行来应用它:
sudo udevadm control --reload
sudo udevadm trigger --subsystem-match=block
Run Code Online (Sandbox Code Playgroud)
现在udisksctl info -b /dev/sda1
再次运行命令,它应该包含:
提示忽略: true
归档时间: |
|
查看次数: |
61492 次 |
最近记录: |