kickstart %pre %post阶段
在kickstart中我们可以通过%pre和%post标签添加pre-installation脚本和post-installation脚本,顾名思义,这两个脚本分别作用在:
- %pre,在系统安装开始之前,kickstart 文件解析之后立即运行;
- %post,在系统完成安装之后运行;
并且%post默认在chroot环境下运行,而%pre不在chroot下运行,这一点在后文调试中会解释。
调试iso安装过程
调试iso安装过程,首先选iso启动,进到安装界面,你可以选text mode(不带UI的字符安装界面)或者带UI的界面。
按下Alt+F2
切换到shell。
进入了可以看到以anaconda开头的shell环境,现在看到的这个就是安装系统用的系统,这个系统非常简洁,只支持很少的与系统安装相关的一些命令,可以通过help
命令查看。
安装系统到硬盘的操作就是在这个环境下执行。首先会执行%pre,之后将你选择的硬盘(如/dev/vda)挂载到/mnt/sysimage
目录下,并且将系统和rpm包安装到该目录下:
这个时候切换到shell环境可以看到安装硬盘已经被分区并挂载到/mnt/sysimage
目录下了。
再切回main,等待rpm安装完成,
可以看到在generating initramfs之后才真正执行%post
而执行%post,是在chroot环境下,等同于:
1 |
|
*重新生成initramfs
要重新生成initramfs,只需要执行以下几条指令:
1 |
|
我们可以在ks.cfg中这么写:
1 |
|
Reference
CentOS install guide: https://docs.centos.org/en-US/centos/install-guide/Kickstart2/
Red Hat How to: https://access.redhat.com/solutions/5498341