一、简述linux操做系统启动流程linux
POST (加电自检):自检主要硬件设备如:CPU、内存、硬盘是否正常,以及输入输出设备是否存在问题等。 BIOS(Boot Sequence):BIOS(基本的输入输出系统)装载在硬件芯片CMOS之上,自检时会启动这个程序,并根据CMOS上的配置信息去读取其余的硬件信息,检测正常以后进行硬件设备的初始化。 读取MBR:引导加载程序,在MBR(主引导记录)中,主要功能是识别,加载系统的核心文件,并提交到内存中运行来启动对应的系统。 Kernel运行:Kernel会自身初始化,探测可识别的硬件设备,Kernel是存在硬盘之中的,可是在内核启动时尚未加载硬盘,为了解决这个问题Kernel内核经过ramdisk(虚拟文件系统)来加载硬件程序,为防止根文件系统加载时出现bug等问题没法挽回的状况,以只读方式来挂载根文件系统,来完成跟文件系统的初始化。 init运行:在内核、硬件及驱动信息加载完毕后,内核会运行用户空间的第一个应用程序:/sbin/init.包括系统的主机名、网络管理、文件系统格式等其余服务。 默认运行级别、系统初始化、关闭及启动服务、启动终端(图形终端): 运行级别:为了系统的运行或维护等目的而设定的机制; 0-6:7个级别; 0、关机, shutdown 一、单用户模式(single user),root用户,无须认证;维护模式; 二、多用户模式(multi user),会启动网络功能,但不会启动NFS;维护模式; 三、多用户模式(mutli user),彻底功能模式;文本界面; 四、预留级别:目前无特别使用目的,但习惯以同3级别功能使用; 五、多用户模式(multi user), 彻底功能模式,图形界面; 六、重启,reboot 默认级别:3, 5 级别切换:init # 级别查看: who -r runlevel 系统初始化脚本:/etc/rc.d/rc.sysinit (1) 设置主机名; (2) 设置欢迎信息; (3) 激活udev和selinux; (4) 挂载/etc/fstab文件中定义的全部文件系统; (5) 检测根文件系统,并以读写方式从新挂载根文件系统; (6) 设置系统时钟; (7) 根据/etc/sysctl.conf文件来设置内核参数; (8) 激活lvm及软raid设备; (9) 激活swap设备; (10) 加载额外设备的驱动程序; (11) 清理操做; 系统初始化时运行的脚本在/etc/rc.d/rc.sysinit配置文件中;关闭及启动服务意味着启动或关闭/etc/rc.d/rc#.d/目录下的服务脚本所控制的服务,最后就是启动终端(图形终端)了
二、简述grub启动引导程序配置及命令行接口详解c#
grub的三个阶段:网络
stage 1:运行bootloader主程序,这个程序必需要被安装在MBR中 stage 1_5:在MBR随后的扇区中存放,主要用于与stage2所在分区的文件系统进行交互 stage 2:读取 grub.conf 配置文件,并实现引导功能的扩展
grub配置文件:/boot/grub/grub.confide
defaule: 表示有多个grub引导菜单时,选择哪个做为默认启动引导菜单; defaule=0:表示默认选择第一个选项进行配置 ; timeout: 表示选择菜单的时间,若是过了这个时间没有选择则表示使用默认选项 ; splashimage: 指定引导菜单中的背景图片的路径 ; titile: 指定选项的名称 ; root: 表示kernel和initrd文件所在的分区路径,而不是”根分区”;其格式为; kernel: 一般是用于指定要运行的内核文件路径,如:/vmlinuz-2.6.32-642.el6.x86_64;另外也可在其后设置相关的内核参数,如:ro表示只读,root表示指定根分区所在路径,关闭selinux等等; initrd: 为内核运行指定其可用的ramdisk文件,其版本须和内核版本一致;
grub经常使用的指令:操作系统
help:查看命令帮助; root (DEVICE):指定系统和内核文件所在的分区,如root(hd0,0)。 find (hd0,0) /path/to/file:用于查找对应分区下的文件。经常使用于当不确认内核文件在哪一个分区时,可以使用此命令确认文件所在路径;支持tab补全; kernel /path/to/kernel_file:用于指定要运行的内核文件。 initrd /path/to/kernel_file:指定initrd文件; boot:以当前配置好的grub配置启动系统;
三、实现kickstart文件制做与光盘镜像制做
定制kickstart 文件:命令行
[root@silasszl ~]# yum install system-config-kickstart
检查语法错误:code
[root@silasszl ~]# ksvalidator anaconda-ks.cfg
准备目录,复制光盘内容到该目录中:blog
[root@silasszl ~]# mkdir /tmp/cdrom [root@silasszl ~]# mkdir /media/cdrom [root@silasszl ~]# mount -r -t iso9660 /dev/cdrom /media/cdrom [root@silasszl ~]# cp -r /media/cdrom/ /tmp/cdrom/ [root@silasszl ~]# cd /tmp/cdrom/ [root@silasszl cdrom]# cd cdrom/ [root@silasszl ~]# chmod u+w isolinux/*
将ks.cfg文件拷贝到/tmp/cdrom中接口
[root@silasszl cdrom]# cp /root/ks.cfg /tmp/cdrom
建立iso镜像图片
[root@silasszl cdrom]# mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6 x86_64 boot" -c isolinux/boot.cat -b isolinux/isolinux.bin -o /root/boot.iso cdrom/