一般只要grub核心文件还在分区内,我们就能由rescue模式转换到normal模式下,进而通过命令进入系统。
在rescue模式下,只有以下命令可用:
set---设置变量值(同grub2命令)
ls--- 列出当前的所有设备。 e.g:(hd0) (hd0,1) (hd0,8) (hd0,7) and so on
这个命令可以有参数:
ls / 列出当前设为root的分区下的文件
ls (hd0,1)/ 列出(hd0,1)分区根目录的文件
insmod --- 加载模块
normal --- 进入正常模式(只有模块加载正确了才能进入normal模式)
因为在rescue模式下,木有search命令,所以我们就用ls命令来查看grub2文件处于那个分区
e.g: grub rescue> ls (hd0)/
error: unknown filesystem
/*可以用此命令挨个儿的遍历ls显示的所有设备,直到列出的目录文件,就说明grub2的核心文件在此分区了*/
ls (hd0,8)/ /* 查看(hd0,8)分区根目录,看有木有boot/ 文件夹*/
ls(hd0,8)/boot/ /*查看此分区的/boot/目录文件,能看到有grub/文件夹*/
ls(hd0,8)/boot/gurb/ /*查看此分区/boot/grub/目录下的文件,能看到很多.mod格式的文件还有.img文件 */
这样确定了grub2的核心文件在哪里之后,我们就开始转换工作咯:
grub rescue> set(回车) /* 查看grub当前的启动分区和路径 */
prefix=(hd0,8)/grub /* 确定预启动路径 */
root=hd0,8 /* 确定启动分区 */
grub rescue> set root=hd0,8 /* 设定grub启动分区 */
grub rescue> set prefix=(hd0,8)/boot/grub /* 设定grub启动路径 */
grub rescue> set(回车) /* 查看grub设定内容是否和实际的分区路径一致 */
root=hd0,8 /* 确定启动分区 */
prefix=(hd0,8)/boot/grub /* 确定启动路径 */
grub rescue> insmod /boot/grub/normal.mod
/* 刚才在查看分区/boot/grub/目录文件时,要注意看看是否有normal.mod文件,木有的话,此命令后会提示找不到此文件*/
grub rescue> normal /* 加载正常模块 */
/*以上操作成功后,我们就会进入正常模式,就能看到熟悉的grub启动菜单了*/
通常情况下,当我们进入到grub启动菜单后,就直接可以选择进入ubuntu系统。
在ubuntu下,更新重建grub:
#update-grub