写在前面:
博客书写牢记5W1H法则:What,Why,When,Where,Who,How。
本篇主要内容:
● CentOS镜像安装启动流程
● isolinux.cfg文件格式
● isolinux安装前引导配置
● anaconda介绍
● centOS自动化安装光盘制作
kickstart文件格式
iso镜像制作工具
CentOS镜像安装启动流程:
bootloader --> isolinux/vmlinuz(isolinux/initrd) --> anaconda
isolinux即相当于平时启动时的/boot目录
MBR:isolinux/boot.cat
Stage2:isolinux/isolinux.bin
安装界面配置文件:isolinux/isolinux.cfg
系统安装后grub配置文件:isolinux/grub.conf
anaconda即相当于平时启动时的/sbin/init程序
isolinux.cfg配置文件格式:
timeout 600
超时时间,注意,这里表示的是60秒
label linux
菜单标识符,开机esc键进入boot:命令行,可以使用“linux”来指定启动此条目
menu label ^Install or upgrade an existing system
菜单名称
menu default
设置为默认启动项
kernel vmlinuz
加载内核
append initrd=initrd.img
向内核传递参数,手动修改自定义参数也写到这里
isolinux安装前引导配置:
在安装界面按ESC键可以进入isolinux的安装命令提示符界面
boot:
启动不同菜单条目:
(这里给出的是默认条目,如果修改了isolinux.cfg文件,可能会不同。)
linux 安装或升级
vesa 基本磁盘设备安装
rescue 救援模式
local 本地磁盘启动系统
memtest86 内存测试
boot: linux ks=ks.cfg
指定所使用的自动化配置文件,如:
cdrom:/ks.cfg
ftp://172.18.0.1/ks.cfg
boot: linux text
指明使用文本界面安装
boot: linux METHOD
指定使用的安装源(本地、hd、nfs、url),如
boot: linux cdrom
boot: linux url --url='http://xxx.com/xx/'
网络相关:
ip=IPADDR
netmask=MASK
gateway=GW
dns=DNS_SERVER_IP
远程访问:
vnc
vncpassword='PASSWORD'
装载额外驱动:
dd
实例:
#使用简单界面安装
开机引导界面按esc键,键入"linux text"
#赋予网卡ip地址,并访问网络上的自动化安装配置文件进行安装
开机引导界面按esc键,键入"linux ip=172.18.31.100 netmask=255.255.0.0 gateway=172.18.0.1 ks=http://172.16.0.1/ks.cfg"
#启用vnc功能进行安装
开机引导界面按esc键,键入"linux vnc vncpassword=fredme123 ip=172.18.31.100 netmask=255.255.0.0 gateway=172.18.0.1"
会提示是否进行media测试,测试或跳过后,出现以下界面:
使用vnc客户端连接
anaconda介绍:
anaconda安装启动流程:
安装前配置
交互式配置
依托配置文件自动配置
安装阶段
按照安装前配置完成系统安装、软件部署
首次启动
anaconda界面风格:
tui:基于cureses的文本配置窗口
传递给内核"text"参数即可切换此风格
gui:图形界面
默认项,需要512MB+内存空间
anaconda软件包仓库:
anaconda支持将软件仓库指定到下列任何一个位置:
本地光盘
本地硬盘
ftp server
http server
https server
nfs server
引导界面按esc键,在boot:后键入linux url --url='URL'或linux cdrom手动指定软件仓库
centOS自动化安装光盘制作:
自动化安装的重点在于配置好kickstart文件,并在安装时指定到目标文件。
kickstart文件格式:
命令段:
必备命令:
authconfig:配置认证方式
authconfig --enableshadow --passalgo=sha512
bootloader:bootloader安装位置及相关配置
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
keyboard:设置键盘类型
keyboard us
lang:设置语言
lang zh_CN.UTF-8
part:分区设置
part /boot --fstype=ext4 --size=500
part pv.008002 --size=51200
volgroup vg0 --pesize=8192 pv.008002
logvol / --fstype=ext4 --name=root --vgname=vg0 --size=20480
rootpw:管理员密码
rootpw --iscrypted $6$CGsqab6d$Cd.PnnWtlL5XZAyr9J2zoMqyJH1QodcDp1pQp0uZ1f0Cq4eq9.TMkSQU6IfpvYZEYc32.lmF0lKuQwavnC49a0
timezone:时区
timezone Asia/Shanghai
其他:
clearpart:清除所有分区
clearpart --all --initlabel
逻辑卷相关:
part pv.008002 --size=61440
volgroup vg0 --pesize=8192 pv.008002
logvol / --fstype=ext4 --name=root --vgname=vg0 --size=20480
可选命令:
install OR upgrade:安装或升级;
text:安装界面类型,text为tui,默认为GUI
network:配置网络接口
network --onboot yes --device eth0 --bootproto dhcp --noipv6
firewall:防火墙
firewall --disabled
selinux:SELinux
selinux --disabled
halt、poweroff或reboot:安装完成之后的行为;
repo:指明安装时使用的repository;
repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100
url: 指明安装时使用的repository,但为url格式;
url --url=http://172.16.0.1/cobbler/ks_mirror/CentOS-6.7-x86_64/
cdrom:指明安装时使用cdrom作为软件仓库
参考:官方文档《Installation Guide》
程序包段:
指明要安装的程序包/包组,也可以指明不安装的程序包/包组
%packages 标记程序包段开头
@group_name 安装的包组
package 安装的包
-package 不安装的包
%end 标记程序包段结尾
脚本段:
%pre 安装前脚本开头标记
脚本部分,与shell一致,命令列表
%end 安装前脚本结尾标记
%post 安装后脚本开头标记
脚本部分,与shell一致,命令列表
%end 安装后脚本结尾标记
kickstart文件定制工具:
借助于图形化工具system-config-kickstart可以快速准确的定制kickstart文件
# yum -y install system-config-kickstart
# system-config-kickstart
# ksvalidator KS_FILE 检查是否有语法错误
创建光盘镜像:
~]# 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 myboot/
实例:
#定制自动化安装kickstart文件,并配置成自动化安装源为本地光盘
# 摘要:
1)利用system-config-kickstart生成ks.cfg文件
2)修改isolinux/isolinux.cfg文件内容,指定ks.cfg文件位置
3)使用mkisofs命令生成光盘镜像
#挂载光盘镜像 [root@localhost ~]# mount /dev/cdrom /media mount: block device /dev/sr0 is write-protected, mounting read-only #创建目录,并将光盘内容拷贝到此目录 [root@localhost ~]# mkdir my_ks_linux [root@localhost ~]# cp /media/* my_ks_linux/ #安装system-config-kickstart程序包并生成定制化的ks.cfg文件 [root@localhost ~]# yum -y install system-config-kickstart [root@localhost ~]# system-config-kickstart 需要特别说明的是,配置软件仓库为本地cdrom [root@localhost ~]# cp ks.cfg my_ks_linux/ #修改isolinux安装引导配置文件,指定使用ks.cfg文件自动化安装 [root@localhost ~]# cd my_ks_linux/isolinux/ [root@localhost isolinux]# vim isolinux.cfg 在label linux下面的append initrd=initrd.img行尾添加ks=cdrom:/ks.cfg [root@localhost ~]# 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/my_ks_linux.iso my_ks_linux/ #将生成的光盘文件挂载到虚拟机进行安装测试 如果配置过程无错误,将全程自动化安装
#定制自动化安装kickstart文件,并配置自动化安装源为网络
不将软件源放入自定义光盘,只需拷贝光盘isolinux目录到自定义目录即可。
[root@localhost ~]# system-config-kickstart 需要指明网络安装源位置,如: url --url="http://172.16.0.1/cobbler/ks_mirror/6/" [root@localhost ~]# mkdir mylinux [root@localhost ~]# cp -r /media/isolinux mylinux/ [root@localhost ~]# cp ks.cfg mylinux/ [root@localhost ~]# cd mylinux/isolinux/ [root@localhost isolinux]# vim isolinux.cfg You have mail in /var/spool/mail/root [root@localhost isolinux]# cd [root@localhost ~]# 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/mylinux.iso mylinux/ #将生成的光盘文件挂载到虚拟机进行安装测试 如果配置过程无错误,将全程自动化安装