居振梁[暴龙]

居振梁[暴龙]的博客

他的个人主页  他的博客

置之死地而后生,一次系统急救后的经验总结

居振梁[暴龙]  2009年08月02日 星期日 01:17 | 1203次浏览 | 2条评论

这个是08年12月份的经历,转到这来开个张。

原文地址 http://wargrey.yo2.cn/2008/12/10/1918/

 

起因是这样的,7号更新了系统,导致很多应用程序的 GUI 前 端无法正常启动,后来看了下错误提示,是dbus的策略造成的,在官方论坛上看到有人贴出了解 决方案,本来是很容易的事。就是删调它配置文件里的两行,这是一个xml格式的文件,但是很有意思,照理来说注释掉那两行跟删除掉它们的效果应该是一样 的,但偏偏就出了问题,开机时到了本该显示登陆界面的地方一直黑屏。完了,不会要重装系统吧,这我可不干。于是就开始了那翻折腾的过程。由于我的系统的 grub启动菜单是设置为直接进入的,一时半会没想起来。再加上一些其他原因而绕了一个大弯。不过还是收获了一些很值得总结的东西。

跟计 算机打交道,难免会碰到系统崩溃(也不一定是崩溃啦,因为某个配置文件造成开机黑屏之类的也算在内)的情况,这种情况下windows可以进入安全模 式, linux 当 然也可以,只不过换了个说法,称做rescue模式或单用户模式。早期的某些linux发型版,在其启动菜单里本来就有这一启动项的,标 题通常含有safe的字样,现在的fedora默认不带该启动项了,不过也是可以很方便的进入的,在grub菜单的编辑模式修改菜单项(详见本文结束)。然 后按b启动,即可进入单用户模式,在该模式下,你是root(不需要密码)用户,可以完全修改任意文件。这是最简单的方式,并且这个更改不影响grub原 来的设置。

另外一些方式也很简单,不过需要livecd或安装盘,这就是我绕远路的原因了,这次安装fedora是直接在硬盘里安装的, 因此没有对应版本的livecd或安装盘(原先的fedora 8的安装盘无法挂载fedora 10的根分区,并没有使用fedora 8不认识的文件系统的情况下)。怎么办,下载一个,然后刻盘。这下问题来了,意外的发现周围的同学竟然都不太了解刻录,更不明白刻录操作系统的iso镜象 文件跟刻录不在iso里的普通数据文件的区别,总之找了好几个人,都因为这样那样的问题而刻录失败(出于某些原因我没能自己操作),当然也可能是光盘本身 或刻录软件的问题。总之这个方式是行不通了,还有另外一个方法,就是在移动硬盘里安装现有的fedora 8。

这里要说一下我的不满了, 就是关于grub安装位置的选择,ubuntu和sesu可以更为详细的设置,但是fedora只有两个选项,要么安装在/dev/sda上,要么安装在 将安装分区的最前面(注意,第一个选择是硬盘,第二个选择是分区,不是同一级别的)。我不想进入系统还要插上移动硬盘,只能选第二个,结果它自己安装完后 的reboot都找不到路径(我的硬动硬盘上的分区也很复杂,还有solaris系统,安装kubuntu时很顺利的)。

这次我先把笔记 本的主硬盘卸下来,轻松的在硬动硬盘里安装了fedora 8,而且无论是否插上移动硬盘,都不影响主硬盘上的系统的引导,当然移动硬盘自己的系统也工作正常。不过问题又来了,由于在安装fedora时的分区都是 LVM的,结果导致即便在fedora 8里挂载了fedora 10的硬盘,还是无法访问LVM下的文件(至少我不会,这是LVM对系统急救的不友好),由此推断,即使有livecd或者是挂载到其他电脑上去,很可能 还是无法用简单的方法访问到LVM中的数据。

说了半天,对于我这个将非/boot分区都放在LVM里的fedora10来说,刻 livecd或在其他硬盘安装linux的做法,唯一的作用就是永久修改grub启动菜单。fedora安装程序还是比较人性话的,就是它提醒了我才没有 将/boot也放在LVM里。要不然一切都白忙了。当然也不要钻牛角尖说”可以在这个系统里刻录光盘“等等的话。功具的潜力是无限的,就看使用者怎么发 挥。

这次是因为LVM导致了有部分解决方案没有实际用途,也就是说还可能由于其他未知的因素导致救不了系统。所以如果上述方法都无效,最 后的赌注(没错,也不能保证此方法一定可行)。就是在/boot中添加硬盘启动选项,准备重装系统。这个前提,在grub可访问的文件系统里放置安装镜像 文件。其实这就是一个硬盘安装linux的方法,只是这次需要借助其他硬盘了,对于原本就是硬盘安装的情况没有问题,写在这里是为了做个总结:

1.Linux分区类型的选择,如果不是学习、研究而是日常使用或用于生产场合,请尽量使用常见的分区类型,比如ext3,免得搞一些稀奇古怪的文件系统最后吃不了兜着走。
2.使用Linux最好学一下Grub和一些常见的内核参数,这次如果不知道这些,就真的挂了。
3.提前留下急救的入口。比如,
3.1 在grub启动菜单里添加single模式入口
3.2 准备好对应于系统的安装光盘或livecd
3.3 在grub启动菜单里添加硬盘安装选项,以备不时之需。linux系统的更新是家常便饭,每次大的更新后都刻盘实在有点浪费。
3.4 为了3.3的正常执行,可以在其他可移动存储设备上分个linux分区,或者干脆就在上面安装一个基础linux系统。

4.如果系统出了问题,并且网上有解决方案,请耐心看完全文,尤其对应一些注意点。这次的问题很蹊跷,但是解决方案提出者以及其他操作者都说得很明白,但是我没仔细看而差点酿成大祸。或者干脆,在不影响系统使用的情况下就等待官方的更新包吧。

附(本文不是教程性质的文章,如有疑问可以参考其他专门的资料,搜索一下到处都是):

1.添加”grub单用户模式“入口,比如,grub菜单有下面一项:

title Fedora 10 VGA (2.6.27.5-117.fc10.i686)
root (hd0,0)
kernel /vmlinuz-2.6.27.5-117.fc10.i686 ro root=UUID=cdc65adc-3b14-4166-b3d3-f2f0df47595c rhgb quiet vga=0x318
initrd /initrd-2.6.27.5-117.fc10.i686.img

在”kernel“行最后添加“single”或“1”作为内核启动参数即可,如下所示(去掉了一些原来的参数)

kernel /vmlinuz-2.6.27.5-117.fc10.i686 ro root=UUID=cdc65adc-3b14-4166-b3d3-f2f0df47595c 1

2.硬盘安装linux:

a.挂载镜像文件,复制出里面的isolinux/vmlinuz、isolinux/initrd.img到/boot/目录下,然后在grub菜单里添加如下几行:

title Fedora 10 install (2.6.27.5-117.fc10.i686)
root (hd0,0)
kernel /vmlinuz
initrd /initrd.img

b.将镜像文件里的image文件夹整个拷出,为方便起见,可以放在某个 常见linux分区(比如ext3等) 的跟目录下(注意,不一定是/目录)

这样启动时选择该项,就可以进入安装程序了,详细情况根据屏幕提示很容易操作,不过记住”安装镜像“文件是image/install.img,这个需要手动输入,很有可能根据所放位置而要添加其他父路径。

Enjoy!

评论

我的评论:

发表评论

请 登录 后发表评论。还没有在Zeuux哲思注册吗?现在 注册 !
向坤

回复 向坤  2009年08月02日 星期日 01:34

不知道lvm实际性能怎么样,因为Ubuntu默认没有lvm,自己电脑没有弄,实验室项目倒是用到了。

之前为了把两个分区合并,同时不丢失地一个分区的文件,用了一个比较危险的方法。如果有lvm的话就方便很多了。

PS:系统急救情况下用命令行手动扫描一下卷组和逻辑卷,然后挂载就可以了。

1条回复

  • 居振梁[暴龙]

    回复 居振梁[暴龙]  2009年08月02日 星期日 07:59

    呵呵,我基本只算是linux发型版的普通用户,而且没有在同样的环境下装过不用lvm的fedora,性能不好比较啊。大三刚结束,实验室和专业方向都与此无关。

    0条回复

暂时没有评论

Zeuux © 2024

京ICP备05028076号