我目前正在运行 Windows 8 和 Ubuntu 12.04 的双启动。我最近遇到了几个 Ubuntu 问题(例如丢失密码等),所以我尝试通过恢复模式启动。但不幸的是,每次我运行恢复模式时,它都会加载一些进程然后冻结,因为之后什么都没有发生,它只是一直在那里等待。我的规格是:
ubuntu 12.04 LTS
版本 12.04(精确)64 位
内核 Linux 3.2.0-58-generic
GNOME 3.4.2
Intel® Core™ i5-3210M CPU @ 2.50GHz × 4
答案1
如果正常启动成功,但恢复模式冻结,则可能是恢复模式的内核命令行导致了问题。要么是它有一个导致此错误的选项,要么是它缺少一个选项。
默认情况下,恢复模式的内核命令行不包含参数"quite splash"
,但包含"recovery nomodeset"
参数。如果您在文件中为正常启动添加了额外参数/etc/default/grub
,那么恢复模式的内核命令行中也会缺少这些参数。显然,"quiet splash"
在恢复中不需要,但"recovery"
需要。
因此,首先我建议您nomodeset
从恢复模式内核命令行中删除该参数,然后尝试使用该设置进行启动:
- 在 GRUB 中,在恢复菜单项上按E编辑菜单项。
nomodeset
从以 开头的行中删除参数linux
。- 按CTRL+X使用修改后的内核命令行进行启动。
如果这不能解决问题,请上传您的/boot/grub/grub.cfg
文件,以便我们查看您的正常内核命令行上还有哪些其他选项,这些选项在恢复中也可能需要。(或者您可以自己检查并将它们添加到您的恢复命令行。)
要使更改永久生效,您必须编辑文件/etc/grub.d/10_linux
,在文件中搜索nomodeset
单词并删除它们。(最好在编辑文件之前对其进行备份,以防万一。)对我来说,出现了以下两个结果:
if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
if [ -x /lib/recovery-mode/recovery-menu ]; then
linux_entry "${OS}" "${version}" true \
"recovery nomodeset ${GRUB_CMDLINE_LINUX}"
else
linux_entry "${OS}" "${version}" true \
"single nomodeset ${GRUB_CMDLINE_LINUX}"
fi
fi
所以我必须将其改为
if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
if [ -x /lib/recovery-mode/recovery-menu ]; then
linux_entry "${OS}" "${version}" true \
"recovery ${GRUB_CMDLINE_LINUX}"
else
linux_entry "${OS}" "${version}" true \
"single ${GRUB_CMDLINE_LINUX}"
fi
fi
然后运行sudo update-grub
。