访客

armbian等linux系统修改fstab实现开机自动挂载磁盘(详解)

2078 大谋儿 知识探索

因为小白我踩了一些坑,所以特意学习后才写了这个笔记!

当 Linux 操作系统启动时,它会尝试挂载您的硬盘和其他存储设备上的分区。为了实现这一目标,系统使用 /etc/fstab 文件来确定应该如何挂载文件系统。/etc/fstab 文件是一个文本文件,包含了在系统引导期间将要挂载的所有文件系统的定义。它通过指定每个文件系统的设备名称、挂载点、文件系统类型和选项等参数来完成此操作。

通常情况下,/etc/fstab 文件中的每行都对应着一个文件系统及其相关配置信息。每一行都包含以下6个字段(记住只有6个也就是用空格或者tab隔开的6列):

第1列,设备名称(Device):

该文件系统所使用的块设备的名称或 UUID。

第一列可以是磁盘路径也可以是UUID,这个磁盘路径和可以用fdisk -l 命令查看,这个UUID可以用blkid 命令查看

第2列,挂载点(Mount Point):

该文件系统所挂载到的目录位置。

这个挂载点就是你挂在后以后要用的文件路径,比如/mnt/sda1

这个路径必须提前新建好,新建文件夹命令示例:

mkdir /mnt/sda1

第3列,文件系统类型(Filesystem Type):

该文件系统所使用的文件系统类型,例如 ext4、NTFS 或 exFAT 等。

这个文件系统就是你磁盘分区的格式,我们要挂载fat/NTFS/exFAT这些windows格式的时候需要提前安装驱动支持

在 Armbian 下挂载 fat 和 ntfs 分区通常不需要任何额外的安装,因为这些文件系统格式通常都已经预置了所需的内核模块。但是,对于 exFAT 文件系统,需要额外安装 exfat-fuse 和 exfat-utils 软件包才能够正常挂载。

使用以下命令来安装这些软件包:

sudo apt-get install exfat-fuse exfat-utils

安装完成后,就可以像挂载其他文件系统一样来挂载 exFAT 格式的分区,例如:

sudo mount -t exfat /dev/sdb1 /mnt/exfat

第4列,挂载选项(Mount Options):

配置文件系统的读写权限、自动挂载方式等功能。

下面是一些常见的选项:

    rw:可读写模式。

    ro:只读模式。

    users:允许普通用户挂载和卸载该分区。

    owner:将文件系统的所有权交给挂载它的用户。

    auto:开机时自动挂载所有列在 /etc/fstab 文件中的文件系统。

    noauto:不自动挂载该分区,在需要时手动挂载。

    exec:启用二进制程序执行权限。

    noexec:禁止二进制程序执行权限。

    uid=<value>:将文件系统的所有者设置为指定用户 ID 的用户。

    gid=<value>:将文件系统的所有组设置为指定组 ID 的用户组。

    umask=<value>:设定默认的文件和目录权限掩码值。

多个选项可以同时使用,以逗号隔开。例如:defaults,noatime,nofail,表示使用默认选项,关闭文件访问时间记录,并在挂载失败时不阻止系统启动。具体支持哪些选项将依赖于您的Linux发行版和内核版本。

上述示例中defaults主要包括以下内容:

    rw:读写模式。

    suid 和 dev:允许 SUID 标志和设备文件特权。

    exec:启用二进制程序执行权限。

    auto:自动挂载分区。

    nouser:只有 root 用户才能进行挂载和卸载操作。

    async:异步 I/O 操作,可提高性能。

    atime:记录文件最后访问时间。

例如,如果您想禁用写入权限,可以使用 ro 选项替换掉 rw 选项,如下所示:

UUID=<partition-UUID> <mount-point> <file-system-type> ro,nofail 0 0

第5列,备份频率(Dump Frequency):

与备份程序,dump命令相关的数据。0表示不进行备份。

第6列,检查顺序(Filesystem Check Order):

指定在开机时检查文件系统的顺序。0表示不进行检查。

例如,以下是一个简单的 /etc/fstab 文件示例:

# Device        Mount point       Filesystem type     Options         Dump   Pass
UUID=4f8e246a-5c15-49df-a2b9-8f40b9a7cf87    /       ext4           defaults        1      1
/dev/sda2     /home        ext4          noatime,errors=remount-ro        0       2

第一行表示将 UUID 为 4f8e246a-5c15-49df-a2b9-8f40b9a7cf87 的 ext4 文件系统挂载到根目录下,使用默认选项,并在备份时进行备份。同时指定了该文件系统的检查顺序为 1。

第二行表示将 /dev/sda2 分区的 ext4 文件系统挂载到 /home 目录下,并禁用访问时间记录(noatime),如果发生错误则重新挂载并只允许 root 用户进行挂载和卸载操作,不备份,在系统启动时进行第二级别的检查。

总之,通过修改 fstab 中的配置,您可以实现自动挂载硬盘分区、配置文件系统的读写权限、自动挂载方式等功能。


最后我们来用一个示例总结一下:

UUID=B804-9CBF /mnt/sdb3 exfat defaults,nofail,umask=0000 0 0

上述/etc/fstab 文件中的这一行配置可以将 exFAT 格式的分区自动挂载到 /mnt/sdb3 目录下,具体的配置信息如下:

UUID=B804-9CBF: 表示设备的 UUID,用于唯一标识该分区。您可以通过运行命令 sudo blkid 来查看所有可用块设备和它们的 UUID。

/mnt/sdb3: 表示分区挂载的目录。如果该目录不存在,则需要先创建该目录才能进行挂载操作。

exfat: 表示该分区使用 exFAT 文件系统格式。

defaults,nofail,umask=0000: 表示文件系统的默认挂载选项,包括读写权限、异步 I/O 操作等。此外,还设置了 nofail 参数,以确保即使在挂载失败时也不会阻止系统启动。umask=0000 则禁用了掩码,使得文件和目录的权限可以被设置为最大值。

0 0: 表示备份频率和检查顺序的参数,对于 exFAT 分区来说,这些参数并不适用。


PS:

1,在使用 /etc/fstab 文件自动挂载文件系统时,一定要确保目标挂载点存在,并且您有相应的权限进行挂载。

2,建议在修改 /etc/fstab 文件之前先备份该文件,以免出现意外情况。

3,是defaults 而不是default。

4,指定多个用户或用户组权限可以直接逗号隔开UUID=<partition-UUID> <mount-point> <file-system-type> defaults,nofail,uid=www,gid=hhh,uid=user1,gid=group1 0 0

5,需要所有用户都有读写权限可以直接这么写UUID=<partition-UUID> <mount-point> <file-system-type> defaults,nofail,,umask=0000 0 0


THE END
相关文章
评论列表
  • 暂时还没有人评论哦,来占个沙发吧?
发布评论
提交