不论你在运行什么
操作系统,在很多情况下,你会面对灾难恢复操作。你的主引导区被覆盖,你的
硬盘不能启动,或者一个重要的文件被删除,或者你的显示卡启动时闪烁一下就黑屏了。本文会就这些问题作一些技巧性的讨论,帮助你在遇到这些问题时,不致于手足无措。
& i- v) o1 K3 m5 F
首先需要的是一张应急启动软盘,在安装
Linux时,一般会要求建立一张的,所以,你应该有这张
磁盘的,如果还没有建立的话,赶紧去建立一张吧,什么?不知道怎么做?很简单的,一般的Linux系统下使用mkbootdisk命令就可以了。后面的那些参数,只要看看帮助,应该就明白了。
- ~, \9 l3 |6 q" W% U3 f, K 首先使用
. G' z* ~, g3 u7 W9 Q# l
#uname-a
$ D* G5 B$ R7 M# E/ T% g* M/ U[color=#FFFFFF']
' d, Q; v; r! q( p' m7 T7 M; Q& i4 {9 x- i* H! x; X
系统提示:
; u: J) L o% g' F: {) s& } Linuxalbertxu2.2.16-2.0#1SunMay2016:53:41EST2001i586unknown
) Q: ^; ?: L0 I
[color=#FFFFFF']
1 g V H/ y. @/ I2 A$ f/ L
& X3 G8 @6 F9 S 来看看系统的内核版本。我们就知道系统的内核版本是2.2.16-2.0。
9 m- v! U3 T5 N6 @4 d Z. j, H
[color=#FFFFFF']
0 @# |0 l6 e% A- V; ]8 w+ A$ o' N( X1 {- c; D3 l6 C4 J
然后使用
4 b$ \9 `5 z/ k. ?5 K- ?4 T #mkbootdisk--device/dev/fd02.2.16-2.0
) k9 _& @) t# s9 x9 V
系统提示:
( ?0 ^& r5 X3 ]6 RInsertadiskin/dev/fd0.Anyinformationonthediskwillbelost.
. a$ P; ]6 R9 U. Z3 z
Presstocontinueor^Ctoabort:
. \9 m( k9 k: t 插入磁盘,等待一会,直到磁盘建立。这样,紧急启动软盘就这样建立了。
- t' D- P# K) g/ U+ A6 K 除了采用以上的办法以外,另外一个办法就是使用tomsrtbt来建立启动软盘。先介绍这个
程序的安装步骤:
0 a$ g! m* L4 \* z5 [1 y) X) m3 L
#gunziptomsrtbt-1.7.218.tar.gz
9 N5 v% Z6 z: F( U; N7 j2 S. M
#tar-xvftomsrtbt-1.7.218.tar
2 Z0 m6 a. r9 Y% f5 G- o$ w4 r5 M
#rmtomsrtbt-1.7.218.tar
" ?4 P) B5 b( c$ s
#cdtomsrtbt-1.7.218/
. o6 |9 G _. G% X2 |#./install.s
& i+ ~( i4 U/ z/ f2 i8 t% C) g
按照屏幕的说明,这个
软件采用高
密度的压缩方法把多种Linux工具压缩到单张1.7Mb的软盘上。
9 n% g( r- F: [# F 缺省的磁盘包含下面的程序,
驱动和内核:
/ E' @' B5 T7 E* v% r3 z2.0.373c589_csBusLogicDEC_ELCPEE
XPRESSEEXPRESS_PROEL2EL3EXT2FATFAT32FDIDEIDECDIDEFLOPPYIDEPCMCIAIDETAPEISO9660JOLIETLOOPMATH_EMULATIONMINIXMSDOSNE2000NFSPROCRAMSDSERIALSLIPSMCSRSTTRULTRAVFATVORTEXWD80x3ah152x_csaha152xaha1542aic7xxxashawkbadblocksbdflushbzip2cardbuscardmgrcatcece.helpchattrchgrpchmodchownchrootclearcmpcpcpiocutdateddddatedebugfsdfdirnamedmesgdsdudumpe2fse2fsckeataechoegrepelvisemacsextendfalsefdflushfdformatfdiskfdomainfilesizefindfindsuperfmtfsck.ext2fsck.msdosfstabgrepgziphaltheadhexedithostnamei82365ifconfigifportileinitinittabinsmodkillkillall5ksymslengthlesslibc.so.5.4.13lilolilo.conflnloadkeysloginlosetuplslsattrmawkmd5summemtestmingettymitermmkdirmkdosfsmke2fsmkfifomkfs.minixmklostfoundmknodmkswapmnsedmoremountmtmvncncr53c8xxnmclan_csntfspaxpcmciapcmcia_corepcnet_cspingplipppaprintfpspwdqlogic_csqlogicfasrebootrescueptresetrmrmdirrmmodroutershrshdscriptscsi_infoseagatesedserial_cssetserialshslattachsleepslipsnarfsortsplitsttyswapoffswaponsynctailtartcicteetelnettesttouchtune2fsumountundebupdatevivi.helpwc
. Y' [* Q' l7 Q, K( A, q6 t4 _
最让人放心的是,tomsrtbt是一个和发行版本无关的程序,甚至你可以把它用来恢复
Windows9x。
& b" U1 s3 _) l9 x 丢失了主引导记录后,Linux就不能启动了。使用RedHat的启动软盘十分简单,只要在启动以后,用root登录,然后运行lilo就可以了。
1 Y1 h; H3 y6 I) F' p! n" e 使用tomsrtbt的方法是,启动后用root登录,然后拿走软盘。
6 y8 \: [+ D ^# M- |+ n
. j" `2 U E" t2 G
#mount-text2/dev/hda4/mnt
$ E i9 V3 _5 i
#chroot/mnt
6 T! e: R3 R# Y& p: E% @
#/sbin/lilo
/ w0 p% ]8 w: i# ~$ x5 K
Addedlinux*
, \1 V3 e! o- H: CAddeddos
1 ?8 k) e- \( u$ H2 d#exit
: P" h. {7 ] j#cd/
! K" L2 W$ ?# N" h
#umountmnt
9 b1 e9 F$ e% S" r
[color=#FFFFFF']
4 a) k) R6 R$ Y! j
' w( k6 @2 F& l- D/ K% x 在RedHat6.2之前的版本提供了一个rescue.img文件,能用来建立一个单独的紧急磁盘,和启动软盘一起使用。在LILO:提示符下,键入linuxrescue然后按照提示操作,在6.2版本以后,RedHat把紧急恢复
功能做到了安装CD上,使用CD启动后,键入"rescue"就可以了。
1 q2 S+ r% }- s. t8 k
现在假设你的/etc/fstab存在一个输入错误,你把启动磁盘/dev/hda4写成了/dev/hda44,这样你的系统就不能启动了。
4 t) Z) L( Z. r0 X" U9 ^ 用tomsrtbt软盘启动,按照以下的办法修改/etc/fstab就可以了。
6 c) V$ W7 R: O9 k# f9 A( k
[color=#FFFFFF']
; w) W, q0 C( U/ u8 K! ?$ [8 H
" @! S/ K' }! O7 T#mount-text2/dev/hda4/mnt
/ C5 e; K8 b$ D+ s% V- I) ~& o#vi/mnt/etc/fstab
" u2 n9 i4 ^8 s( | R* _0 X
#umount/mnt
8 i! F9 T, Z% u4 J
另外一个常见的问题就是没有正常关机,可以采用tomsrtbt来修复一个损坏的磁盘分区。
: {! G) h) Q" ^+ R9 [3 }6 s
#e2fsk-f/dev/hda2
2 l$ h H9 d) U3 x' c
对于一个严重损坏的分区,这个命令需要重复好几次。
I: {$ @3 g. |, a, e" i+ D( R 如果一个分区不能完整修复,你可以把重要的文件写到磁盘上,当tomsrtbt启动时,把这些文件加载到
内存,能把磁盘
空间用于其他应用。
J4 `& L8 c- o3 w- M1 _# e#fdformat/dev/fd0H1440
6 j) C$ a. S' ]! K% z2 y/ z8 ^#mke2fs/dev/fd0
! f' F' [3 d* ]$ d
#mkdir/mnt/image
3 B- l: P4 F+ y4 O1 v/ E# g6 r7 j$ |3 I#mkdir/mnt/floppy
: n; D1 V* Y U0 q! ?
#mount-text2/dev/hda4/mnt/image
7 m* @( J/ W/ _9 z5 S2 Y2 l#mount-text2/dev/fd0/mnt/floppy
, F# r/ w& x: o. S#cd/mnt/floppy
# C7 M/ Y t6 ^, u+ K
#cp/mnt/image/etc/*.conf.
( C7 S* ]$ i: w( J; N
#cp/mnt/image/etc/conf.modules.
$ c+ q! k3 J7 n* N1 w2 `+ ~7 O6 E! r- p
#cp/mnt/image/var/named/*.
. y5 B0 y$ Q) v* }# p, c0 L#cp/mnt/image/home/gwilburn/docs/myrecipes.txt.
( A& N* I( K4 R* A/ n1 w#cd/mnt
% b* P, k' f8 C( O- N, k l" a+ g
#umountfloppy
; d, t& G! }0 B7 [#umountimage
9 P( B3 W4 T! B6 v3 L6 H[color=#FFFFFF']
5 l$ T5 a: t$ E0 D4 ]4 o$ M! t
p: V" C9 w, k x 以上步骤用到了fdformat,mke2fs,mount,cd和cp命令,这些命令都包含在tomsrtbt之中,在这个情形中,我们把/etc目录的配置文件和DNS文件作了备份。
Y2 L& H+ j% e! M. h. ^
[color=#FFFFFF']
3 H6 }, @/ D6 {- w6 o% ~# N6 k, l! b" a
下面的例子是使用tomsrtbt来恢复Windows的例子。
' k) E1 `/ i3 e4 Q
#mkdir/mnt/win
0 R8 j/ U* T9 X" t6 v; t) H% D5 u#mkdir/mnt/floppy
5 o- f- _% t# R9 [, t$ L#mount-tvfat/dev/hda1/mnt/win
! R0 Q, Q$ O! j6 P6 u- A, G#mount-tvfat/dev/fd0/mnt/floppy
# G% i! _) k1 w
#vi/mnt/win/autoexec.bat
3 w1 T6 U6 ?* S1 W' g
#cd/mnt/floppy
# P0 |5 B5 v* y6 l* ^ `#cp/mnt/win/autoexec.bat.
f0 S3 |! W1 E2 E( C3 o$ r, O3 F
#cp/mnt/win/config.sys.
0 ~1 V0 o# C+ @#cp"/mnt/win/programfiles/netscape/bookmarks.htm".
/ _* }7 I! ^3 O0 i2 m#cd/mnt
( ~* T6 S, i' ^( b w#umountfloppy
& Z- `% q0 S; s) X5 M& y' V#umountwin
/ S3 p7 A* l* v+ Q, j- _ 灾难并不会频繁发生,但是做好灾难准备的最重要事情就是备份
数据。我们讨论的所有技巧只是对
数据可以恢复的情况下所能采取的一些措施。作为一名专业的系统
管理人员,如果没有做好数据备份,那么这个所谓的“专业”是名不副实的。