《第2单元-Linux系统启动流程.ppt》由会员分享,可在线阅读,更多相关《第2单元-Linux系统启动流程.ppt(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第二单元第二单元Linux系统启动流程学习大纲学习大纲LinuxLinux系启动流程系启动流程BIOSBIOS初始化初始化启动引导工具启动引导工具LinuxLinux内核内核初始化内存镜像盘初始化内存镜像盘(initrd)(initrd)核心初始化核心初始化系统初始化文件(系统初始化文件(inittabinittab)系统运行级别(系统运行级别(runlevelrunlevel)系统初始化脚本(系统初始化脚本(rc.sysinitrc.sysinit)运行级别服务目录运行级别服务目录用户自定义启动脚本文件用户自定义启动脚本文件1 1、LinuxLinux系统流程系统流程启动流程图启动流程图Li
2、nuxLinux系统启动过程系统启动过程1.11.1、启动流程图、启动流程图1.11.1、启动流程图、启动流程图1.21.2、LinuxLinux系统启动过程系统启动过程开启电源开启电源启动启动COMS/BIOS COMS/BIOS 读取硬盘读取硬盘 读取硬盘引导扇区读取硬盘引导扇区加载加载LILOLILO或者或者grubgrub加载内核加载内核只读方式挂装根文件系统只读方式挂装根文件系统启动启动initinit进程(一切进程的进程(一切进程的“祖父祖父”)读取读取/etc/inittab/etc/inittab文件文件读取读取/etc/rc.d/rc.sysinit/etc/rc.d/rc.
3、sysinit文件文件读取读取/etc/fstab/etc/fstab文件文件运行运行/etc/rc.d/rcX.d/etc/rc.d/rcX.d下的文件下的文件读取读取/etc/rc.d/rc.local/etc/rc.d/rc.local 文件文件2 2、BIOSBIOS初始化初始化检测外围设备检测外围设备检测启动设备(硬盘、光盘、网络)检测启动设备(硬盘、光盘、网络)如果是硬盘启动则读取与执行启动设备的第一如果是硬盘启动则读取与执行启动设备的第一个扇区个扇区3 3、系统引导装栽工具、系统引导装栽工具引导阶段引导阶段LinuxLinux中常用的引导工具中常用的引导工具GRUBGRUB引导工
4、具引导工具3.13.1、引导阶段、引导阶段启动引导工具引导并运行核心启动引导工具引导并运行核心分为两个独立的阶段分为两个独立的阶段第一阶段:存放在启动扇区第一阶段即BIOS从启动扇区中读入IPL(初始化程序引导工具)这一过程第二阶段;/boot目录下的文件因为MBR的空间太小,所以启动引导工具往往还需要从其他地方进一步读入数据,即所谓第二阶段。这通常是一个可以做选择的交互界面。3.23.2、LinuxLinux中常用的启动引导工具中常用的启动引导工具在在LinuxLinux中常用的启动引导工具中常用的启动引导工具lilo(LInux LOader)是旧版本linux的标准启动引导工具其配置文件
5、为/etc/lilo.conf每当lilo.conf被更动,必须执行/sbin/lilo以使更动生效grub(Grand Unified Bootloader)被广泛地应用于替代lilo的引导工具支持在启动时使用命令行模式支持md5加密保护其配置文件为/boot/grub/grub.conf支持引导多种文件系统更动grub.conf即可立时生效3.33.3、GRUBGRUB引导工具引导工具如果硬盘上的如果硬盘上的MBRMBR被更动过,可以用被更动过,可以用 /sbin/grub-/sbin/grub-install/dev/hda|sdainstall/dev/hda|sda来重安装来重安装g
6、rubgrub。GrubGrub配置文件(配置文件(/boot/grub/grub.conf/boot/grub/grub.conf)default=0#默认启动第几个”tile”(0表示第一个”title”)timeout=5#时间延迟(5秒后自动启动第一个”title”)splashimage=(hd0,0)/grub/splash.xpm.gz#GRUB启动菜单背景界面hiddenmenu#隐藏菜单选项title Red Hat Enterprise Linux Server(2.6.18-53.el5)#菜单中的系统标题root(hd0,0)#指定根设备(hd0,0 第一个磁盘的第一个
7、分区)kernel/vmlinuz-2.6.32-71.el6.x86_64 ro kernel/vmlinuz-2.6.32-71.el6.x86_64 ro root=/dev/mapper/vgsrv-root#root=/dev/mapper/vgsrv-root#指定内指定内 核文件与挂载根设备核文件与挂载根设备 Initrd /initramfs-2.6.32-71.el6.x86_64.img Initrd /initramfs-2.6.32-71.el6.x86_64.img#指定初始化内存镜像盘指定初始化内存镜像盘title windows#另一个操作系统的标题 rootno
8、verify(hd0,1)#操作系统存放在hd0,1上,不要在grub里mount chainloader+1#从hd0,1的第一个扇面启动4 4、LinuxLinux内核内核内核类型内核类型内核安装包内核安装包vmlinuz-x.x.xvmlinuz-x.x.x4.14.1、内核类型、内核类型内核的分类内核的分类单片型内核单片型内核将各种硬件支持、网络协议与文件系统管理都编译入一个单一的文件中。模块型内核:模块型内核则允许计算机在使用到某一项功能的时候自动加载,防止了核心臃肿,是大部分情况下的标准构建。4.24.2、内核安装包、内核安装包核心版本命名规则核心版本命名规则主版本号、次版本号、补
9、丁级数Red Hat附加参数:发布号显示当前系统的内核信息(#uname r)核心核心RPMRPM包包kernel-.rpm编译核心及模块kernel-source-.rpm核心源代码,需要人工编译出核心并安装kernel-.src.rpmwww.kernel.org上发布的原始核心源代码包,需要build出arch包再使用4.34.3、vmlinuz-x.x.xvmlinuz-x.x.x系统引导内核文件(系统引导内核文件(vmlinuzvmlinuz)是可引导的、压缩的内核。Linux能够使用硬盘空间作为虚拟内存,因此得名“vm”。vmlinuz是可执行的Linux内核,它的解压程序也在内核
10、当中。vmlinuz的建立有两种方式 编译内核时通过make zImage创建,zImage适用于小内核的情况,它的存在是为了向后的兼容性。内核编译时通过命令make bzImage创建(单独编译内核映像,不编译驱动模块,生成内核映像bzImage)内核文件存放 在/boot目录中。www.kernel.org5 5、初始化内存镜像盘(、初始化内存镜像盘(initramfsinitramfs)初始化内存镜像盘(初始化内存镜像盘(initramfsinitramfs)Initramfs被称为初始化内存盘,为系统提供一系列内核映像无法提供的模块,这些地模块对正确引导系统非常重要。它通常和存储设备及
11、文件系统有关,但也可支持其它特性和硬件外设。initramfs映象文件是使用mkinitrd创建的。mkinitrd实用程序能够创建initrd映象文件。这个命令是RedHat专有的。其它Linux发行版或许有相应的命令。这是个很方便的实用程序。#mkinitrd -with=模块 initramfs-版本号.img 版本号#mkinitrd -with=模块 initramfs-$(uname-r).img$(uname r)6 6、核心初始化、核心初始化核心启动流程核心启动流程检测硬件设备设备驱动初始化将根分区以只读方式挂载载入初始进程(一般是init)7 7、系统初始化文件(、系统初始化
12、文件(inittabinittab)initinit从从/etc/inittab/etc/inittab中读取数据并初始化中读取数据并初始化init运行级别7.17.1、inittabinittab配置文件格式配置文件格式inittab inittab 配置文件与保存用户的信息格式一样,配置文件与保存用户的信息格式一样,每一行定义一个参数值,并以每一行定义一个参数值,并以“:”:”作为分隔符作为分隔符,格格式如下:式如下:id:runlevels:action:process 它们代表的意义分别如下:id:由两个独特的字符所组成的辨示符号。runlevels:指出下面一个栏位中的 action
13、 以及 下下个栏位中的 process会在那些 runlevel 中被执行。action:在这个栏位中记录着 init 在启动相对应的process 时,对 process 所采取的动作,默认动作有为:initdefault:指出系统在启动时,预设进入的 run-level 值7.27.2、系统运行级别(、系统运行级别(runlevelrunlevel)initinit定义了定义了0606这这7 7个运行级别。个运行级别。0 关机1 单用户模式(文本模式)2 多用户模式但不支持NFS(文本模式)3 多用户(文本模式)4 暂无定义5 多用户图形界面模式6 重启计算机运行级别可以被指定于:运行级别
14、可以被指定于:系统启动时作为核心加载参数被指定未被指定的情况下,系统启动时从/etc/inittab中读取在系统运行中,root用户键入init 0-6来切换模式。8 8、系统初始化脚本、系统初始化脚本/etc/rc.d/rc.sysinit/etc/rc.d/rc.sysinit是系统启动用的脚本是系统启动用的脚本从/etc/sysctl.conf中读取核心参数设置系统时钟载入keymap激活swap分区设置主机名检查根文件系统并挂载加载Raid设备激活磁盘限额检查并挂载其他文件系统清除失效锁及PID文件9 9、运行级别服务目录、运行级别服务目录每一个运行级别都对应一个目录每一个运行级别都对
15、应一个目录/etc/rc.d/rcX.d目录内存放的,即当前运行级别需要开启的服目录内存放的,即当前运行级别需要开启的服务脚本务脚本对应/etc/rc.d/init.d/目录下的链接链接文件开头是S,表示启动;开头是K,则表示关闭。切换运行级别切换运行级别,即运行这个目录里所有的脚本,即运行这个目录里所有的脚本用户可以通过用户可以通过ntsysvntsysv调整调整当前运行级别当前运行级别的开关的开关服务,或用服务,或用chkconfigchkconfig,调整某一运行级别下的,调整某一运行级别下的开关服务。开关服务。1010、用户自定义启动脚本文件、用户自定义启动脚本文件/etc/rc.d/rc.local/etc/rc.d/rc.local文件是在系统启动最后一个被文件是在系统启动最后一个被读取的用户自定义启动脚本文件。读取的用户自定义启动脚本文件。一般系统用户将针对此台计算机的开机定制设一般系统用户将针对此台计算机的开机定制设置写入其中,而非置写入其中,而非/etc/rc.d/rc.sysinit/etc/rc.d/rc.sysinit。结束结束The EndThanks
限制150内