很好,终于有问题出来。
前几天,想破解邻居的无线网络密码,在网上找了教程,找了教程就算了,还得写入硬盘映像到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