![Redhat 在 lvreduce /home 后启动进入紧急模式而不先卸载 - 我有什么选择?](https://linux22.com/image/209106/Redhat%20%E5%9C%A8%20lvreduce%20%2Fhome%20%E5%90%8E%E5%90%AF%E5%8A%A8%E8%BF%9B%E5%85%A5%E7%B4%A7%E6%80%A5%E6%A8%A1%E5%BC%8F%E8%80%8C%E4%B8%8D%E5%85%88%E5%8D%B8%E8%BD%BD%20-%20%E6%88%91%E6%9C%89%E4%BB%80%E4%B9%88%E9%80%89%E6%8B%A9%EF%BC%9F.png)
我使用 lvreduce 来减小 /home 的大小以将其分配给交换区。我之前错误地没有umount,也没有在应用lvreduce前后使用fsck(也没有备份(;_;))。我重新启动了服务器,现在它启动到紧急模式,尝试按 ctrl-d 重复提示。登录 root 工程。
Dmesg 将 (AE_NOT_FOUND) 突出显示为错误,但即使在 /etc/fstab 中使用 /proc/mounts 的内容,它似乎也不起作用。我将 /etc/fstab 返回到之前的原始状态。
我能做些什么才能摆脱这种情况?
答案1
不卸载或运行 fsck 可能不是您的问题。你在攻击lv之前是否减小了lv上的fs大小? (请记住,如果是 xfs,则根本无法缩小)如果您已经重新分配了空间并调整了交换,则您的 fs 可能可以通过强制 fsck 部分恢复。如果您尚未重新使用该空间,请阅读以下内容。
启动到恢复模式(或使用介质启动)并 chroot 到 root fs,然后执行:
# vgcfgrestore --list <your volume group name here>
在执行reduce之前可能会有存档的元数据。如果您没有重新分配空间或对其进行任何其他操作,该工具将允许您恢复调整大小。如果没有额外的开关来调整 fs 的大小,则减少只会更改 lv 元数据,而不会破坏数据。