centos7定制linux镜像,自定制Centos7.3系统镜像(ISO)
本文主要介绍如何根据官方的Centos镜像文件,在保留原有默认安装的RPM包的基础下,添加自己所需要的RPM包的,最终生成一个自定制版的ISO,节省了宝贵的时间并确保了安装的定制性。对于其他没有介绍的修改,后续在实践中会进行更新。
本文基于Centos7.3版本制作的ISO镜像,其他版本可能本文介绍的制作过程有所差别。
搭建基础环境
#yum install createrepo mkisofs isomd5sum squashfs-tools
#mkdir /root/PanISO
将/root/PanISO作为ISO的制作目录
#mount /dev/cdrom /media/
#cp -r /media/* /root/PanIOS/
#cp /media/.discinfo /root/PanIOS/
#cp /media/.treeinfo /root/PanIOS/
# chmod +w /root/PanISO/isolinux/isolinux.cfg
注意:如果你想用Centos7.3的ISO进行挂载也是可以的
#mount -o loop /root/CentOS-7-x86_64-DVD-1611.iso /mnt
修改isolinux.cfg文件,将“append initrd=initrd.img”后面的当前行内容删除,并加入“ks=cdrom:/isolinux/ks.cfg”。
menu color timeout_msg 0 #ffffffff #00000000none
# Command prompt text
menu color cmdmark0 #84b8ffff #00000000none
menu color cmdline0 #ffffffff #00000000none
# Do not display the actual menu unless the user presses a key. All thatis displayed isa timeout message.
menu tabmsg Press Tabforfull configuration options on menu items.
menu separator # insert an empty line
menu separator # insert an empty line
label linux
menu label^Install CentOS Linux 7kernel vmlinuz
append initrd=initrd.img ks=cdrom:/isolinux/ks.cfg
这步的作用是实现自动化安装,如果不加上就需要手动配置参数就行下一步安装了。
修改自动化安装配置文件
#cp /root/anaconda-ks.cfg /root/PanISO/isolinux/ks.cfg
本次制作iso用的是系统安装成功生成的默认的anaconda-ks.cfg文件,并未做修改,如果有需求可以自行修改。下面是我使用的示例,并稍加了一些文件配置说明(详细配置说明可以查找kickstart配置文件):
#version=DEVEL
# System authorization information
auth--enableshadow --passalgo=sha512
# Use CDROM installation media 从光驱安装
cdrom
# Use graphical install 图形化安装
graphical
# Run the Setup Agent on first boot
firstboot--enable
ignoredisk--only-use=sda
# Keyboard layouts 美式键盘
keyboard--vckeymap=us --xlayouts='us'# System language 美式英语
lang en_US.UTF-8# Network information 网卡配置
network--bootproto=dhcp --device=ens33 --onboot=off --ipv6=auto --no-activate
network--hostname=localhost.localdomain
# Root password root用户的密码
rootpw--iscrypted $6$Ok9Jcj51va/3x830$/6rLkpu8k2tPCmd7byUBE7wuRexmuoMzp0jAelDRYMAIk9yRL/84mCFrOTp5QYWJNVcEIB7wWgw8byp0r21vT0
# System services
services--disabled="chronyd"# System timezone 时区
timezone Asia/Shanghai --isUtc --nontp
user--name=pan --password=$6$ONSyoQ.S58OJpcnj$jUz6vDadzY5wZ39fr0dEONbI/iNIeVkpRMaUjz9ZJbIqQLPLKqq8ZJWRoDGjolLJfkwmw58Dp5xPhKufAca8y/ --iscrypted --gecos="pan"# System bootloader configuration
bootloader--append="crashkernel=auto" --location=mbr --boot-drive=sda
autopart--type=lvm
# Partition clearing information
clearpart--none --initlabel
%pre
%end
#安装包的信息%packages
@^minimal
@corekexec-tools%end
%post
%end
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end%anaconda
pwpolicy root--minlen=6 --minquality=50 --notstrict --nochanges --notempty
pwpolicy user--minlen=6 --minquality=50 --notstrict --nochanges --notempty
pwpolicy luks--minlen=6 --minquality=50 --notstrict --nochanges --notempty%end
%pre表示系统安装前,%post 表示在系统安装后执行,这样可以定制自己的自动化脚本
获取系统默认安装的RPM包和需要添加的RPM包
在使用Centos系统安装完成后会生成/root/install.log,该文件记录了系统安装时安装的RPM包信息。如果没有该文件,可以手动生成(新安装的干净系统):
#rpm -qa >> /root/install.log
清空ISO制作目录里的Packages和repodata两个目录里的所有内容,并根据install.log将所需安装包放入Packages文件夹内:
# awk '{print $2}' /root/install.log |xargs -i cp /media/Packages/{}.rpm /root/PanIOS/Packages/
注:如果是手动生成的install.log,将'{print $2}' 改为'{print $0}' 。
因为需要自定制iso,需要预安装其他的包,将解决好依赖关系的包全部放入/root/PanIOS/Packages/中:
多数情况下我们会根据yum来下载安装包,下面介绍两种获取下载安装包的方法:
1.修改yum的配置文件,将yum下载的安装包保存起来
#vim /etc/yum.conf
修改keepcache=1 (1为保存,0为不保存,默认是0)
修改后使用yum安装的包会保存在“/var/cache/yum/”下。
2.通过yum指令的--downloadonly可以只下载安装包,不进行安装
#yum -y install --downloadonly --downloaddir=/root/test/
该指令我会将安装的包统一放在/root/test/目录下,yum update同样可以使用该方法,这样定制后的ISO中RPM包都是最新版本的。
修改comp.xml文件,定义RPM包组
.xml文件的写法如下:
组的ID,非数字
组的名字
组的描述
是否预安装,true或者falsedefault>
是否可见,true或者false
zh#仅在某个语系的安装界面中显示,可选项"依赖包" type="conditional">软件包1
"default">软件包2
"default">软件包3......分类的名字,非数字
将显示在左侧列表里
将显示在下面的描述栏里
组1的ID
组2的ID
简单来说,一个group中包含若干个RPM包,一个category则包含了若干个group,在安装系统的时候,在选择自定义安装的步骤中,左侧的是category,右侧是group。
1.group id我们可以在ks.cfg来指定
%packages
@^minimal
@corekexec-tools
示例中的@core就是一个组的名称,如果我们想添加指定的包组,就可以在ks.cfg文件中指定;
2.在group中的包含的RPM只需要填入完整包的名称即可,不需要把依赖也添加进去,只需要在Packages文件夹内将所需的依赖添加完整即可;
3.在group中添加完整包的名称是yum安装下显示的包名,比如vim,它的完整包的名称是vim-enhanced;
4.当然你也可以在Packages中保留完整的Centos系统的RPM包,将自定制的分类和组添加进去,这样在安装界面就可以发现我们自定义的category和group。
重新生成repo
#cd PanISO
#createrepo -g comps.xml .
注意:在CentOS下需要根据'.discinfo'来设置'baseurl'(declare -x discinfo=head -1 .discinfo; createrepo -u "media://$discinfo"...); 在CentOS7中不再需要如此做,实际上如果在CentOS7中执行了这个命令,在安装的过程中,可能会报错"RepoError after 10 retries: Insufficient space in download directory /run/install/repo/Packages"
在其他版本中可执行如下指令:
# declare -x discinfo=$(head -1 /root/PanIOS/.discinfo)
# createrepo -u "media://$discinfo" -g /root/minimal-x86_64.xml /root/PanIOS/
修改安装界面图标背景
以图标为例,其他操作类似
将安装界面左上角的该图标换为
解压
# unsquashfs /root/PanISO/LiveOS/squashfs.img
把解压后的文件进行挂载,然后操作
#mount -o loop,rw squashfs-root/LiveOS/rootfs.img /media
/media/usr/share/anaconda/pixmaps/sidebar-logo.png为该安装界面的图标,只需根据自己的需要替换即可,分辨率要跟原图保持基本一致,要不会出现图标过大的情况
将解压后的文件重新打包
#mksquashfs squashfs-root/ squashfs.img
并将生成的squashfs.img替换原来的squashfs.img
制作ISO
#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/PanIOS/
#implantisomd5 Pan-7.3.iso
参考:https://www.cnblogs.com/flintlovesam/p/6605788.html
centos7定制linux镜像,自定制Centos7.3系统镜像(ISO)相关推荐
- 云服务器系统镜像选什么,云服务器系统镜像选什么用
云服务器系统镜像选什么用 内容精选 换一换 欢迎使用镜像服务(Image Management Service,IMS).镜像是用于创建服务器或磁盘的模板,镜像服务提供镜像生命周期管理能力.可以通过服 ...
- 云服务器系统镜像选什么,云服务器系统镜像选什么
云服务器系统镜像选什么 内容精选 换一换 本指南以Windows操作系统为例,指导您通过云服务器创建Windows系统盘镜像. 使用已有的云服务器备份制作整机镜像,可用于将云服务器备份创建为新的弹性云 ...
- 对计算机进行重镜像错误,Windows 10 使用系统镜像恢复系统出现内部错误?
您好! 我在对计算机进行重镜像的时候遇到内部错误,STATUS_WAIT_2(0x80070002) . 我的操作流程是: Windows 设置 -> 升级和安全 -> 恢复 -> ...
- 使用再生龙制作linux系统镜像及还原
因为要便于生产的原因,需要制作母盘,这做一个记录 使用再生龙制作linux系统镜像 使用再生龙还原系统镜像 tuxboot-0.6.exe
- Cobbler自动装机(装机步骤,优化内容详解,导入系统镜像步骤,cobbler-web管理认证方式)
文章目录 前言 一:环境设置与安装 步骤 1.1:环境设置 1.2:安装信息库软件包 1.3:安装Cobbler环境 1.4:安装步骤 1.4.1:大致方向 1.4.2:cobbler工具配置(有工具 ...
- 服务器系统镜像需要什么格式,常见的系统镜像格式
常见的系统镜像格式 内容精选 换一换 华为云目前支持如下公共镜像类型:Windows.CentOS.Debian.openSUSE.Fedora.Ubuntu.EulerOS.CoreOS,您可以在管 ...
- 学计算机的什么是镜像,一、什么是windows镜像?什么是Ghost?它们有什么优缺点?...
原标题:一.什么是windows镜像?什么是Ghost?它们有什么优缺点? 大家好,欢迎回到万魔寺,从本期开始,从零开始学习安装操windows的教程就开始了, 这期,首先分享的是--零基础扫盲知识. ...
- 学计算机的什么是镜像,系统镜像文件是什么 什么叫系统镜像文件
相信大家在阅读系统安装教程时经常会看到"系统镜像文件"这个词,那么系统镜像文件是什么意思呢?有许多用户,特别是刚接触电脑的新手不知道什么叫系统镜像文件,所以接下来就跟大家讲解系统镜 ...
- 基于Centos7定制自己的系统镜像
基于官方方的1708mini版本定制自己的系统镜像. 1,环境准备 1.1,下载系统镜像. 1.2,建议自己的工作目录 mkdir -p /cloud/iso/centos7.2 并把镜像所有文件拷贝 ...
- 定制属于自己的自动化安装的linux系统镜像
使用软件和平台 1.基于平台: Vmware workstation 8.0 2.基于系统镜像: rhel-server-5.8-i386-dvd.iso 3.ISO编辑软件: UltraISO 4. ...
最新文章
- oracle数据库按照城市分组_大数据分组怎样才会更快
- Gym迎来首个完整环境文档,强化学习入门更加简单!
- springaop事务逻辑原理_太狠了!阿里大牛手写的Spring核心面试笔记:IOC+AOP+MVC+事务...
- 大数据虚拟化零起点-4基础运维第三步-部署vCenter Server Virtual Appliance 5.1
- Linux系统资源查询命令(cpu、io、mem)
- jdk1.8 mysql_Centos 7配置JDK1.8+MySQL5.7+Tomcat 8 开发环境
- mysql变量赋值加冒号_C语言变量声明加冒号的用法(占位符)
- Enterprise Suse运维
- paip.hadoop的应用研究总结
- WebView·开车指南
- linux查看trunk信息,linux网卡启用trunk模式操作标准.docx
- mac数字键盘错乱_苹果笔记本数字键盘打不出数字怎么办_苹果笔记本按不出数字如何解决-win7之家...
- Udacity数据分析(进阶)-Prosper 贷款数据分析
- 雪球 feed流爬虫
- CES 2020最佳科技产品官方入围名单!三星笑了
- md文件如何编辑和转换(不依赖插件Markdown Viewer)
- java 月份缩写_Java常用日期、时间格式化转换符
- cdn加速以及前后分离SpringBoot+Vue 配置https及SSL证书
- 程序员必备的17个软件开发工具,你常用的有几个?
- 哪些飞机机型是安全、可信赖的
热门文章
- etl工程师 面试题_数据仓库工程师面试题笔试.doc
- 主动断开socket链接_TCP连接与断开详解(socket通信)
- zblog php和asp功能,ZBlog是否适合PHP或ASP?我们该如何选择?
- python批量跑plsql_python实现自动化报表(Oracle/plsql/Excel/多线程)
- atlas安装需要kafka吗_Atlas 2.1.0 实践(2)—— 安装Atlas
- JDK源码解析之 Java.lang.Package
- 移动站应该尝试百度MIP的五个原因
- Give Candies【快速幂+欧拉】
- 微软发布Azure Storage不可变存储功能的正式版本
- Citrix Netscaler版本管理和选择