CentOS启动流程
POST-->boot sequence(bios)--> bootloader(mbr)-->kernel(ramdisk)-->rootfs(ro)-->switch root--> sbin/init
对于centos,fedora而言:安装系统时用到的安装程序: anaconda
anaconda安装程序有两种风格:
基于curses的文本窗口: tui
图形窗口: gui
CentOS的安装程序启动过程
安装程序在哪里:光盘
1. 加载安装光盘: 加载后在系统设备文件/dev/cdrom 2. 只读挂载光盘: mount -r /dev/cdrom /media/cdrom 3. 进入安装程序目录isolinux: cd /media/cdrom,cd isolinux
isolinux内容:
boot.cat grub.conf isolinux.bin memtest TRANS.TBL vmlinuz
boot.msg initrd.img isolinux.cfg splash.jpg vesamenu.c32
安装程序执行次序相当于第一段boot.cat 加载第二段 isolinux.bin,然后第二段再读取配置文件isolinux.cfg和vesamenu.c32运行一个安装配置界面
boot.cat --> isolinux.bin --> isolinux.cfg
显示的菜单信息来自于isolinux.cfg配置文件中
每个对应的菜单选项: 加载内核:kernel isolinuz/vmlinuz 向内核传递参数:append initrd=initrd.img...然后
装载根文件系统,并启动anaconda
默认启动GUI接口,若是显式指定使用TUI接口,向内核传递”text“参数即可:esc --> boot: linux text 或者对应条目上按tab 键入linux text
anaconda应用的工作过程
安装前配置阶段
安装过程使用的语言
键盘类型
安装目标存储设备:
Basic Storage:本地磁盘
特殊设备: iSCSI
设定主机名
配置网络接口
时区
管理员密码
设定分区方式及MBR的安装位置
创建一个普通用户
选定要安装的程序包
安装阶段
在目标磁盘创建分区,执行格式化操作等
将选定的程序包安装至目标位置
安装bootloader
首次启动
iptables
selinux
core dump
anaconda的配置方式
1.交互式配置方式 2.通过读取事先给定的配置文件自动完成配置 按特定语法给出的配置选项 kickstart文件
安装引导选项
boot: text: 文本安装方式 method:手动指定使用的安装方式 与网络相关的引导选项: ip=IPADDR netmask=MASK gateway=GW dns=DNS_SERVER_IP ifname=NAME:MAC_ADDR 与远程访问功能相关的引导选项 vnc vncpassword='PASSWORD' 指明kickstart文件的位置 ks= DVD driver: ks=cdrom:/PATH/TO/kickstart_FILE Hard driver: ks=hd:/device/directory/KICKSTART_FILE HTTP server:ks=http://host:port/PATH/TO/kickstart_FILE FTP server: ks=ftp://host:port/PATH/TO/kickstart_FILE HTTPS server: ks=https://host:port/PATH/TO/kickstart_FILE 启动紧急救援模式 rescue
可参考官方文档: 《Installation Gude》
kickstart
kickstart文件的格式:
命令段:指明各种安装前配置,如键盘类型等 程序包段: 指明要安装的程序包组或程序包,不安装的程序包等 %packages @group_name package -package %end 脚本段: %pre:安装前脚本 运行环境:运行于安装介质上的微型linux环境anaconda %post:安装后脚本 运行环境:安装完成的系统 命令段中的命令 必备命令: authconfig:认证方式 authconfig --useshadow --passalgo=sha512
bootloader: bootloader的安装位置及相关配置 bootloader --location=mbr --driveorder=sda --append="crashkernel=auto crashkernel=auto rhgb rhgb quiet quiet" keyboard: 设定键盘类型 en_US.utf8 lang:语言类型 part:创建分区 rootpw:指明管理员的密码 timezone:时区 可选命令: install OR upgrade text:文本安装界面 network firework selinux halt poweroff reboot repo user:安装完成后为系统创建新用户 url:指明安装源
创建kickstart文件的方式:
1.直接手动编辑 依据某模板修改 2.可使用创建工具:system-config-kickstart (CentOS 6) 依据某模板修改并生成新配置
检查ks文件的语法错误:ksvalidator
# ksvalidator /PATH/TO/KICKSTART_FILE
创建引导光盘
# mkisofs -R -J -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6.6 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.iso myiso/
实现安装效果:
boot: linux ip=172.16.100.33 netmask=255.255.0.0 ks=...