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


39

我需要在鹦鹉螺中隐藏NTFS分区。我该如何实现?

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

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


这是内部驱动器还是外部驱动器上的NTFS分区。如果它是内部的,那就不要通过fstab或其他方式安装它。如果是外部的,那么udev规则会变得更加复杂。
哈克2012年

将其安装到/ media以外的其他地方,例如/ mnt
Tachyons,2012年

Answers:


37

通过»Disks«从Nautilus隐藏分区

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

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

侏儒磁盘截图


我的nfs分区没有出现在磁盘实用程序中,怎么看?
Nymeria

请注意分区下方的两个小齿轮符号-可以更改自动安装和在GUI中显示的选项。
BurninLeo

隐藏,是的,但用户可安装。无论选择什么选项,单击磁盘“播放”图标都会装入磁盘。
KrisWebDev

在Ubuntu MATE 16.04(带有Caja)中可以找到相同的工具,它可以帮助隐藏隐藏在台式机GUI上的磁盘列表不希望出现的分区。我有一个带有多个分区的安装程序,并且在这里和那里出现了4个分区(“位置”菜单,“磁盘安装程序”小工具等),没有任何实际用途或用途。不再。
F-3000

我还看到,当打开的驱动Home + Other locations下,This computer这就是所谓Volume。当我单击它时,会弹出窗口,要求我提供安装驱动器的凭据。是否有可能使它不显示在other locations
纳扎尔

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确实会告诉您设备X挂载在名称为Z的目录Y上。容易吗?您可以查看/proc/partitions或, /dev/disks/但只会让您感到困惑。

一次运行命令安装。在输出中,通过其关联的标签记录驱动器或分区的名称。它看起来像下面的图片。

在此处输入图片说明

在上面的第二个图像上,您会注意到没有引用已安装的45 GB文件系统。如前所述,这是因为后者没有标签,而且uuid太长,在Nautilus上看起来很可怕。基础系统将通过其uuid名称将其安装在/ media上,其余的将通过其标签安装。

由于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"
    

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

    KERNEL=="sda1", ENV{UDISKS_PRESENTATION_HIDE}="1"
    KERNEL=="sdb2", ENV{UDISKS_PRESENTATION_HIDE}="1"
    

    完成后不要忘记保存。

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

    sudo cp 99-hide-disks.rules  /etc/udev/rules.d/
    

    现在我们完成了。这将立即被系统注意到,因为udev(用于Linux的设备管理)通过inotify(这是文件系统事件通知程序服务)寻找对rules文件夹的更改。但是,只有在重新启动后才能应用。可以使用udevadm命令触发新规则,但是我还没有真正测试过它。重新启动Ubuntu,注意在Nautilus中分区不再可见。

编辑:

至少对于Ubuntu 12.10,以上行不再起作用,应改为使用以下格式:

KERNEL=="sda1", ENV{UDISKS_IGNORE}="1"
KERNEL=="sdb2", ENV{UDISKS_IGNORE}="1"

1
抱歉,Nautilus仍显示那些驱动器名称:(
Sreevisakh

1
@Sreevisakh:报价无效。(例如KERNEL==”sda1″...答案现在已更改)。它适用于普通的ASCII引号。
Peter.O 2013年

1
也。sudo udevadm trigger将更新设备。无需重启nautilus
Peter.O 2013年

因此,基本上,第二个(未经测试的)“ fb”解决方案仅用于fdisk查找设备的标识符,而不是首先安装它,mount再次运行并卸载。=>快得多:)
nuala 2013年

太好了,我不得不使用UDISKS_IGNORE(我在Xubuntu 13.10上),我只在这里找到它!
lorenzo-s

8

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

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

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

此任务完成后,我再次重新启动以仔细检查Windows系统,并且双重引导工作正常。如果您没有时间处理某些错误,或者如果您仍在学习终端命令的精湛技巧,那么这是一种很棒的方法:

希望这可以帮助。

干杯


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 / ...”
    HintAuto:否
    HintIconName:
    提示:                  
    提示名称:
    HintPartitionable:true
    HintSymbolicIconName:
    提示系统:true
    ID:BY-ID-ATA -...-第1部分
    IdLabel:系统保留
    IdType:ntfs
    IDUUID:                      A10CDE7682786D73
    IdUsage:文件系统
    IdVersion:
    MDRaid:“ /”
    MDRaidMember:“ /”
    PreferredDevice:/ dev / sda1
    ReadOnly:错误
    大小:104857600
    符号链接:/dev/disk/by-id/ata-...-part1
                                /dev/disk/by-id/wwn-...-part1
                                / dev / disk /按标签/ SystemReserved
                                / dev / disk / by-uuid / A10CDE7682786D73

现在,为了隐藏此分区,请创建一个通过此UUID匹配该分区的udev规则,并将其从udisk中隐藏。例如,如果您要隐藏上面的NTFS分区(带有UUID A10CDE7682786D73)和另一个ext4分区(带有UUID faae2c6a-0545-4bfa-a545-440c63467467),则/etc/udev/rules.d/99-hide-partitions.rules文件应包含:

#隐藏UI 
SUBSYSTEM ==“ block”,ENV {ID_FS_UUID} ==“ A10CDE7682786D73 ”,ENV {UDISKS_IGNORE} =“ 1”中的
 “ SystemReserved”分区#隐藏左侧面板 
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

现在udisksctl info -b /dev/sda1再次运行命令,它应包含:

    HintIgnore:                  正确

这是正确的答案,并且在ubuntu 14.04
ceztko

3

现在应该更新答案。您可以按照本指南进行操作,但有所不同:您不必编写本指南(与其他答案一样)

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"

其余的都一样:)


2

您不能真正隐藏分区,以使它们绝对不能100%地安装在Linux中,除非物理上删除它们所在的磁盘。就是说,我认为您不需要那种安全级别。我怀疑您只是不想无意中单击一个图标并进入NTFS分区。为此,您可以编辑/ etc / fstab文件。为要隐藏的每个分区添加一个这样的条目:

假设您的ntfs分区是dev / sda1, 然后使用此代码

/dev/sda1  /mnt/hidden  ntfs-3g  noauto,ro  0 0

这会将系统配置为阻止/ dev / sda1在引导时自动挂载(该条目的“ noauto”部分)。它还对其进行设置,以便可以将其手动安装在/ mnt / hidden上,但只能作为只读分区(“ ro”选项)安装。如果添加“用户”选项(如“ noauto,ro,users”中的选项),则普通用户(即您)将能够挂载该分区;但是缺少此选项,则需要使用sudo来安装分区。您可以选择执行此操作的程度,例如,可以省略“ ro”和/或添加“ users”。

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

看到这个答案

资源

  1. http://ubuntuforums.org/showthread.php?p=9901316

这将有助于停止挂载一个分区,无论如何我想将其隐藏在nautlius左侧的收藏夹列表中?
Sreevisakh

1

在不是Nautilus而是类似Kubuntu的应用程序的Dolphin中,我可以右键单击左窗格中的设备。然后弹出一个菜单,我可以选择Hide entry 'humpty dumpty'。您可能要检查Nautilus中是否有类似的选项。


1

在我的版本14.04.2中,“磁盘”选项中的菜单稍有不同,以隐藏分区。

1个打开的磁盘

2左键单击要隐藏分区的驱动器(变为橙色)

3左键单击要隐藏的分区(变为橙色)

4单击分区下方栏中的双齿轮

5单击“编辑安装选项”

6关闭自动安装选项

7取消选中“启动时安装”

8取消选中“在用户界面中显示”

9单击“确定”

10输入密码

这在我的计算机上立即生效。


1

获取磁盘UUID:

blkid

/etc/fstab以根用户身份编辑:

UUID="XXX" /media/root/nowhere auto nosuid,nodev,nofail,noauto,nouser,x-gvfs-hide,x-udisks-auth 0 0

创建一个受保护的/ media / root文件夹(以防止用户访问已安装的分区):

sudo mkdir -m=000 /media/root

防止安装和可见性的几个独立保护层:

  • noauto 防止启动时自动安装
  • nouser 需要以root身份挂载(注意:已经是默认行为,而udisk是root)
  • x-gvfs-hide 明确地告诉Nautilus隐藏它
  • x-udisks-auth挂载时应要求管理员权限,但无效。我猜它需要其他配置。

文档:mountfstabgvfs

请注意,该块设备(例如/dev/sdX)仍然对所有用户可见,尤其是在该Disk实用程序中。仍然可以通过root手动将其安装在其他位置,但默认情况下不能由标准用户安装。如果您不信任root或系统进程,则需要使用较低级别的内核方法之一。

进一步说明:在此之后,如果要隐式地安装块设备,则可以使用类似于容器的方法unshare

unshare -m bash
MOUNT_DIR="XXX"
mkdir "$MOUNT_DIR"
mount --bind "$MOUNT_DIR" "$MOUNT_DIR"
mount --make-private "$MOUNT_DIR"
mount "/dev/sdX" "$MOUNT_DIR"
ls "$MOUNT_DIR"

注意:大多数/所有答案,包括udev规则答案,都只是从Nautilus隐藏分区,但用户仍可以通过磁盘实用程序(图标)以标准权限挂载该分区。将fstab挂载点放在不可访问的目录中将阻止用户访问。


此答案还显示了如何手动执行此操作,因为其他答案中提到的“ 磁盘”应用程序会编辑fstab。带有fstab条目的最有意义的选项是添加noauto(在启动时禁用自动挂载)和删除x-gvfs-show(从桌面GUI删除图标)。这些是磁盘使用时的唯一区别。(Ubuntu MATE 16.04)
F-3000

0

这将是从“ Robust” Ubuntu 14.4隐藏“弱” Windows分区的最简单方法。

Ubuntu:

点击:搜索您的计算机和在线资源

在对话框中写入磁盘,然后单击(磁盘)

单击您要隐藏的分区(它会更改颜色)

单击分区下方栏中的双星(更多选项)

选择“编辑安装选项”

禁用自动安装选项(关闭)

取消选中“启动时安装”

取消选中“在用户界面中显示”

点击“确定”

输入密码。(您已完成!)

这将立即生效,但是必须重新启动。

视窗:

无需从Windows隐藏Ubuntus分区!Windows自动忽略其他非Windows OS的分区。


-1

如果磁盘具有GUID分区表(GPT),则可以将分区设置为gparted中隐藏的分区。

只需安装并运行gparted,右键单击您的分区,管理标志,然后将该分区设置为隐藏即可。


注意!这将不仅仅是在Linux桌面GUI中隐藏分区。如果要在Windows上使用分区,则不应使用该分区,因为如果设置了此标志,则OS将忽略该分区的存在。使用GPT时,使用Linux隐藏分区但不使用Windows隐藏分区,并且使用(g)parted将分区设置为隐藏分区是一个错误,因此不应依赖。
F-3000

-2
  1. 制作一个隐藏的文件夹
  2. 在此安装任何分区,,,,

    mkdir ./.test

    sudo mount /dev/sda1 ./.test/

卸下

sudo umount ./.test/

./.test/被隐藏

您只能安装设备(如果我通过给定的命令尚未安装该设备或您必须使用该设备)

mount --bind oldmount newmount

oldmount和newmount是文件夹名称

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.