小白鼠1号
1
一直使用xp ,现在新加了uk 后,发觉一旦xp 做恢复后,uk 将失去引导
经过多方学习,有几种方法。总的说2种重建grub;1种在xp引导中显示uk 的。
我已经眼花缭乱,特请大家指点下。有没有错误的地方。。。。。。
+++++++++++++++++++++++++++++++++++
重装grub
1.用Live CD启动
2.打开终端,运行sudo grub命令(这里可能需要等一会儿),你会看到 grub> 这样的提示符
3.在提示符 grub> 后输入find /grub/stage1,你会得到一个运行结果,比如我的机子上结果是(hd0,5) (这个命令其实就是找出/boot所在分区)
4.运行 grub>root (hd0,5) (这个位置要填上你机子上的运行结果)
5.运行 grub>setup (hd0) 出现几行提示文字,最后是“… succeeded” 修复成功!
6.运行 quit
7.重启计算机,取出live CD
+++++++++++++++++++++++++++++++++++
刻录一个kylin的启动盘,选择试用,进去后打开终端,输入sudo update-grub
1、UP盘启动盘,进试用模式
2、打开文件浏览器,挂载你优麒麟所在分区
3、打开终端输入如下命令
sudo grub-install --root-directory=/media/用户名/所挂分区/boot /dev/sda
这表示你希望把grub安装进/dev/sda(把boot.img写进第一块硬盘的MBR)
++++++++++++++++++++++++++++++++++++++++++++++
还有种说法是
假如boot下面的东西都损坏了,那还得麻烦点:
$sudo grep -v rootfs /proc/mounts >sudo tee /etc/mtab 生成/etc/mtab
$grub-install --no-floppy /dev/hda 安装grub到mbr
然后建立menu.lst。
本人是小白,以上各种事从网上搜索到的。具体如何请大家品评
小叶冰城
3
弱弱的问一下楼主:
关于重装grub
1.楼主所说的live CD指的uk的安装盘的试用模式(live 模式)
如果是,则
测试结果: uk试用模式下没有grub这个命令,必须自己安装。该模式下只有grub install 命令。
安装了grub,sudo grub后键入find /grub/stage1 提示找不到/grub/stage1。 我去/boot/grub下面找了,木有发现类似文件。
所以楼主提示的第一个方法我是木有走通,还望楼主给予指点。
其他方法还未试过。
小叶冰城
4
还有撸主所说的第二种发表方法 的第三点sudo grub-install /dev/sda 这个命令
sudo grub-install 后面应该加上要加载的grub所在的路径吧,类似于 sudo grub-install xx盘/boot/ /dev/sda
如果不加路径,或者当前路径下没有grub文件,则grub-install命令应该是在当前中所在的目录下创建一个grub文件,再该grub 写到MBR(新创建的grub没有配置完全,只是一个模板,需要自己完善相应的 kernel initdr 等配置)
小白鼠1号
5
[
开始也说了,此贴是我在网上搜到的众多方法中的一些
http://forum.ubuntu.org.cn/viewtopic.php?f=139&t=65991
由于时间和版本的关系,不知道是否还能使用,请大家评判的
本人是小白一只。
find /boot/grub/stage1 寻找/boot所在分区,换用find /boot/grub/menu.lst 可能行吗??
小白鼠1号
6
确实有说用
sudo grub-install --root-directory=/media/用户名/所挂分区/boot /dev/sda
的
后来在网上找到 直接用sudo grub-install /dev/sda 命令的
就发上来,让大家看看是怎么回事了
小叶冰城
7
find /boot/grub/menu.lst 也不行。。menu.lst 貌似是ubuntu 9.04版本里面的,到9.10后用/boot/grub/grub.conf了… sudo grub
grub>find /boot/grub/grub.conf 提示也是找不到。。哈哈 撸主共勉 我也是小白,搞不懂grub!
小白鼠1号
8
谢谢了
我从网上找到的,帖子比较老了
看来是不对应现在的版本了
小叶冰城
9
撸主,不好意思,由于小白的我未经严格测试就对您的帖子进行回复,对造成的困扰表示抱歉!
今天一天经过捣鼓、测试发现,如果是在已安装的系统里面执行重装方法一(不是live CD)一切都可行。作用就是把当前系统所在分区的grub重写到MBR中。这时如果用sudo grub-install 写到MBR,则不要–root-directory=xxx指定路径,直接执行sudo grub-install /dev/sda(主硬盘)就可。如果是在试用模式下则加上你想要加载的grub的路径。 以上两种方法其实就是将分区系统的grub写到MBR。写入完成后附带执行一下命令update-grub命令。
linux多系统机器,如果MBR的引导文件已经损坏(系统里的grub一般不会损坏),手边又没有可用的系统盘或者usb启动盘,则开机后会弹出一个grub命令终端:在这个终端下只键入相应命令也可进入系统。我测试的原版命令(专门把损坏的grub写到MBR后测试的)
grub版本0.94(不同版本grub命令格式有出入)
1:grub> root (hd0,5)[我理解为指定要加载的内核所在的分区]
2:grub> kernel /boot/vmlinuz-3.13.0-35-generic root=/dev/sda6
3:grub> initrd /boot/initrd.img-3.13.0-35-generic
4:grub> boot
进入系统后,sudo apt-get install grub2-common,安装grub2 再执行上边的sudo grub-install 把系统的grub重写进MBR ,完事后update-grub。。OK!
我是小白,以上结果均是测试后自己总结的,如有错误还望指正,谢谢。
小叶冰城
10
grub> kernel /boot/vmlinuz-3.13.0-35-generic root=/dev/sda6 指定分区下内核所存在的路径
grub> initrd /boot/initrd.img-3.13.0-35-generic 用于帮助加载内核模块,让Linux内核在开机过程中不需挂载根目录就能载入所需要的模块。
手工了
小白鼠1号
11
方法一
我用安装版的uk 14.04
提示没有grub 也找不到文件位置。不知道是怎么回事
后来考虑到安装版系统下,可以使用 sudo grub-install /dev/sda 好像,更简单些
而 grub 完全损坏的情况,我没有想过
而且版本不同,核心版本也不同
要修复的话,直接用 试用模式 就可以了吧???
小叶冰城
12
而 grub 损坏 !最好的情况是你记得你系统所在的硬盘分区(hd×,×) 然后直接root(hd×,×)!
如果不知道,有耐心的话 也可以一个个试(hd0,0-9),如果正确, 你键入kernel /boot/v(斜杠后加小v)后按tab键他会把在当前分区找到的内核列出来,initrd也是一样,最后boot。 用试用模式也可以修复,至少我测试的那几次都成功了。 非常感谢你把小白我带进grub这一块,thx。