RHCE排错篇.docx
- 文档编号:14432054
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:10
- 大小:22.35KB
RHCE排错篇.docx
《RHCE排错篇.docx》由会员分享,可在线阅读,更多相关《RHCE排错篇.docx(10页珍藏版)》请在冰点文库上搜索。
RHCE排错篇
RHCE排错篇
考点16.01排错策略考点16.01排错策略
当你遇到问题时要冷静对待。
如果你已经通读了本书,并具有一定经验,请不必紧张,你能很快查找到问题的原因。
如果你不能确定问题是如何产生的,首先尝试简单的解决方法。
它能够占用较少的时间,并对你的系统影响最小。
如果你想了解的更详细,记住下面7个基本步骤(就像维基百科)。
它们能帮你应付RedHat考试中的排错和系统维护部分。
如果你有经验,可以直接跳到解决问题的那一步。
---关于考试
排错和系统维护
如RedHat考试指导()中提到的,RHCE和RHCT考试都要考到排错和系统维护。
要获得RHCE,你需要完成第一个小时考试的RHCT部分。
考试内容有如下几类:
*在不同级别启动系统,以完成排错和系统维护。
*诊断并更正错误的网络配置。
*诊断并更正主机名解析问题。
*配置XWindows系统和桌面环境。
*在已安装的系统上添加分区、文件系统和交换分区。
*使用命令行工具分析问题和配置系统。
要获得RHCE,你至少需要完成RHCE考试80%的内容。
考试内容有如下几类:
*利用提供的第一张安装盘,进入急救(救援)模式。
*诊断和更正引导分区、模块和文件系统错误导致的启动失败。
*诊断和更正网络服务问题(见下面"安装与配置"的服务列表)。
(在此提到的是RHCE考试的"安装与配置"部分)*添加、移除和更改逻辑卷*诊断和更正由于SELinux造成的网络服务问题。
举个例子。
如果有5道RHCT问题和5道RHCE问题。
要通过这部分RHCE考试你需要完成所有的RHCT问题和至少3道RHCE问题。
关于网络服务,你会遇到书中所描述的一个或多个服务的问题,包括Apache、Samba、NFS、FTP、Squid、sendmail、Postfix、Dovecot、SSH、DNS和NTP。
---
1、确定问题了解发生了什么。
查看错误信息。
如果可以,分析日志文件或其他消息。
如果你读了这本书并进行了实验,你可能很快就找到问题的所在。
2、收集信息和资源分析你的系统。
这要求你检查相关的配置文件以确定服务的正常运行和安全,或其他的系统特征的工作情况。
如果你有经验的话,你会找到这部分引起问题的错误所在。
3、做个假设如果你仍未找到问题所在,猜一下。
记住RedHat考试的时间是有限的,因此如果情况允许,你可以忽略它。
(要获得RHCE,你必须完成RHCT级别的所有排错和系统维护问题。
)
4、进行实验和采集数据在实验前,备份所有你可能要改动的东西。
例如,如果你认为问题是由Samba的配置文件引起的,备份你的/etc/samba/smb.conf文件,以防止你的假设错误。
5、分析数据这和第一步几乎相同。
如果你还没有解决问题,你需要再通过相关错误消息和日志文件分析哪里出了问题。
6、从数据得出结论,进行新的假设大多时候,你需要恢复你在第4步所做的备份,然后重复2-4步骤。
7、发布结果一旦你解决了问题,确定在重启后问题不会再次出现。
例如,如果你记录了一个Samba错误,你可能要发布它,以确定在下次Linux系统启动后Samba进程正常启动。
通常两个地方的错误会造成启动失败,即启动引导文件和init配置文件,/boot/grub/grub.conf和/etc/inittab。
例如,定义了错误的root分区(/)会造成内核引导失败。
其它配置错误也会造成Linux启动事的内核错误。
一旦你改动了这些文件,唯一的充分验证的办法就是重启Linux。
考试预览
作为RedHatEnterpriseLinux系统管理员,你需要知道如何修正于启动过程相关的配置文件。
处于这个原因,考试中会有一些题目考察你排错和分析的技巧。
下面的案例与解决方案列出了在启动过程中你可能遇到的问题和解决办法。
这些是远远不够的。
这些解决方法,在我的计算机上是起作用的,我已经配置过了。
但是造成问题的原因是多种的。
在RedHat考试中,这种解决方法也许就不可行。
要知道为什么,需要你多做实验。
要想获得更多的经验,你需要尝试不同的场景(记住:
不要在生产计算机上做这些事)。
如果你已经熟悉linuxrescue环境了,尝试其他场景。
这些场景我在RHEL5下测试过,但在RHEL3或RHEL4下可能会出现问题。
第一个场景,对grub.conf改名,这将导致无法引导。
重启看一下你的系统。
使用linuxrescue环境启动到RHEL修复你的系统。
第二个场景,覆盖MBR;在SATA/SCSI驱动下,使用一下命令(如果你的系统使用IDE/PATA驱动,用hda替代sda):
#ddif=/dev/zeroof=/dev/sdabs=446count=1
第三个场景,用/sbin/mount.nfs覆盖/bin/mount命令然后重启。
第四个场景,覆盖/bin/init命令。
第五个场景,基于遗失/etc/inittab;你可能会看见一些大的错误(或注释掉一些关键命令)。
第六个场景,信息显示如,发生原因是我将运行级别设为3,并注释掉/etc/inittab中的mingetty命令行。
Startingsmartd;[OK]INIT;nomoreprocessesleftinthisrunlevel
第七个场景,将/boot/grub/grub.conf中的root指令写错,你会看到如下信息:
root(hd1,0)Filesystemtypeunknown,partitiontype0xfdkernel/vmlinuz-2.6.18-0.1.1.e15roroot=/dev/VolGroup00/LogVo100rhgbquitError17:
CannotmountselectedpartitionPressanykeytocontinue.
有时,你进入默认启动级别会出现问题。
无需担心,这里有两种办法启动到不同级别。
你可以从GRUB配置菜单进入,或启动进行linuxrescue环境。
-案例--解决办法
1、当启动时,你看见grub提示你可能在启动程序读取启动文件grub.conf时遇到了问题。
文件丢失或不正确。
对于这种情况你需要根据/usr/share/doc/grub-verisonnum目录下的menu.lst文件重新建立grub.conf文件。
2、当你启动系统时遇到这样的消息,如"Missingoperatingsystem"或"OperatingSystemNotFound."。
你的主引导分区(MBR)可能被覆盖了,你需要使用grub-install命令重新在MBR上加载GRUB。
(如果是在实验外,我相信MBR所有东西都会被擦除。
)
3、在启动过程中,你看见"CouldnotstarttheXserver(graphicalenvironment)duetosomeinternalerror"的信息。
问题可能在于/tmp或/home分区被写满或没有挂载上。
如果这些目录没有挂载,mount命令可能出了问题,使用mountRPM包重新安装它。
4、你看见"execofinit(/sbin/init)failed!
"错误你的init命令可能受损。
使用SysVinitRPM包重新安装。
5、你看见如下消息:
"INIT:
Noinittabfilefound"很明显是/etc/inittab出了问题。
如果是这样,RHEL5会提示你"Enterrunlevel"。
如果是/etc/inittab丢失,键如s回看见bash提示。
6、你看到类似下面的消息:
INIT;nomoreprocessesleftinthisrunlevel
你可能没有启动任何字符或图形接口,在当前级别;跟踪/etc/inittab的启动。
7、你看到如下消息:
(注意前面提到的)root(hd1,0)Filesystemtypeunknown,partitiontype0xfdkernel/vmlinuz-2.6.18-0.1.1.e15roroot=/dev/VolGroup00/LogVo100rhgbquitError17:
CannotmountselectedpartitionPressanykeytocontinue.
RHEL在读取grub.conf文件时遇到了问题。
启动linuxrescue环境,检查这个文件,以及/boot目录。
-
从不同级别启动
简短来说,你可以从GRUB菜单选择进入不同启动级别。
这是RHCT排错和系统维护所要求掌握的,也是Linux系统管理员的基本技能。
启动级别描述如下:
启动级别---描述0停止系统1激活SELinux;允许/etc/rc.sysinit,检查并挂载文件系统;运行/etc/rc1.d目录下的所有脚本s或single单用户模式;激活SELinux;运行/etc/rc.sysinit,检查并挂载文件系统emergency紧急启动模式;激活SELinux;仅挂载root(/)文件系统init=/bin/sh紧急启动模式;仅挂载root(/)文件系统2没有网络的多用户模式;不包括NFS相关功能,以及automount或CUPS3带网络的多用户模式;启动进行字符登录界面4通常未被使用;默认设置等同于级别35带XWindows的多用户模式;启动进入图形登录界面6重启系统
在RedHat考试指导中提到"RHCT需要能够从不同级别启动系统以完成排错和系统维护"。
这意味着,在启动提示符下,你要能在不同级别启动Linux。
这两点非常有用。
如果你默认启动级别是5,你的系统通常启动进入图形界面。
如果你的图形界面启动有问题,你可以在级别3启动Linux系统到字符界面下。
另一个帮助你诊断Linux系统的选项是单用户模式(sigle-usermode)。
这适用于你的系统只能找到root分区(/)。
你的系统可以找到正确的根分区并开始启动过程,但是却因为其他的错误,如:
进程损坏、配置文件错误而无法进入更高的运行级别。
当你进入单用户模式时,类似于下面章节提到的linuxrescue环境。
其他运行级别用于其他特殊情况。
要进入不同启动级别,首先假设你使用RHEL默认引导程序GRUB。
这时,按下p输入GRUB密码(如果有的话)。
键入a修改内核选项。
你会看见类似如下的输出:
grubappendroroot=LABEL=/rhgbquiet
在命令末尾添加一条:
grubappendroroot=LABEL=/singlegrubappendroroot=LABEL=/init=/bin/shgrubappendroroot=LABEL=/emergencygrubappendroroot=LABEL=/1
你可以使用这种方法进入其他运行级别。
例如,启动到运行级别3,你可以更改内核参数,添加命令如下:
grubappendroroot=LABEL=/3
在工作中
这一启动加载器和启动加载程序是可以替换的。
在本书中,我们通常使用这款,如RedHat文档所指导的。
当然,这款启动加载程序在RedHat文档中是相同的。
当你启动进入运行级别1,进入系统是不需要密码的。
在下面章节中,你就会发现,在这个级别下运行的系统于linuxrescue模式是很类似的。
很多你通常用到的命令和工具将不再可用。
你需要挂载额外的硬盘和分区并在运行一些命令时使用完全路径。
当你解决问题后,重新启动系统。
另外,你可以键入exit启动在/etc/inittab中的默认运行级别,可能是级别3或5。
在工作中
在运行级别1下,任何用户都可以更改root密码。
你肯定不会希望其他人将你的计算机重启进入这一级别,并更改你的root密码。
因此,将你的计算机置于一个安全的地点很重要。
你也可以设置GRUB密码或甚至BISO密码来保证物理的访问,以防止你的计算机以单用户模式启动。
LinusRescue环境
简单来说,你可以使用linuxrescue环境启动任何不能启动的系统。
使用第一张安装盘,在boot:
提示符键入linuxrescue。
开始的一些步骤类似安装RHEL5。
如果linuxrescue检测到你的系统,它可能会将你的系统作为子目录挂载到/mnt/sysimage目录下,模式为读写或只读。
如果你的文件系统没有挂载上,你可以打开一个命令提示符,继续排错。
当你在安装的启动提示符下键入linuxrescue,进入启动步骤,安装程序会安装一个小型的root文件系统。
要进入linuxrescue启动模式,首先你要将系统设为从CD-ROM启动。
图-略
考试预览
RedHat考试指导的RHCE部分,要求你能够利用RHEL第一张安装盘进入linuxrescue环境。
遵循如下步骤:
1、利用RHEL5安装盘启动系统。
2、在boot:
提示符下键入linuxrescue。
你的系统会从第一张安装盘上启动一个基本的Linux。
3、按提示选择合适的语言。
4、按提示选择合适的键盘。
5、你会看见如下提示消息:
Runninganaconda,theRedHatEnterpriseLinuxrescuemode-pleasewait.6、你可能会被问道是否启动本地系统的网卡。
如果你需要获得网络安装资源或从网络安装其他包选择YES;否则选NO并进入第8步。
7、你会看到一个本地网卡的网络配置窗口。
如果你的考试中有指定静态地址,遵循介绍;否则尝试从本地网络的DHCP处获得地址。
如果你已经配置了静态地址,你会看见其他界面提示你键入网关、主辅DNS地址。
8、为rescue环境选择3个选项中的一个。
通常选择第一个选项(Continue),以读写方式挂载你的RHEL系统。
(Read-Only)挂载只读系统。
选择(Skip)会不挂载RHEL系统。
在以下章节我们会详细谈到这3个选项。
9、如果成功,你会看见一条消息,提示你系统已经挂载到/mnt/sysimage下。
选择(OK),你会看见下面的提示符,你进入root特权模式。
sh-3.1#
标准linuxrescue环境
当你选择(Continue)选项,你将进入标准的linuxrescue环境。
这个救援文件为搜索你的root(/)文件系统。
如果找到,你的root(/)目录会挂载到/mnt/sysimage下。
你所有的其他文件系统作为根的子目录被挂载;例如,你的/boot目录在/mnt/sysimage/boot下面。
可能并不是所有的文件系统都会挂载上。
你可能看见下面的错误消息:
Anerroroccurredtryingtomountsomeorallofyourfilesystem这提示由于某些原因/etc/fstab下的文件系统至少有一个没有被挂载上。
如果linuxrescue环境没有问题,你看见消息,提示你系统已被挂载上。
图-略
选择OK,你会看见下面的提示符:
Yoursystemismountedunderthe/mnt/sysimagedirectory.Whenfinishedpleaseexitfromtheshellandyoursystemwillreboot.sh-3.1#
你可以使用chroot/mnt/sysimage命令。
这时你可以修复任何损坏的文件或文件系统。
首先检查没有挂载的文件系统,使用df命令。
输出类似如下:
sh-3.1#dfFilesystem1K-blocksUsedAvailableUse%Mountedon/dev/sda799205924091804531672044%/mnt/sysimage/dev/sda1101086116538421413%/mnt/sysimage/boottmpfs102400036410236361%/dev/shm
比较输出结果与/mnt/sysimage/etc/fstab配置文件。
如果一些文件系统没有挂载,可能是fstab文件配置错误造成的。
另外,分区的标签也可能会与fstab文件中的不匹配。
例如,查找标签为/dev/sda1的相关内容,运行下列命令:
#e2label/dev/sda1
它会返回挂载分区的文件系统的名字,如/boot
有时一些没有挂载的文件系统需要作一些清理,记住下面的命令,用了清理/dev/sda1分区"#fsck/dev/sdb1fsck命令仅用于未挂载的文件系统。
例如,如果你得到如下提示消息:
WARNING!
Runninge2fsckonamountedfilesystemmaycauseSEVEREfilesystemdamage.使用umount/mnt/sysimage/boot命令将目标文件系统卸载掉。
如果你在上面选择了(Skip),请看下面的"没有挂载的linuxrescue环境"章节。
另外,你可能看见下面的消息:
fsck.ext2:
Deviceorresourcebusywhiletryingtoopen/dev/hda2filesystemmountedoropenedexclusivelybyanotherprogram?
这意味着/dev/hda2可能是逻辑磁盘卷的一部分(第8章有描述)。
对于这种情况,你需要在运行fsck命令前重新看一下/mnt/sysimage/etc/fstab文件,以确定合适的逻辑卷。
在工作中
不要让ext2文件系统的相关消息打扰你,当它们被挂载为ext3时就会出现这些提示。
记住,上面的一些信息相当重要。
如果你要恢复原来的文件系统结构,使用如下命令:
#chroot/mnt/sysimage
当你使用救援光盘时,你的root(/)目录被挂载到/mnt/sysimage下。
这条命令会重置你的root(/)分区,这样你就不要再到/mnt/sysimage子目录下面了。
在工作中
通常来说,不需要运行sync命令。
如果要运行它,确定不要将未确定数据写入硬盘。
只读linuxrescue环境
当你选择(Read-Only)选项时,你会得到一个基本的提示符。
正常模式与只读模式的区别其实很小。
救援系统会试图将一切命令运行于正常模式,除非所以的文件系统被挂载为只读(一些救援系统文件依然会挂载为读写模式)。
这适用于你拥有很大数量的文件系统;它可以帮你挑选出哪些不工作的,和哪些对于覆盖关键配置文件来说风险较小的。
未挂载的linuxrescue环境
当你选择(Skip)选项,救援环境不会搜索任何已安装的Linux。
内核会建立一个基于RAM的root镜像,你可以使用rootshell:
Whenfinished,pleaseexitfromtheshellandyoursystemwillreboot.sh-3.1#
在这一点上,你可以使用一套基本的命令。
您可以安装文件,创建目录,移动文件,并使用编辑,如vi。
由于没有安装物理驱动器,你可以使用fdisk和fsck命令使用各种硬盘和分区。
其他一些基本命令也是可以的。
对于这种救援环境,最大的困难是你只工作于一个小型的Linux操作系统。
在这种情况下,许多命令并不象你平时使用的那样。
如果你的root分区没有完全的毁坏,你可以将root分区挂载到内存中,并使用上面的命令。
不过你可能需要一些帮助来确定你系统上的根分区。
是可以使用fdisk-l/dev/hda来查看第一块IDE硬盘的分区列表。
你可以建立一个新的目录,如在/mnt/sysimage下挂载/dev/hda2分区。
命令如下:
#mkdir/mnt/sysimage#mount/dev/hda2/mnt/sysimage#ls/mnt/sysimage
如果你能确定将标准跟分区(/)挂载到了/mnt/sysimage目录下,你可以运行chroot/mnt/sysimage命令。
这样,你就有可能使用所有命令,并修复挂载分区上的配置文件。
在工作中
如果你在救援模式下挂载了分区,并对这些分区上的文件作出了更改,记得使用sync命令。
它将你的文件写到磁盘上,防止在按下电源按钮后信息丢失。
另外,使用umount命令也会使数据写入磁盘。
特别声明:
1:
资料来源于互联网,版权归属原作者
2:
资料内容属于网络意见,与本账号立场无关
3:
如有侵权,请告知,立即删除。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- RHCE 排错篇