通过kickstart定制Centos7系统
  0eGysyk4Lrwg 2023年11月02日 32 0


环境准备

  • CentOS 环境一个
[ocloud@centos-linux ~]$ uname
  • CentOS7 镜像一个
CentOS-7-x86_64-DVD-1810.iso

开始制作

  1. 安装需要的工具
[ocloud@centos-linux ~]$ sudo yum -y install createrepo mkisofs
  1. 挂载CentOS-7-x86_64-DVD-1810.iso 到目录
[ocloud@centos-linux ~]$ lsblk //查看磁盘设备,选择对应的光驱设备
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 64G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 63.5G 0 part
├─VolGroup-lv_root 253:0 0 50G 0 lvm /
├─VolGroup-lv_swap 253:1 0 2G 0 lvm [SWAP]
└─VolGroup-lv_home 253:2 0 11.6G 0 lvm /home
sr0 11:0 1 122.5M 0 rom
sr1 11:1 1 4.3G 0 rom //这个即为挂载的CentOS-7-x86_64-DVD-1810.iso

[ocloud@centos-linux ~]$ mkdir ~/originISO
[ocloud@centos-linux ~]$ sudo mount /dev/sr1 ~/originISO
[sudo] ocloud 的密码:
mount: /dev/sr1 写保护,将以只读方式挂载

#如果不是通过光驱加载,则执行以下操作即可,和上面是同样的效果
[ocloud@centos-linux ~]$ sudo mount
  1. 将镜像内容拷贝到即将制作镜像的文件夹
[ocloud@centos-linux ~]$ mkdir ~/customISO
[ocloud@centos-linux ~]$ sudo cp -ar ~/originISO/* customISO/
[ocloud@centos-linux customISO]$ ls
CentOS_BuildTag EFI EULA GPL images isolinux LiveOS Packages repodata RPM-GPG-KEY-CentOS-7 RPM-GPG-KEY-CentOS-Testing-7 TRANS.TBL

#Packages目录是用来放rpm安装包
#isolinux 目录包含了启动相关的配置文件
  1. 准备我们需要的rpm包, 具体操作如下
# rpm安装有许多的依赖问题,但是我们可以通过yum获取到相关的依赖包
[ocloud@centos-linux ~]$ yum -h
...
--downloadonly 仅下载而不更新
--downloaddir=DLDIR 指定一个其他文件夹用于保存软件包
...

#比如下载qemu-kvm相关的包
[ocloud@centos-linux ~]$ sudo yum -y --downloadonly --downloaddir="~/customISO/Packages" qemu-kvm qemu-kvm-tools qemu-img gpxe-roms-qemu qemu-guest-agent #这里直接包相关联的包下载到我们制作镜像的单独放rpm包的文件夹中
  1. 更新软件组的关联信息
    由于我们添加了新的rpm包,因此需要更新软件组的关联信息,每次更新了rpm包就需要更新软件组的信息。
[ocloud@centos-linux ~]$ cd ~/customISO
[ocloud@centos-linux customISO]$ mv repodata/*comps.xml repodata/comps.xml #备份软件组的配置文件,其中包含了软件组元数据
[ocloud@centos-linux customISO]$ cd repodata/
[ocloud@centos-linux repodata]$ ls | grep -v comps.xml$|xargs rm #删除其他文件
[ocloud@centos-linux repodata]$ cd ../
[ocloud@centos-linux customISO] createrepo -g repodata/comps.xml /home/ocloud/customISO #重新生成软件组的数据信息
  1. 准备kickstart文件
    推荐用来生成 Kickstart 文件的方法是在系统中首先执行一次手动安装。安装完成后,安装程序中的所有选择都会保存到名为 anaconda-ks.cfg 的文件中,该文件位于所安装系统的 /root/ 目录下。然后可以复制这个文件,根据需要进行修改,并在以后的安装中使用得到的配置文件。 —来自redhat官网内容。
# 这个文件是一个示例
install #表示是安装系统
cdrom #安装方式,这里是通过光驱
lang en_US.UTF-8 #设置语言
keyboard us #设置键盘
network --device eth0 --bootproto dhcp #设置网络
rootpw 4a7YAZQ1nvUHI --iscrypted #设置root密码,--iscrypted代表加密 --plaintext代表明文
firewall --service=ssh #指定ssh服务可以通过防火墙
authconfig --enableshadow --passalgo=sha512 --enablefingerprint #系统设置认证选项
selinux --enforcing #开启selinux
timezone --utc Asia/Shanghai #设置时区
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" #引导装载程序
zerombr #在使用之前初始化的磁盘的系统中执行自动安装时需要这个命令。
#磁盘分区
clearpart --all --drives=sda
#EFIpart /boot/efi --fstype=efi --grow --maxsize=200 --size=20
part /boot --fstype=ext4 --size=500
part pv.raid01 --grow --size=1
volgroup VolGroup --pesize=4096 pv.raid01
logvol /home --fstype=ext4 --name=lv_home --vgname=VolGroup --grow --size=100
logvol / --fstype=ext4 --name=lv_root --vgname=VolGroup --grow --size=1024 --maxsize=51200
logvol swap --name=lv_swap --vgname=VolGroup --grow --size=1008 --maxsize=2016
text
reboot
#EFIbootloader --location=partition
#OPT-6key --skip
user --name=ocloud --password=4a7YAZQ1nvUHI --iscrypted --groups=wheel #添加用户
xconfig --startxonboot

#安装所需要的软件包,把自定义的安装包添加进去即可在安装系统时自定义的软件
%packages --ignoremissing
@base
@core
@debugging
@basic-desktop
@gnome-desktop
@desktop-debugging
@desktop-platform
@directory-client
@fonts
@general-desktop
@graphical-admin-tools
@graphics
@input-methods
@java-platform
@legacy-x
@network-file-system-client
@performance
@perl-runtime
@print-client
@remote-desktop-clients
@server-platform
@virtualization
@virtualization-client
@virtualization-platform
@x11
authconfig
system-config-firewall-base
mtools
pax
python-dmidecode
oddjob
sgpio
genisoimage
wodim
abrt-gui
certmonger
pam_krb5
krb5-workstation
nscd
pam_ldap
nss-pam-ldapd
libXmu
perl-DBD-SQLite
python
gcc
make
kernel-devel
checkpolicy
selinux-policy-devel
%end

#安装完系统后,需要做什么事情请写在%post里面
%post
# Get interface up
ifdown eth0
ifup eth0
/usr/bin/chfn -f 'demo' demo
umount /dev/sr0
[ -e /tmp/sepolicy-devel.temp ] && rm /tmp/sepolicy-devel.temp
echo "..."
echo "setting network for openvswitch"
scriptsUrl="/etc/sysconfig/network-scripts"
if [ -e $scriptsUrl/ifcfg-eth0 ]
then
# disable NetworkManager
systemctl disable NetworkManager

# copy device eth0 configure to ovs-br0
cp $scriptsUrl/ifcfg-eth0 $scriptsUrl/ifcfg-br0

else
echo "device eth0 configure isn't exist,please check it!"
fi

sleep 2
reboot

将kickstart文件保存为ks.cfg文件到~/customISO。

  1. 修改安装启动信息
[ocloud@centos-linux customISO]$ vi isolinux/isolinux.cfg
...
label linux
menu label ^Install CentOS 7
kernel vmlinuz
append initrd=initrd.img inst.stage2=hd:LABEL=CentOSx207x20x86_64 quiet
...

#将以上部分修改为以下内容,驱动进行安装
...
label linux
menu label ^Install CentOS 7
kernel vmlinuz
append initrd=initrd.img inst.ks=cdrom:/ks.cfg
...

#使用USB进行安装修改为以下内容
...
label linux
menu label ^Install CentOS 7
kernel vmlinuz
append initrd=initrd.img inst.ks=hd:LABEL=CentOSx207x20x86_64:/ks.cfg
...
  1. 制作CentOS7镜像文件
[ocloud@centos-linux customISO] mkisofs -o /tmp/CentOS-7-x86_64-demo.iso -b isolinux/isolinux.bin -c isolinux/boot.cat --no-emul-boot --boot-load-size 4 --boot-info-table -J -R -V "CentOS 7 x86_64" .
[ocloud@centos-linux customISO] isohybrid /tmp/CentOS-7-x86_64-demo.iso #使用mkisofs或genisoimage生成的ISO 9660镜像,以允许混合启动为CD-ROM或硬盘

USB启动盘制作

  • 将U盘插入系统
  • 格式化U盘分区
[ocloud@centos-linux ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
...
sdb 8:16 1 14.3G 0 disk
└─sdb4 8:20 1 14.3G 0 part #U盘分区
...
[ocloud@centos-linux ~]$ sudo mkfs.vfat -I /dev/sdb
mkfs.fat 3.0.20 (12 Jun 2013)
  • 写入镜像
[ocloud@centos-linux ~]$ dd if=/tmp/CentOS-7-x86_64-demo.iso of=/dev/sdb
[ocloud@centos-linux ~]$ exit #退出后拔掉U盘即可

完成以上步骤后,即可生成一个自己定制的CentOS7的系统。


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  9E2BTpjt8nym   2023年12月06日   35   0   0 WindowsgitCentOS
0eGysyk4Lrwg