Linux-基础教程--内核管理和系统启动过程_第1页
Linux-基础教程--内核管理和系统启动过程_第2页
Linux-基础教程--内核管理和系统启动过程_第3页
Linux-基础教程--内核管理和系统启动过程_第4页
Linux-基础教程--内核管理和系统启动过程_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第12章内核管理和系统启动过程本章内容要点n内核管理n系统启动过程n故障排查与修复2021年12月20日2 本章学习目标 n了解内核组件n管理内核模块n调整内核参数n安全升级内核n熟悉系统系统过程n掌握修复运行级别和援救环境的使用n学会排查和修复常见的故障2021年12月20日3 内核管理内核管理2021年12月20日4 Linux内核功能n启动管理启动管理:在系统初始化过程中检测硬件、加载驱动并引导系统。n进程调度进程调度:负责控制进程对CPU的使用。n进程通信进程通信:提供了进程之间的各种通信机制。n内存管理内存管理:负责管理多个进程对内存的使用。n文件系统文件系统:使用虚拟文件系统中间层

2、支持多种不同类型的文件系统。n设备管理设备管理:为设备提供缓冲和缓存以提高硬件的访问速度。n网络接口网络接口:对各种网络标准的存取和各种网络硬件的支持。n安全管理安全管理:校验文件系统权限、SELinux 环境和防火墙规则。2021年12月20日 5RHEL/CentOS下的内核n内核的RPM包qkernel:一般用途的普通版内核,支持单核或多核CPU,最多支持4G物理内存。qkernel-PAE:支持大内存的内核,支持多核CPU,最多支持64G物理内存。qkernel-xen:支持Xen虚拟化(hypervisor)的内核。n内核文档qkernel-doc2021年12月20日 6显示内核相

3、关的信息n显示系统内核信息 quname -srvmoqcat /proc/version n显示系统架构 qarchn显示 LSB (Linux Standard Base) 和发布信息(Distribution information) qlsb_release -a # 适用于所有的 Linux 发行n显示 Linux 发布版本(仅用于 RedHat 系列) qcat /etc/redhat-releaseqrpm -q redhat,centos-release2021年12月20日 7内核的重要组件n内核映像文件q文件保存在 /boot/vmlinuz-$(uname -r) 。q由

4、启动加载器(GRUB)直接加载到内存以便启动内核。n内核模块q可根据需要装载或者卸载的内核扩展q包括驱动程序、文件系统、防火墙等等n初始化内存盘(Bootloader Initialized RAM Disk)2021年12月20日 8内核模块n内核的功能可以直接编译到内核映像文件,也可以编译为独立的模块。n可以在系统运行期间动态地加载或卸载内核模块以改变系统功能。n所有的内核模块保存在 /lib/modules/$(uname -r) 目录中。n/lib存在根文件系统中,因此所有内核模块必须在根文件系统挂载后才能使用。n为特定的内核版本编译,以Kernel的RPM提供。n可添加第三方模块20

5、21年12月20日 9内核模块工具nlsmod:列出已装载的模块q# lsmod |grep usbnmodprobe:装载和卸载模块q# modprobe usb_storageq# modprobe -r usb_storagenmodinfo:显示模块的信息q# modinfo usb_storage2021年12月20日 10内核模块配置文件 /etc/modprobe.confn定义模块别名、设置默认的模块执行参数、指定在装载或卸载模块时需要执行的操作n配置文件中 可以使用如下四个配置语句qalias:用于指定别名。qoptions:用于指定模块运行时的默认参数。qinstall:用

6、于指定加载模块时执行的命令。qremove:用于指定卸载模块时执行的命令。2021年12月20日 11初始化内存盘n初始化内存盘提供在引导初期装载的模块q用于内核映像文件中没有提供的其他设备的内核驱动模块n文件保存在 /boot/initrd-$(uname -r).img n由启动加载器(GRUB)直接加载到内存n在引导初期,根文件系统挂载之前使用n是Linux安装盘、Linux启动盘(CD、USB)、LiveCD的必备部件2021年12月20日 12重建初始化内存盘n/boot/initrd-$(uname -r).imgq是在系统安装时根据当前系统的硬件而创建的 q针对特定的硬件和软件平

7、台,不同系统的内容不同q当系统的硬件或软件改变时需要重建n使用 mkinitrd 命令重建q修改内核模块配置文件 /etc/modprobe.confq# mkinitrd /boot/initrd-$(uname -r).img $(uname -r)q也可以使用 -with=module_name 选项2021年12月20日 13虚拟文件系统 /procn虚拟文件系统 /proc是在Linux启动时挂载到根文件系统上的,它是内存的一部分而并非真正存储在硬盘上。q重启系统后上次的修改会被重新初始化n使用/proc的目的就是将Linux的内核数据以目录或文件的形式呈现给用户或应用程序,以便查看

8、内核信息或临时修改内核功能。q显示进程信息、内存资源、硬件设备、内核内存等q修改网络、内存子系统等内核属性,修改立即生效2021年12月20日 14/proc 示例n只读文件 q/proc/1/* q/proc/cpuinfo q/proc/meminfo q/proc/partitions n/proc/sys/ 下的读写文件 q/proc/sys/kernel/hostname q/proc/sys/net/ipv4/ip_forwardq/proc/sys/vm/drop_caches q/proc/sys/vm/swappiness2021年12月20日 15sysctl : 持久的内

9、核配置nsysctl 使 /proc/sys 设置具有持久性 n重新引导后,在 /etc/sysctl.conf 中添加的配置会自动体现在 /proc 中 n使用sysctl命令进行配置维护或监控: q列出所有当前设置: # sysctl -aq从sysctl.conf中重新装载: # sysctl -pq设定一个动态 /proc 值: # sysctl -w net.ipv4.ip_forward=12021年12月20日 16使用rpm命令升级内核n安装新版内核q# rpm -i kernel*q不要使用不要使用 rpm -U 或或 rpm -F !n重新启动系统,在GRUB中选择新版内核

10、启动系统n测试新版内核,若有任何问题发生可以使用旧版内核重新启动系统n当确信新版内核无任何问题时,删除旧版内核q# rpm -e kernel-oldversion2021年12月20日 17使用yum命令升级内核n使用yum命令升级内核q# yum -y update kernelq主要包含如下操作:(1)下载最新版的内核RPM文件(2)安装新版的内核RPM文件(3)根据/etc/syconfig/kernel的设置自动配置GRUBn测试新版内核,若有任何问题发生可以使用旧版内核重新启动系统n当确信新版内核无任何问题时,删除旧内核 q# yum remove kernel-oldversio

11、n2021年12月20日 18系统启动过程系统启动过程2021年12月20日19 RHEL/CentOS启动过程总览2021年12月20日 20BIOSnBIOS(Basic Input/Output System)是指首次开机时由计算机上运行的软件代码。nBIOS 的主要功能是将识别和控制各种设备的程序代码嵌入在一个芯片上。包含机器的配置信息,如:IDE controller, NIC等。nBIOS允许用户设置介质启动顺序。2021年12月20日 21BIOS初始化nTern onnCPU jump to address of BIOS (0 xFFFF0)nBIOS runs POST (

12、Power-On Self Test)qBIOS检测所有的外围设备,目的是将这些设备的信息提供给将来运行的操作系统使用。nFind bootale devicesn读取和执行引导设备首扇qBIOS读取引导介质上的MBR以寻找引导程序(MBR的前的前446字节字节),找到之后就执行它。2021年12月20日 22MBR (Master Boot Record)nMBR 是一个 512 bytes 的硬盘首扇区 (sector 1 of cylinder 0, head 0)nMBR 的组成q引导加载器(446 bytes):包含可执行代码和错误信息文本q磁盘分区表(64 bytes):包含四个分

13、区的记录q结束标志(2 bytes):用于MBR的验证检查 (0 xAA55)nMBR被加载到RAM后,启动过程将由其接管2021年12月20日 23MBR图示2021年12月20日 24启动加载器( Boot loader )n引导加载器,更贴切地称为内核加载器。n任务是加载Linux内核q可选的,初始RAM磁盘n最流行的Linux引导加载程序qGRUB 或 LILOqSyslinux2021年12月20日 25GRand Unified BootloadernGRUB 是一款与操作系统无关的启动加载器 n提供了交互操作界面和命令行界面n支持文件系统的访问q可从 ext2/ext3, Rei

14、serFS, JFS, FAT, minix 或 FFS 文件系统引导qGRUB device (hd0,0) /dev/hda1 or /dev/sda1n在启动过程中可读取GRUB的配置文件n支持多种内核的可执行文件格式n支持无盘系统n支持 MD5 口令保护2021年12月20日 26GRUB启动过程nGRUB stage1qMBR上的前446字节即为GRUB的stage1q任务就是加载 stage1.5nGRUB stage1.5:q位于紧跟在硬盘MBR之后的 30 Kilobytesq是stage1和stage2的一个中间层q任务就是加载文件系统驱动,以识别stage2存放的文件系统,

15、并加载stage22021年12月20日 27 Stage1和Stage1.5是在系统安装时写入硬盘的 在/boot/grub 目录下可以找到Stage1和Stage1.5的副本GRUB启动过程(续)nGRUB Stage2q/boot/grub/stage2 是GRUB的核心程序q读取配置文件/boot/grub/grub.confq在屏幕上显示操作系统的启动选择界面n在交互界面中可以为要启动的内核传递参数q将用户选择的(或配置文件中默认的)内核加载到内存,并将控制权移交给此内核2021年12月20日 28GRUB支持两种加载操作系统的方式 直接加载:加载用户选择的直接加载:加载用户选择的L

16、inux内核内核 链式加载:加载另一个引导程序从而加载其他操作系统的内核GRUB的配置文件n默认为 /boot/grub/grub.conf n对 grub.conf 的修改可立即生效ngrub.conf中使用的常见配置命令qdefault m:设置启动菜单的默认启动项,菜单项序号参数其值从“0”开始 qhiddenmenu:隐藏菜单项 qtimeout n:设置GRUB菜单的启动延时(以秒为单位) qsplashimage:指定某文件作为启动菜单的背景图像,必须为 xpm 格式,可以是gz压缩文件 2021年12月20日 29GRUB的配置文件(续)ngrub.conf中使用的常见配置命令q

17、title:设置用来装载一个操作系统的一组特定命令的标题,标题将在GRUB启动菜单中显示 qroot :设置GRUB的根分区(root),通常是文件系统的boot分区,即Linux内核所在的分区 qkernel:后跟 Linux 内核文件作为参数,加载 Linux 的内核文件及参数 qinitrd:后跟初始RAM盘映像文件 qrootnoverify :做root命令同样的事情,只是不挂装分区(用于启动Windows系统) qchainloader:调用 Windows 分区的启动引导器引导 Windows 系统 qpassword:设置 grub 口令,可以使用 -md5 参数后跟 MD5

18、口令2021年12月20日 30GRUB的配置文件举例default=0timeout=5splashimage=(hd0,0)/grub/splash.xpm.gzhiddenmenutitle CentOS (2.6.18-194.32.1.el5) root (hd0,0) kernel /boot/vmlinuz-2.6.18-194.32.1.el5 ro root=LABEL=/ initrd /boot/initrd-2.6.18-194.32.1.el5.imgtitle Windows XP Pro rootnoverify (hd0,3) chainloader +1202

19、1年12月20日 31GRUB的操作界面nAt the splash screenq使用空格键选择,用上/下方向键移动q在菜单编辑模式(e)修改现有段落qHit a and type “ single” to boot to single-user modeqHit c to enter command-line modenTo boot other OSes that arent in grub.confnDisplay system informationnPress TAB to see possible commandsn在Shell环境下键入grub命令进入命令行模式2021年12月

20、20日 32内核初始化n设备检测设备检测:内核向BIOS查询所有的硬件信息,而后接管这些硬件设备。n设备驱动程序初始化设备驱动程序初始化:Linux内核将驱动系统中的硬件设备。n以只读方式挂装根文件系统以只读方式挂装根文件系统:装载所需的内核模块(在启动内核中不存在的)。n载入初始化进程载入初始化进程init。2021年12月20日 33init进程的执行流程2021年12月20日 34运行运行 INIT 进程进程读取读取/etc/inittab配置文件配置文件 执行执行 /etc/rc.d/rc.sysinit 脚本脚本执行执行/etc/rc.d/rc脚本脚本 /etc/rc0.d/* /e

21、tc/rc1.d/* /etc/rc2.d/* /etc/rc3.d/* /etc/rc4.d/* /etc/rc5.d/* /etc/rc6.d/* 启动启动 mingetty 进程进程 内核初始化内核初始化BIOS初始化初始化启动启动引导器引导器CentOS release 5.5 (Final)Kernel 2.6.18-194.32.1.el5 on an i686centos1 login:init进程及其配置文件nInit 进程是由 Linux 内核引导运行的第一个进程,其进程号(PID)永远为1。ninit 进程在运行时将读取配置文件 /etc/inittab 中的信息 。其每一

22、行的格式为:qid:runlevels: action:processq详情参见:详情参见: man 5 inittab2021年12月20日 35id 用于在inittab文件中唯一标识一个配置记录 runlevels 用于指定该记录在哪些运行级别中运行 action 用于描述记录将执行哪种类型的动作 process 用于设置启动进程所执行的命令 Linux系统的运行级别n运行级别q指运行Linux系统的不同模式q每种模式对应不同的服务程序组合n默认的7种运行级别q0:关机状态q1:单用户模式q2:字符界面的多用户模式(不支持网络)q3:字符界面的完整多用户模式q4:未分配使用q5:图形界面

23、的多用户模式q6:重新启动2021年12月20日 36init配置文件与init初始化n默认运行级别 qid:3:initdefault:n系统初始化脚本 qsi:sysinit:/etc/rc.d/rc.sysinitn执行对应运行级别的目录中的脚本q lX:X:wait:/etc/rc.d/rc X (X=06)n捕获重启快捷键 qca:ctrlaltdel:/sbin/shutdown -t3 -r nown定义 UPS 电源失效/恢复脚本qpf:powerfail:/sbin/shutdown -f -h +2 Power Failure; System Shutting Downqp

24、r:12345:powerokwait:/sbin/shutdown -c Power Restored; Shutdown Cancelledn在虚拟控制台生成 gettys qX:2345:respawn:/sbin/mingetty ttyX (X=16)n在运行级别5初始化 Xqx:5:respawn:/etc/X11/prefdm -nodaemon2021年12月20日 37init初始化脚本n/etc/rc.d/rc.sysinit 脚本q由由init进程调用执行进程调用执行q完成设置主机名、加载文件系统等初始化工作 n/etc/rc.d/rc 脚本q由由init进程调用执行进程

25、调用执行q根据指定的运行级别X,终止并启动相应的服务n/etc/rc.d/rcX.d/K* stopn/etc/rc.d/rcX.d/S* startn/etc/rc.local 脚本q由由rc脚本调用执行脚本调用执行q保存用户定义的需开机后自动执行的命令2021年12月20日 38/etc/rc.d/rc.sysinit 的任务的任务n激活 udev 和 selinux n根据 /etc/sysctl.conf 文件设定内核参数 n设定系统时钟 n装载按键设置 n启用交换分区 n设置主机名 n检查并重新挂载根文件系统 n激活 RAID 和 LVM 设备 n启用磁盘配额 n检查并挂载其它文件系

26、统 n清理过时的锁和 PID文件2021年12月20日 39修复运行级别修复运行级别和援救环境和援救环境2021年12月20日40 修复运行级别n三种用于系统修复的运行级别:q运行级别1q运行级别Sq运行级别emergencyn进入方法q# init 1/s/-bq在GRUB的菜单中为内核传递参数2021年12月20日 41修复的运行级别的启动流程2021年12月20日 42系统援救环境n在RHEL/CentOS的安装程序Anaconda中提供了一种援救环境(rescue environment)n主要解决在执行init守护进程之前发生的故障q也可以修复运行级别1/S/emergency能解决

27、的故障n进入援救环境之后便可以使用其提供的各种工具对系统进行修复。2021年12月20日 43进入系统援救环境n使用安装光盘启动系统q boot: linux rescuen自动挂载硬盘中的文件系统到当前Linux系统中的“/mnt/sysimage”目录中n切换根环境到本地硬盘系统q# chroot /mnt/sysimage2021年12月20日 44故障排查故障排查与修复与修复2021年12月20日45 故障排查概述n主机故障排查q系统启动故障q文件系统故障q用户登录故障q软件包故障n网络故障排查q本机网络配置q与互联网的连接配置q本机的服务无法被访问2021年12月20日 46修复GR

28、UB(Stage1)故障n由于MBR中的Bootloader被改写q如在本机的其他分区上安装了Windows系统n首先进入援救环境,然后执行如下操作2021年12月20日 47sh-3.1# chroot /mnt/sysimage / 切换根环境到本地硬盘系统切换根环境到本地硬盘系统sh-3.1# grubgrub find /grub/stage1 / 查找查找stage1所在的分区所在的分区(hd0,0)grubroot (hd0,0) / 设置设置设置设置GRUB的根分区(的根分区(/boot所在的分区)所在的分区)grubsetup (hd0) / 将将GRUB写到硬盘的写到硬盘的M

29、BR上上grubquit / 退出退出GRUB命令行界面命令行界面sh-3.1# reboot修复GRUB (Stage1&2) 故障nGRUB受损qMBR中的Bootloader被改写q/boot/grub/stage2丢失n首先进入援救环境,然后执行如下操作2021年12月20日 48sh-3.1# chroot /mnt/sysimage / 切换根环境到本地硬盘系统sh-3.1# grub-install /dev/sda / 重新安装GRUBsh-3.1# exit / 退出 chroot 环境sh-3.1# reboot修复bash丢失故障n首先进入援救环境,然后执行如下操

30、作2021年12月20日 49/ 确认硬盘中的bash是否存在sh-3.1# ls /mnt/sysimage/bin/bashls: /mnt/sysimage/bin/bash: No such file or directory/ 查询硬盘中的bash是由哪个RPM包安装的sh-3.1# rpm -qf -root /mnt/sysimage/ /bin/bashbash-3.2-24.el5/ 挂装安装光盘到/mnt/source目录sh-3.1# mount /dev/hdc /mnt/sourcesh-3.1# cd /mnt/source/CentOS/ 安装bash的RPM包到

31、硬盘sh-3.1# rpm -ivh -root /mnt/sysimage/ -replacepkgs bash*rpmsh-3.1# ls /mnt/sysimage/bin/bash/mnt/sysimage/bin/bashsh-3.1# reboot修复/etc/fstab丢失故障n首先进入援救环境n手动查找并挂载根分区q查找逻辑卷:n# lvm vgscanq 激活指定的逻辑卷n# lvm vgchange -ay /dev/VolGroup00n恢复或重建fstab配置文件n重新启动系统2021年12月20日 50修复文件系统故障n故障原因q非正常关机、突然断电、设备读写失误等q

32、文件系统的超级块(super-block)信息被破坏n故障现象q无法向分区中读取或写入数据q启动后提示“Give root password for maintenance” n解决思路q根据提示输入root口令,进入修复状态q使用fsck命令进行修复n# fsck -yt ext3 /dev/sdbX2021年12月20日 51修复磁盘资源耗尽故障n故障原因q磁盘空间已被大量的数据占满,空间耗尽q虽然还有可用空间,但文件数i节点耗尽 n故障现象q无法写入新的文件,提示“ : 设备上没有空间”q部分程序无法运行,甚至系统无法启动n解决思路q清理磁盘空间,删除无用、冗余的文件q转移或删除占用大量i节点的琐碎文件q进入单用户模式、急救模式进行修复q为用户设置磁盘限额磁盘限额2021年12月20日 52修复用户登录故障n若普通用户口令丢失,超级用户可以使用passwd命令为用户

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论