我在电脑崩溃后安装了Windows 7,现在无法启动Ubuntu。Ubuntu的分区还在,我尝试使用Boot-Repair修复,但没有成功!
您可以使用您发行版版本的 LiveCD 在主引导记录中重新安装 grub,
步骤如下:
从 LiveCD 启动 ⋯ 请尝试使用与已安装版本相同的 Grub2 的 LiveCD
在 /mnt 下挂载已安装的 Ubuntu 的根目录
切换到根目录
更新 grub
安装 grub
重新启动
上述步骤来自于 Ubuntu Grub2 社区文档末尾附近
从 LiveCD 启动后(在开机界面选择“尝试 Ubuntu”)
然后启动终端(点击 dash,输入 terminal,...)...
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
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
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
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
sudo reboot
,一切都正常运行。 - Ben Leesudo mount /dev/<EFI PARTITION> /mnt/boot/efi
- CyberEdgrub-install: error: cannot find EFI directory.
- ITW试一下这个...
恢复 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,如果此命令不起作用,重新启动后再运行。usr/sbin/grub-probe: error: faild to get canonical path of 'aufs
。 - user3486308sudo update-grub
对我也没有用。不过Grub还是能正常工作的,非常感谢这个解决方案。 - Simplesudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair
Boot-Repair的作用: