Grub2重装
- 使用启动盘运行ubuntu系统(制作windows+ubuntu的多系统启动盘)
- 使用sudo fdisk -l 或通过Dash运行Disk Utilities查看磁盘的详情,决定 grub2安装在
/dev/sda
或/dev/sdb
上 - 挂载root分区(假设root分区在/dev/sda1上)
sudo mount /dev/sda1 /mnt
- 绑定设备目录
sudo mount --bind /dev /mnt/dev
- 如果boot目录单独挂载一个分区上,那么你一定要执行这命令 (假设boot分区在/dev/sda2上)
sudo mount /dev/sda2 /mnt/boot
上面准备步骤完成 ,真正进入重装Grub的过程
- 切换root目录
sudo chroot /mnt/
- 更新grub.cfg文件
update-grub
- 安装Grub2
grub-install /dev/sda
- 卸载挂载点并重启
umount /mnt
reboot
- 进入磁盘上ubuntu系统,运行
sudo update-grub
就可以在Grub启动菜单中添加磁盘上所有系统的启动选项(包括windows系统)
Grub2修复
当上电开机,电脑只在屏幕左上角显示grub rescue>
,说明Grub2已经因为原分区结构改变导致被损坏。本质原因:由于grub2分为两部分,一般情况下第一部分是烧写在MBR内,另一部分位于某个分区的/boot/grub目录下(如果/boot单独分区,则直接写在对应分区的/grub目录)。由于强制改变原分区结构比如合并或删除分区,致使grub2的MBR程序找不到/grub目录下程序代码。
彻底删除Grub2:
只要进入Windows PE启动盘,运行MBR修复工具即可,或者运行故障修复台,执行MbrFix /drive 0 /fixmbr /win7
命令(详情查看MbrFix /? 帮助)
修复Grub2:
使用ls命令,一定找到Ubuntu安装分区:
grub rescue>ls
(hd0) (hd0,msdos1) (hd0,msdos5) (hd0,msdos6)…等等依次查找各分区下有没有/boot目录:
如果/boot没有单独分区,用以下命令:
grub rescue>ls (hd0,X)/boot/grub
如果/boot单独分区,则用下列命令:
ls (hd0,X)/grub
X表示各个分区
正常情况在屏幕上会显示很多文件并且这些文件的扩展名是.mod
和.lst
,但有一个文件是grub.cfg
。- 如果找到正确的grub目录所在分区,则设法临时性将grub的两部分关联起来
/boot没有单独分区的命令:
grub rescue>set root=(hd0,Y)
grub rescue>set prefix=(hd0,Y)/boot/grub
grub rescue>insmod /boot/grub/normal.mod
Y表示所找到正确的分区
grub rescue>normal
- 进入ubuntu后,在终端执行:
sudo update-grub
sudo grub-install /dev/sda
(Grub2 是否安装在/dev/sda上根据自己的具体情况而定!)