本文以Centos6.9系统为例,讲解红帽系linux系统启动流程。以便于理解系统安装原理并能自定义系统安装配置完成自动安装。
目录:
一、系统启动基本流程
二、光盘镜像方式安装(U盘同理)
三、自动化安装
2、kickstart配置文件格式
一、系统启动的基本流程
系统安装与平时系统的启动流程相似,首先让我们简要了解下:
1、BIOS程序
①POST开机自检
②列出可以启动的设备顺序,确定第一个启动设备
2、加载第一个启动设备的MBR
MBR的前446字节存储就是Boot loader的第一部分(stage1)
Boot loader是用来处理系统核心文件加载问题的管理程序统称(Centos6系列使用的BootLoader为grub),它的主要功能为:
① 识别加载操作系统中的核心文件,并提交到内存运行,进而来启动对应的操作系统。
② 提供菜单:向用户提供不同启动项目,来加载不同的内核或操作系统。
3、加载系统内核Kernel,并执行初始化信息
① BootLoader程序运行与配置加载分三个阶段
stage1 :运行BootLoader最小主程序,MBR空间有限不能存储整个grub
stage1_5 :在MBR随后扇区存放,用于与stage2所在分区的文件系统进行交互。
stage2 :加载配置文件及相关的环境参数信息(存放在/boot目录下)
② BootLoader加载虚拟文件系统initrd到内存中,initrd会在内存中模拟一个根文件系统。
③ BootLoader读取内核文件Kernel将其解压缩装载到内存中,此时BootLoader将系统控制权转交给内核。
------>内核通过虚拟系统加载真正根文件系统所需的核心模块(RAID、LVM、SCSI等文件系统与磁盘的驱动程序)
------>加载硬盘等设备进行初始化。
------>释放虚拟根文件系统,并以只读方式挂载磁盘上真实的根文件系统。
------>之后开始正常的启动过程。
4、启动用户空间第一个执行程序/sbin/init
二、 光盘镜像方式安装(U盘同理)
1、配置文件概述
这类安装采用anaconda安装程序进行管理安装(基于内核运行),安装方式分为两种
tui:基于curses的文本窗口(主机内存小于512m时自动打开)
gui:图形窗口
Centos的安装程序位于光盘的isolinux目录中,如图所示:
① 与MBR功能(stage1阶段)类似的是:boot.cat
② 与grub功能(stage2阶段)类似的是:isolinux.bin (它的配置文件为isolinux.cfg)
③ vesamenu.c32 图形界面背景设置
④ splash.jpg 背景图片
⑤ vmlinuz 内核文件
⑥ initrd.img 虚拟文件系统文件
让我们看一下isolinux.cfg文件的部分设置信息:
这部分内容对应光盘启动界面:
安装引导选项:
传递内核参数(可以在启动界面TAB键或Esc来添加内核参数)
nomodest 使用最基本的图形驱动,不让内核去识别真正显卡的驱动,分辨率较小
rescue 救援模式
mentest 磁盘容量检测并不加载内核
text:文本方式安装
askmethod:手动指定的安装方法
与网络相关的引导选项:
ip=IPADDR
netmask=MASK
gateway=GW
dns=DNS_SERVER_IP
ifname=NAME:MAC_ADDR
与远程访问功能相关的引导选项:
vnc
vmcpassword=PASSWD
指明kickstart文件的位置:
ks=
DVD drive :ks=cdrom:/PATH/TO/KICKSTART_FILE
HARD drive:ks=hd:/device/drectory/KICKSTART_FILE
HTTP server:ks=http://host:port/path/to/KICKSTART_FILE
FTP server :ks=ftp://host:post/path/to/KICKSTART_FILE
HTTPS server:ks=https://host:port/path/to/KICKSTART_FILE
2、系统安装过程
(1)、BootLoader加载文件系统及内核(不会释放内存中加载的文件系统!)
(2)、装载根文件系统(initrd),并启动anaconda
注意:上述内容一般应位于引导设备,而后续的anaconda及安装用到的程序包有一下几种方式可用:
本地光盘
本地硬盘
ftp server:yum repository
http server:yum repository
nfs server
如果想指定安装源,可以在菜单界面安装系统条目TAB 后面键入askmethod 或Esc 键入内核参数linux askmethod
(3)、anaconda应用工作过程:
① 安装前配置阶段:
安装过程中使用的语言
键盘类型&&语言
安装目标存储设备
警告可能会损坏现有磁盘数据:yes删除所有磁盘数据并进行安装,no保存现有数据(使用硬盘上的其他空闲分区),对勾选项意为是否将设定作用与所有磁盘设备上(慎重选择!)
配置网络设置&&时区
管理员密码
设定分区方式及MBR安装位置
Use all Space:使用所有空间,如果磁盘装有其他系统谨慎选择
Replace Exiting linux system :替换现有的操作系统
Shrink Current System:如果空闲空间不够,将收缩现有磁盘空间。把腾出来的空间用来安装
Use Free Space:使用空闲空间
Create Custom Layout:自定义创建磁盘分区
勾选最下角选项可以预览分区方式或自定义修改,确认无误next即可。
选定要安装的软件包
② 安装阶段
在目标磁盘创建分区,执行格式化操作
将选定的安装包安装到目标位置
安装BootLoader
③ 首次启动
设置iptables && selinux && core dump
三、光盘自动化安装
1、anaconda配置方式
(1)、交互式配置方式
(2)、通过事先给定的配置方式自动完成配置
kickstart文件:按特定语法给出的配置选项
①安装完系统后会自动生成/root/anaconda-ks.cfg可作为模板手动编辑创建。
②安装包system-config-kickstart来创建或修改(图形工具)
③检测kickstart文件语法使用命令
ksvalidator /PATH/TO/KICKSTART_FILE
2、kickstart文件格式
(1) ① 命令段:指明安装前各种配置
② 程序包段:指明要安装的程序包组或包,不安装的程序包。
%packages 安装的起始标志
@grup_name 安装的包组
package 安装的包
-package 不安装的包
%end 安装结束标识
③ 脚本段:
%pre : 安装前脚本
运行环境:运行于安装介质上的微型linux环境
%post:安装后脚本
运行环境:安装完成的系统
(2) 命令段中的命令
必备命令
authconfig:认证方式
bootloader:安装位置及相关配置
keyboard:设定键盘类型
lang:语言类型
rootpw:指明root用户密码
timezone:时区
可选命令
3、非交互自动安装过程示例
⑴ kickstart位于http服务器安装:
光盘启动界面Esc键进入boot选择界面,需配置网络,设置kickstart文件地址。 之后可实现自动安装。
⑵ 创建引导光盘:
① cp -r /misc/cd/isolinux/ /tmp/myiso/
将光盘内引导目录/isolinux 复制到指定目录内
② vim /tmp/myiso/isolinux/isolinux.cfg
initrd=initrd.img text ks=cdrom:/myks.cfg
修改isolinux.cfg文件,指定kickstart文件路径
③ cp /root/myks.cfg /tmp/myiso/
将自定义的kickstart文件同时放到/isolinux同级目录内
④mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6.9x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.iso myiso/
制作光盘镜像命令,
注意:以上命令的路径都是相对于光盘的根, 而和工作目录无关
将生成的iso文件上传至windos系统,就可以在虚拟机作为启动光盘进行自动化安装。
⑶ 创建U盘引导盘
①创建U盘启动盘需将上例做好的boot.iso文件进行转换
安装软件syslinucx:yum install syslinux③
使具有启动功能: isohybrid boot.iso
②将引导镜像导入U盘(本例为/dev/sdb)
dd if=/root/boot.iso of=/dev/sdb
③导入过程不显示速度等信息,若想显示需另开窗口触发显示速度
kill -USR1 `pidofdd`
四、网络自动化安装
PXE网络自动化安装
分别需要①dhcp提供地址②tftp提供引导文件③http或者vsftpd提供kickstart文件及安装源
㈠、 配置DHCP
yum install dhcp -y
依据模板创建/etc/dhcp/dhcpd.conf
修改的主要内容为:
subnet 子网 掩码 { range 起始子网 结束子网 ; filename "pxelinux.0"; next-server tftp的ip地址 }
server dhcp restart
㈡、配置tftp-server
1、 安装及启动:
yum install tftp-server -y chkconfig tftp on service xinetd restart
2、①安装pxe配置文件
如centos 6系统安装:syslinux-nonliunx
如centos 7系统安装:syslinux
②建议tftp服务器目录结构如图所示:
其中initrd.img,vmlinuz,vesamenu.c32来自安装光盘复制而来。
菜单文件也可以用pxe配置文件/usr/share/syslinux/menu.c32(必须放在一级目录)
pxelinux.0来自pxe配置文件/usr/share/syslinux/pxelinux.0(必须放在一级目录)
文件default是光盘中isolinux.cfg复制改名而来,必须具有读权限,必须如图pxelinux.cfg/default放置。
③配置default文件
依据需要自行修改,重点在启动项后添加:
ks=http或ftp存放kickstart文件地址 例:ks=http://172.18.0.1/centos6ks.cfg
㈢配置file server(以http为例)
将用system-config-kickstart工具生成的kickstart文件放在该目录(/var/www/html/)一级目录下。
将光盘的repodata、Packages放到指定的文件系统目录下。
启动http服务,所处局域网主机开机选定网络即可进行自动化安装。