Fedora 16 用Live CD 修复grub2,附“No root device”问题解决

很好,终于有问题出来。

前几天,想破解邻居的无线网络密码,在网上找了教程,找了教程就算了,还得写入硬盘映像到U盘,这也就算了,还要重写MBR。问题来了······重写MBR时,没有选中U盘,按了确定,噢噢!安装到硬盘后,我假装淡定,看到有咯选项“卸载MBR”,点了卸载,最后的最后,我安装的时候,没有备份原来的引导。等着开机,进不了系统吧。(偶三个系统,fedora、ubuntu、windows 7)

—————————————————废话终于结束了—————————————————————

grub2的修复,很多办法,介绍的这种,也是参考网上的,版权属原创所有。

准备工作:Fedora 16 的映像,我的是64位的;U盘一只(估计极少人还会521MB的U盘了?大小1G以上吧。);liveusb-creator软件;

Fedora系统网址:http://fedoraproject.org/zh_CN/get-fedora-options

liveusb-creator 下载网址:https://fedorahosted.org/liveusb-creator/#

一切都准备好了。就安装Liveusb-creator软件,它是长这样子的。

Persistent Storage  一般选择100MB就够了,个人理解它不仅挂载着相当/home目录下的内容,还保留这一些操作信息。例如你使用过的命令行等····

U盘里面的数据,最好备份一下(原因:我是格式化U盘的,没试过直接写映像进去。不过可以尝试留着几个没用文件 ,看看有没有格式化的。)

注:制作好了,插进U盘,选择U盘启动,不一定会成功。因为偶当时是进不了系统。

解决方法:参照Fedora15的做法,将U盘里:/syslinux/syslinux.cfg的文件用记事本打开。ctrl+F,输入“append initrd”,查找下一个,当然,如果你的光标在最后或不知在哪儿的话,很可能找不到或者找了也不一定是第一次出现的“append initrd”。(安全方法,光标放到第一行咯。)

在initrd.img后面添加 linux askmethod (在img后面空格添加)

ok,到此,出现选择界面了吧?

兴奋的敲打enter键后,

兴奋·····································

等···································

dracut Warning: No root device "live:/dev/disk/by-label/Fedora-16-x86_64-Live-KDE.iso" found

或者这样的错误:No root device found. Boot has failed, sleeping forever

当然,可能会出现不同以上错误的情况,进入到好像命令终端的家伙了。有linux基础的,敲几个命令,就知道没进系统啦,好多命令都没有滴。

解决方法:

输入命令:ls -l /dev/disk/by-label/

eg:

dracut:/# ls -l /dev/disk/by-label/
total 0
lrwxrwxrwx 1 0 root 10 Apr  9 12:39 LIVE -> ../../sdb1

看到吧,LIVE是U盘的卷标名。

重启,进入到grub选项时,按两下“e”,进入到boot启动命令参数编辑

引用原创的话:In my case, root=live:LABEL=Fedora-16-x86_64-Live-KDE.iso was changed toroot=live:LABEL=FEDORA-16.

对了,你没有看到root=live等字样,别着急,在后面补充就可以,ex:root=live:LABEL=LIVE    (LIVE是刚前面执行命令知道的。)

写完后,猛击一下“enter”键,再按“b”键,进行启动。

一次“b”键

两次“b”键

三次····

四次···

别傻啦。往往是刚才输入“LIVE”大写还没切换到小写。囧······

————————————————好像前面的很多废话—————————————————

行,立即修复grub2.

我试过最简单的修复是:

打开终端terminal,

$su      (切换root)

#grub2-install   /dev/sda     (前提时,你之前的grub2安装在sda下)(如果不行的话,加个 --force  ,如下:grub2-install  --force  /dev/sda)

安装成功后,就好搞了,(待续

(补充)还得重新生成一下配置文件

#grub2-mkconfig  -o  /boot/grub2/grub.cfg

这样就可以进入系统了。

#

#   

PS,在公司编辑文章,痛苦ing   ,明晚继续。


#————————————————8.26重要更新——————————————————

也快一个月了这篇文章,二十几天里,常常加班,都有点怕。不过,IT这一行,很多情况都要加班加点的。

好了,废话就不多说,进入话题。

前面讲到了,最简单的引导修复就是之间grub2-install  /dev/sda 。这方法也是我第一次尝试用的,一直觉得没有问题,直到我想改默认启动项时,问题出来了。因为我们当时用的是U盘里面的grub2-install  进行安装到到/dev/sda ,配置文件是/boot/grub2/grub.cfg  所以,当你不用U盘里的系统更改配置文件,是很难修改的,至少我现在还不知道怎样修改。

解决方法是:

进入你的系统Fedora/Ubuntu,

Fedora:切换到root用户,命令:su   输入密码。接着重新安装grub2,#grub2-install   /dev/sda   

跟着生成配置文件:grub2-mkconfig  -o   /boot/grub2/grub.cfg 

重启即可。

Ubuntu:运行命令:sudo  grub2-install   /dev/sda  

生成配置文件:grub2-mkconfig  -o  /boot/grub2/grub.cfg

重启即可。

至此,完美修复了grub引导。


——————————————分割线——————————————

因为参照别人文章写的,有人就问了,为什么不在用U盘修复时就一起搞定呢?还要拿掉U盘,进入原来系统再安装一次?问题问得好,现在就讲一下,我们一开始用U盘进入live系统后的步骤吧。

用LiveCD系统启动后,第一件事要做的是,回想你的系统安装在那个盘哩?像我三个系统,而且都分得好散,就一个一个的挂在紧media吧。偷懒的方法是打开文件管理器点击那些盘。直接就挂在了。不过,先用Disk unity 找一下Fedora或者Ubuntu安装哪里。找到后,可手动挂载(推荐方法)

su

mount  -t  ext4  -o  rw   /dev/sad10    /media  

10是你安装fedora系统的盘符。

好了,挂载后,就可以用到原来Fedora的文件资源了,这时,挂载进来的是没有硬件资源的,所以要分配系统的资源给它。

命令:

su

mount -t proc none /media/proc
 mount -o bind /dev /media/dev
 mount -o bind /sys /media/sys
 mount -t devpts devpts /media/dev/pts

挂完后用chroot命令切换到原来的fedora中去
 
 su
 chroot /media
 grub2-install /dev/sda

在这里,还需执行之前提过的生成配置文件。

grub2-mkconfig  -o  /boot/grub2/grub.cfg

执行这样的命令,就会在原来的/boot/grub2/下生成配置文件。

假如按后面参考网址来执行exit后才执行配置文件,这样的配置是起不到作用的。

好了,收尾工作开始啦。

exit
 umount /media/proc
 umount /media/dev/pts
 umount /media/sys
 umount /media/dev
 umount /media
 reboot

这样,grub2修复了,而且可以更改默认选项。当然,更改默认选项将会在下一篇日志详细说明。

第一次写技术文章,有不妥之处,请不吝指出,我会查阅并修改的。谢谢。


参考网址:

No root device Fedora 16


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值