作为一个Linux系统管理员,你可能会把Linux 超级用户密码遗忘了,把/etc/inittab或/etc/rc.d/rc.sysinit之类文件误编辑,导致系统不能正常启动的恼人错误?
俗话说:天有不测风云,人有旦夕祸福。 @_L ?FHh
i.v[,p Xx"
作为一个Linux系统管理员,你可能会把Linux 超级用户密码遗忘了,把/etc/inittab或/etc/rc.d/rc.sysinit之类文件误编辑,导致系统不能正常启动的恼人错误? +j bW s|B
b,N{C .jL
而为了解决以上问题,你就需要进到linux根文件系统处于可读写状态的单用户模式下。 ad[jt5)
cil?D9
下面介绍在GRUB引导下进入Linux单用户模式的三种方式: =`6=O?V
*wkbr5IF8
(1) 硬件环境: S o[ 1Gw
*bM~5 y}
intel P4 / 1G RAM / sata 80G 7!vvE*==
lUL<kq
(2) 软件环境: 3(Ztr) H:y
"M rw&?k
1)Fedora Core 3(以下简称为FC3)和Windows2000 advance server双系统 <FK`JZ)@
{u21 V9 n
2)LVM管理Linux分区 K ;cD "<
: ll hH7q
3)/boot/grub/grub.conf文件内容: \# t~`
ddc?\oW*
# grub.conf generated by anaconda #;T1 eB
# DxLn&x\3
# Note that you do not have to rerun grub after making changes to this file "}QDq\hbK
# NOTICE: You have a /boot partition. This means that ~nI@
# all kernel and initrd paths are relative to /boot/, eg. mg4A @b=
# root (hd0,2) o"l T8c=
# kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00 a:+18Cn#O
# initrd /initrd-version.img Gs90q*gf
#boot=/dev/sda ,(n<0Ce
default=1 :iUzt -%h
timeout=1000 { _5#<8
splashimage=(hd0,2)/grub/splash.xpm.gz Eft!LY
hiddenmenu +vNLw(jU
title Fedora Core (2.6.9-1.667) Z]hUe]Tr
root (hd0,2) !@b(#E
kernel /vmlinuz-2.6.9-1.667 ro root=/dev/VolGroup00/LogVol00 rhgb quiet mRZ.\P9
initrd /initrd-2.6.9-1.667.img _13k3L;
title windows 2000 adv >ka_d9<mU
rootnoverify (hd0,0) m:vw2P+z
chainloader +1 k4L esz34
}SvNw51(
首先,启动电脑,屏幕出现如下提示: 6P+e!V
Q -GK=ig
Press any key to enter the menu DLb3iMCW
Booting windows 2000 adv in 999 seconds… sl64d
? 6=
按任一键跳过计时,进入下一步: b~&$[w
I~D_fb#
GNU GRUB version 0.95 (639K lower/103924K upper memory) zWhp/!~)\
Fedora Core (2.6.9-1.667) G.DDv4
Windows 2000 adv &C2]npZZ
i*rTd+%)
下面是GRUB的提示: ZG./rQE <
z0y_"
‘e’ 在booting前编辑启动命令行 9rt~,+
E|) t[X
‘a’ 在booting前编辑kernel的参数 t#IFHc6^
71Uw 3z(
‘c’进入grub命令行 ? K'X{;N
a p"Yd
由此按‘e’、a’、‘c’三个不同的键,进入三种不同的操作: t=j:e%"|
kb|pbjnnB
1.快速法: suhBA
dY&61-.wO
选择Fedora Core (2.6.9-1.667)菜单, <1Jd
%oVw(30Z
按a键: 5\-%X1I
:.e .9:
grub append>ro root=/dev/VolGroup00/LogVol00 rhgb quiet i{0^?{c@
k:k> ?jZ`
修改成: \}kow ?vcT
]cU_Z4
grub append>ro root=/dev/VolGroup00/LogVol00 single quiet >&nQ
ma[Z+<S
按ENTER键完成修改并booting进入Linux单用户模式 JzGbLA,!
WlVRQk6!
sh-3.00# _w`XWxBC
gnA6?UU
2.简便法: ~L|p>^YU
tFIKM+<7#j
选择Fedora Core (2.6.9-1.667)菜单, {zlj$-KH
(^LgcE
按e键: $3aM.n 9
6'#0AD
root (hd0,2) a>q y9A-7
y@Do{4$#
kernel /vmlinuz-2.6.9-1.667 ro root=/dev/VolGroup00/LogVol00 rhgb quiet h%g W52!
initrd /initrd-2.6.9-1.667.img ^``$C4
选择kernel /vmlinuz-2.6.9-1.667 ro root=/dev/VolGroup00/LogVol00 rhgb quiet命令行 ,:>]&
~H;J_A<;
按e键: @v!lC+cE,
G eU+k>]
grub edit>kernel /vmlinuz-2.6.9-1.667 ro root=/dev/VolGroup00/LogVol00 rhgb quiet t9GILN
{U!8[D]
修改成: sc] ]Sn?|
S[#zi~[&%
grub edit>kernel /vmlinuz-2.6.9-1.667 ro root=/dev/VolGroup00/LogVol00 single quiet pR' -`
nMjqXAv2
按ENTER键完成修改 Yo;&k/
Ql&Td a
按b键booting进入Linux单用户模式 [K:j[BX{
<UD}DO?p
sh-3.00# ]>sT;e!]
P ]a@L|\
3.手动法: #IX`'/4wC
}(
按c键进入grub命令行: # }{g#
WVcG5} O
(在grub命令行下按TAB键可得到grub命令帮助与grub命令的可能选项) ls& y\g
<fF^0?
grub>fstest ( ^QVJ7kjp
grub>filesystem tracing is now on N7 }iC
grub>root (hd0,2) ( Uk}!{,
JG2[-;
(指定保存有Linux 内核的分区为第一个硬盘的第三个分区) Bh*}r.w1.y
!'PRMYRQ
grub>filesystem type is ext2fs,partition type 0x83 *1c?fR
grub>kernel /vmlinuz-2.6.9-1.667 ro root=/dev/VolGroup00/LogVol00 single quiet ( /V9rV` x4
pS+&0"BR
(指定内核文件为/boot/vmlinuz-2.6.9-1.667,内核参数为ro—readonly, 根分区为/dev/VolGroup00/LogVol00,rhgb—图形方式启动,quiet—不输出启动信息) ?En!-"N
k0 [e>'L+
grub>initrd /initrd-2.6.9-1.667.img ( @R #+d@
$N.jgryHF
(在内核启动前加载支持系统硬件设备的内核模块---initrd镜像文件--/boot/initrd-2.6.9-1.667.img,并初始化RAM disk) S[ vdJ (
$cww3B,#Jh
grub>boot ( 7U#R"U
kv;E'-HH
如果系统的配置与脚本文件正确,以上三种方式在Booting command-list中都会出现: Y_)<S5L0
gQ9C Csd{X
remounting root filesystem in read-write mode:[OK] (#RdIH]v7t
hzDFi(OB
表示此时linux单用户模式下的根文件系统处于可读可写状态。 \ME--VXx
U ~DX.i;S
如果系统的配置与脚本文件出现错误,linux单用户模式下的根文件系统进入“read-only file system”既只读状态,此时,打入: 7>+wr"E
U7=5/Bio/
sh-3.00#mount –o remount rw –t ext3 / Y:@iOt6
{K]y kFi
让根文件系统重新mount成可读写,你就可以自由编辑出现错误的系统文件了。