Ref 参考

Introduction to fstab - https://help.ubuntu.com/community/Fstab

What is fmask umask and dmask? - https://ubuntuforums.org/archive/index.php/t-1453342.html

“dmask” and “fmask” mount options - https://askubuntu.com/questions/429848/dmask-and-fmask-mount-options

fstab mount options for umask, fmask, dmask for ntfs with noexec - https://unix.stackexchange.com/questions/396904/fstab-mount-options-for-umask-fmask-dmask-for-ntfs-with-noexec

fstab - https://wiki.archlinux.org/title/fstab

ntfs3-dmask-fmask - https://www.linuxquestions.org/questions/slackware-installation-40/ntfs3-dmask-fmask-4175710458/

简介

最近我将我的操作系统从 Windows 切换到 fedora,我一直习惯于系统盘与资源盘数据分离,所以如何在 Linux 正确挂载资源盘是我开箱新系统需要做的事情。

开始

不难地,我们随便在互联网上搜一下就知道应该修改 /ets/fstab ,这也是系统启动时根据该配置文件挂载硬盘所在的地方。

具体的,在这里的格式为:

[Device] [Mount Point] [File System Type] [Options] [Dump] [Pass]

fields description
<device> The device/partition (by /dev location or UUID) that contain a file system.
<mount point> The directory on your root file system (aka mount point) from which it will be possible to access the content of the device/partition (note: swap has no mount point). Mount points should not have spaces in the names.
<file system type> Type of file system (see LinuxFilesystemsExplained).
<options> Mount options of access to the device/partition (see the man page for mount).
<dump> Enable or disable backing up of the device/partition (the command dump). This field is usually set to 0, which disables it.
<pass num> Controls the order in which fsck checks the device/partition for errors at boot time. The root device should be 1. Other partitions should be 2, or 0 to disable checking.

查找硬盘 ID

首先地,我们要找到需要挂载的硬盘的 ID ,通过以下命令找到本地所有的硬盘,如果找不到该硬盘,你可以打开 Files 中的 Other Locations,找到指定的硬盘及其名称。

$ lsblk -o +uuid,name

screenshot

记住该 UUID,接着打开 /ets/fstab ,在最后添加如下:

UUID=97751EDFDE265857 /mnt/mount ntfs-3g defaults,users,uid=1000,gid=1000,fmask=113,dmask=002,utf8 0 0

UUID

UUID 如上所述得到;

硬盘挂载点

/mnt/mount 是所需要挂载硬盘所在的路径,一般来说可以根据所存储的硬盘用途存放在 /mnt/media 甚至是 $USER 目录下;

挂载硬盘格式

ntfs-3g 一般是根据硬盘的类型选定的,由于该硬盘开始应用时是在 Windows 下使用,并格式化为 NTFS 格式,所以这里使用 ntfs or ntfs-3g,区别于 ntfsntfs-3g 拥有 rw 权限。

挂载权限

uid 以及 gid 可以通过键入 id 命令查询,可以获取到当前用户的 uid 以及 gid。这个不是必须的,但是为了其他用户组可以正常使用该硬盘下的文件(例如 docker,一般 docker 都加入到用户组中),我更喜欢把该硬盘直接挂载到当前用户组。

fmaskdmask。这两者是 umask 的具体实现,分别代表文件的掩码 (file mask) 以及文件夹的掩码 (directory mask)

如果你想具体了解如何计算,我更推荐阅读 What is fmask umask and dmask? 因为我不在本机直接运行 Samba 服务,而是通过 docker 部署 Samba,我可以通过这个 docker 服务控制其他用户访问路径的权限,所以对于该资源盘,我的理解是可以设置所有用户访问资源盘。

type File Folder
perm 777 777
mask 113 002
access perm 664 775

因此,在我的例子中 fmask=113,dmask=002,

All Last

此刻你的资源盘应该正常挂载了,需要重启让系统执行一次 /ets/fstab,当然的,你可以先期通过 mount 命令加上正确的参数,检查挂载结果符合预期之后再修改 /etc/fstab