1, 简述 Linux 操作系统启动流程
POST: 通电自检;
BIOS:BOIS 自检, 加载硬盘;
读取 MBR, 进行 MBR 引导;
bootloader:grub 引导菜单;
加载内核 Kernel(ramdisk) ;
启动 init 进程, 依据 inittab 文件设定运行级别;
init 进程, 执行 rc.sysinit 文件;
启动内核模块, 执行不同级别的脚本程序;
执行 / etc/rc.d/rc.local;
启动 mingetty, 进入系统登陆界面.
POST --> Boot Sequence(BIOS) --> Bootloader(MBR) --> Kernel(ramdisk) --> rootfs --> switchroot --> /sbin/init --> /etc/init, /etc/init/*.conf --> 设定默认运行级别 --> 系统初始化脚本 --> 关闭或启动对应级别下的服务 --> 启动终端并打印登录提示符 --> (图形桌面)
2, 简述 grub 启动引导程序配置及命令行接口详解
grub 的版本分为
- grub 0.X (grub legacy)
- grub 1.X (grub 2)
目前 CentOS 5 和 CentOS 6 使用的就是 grub legacy 版本 CentOS 7 使用的是 grub2 版本的启动引导程序
grub 的三个阶段
第 1 阶段安装在 mbr 扇区中;
第 1.5 阶段在 mbr 之后的扇区, 主要存放识别真正第 2 阶段所在设备的文件系统驱动, 文件系统模块也可称为文件系统驱动, 要访问就需要借助工具那么这工具就叫驱动是统称;
第 2 阶段就是这个工具, 放在 / boot/grub / 目录下就叫做 stage2 文件, 加载完 stage2 就能显示菜单, 从而用户能执行高级操作, 如 grub 菜单支持编辑功能, e 进入编辑菜单, 还支持保护 2 种加密 (保护编辑和内核);
grub 相关的配置文件
与 grub 相关的配置文件包括:/etc/grub.conf 和 / boot/grub/grub.conf /etc/grub.conf 是指向 / boot/grub/grub.conf 的软连接, grub 程序在引导启动时会读取这个配置文件, 并按照这个文件的配置参数引导启动系统.
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 程序的功能
1 提供引导菜单, 并提供交互式的命令行接口; 在菜单界面, 按 e 可进入编辑模式, 用于编辑菜单, 按 c 可进入命令行模式.
加载用户选择的内核或操作系统, 并允许传递相应的内核参数给内核; 可选择隐藏此菜单
为菜单提供保护机制, 可 编辑菜单 设置认证 为启用内核 操作系统进行认证, 在系统开启过程中, 有几秒的过渡页面, 可按任意键进入菜单页面
grub 的命令行接口
在菜单页面按 c 即可进入命令行接口, 在此命令行接口, 我们可以配置相关的 grub 设置.
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 文件制作流程
? 安装制作 kickstart 文件的图形界面工具
[root@gaohu ~]# yum install system-config-kickstart
? 开启工具
[root@gaohu ~]# system-config-kickstart
? 在打开的图形界面中通过 file 菜单选项选择安装过程中生成的 / root 目录下的 anaconda-ks.cfg 作为默认配置, 在此基础上进行修改, 配置内容包括:
1, 基本配置
安装过程中的默认语言
键盘类型
时区
root 用户密码
2, 安装方法
安装或升级
配置安装源 (CD-ROM,FTP,HTTP,NFS,Hard Drive)
3, 引导装载程序选项
是否需要安装 boot loader
给内核传递的参数 (auto rhgb quite)
4, 分区信息
是否清楚 MBR
是否清除现有分区
是否需要初始化磁盘标签
设定分区布局
5, 网络配置
IP 地址
子网掩码
网关
DNS
验证
用户登录的认证方式
6, 防火墙配置
是否启用
安全级别
7, 显示配置
是否启用图形界面
8, 软件包选项
需要安装哪些软件包
9, 安装前脚本
10, 安装后脚本
最后通过 file 菜单选项选择 ks.cfg 的保存的位置
引导镜像制作流程
? 创建 myboot 目录
[root@gaohu ~]# mkdir myboot
? 复制 / media/cdrom/isolinux / 到 myboot 目录
[root@gaohu ~]# cp -r /media/cdrom/isolinux/ myboot
? 赋予 isolinux 下文件写权限
root@gaohu isolinux]# chmod u+w *
? 复制 ks(ks.cfg) 文件到 / myboot / 文件下
[root@gaohu ~]# cp ks.cfg /myboot/
? 创建光盘镜像 boot.iso, 退出到 myboot 目录之外
[root@gaohu ~]# mkisofs -R -J -T -v -no-emul-boot -boot-load-size 4 -boot-info-table -V "CentOS 6 x86_64 boot" -csolinux/boot.cat -b isolinux/isolinux.bin -o /root/boot.iso myboot/
来源: http://www.bubuko.com/infodetail-2825984.html