一、内核以及模块
操作系统组成
1内核2shell 3应用
内核的作用
1管理内存2调度任务3驱动硬件4网络功能5安全6文件系统
Grub菜单的配置文件
内核=内核+内核模块
内核存放路径 /boot/vmlinuz-2.6.18-164.el5
内核模块的存放路径 /lib/modules/`unnamed -r`/kernel
内核模块目录内容如下表:
查看模块信息的命令:
modinfo [OPTIONS…] MODULES
常用参数如下表:
查看已加载的模块: lsmod Module 模块名称 Size 模块加载到内存时所占的体积大小,单位是字节(Bytes) Used by 有哪些模块正在使用这个模块。如果有多个模块,则每个模块间会以逗号间隔开来
手动加载模块:
Insmod MODULE_FILE[PARAMETER=VALUE…] MODULE_FILE 要加载的模块文件名,必须是绝对路径 PARAMETER是参数名称 VALUE是该参数的值
手动卸载模块:
rmmod [-s,--syslog]MODULE… -s 代表要将卸载的信息记录记录到系统日志服务器
卸载模块同样也会遇到依赖关系的问题,Red Hat Enterprise Linux提供一个名为modprobe的工具,语法如下:
modprobe 常用参数:
/proc/sys/中的内核参数文件
/proc/sys/重要的目录表
使用sysctl配置内核参数
1使用sysctl查看内核参数 sysctl -a
2使用sysctl修改内核参数 sysctl -w PARAMETER(内核参数名称)=VALUE(参数值)
使用yum升级内核命令: yum �Cd 0 �Cy updatekernel
二、故障排除
在运行安装有Red Hat Enterprise Linux的服务器上,经过长时间的运行难免会遇到大大小小的故障,那么就需要我们对故障进行排查与分析后去解决。
首先我们面对出现故障的服务器应该具备以下专业素质:1、紧张但不慌张;2、了解运行原理;3、做好各种情况的应对措施
故障的排除成功与否,往往取决于丰富的经验与扎实的理论基础,但是还是可以归纳出几个简单的法则:1、搜集情报;2、找出原因(由上到下、由下到上);3、解决问题;4、追踪管控。
技巧:1、保持干净;2、修改配置文件前先备份;3、熟悉修复工具与技术。
如果系统出现故障,如不能正常运行或启动,那么我们应该对系统的启动流程有个清晰的认识。
系统启动流程
(1)初始化BIOS (2)执行启动加载器(3)载入内核(4)启动init 服务
对于Red Hat Enterprise Linux系统中,提供具有修复系统功能的工具有:1、Runleve 1;
2、Runlevel S ;3、Runlevel emergency。这些Runlevel能够暂时修改启动流程,以避开Red Hat Enterprise Linux的错误。
Runlevel 1 可以在启动加载器执行时,要求启动后直接进入Runlevel 1.当开机直接进入Runlevel 1时,Red Hat Enterprise Linux会执行下列步骤。
BIOS ---启动加载器---内核---init---rc.sysinit---rc1.d
由于Runlevel 1 仅执行到rc1.d 便结束了。因此可以使用Runlevel 1来解决下列错误。
进入Runlevel 2、Runlevel 3、Runlevel 4、Runlevel 5时所发生的错误。
因为在开机至rc1.d的过程中不会执行任何PAM的客户端,可以利用Runlevel 1解决PAM子系统造成的错误。
RunlevelS 单用户模式当开机时选择进入Runlevel S时,Red Hat Enterprise Linux会执行下列的程序。
BIOS---启动加载器---内核---init---rc.sysinit
可以利用Runlevel S来解决下列的状况。
Runlevel 1可以解决的问题。
由于Runlevel S仅执行至rc.sysinit就结束,不会执行在Runlevel 1启动的服务,因此你可以通过Runlevel S来解决因Runlevel 1发生的错误。
Runlevelemergency 当开机选择进入Runlevel emergency 时,Red Hat Enterprise Linux会执行下列的程序。
BIOS---启动加载器---内核----init
可以利用Runlevel emergency解决下列问题。
Runlevel S可以解决的错误。
rc.sysinit发生的错误。
由于进入Runlevel emergency时根文件系统是只读的状态,所以无法直接修改Red Hat Enterprise Linux中的文件。
如果你的Red Hat Enterprise Linux而在启动init服务之前因发生故障停止工作,此时我们就要依赖“救援环境”了。、
挂载系统光盘,在BIOS里设置光盘启动,与安装系统一样。在boot:处输入linux rescue,就可以进入救援环境。
当出现下面的画面,恭喜你,Anaconda已经成功地将硬盘中的Red Hat Enterprise Linux挂载到/mnt/sysimage/目录中了。按下【Enter】键结束这个画面后,Anaconda会提供一个shell。
这个时候我们可以使用chroot命令来修改救援环境下的根目录:
chroot DIRECTORY[COMMSNDS] DIRECTORY是需要进入根目录的路径名称,COMMANDS是修改根目录后要执行的命令,如果省略,则默认值为bash �Ci。
三、常见错误与解决办法
1、启动器加载错误
(1)启动加载器损坏
解决步骤:1进入救援环境,挂载硬盘中的Red Hat Enterprise Linux环境到救援环境。
2使用chroot切换至硬盘的根目录文件系统
3使用grub-install 重新安装GRUB至你的硬盘。
修正后结束救援环境,即可重新启动Red Hat Enterprise Linux系统。
2、配置错误
解决步骤:1进入救援环境,挂载硬盘中的Red Hat Enterprise Linux环境到救援环境。
2使用chroot切换至硬盘的根目录文件系统。该步骤可以略过。
3使用vim修正GRUB的配置文件/boot/grub/grub.conf。如果没执行上一个步骤,则GRUB配置文件为/mnt/sysimage/boot/grub/grub.conf,修正后结束救援环境即可。
3、无法挂载根目录系统
当init启动后,会执行下列程序文件,以便初始化Red Hat Enterprise Linux的环境。
/etc/rc.d/rc.sysinit: 用来初始化系统的环境
/etc/rc.d/rc: 负责初始化Runlevel的环境
/etc/rc.d/rc.local:定制初始化工作
(1)内核启动参数错误
解决方法:仔细检查/etc/fstab的内容是否正确,rc.sysinit执行过程中的许多动作都与/etc/fstab的内容有关。
(2)文件系统错乱
Ext2文件系统的内容紊乱,造成挂载该文件系统时,发生严重错误而导致挂载失败。画面如下:
使用超级用户登录系统,登录完毕后,使用fsck来检查并修复该文件系统。
完成后,结束目前的shell。系统会自动重启。
4、SELinux的故障排除
(1)直接浏览/var/log/messages记录文件,许多故障可以凭借这个文件来找出故障原因,我们遇到故障时,应该多看看这个系日志文件。
(2)使用SELinux故障排除工具
1通过系统图形界面的菜单选项【系统】→【管理】→【SELinux故障排除】命令,便可启动SELinux故障排除工具。
2通过命令:在X Windows System终端机仿真程序中执行sealter �Cb命令。
(3)查看审核报告
auserch工具查找SELinux审核记录
ausearch[OPTIONS…] 常用参数:
除了auserach外,还可以使用aureport工具来产生SELInux审核报表
aureport[OPTIONS…] 常用参数:
5、忘记密码或密码错误
(1)普通用户
以超级用户(root)身份登入系统,使用passwd重新设置普通用户的密码即可。
(2)超级用户
1重新开机,在启动加载器中直接进入Runsevel 1;
2使用passwd设置新的密码。
完成后,结束Runsevel 1的shell即可继续系统启动流程,启动完成后,使用新的密码登陆系统。
6、账号过期
可以使用change �Cl查看账户与密码的有效期限。如果账号已过期,系统将会禁止该用户登录系统,这时可以使用change �CE重新设置新的过期日期。
作为一名网管员,在服务器运行中,我们会遇到各种各样的故障与错误,我们需要根据自己的经验与理论知识来进行故障排除,并在不断学习充电中加强我们的运行维护能力与故障排除能力。