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

news/2025/1/18 11:04:09/

当 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

参考链接:armbian等linux系统修改fstab实现开机自动挂载磁盘(详解) - 知乎 (zhihu.com)


http://www.ppmy.cn/news/1405054.html

相关文章

Kaggle:收入分类

先看一下数据的统计信息 import pandas as pd # 加载数据&#xff08;保留原路径&#xff0c;但在实际应用中建议使用相对路径或环境变量&#xff09; data pd.read_csv(r"C:\Users\11794\Desktop\收入分类\training.csv", encodingutf-8, encoding_errorsrepl…

设计模式之旅:工厂模式全方位解析

简介 设计模式中与工厂模式相关的主要有三种&#xff0c;它们分别是&#xff1a; 简单工厂模式&#xff08;Simple Factory&#xff09;&#xff1a;这不是GoF&#xff08;四人帮&#xff0c;设计模式的开创者&#xff09;定义的标准模式&#xff0c;但被广泛认为是工厂模式的…

CSS基础语法-黑马跟课笔记-供记录与查询

一.CSS简介 1.1HTML局限性 只关注内容的语义&#xff0c;可以做简单的样式但是很臃肿且繁琐 1.2CSS优势 CSS层叠样式表&#xff0c;标记语言 设置HTML页面中的文本内容&#xff0c;图片外形&#xff0c;可以美化HTML&#xff0c;让页面布局更美观 HTML做框架&#xff0c;…

时间管理系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)大学生

本项目包含可运行源码数据库LW&#xff0c;文末可获取本项目的所有资料。 推荐阅读300套最新项目持续更新中..... 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含ja…

GIN实例讲解

第一个gin程序 package mainimport ("github.com/gin-gonic/gin" )func main() {// 创建一个 Gin 引擎实例r : gin.Default()// 定义一个 GET 请求的路由&#xff0c;当访问 /hello 路径时执行匿名函数r.GET("/hello", func(c *gin.Context) {// 获取查询…

freertosday3

1.总结任务调度算法之间的区别&#xff0c;重新实现一遍任务调度算法的代码。 答&#xff1a; 一、抢占式调度&#xff1a; 高优先级可以打断低优先级的执行&#xff0c;适用于优先级不同的任务。 二、时间片轮转&#xff1a; 相同优先级的任务有相同的时间片&#xff08;1ms&…

蓝牙耳机怎么连接电脑?轻松连接就靠这3个方法!

“新买了个蓝牙耳机&#xff0c;但是不知道应该怎么样才能连接上电脑&#xff0c;大家有什么方法可以将蓝牙耳机快速连接上电脑吗&#xff1f;” 随着科技的不断发展&#xff0c;蓝牙耳机已经成为我们日常生活中不可或缺的一部分。它们不仅方便我们随时随地享受音乐、接听电话&…

目标检测、识别和语义分割的标注工具安装

计算机视觉 图像分类&#xff08;目标检测&#xff09;&#xff1a;一张图像中是否含某种物体物体定位&#xff08;目标检测与目标识别&#xff09;&#xff1a;确定目标位置和所属类别。语义分割&#xff08;目标分割和目标分类&#xff09;&#xff1a;对图像进行像素级分类…