Linux 自动挂载 —— fstab
参数解析
一个/etc/fstab示例
| 需要挂载的分区名 | 挂载目标位置 | 分区格式 | 挂载选项 | Dump 备份标志 | Fsck 检查顺序 |
|——————|————–|———-|———————————————|—————|—————|
| PARTLABEL=home | /home | ext4 | defaults | 0 | 2 |
| PARTLABEL=var | /var | ext4 | defaults | 0 | 2 |
| PARTLABEL=swap | none | swap | sw,nofail,x-systemd.device-timeout=5s | 0 | 0 |
| LABEL=data | /data | ext4 | defaults,nofail,x-systemd.device-timeout=5s | 0 | 2 |
参数 1:文件系统标识(第 1 列)—— “你要挂载谁?”
这是告诉系统你要挂载的具体是哪个分区。
PARTLABEL=home/PARTLABEL=var/PARTLABEL=swap:这是通过分区的“分区表标签”来精准定位。PARTLABEL指的是 GPT 分区表中设置的名字。这种方式非常稳妥,哪怕你把硬盘插在不同的 SATA 接口上,系统也能通过名字认出它。LABEL=data:这是通过文件系统的 “卷标” 来定位。相当于这块格式化好的分区自己有个名字叫 “data”。
参数 2:挂载点(第 2 列)—— “把它放在哪儿?”
这是指定分区挂载到系统目录树的哪个位置。
/home:通常用来存放用户个人的文件、下载内容和配置。把它单独挂载,重装系统时就不会丢失个人数据。/var:用来存放经常变化的数据(比如日志、数据库、Docker 容器数据)。单独挂载可以防止日志爆满时把系统盘撑爆。/data:自定义的目录,一般用来存放重要的业务数据或仓库。none(Swap 分区):Swap 是交换分区,相当于 Windows 的“虚拟内存”,它不需要挂载到某个具体的文件夹,所以这里填none。
参数 3:文件系统类型(第 3 列)—— “这个硬盘是什么格式?”
告诉系统用什么驱动去读取这个分区。
ext4:目前 Linux 最经典、最稳定的日志文件系统格式。你的硬盘分区大概率都是这个格式。swap:专指 Swap 分区的类型。
参数 4:挂载选项(第 4 列)—— “以什么规矩挂载?”
系统挂载这个分区时要遵守的行为准则。
defaults:这是一个便捷写法,代表了一组默认的安全配置(包含 rw 可读写、suid、dev、exec、auto、nouser、async)。对于日常使用的普通分区,直接用defaults就足够了。sw:这是 Swap 分区的专属选项,等同于defaults,pri=0,意思是启用默认的交换空间优先级。nofail:即使该设备不存在或挂载失败,也不影响系统启动x-systemd.device-timeout=5s:systemd 等待该设备出现的超时时间为 5 秒
参数 5:Dump 备份标志(第 5 列)—— “需要用 dump 工具备份吗?”
这个数值只有 0 和 1 两种选择:
0:关闭。表示系统自带的dump备份工具忽略这个分区,不要对它做备份。(现在基本都用更现代的备份工具了,所以绝大多数情况填0即可)。1:开启。表示允许dump备份工具在需要时备份这个分区。
参数 6:Fsck 检查顺序(第 6 列)—— “开机时用 fsck 检查硬盘吗?”
决定系统开机自检硬盘的逻辑。
0:跳过检查。常用于 SSD、Swap 或网络共享盘。1:最高优先级。通常只给系统的根目录(/)使用。2:次高优先级。除了根目录以外的本地物理磁盘(像你的/home,/var,/data)一般都填2。系统会等根目录检查完后,再并行检查这些分区。
验证修改
每次改完 /etc/fstab 千万不要直接 reboot! 先运行下面这两句:
sudo mount -a
echo $?
sudo mount -a:这条命令会让系统按照你刚改的 fstab 规则,把所有还没挂载的盘当场挂载一遍。如果有错,它会立刻报错告诉你哪里写错了(比如盘不存在、格式不对)。echo $?:这句是检查上一句命令的执行结果。如果输出是0,说明一切完美;如果输出非零,说明有错误,这时候你去重启才是安全的。
留下评论