admin管理员组文章数量:1563235
本期的内容稍微长一点,需要的同学可以看一下,有问题可以留言问我。好了言归正传,步入正题!
一 、搭建基础环境
1、安装安装包
yum install createrepo mkisofs isomd5sum squashfs-tools
2、创建制作目录
mkdir /root/PanISO
3、挂载
mount /dev/cdrom /media/
4、复制镜像信息到工作目录
cp -r /media/* /root/PanISO/
cp /media/.discinfo /root/PanISO/
cp /media/.treeinfo /root/PanISO/
5、赋予权限
chmod +w /root/PanISO/isolinux/isolinux.cfg
6、挂载原始镜像
注意:本步操作前需要提前下载好centos7的iso镜像文件,放入目录中
mount -o loop /root/CentOS-7-x86_64-DVD-2009.iso /mnt
二、准备需要的 rpm 包
1、获取系统默认安装的RPM包和需要添加的RPM包
在使用Centos系统安装完成后会生成/root/install.log,该文件记录了系统安装时安装的RPM包信息。如果没有该文件,可以手动生成(新安装的干净系统):
rpm -qa >> /root/install.log
清空ISO制作目录里的Packages和repodata两个目录里的所有内容,并根据install.log将所需安装包放入Packages文件夹内:
awk '{print $0}' /root/install.log |xargs -i cp /media/Packages/{}.rpm /root/PanISO/Packages/
2、定制安装包
将要新安装的rpm包及依赖包yum下载到test下
这里举个例子,如:docker
mkdir /root/test
yum-config-manager --add-repo http://mirrors.aliyun/docker-ce/linux/centos/docker-ce.repo
yum install -y --downloadonly --downloaddir=/root/test docker-ce
curl --silent --location https://rpm.nodesource/setup_15.x | sudo bash -
yum install -y --downloadonly --downloaddir=/root/test nodejs
curl --silent --location https://dl.yarnpkg/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
rpm --import https://dl.yarnpkg/rpm/pubkey.gpg
yum install -y --downloadonly --downloaddir=/root/test yarn
yum install -y --downloadonly --downloaddir=/root/test ntp
yum install -y --downloadonly --downloaddir=/root/test ntpdate
yum install -y --downloadonly --downloaddir=/root/test dos2unix
将下载好的rpm包移动到制作目录里面
mv /root/test/* /root/PanISO/Packages/
Docker安装包及依赖包如下
- container-selinux.noarch
- containerd.io
- docker-ce-cli
- docker-ce-rootless-extras
- fuse-overlayfs
- fuse3-libs
- slirp4netns
- docker-ce
然后将这些安装包移动到制作目录的Packages下,再将原始配置文件复制到制作目录下
mv /root/test/* /root/PanISO/Packages/
cp /root/anaconda-ks.cfg /root/PanISO/isolinux/ks.cfg
将上述包名添加到ks.cfg中的%packages里面
%packages
container-selinux.noarch
containerd.io
docker-ce-cli
docker-ce-rootless-extras
fuse-overlayfs
fuse3-libs
slirp4netns
docker-ce
dos2unix
%end
上述的dos2unix包是为了防止windows上编辑的文本,在linux系统出现格式问题,用来进行格式匹配的。
dos2unix:是一个用于将DOS/Windows格式的文本文件转换为Unix/Linux格式的工具。它特别适用于处理那些由于文件格式不同而导致的兼容性问题。DOS/Windows格式的文件使用回车符(CR)和换行符(LF)作为断行符,而Unix/Linux格式的文件则只使用换行符(LF)。dos2unix命令通过转换这些断行符,使得文件可以在Unix/Linux环境中正确显示和执行。
转换代码示例:
dos2unix 需要转换的文件名
如:dos2unix test.yaml
安装后脚本命令,启动docker并开机自启
%post
systemctl start docker
systemctl enable docker
%end
// 本章内容看到这块就可以
后面的这块内容是装机自启脚本执行,需要的同学下期为大家奉上,详细讲解后续
%post
mkdir /home/admin/linux
mkdir /home/usb
cd /dev
for file in $(ls)
do
if [ ${file:0:2} = "sd" ]
then
mount -o loop /dev/$file /home/usb
fi
done
cp -r /home/usb/linux/* /home/admin/linux
cd /home/admin/linux
sh all.sh
%end
三 、重新生成repo
移动配置文件
cd /root/PanISO
mv repodata/*comps.xml repodata/comps.xml
cd repodata/
删除其他文件
ls | grep -v comps.xml$|xargs rm
重新生成软件组的数据信息
cd /root/PanISO.
createrepo -g repodata/comps.xml ./
由comps.xml生成repodata包。注意当有新包加入,或者更新comps.xml文件,均需要重新生成repodata文件夹
createrepo -g repodata/comps.xml ./
四、实现自动化安装
这步的作用是实现自动化安装,如果不加上就需要手动配置参数就行下一步安装了。
# BIOS引导
vi isolinux/isolinux.cfg
append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet
# 将以上多处相同的内容调整为为以下内容,光驱进行安装
append initrd=initrd.img inst.ks=cdrom:/isolinux/ks.cfg quiet
# 使用硬盘进行安装修改为以下内容
append initrd=initrd.img ks=hd:LABEL=CDROM:/isolinux/ks.cfg inst.stage2=hd:LABEL=CDROM quiet
# EFI引导
vi EFI/BOOT/grub.cfg
linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet
# 将以上多处相同的内容调整为为以下内容,光驱进行安装
linuxefi /images/pxeboot/vmlinuz inst.ks=cdrom:/ks.cfg quiet
# 使用硬盘进行安装修改为以下内容
linuxefi /images/pxeboot/vmlinuz inst.ks=hd:LABEL=CentOS\x207\x20x86_64:/ks.cfg inst.stage2=hd:LABEL=CentOS\x207\x20x86_64:/ks.cfg quiet
五、制作ISO
1、生成镜像
mkisofs -o Pan-7.3.iso -input-charset utf-8 -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T -joliet-long /root/PanISO/
2、校验MD5
implantisomd5 Pan-7.3.iso
六、其他应用安装在附件脚本
下章讲解说明
七、刻录U盘
使用U盘刻录工具将生成的ISO写入U盘即可进行安装测试
本文标签: 系统
版权声明:本文标题:自定制centos7系统 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1727495030a1117526.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论