-
进入系统
- 通过控制台或远程连接登录故障的CentOS 7服务器。
-
进入超级用户root
- 执行命令:
sudo su -
或su -
并输入root密码。
- 执行命令:
-
查看挂载:df -h
- 执行命令:
df -h
- 目的:查看当前系统中文件系统的挂载点、使用情况,确认哪些LVM卷(通常是
/dev/mapper/...
或/dev/vgname/lvname
)应该挂载但未挂载。
- 执行命令:
-
查看自动挂载:cat /etc/fstab
- 执行命令:
cat /etc/fstab
- 目的:查看系统启动时需要自动挂载的文件系统及其配置,特别是LVM卷的挂载点和设备标识符(通常为
/dev/mapper/vgname-lvname
或UUID=...
)。
- 执行命令:
-
手动挂载:mount -a
- 执行命令:
mount -a
- 目的:尝试根据
/etc/fstab
的内容挂载所有文件系统。预期会有错误输出,指示挂载失败的具体设备/挂载点。
- 执行命令:
-
根据报错信息,找到缺失的路径
- 仔细阅读第5步执行
mount -a
产生的错误信息。 - 关键:找到报错中指示缺失或无法识别的逻辑卷(LV)或卷组(VG)的名称或路径。 例如
/dev/mapper/vgname-lvname
not found.
- 仔细阅读第5步执行
-
pv恢复用uuid
- 如果怀疑物理卷(PV)状态异常(如丢失),可能需要通过其UUID来识别和操作。准备使用PV的UUID进行恢复操作(此步是预备知识提示)。
-
uuid不对,pv恢复uuid(/etc/lvm/backup)
- (路径修正为
/etc/lvm/backup
) 如果发现PV的UUID与实际磁盘标识不一致:- 检查
/etc/lvm/backup/VGName
文件(其中VGName
是你的卷组名),查找其中记录的该PV原始的pv_uuid
。 - 对比实际磁盘上PV的UUID(使用
pvs -o +uuid
查看)。
- 检查
- (路径修正为
-
pv更换uuid
- 如果确认第8步中记录的原始UUID与当前磁盘PV的UUID不一致:
- 执行命令:
pvchange --uuid RandomNewUUID /dev/sdXn
(不建议完全随机生成,更推荐使用备份文件中记录的原始UUID!) - 或更安全的做法(推荐):使用备份文件中记录的原始UUID恢复:
pvchange --uuid OriginalUUIDFromBackup /dev/sdXn
- 目的:将磁盘上的PV UUID改为LVM元数据备份中记录的原始值(或一个正确的值),确保LVM能正确识别。
- 执行命令:
- 如果确认第8步中记录的原始UUID与当前磁盘PV的UUID不一致:
-
vgcfgrestore恢复 (修正:原笔记写为pvcfgrestore)
- (步骤名称修正为
vgcfgrestore
) 如果卷组(VG)状态异常(如unknown, partial)或元数据损坏:- 首先找到最近的元数据备份文件:
ls -l /etc/lvm/backup/VGName
(主备份文件) 和ls -l /etc/lvm/archive/VGName
(存档的备份,按时间戳命名)。 - 强烈建议先备份当前状态:
vgcfgbackup -f /root/current_backup.vg VGName
- 执行恢复命令:
vgcfgrestore -f /etc/lvm/backup/VGName VGName
(使用主备份文件) 或vgcfgrestore -f /etc/lvm/archive/VGName_timestamp.vg VGName
(使用存档备份)。 - 目的:将VG的元数据恢复到之前的正常状态。
- 首先找到最近的元数据备份文件:
- (步骤名称修正为
-
unknows状态解决
- 指解决VG或LV处于
unknown
状态的问题。 - 使用第10步的
vgcfgrestore
恢复元数据通常是关键。 - 恢复后,尝试
vgchange -a y VGName
激活卷组。 - 如果问题依然存在,检查
dmesg
或journalctl
是否有底层磁盘错误,并重复之前的UUID检查和元数据恢复步骤。
- 指解决VG或LV处于
-
激活状态
- 尝试激活卷组(VG)和逻辑卷(LV):
- 激活指定卷组:
vgchange -a y VGName
- 激活所有卷组:
vgchange -a y
- 目的:让LVM管理和识别卷组及其中的逻辑卷。
- 激活指定卷组:
- 尝试激活卷组(VG)和逻辑卷(LV):
-
回到第三步看报错信息,没有报错,则配置成功
- 再次执行步骤3:
df -h
- 再次执行步骤5:
mount -a
- 目的:检查LVM卷是否已经正确识别并在重启前尝试挂载文件系统。
- 如果
mount -a
没有报错,且df -h
能看到预期的挂载点,说明当前修复步骤已解决挂载问题(但重启后是否成功还需验证)。
- 再次执行步骤3:
-
报错分析,多才多,把路径还原出来
- 如果步骤13的
mount -a
仍有报错:- 仔细分析新的报错信息 (“报错分析”)。
- 信息中如果提到“太多的…”或路径问题(“多才多,把路径还原出来”):
- 检查
/etc/fstab
中的挂载点路径是否存在(使用ls -ld /path/to/mountpoint
)。 - 检查LV名称是否与
/etc/fstab
中使用的名称或路径完全匹配(特别是在vgchange -a y
之后使用lvdisplay
或ls /dev/mapper/
确认)。 - 检查逻辑卷设备路径在
/dev/mapper/
下的命名格式(vgname-lvname
,常含有-
,而/etc/fstab
可能写为vgname/lvname
)。 - 确保
/etc/fstab
中使用的设备标识(UUID或/dev/mapper/...
)与实际存在的设备一致(使用blkid
和ls /dev/mapper/
验证)。
- 检查
- 如果步骤13的
-
重启系统。重启smb
- 如果步骤13和14验证通过(
mount -a
无错):- 执行命令:
reboot
重启系统。 - 系统重启并成功登录后,如果系统依赖Samba服务:
- 执行命令:
systemctl restart smb
(或smbd
) 重启SMB服务确保其加载了新挂载的共享。
- 执行命令:
- 执行命令:
- 如果步骤13和14验证通过(
-
只要有问题,一步错步步错,千万要百度,不要触碰格式化。
- 重要警告:
- 整个流程风险极高,任何一步操作错误都可能导致数据完全丢失。
- 务必理解每一步操作的目的和潜在影响。如果不确定,立即停止。
- 强烈建议优先查阅LVM官方文档 (
man pvchange
,man vgcfgrestore
,man vgchange
)、权威技术博客或社区(而不仅仅是“百度”)。 - 绝对禁忌: 在尝试恢复的过程中,绝对不要执行
mkfs
,fdisk
等格式化或分区操作(“不要触碰格式化”),除非你已完全备份数据并明确知晓此操作会销毁数据。
- 重要警告:
(关于最后一行 是否激活: 找到/etc/lvm/archive/
):
- 该行是提示:
- 是否激活? 指的是检查卷组状态,使用
vgdisplay
或vgs
查看Attr
列。a
表示激活,p
表示部分激活。 - 找到
/etc/lvm/archive/
: 该目录存储了LVM自动创建的卷组元数据历史备份。当需要恢复到更早的状态时,应在此目录下查找按时间戳命名的备份文件(VGName_timestamp.vg
),并在步骤10 (vgcfgrestore
)中使用它们。通常优先尝试/etc/lvm/backup
里的文件。
- 是否激活? 指的是检查卷组状态,使用