常见Linux系统故障与解决方法Word文档格式.docx
- 文档编号:19357256
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:15
- 大小:80.72KB
常见Linux系统故障与解决方法Word文档格式.docx
《常见Linux系统故障与解决方法Word文档格式.docx》由会员分享,可在线阅读,更多相关《常见Linux系统故障与解决方法Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
这样系统就启动到了单用户模式下,这里的单用户根windows下的安全模式类似,在单用户模式下,只是
启动最基本的系统,网络以及应用服务均不启动。
单用户模式启动完毕,系统会自动进入到命令行状态下,
类似与Sh-3.1#”,然后直接执行passwd,回车,系统会提示输入新的root密码两次,最后会看到修改密
码成功的提示,这样就完成了root密码的修改。
如果需要正常启动系统,现在只需输入“hit3”,就进入了
多用户模式。
用root用户重新登录系统,看看设置的新密码是否生效。
三linux系统无法启动的解决办法
导致linux无法启动的原因有很多,常见的原因有如下几种:
文件系统配置不当,比如/etc/inittab文件、/etc/fstab文件等配置错误或丢失,导致系统错误,无法启动。
非法关机,导致root文件系统破坏,也就是linux根分区破坏,系统无常启动
Linux核崩溃,从而无法启动
系统引导程序出现问题,比如grub丢失或者损坏,导致系统无法引导启动。
硬件故障,比如主板、电源、硬盘等出现问题,导致linux无法启动。
从这些常见的故障可知,导致系统无法启动的主要有两个问题,硬件原因和操作系统原因,对于硬件出现的问题,只需通过更换硬件设备,即可解决,而对于操作系统出现的问题,虽然出现的问题可能千差万别,不过在多数情况下都可以用相对简单统一的一些方法来恢复系统,下面我们就针对上面提出的几个问题,结合RedhatLinux系统环境,给出一些常用的、普遍的解决问题的方法。
1./etc/fstab文件丢失,导致系统无法启动
/etc/fstab文件存放了系统中文件系统的相关信息,如果正确的配置了该文件,那么在linux启动时,系统
会读取此文件,自动挂载linux的各个分区,如果此文件配置错误,或者丢失,就会导致系统无法启动,具
体的故障现象是在检测mountpartition时出现:
startingsystemlogger
此后系统启动就停止了。
针对这个问题,我们的第一思路就是想办法恢复/etc/fstab这个文件的信息,只要恢复了此文件,系统就能
自动挂载每个分区,正常启动。
可能很多读者首先想到的是将系统切换到单用户模式下,然后手动挂载分区,最后结合系统信息,重建/etc/fstab文件。
但是这种方法是行不通的,因为fatab文件丢失导致linux无法挂载任何一个分区,即使linux还能切换到
单用户下,那么此时的系统也只是一个read-only的文件系统,无法向磁盘写入任何信息。
我们介绍另外一个方法,就是利用linuxrescue修复模式登录系统,进而获取分区和挂载点信息,重构
/etc/fstab文件。
这里以rhel5为例,首先将系统第一章光盘放入光驱,设置BOIS从光驱启动,这样系统就从光驱引导,然
后在boot后输入:
linuxrescue,如图1所示:
REDHAT
ENTERPRISELINUX5
To1orupgradeinyrnpltiglnixie,pressthe<
EHTEH>
key.
TainstdL1orupgradeintEKt(node,lypeiEJtiumtext<
ENTEB>
.
卜US6thfefuhCtJfln號0#右Hst«
dFqfn&
rt
boot:
】imiHm-scue
图1设置linux进入修复模式
接着系统自动开始引导,进入图2所示画面:
MhdLuayewauIdycniIikctolist:
duritigtheinstftllaiionprocess?
CfttaIaf■
CJiinesECSimp1if
Chi^cscCTrftdit・
Crontian
Csech
DAitlsh
Dutch
H■Tab>
bEtbMrLnrIemcntxi<
S))dcc>
stIrcts(<
T1Z>
nrxtscreen
图2选择语言
这里是选择模式使用的语言,可以按照自己需要设定,我们这里选择English“然后按tab键,选中ok”,
回车进入下一步。
下面进入的是键盘选择界面,如图3所示,这里选择默认的us”即可。
liTHIoac_toHcdHatEnterpriseLinuxServerRescuen^Aa
Uh*ttypeofdoyauhauc?
Sfftfltin1sk-querttjownesvletinitr(ina-tttrwk
<
Tab>
/<
fiit-Tflb>
beturcnclefftcnts■<
Sp^ct?
>
selects1<
F12>
nextseprm
图3选择键盘类型
下面进入网络配置界面,如图4所示:
|SctiifPHei[
Do中chjtMnt忒口wtartthenetworkintrrfacesonthis
Yes
CF1-Z>
nextstrern
TaI>
fl31-Tflb>
betwetMieleventhI<
5udce>
selects
图4是否启用网络
这里是选择是否启用网络,由于系统已经无法启动,我们已经在linux系统上进行操作了,启用网络与否都
无所谓。
这里选择不启用。
下面到了最关键的步骤了,如图5所示,修复模式会自动将系统的所有分区挂载到/mnt/sysimage目录下,
选择Continue”,则修复环境进入到read-write状态下,可以对分区进行读写操作,选择Read-Only”,修
复环境进入到只读模式,由于我们要重建fstab文件到/etc目录下,因此选择Continue"
进入可读写模式下。
Thrrescuecnvlr-DiintntHillnouAttr(ri]>
t1cfLikdyourLinuxin^t^1andmu.nt(tunderthe
directorysilage.Yoitcanthenitake.1ny
cJiflpycsrequIrtdXqyoursysteiirJfyoutoprncct!
^withthisstepchoose'
Cnntimic"
<
YouennalxochooTirtnmmiintyourriErrend-onIih>
stcaElofrenA-urLIe-bych&
osing*UunJ-Only1"
+
ITfarsnmrrnsflnthisprocess:
failsij^uE«
ncJivosc1Sk1|?
J内“dtillsstepifIF舌vsklpp艰4棺ndyouwi1L屯odirectlyttk&
eant*andsheI1.
A11Tfib>
betwrtocIrmcntxI<
Spncr>
sclrzctst<
K]£
nr:
xtscreen
图5选择修复模式的启动方式
下面是一个友情提示界面,如图6所示,由于fstab文件丢失,修复模式找不到任何可挂载的分区,从这里
可知,修复模式在这里也读取/etc/fstab文件,回车,进入下一步。
Tow<
irinJtliflvrathjLinuxpctrtitionstl*ressreturntagetashe]I,Thesi>
stchui11rebootfttitoHAtled1Li|uhenyouexitrr-omlit已sheI1<
图6无法挂载系统任何分区
下面就进入了修复环境下,可以进行操作了。
如图7所示
JhcnfinishedpleaseexitframthushelIandEjaursystemuiI]risbcat,
sh-3.1ft
图7修复模式命令行
上面详细演示了如何进入linux的修复模式,其实很多情况下,linux无法启动时,都可以通过这个方式登录系统进行修复和更改操作。
下面是恢复/etc/fstab文件的详细过程:
首先查看一下系统分区情况,如下所示:
sh-3.1#fdisk-l
Disk/dev/sda:
42.9GB,bytes
255heads,63sectors/track,5221cylinders
Units=cylindersof16065*512=8225280bytes
DeviceBootStartEndBlocksIdSystem
/dev/sdal*12520078183Linux
/dev/sda226130010241437+83Linux
/dev/sda313011682306841583Linux
/dev/sda41683522128427017+5Extended
/dev/sda516831873153417683Linux
/dev/sda618742064153417683Linux
/dev/sda720652255153417683Linux
/dev/sda822562382102009683Linux
/dev/sda923832484819283+82Linuxswap/Solaris
/dev/sda10248552212198492183Linux
因为分区并没有损坏,通过fdisk命令可以查看到系统分区的完整信息,但是每个分区对应的labelname
信息我们还**,下面通过e2label命令查看每个分区对应的labelname:
sh-3.1#e2label/dev/sda1
/boot
sh-3.1#e2label/dev/sda2/usrsh-3.1#e2label/dev/sda3
/
sh-3.1#e2label/dev/sda5
/var
sh-3.1#e2label/dev/sda6
/tmp
sh-3.1#e2label/dev/sda7
/home
sh-3.1#e2label/dev/sda8
/opt
sh-3.1#e2label/dev/sda10
/webdata这样,就得到了所有分区的挂载点信息,接下来就可以构造一个fstab文件了。
小技巧:
可以参考其它系统中fstab文件的格式,结合本系统的分区和挂载点信息,构造出自己的fstab文件来。
由于fstab文件是存放在系统根目录下的,因此需要挂载原来系统的根分区,从上面可知根分区对应的设备名为/dev/sda3,接着在修复模式创建的临时根分区下创建一个挂载点,然后挂载原来系统的根分区。
操作过程如下所示:
sh-3.1#pwd
sh-3.1#mkdirtemp
sh-3.1#mount/dev/sda3/temp
sh-3.1#df
Filesystem1K-blocksUsedAvailableUse%Mountedon
/dev51564405156440%/dev
/tmp/loop079872798720100%/mnt/runtime
/dev/sda32972268259916255893210%/temp
这样以来,原有根分区的文件全部挂载到了/temp目录下,接着就可以创建我们需要的fatab文件了。
sh-3.1#vi/temp/etc/fstab
LABEL=//ext3defaults11
LABEL=/boot/bootext3defaults12
LABEL=/cicro/cicroext3defaults12
devpts/dev/ptsdevptsgid=5,mode=62000
tmpfs/dev/shmtmpfsdefaults00
LABEL=/home/homeext3defaults12
LABEL=/opt/optext3defaults12proc/procprocdefaults00
sysfs/syssysfsdefaults00LABEL=/tmp/tmpext3defaults12LABEL=/usr/usrext3defaults12LABEL=/var/varext3defaults12LABEL=SWAP-sda9swapswapdefaults00配置完毕,保存退出,然后重启系统。
sh-3.1#reboot
2、root文件系统破坏,导致系统无法启动
Linux下普遍采用的是ext3文件系统,ext3是一个具有日志记录功能的日志文件系统,可以进行简单的容错和恢复,但是在一个高负荷读写的ext3文件系统下,如果突然发生掉电,就很有可能发生文件系统部结构不一致,导致文件系统破坏。
Linux在启动时,会自动去分析和检查系统分区,如果发现文件系统有简单的错误,会自动修复,如果文件系统破坏比较严重,系统无法完成修复时,系统就会自动进入单用户模式下或者出现一个交互界面,提示用户介入手动修复,现象类似下面所示:
checkingrootfilesystem
/dev/sdb5containsafilesystemwitherrors,checkforced
/dev/sdb5:
Unattachedinode68338812
UNEXPECTEDINCONSISTENCY;
RUNfsckMANUALLY
(i.e.,without-aor-poptions)
FAILED
/containsafilesystemwitherrorscheckforced
aneroroccurredduringthefilesystemcheck
****droppingyoutoashell;
thesystemwillreboot
****whenyouleavetheshell
Pressenterformaintenance
(ortypeControl-Dtocontinue):
giverootpasswordformaintenance从这个错误可以看出,系统根分区文件系统出现了问题,系统在启动时无法自动修复,然后进入到了一个交互界面,提示用户进行系统修复。
这个问题发生的机率很高,引起这个问题的主要原因就是系统突然掉电,引起文件系统结构不一致。
一般情况下解决此问题的办法是采用fsck命令,进行强制修复。
根据上面的错误提示,当按下“Control-D”组合键后系统自动重启,当输入root密码后进入系统修复模式,在修复模式下,可以执行fsck命令,具体操作过程如下:
[rootlocalhost/]#umount/dev/sdb5
[rootlocalhost/]#fsck.ext3-y/dev/sdb5e2fsck1.39(29-May-2006)
/containsafilesystemwitherrors,checkforced.
Pass1:
Checkinginodes,blocks,andsizes
Pass2:
Checkingdirectorystructure
Pass3:
Checkingdirectoryconnectivity
Pass4:
Checkingreferencecounts
Inode6833812refcountis2,shouldbe1.Fix<
y>
?
yes
Unattachedinode6833812
Connectto/lost+found<
Pass5:
Checkinggroupsummaryinformation
Blockbitmapdifferences:
-(519--529)-9273
Fix<
/:
*****FILESYSTEMWASMODIFIED*****
19/128520files(15.8%non-contiguous),46034/514048blocks
上面就是fsck修复受损文件系统的过程,fsck详细用法在本书第四章有详细的讲述,这里不在多讲。
需要注意的是,在执行fsck的时候,一定要先卸载要修复的分区,然后再执行修复操作,切记!
三、其它故障的一般解决方案
如果是linux的引导程序出现问题,那么也可以通过光盘引导的方式进入linux修复模式,然后修改对应的
引导程序或者重新安装引导程序。
如果linux核崩溃或者丢失,同样可以先进入linuxrescue下,然后加载root分区,最后重新编译核。
如果出现了最坏的情况,文件系统破坏严重,同时核也崩溃,那么此时重新安装系统反而比较容易,在这种情况下可以先将linux上有用的数据和文件备份转移到其它设备,然后对整个文件系统进行全新安装。
在这里我们不可能对每个出现的问题,都给出详细的解决方案,问题都是千差万别的,每个问题的处理都
不尽相同,本书要传授给大家的是当linux系统出现问题后,解决问题的一般思路和通用策略,熟练掌握了这些技巧,处理任何linux问题都能游刃有余。
四、linux下常见网络故障处理
linux网络服务功能非常强大,在linux上可以部署WebServer、DNSServer、MailServer、Dbserver、Ftpserver等等,但是也由此产生了很多网络问题,据统计,在linux系统下产生的故障,有60%来自网络
方面,40%来自系统本身,可见熟练解决linux下故障,对于熟练掌握linux有着巨大的帮助。
解决linux网络问题的顺序应该是首先从Linux操作系统自身的底层网络开始,然后逐步有点及面的向外扩
展,网络问题的一般解决流程为:
网络硬件传输问题,可以通过检查网线是否正常,网卡、集线器、路由器、交换机等是否正常来确认是否由硬件问题造成网络故障。
检查网卡是否能正常工作,可以从网卡是否正常加载、网卡IP设置是否正确、系统路由是否设置正确3
个方面进行检查确认。
检查DNS是否设定正确,可以从linux的DNS客户端配置文件/etc/resolv.conf,本地主机文件/etc/hosts进行检查确认。
服务是否正常打开,可以通过telnet或者netstat命令的方式检测服务是否开启。
访问权限是否打开,可以从本机iptables防火墙、linux核强制访问控制策略selinux两方面入手,进行
检查确认。
局域网主机之间联机是否正常;
可以通过ping自身IP,ping局域网其它主机IP,ping网关地址来确
认局域网是否连接正常。
接下来,我们就针对上面给出的解决网络问题的一般思路,详细展开讲述。
1.检查网络硬件传输问题
检查网络故障,首先要排除的是网络硬件设备是否存在问题,比如网线是否正常,网卡、集线器、路由器、交换机等是否正常,这些是网络正常运行的基本条件,如果发现某些设备出现故障,只需更换硬件即可解决问题。
2•检查网卡是否能正常工作
(1)检查网卡是否正常加载
通过lsmod、ifconfig命令可以判断网卡是否正常加载,如果通过ifconfig可以显示网络接口(ethO、eth1
等等)的配置信息,表示系统已经认到了网卡驱动程序,检测到了网络设备,网卡加载正常。
(2)检查网卡IP设置是否正确
接下来就要检查网卡的软件设定,比如IP是否配置,配置是否正确,确保IP的配置和局域网其它计算机
配置没有冲突。
(3)检查系
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 常见 Linux 系统故障 解决方法