.使用急救盘组进行维护
/ w9 a, g* [+ c+ N4 A0 L" S6 Q$ i8 ^$ v0 D
急救盘组(也称为boot/root盘组),是
系统管理员必不可少的工具。用它可以独立地启动和运行一
$ H& j* k" ?2 D" w
个完整的
Linux系统。实际上,急救盘组中的第2张盘上就有一个完整的
Linux系统,包括root文件系
# L" d p9 ~" g$ J5 C7 U) |
统;而第1张盘则存放了可启动的内核。
% u4 h2 f- C& z i% t' q) Z# H, [( e* @" H% c8 m4 O4 |7 k3 T. O
使用急救盘组维护系统很简单。只需用这两张盘启动系统后,进入急救模式,这时使用的是root账户。
* O, K# r4 c; M# \为了能访问
硬盘上的文件,需要手工安装硬盘文件系统。例如,用下面的命令可在/mnt目录中安装
) n: Q1 V# p5 Q4 v9 s: ]/dev/hda2盘上的ext2fs
类型的Linux文件系统:
( n! J& ]; h5 P- }
$ x+ |% }/ O s+ n, A0 }
#monut-text2/dev/hda2/mnt
/ u- i6 s$ b+ k- C
" g) {" G) P% \8 _% P! p# _) P注:现在根目录是急救盘上的根目录。为了访问硬盘文件系统中的文件,必须先把它安装到某个目录
. h& W" I1 `' L9 J5 R& x. v
下。这样,如果将硬盘上文件系统安装在/mmt目录下,则硬盘上原来的/etc/passwd文件的路径就是
8 C/ J4 r0 U5 {% Z4 L/mnt/etc/passwd。
- k! I) V0 D: Q6 K5 ~4 E
& a" v+ p. f+ @* i2、文件系统被破坏时的处理方法
+ A1 f7 m8 s1 O4 @/ h) |- M- D5 m- |% I! p- y' [1 D7 _1 z k. z
当文件系统被破坏时,如果使用的是ext2fs类型的文件系统,就可从软盘运e2fsck命令来修正文件系
2 f$ `9 S1 V$ W# } i' C2 d
统中被损坏的
数据。对于其他类型的文件系统,可以使用相应的fsck命令。
0 O: j5 c; s6 M4 [3 T% B
6 w1 L* \+ H5 u ]6 s: H* y$ X当从软盘上检查文件系统时,最好不要mount安装。
3 B; ?- y# R& x/ E/ v5 e- G, U6 Q/ U; U
注:文件系统被破坏的常见原因是超级块被损坏,超级块是文件系统的“头部”。它包含文件系统的
% X3 K- W- H W1 R# N" Q; H, Q. U状态、尺寸和空闲
磁盘块等
信息。如果损坏了一个文件系统的超级块(例如不小心直接将数据写到了
4 f6 n6 t! N. ?, z1 r9 w3 N文件系统的超级块分区中),那么系统可能会完全不识别该文件系统,这样也就不能安装它了,即使
4 z# A, v8 o% a' r采用e2fsck命令也不能处理这个问题。
* y+ e9 N6 x' n4 Z% |; H, x! q8 W
9 C' D; l9 x8 S+ R1 k4 p
不过,ext2fs类型的文件系统将超级块的内容进行了备份,并存放于
驱动程序的块组(blockgroup)
: i2 b7 l: ^% L: K, `$ B边界。可以用如下的命令通知e2fsck使用超级块的备份
, |- E3 U% _5 d7 R
' M( @3 t' T8 ] M) h4 C#e2fsck-b8193
1 A; y7 z. T- G4 T3 s) |
- D3 O3 @0 F" E: \: \* v0 Y2 a7 v( A$ \
是指文件系统所在的分区,-b8193选项用于显示使用存放在文件系统中的8193块的超级块的备份数据。
S" K' Q- |5 f$ e1 B$ Q' Y+ m
, P8 u3 R# s& b9 R6 i3 D0 v/ q$ o3、恢复丢失的文件
7 r# O/ P8 w# k6 ]
3 q7 A% ^8 k4 [4 s8 d$ h
如果不小心删除了重要的文件,那么没有办法直接恢复。但是还可以将相应的文件从急救盘复制到硬盘
! _, E, Y7 Z" w
上。例如,如果删除了文件/bin/login,此时系统无法正常进到登录界面,可以用急救盘组启动系统,
2 Q3 z3 K" z4 G, I将硬盘文件系统安装到/mnt目录下,然后使用下述命令:
1 q5 W* | [9 M# w7 c0 d
4 W* A$ K! Z! ]% x$ i4 m#cp-a/bin/login/mnt/bin
! w' [9 P2 ^. y* }2 f
: w$ W" j* u: Q7 r% V“-a”选项用于告诉cp在拷贝时保持文件的访问权限。当然如果被删除的基本文件不在“急救盘组”中,
( _+ u5 @+ e( A9 }8 P也就不能用这种方法了。如果以前做过系统备份的话,那么也可以用以前的备份来恢复。
* v' ^: T% ?9 k6 G4 @6 I# Z
2 A! w. u7 ?0 V4.函数库破坏时的处理方法
* `" C6 |( ~5 c8 q' ?# e7 X
u0 I3 H- o* t& w如果不小心将系统函数库文件破坏了,或者破坏了/lib目录下符号链接,那么将导致依赖这些库的命令无
! B3 k# r+ X( j' K4 F
法执行。最简单的解决办法是用急救盘组启动系统,在/mnt目录中安装硬盘文件系统,然后修复/mnt/lib
$ Y# C* ]* h6 w# n6 y! ^* q' {5 o
目录下的库。
: O9 s+ e5 a8 e8 J& o% }5 ^' L6 y
% ^. M8 h& Y) z5、无法用root账号登录系统
/ ^: f, U$ `. D& X& ?; @7 M) O8 P* R- ]7 \5 K H% R4 v: H
由于系统管理员的疏忽,或者由于系统受到
黑客的入侵,系统管理员可能无法用root帐号登录系统。
5 z* X' w' S: p1 t( n5 V0 u2 J2 g' b2 e, u, a% [3 T2 J
对于第1种情况,可能是系统管理员忘记了root密码,用急救盘组就可以解决问题。
9 f, {4 P1 O' ~1 n
8 H: P9 s0 Y& t, n9 S5 Q! i' A' ?对于第2种情况,由于很可能是密码被黑客修改了,因此系统管理员无法进入系统,也就是说,Linux系统
- L3 H5 r$ x1 I9 J7 R7 q完全失去了控制,因此应尽快重新获得系统的控制权。在取得root权限后,还应检查系统被破坏的情况,
% p; h% O3 o! z5 b. d
以防被黑客再次入侵。
7 v* C9 I0 l2 @, w
5 E1 a8 F5 r# I" C8 d" O/ U }
需要做的最主要的工作就是重新设置root的密码,获得Linux
操作系统的控制权。首先用急救盘组启动系统,
9 T+ A# w0 ^/ l, x3 p
然后将硬盘的文件系统安装到/mnt目录下,
编辑/mnt/etc/passwd文件,将其对应于root账户的一行加密口
+ G) ` X Z) q) F' Y! q
令域置空,如下所示:
, ]8 ?/ W0 [% ~( A" p
6 L' V- H# y: n3 a7 O+ Q2 troot::0:0:root:/root:bin/bash
6 S" I+ V; a! o3 g# s
. W( K. s" K+ r# j3 q注:如果系统使用shadow工具,就需要对文件/etc/shadow进行上述的操作,使root登录系统不需要口令。
6 D) M/ @4 I4 o; G/ z$ Q" j( r n
, o/ C6 l# T2 k8 s- g6 N; G这样,root账户就没有口令了。当重新从硬盘启动Linux系统时,就可以用root账户登录(系统不会要求输
; }3 C9 e" p' a5 m% E) s _入密码)。进入系统后,再用命令passwd设置新的口令。
+ g" u" I2 j& I
# v. h. v- n, l9 O5 u6、Linux系统不能启动
" T4 @# X) H+ H6 j+ y
3 |7 n+ q/ X+ Q' \0 c
一般来说,如果系统管理员不能正常进入系统,就需要考虑使用急救盘组进入急救模式排除系统的
故障。但
0 |# H0 s5 K4 G
在没有制作急救盘组的情况下,Linux系统不能启动,该怎么办?
& u/ L0 C- {+ J+ l. s7 W8 ]
& `2 b0 i% P; G1 V1 ]/ x' n在个人
计算机使用Linux系统时,通??????%26;#30267;%26;#39648;?%26;#29755;??常都是Linux和MS
Windows9x或MS
WindowsNT并存的。
- O" R; j" B: D
u: o% N2 \0 J7 c$ J由于重新安装其他的操作系统,经常会导致原有的Linux不能启动。这主要是因为,这些操作系统默认为计算
- s' s L6 r+ p6 d4 T机中没有其他的操作系统,因而改写了硬盘的主引导记录(MBR),冲掉了Linux的LILO系统引导程序。
, |) m/ w8 S4 _: m
9 N! a' | S6 f1 k3 P( x- I如果有急救盘组,那么很简单,用第一张启动盘启动硬盘的Linux系统,重新运行LILO命令,就可以将LILO系
& _$ k5 |2 M. M6 _; `7 @
统引导程序写回硬盘的主引导记录。再次开机即可。
- `- A& u9 q/ S
- z& m' A, F2 r0 w/ c% O% y0 k5 K" C1 D如果没有系统启动盘,怎样恢复硬盘上的Linux呢?在这种情况下,如果知道Linux在硬盘上的确切安装分区,
" T. `9 x) t+ V; [2 f/ ^& ^且有loadlin程序,就可以重新返回Linux。loadlin程序是DOS下的程序,运行它可以从DOS下直接启动Linux,
3 ~! u% h4 k+ m3 @, v
快速进入Linux
环境。在RedHatLinux6.0光盘的dosutil/目录下就有这个程序。除此之外,还需要一个
, p4 ~( Y: b' \9 [- i/ A' v7 i
Linux启动内核的映像文件。在RedH
: B0 r8 J7 X- m5 P9 @& l, s% O5 C9 i' }
atlinux6.0光盘的images/目录下有这个文件%26;#8212;%26;#8212;vmlinuz。
% W. t, f9 r- e# f# b3 M' @+ [4 z( e0 Y' t
例如,在Windows98系统下面,进入DOS的单用户模式,然后运行下述的loadlin命令,即可重新进入Linux系统:
" V" l3 d7 l+ f9 z5 p4 O9 W9 ?/ D4 X; k3 t2 I& Y" W2 d ?
loadlinvmlinuzroot=/dev/hda8
- s& @ x6 u6 b0 u0 m$ C" I5 H: W
6 ~: n" N: K b) j/dev/hda8是Linux的root文件系统所在的硬盘分区位置。命令执行后,就引导Linux系统。用root登录后,运行
# J& \, I9 s+ f0 ALILO命令,则重新将LILO装入MBR,回到以前多操作系统并存使用的状态。