答案1
您可以使用发行版的 LiveCD 在主引导记录中重新安装 grub,
具体如下:
从 LiveCD 启动⋯请尝试使用与安装的 Grub2 版本相同的 LiveCD
将已安装的 Ubuntu 的根目录挂载到 /mnt
更改根
更新 grub
安装 grub
重启
以上步骤来自Ubuntu 社区 Grub2 文档底部附近
从 liveCD 启动后(在打开的屏幕上选择“试用 Ubuntu”)
然后启动一个终端(破折号,输入终端,...)...
- 运行 LiveCD 时打开此网页可能更容易。Firefox 应该允许您这样做。
在终端中输入sudo fdisk -l
- 如果需要,请输入您的密码。密码是小写的 L。找到已安装的 Ubuntu 分区(从我的分区中截取了其他磁盘 — 此处):
me@mycomputer:~$sudo fdisk -l
...
Disk /dev/sde: 300.1 GB, 300089646592 bytes
255 heads, 63 sectors/track, 36483 cylinders, total 586112591 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc3f5ebeb
Device Boot Start End Blocks Id System
/dev/sde2 138464296 586110975 223823340 5 Extended
/dev/sde3 * 2048 138463231 69230592 83 Linux
/dev/sde5 138464298 313460279 87497991 7 HPFS/NTFS/exFAT
/dev/sde6 313460736 317650943 2095104 82 Linux swap / Solaris
/dev/sde7 317652992 581922815 132134912 83 Linux
/dev/sde8 581924864 586110975 2093056 82 Linux swap / Solaris
Partition table entries are not in disk order
找到您的 Linux 安装(Id=83,System=Linux0,然后输入
sudo mount /dev/sde3 /mnt
但使用你的分区而不是/dev/sde3
(我的根分区是 sde3,sde7 是我的主分区)。
这是假设您没有单独的/boot
分区。如果有,您还需要通过键入以下内容来挂载它
sudo mount /dev/sd·· /mnt/boot
sd··
安装单独启动目录的分区在哪里。
ls /mnt
- 只是想检查一下我是否理解正确:
me@mycomputer:~$ sudo mount /dev/sde3 /mnt
me@mycomputer:~$ ls /mnt
bin cdrom etc initrd.img lib media opt root sbin srv tmp var vmlinuz.old
boot dev home initrd.img.old lost+found mnt proc run selinux sys usr vmlinuz
您应该测试一下启动目录是否正确安装。输入ls /mnt/boot
,如果为空,则表示未安装启动目录。它应该看起来像这样:
me@mycomputer:~$ ls /boot
abi-2.6.35-30-generic initrd.img-2.6.35-30-generic System.map-2.6.35-31-generic
abi-2.6.35-31-generic initrd.img-2.6.35-31-generic vmcoreinfo-2.6.35-30-generic
config-2.6.35-30-generic memtest86+.bin vmcoreinfo-2.6.35-31-generic
config-2.6.35-31-generic memtest86+_multiboot.bin vmlinuz-2.6.35-30-generic
grub System.map-2.6.35-30-generic vmlinuz-2.6.35-31-generic
然后:
for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt #change the root
sudo update-grub # now update grub
例子:
me@mycomputer:~$ sudo for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done
me@mycomputer:~$ sudo chroot /mnt
me@mycomputer:~$ sudo update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.0.0-13-generic
Found initrd image: /boot/initrd.img-3.0.0-13-generic
Found linux image: /boot/vmlinuz-3.0.0-12-generic
Found initrd image: /boot/initrd.img-3.0.0-12-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Microsoft Windows XP Professional on /dev/sdc1
done
现在在 MBR 中重新安装 grub。您需要知道系统从哪个磁盘启动,并在fdisk -l
您已完成的列表中找到它。然后输入sudo grub-install /dev/sd
替换sd·
为您要从中启动的磁盘。
me@mycomputer:~$ sudo grub-install /dev/sd·
然后输入Crtl-D
退出 chroot。
然后输入sudo for i in /sys /proc /dev/pts /dev; do sudo umount /mnt$i; done
-一行
me@mycomputer:~$ sudo for i in /sys /proc /dev/pts /dev; do sudo umount /mnt$i; done
如果你安装了单独的 /boot 分区,请输入sudo umount /mnt/boot
me@mycomputer:~$ sudo umount /mnt/boot
然后输入sudo umount /mnt
me@mycomputer:~$ sudo umount /mnt
然后输入sudo reboot
以重新启动系统(记得删除 LiveCD)。
me@mycomputer:~$ sudo reboot
希望 grub 能够安装。
答案2
尝试这个...
要恢复 grub:
- 打开实时版本。
- 打开终端,运行
sudo fdisk -l
,查看Linux安装在哪里。 - 运行
sudo mount /dev/sdaX /mnt
,其中 x 是你在 Linux 中找到的单词的编号 - 运行
sudo grub-install --root-directory=/mnt /dev/sda
安装grub。 - 运行
sudo update-grub
更新 grub,如果此命令不起作用,请在重新启动后运行它。 - 重启。
答案3
Boot-Repair 是一个简单的工具,用于修复您在 Ubuntu 中可能遇到的常见启动问题,例如在安装 Windows 或其他 Linux 发行版后无法启动 Ubuntu,或者在安装 Ubuntu 后无法启动 Windows,或者 GRUB 不再显示,某些升级会破坏 GRUB 等。
备注:这也可以通过 live-CD 或 live-USB 执行。
通过软件中心将“ppa:yannubuntu/boot-repair”添加到您的软件源,或者为了加快速度,使用新的终端会话添加它:
sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair
可以从任何 Ubuntu 会话(普通会话、live-CD 或 live-USB)安装和使用 Boot-Repair。PPA 软件包适用于 Ubuntu 10.04、10.10、11.04、11.10、12.04 和 12.10。 来源
答案4
启动修复作品:
- 我的电脑上有 Windows XP 和 Ubuntu。
- 我安装了 Windows 7,结果产生了没有 Ubuntu 的新引导加载程序。
- 我使用启动盘安装了 Boot-Repair,并且 GRUB 与 Windows 7 和 Windows XP 一起更新。