Linux学习(第七周)

第七周学习内容:CentOS的系统启动流程

第七周作业:

1、简述linux操作系统启动流程。

      系统启动流程可简要描述为:通电--POST自检--Boot Sequence--Boot Loader--内核--rootfs--init进程。从开机到内核启动为止是内核启动部分,随后是用户启动部分。站在硬盘的角度来说,内核实在某个分区中存放着的,叫做启动分区。此分区也必定是挂载在根文件系统之下的,在内核还没有启动之前是无法找到根的,所以另有程序在内核启动之前去完成此任务。驱动程序存放在硬盘上,而没有驱动程序内核又无法认出硬盘,所以在内存中还有个临时的根文件系统叫ramdisk。

      (1)POST自检:通过自动加载主板ROM中的代码,检查五大部件是否都存在,再通过ROM中的CMOS,CMOS中的BIOS找到Boot Sequence引导次序程序。

      (2)Boot Sequence:根据设定好的次序依次查找各引导设备,第一个有Boot Loader的设备即为本次启动的设备。

      (3)Boot Loader:安装在硬盘、光盘或U盘之上,windows系统的叫ntloader,而linux系统的叫grub,主要功能室提供一个菜单,允许用户选择想要启动的内核版本,然后把用户选择的内核加载到内存中,解压、展开,最终把系统控制权交给内核完成使命。grub存放在MBR扇区,也就是第一扇区,共512字节,其中446字节用于存放加载器,剩余的64字节存放分区表,最后2个字节叫魔数,表示加载器是否可用,55AA表示可用。由于MBR扇区太小,grub程序一般会分成两段,一段位于MBR,一段位于硬盘某分区/boot/grub目录下,通过先加载第一段,在通过引导找到第二段。

      (4)内核:这一阶段主要完成自身初始化,探测可识别到的所有硬件设备,加载ramdisk中的硬件驱动,以只读的方式挂载更文件系统并切换至该根目录,再启动第一个进程init。

      (5)init进程:作为系统第一个启动的进程,CentOS5叫sysv init;CentOS6叫upstart;CentOS7叫systemd。

2、简述grub启动引导程序配置及命令行接口详解。

      grub运行分为3个阶段:1阶段保存在mbr扇区中,1.5阶段保存在mbr之后的扇区,为了让1阶段的bootloader能识别2阶段所在分区上的文件系统,2阶段存放在磁盘分区上,真正提供了内核选择界面。具体位置/boot/grub,配置文件/boot/grub/grub.conf,还有个指向此配置文件的符号链接文件/etc/grub.conf,2阶段和内核通常都放置在一个基本磁盘分区,不支持LVM这种逻辑卷。

扫描二维码关注公众号,回复: 4114156 查看本文章

      grub的功用:(1)提供菜单,让用户选择想加载的内核;(2)加载用户选择的内核,过程可被隐藏;(3)为菜单提供保护机制,可以为编辑菜单提供认证,也可以为加载内核提供认证。

      grub命令模式:在grub的主界面,选择内核时按“c”即可进入,help可以获取帮助列表,help+命令可以获取该命令的详细帮助信息。主要会用到的几条命令:find:查找;kernel:设定本次启动时用到的内核文件;initrd:设定为选定的内核提供额外文件的ramdisk;boot:引导启动选定的内核。

      image.png

      gurb的编辑模式:在grub的主界面,选择内核时按“e”即可进入,一般有3条已经预配好的命令,分别为root (hd#,#)指定哪一个设备为根设备,也就是内核和grub所在的分区,两个“#”表示第几块硬盘的第几个分区,从0开始;kernel /vmlinuz ......指明内核文件所在位置,也就是本次启动是要用到的内核文件;initrd /initramfs......指明微内核提供额外文件的ramdisk所在位置。想要修改这3条配置可以通过修改配置文件/etc/grub.conf,除了可以改这三条以外,还可以添加部分配置选项:title:grub选择界面显示在最外面的选项;default:设定默认启动的菜单项;timeout:制定菜单项等待选择的时长;splashimage:指明菜单背景图片文件路径;hiddenmenu:是否隐藏菜单;password:认证密码,加载titile前表示想进入编辑模式要输密码,加载title后表示想选择某一内核要输密码。

      image.png

3、实现kickstart文件制作与光盘镜像制作。

      anaconda作为Linux系统的安装程序,可以帮你把光盘中的grub,initrd,kernel等安装到硬盘中去,提供了两种配置方式,一种是最常用到的交互式;一种是读取配置文件自动完成配置,而这个配置文件就是kickstart。

      kickstart配置文件分为三段,命令段、程序包段和脚本段。命令段:指定各种安装前配置选项,如键盘类型等;程序包段:指明要安装的程序包以及包组,还可以标记出不要安装的程序包;脚本段:分为安装前运行脚本和安装后运行脚本,如可以定义安装完毕后自动创建十个用户。自己定义kickstart文件是非常繁琐的一个步骤,所以有一个图形化工具替你简化了kickstart文件的配置,下载安装system-config-kickstart程序包,直接运行,跳出来图形界面,选选选点击完成kickstart文件就制作好了。

      image.png

      image.png

      image.png

      kickstart文件制作完毕后将其上传到ftp或web服务器中,在系统安装时进入boot提示符界面,键入ip=X.X.X.X;netmask=X.X.X.X;ks=http :  //X.X.X.X/CentOS7/X.cfg,接着后面就全自动了。  

      将bootloader、Kernel、initrd及kickstart文件制作成光盘镜像,以实现本地光盘镜像引导安装CentOS系统,其中anaconda应用程序位于initrd提供的rootfs中,而后续安装用到的程序包来自阿里云镜像站点(mirrors.aliyun.com),刚才在制作kickstart文件时已经手动指定。

      制作步骤:(1)创建目录:mkdir 

      image.png

      (2)复制光盘的isolinux目录和刚才制作的kickstart文件到该目录下:CP

      image.png

      (3)修改复制过来文件的权限:chmod

      image.png

      (4)创建光盘镜像:mkisofs。

      image.png


猜你喜欢

转载自blog.51cto.com/13762416/2318240