在双启动中内核从 0-26 升级到 3.2.0-27 后无法启动

在双启动中内核从 0-26 升级到 3.2.0-27 后无法启动

我的系统是双启动 Win7 / 12.04

/etc/fstab looks oK

/boot on sda5
/     on sda6
/home on sda7

fdisk -l is fine shows 3 sep logical partitions

/dev/sda3                             Extended  ( group container for 5,6,7
/dev/sda5  nnnnn    nnnnn  500MG  83  Linux  <-- grub also here
/dev/sda6  nnnnn     nnnn  40 GB  83  Linux
/dev/sda7  nnnnn    nnnnn  60 GB  83  Linux

如上所列,在尝试升级之前,/、/boot、/home 位于 3 个独立的逻辑分区上,并且 /etc/fstab 看起来正常。

升级过程中似乎发生的情况是,grub 失去了对 3 个独立分区的跟踪,并且无法处理 /home 目录位于另一个分区的用户登录。

当我升级后尝试登录时,/var/logs/auth.log 将显示该用户失败...

lightdm: pam_succeed_if(lightdm:auth):requirement "user ingroup nopasswdlogin" not met by user "rob" 
[system] rejected send message, 2 matched rules; type='method_call', sender=':1.103' (uid=104 pid=nnnn comm='/usr/lib/indicator-datetime/indicator-datetime-ser') interface''org.freedesktop.dbus.properties' member='getall' error name='unset' .... 

我进入 grub 菜单并进入 3.2.0-27 的“恢复”,然后“进入根目录”...

如果我查找 /home,则什么也没有。如果我查找 /boot/grub,则什么也没有

如果我随后返回到进入根目录的子菜单,这次选择“grub updte bootloader”,我会检索对 /home 和 /boot/grub 的引用,并且一切看起来都是一致的。

然后,我尝试从恢复的内部菜单重新启动,它转到我的帐户登录,我输入密码,但它就死机了,屏幕呈背光状态。

所以,我真的陷入困境。无法恢复到 3.2.0-26,也无法将 grub 组件拼接在一起以继续使用 3.2.0-27。

我认为没有任何东西被损坏,但是 grub 似乎被搞糊涂了,而且我不知道要使用什么命令序列才能恢复到 3.2.0-26 的状态。

脚注 我想要像下面 'aaa' 所说的解决方案,其中 grub update 会以某种方式将双启动元素重新拼接在一起。Matt 吓得我从我的 USB 记忆棒上重新安装,它是 vanilla amd64(我不认为它有替代解决方案)。

使用 3.2.0-26 恢复和 grub 恢复后,所有元素似乎都在那里。看起来 grub 在那里 - 虽然我不确定它是否回到了最初放置它的 /dev/sda5 上。

双启动解决方案中似乎存在一些非常脆弱的地方,其中 Win7 是 MBR 的主控制器,并且 MBR 指向 /dev/sda5 上的 grub。

有趣的是,在我重新安装后,我的笔记本电脑最终运行了 3.2.0-27。我通过执行 apt-get update,然后响应 Unity UI 中的抖动图标进行更新来实现这一点。大更新包括之前失败的 3.2.0-27 更新。只有这一次它成功了??

我只能说,当您拥有双启动拓扑结构时,系统软件升级的结果是值得怀疑的,其中原始 Win7 MBR 转发到在安装期间创建的第一个逻辑 sdaXX 分区上的 grub,而您选择创建自己的分区。当我决定是否在 Unity 提示我时应用升级时,我会非常警惕这种情况。

答案1

我目前正在处理同样的问题。要修复它,你需要重新安装 Ubuntu。如果不这样做,您将弄乱 Windows 7 和 Ubuntu 上的启动内核,并且必须从头开始重新安装 Windows 7 和 Ubuntu。当我告诉您这一点时,请注意我的警告。我按照说明在线修复了此问题,但最终删除了我之前的所有内核。

答案2

我遇到了同样的问题(Lubuntu 12.04 64 位)。在从 3.2.0.26 升级到 3.2.0.27 的过程中,/boot/grub似乎所有文件都已被删除,因此 GRUB 无法启动。我使用 Lubuntu“AMD64 备用安装”磁盘并选择“修复损坏的系统”修复了 GRUB。回答完所有各种设置问题后,从分区列表中选择损坏系统的根分区作为根提示符(例如 /dev/sdb1)。然后执行sudo grub-install /dev/sdb(假设之前的 MBR 在 /dev/sdb 上),然后sudo update-grub重新启动。这对我来说很有效。

就您而言,似乎需要选择 root 提示符进入。您在或/dev/sda6中看不到任何内容的原因是因为分区和未挂载。由于您在单独的分区上有 /boot,因此您需要挂载它。假设文件系统是 ext3,命令为:/boot/home/dev/sda5/dev/sda7

sudo mount -t ext3 /dev/sda5 /boot

sudo grub-install /dev/sda然后执行sudo update-grub并重新启动。该update-grub命令应该会查找并列出分区上的所有各种操作系统,包括 Windows。

相关内容