Ubuntu 20.04生产服务器进入紧急模式且多数命令失效,文件系统只读无法恢复求助
Ubuntu 20.04生产服务器进入紧急模式且多数命令失效,文件系统只读无法恢复求助
别慌,先稳住——你因为修复dpkg更新问题时的误操作,导致系统核心命令丢失、进入紧急模式且文件系统只读,咱们一步步来尝试恢复,尽量保住你的配置。
核心问题分析
你在移动/var/lib/dpkg/info目录的操作中,可能意外破坏了dpkg的依赖追踪体系,加上系统异常重启引发了文件系统损坏,才导致现在的窘境。当前的核心突破口是通过外部救援介质启动,挂载原系统分区后逐步修复。
恢复步骤
1. 准备Ubuntu Server 20.04救援介质
制作一个Ubuntu Server 20.04的安装U盘/光盘,用它启动你的服务器。在启动菜单里选择Rescue a broken system(救援损坏的系统);如果没有这个选项,就选Try Ubuntu Server进入临时系统后手动操作。
2. 挂载原系统分区为读写模式
- 进入救援模式后,按提示选择语言、键盘布局,一路选
Continue直到出现Detect and mount Ubuntu installation选项。 - 选择你的根系统分区(通常是
/dev/sda1或类似,根据服务器磁盘配置判断),务必选择挂载为读写模式(rw),不要选只读。 - 挂载完成后,选择进入
chroot环境——这会让你直接操作原系统的文件,和在正常系统里操作完全一致。
3. 修复dpkg与系统依赖
进入chroot环境后,先修复dpkg的状态:
dpkg --configure -a
接着重新同步软件源并修复损坏的包:
apt-get update apt-get -f install
这一步会自动修复/var/lib/dpkg/info目录里的依赖信息,逐步恢复系统的核心命令和包管理状态。
4. 修复文件系统损坏
系统进入只读模式大概率是因为文件系统存在错误,先退出chroot(输入exit),然后卸载原系统分区:
umount /mnt
之后运行文件系统检查工具(替换/dev/sda1为你的根分区):
fsck -y /dev/sda1
-y参数会自动修复检测到的错误,耐心等待检查完成即可。
5. 修复引导项(可选但建议执行)
重新挂载原系统分区并进入chroot:
mount /dev/sda1 /mnt chroot /mnt
更新grub引导配置:
update-grub grub-install /dev/sda
注意这里/dev/sda是你的磁盘设备(不是分区),如果是NVMe硬盘可能是/dev/nvme0n1,根据实际情况调整。
6. 重启验证
退出chroot(输入exit),拔掉救援介质,输入reboot重启服务器,看看能否正常进入系统。
备选方案(若上述步骤无效)
如果/var/lib/dpkg/info目录损坏严重,可以从你昨天的备份里恢复该目录:
- 在救援模式下挂载备份存储(比如外接硬盘)。
- 将备份里的
info目录覆盖到原系统的/var/lib/dpkg/info路径。 - 再执行步骤3的dpkg和apt修复命令。
备注:内容来源于stack exchange,提问作者LM_I




