摘要:我想使用 在我的用户主目录中自动安装内部硬盘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 上引起关注,或者也许是服务器故障?