我的台式电脑上安装了 Ubuntu 12.04 LTS 64 位,直到不久前它还运行良好。我尝试从电脑中删除 Kubuntu 安装并使用 11.10 Live CD 调整 Ubuntu 分区大小后重新启动进入 Ubuntu。重新启动后,grub 显示黑屏并显示
错误:没有这样的分区
grub rescue >_
我再次启动了我的 Live CD,Ubuntu 仍然安装着,我的所有数据也还在。我仍然无法启动 Ubuntu。我该怎么办?
答案1
看起来 Kubuntu 仍然控制着 GRUB。当你删除它时,你也删除了 grub 启动所需的文件。幸运的是,这应该很容易修复。
由于您已经在 Live CD 上,我认为最简单的方法是 chroot 到您的安装并运行 grub 安装脚本。首先在文件浏览器中打开您的 Ubuntu 安装(您的根分区,其中包含“etc”、“usr”和“home”等文件夹)以挂载它。
现在打开一个终端。
找到山点
在终端中输入mount
这将打印出几行。查找其中提到您的 ubuntu 安装的行/media
。它看起来像:
/dev/sda1 on /media/disk type ext4 (rw,relatime)
在上面的例子中,设备是/dev/sda1
,挂载点是/media/disk
。记下这一点,因为我们稍后会用到这些信息。
设置 Chroot
我们需要设置 chroot。这意味着我们将从 LiveCD 链接一些系统文件夹到您安装的系统。为此,请将以下文本粘贴到终端中,但将其替换/media/disk
为您之前找到的挂载点:
for i in sys dev proc; do sudo mount --bind /$i /media/disk/$i; done
上述命令运行以下三个命令:
sudo mount --bind /dev /media/disk/dev
sudo mount --bind /sys /media/disk/sys
sudo mount --bind /proc /media/disk/proc
这会将 /sys、/dev/ 和 /proc 绑定到 /media/disk 上的相同文件夹。这意味着 /media/disk/dev/ 实际上是 /dev/
现在我们准备 chroot。在终端中输入chroot /media/disk
,其中 /media/disk 是您的挂载点。
您现在应该会看到一个 root shell(提示符应该以 # 结尾)。此处执行的任何命令都仅限于您安装的分区,并且(大多数情况下)将像在安装的系统上一样运行。
修复引导加载程序
现在我们需要安装引导程序。在终端中,粘贴以下两行:
grub-install /dev/sda
update-grub
笔记:这假设您的计算机中只有一个驱动器。如果您有两个驱动器,或者您正在从 LiveUSB 驱动器运行,请确保将/dev/sda
上述命令中的设备替换为上面“查找挂载点”部分中的设备。不要在设备末尾添加数字。例如,如果您的分区的设备是/dev/sdb2
,那么您应该使用grub-install /dev/sdb
。
就这样!如果这些命令完成且没有错误,则重新启动计算机。
答案2
尝试从实时 CD 启动重新安装 grub?
答案3
请启动 Live CD,然后选择“试用 Ubuntu”。打开终端并运行:
sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
出现提示时按 Enter。完成后,运行
sudo apt-get install -y boot-repair && boot-repair
并使用默认设置。最后会给出一个链接。请告诉我们这个链接,以便我们帮助诊断。