定制化centos6安装光盘遇到的坑及解决过程

隔一段时间就需要安装大量物理机的操作系统,安装过程中设置时区、语言、键盘、分区、选软件包,安装后还需要禁用seliux、firewall等。这些费时操作能否通过参数文件指定,然后加快安装速度?于是就开始可定制化安装光盘踩坑之旅。

由于安装环境网络隔离,无法使用网络启动安装系统。物理距离远,也无法抱笔记本作为网络启动服务器,所以定制化安装光盘是唯一的出路。

解决过程

1
2
3
4
5
6
7
8
9
10
yum -y install anaconda repodata createrepo mkisofs rsync
mkdir -p /mnt/cdrom
mkdir -p /data/os
mount /dev/cdrom /mnt/cdrom
rsync -a /mnt/cdrom /data/os
chmod +w /data/os/isolinux/isolinux.cfg
vi /data/os/isolinux/isolinux.cfg #在第一启动菜单后面添加 ks=cdrom:/isolinux/ks.cfg
mv /root/ks.cfg /data/os/isolinux/
cd /data/os
mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -o /data/CentOS-6.9-x86_64.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table /data/os

ks.cfg

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# Kickstart file automatically generated by anaconda.

#version=DEVEL
install
cdrom
lang en_US.UTF-8
keyboard us
network --onboot no --device eth0 --bootproto dhcp --noipv6
rootpw --iscrypted $6$bXEOu0BQYfXsF4w1$AtnU3lrkcBK2rqrXuagl03xy.S5PPWEMXn9PbtBh2IBfhHfO6zVgncXCDwZD0Q8wIQlzMHH./kdoVT97a4WoX/
firewall --disabled
authconfig --enableshadow --passalgo=sha512
selinux --disabled
timezone --utc Asia/Shanghai
bootloader --location=mbr --driveorder=sda,sdb --append="crashkernel=auto rhgb quiet"
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
zerombr
clearpart --all --drives=sda --initlabel
part /boot --fstype=ext4 --size=500
part pv.008002 --grow --size=1
volgroup VolGroup --pesize=4096 pv.008002
logvol / --fstype=ext4 --name=lv_root --vgname=VolGroup --grow --size=1024 --maxsize=51200
logvol swap --name=lv_swap --vgname=VolGroup --grow --size=1024 --maxsize=1024
reboot

#repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100

%packages --nobase
@core
%end

使用ultraiso修改了iso镜像后,就无法安装系统

测试使用了“centos6.9minimal”和“centos-7-x86_64-Minimal-1611”两个版本的iso,使用ultraiso编辑iso文件,添加任意文件到iso并保存,采用编辑后的文件都无法安装系统,都报错”Unable to read group information from repositories” 。之前一直以为是编写的ks.cfg文件参数错误,直到看到这篇文章才发现,是iso文件错误。解决办法是重新生成repo,重新生成iso。

1
2
3
rm -f repodata/*.gz repodata/*.*.bz2 repodata/*.repomd.xml
declare -x discinfo=`head -1 .discinfo`
createrepo -u “media://$discinfo” -g repodata/2a7e0c1da38a40e2961c0cec6acca8b8446d974b1fc055216ebde88bb4a19eb9-c6-x86_64-comps.xml .

总结

之前一直使用ultraiso编辑镜像后保存安装系统一直报错,有些怀疑是编辑镜像的原因,排查到yumrepo报错时,终于顿悟。
目前只做了centos6.9minimal的安装iso,根据情况制作centos7.2的。ubuntu的定制化再找时间测试。

参考

http://fengzhige.blog.51cto.com/3691377/1067111
http://www.cnblogs.com/jython/p/4301924.html