Linux已有数据盘挂载与fstab配置
新增或重新接入的数据盘不一定需要格式化。只要盘上可能有数据,先识别设备、分区和文件系统,再挂载读取。本文以一个已存在ext4文件系统的附加分区为例,/dev/vdb1只是示例;不能把系统盘、未确认设备或其他文件系统直接套进流程。
先画清设备与挂载关系
lsblk -o NAME,SIZE,TYPE,FSTYPE,UUID,MOUNTPOINTS
findmnt -T /
sudo blkid /dev/vdb1
确认目标是预期附加盘的分区,容量、文件系统、UUID与已有资料相符;同时用findmnt确认它不是当前根文件系统。若FSTYPE为空、出现LVM/加密设备、盘容量不符或数据来源不明,先停止操作,不能为“让系统认盘”运行mkfs。
在空目录进行第一次只读挂载
sudo mkdir -p /mnt/baole-data
sudo ls -la /mnt/baole-data
sudo mount -o ro UUID=实际UUID /mnt/baole-data
findmnt -M /mnt/baole-data
sudo ls -la /mnt/baole-data
将实际UUID替换为上一步查到的完整值。挂载前目录应为空;挂载到已有内容的目录会把原内容暂时遮住,不表示文件已删除。ext4的ro挂载仍可能回放journal并产生磁盘写入,因此取证、故障盘或必须保持零写入的场景不直接套本流程,应先由专业人员建立受保护镜像;本篇不是数据恢复教程。挂载后核对SOURCE、FSTYPE、OPTIONS以及目录内容,确认确实是目标数据。如果文件系统报错或数据不符,保存错误并停止,不尝试格式化修复。
确认用途后配置持久挂载
若计划按读写方式长期使用,先确认没有进程占用该次只读挂载,再卸载;修改fstab前保存其原始副本,保留可信控制台或恢复入口。
sudo umount /mnt/baole-data
sudo nano /etc/fstab
为这块已经确认的ext4附加盘添加一行,保留其他原有条目:
UUID=实际UUID /mnt/baole-data ext4 defaults 0 2
六个字段依次为设备标识、挂载点、文件系统、选项、dump标记及启动检查顺序。本例使用UUID,避免设备探测顺序改变后盘符不同。可选的nofail会改变设备缺失时的启动处理,并不能修复磁盘;业务必须依赖数据盘时,应明确服务的挂载依赖,防止盘未挂载却把数据写进根分区。
先校验,再只挂这一项
sudo findmnt --verify --verbose
sudo mount /mnt/baole-data
findmnt -M /mnt/baole-data
df -hT /mnt/baole-data
出现UUID不存在、目录不存在或格式错误时先修正,不直接重启碰运气。校验工具通过不等于已完成真实挂载,必须检查后两条的设备、类型、容量和选项,再用实际业务账号测试所需读写。挂载权限与文件权限是两层事,不用递归chown整盘代替判断。
失败时按哪一层处理
| 情况 | 处理 |
|---|---|
| already mounted / 目录已被挂载 | 先findmnt查实际来源,不重复覆盖挂载 |
| wrong fs type / bad superblock | 核对设备与文件系统,保存错误并检查磁盘健康,不使用mkfs尝试 |
| target is busy | 找出实际占用并安排停止相关业务,不用强制或懒卸载掩盖问题 |
| 重启前检查仍不确定 | 先恢复fstab原记录,确认系统可启动,再由熟悉存储的管理员处理 |