anaconda: 系统安装程序
工作模式
gui:图形窗口
tui: 基于图形库curses的文本窗口
安装程序启动过程
- MBR:isolinux/boot.cat
- stage2: isolinux/isolinux.bin
- 配置文件:isolinux/isolinux.cfg
每个对应的菜单选项:
加载内核:isolinuz/vmlinuz
向内核传递参数:append initrd=initrd.img ...
- 装载根文件系统,并启动anaconda
默认启动GUI接口
若是显式指定使用TUI接口:向内核传递text参数即可
(1)按tab键,在后面增加text
(2)按ESC键:boot: linux text
anaconda工作过程
Anaconda安装系统分成三个阶段:
1、安装前配置阶段
安装过程使用的语言 键盘类型 安装目标存储设备:本地磁盘或特殊设备
设定主机名
配置网络接口
时区
管理员密码
设定分区方式及MBR的安装位置
创建一个普通用户
选定要安装的程序包
2、安装阶段
在目标磁盘创建分区,执行格式化操作等
将选定的程序包安装至目标位置
安装bootloader和initramfs
3、图形模式首次启动
iptables
selinux
core dump
单机安装
在之前我们安装单机Linux,一般是用图形界面安装,使用的安装工具是anaconda,安装完成之后在/root目录下会生成一个anaconda.cfg文件,这个文件是对整体安装的一个总结,包括网络设置,键盘设置,分区情况等。这个文件的第一行说明此文件是按照Kickstart格式生成的
# Kickstart file automatically generated by anaconda.
自动安装
在实际的工作环境中,服务器数量非常多,这样就引入了自动化安装工具Kickstart,可以通过预先配置安装策略,完成一键安装。
安装kickstart rpm
yum install system-config-kickstart
制作安装策略文件
1、在带有图形界面功能的SSH客户端如xmanager中启动kickstart
system-config-kickstart
2、基本配置(Basic configuration)
3、配置安装方法(Installation Method)
安装方法指通过什么途径获取Linux安装源文件。这里选择CD-ROM,后续可以根据需要手动更改配置文件去适配不同的安装方法,
4、bootload配置(BootLoader Options)
在红色的框内,可以指定更改Kernel的参数
5、磁盘分区(Partition Information)
6、网络配置(Network Configuration)
可以选择动态分配如果网络内有DHCP服务器,也可以选择静态指定
7、防火墙策略配置()
8、图形参数配置(Display Configuration)
9、选择要安装的包(Package Configuration)、预安装脚本设置(Pre-installation Script)
根据自已的要求设定
10、后执行脚本设置(Post-installation Script)
11、最后一步,保存ks.cfg到指定的目录
注意:在CentOS7上运行system-config-kickstart,默认package项目不可选
解决方案:把/etc/yum.repos.d下的*.repo的第一项目更改为
[development]
重新执行system-config-kickstart
自动安装实战
1、制作自动安装光盘(包括两个安装选项最小化安装和图形化安装)
1.1 把光盘上的所有文件copy到/data目录下,并且改名为centos6
cp -rv /misc/cd/ /data/centos6
1.2 创建目录,编辑ks.cfg
mkdir ksdir
copy /root/ks.cfg /data/centos6/ksdir
制作两个cfg:
ks6_mini.cfg
ks6_desktop.cfg
区别是ks6_desktop.cfg增加了@kde-desktop的安装包
1.3 备份/data/centos6/repodata下的xml文件为包组信息
cp 43d8fd068164b0f042845474d6a22262798b9f0d1f49ad1bf9f95b953089777d-c6-x86_64-comps.xml /root/
1.4 清空/data/centos6/repodata
rm -fr *
1.5把xml文件copy back
cp /root/43d8fd068164b0f042845474d6a22262798b9f0d1f49ad1bf9f95b953089777d-c6-x86_64-comps.xml .
1.6 生成新的repodata
在/data/centos6目录下
createrepo -g repodata/43d8fd068164b0f042845474d6a22262798b9f0d1f49ad1bf9f95b953089777d-c6-x86_64-comps.xml .(此处有一点,代表当前目录 )
1.7 删除所有的TRANS.TBL
find -name TRANS.TBL -exec rm {} ;
1.8 编辑启动显示
isolinux.cfg
label desktop
menu label Install an ^desktop system
kernel vmlinuz
append initrd=initrd.img ks=cdrom:/ksdir/ks6_desktop.cfg
label mini
menu label Install an ^mini system
kernel vmlinuz
append initrd=initrd.img ks=cdrom:/ksdir/ks6_mini.cfg
label local
menu default(建议把menu defalut设置在这里,防止硬盘上有系统在安装倒记时结束时,新安装系统覆盖硬盘的系统,导致数据丢失)
menu label Boot from ^local drive
localboot 0xffff
1.9 制作光盘
mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6.9 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/CentOS-6.9-x86-64-Everythingbootable.iso /data/centos6/
1.10 新建虚拟机,硬盘至少大于ks文件分区的最小值,从新制作的光盘启动
1.11 进入启动界面
1.12 选择前两选任意一项,安装
2、制作引导光盘和U盘
要求:此关盘和U盘只起引导作用,所以本身比较小,可以通过修改
ks6_mini.cfg
ks6_desktop.cfg
url --url="http://172.20.0.1/centos/6" 指向http的安装源
2.1 copy光盘isolinux目录到本机/data/myiso
2.2 创建ksdir文件,编写ks6_mini.cfg,ks6_desktop.cfg
2.3 编辑ks6_desktop.cfg如上
2.4 制作启动光盘
mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6.9 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.iso /data/myiso/
2.5 安装新的虚拟机
从boot.iso启动
2.6 做可以启动的USB
isohybrid boot.iso
dd if=boot.iso of=/dev/sdb(此处是用挂载一块新的虚拟机硬盘实验的)
3、制作LVM分区的模板
part /boot --fstype="ext4" --size=200 (boot分区无法识别LVM)
volgroup vg_centos69 --pesize=4096 pv.008002
logvol /data --fstype=ext4 --name=lv_data --vgname=vg_centos69 --size=50248
logvol / --fstype=ext4 --name=lv_root --vgname=vg_centos69 --size=100000
logvol swap --name=lv_swap --vgname=vg_centos69 --size=2048
ks文件中加入在boot分区之后:
part pv.008002 --grow --size=200
测试,用此ks配置文件生成boot.iso,新建虚拟机,从boot.iso启动,安装成功
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 200M 0 part /boot
└─sda2 8:2 0 199.8G 0 part
├─vg_centos69-lv_root (dm-0) 253:0 0 97.7G 0 lvm /
├─vg_centos69-lv_swap (dm-1) 253:1 0 2G 0 lvm [SWAP]
└─vg_centos69-lv_data (dm-2) 253:2 0 49.1G 0 lvm /data