我的 Ubuntu Server 12.04 已经运行了几个星期,直到今天发生断电。
从那时起它就无法启动,监视器显示不支持的分辨率消息(服务器上没有安装 GUI 支持,它应该启动到文本模式)。没有启动任何服务,因此没有可用的远程连接。
硬件似乎没有损坏,我可以访问 BIOS,实时 Ubuntu 发行版也运行良好。即使系统驱动器看起来没问题,我也可以访问所有文件,所以我做了完整备份。我尝试检查系统日志,但没有新记录。
你能给我一些建议如何让它重新运行吗?驱动器分区是通过 LVM 创建的。
答案1
如果您能够启动实时 CD,请执行以下操作:
- 备份
/etc
、/var/backup
、/var/log/dpkg.log
、/home
(如果需要)以及任何数据您可能在其他地方安装了这些程序。否则无需备份程序,除非您安装了不在包管理下的程序(通常位于 中/opt
)。 - 如果有机会,您可以尝试
chroot
从救援 CD 进入现有系统(安装媒体应该可以正常工作):- 按照该问题答案中的说明保存包选择:让 apt-get(或 aptitude)使用 -y 运行但不提示替换配置文件?- 将其中的文件
pkgs_*.lst
与备份一起保存。 - 或者运行
dpkg --get-selections '*' > selection.txt
并保留selection.txt
您的备份。
- 按照该问题答案中的说明保存包选择:让 apt-get(或 aptitude)使用 -y 运行但不提示替换配置文件?- 将其中的文件
- 运行 Ubuntu Server 的库存安装(相同位数!)
- 按照该问题的答案中的说明恢复包选择:让 apt-get(或 aptitude)使用 -y 运行但不提示替换配置文件?
- 或者,使用前两个步骤中的
dpkg --set-selections < selection.txt
步骤来安装所选软件包。这应该可以有效地克隆现有的软件包选择。selection.txt
aptitude install
- 现在有两个选项可以恢复原始配置
- 如果您之前已经有了相当多的库存安装,那么您现在就可以完全覆盖
/etc
您的备份内容。 - 否则您将必须将旧配置合并到新配置中。
- 如果您之前已经有了相当多的库存安装,那么您现在就可以完全覆盖
将来,我还建议您安装并激活该etckeeper
软件包,因为它通过钩子确保apt
在安装之前和安装之后将更改/etc
提交到版本控制(默认情况下bzr
在 Ubuntu 上)。它多次拯救了我 - 如果只是为了验证哪些更改破坏了某个功能...
还有一件事对你的机器来说很有意义,那就是让它不那么依赖特定的分辨率(即让它在 GRUB 中使用最低的分辨率)。调整文件/etc/default/grub
以取消注释该行(即删除#
):
#GRUB_TERMINAL=console
并获得旧的 80x25 控制台分辨率。运行sudo update-grub
。
在某些机器上,这是获得可见输出的唯一可能。除此之外,GRUB 还提供了将其输出发送到串行端口的功能,内核也是如此。使用它。某些 BIOS 也这样做...