制作CentOS 6.5自动安装ISO镜像光盘

制作Centos6.5一键自安装ISO镜像光盘

参考链接:https://pdf.us/2018/08/13/1710.html
参考链接:https://www.jianshu.com/p/682308ba083e
参考链接:Kickstart文件详解 https://www.cnblogs.com/zhenhui/p/6233285.html 

使用kickstart制作可以自动安装的光盘是比较容易的,但是,由于现在光盘的使用越来越少,部分服务器上也不再提供光驱,于是,我们打算使用U盘来安装,但这个过程中,由于真实光盘和U盘的差异性,在适配U盘安装的过程中,有一些需要注意的事项。


总体的步骤还是比较清晰的,可以简单归纳为这几个部署:
复制标准安装ISO -> 集成rpm -> 编写ks.cfg文件 -> 加入自定义业务部署脚本 -> ISO封装 -> 写入U盘

1. 系统安装包说明
目录树结构
|-- .discinfo
|-- .treeinfo
|-- Packages
|-- base
|-- images
|-- isolinux
|-- ks.cfg
|-- repodata
.discinfo 文件是安装价质的识别信息
.treeinfo 文件是系统版本,创建时间及文件目录树结构信息
Packages目录存放安装软件包及信息
base 目录存放定制脚本及包信息
images 目录包括了必要的启动映像文件
isolinux 目录存放光盘启动时的安装界面信息
ks.cfg 文件是无人值守自动化安装配置文件

2. 挂载光盘
1) 到官网下载所需的ISO版本。
2) 安装制作发行版的工具

yum -y install anaconda repodata createrepo mkisofs rsync 



3) 挂载光盘,同步文件
mkdir /mnt/cdrom
mount -o loop CentOS-6.5-x86_64-bin-DVD1.iso /mnt/cdrom/ ##挂载iso到/mnt/cdrom文件下
/usr/bin/rsync -a --exclude=Packages/ --exclude=repodata/ /mnt/cdrom/ /ISO/ ##同步/mnt/cdrom/下的文件到ISO/路径下,除了Packages和repodata文件夹
mkdir -p /ISO/{Packages,repodata} ##在ISO/文件夹下新建Packages和repodata文件夹

4) 使用脚本拷贝相关软件包到/ISO/Packages目录下
注:脚本中的install.log文件可以从/root目录下获取,目的是可以删除不必要的rpm包
#!/bin/bash
cd /root
awk '/Installing/{print $2}' install.log | sed 's/^*://g' >package.txt
DVD='/mnt/cdrom/Packages'
NEW_DVD='/ISO/Packages'
while read LINE
do
cp ${DVD}/${LINE}*.rpm /${NEW_DVD} || echo "$LINE don't cp......."
done < package.txt
rm -f package.txt

3. 定制安装脚本ks.cfg文件

4. 修改isolinux.cfg文件
kickstart文件中默认安装在sda中,如果没有sda系统不能正常自动安装,使用两个kickstart文件配置两个安装选项,ks1.cfg采用自动分,ks2.cfg采用手动分区。
# vim isolinux/isolinux.cfg
label linux1
  #Auto install
  menu label ^Install Customer Server CentoOS6.5 Automatic
  menu default
  kernel vmlinuz
  #append ks=cdrom:/ks1.cfg initrd=initrd.img    ##修改成定制ks.cfg所在目录
  append initrd=initrd.img ks=hd:LABEL=CentOS6_5/ks1.cfg stage2=hd:LABEL=CentOS6_5
label linux2
  #Manual config disk partition and install
  menu label  Install ^Customer Server CentOS6.5 (Manual partitioning)
  kernel vmlinuz
  #append ks=cdrom:/ks2.cfg initrd=initrd.img    ##修改成定制ks.cfg所在目录
  append initrd=initrd.img ks=hd:LABEL=CentOS6_5/ks2.cfg stage2=hd:LABEL=CentOS6_5

注意:配置中ks=hd:LABEL=CentO6_5:/ks1.cfg这一项,即指定ks.cfg文件的位置,之前使用ks=cdrom:/ks1.cfg的方式,在使用光盘的时候可正常运行,但换用U盘后,会找不到ks.cfg文件,后面使用基于LABEL的方式,这样可以找到ks.cfg文件的位置,使用卷标,这样不管这个U盘被识别成什么,只要卷标不变就能获取到正确位置。可使用mkisofs打包成光盘ISO文件时,通过-V参数指定卷标。

5 生成comps.xml文件
进入/mnt/cdrom/repodata 目录,将“*-x86_64-comps.xml”文件拷贝到/ISO/repodata路径下,并重命名成comps.xml。由于centos6.5下的comps.xml文件名很长,这里“*”为省略符,实际操作时输入完整文件名。
cp /mnt/cdrom/repodata/*-x86_64.xml /ISO/repodata/comps.xml

切换到ISO/路径下,生成comps.xml文件
createrepo -g repodata/comps.xml ./

注:如果有新增或删除了Packages目录的RPM包,请重新生成comps.xml文件

6 生成ISO文件
到这步实际定制配置系统的工作已经完成了。下面就是生成一个ISO镜像文件,便于刻录到光盘中进行安装。
mkisofs -o CentOS6.5_auto_install.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T -V "CENTOS6_5" /ISO/
注:/ISO/目录下产生的CentOS6.5_auto_install.iso就是生成的ISO文件,路径和ISO名称都可以自定义。

# 转换为ISO hybrid 模式(该命令由syslinux提供) 这种模式可以直接刻成物理光盘,也可以做成可引导U盘。
isohybrid /ISO/CentOS6.5_auto_install.iso

# 嵌入md5校验码 (该命令由isomd5sum提供)
implantisomd5 /ISO/CentOS6.5_auto_install.iso

# 校验一下 (该命令由isomd5sum提供)
checkisomd5 /ISO/CentOS6.5_auto_install.iso

mkisofs参数说明:
-o /tmp/Centos6.5_auto_install.iso,设置输出文件名,-output
-b isolinux/isolinux.bin,指定开机映像文件
-c isolinux/boot.cat,制作启动光盘时,mkisofs会将开机映像文件中的全-eltorito-catalog*文件的全部内容作成一个文件
-no-emul-boot,非模拟模式启动
-boot-load-size 4,
-boot-info-table,
-joliet-long,
-R,使用Rock Ridge Extensions,是用于linux环境下的光盘,文件名区分大小写同时记录文件长度,-rock
-J,使用Joliet格式的目录与文件名称,Jolient是windows下使用的光盘,-joliet
-v,执行时显示详细的信息,-verbose
-V "CentOS 7 x86_64",设置卷标Volume ID,-volid
-T,建立文件名的转换表,适用于不支持Rock Ridge Extensions的系统,-translation-table
/tmp/iso/,光盘源文件目录

7 制作U盘启动盘
推荐使用软件rufus,该软件为绿色小软件,小巧,功能完善
Rufus安装U盘制作工具:rufus
版本:v3.1
官网:http://rufus.akeo.ie/
下载地址:https://github.com/pbatard/rufus/releases/download/v3.7/rufus-3.7.exe
注:如果光盘镜像为ISOHybrid镜像,有ISO镜像模式和DD镜像模式两种写入方式,其中ISO镜像模式写入的U盘还可以写入其他文件,和一般U盘无区别,但兼容性较差,推荐DD镜像模式,但该模式写入后,windows下将不识别,仅可用于系统安装。

8. 测试系统安装

原文地址:https://www.cnblogs.com/larrypeng/p/11486214.html