class="22259">
LILO,;Linux;Crash;Rescue;HOW-TO;中译版
作者:Al;Dev;(Alavoor;Vasudevan);
[email protected] 译者:黄国伟;
[email protected] v6.0,;25;Dec;2000;翻译日期:19;Mar;2001;
--------------------------------------------------------------------------------
这份文件探讨从;Linux;系统失灵中回复的方法。造成;Linux;系统失灵的各种原因可能是;-;LILO;毁损、;linux;无法开机、;硬碟主开机记录;(Master;Boot;Record,;MBR);损坏、或是安装其他作业系统例如;Windows;NT;而将;LILO;或;MBR;盖写掉所造成;linux;无法开机。;
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
1.;简介
您无法避免意外的发生;如果意外发生在;linux;系统,这可能会损害到硬碟主开机记录;(MBR);或是;LILO;(Linux;boot;Loader)。当;linux;由於硬碟故障而导致无法开机时,意外就会发生。假如您不小心重新划分磁碟,或是在;linux;系统的电脑上安装其他作业系统,例如:Windows;98/NT,LILO;也可能会失效。;
这份文件给您一些点子、秘诀、和快速的指引来快速回复系统,而不必费心地研读上百页有关;LILO;或;Linux;的文件。;
1.1;回复系统的快速步骤;
循著这些步骤执行,以便从;LILO;或系统失灵中回复。;
状况;1:;假如系统无法开机;-;
取得并建立;tomsrtbt;开机磁片;http://www.toms.net/rb,并使用;tomsrtbt;开机磁片开机。使用;fdisk;指令找出分割区;(partitions)。试著用以下指令辨识出;root;分割区;-;
--------------------------------------------------------------------------------
bash#;fdisk;/dev/hda
bash#;mkdir;/test
bash#;mount;/dev/hda1;/test
bash#;ls;/test
您应该会看到;root;分割区显示如下;-
bin;;;fd;;;;lib;;;mnt;;proc;;sbin;;usr
boot;;dev;;;etc;;;home;;lost+found;;opt;;root;;tmp;;;var
--------------------------------------------------------------------------------
如果此分割区并非;root;分割区,试试下个分割区;/dev/hda2;。再继续尝试;hda3;、;hda4;、;hda5;等,直到您找出;root;分割区为止。如在;hda;仍无法找到,请重复以上的步骤在其他装置上,;例如;hdb,;hdc,;hdd;等..;在建立新的;lilo;设定时,;/usr、/var、与;/boot;分割区也是需要的。;
以我的系统为例,root;分割区是在;/dev/hda4:;
--------------------------------------------------------------------------------
bash#;mkdir;/hda4
bash#;mount;/dev/hda4;/hda4
bash#;cat;/hda4/etc/fstab
阅读;fstab;的内容,并且按照;fstab;档案挂上;(mount);分割区。像下面这样;-
bash#;mount;/dev/hda5;/hda4/boot
bash#;mount;/dev/hda6;/hda4/usr
bash#;mount;/dev/hda7;/hda4/var
bash#;mount;/dev/hda8;/hda4/opt
bash#;mount;/dev/hda9;/hda4/root
bash#;mount;/dev/hda10;/hda4/home
--------------------------------------------------------------------------------
以我的系统为例,按照;fstab;所显示,hda5;是;boot、hda6;是;usr;,;hda7;是;var、hda8;是;opt、hda9;是;root、hda10;是;home、而;hda11;是;windows95;的目录;
编辑;/etc/fstab;(不是;/hda4/etc/fstab)并且加入(以下简单的程式码);
--------------------------------------------------------------------------------
/dev/hda4;;/hda4;;;ext2;defaults;1;1
/dev/hda5;;/hda4/boot;;;;;;ext2;defaults;1;1
/dev/hda6;;/hda4/usr;;;;;;;ext2;defaults;1;1
/dev/hda7;;/hda4/var;;;;;;;ext2;defaults;1;1
/dev/hda8;;/hda4/opt;;;;;;;ext2;defaults;1;1
/dev/hda9;;/hda4/root;;;;;;ext2;defaults;1;1
/dev/hda10;/hda4/home;;;;;;ext2;defaults;1;1
/dev/hda11;/hda4/win95part;vfat;defaults;1;1
在我的电脑中,hda4;含有;linux;的;root;分割区、hda5;有;boot;分割区、
hda11;则有;windows;95;的;vfat;系统。
bash#;mkdir;/hda4/win95part
bash#;mount;/hda4/win95part
使用;fsck;或;e2fsck;指令来修复系统。
bash#;man;fsck
bash#;man;e2fsck
--------------------------------------------------------------------------------
状况;2:;如果;LILO;是无效的..;
依照状况;1;的步骤来排除问题。如果无法解决,则参照以下步骤。现在您应该已经挂上;/hda4;且已经编辑好;/etc/fstab;档案了。;
--------------------------------------------------------------------------------
bash#;mount;-a;
bash#;chroot;/hda4;/sbin/lilo;-q
bash#;man;chroot
bash#;chroot;/hda4;/sbin/lilo;
--------------------------------------------------------------------------------
您也可以选择使用;/sbin/lilo;以代替;chroot。;lilo;加选项;-r;实际上就和;chroot;的指令是一样的。;强烈建议您使用;chroot,而不要使用;lilo;-r,因为使用;chroot;比较方便,且较容易找出错误。;
--------------------------------------------------------------------------------
bash#;man;lilo
bash#;/sbin/lilo;-r;/hda4
--------------------------------------------------------------------------------
状况;3:;如果;LILO;是无效的..;
如果使用状况;1;和状况;2;的步骤均无法解决,假如您有使用;'mkbootdisk';制作过开机片(於安装时或参考;'man;mkbootdisk'自行建立),则使用您的开机磁片来开机并修复分割区。;mkbootdisk;存在於;mkbootdisk*.rpm;的套件,您必须安装它。;(译注:随不同发行套件而有所差异;请洽询您的发行套件厂商或组织);
状况;4:;如果以上状况;1、2、3;的步骤皆无法解决问题,且您也没有开机磁片;
假如您有其他;linux;系统的电脑,以;root;身份登入并且执行;-;
--------------------------------------------------------------------------------
bash$;man;mkbootdisk
bash#;cp;/etc/lilo.conf;/etc/lilo-original.conf
--------------------------------------------------------------------------------
编辑;/etc/lilo.conf;并将您在;'状况;1';所获得的;root;分割区格式填入;之後插入空白磁碟片并执行;-;
--------------------------------------------------------------------------------
bash#;mkbootdisk;/dev/fd0
--------------------------------------------------------------------------------
mkbootdisk;存在於;mkbootdisk*.rpm;的套件,您必须安装它。;(译注:随不同发行套件而有所差异;请洽询您的发行套件厂商或组织);您必须确保将;/etc/lilo-original.conf;更改回原来的档名;/etc/lilo.conf!!;再以此开机磁片进行状况;3;的步骤。;
状况;5:;这是最坏的情况,希望您不会走到这个地步。状况;1;到;4;已包含了绝大多数的案例,但是如果连状况;1、2、3、和;4;的步骤都无法解决;-;
第一步:;使用;tomsrtbt;开机磁片开机,挂上分割区,并且使用以下指令备份;root;分割区至其他还有磁碟空间的分割区;-;
--------------------------------------------------------------------------------
编辑;/etc/fstab;并且写入;(以下简单的程式码,
您可能必须按照您的磁碟机实际状况作改变);-
/dev/hda4;;/hda4ext2;defaults;1;1
/dev/hda11;/b1;;vfat;defaults;1;1
bash$;mkdir;/hda4;;mount;/hda4
bash$;mkdir;/b1;;mount;/b1
bash$;cd;/
bash$;df;
查看;/b1;是否有足够的磁碟空间,以便使用;tar;来备份;root;分割区。
bash$;tar;cvf;/b1/root-hda4.tar;;;/hda4
--------------------------------------------------------------------------------
第二步:;放入;Linux;光碟片,重开机并安装;redhat;linux;(译注:或其他;linux;发行套件);在;/dev/hda4;(但千万不要安装任何多馀的套件,您只需要安装;root、boot;系统,和;LILO;管理者。也就是说,选择最小安装即可)。;安装程式也将会安装;LILO;在您的硬碟里。现在重新启动;linux,以;root;身份登入,并且执行;-;
--------------------------------------------------------------------------------
bash$;man;mkbootdisk
bash#;cp;/etc/lilo.conf;/etc/lilo-original.conf
--------------------------------------------------------------------------------
注意:您必须记得将;lilo-original.conf;复制回;lilo.conf!!;编辑;/etc/lilo.conf;并将您在;'状况;1';所获得的;root;分割区格式填入;之後插入空白磁碟片并执行;-;
--------------------------------------------------------------------------------
bash#;mkbootdisk;/dev/fd0
bash#;cp;/etc/lilo-original.conf;/etc/lilo.conf
--------------------------------------------------------------------------------
测试此开机磁片,检视其是否能运作,并将第一步中利用;tar;作备分的档案;/b1/root-hda4.tar;回复。;(译注:您可使用;tar;xvf;来回复。详见;tar;manpage);