首页 > 技术文章 > 制作用kickstart自动安装系统的ISO

qscfyuk 2019-11-27 15:05 原文

1.下载CentOS-6.8-x86_64-bin-DVD1.iso。

 

2.使用该ISO安装操作系统,然后在该系统上,配置好网络,保证系统能够上网,然后使用如下命令安装好需要用到的工具软件:
  yum -y install anaconda repodata createrepo mkisofs rsync。


3. 将该ISO挂载到新安装的系统中的cdrom目录下(也可挂载在其它目,后文称原生目录)。
  mount -o loop /root/CentOS-6.8-x86_64-bin-DVD1.iso /cdrom/


4.在新安装的系统中创建目录/ISO作为存放将要制作的ISO镜像的目录,并创建/ISO/Packages目录。

  mkdir /ISO

  mkdir /ISO/Packages

 

5.将原生目录中除repodata和Packages目录外的其它文件和目录拷贝到/ISO目录下(这里不将原生的Packages拷贝过去是为了减少新制作的ISO文件的大小,后面会只将需要的包拷贝过来写入到新的ISO文件,拷贝应使用rsync命令,参考:
  /usr/bin/rsync -a --exclude=Packages /cdrom/ /ISO/ )。

 

6.参考当前系统的安装包,将原生目录中Packages下的rpm安装包拷贝到/ISO目录下的Packages目录下,命令如下:
  awk '/Installing/ {print $2}' install.log | xargs -i cp /cdrom/Packages/{}.rpm /ISO/Packages/

说明: install.log文件中记录了系统安装时候安装的软件包名,因此按照这些软件包名从原生的目录(/mnt/)下的包库中拷贝软件包到新ISO的包库中。

 

7.配置kickstart脚本
  vim ks.cfg  

  ks.cfg文件组成大致分为3段

  1.命令段:

  键盘类型,语言,安装方式等系统的配置,有必选项和可选项,如果缺少某项必选项,安装时会中断并提示用户选择此项的选项

  2.软件包段:

  %packages

  @groupname:指定安装的包组

  package_name:指定安装的包

  -package_name:指定不安装的包

  在安装过程中默认安装的软件包,安装软件时会自动分析依赖关系。

  3.脚本段(可选):

  %pre:预安装脚本(由于只依赖于启动镜像,支持的命令很少)

  %post:后安装脚本(基本支持所有命令)

  而具体的ks.cfg文件的配置,我们只需要在已经安装好的linux的root家目录找到anaconda_ks.cfg(这个ks文件就是在安装linux后,根据用户的安装选项自动生成的)

8.修改isolinux.cfg文件,让系统从kickstart配置启动安装

  isolinux.cfg文件在/ISO/isolinux目录下,文件的最后有几个“label linux”字段,这是安装系统的时候的几个选项,我们可以在最后加一项label linux如下:

  

 

   其中"^Auto INSTALL***"字段是要显示在安装过程中的一个选项,在安装的时候选中这个选项,就会执行下边"append ks"所指向的ks.cfg文件自动安装系统了。

9.生成ISO文件
mkisofs -o CentOS-6.8_64.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T ISO/

 

10.刻录光盘

  我是拷贝到Windows下刻录的光盘,用的UItraISO



推荐阅读