红联Linux门户
Linux帮助

GRUB精简手册(救命三招)

发布时间:2007-02-06 10:19:34来源:红联作者:Linuxperson
补充救命三招:
1、把启动光盘上的故障恢复文件拷到windows盘和linux盘各一份备用,
(REDHAT/FC系统有两个文件 /boot/vmlinuz /boot/rescue ;SUSE10.0 是三个文件 linux , initrd , rescue )
如 :
c:\sos\linux(内核) c:\sos\initrd(初始文件系统) ( SUSE c:\sos\rescue(故障恢复根系统)

2、系统坏了的时候,通常是分区变化或其它原因GRUB找不到内核或initd文件时,可以进到 GRUB> 提示符输一个
GRUB> find /sos/linux
(hd0,3) (说明文件备份在第3个分区上,注意,这里的3可能是hda4数字小一位)
不要担心识别不了windows或linux的分区,GRUB可以识别 VFAT,EXT2,EXT3,reiserfs等等
如果不记得文件名就按TAB键(原先不知道,吃了不少苦头)
比如
GRUB> kernel /sos/li 这里会提示你 sos 目录下有哪些文件,跟bash里用法一样

3、现在可以开始自救了
引用:
GRUB>kernel (hd0,3)/sos/linux
GRUB>initrd (hd0,3)/sos/rescue root=/dev/ram
GRUB>boot

好了,系统又可以启动了,可以开始自救工作了。

系统不能启动一般有几种原因:
1、新增或删除了分区,使Linux所在盘的盘符变化了。比如原先Linux在/dev/hda5上面,删除一个分区以后这个分区就变成/dev/hda4了,GRUB当然找不到了.

2、更改了内核或模块。/boot/下面的内核通常要与/lib/module下的模块成双成对,如果不能匹配可以导致分区类型不能识别,当然不能启动.

3、initrd文件被破坏。有些发行版的内核是不带分区类型或IDE/SCSI支持的,它们将对IDE的支持做成ide_disk模块在外部加载,所以必需在mount分区之前有个initrd启动环境告诉和提供给内核需要加载哪些模块,initrd被破坏以后启动时就会提示你输入的 root=/dev/hda1 不是合法的文件系统格式。

另外,如果要自已编译内核或做bootsplash的话,建议先把 /boot 和 /lib/module 备个份,
引用:
su - root
cd /
tar cvzf /boot_bak.tgz boot
tar cvzf /module_bak.tgz /lib/module

内核升级失败不能启动的话,用上面的方法进去,把根系统 mount 上来解包恢复一下就行了。
文章评论

共有 0 条评论