自定义centos镜像制作

本文提供了一种自定义CentOS镜像的方法,通过挂载镜像、安装必要工具、同步光盘文件、配置yum、修改自动化安装配置等步骤,详细介绍了如何裁剪和添加RPM包,制作ISO镜像,并解决了在镜像制作和安装过程中遇到的问题。
摘要由CSDN通过智能技术生成

实际工作中,总是会面对各种各样的需求,除了开发需求之外,还可能会有操作系统方面的自定义方面的需求,如果使用的是 centos 系统,需要对 centos 系统做一些特殊的自定义的操作,那么这篇文章希望能对你有所帮助。

我的其他博客地址
https://juejin.cn/user/176366088104638
blog.wuzhenyu.com.cn

tutorial

自定义 centos 镜像的思路,利用的也是官方已有的镜像。从官网下载最小化安装的镜像,以此作为基础,在这个基础上可以添加或者删除该镜像中预装的 rpm 包,来达到自定义镜像的目的。

挂载镜像

将iso镜像添加到虚拟机上,挂载后的设备为 /dev/sr1,将其挂载到 /media 目录中

mount /dev/sr1 /media
lsblk

安装制作发行版的工具

yum -y install createrepo mkisofs isomd5sum rsync

同步光盘文件到制作ISO的目录

#同步/media下的文件到/ISO路径下,除了Packages和repodata文件夹
/usr/bin/rsync -a --exclude=Packages/ --exclude=repodata/ /media/ /ISO/
# 在/ISO/文件夹下新建Packages和repodata文件夹
mkdir -p /ISO/{Packages,repodata}

拷贝 rpm

生成install.log

rpm -qa >> /root/install.log

拷贝已安装rpm

awk '{print $0}'  /root/install.log |xargs -i cp /media/Packages/{}.rpm /ISO/Packages/

配置yum下载指定软件包列表(rpms_list.txt)的所有依赖包

将需要安装的包及其以来写入 rpms_list.txt

#!/bin/sh   
for line in `cat /root/rpms_list.txt`
    do
       echo "download file>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>and it's denpendies"$line
     yum install -y --downloadonly --downloaddir=/root/test/ $line
#或者先安装yum -y install yum-utils再yumdownloader $line
    done
#yum查找.so或者某个依赖在哪个rpm包中
yum provides {.so名或者依赖名字}
#拷贝包到指定目录
cp /root/test/* /ISO/Packages/

rpm 相关操作

yum list | grep XXX # 搜索
yum deplist XXX # 查看依赖
yum install --downloadonly --downloaddir=/packages XXX # 仅仅下载,不安装
yumdownloader --resolve --destdir /packages XXX # 下载

安装包的所有依赖必须齐全,否则安装系统时,会出错

修改 isolinux.cfg 文件

label linux
menu label ^Install CentOS 7
kernel vmlinuz
#这样是不自动安装
append initrd=initrd.img inst.stage2=hd:LABEL=CentOS7 quiet
#这样配置会自动安装
append initrd=initrd.img inst.stage2=hd:LABEL=CentOS7 inst.ks=hd:LABEL=CentOS7:/isolinux/ks.cfg quiet

inst.ks为ks.cfg文件位置;
inst.stage2为安装介质位置,hd:LABEL为介质标签,例如CentOS7。这个和后续生成ISO镜像文件的命令genisoimage的参数-V有关。
最好是把所有hd:LABEL后面的值都替换为一个后面会用到的字符串,如CentOS7

修改自动化安装配置文件

第一次手动安装系统完成后,安装程序中的所有选择都会保存到名为 anaconda-ks.cfg 的文件中,该文件位于所安装系统的 /root/ 目录下。然后可以复制这个文件,根据需要进行修改,并在以后的安装中使用得到的配置文件。

在%packages与%end中间加入需要自定义安装的包组

#安装所需要的软件包,把自定义的安装包添加进去即可在安装系统时自定义的软件
%packages
@^web-server-environment
@base
@core
@java-platform
@python-web
@web-server
kexec-tools
@{自定义包组的groupid}
%end

自定义包组的 groupid 就是定义在 /repodata/comps.xml 文件中的 group

制作修改comps文件<

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫步旅人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值