Grub2 rescure



先说问题:
今天手痒,想安装Kubuntu看看,而且想安装到U盘,结果安装完后U盘启动到一个闪烁到光标就卡了,拔掉U盘后就显示出来了Grub Rescure……唉
解决办法:
rescue 模式模式下的命令貌似没有几个,这句是废话。
首先:ls
查看硬盘分区情况,如果你知道grub安装在哪儿了(比如我的在(hd1,3)/grub/,这个要记住,后面/grub的地方都要改成你对应的),那么就直接进行下一步。
如果不知道,那就ls每个分区,如:ls (hd1,3)/ ,如果正确就会显示里面到内容,直到找到grub
第二:set
直接输入set可以查看root和prefix的配置,这步需要将它给成你找到到地方
例如我的如下:
代码:
grub rescue>set root=(hd1,3)
grub rescue>set prefix=(hd1,3)/grub
//上面是设置的,然后set查看下
grub rescue>set
grub rescue>root=hd1,3
grub rescue>prefix=(hd1,3)/grub
第三:insmod
这时继续如下输入就可以,会进入grub的菜单。
grub rescue>insmod /grub/normal.mod
第四:normal
直接输入normal进入普通模式
rescue:grub>normal
看到你期盼的系统菜单了吧,终于可以进入系统了,哈哈哈
第五:update
进入系统后,首先
sudo update-grub將選單修正,再
sudo grub-install /dev/sda
sda是你的启动磁盘~
OK,搞定一切了~@!

参考1:
Grub2 中的运行模式,有了些许变化: Normal 也就是常规模式,包括了菜单界面与控制台,即是 Grub 传统版的默认模式。还有一个是 Rescue 模式,这个是受限模式,比如 Grub 没有能找到 root 设备,就会进入这种模式。
通常,我们可以在 normal 模式下输入 'rescue' 即可进入 rescue 模式;在 rescue 模式下输入 'normal' 即可进入 normal 模式。可是,通常后一种情况,需要我们做些一个相关设置才可以进入菜单:
set root=(hd0,1)                     - 指定根分区为第一个磁盘,里面包含了 grub.cfg
set prefex=/boot/grub             - 指定路径前缀,以构成菜单文件字符串 ' (hd0,1)/boot/grub/grub.cfg' ( 通常也不需要修改 )
然后输入 'normal' 就可以换回常规的菜单模式了。

参考2:http://danielliang.blogspot.com.sixxs.org/2009/10/grub2-rescue.html
昨天裝Ubuntu 9.10時預留一個空間要作交換資料用,之後先回到windows把它切成主分割區並format成FAT32,結果重開機後Grub就說unknown filesystem接著顯示

grub rescue>

結果打help也沒用..本來就對grub沒啥研究,而且之後上網發現這次是grub2和舊版grub的用法又不太同-.-


最後總算找到

https://help.ubuntu.com/community/Grub2


解決方法大概如下:


grub rescue>set
prefix=(hd0,3)/boot/grub
root=hd0,3

我安裝時就知道 / 是 /dev/sda3,對照(hd0,3)是沒問題的。


而現在應該是把後面空出來的也切成一塊,而使號碼往前移


grub rescue>ls
(hd0), (hd0,5), (hd0,4), (hd0,3), (hd0,2), ...

看來很有可能,總之先試試


grub rescue>set root=(hd0,2)
grub rescue>set prefix=(hd0,2)/boot/grub
grub rescue>insmod normal
........
rescue:grub>normal

就回到選單啦!當然選單中的硬碟號碼一定也不對,就記得先修正再boot


進入系統後,就先


sudo update-grub

將選單修正,再


sudo grub-install /dev/sda

大功告成!如果沒做 grub-install,就有每次開機都練習 grub2 rescue mode的機會:P


...當然我沒有一次就那麼順利,這是把失敗的地方全部刪掉才有那麼簡捷的文件XD


而且網路上完全沒有這種範例我才打的..