自动安装centos系统实现

制作kickstart文件

安装system-config-kivkstart包

1
$ yum -y install system-config-kickstart

然后执行system-config-kickstart命令根据提示选择自己想要的设置即可制作kickstart文件。
注意:如果centos7系统制作-ks文件,需要将yum源的名字改为development,否则无法选择安装包。

1
2
$ head -1 /etc/yum.repos.d/base.repo 
[developmentment]

基于生成的kickstart文件安装系统

指明kickstart文件位置: ks=

1
2
3
4
5
6
DVD drive: ks=cdrom:/PATH/TO/KICKSTART_FILE
Hard drive: ks=hd:device:/directory/KICKSTART_FILE
HTTP server: ks=http://host:port/path/to/KICKSTART_FILE
FTP server: ks=ftp://host:port/path/to/KICKSTART_FILE
HTTPS server: ks=https://host:port/path/to/KICKSTART_FILE
NFS server:ks=nfs:host:/path/to/KICKSTART_FILE

生成的应答文件,可以放到web共享目录,实现网络远程安装

制作光盘启动盘

在磁盘创建一个分区,并将光盘中的isolinux目录拷贝到此目录,然后将此前生成的ks文件也复制过来

1
2
3
4
$ mkdir /data/iso
$ cp -r /misc/cd/isolinux/ /data/iso
$ mkdir /data/iso/ksdir
$ cp /root/ks.cfg /data/iso/ksdir

此时目录结构是这样的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ tree /data/iso/
/data/iso/
├── isolinux
│   ├── boot.cat
│   ├── boot.msg
│   ├── grub.conf
│   ├── initrd.img
│   ├── isolinux.bin
│   ├── isolinux.cfg
│   ├── memtest
│   ├── splash.png
│   ├── TRANS.TBL
│   ├── vesamenu.c32
│   └── vmlinuz
└── ksdir
└── ks.cfg

修改其中的isolinux.cfg文件,指定ks文件位置

1
2
3
4
5
6
$ cat isolinux/isolinux.cfg
label linux
menu label ^Auto install an system
menu default
kernel vmlinuz
append initrd=initrd.img ks=cdrom:/ksdir/ks.cfg

将/data/iso目录制作成ISO文件,烧录到光盘中,即可使用此光盘引导安装

1
$ mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 7.5 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.iso /data/iso

注意:由此制做的光盘只能作为启动盘引导,其指定的系统镜像为网络镜像。

制作U盘启动

将上述生成的boot.iso文件转换成硬盘格式的文件

1
$ isohybrid boot.iso

将上述生成的/root/boot.iso文件烧到U盘中

1
$ dd if=/root/boot.iso of=/dev/sdc

使用U盘制作完整的启动盘

创建目录将光盘整个拷贝到此目录

1
$ cp -r /misc/cd/. /data/fulliso

删除其中的TRANS.TBL文件

1
$ find /data/fulliso/ -name TRANS.TBL -exec rn {}\;

修改仓库信息
将repodata目录县的文件清空

1
$ rm -rf /data/fulliso/repodata/*

重新生成元数据

1
$ createrepo -g /misc/cd/repodata/5a045ecddfcca9dcbf1c28b6543e740de844ff4ef221e70308e7ad6decaea417-c6-x86_64-comps.xml /data/fulliso/

将ks文件放入/data/fulliso文件夹下

将/data/fulliso目录制作成ISO文件,烧录到光盘中,即可使用此光盘引导安装

1
$ mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 7.5 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/centos6.iso /data/fulliso

也可以将生成的文件装换成U盘格式。