如何使用 fstab 将内部 NTFS HDD 自动挂载到加密的 /home 分区?

如何使用 fstab 将内部 NTFS HDD 自动挂载到加密的 /home 分区?

摘要:我想使用 在我的用户主目录中自动安装内部硬盘fstab,但无法这样做。

我正在设置一台新的 Thinkpad 开发机,在 (内置) SSD 上双启动 Windows 10 和 Ubuntu 17.10。两个操作系统似乎都运行正常。

我的个人数据存储在内部 NTFS 格式的硬盘上,我想在操作系统之间共享它。无需配置,当我启动 Windows 和 Ubuntu 桌面时,自动安装/读取/写入功能即可正常运行。在 Ubuntu 上,可以通过桌面图标或文件应用程序中的“其他位置”访问该驱动器。

但是,我想自动安装驱动器/home/<username>/data。我决定使用 来fstab实现这一点。

首先,我使用 找到了驱动器的 UUID sudo blkid。该驱动器安装为sda,包含两个分区,blkid描述如下:

/dev/sda1: PARTLABEL="Microsoft reserved partition" PARTUUID="32d4b204-4781-487b-baf2-9f49aca22b7e"
/dev/sda2: LABEL="Data" UUID="D0AA5898AA587CC2" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="5a989f6c-fab3-44d8-ab26-6dea47454de4"

我不知道sda1分区的目的或意义是什么,但我只感兴趣sda2

虽然这是一台单用户计算机,但我仍然想设置限制性选项和权限。因此,我将以下行附加到/etc/fstab,以空白换行符结尾:

UUID=D0AA5898AA587CC2   /home/<username>/data   ntfs    uid=<username>,gid=<username>,owner,umask=077,dmask=077,fmask=077,nosuid,dev,windows_names,auto    0       2

我选择在我的选项中使用详细而明确的描述而不是使用defaults,因为当我以后回来时它应该更容易理解和调整。

据我了解,所选选项的功能如下:

  • uid:将我设置为所有者用户
  • gid:将我的组(包含我作为单个成员)设置为拥有组
  • 所有者:仅允许所有者(我)安装驱动器
  • *mask:设置文件和文件夹的默认权限,只有所有者(我)可以读/写/执行,其他所有人都没有权限
  • nosuid:脚本和可执行文件以当前用户的权限运行,而不是文件所有者的权限(更安全)
  • dev:来自man mount:“解释文件系统上的字符或阻止特殊设备。”这似乎是与磁盘交互所必需的。
  • windows_names:保护我免于写破坏 Windows 的名称,以保持操作系统间的兼容性。
  • auto:在启动时使用命令自动挂载文件系统sudo mount -a

在这种方案下,不仅是/home/<username>/data空的,而且虽然驱动器仍然出现在“文件”应用程序中,但它现在也是空的。

当我运行时mount,相关分区报告如下:

/dev/sda2 on /home/<username>/data type fuseblk (rw,nosuid,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096)

因此看起来该驱动器仍然归 root 所有 ( user_id=0)。

我尝试了很多种选项,包括更宽松的选项,但都无济于事。唯一的变化是,如果我改为引用PARTUUID分区的sda2,则“文件”应用程序中会出现一个额外的“驱动器”,称为“数据”(请注意小写的“d”)。但是,只有 root 才能访问此“驱动器”。

我需要更改什么才能使其正常工作?在安装 Ubuntu 期间,我选择创建一个单独的加密/home分区 - 这会干扰启动时的自动挂载吗,因为大概在我以 身份登录之前它不会被解密<username>

编辑:安装在未加密的目录/分区中

<username>我尝试将 HDD 安装在具有rwx权限(/tmp/data)的未加密分区/目录中,方法是进行fstab如下更改:

UUID=D0AA5898AA587CC2   /tmp/data   ntfs    permissions,uid=mixtrak,gid=mixtrak,owner,umask=077,dmask=077,fmask=077,nosuid,dev,windows_names,auto    0       2

结果,文件系统挂载在那里,并且确实似乎具有适当的所有者、组和权限(来自ls -l):

drwx------ 1 <username> <username> 4096 Dec 25 07:38 data

并且我已确认内容可由 读取/写入<username>。因此分区加密似乎是我的问题的根源。

但是,我仍然对一件事感到困惑。当我检查时mount,分区描述如下:

/dev/sda2 on /tmp/data type fuseblk (rw,nosuid,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096)

选项、权限和所有者与 中指定的挂载选项fstab以及/tmp/data使用 挂载点上可见的选项有很大不同ls -l。这是为什么?这意味着什么?

最后一个问题:这个问题是否更有可能在 Unix 和 Linux Stack Exchange 上引起关注,或者也许是服务器故障?

相关内容