1、简述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
1、单用户模式(single user),root用户,无须认证;维护模式;
2、多用户模式(multi user),会启动网络功能,但不会启动NFS;维护模式;
3、多用户模式(mutli user),完全功能模式;文本界面;
4、预留级别:目前无特别使用目的,但习惯以同3级别功能使用;
5、多用户模式(multi user), 完全功能模式,图形界面;
6、重启,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/目录下的服务脚本所控制的服务,最后就是启动终端(图形终端)了
2、简述grub启动引导程序配置及命令行接口详解
grub的三个阶段:
stage 1:运行bootloader主程序,这个程序必须要被安装在MBR中
stage 1_5:在MBR随后的扇区中存放,主要用于与stage2所在分区的文件系统进行交互
stage 2:读取 grub.conf 配置文件,并实现引导功能的扩展
grub配置文件:/boot/grub/grub.conf
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配置启动系统;
3、实现kickstart文件制作与光盘镜像制作
定制kickstart 文件:
[[email protected] ~]# yum install system-config-kickstart
检查语法错误:
[[email protected] ~]# ksvalidator anaconda-ks.cfg
准备目录,复制光盘内容到该目录中:
[[email protected] ~]# mkdir /tmp/cdrom
[[email protected] ~]# mkdir /media/cdrom
[[email protected] ~]# mount -r -t iso9660 /dev/cdrom /media/cdrom
[[email protected] ~]# cp -r /media/cdrom/ /tmp/cdrom/
[[email protected] ~]# cd /tmp/cdrom/
[[email protected] cdrom]# cd cdrom/
[[email protected] ~]# chmod u+w isolinux/*
将ks.cfg文件拷贝到/tmp/cdrom中
[[email protected] cdrom]# cp /root/ks.cfg /tmp/cdrom
创建iso镜像
[[email protected] 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/
原文地址:http://blog.51cto.com/13984342/2321528
时间: 2024-10-12 11:32:45