问题描述
Possible Duplicate:
我该如何修复grub? (如何在安装Windows之后重新启动Ubuntu?)
我崩溃后安装了Windows 7,现在我无法启动Ubuntu。 Ubuntu分区仍在那里。我尝试使用Boot-Repair,但它没有用!
最佳解决办法
您可以使用LiveCD为您的发行版本在主引导记录中使用re-install grub,
它是这样的:
-
从LiveCD启动⋯请尝试使用与安装版本具有相同版本的Grub2的LiveCD
-
将已安装的Ubuntu的根目录挂载在/mnt
-
改变根
-
更新grub
-
安装grub
-
重启
以上步骤来自near the bottom of the Ubuntu Community Documentation of Grub2
从liveCD启动后(在打开的屏幕上选择”Try Ubuntu”)
然后启动一个终端(短划线,type-in终端,…)…
-
在运行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的re-install 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:
-
打开实时版本。
-
打开终端并运行
sudo fdisk -l
以查看Linux的安装位置。 -
运行
sudo mount /dev/sdaX /mnt
,其中x是您找到Linux word的数字 -
运行
sudo grub-install --root-directory=/mnt /dev/sda
以安装grub。 -
运行
sudo update-grub
以更新grub,如果此命令不起作用,请在重新启动后运行它。 -
重启。
第三种解决办法
Boot-Repair是一个简单的工具,用于修复Ubuntu中可能遇到的频繁启动问题,例如在安装Windows或其他Linux发行版后无法启动Ubuntu,或者在安装Ubuntu后无法启动Windows,或者不再显示GRUB时,一些升级破坏GRUB等
备注:这也可以从live-CD或live-USB执行。
通过软件中心将“ppa:yannubuntu /boot-repair”添加到您的软件源,或者对于speeds-sake,使用新的终端会话添加它:
sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair
可以安装Boot-Repair&用于任何Ubuntu会话(正常会话,或live-CD,或live-USB)。 PPA包适用于Ubuntu 10.04,10.10,11.04,11.10,12.04和12.10。 source
第四种办法
安装Windows 7后,Windows引导加载程序已覆盖MBR。
要解决此问题,您可以在Windows中安装程序’EasyBCD’
安装EasyBCD后,请按照以下步骤恢复GRUB:
-
启动程序并从EasyBCD Toolbox中选择ADD NEW ENTRY
-
从操作系统列中选择’Linux/BSD’
-
在类型下选择GRUB(Legacy),然后单击ADD ENTRY图标
-
选择“是”以重新启动提示
-
重启后将显示GRUB,它将检测Ubuntu分区,以便您能够启动到Ubuntu
祝好运
下载链接:http://neosmart.net/download.php?id=1
第五种办法
Boot-Repair的工作原理:
-
我的电脑上安装了Windows XP和Ubuntu。
-
我安装了Windows 7,导致新的启动加载器没有Ubuntu。
-
我在启动光盘上安装了Boot-Repair,并且随着Windows 7和Windows XP更新了GRUB。
参考资料