你可以使用发行版本的LiveCD在主引导记录中重新安装grub。
它是这样的。
从LiveCD启动 ⋯ 请尝试使用与安装版本相同的Grub2的LiveCD。
将已安装的Ubuntu的根目录挂在/mnt上
改变根目录
更新grub
安装grub
重新启动
以上步骤来自靠近Ubuntu社区Grub2文档的底部 。
从liveCD启动后(在打开的屏幕上选择"Try Ubuntu")。
然后启动终端(dash,输入终端,...)...
在终端中输入 "sudo fdisk -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会被安装。
试试这个...
要恢复grub。
1.打开实时版本。
2.打开终端,运行sudo fdisk -l
以查看Linux的安装位置。
3.运行sudo mount /dev/sdaX /mnt
,其中x是你发现的Linux字段的编号。
4.运行sudo grub-install --root-directory=/mnt /dev/sda
来安装grub。
5.运行sudo update-grub
来更新grub,如果这个命令不起作用,在重启后运行它。
6.6. 重新启动。
安装Windows 7后,Windows引导程序已经覆盖了MBR。
为了解决这个问题,你可以在Windows中安装一个程序'EasyBCD'。
在安装EasyBCD后,按照这些步骤来恢复GRUB。
1.启动该程序,从EasyBCD工具箱中选择ADD NEW ENTRY
2.从操作系统栏中选择'Linux/BSD'。
3.在类型下选择GRUB (Legacy),然后点击ADD ENTRY图标。
4.在重启提示中选择YES
5.重启后将显示GRUB,它将检测Ubuntu分区,以便你能够启动到Ubuntu。
祝您好运