|
好久没有写博客了,今天来发文纪念一下非常之蛋疼的一天(一下午)。
最近在搞嵌入式开发,嵌入式开发当然少不了Qt,但是以前没有玩过Qt哇。安装Qt的qt-x11源代码就让我非常之上火!
昨天晚上编译了半晚上也没有弄好,虽然fedora 18是才新装上的,但是已经让我弄得乱七八遭了。。。
恰好手上有Ubuntu 12.10的U盘live,于是乎一冲动就吧win8 盘格式化了,重启进入u盘引导了。
于是乎,注定了今天一下午的蛋疼。
安装Ubuntu的时候他提示和win7共存,说明已经识别win7的启动项了,但是却没有提示有fedora 的存在,但是我也没有太在意,就直接下一步了。
重启果然没有了fedora的开机引导,但是一看他的盘还在,说明系统还在。本来以为Ubuntu里运行一下update-grub就好了,但是事实总是事与愿违,试了一下grub-mkconfig当然也是失败告终。
ubuntu 12.10用的是grub,而fedora 用的是grub2,也许这是失败的原因(猜测的)。
后来在网上逛了一圈,说是用U盘live开机,然后。。。
然后我就台式机上下载了fedora的KDE live ,用usb creator 制作了U盘启动,但是悲剧再次发生,从U盘启动直接就没有反应,一个黑屏让我傻了眼。无奈有重做了U盘启动,还是不行,百思不得其解,换了台电脑还是不行有木有哇!!
这才想到可能是U盘有问题。。。
于是换了一个4G内存卡,直接妥了哇!!!过去一直用这个U盘做各种启动盘一直很好用,这次为啥就不行了呢。。原因还不知道,有可能这U盘已经到尽了,他为我做出的贡献已经不少了。扯远了。
进去之后是这样干的:
su
mount /dev/sda /mnt
grub-install-root-directory=/mnt /dev/sda //install grub2 to MBR
结果显示错误(啥错误记不住了。。。)
后来一想把 Ubuntu 系统的 /boot 挂载上然后再 。。。
umonut /mnt
mount /dev/sda9 //我的Ubuntu系统所在的分区
cd /boot/grub
然后看到了 grub.cfg
有点激动的试了一下
grub-mkconfig -o /mnt/boot/grub/grub.cfg
结果总是不那么让人感觉到爽。没有发现fedora.后来才发现其实这和在Ubuntu里执行是一样的。
再试:
umount /mnt
mount /dev/sda11 //我的fedora系统所在盘
cd /mnt/boot/grub2
然后试了一下
grub-mkconfig -o /mnt/boot/grub2/grub.cfg
果然有惊喜,找到了fedora 18 的开机启动项。
然后一下午就这么过去了。。。
到了晚上来写个博客,记录一下修复过程,悲剧再次发生。
不知道哪根筋又答错了,突然执行了以下命令:
rpm -qa qt*
然后又不小心执行了一句:
yum remove qt-x11-4.8.4-14.fc18.i686
一边执行一边写博客,就在这时,电脑突然黑屏了,显示若干错误,
图形化窗口突然关闭了。这!!!!
我辛苦写的博客。。。我估计是没有了。
然后在命令行下登陆,竟然还可以startx,
进去之后一切还好,不过chrome已经关了。打开chrome后,
ctrl+alt+t
回复上次关闭的窗口,结果博客圆是打开了,编辑随笔还在,题目竟然还在,坑爹的是内容木有了,而且写了80%的博客没有保存草稿。。。
哎!~悲剧总是一次一次的发生。
最后还是决定重写博客,记录不幸的今天。
最后的教训是:
不要随随便便就重装系统了,说不定哪天电脑的第一块扇区就崩了,我的U盘就已经不能做启动盘了。。。
以后不管干什么都要注意保存和备份数据。
还有就是 fedora 里面的yum remove 最好还是在有把握的情况下用,要不就要发生悲剧了。
最后在来张桌面图显摆一下 fedora 18 KDE
今天继续手贱,在win7下把 Ubuntu的系统盘给格式化了,结果理所当然的系统又没法引导了。。。。
网上搜索了一下,http://blog.iyunv.com/firefoxbug/article/details/7322763 试了试 他的方法,不知为何一直提示 /bin/bash 为未知文件或命令,试着挂载了一下/bin 到/media/bin,
还是不行!!
后来又找了一个方法,http://www.iyunv.com/Linux/2011-06/37556.htm,
在fedora 18 上使用的是grub2 ,命令稍微有点不同,于是:
grub2-install -?
看看使用方法如下:
[qin@localhost ~]$ grub2-install -?
Unrecognized option `-?'
Usage: grub2-install [OPTION] [INSTALL_DEVICE]
Install GRUB on your drive.
-h, --help print this message and exit
-v, --version print the version information and exit
--modules=MODULES pre-load specified modules MODULES
--boot-directory=DIR install GRUB images under the directory DIR/grub2
instead of the /boot/grub2 directory
--target=TARGET install GRUB for TARGET platform
[default=current]
--directory=DIR use GRUB images from DIR. Takes precedence
over target
--grub-setup=FILE use FILE as grub-setup
--grub-mkimage=FILE use FILE as grub-mkimage
--grub-mkrelpath=FILE use FILE as grub-mkrelpath
--grub-probe=FILE use FILE as grub-probe
--allow-floppy make the drive also bootable as floppy (default
for fdX devices). May break on some BIOSes.
--recheck delete device map if it already exists
--force install even if problems are detected
--force-file-id use identifier file even if UUID is available
--disk-module=MODULE disk module to use (biosdisk or native). This
option is only available on BIOS target.
--no-nvram don't update the `boot-device' NVRAM
variable. This option is only available on
IEEE1275 targets.
--removable the installation device is removable. This option
is only available on EFI.
--bootloader-id=ID the ID of bootloader. This option is only
available on EFI.
--efi-directory=DIR use DIR as the EFI System Partition root.
INSTALL_DEVICE must be system device filename.
grub2-install copies GRUB images into /boot/grub2, and uses grub-setup
to install grub into the boot sector.
Report bugs to .
用到的就是这一条了 :
--boot-directory=DIR install GRUB images under the directory DIR/grub2
instead of the /boot/grub2 directory
于是 :
grub2-install --boot-directory=/media /dev/sda
/media 下挂载的是fedira 的boot分区。
重启系统果然成功了。
2013年6月20日:
今天在一次记录我那悲剧的笔记本电脑.....
参加了一个比赛,就要答辩了,于是在windows7下吧那一块还空闲的50G硬盘分配了一个新的分区,然后打算就把这个盘作为专用盘去比赛,然后又创建了一个新的WIN用户,设置了一些硬盘访问权限。之后用的很爽,结果悲剧就在重启电脑的时候发生了!
重启之后直接错误进不了系统,提示 grub rescue ,当时我就不淡定了,不就是创建了个WIN用户么,又一想我还对硬盘分区动过手,估计就是这个原因了!
无奈只好Google了。。
找到了一些有用的东西:
由于在rescue模式下,只有少量的基本命令可用,必须通过一定的操作才能加载正常模块,然后进入正常模式。
rescue模式下可使用的命令有:set,ls,insmod,root,prefix(设置启动路径)
先假设grub2的核心文件在(hd0,8)分区,再来看看怎样从 rescue模式进入从(hd0,8)启动的正常模式(normal)。
在 rescue模式下search命令不能用,对不清楚grub2文件处于哪个分区的,可以用ls命令查看,比如
ls (hd0,8)/ 查看(hd0,8)分区根目录,看看有没有boot文件夹
ls (hd0,8)/boot/ 查看(hd0,8)分区的/boot目录下文件
ls (hd0,8)/boot/grub/ 查看(hd0,8)分区/boot/grub目录下文件
通过文件查看,可以确定 grub2核心文件处于哪个分区,接下来就可以进行从rescue到normal的转变动作:
先 ls 看看分区,根据分区列表,记下 / 分区的编号再 ls (hd0,x)/ 看分区目录下文件确定找到 / 分区,不对的话继续找。找到 / 分区的 (hd0,x) 继续
grub rescue>root=(hd0,x)
grub rescue>prefix=/boot/grub
grub rescue>set root=(hd0,x)
grub rescue>set prefix=(hd0,x)/boot/grub
grub rescue>insmod normal
rescue>normal -------->若出现启动菜单,即可进入系统。
但是这还没有完,因为在重启后问题依然在。
我们需要进入Linux中,对grub进行修复。
grub2-mkconfig -o /boot/geub2/grub.cfg
grub2-install /dev/sda (sda是你的硬盘号码,千万不要指定分区号码,例如sda1,sda5等都不对)
成功之后重启测试,grub2已经成功修复好了。
|
|