Linux新增磁盘挂载与开机自动挂载技术文档

作者:Administrator 发布时间: 2026-08-13 阅读量:1 评论数:0

Linux 新增磁盘挂载与开机自动挂载技术文档

1. 文档目的

本文记录在 Linux 系统中,将一块已存在 ext4 文件系统的新增磁盘挂载到指定目录,并通过 /etc/fstab 实现开机自动挂载的完整方案。

本次实施结果如下:

项目配置
磁盘设备/dev/vdb
数据分区/dev/vdb1
分区容量300 GB
文件系统ext4
文件系统 UUIDef67fa03-7e38-41b4-9bac-16ea48aad9a0
挂载目录/mnt/data
使用用户ubuntu
自动挂载方式/etc/fstab + UUID

注意:本方案不会格式化磁盘,适用于磁盘分区已经存在文件系统的情况。格式化会清除分区内的数据,操作前必须确认磁盘状态。

2. 方案说明

自动挂载配置使用文件系统 UUID,而不是 /dev/vdb1 之类的设备路径。Linux 系统中的设备名称可能因硬件探测顺序变化而改变,而文件系统 UUID 通常保持不变,因此 UUID 更适合作为持久化挂载标识。

挂载参数中加入 nofail,即使磁盘临时缺失或未连接,系统也可以继续启动,避免非系统关键数据盘影响开机流程。

3. 前置检查

3.1 查看磁盘及文件系统

lsblk -o NAME,PATH,SIZE,FSTYPE,FSVER,LABEL,UUID,MOUNTPOINTS,TYPE,MODEL

本次识别到的新增磁盘信息为:

vdb      /dev/vdb    300G  disk
└─vdb1   /dev/vdb1   300G  ext4  UUID=ef67fa03-7e38-41b4-9bac-16ea48aad9a0

执行写入操作前,应确认:

  • /dev/vdb1 确实是需要挂载的新增磁盘分区;
  • 分区没有挂载到其他目录;
  • 文件系统类型为 ext4;
  • 磁盘中是否存在需要保留的数据。

3.2 获取 UUID

sudo blkid /dev/vdb1

预期输出类似:

/dev/vdb1: UUID="ef67fa03-7e38-41b4-9bac-16ea48aad9a0" BLOCK_SIZE="4096" TYPE="ext4"

4. 创建挂载目录

创建用于访问数据盘的目录:

sudo mkdir -p /mnt/data

在磁盘尚未挂载时,不建议向该目录写入业务数据,否则挂载后这些文件会被挂载的文件系统暂时遮蔽。

5. 配置开机自动挂载

5.1 备份原配置

修改 /etc/fstab 前先创建备份:

sudo cp -a /etc/fstab /etc/fstab.codex-backup

5.2 添加挂载配置

/etc/fstab 中增加以下一行:

UUID=ef67fa03-7e38-41b4-9bac-16ea48aad9a0  /mnt/data  ext4  defaults,nofail  0  2

各字段含义如下:

字段含义
UUID=...使用文件系统 UUID 定位分区
/mnt/data挂载目录
ext4文件系统类型
defaults,nofail使用默认参数;磁盘缺失时不阻塞启动
0不使用传统 dump 备份
2启动时进行文件系统检查,顺序位于根文件系统之后

/etc/fstab 是系统关键配置文件。UUID、文件系统类型或挂载参数填写错误可能导致挂载失败,因此修改后必须先验证,不能直接依赖重启测试。

6. 挂载并验证

6.1 应用 /etc/fstab

sudo mount -a

如果命令没有报错,说明配置可以正常执行。

6.2 校验配置

findmnt --verify --verbose

本次验证结果为:

0 parse errors, 0 errors

6.3 检查挂载状态

findmnt /mnt/data --output TARGET,SOURCE,FSTYPE,OPTIONS
df -hT /mnt/data

本次挂载结果为:

TARGET     SOURCE      FSTYPE  OPTIONS
/mnt/data  /dev/vdb1   ext4    rw,relatime

容量检查结果约为:

Filesystem  Type  Size  Used  Avail  Use%  Mounted on
/dev/vdb1   ext4  295G   65M   280G    1%  /mnt/data

标称 300 GB 的磁盘在系统中显示约 295 GB 属于正常现象,与容量单位换算及文件系统元数据占用有关。

7. 配置目录权限

磁盘挂载成功后,其根目录最初不一定属于业务用户。本次将挂载根目录的属主设置为 ubuntu

sudo chown ubuntu:ubuntu /mnt/data

该命令只修改 /mnt/data 根节点的属主,不递归修改磁盘内已有文件。

验证普通用户是否可写:

touch /mnt/data/.write-test
rm /mnt/data/.write-test

查看最终权限:

ls -ld /mnt/data

本次结果为:

drwxr-xr-x ubuntu ubuntu /mnt/data

8. 最终配置

本次系统的 /etc/fstab 内容如下:

LABEL=cloudimg-rootfs  /          ext4  discard,errors=remount-ro  0  1
LABEL=UEFI             /boot/efi  vfat  umask=0077                 0  1
UUID=ef67fa03-7e38-41b4-9bac-16ea48aad9a0  /mnt/data  ext4  defaults,nofail  0  2

9. 重启后检查

系统重启后,可使用以下命令确认自动挂载是否生效:

findmnt /mnt/data
df -hT /mnt/data

如果输出显示来源为 /dev/vdb1、文件系统为 ext4,即表示开机自动挂载正常。

10. 卸载与回滚

10.1 临时卸载

确保没有进程正在使用该目录,然后执行:

sudo umount /mnt/data

如果提示目标忙,可检查占用进程:

sudo fuser -vm /mnt/data

10.2 取消开机自动挂载

/etc/fstab 删除或注释下面这一行:

UUID=ef67fa03-7e38-41b4-9bac-16ea48aad9a0  /mnt/data  ext4  defaults,nofail  0  2

然后重新校验:

findmnt --verify --verbose

10.3 使用备份恢复

本次修改前的备份文件为 /etc/fstab.codex-backup。如需整体恢复:

sudo cp -a /etc/fstab.codex-backup /etc/fstab
sudo mount -a
findmnt --verify --verbose

恢复前应先检查备份内容,避免覆盖之后由管理员新增的其他有效配置。

11. 常见问题

11.1 mount -a 提示 UUID 不存在

重新检查实际 UUID:

sudo blkid

确认 /etc/fstab 中没有拼写错误,并确认磁盘已正确连接。

11.2 挂载成功但普通用户无法写入

检查目录属主和权限:

ls -ld /mnt/data

如该数据盘应由 ubuntu 用户独占使用,可执行:

sudo chown ubuntu:ubuntu /mnt/data

多人共享场景应使用专用用户组和组权限,不建议直接设置 chmod 777

11.3 为什么不直接使用 /dev/vdb1

/dev/vdb1 取决于系统识别磁盘的顺序,在增加、移除或调整磁盘后可能发生变化。UUID 与文件系统绑定,作为持久化配置更稳定。

11.4 为什么使用 nofail

该磁盘是额外数据盘而非根文件系统。加入 nofail 后,即使磁盘临时不存在,系统仍可以完成启动。但依赖该数据盘的应用仍应单独检查挂载状态后再启动。

12. 操作总结

本方案完成了以下工作:

  1. 识别新增的 300 GB ext4 分区 /dev/vdb1
  2. 使用 UUID 建立稳定的持久化挂载配置;
  3. 将磁盘挂载到 /mnt/data
  4. 使用 nofail 降低数据盘缺失对系统启动的影响;
  5. 通过 mount -afindmntdf 验证配置;
  6. 将挂载根目录权限交给 ubuntu 用户;
  7. 保留 /etc/fstab.codex-backup 作为回滚备份。

评论