作者:Al;Dev;(Alavoor;Vasudevan);alavoor@yahoo.com
译者:黄国伟;u4561055@cc.ncu.edu.tw
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);
1.2;预防性措施;
您应当采取下列的预防性措施来处理未来可能发生的问题:;
您一定要偶尔制作救援开机磁片,且在您改变分割区时一定要制作。插入空白磁碟片并执行;-;
--------------------------------------------------------------------------------
bash$;man;mkbootdisk
mkbootdisk;存在於;mkbootdisk*.rpm;的套件,您必须安装它。
(译注:随不同发行套件而有所差异;请洽询您的发行套件厂商或组织)
bash$;mkbootdisk;--help
bash$;mkbootdisk;--device;/dev/fd0;2.2.12-20
--------------------------------------------------------------------------------
您手边必须拥有;tomsrtbt;的开机磁片。详见;http://www.toms.net/rb;
您手边必须拥有;Yard;救援和开机磁片。详见;http://www.croftj.net/~fawcett/yard;
备分;/root;与;/boot;目录。使用;Tomsrtbt;开机磁片开机,并且执行;
--------------------------------------------------------------------------------
bash#;vi;/etc/fstab
加入以下数行;-
/dev/hda1;/a1;vfat;defaults;1;1
/dev/hdb1;/b1;vfat;defaults;1;1
以我的系统为例,;hda1;为;linux;之;root;分割区;'/'
bash#;cd;/;
bash#;tar;cvf;/b1/linux-root-partition-hda1.tar;;a1
bash#;tar;cvf;/b1/linux-boot-partition-hda1.tar;;a1/boot
--------------------------------------------------------------------------------
1.3;移除;LILO;
您可以使用;DOS;启动载入程式(boot;loader)载入启动磁区,并以之取代;LILO。在;MS;DOS;提示符号下输入以下指令:;
--------------------------------------------------------------------------------
FDISK;;/MBR
--------------------------------------------------------------------------------
此处的;MBR;代表;"硬碟主开机记录(Master;Boot;Record)"。;
请参考;LILO;文件,取得其他移除;LILO;的方法;这些文件通常放在;linux;系统上的;/usr/doc/lilo*;(译注:或者是;/usr/share/doc/lilo*)。也请参考;'man;lilo'。;
1.4;常犯错误;
在您更改;/etc/lilo.conf;之後,您必须执行;lilo;,使您的改变生效。忘了执行是;linux;初学者很常犯的错误。执行;-;
--------------------------------------------------------------------------------
bash#;lilo;-v;-v;-v
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
2.;相关连结
请参阅以下位址,可取得;LILO、Linux;救援、当机回复的相关资讯;-;
Mini;Lilo;HOWTO;at;http://www.linuxdoc.org/HOWTO/mini/LILO.html;
Bootdisk-HOWTO;at;http://www.metalab.unc.edu/LDP/HOWTO/Bootdisk-HOWTO/index.html;
Pre-made;boot;disks;at;http://www.linuxdoc.org/HOWTO/Bootdisk-HOWTO/;
Tomsrtbt;boot;floppy;disk;http://www.toms.net/rb;
Yard;rescue;and;boot;floppy;disk;http://www.croftj.net/~fawcett/yard;
BootPrompt-HOWTO;at;http://www.linuxdoc.org/HOWTO/BootPrompt-HOWTO.html;
Multiboot;with;LILO;mini;HOWTO;at;http://www.linuxdoc.org/HOWTO/mini/Multiboot-with-LILO.html;
Linux+WinNT;mini;HOWTO;at;http://www.linuxdoc.org/HOWTO/mini/Linux+WinNT.html;
Linux;goodies;main;site;http://www.aldev.8m.com;
Linux;goodies;mirror;site;http://aldev.webjump.com;
Vim;color;text;editor;for;C++,;C;http://metalab.unc.edu/LDP/HOWTO/Vim-HOWTO.html;
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
3.;此份文件的其他格式
此份文件是以;11;种不同的格式所发行的;-;DVI,;Postscript,;Latex,;Adobe;Acrobat;PDF,;LyX,;GNU-info,;HTML,;RTF(Rich;Text;Format),;Plain-text,;Unix;man;pages,;single;HTML;file;以及;SGML.;
您可以从下列连结得到;HTML、DVI、Postscript、或;SGML;格式的;HOWTO;文件单一;tar;ball;档案;-;ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/other-formats/;
纯文字格式:;ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO;
其他语言之文件翻译,像是法文、德文、西班牙文、;中文、日文等是在;ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO;欢迎您帮忙翻译成其他语言的版本。;
此份文件是以;"SGML-Tools";工具软体所撰写的,您可以在下面的连结得到此软体;-;http://www.sgmltools.org;您可使用以下指令组译原始档,例如:;
sgml2html;LILO-crash-rescue-HOWTO.sgml;(获取;html;档案);
sgml2rtf;LILO-crash-rescue-HOWTO.sgml;(获取;RTF;档案;);
sgml2latex;LILO-crash-rescue-HOWTO.sgml;(获取;latex;档案);
(译注:中译版使用者请至;ftp.linux.org.tw/pub/CLDP/src;下载;zh-sgmltools-1.x-x.tar.gz;并安装之,再以;big5sgml2html、big5sgml2rtf、;big5sgml2latex;指令组译原始档。详见;SGMLtools;中文套件使用说明;http://www.linux.org.tw/CLDP/zh-sgmltools.html);
LaTeX;文件可以使用;sgml2latex;来制作;Postscript,再用;dvips;转成;PDF;档,并且使用;Acrobat;distill;(;http://www.adobe.com);指令观看结果。如以下所示:;
--------------------------------------------------------------------------------
bash$;man;sgml2latex
bash$;sgml2latex;filename.sgml
bash$;man;dvips
bash$;dvips;-o;filename.ps;filename.dvi
bash$;distill;filename.ps
bash$;man;ghostscript
bash$;man;ps2pdf
bash$;ps2pdf;input.ps;output.pdf
bash$;acroread;output.pdf;&
--------------------------------------------------------------------------------
或者您可使用;Ghostscript;的指令;ps2pdf。;ps2pdf;是个与;Adobe's;Acrobat;Distiller;产品作用相似并拥有其大部分功能的指令:它将;PostScript;档案转换成可携式文件格式(Portable;Document;Format,;PDF)档案。;ps2pdf是被一个包含在;Ghostscript;的指令稿;(command;script);(批次档;batch;file),且选择一种名叫;pdfwrite;的特殊;"输出装置;(output;device)";来执行。为了要使用;ps2pdf,当;Ghostscript;在安装组译时,pdfwrite;装置必须要包含在;makefile;里。详见安装;Ghostscript;的文件。;
这份;howto;文件位於;-;
http://sunsite.unc.edu/LDP/HOWTO/LILO-crash-rescue-HOWTO.html;
您可也以在下列镜像站找到这份文件;-;
http://www.caldera.com/LDP/HOWTO/LILO-crash-rescue-HOWTO.html;
http://www.WGS.com/LDP/HOWTO/LILO-crash-rescue-HOWTO.html;
http://www.cc.gatech.edu/linux/LDP/HOWTO/LILO-crash-rescue-HOWTO.html;
http://www.redhat.com/linux-info/ldp/HOWTO/LILO-crash-rescue-HOWTO.html;
其他较靠近您的镜像站;(网址智慧辨识,;network-address-wise);可以在此找到;http://sunsite.unc.edu/LDP/mirrors.html;选择一个镜像站,且进入目录;/LDP/HOWTO/LILO-crash-rescue-HOWTO.html;
要阅读;dvi;格式的文件,必须使用;xdvi;程式。xdvi;程式在;Redhat;Linux;是存在於;tetex-xdvi*.rpm;(译注:随不同发行套件而有所差异;请洽询您的发行套件厂商或组织)。您可以从控制面板(ControlPanel);|;应用程式(Applications);|;出版(Publishing);|;Tex;的选单按钮开启之。要读取;dvi;格式文件,执行以下指令;-;
xdvi;-geometry;80x90;howto.dvi
man;xdvi
并且使用滑鼠来重新设定视窗大小。使用方向键、Page;Up、Page;Down;来导引,您也可使用;'f',;'d',;'u',;'c',;'l',;'r',;'p',;'n';字母键来上移、下移、置中、至下一页、回上一页等。要关闭专家选单,请按;'x'。;
您可以使用;'gv';(ghostview);或;'ghostscript';来阅读;postscript;格式的文件。在;Redhat;Linux;里,ghostscript;存在於;ghostscript*.rpm;套件;gv;则存在於;gv*.rpm;套件里。(译注:随不同发行套件而有所差异;请洽询您的发行套件厂商或组织);您可以从控制面版(ControlPanel);|;应用程式(Applications);|;美工绘图(Graphics);的选单按钮开启之。gv;远比;ghostscript;更人性化。;ghostscript;和;gv;也有其他平台的版本,像是;OS/2、;Windows;95;和;NT,您甚至在那些平台也可以观看此份文件。;
您可从以下网址获得;Windows;95、OS/2、和所有作业系统平台的;ghostscript;http://www.cs.wisc.edu/~ghost;
要阅读;postscript;格式的文件,执行以下指令;-;
gv;howto.ps
ghostscript;howto.ps
您可以使用;Netscape;Navigator、Microsoft;Internet;explorer、;Redhat;Baron;Web;browser;或任何其他的;10;种浏览器来阅读;HTML;格式的文件;
您可以使用;LyX;--;一种;latex;在;X-Windows;的前端界面,来阅读;latex;格式的文件。;
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
4.;版权;Copyright
版权政策按照;LDP;(Linux;文件计划);为;GNU/GPL。;LDP;是;GNU/GPL;计划之一。额外的请求为您在所有的复制文件中保留作者的姓名、电子邮件信箱位址、和此份版权声明。假如您对这份文件进行修改或增添,那麽请您告知此份文件的所有作者。在这份文件上所烙印的姓名为其各自所有人的所有权;
原文;(如中译有误,以原文为主);
Copyright;policy;is;GNU/GPL;as;per;LDP;(Linux;Documentation;project).;LDP;is;a;GNU/GPL;project.;Additional;requests;are;that;you;retain;the;author's;name,;email;address;and;this;copyright;notice;on;all;the;copies.;If;you;make;any;changes;or;additions;to;this;document;then;you;please;intimate;all;the;authors;of;this;document.;Brand;names;mentioned;in;this;document;are;property;of;their;respective;owners.;
--------------------------------------------------------------------------------
标签: linux