如何从 ubuntu 隐藏 (n) (NTFS) 分区

Sre*_*akh 40 filesystem partitioning ntfs

我需要在 nautilus 中隐藏一个 NTFS 分区。我怎样才能做到这一点?

有没有什么工具可以做到这一点?

以及如何在 ubuntu 中隐藏文件(. 运算符除外)

小智 37

通过»磁盘«从 Nautilus 隐藏分区

在 Ubuntu 12.10 及更高版本中,有一个名为 Disks 的实用程序,它显示所有可用磁盘并允许修改每个分区的挂载选项。

在各种选项中,您可以决定是否在启动时挂载分区,以及它是否会出现在用户界面中。应用更改需要管理员权限。

Gnome 磁盘截图


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 以更快地识别它们。我将隐藏sda1sdb2在接下来的步骤中,但您应该替换您的分区名称。

  1. 创建一个99-hide-disks.rules使用您喜欢的编辑器命名的文件。这个文件是我们放置规则来告诉 Linux 内核隐藏设备的地方。我不会解释为什么文件名听起来很有趣。如果我不会懒得解释的话,这将是另一篇文章的主题。

  2. 将下面的文本放入您刚刚创建的文件中,但请确保更改适用于您的情况的设备名称。我想隐藏 sda1 和 sdb2。

    一般格式为(区分大小写):

    KERNEL=="device name", ENV{UDISKS_PRESENTATION_HIDE}="1"
    
    Run Code Online (Sandbox Code Playgroud)

    就我而言,我将在 99-hide-disks.rules 中写入以下内容:

    KERNEL=="sda1", ENV{UDISKS_PRESENTATION_HIDE}="1"
    KERNEL=="sdb2", ENV{UDISKS_PRESENTATION_HIDE}="1"
    
    Run Code Online (Sandbox Code Playgroud)

    完成后不要忘记保存。

  3. 现在/etc/udev/rules.d/使用命令将文件复制到,

    sudo cp 99-hide-disks.rules  /etc/udev/rules.d/
    
    Run Code Online (Sandbox Code Playgroud)

    现在我们完成了。系统会立即注意到这一点,因为 udev(Linux 的设备管理器)通过 inotify(这是一个文件系统事件通知程序服务)查找对规则文件夹的更改。但是,在您重新启动之前它不会被应用。据说你可以使用 udevadm 命令来触发新规则,但我还没有真正测试过。重新启动您的 Ubuntu 并注意分区在 Nautilus 中如何不再可见。

编辑:

至少对于 Ubuntu 12.10,上面的行不再起作用,应该改为使用这种格式:

KERNEL=="sda1", ENV{UDISKS_IGNORE}="1"
KERNEL=="sdb2", ENV{UDISKS_IGNORE}="1"
Run Code Online (Sandbox Code Playgroud)


小智 9

感谢这个,非常方便的教程。我实际上在 Ubuntu 14.04 中找到了一种更简单的方法来做到这一点

  1. 按超级/Windows 键
  2. 键入并打开磁盘
  3. 选择要隐藏的分区,使其变为橙色
  4. 选择齿轮/设置/高级设置图标。单击编辑挂载选项
  5. 关闭自动挂载
  6. 取消选中“启动时安装”和“在用户界面中显示”
  7. 保存并重启

不需要终端,也许这是 14.04 的新功能?不确定这两种方式是否更容易和有效。

完成此任务后,我再次重新启动以仔细检查 Windows 系统,并且双启动工作正常。这是一个很棒的方法,如果你没有时间做一些事情,以防出现问题,或者你还在学习终端命令的艺术:P

希望这可以帮助。

干杯


Lek*_*eyn 8

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