一、系统安装程序
Linux系统的安装并不是其自身的功能实现的,他需要借助第三方安装工具。这个工具就是anaconda。anaconda是运行在一个特制系统上的安装程序,这个特制的系统,它拥有自己的引导程序、内核及配置文件等。这个系统的相关文件位于光盘镜像的isolinux目录下:
启动流程:
1、通电自检后bios选择从光盘启动
2、读取引导第一阶段文件boot.cat
3、读取引导第二阶段文件isolinux.bin以及配置文件isolinux.cfg,可以看出其启动流程是类似于grub legacy的,安装引导界面以及isolinux.cfg文件内容如下:
default vesamenu.c32
#prompt 1
timeout 600
display boot.msg
menu background splash.jpg
menu title Welcome to CentOS 6.6!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000
label linux
menu label ^Install or upgrade an existing system
menu default
kernel vmlinuz
append initrd=initrd.img
label vesa
menu label Install system with ^basic video driver
kernel vmlinuz
append initrd=initrd.img xdriver=vesa nomodeset
label rescue
menu label ^Rescue installed system
kernel vmlinuz
append initrd=initrd.img rescue
label local
menu label Boot from ^local drive
localboot 0xffff
label memtest86
menu label ^Memory test
kernel memtest
append -
可以看出其配置文件也是类似于grub.conf文件来定义各个选项以及各自的参数。其中append是安装时附加的参数,也可以在安装界面按TAB在后面补入或者boot命令行补入。label不仅是不同安装选项的标识,它也是在boot命令行下可以键入的命令,如键入linux则是以第一项启动,你同样可以在其后面追加参数。
4、当选定一项安装方式后,立即加载内核、initrd等文件,随后则启动anaconda进行系统的安装。
二、自动安装及boot命令行
kickstart文件:
自动化安装是通过事先给anaconda程序提供一个安装配置文件来实现的,这个配置文件称之为kickstart。提供kickstart文件的方式由很多种,比如各种网络服务器或者本地介质。
kickstart文件基本结构:
命令段
程序包段
脚本段
kickstart文件内容较多,此处不过多说明。手动编辑明显不是明智的选择,我们可以在一个现有的linux系统上通过工具自动生成kickstart文件。
# system-config-kickstart
它会模拟一个图形安装界面给我们,这跟安装系统时我们看到的anaconda程序界面是一样的。只需要按照自己需求选择相应的选项,最后选择目录生成kickstart文件即可。
boot命令行:
前面已经提到,在引导界面使用ESC进入boot命令行,使用isolinux.cfg文件中的各标签实现对应安装,以下boot: 为提示符。
boot: linux xdriver=vesa nomodeset #等同于vesa,请参考isolinux.cfg文件
boot: vesa #等同于上条命令
boot: linux text #使用tui界面安装
boot: rescue #救援模式
#以下是指定kickstart文件的方式,ks.cfg
boot: linux ks=cdrom:/path/ks.cfg # ks文件在本地光盘
boot: linux ks=hd:/path/ks.cfg # ks文件在本地硬盘
#如果要使用网络,则应先配置网络选项,参考如下:
boot: linux ip=IP_ADDR netmask=MASK gateway=GATEWAY dns1=DNS ifname=NAME:MAC
#随后可进行网络相关的引导
ks=ftp://host:port/path/ks.cfg # ks在ftp服务器上,http、https略
例子: 启动tui界面自动安装,ks.cfg在isolinux目录下
boot: linux text ks=cdrom:/isolinux/ks.cfg