Centos制作自己的ISO,可定制软件包

1.目标

>> 基于CentOS-6.10-x86_64-minimal.iso进行定制,选它是因为包比较小
>> 以text方式安装,安装过程尽量无需用户参与
>> 固定root密码,并创建好内置用户与权限
>> 隐藏与CentOS相关的信息,更换为自己的产品名称
>> 携带自己的软件,如jre环境等

2.环境准备

>> 下载CentOS6.10,地址:http://mirrors.aliyun.com/centos/6.10/isos/x86_64/CentOS-6.10-x86_64-minimal.iso
>> 准备linux环境,建议直接使用要定制的基础iso安装
>> 以root登录系统,配置好网络
>> 通过yum安装必备组件

yum install anaconda createrepo mkisofs rpm-build

>> 上传iso到/root,并挂载到/mnt/src,之后拷贝所有文件到工作目录下,注意包含两个隐藏文件.diskinfo和.treeinfo

mkdir /mnt/src
mount -o loop /root/CentOS-6.9-x86_64-minimal.iso /mnt/src
#mount -o loop /root/Centos65_RC07.iso /mnt/src/
mkdir /root/iso
cp -r /mnt/src/. /root/iso

3.修改欢迎界面

3.1.修改背景图

原始界面为:

替换界面需要修改/root/iso/isolinux/splash.jpg,替换为需要的图片,保持文件名不变,图片大小640x480。

3.2.修改产品名与选项

修改/root/iso/isolinux/isolinux.cfg,原始内容为: 

default vesamenu.c32
#prompt 1
timeout 600

display boot.msg

menu background splash.jpg
menu title Welcome to CentOS 6.10!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000

label linux
  menu label ^Install or upgrade an existing system
  menu default
  kernel vmlinuz
  append initrd=initrd.img
label vesa
  menu label Install system with ^basic video driver
  kernel vmlinuz
  append initrd=initrd.img nomodeset
label rescue
  menu label ^Rescue installed system
  kernel vmlinuz
  append initrd=initrd.img rescue
label local
  menu label Boot from ^local drive
  localboot 0xffff
label memtest86
  menu label ^Memory test
  kernel memtest
  append -

修改为:

default vesamenu.c32
#prompt 1
timeout 150

display boot.msg

menu background splash.jpg
menu title Welcome to RVS 3.0!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000

label linux
  menu label ^Install RVS 3.0
  menu default
  kernel vmlinuz
  append ks=cdrom:/isolinux/ks.cfg initrd=initrd.img
label local
  menu label ^Boot from local drive
  localboot 0xffff

做了以下几处调整:

  • 修改timeout,默认超时是60秒,改为15秒,即15秒内不做选择默认执行菜单中的default项
  • 修改memu title行,可以定制欢迎标题
  • 去掉部分菜单项,只保留安装(label linux)和从硬盘启动(label local)这两项
  • 调整了label linux项的文字,同时调整了append项,增加了对kickstart的支持,指定ks.cfg位置,此配置用于自动安装,后面会涉及

4.修改安装过程

4.1.调整安装界面名称

安装界面左上角会显示产品名称,原始界面如下:

想更换CentOS为自定义名称,需要调整/root/iso/isolinux/initrd.img:

>> 解开initrd.img到工作目录

mkdir /root/initrd
cd /root/initrd
xz -dc /root/iso/isolinux/initrd.img | cpio -id

>> 修改.buildstamp文件,原始内容为:

201806291108.x86_64
CentOS
6.10
FINAL=YES
http://bugs.centos.org/

修改为:

201806291108.x86_64
RVS
3.0
FINAL=YES
http://www.your-company.com.cn/

>> 重新压缩img文件,并覆盖工作目录下的原文件,然后清理

cd /root/initrd
find . | cpio -c -o | xz -9 --format=lzma > /root/initrd.img
cp /root/initrd.img /root/iso/isolinux/initrd.img
cd /root
rm –rf /root/initrd
rm -rf /root/initrd.img

4.2.定制自动安装参数

定制自动安装参数需要依赖kickstart,生成/root/iso/isolinux/ks.cfg,填写内容为(#为注释行,不需要): 

#全新安装,使用cdrom作为安装源
install
cdrom
#使用text模式而不要用图形模式安装
text
#设置键盘与语言
keyboard us
lang en_US.UTF-8
#设置root密码与认证加密方式,此处设置root密码为PASSWD1!
rootpw --iscrypted $6$rUp4SXGKaN7Z.eix$/6tp2c9zsSwN8a2a.TmDcKHjhjAm.CFhlunvKZRqZAO.UQ8mrOT4Im/pCiL5d388VEEHMrhha0N3Q2BwqxHPV1
auth --useshadow --passalgo=sha512
#设置防火墙,放过ssh
firewall --service=ssh
#设置selinux
selinux --enforcing
#设置网络eth0,使用dhcp模式,设置hostname,不启用ipv6
network --onboot=yes --device=eth0 --bootproto=dhcp --hostname=rvs --noipv6
#不使用X Window
skipx
#安装完成后重启系统并弹出光驱
reboot --eject
#设置时区
timezone Asia/Shanghai
#设置启动引导参数
bootloader --location=mbr --driveorder=sda
#清除mbr
zerombr
#清除分区
clearpart --all --initlabel 

参数很多,可以参考以下文章:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/installation_guide/s1-kickstart2-options。或者如果你有图形界面,安装一个system-config-kickstart,可以进行图形化的参数设置。

root密码是以加密方式设置的,可以通过以下方法得到密文: python -c 'import crypt; print(crypt.crypt("PASSWD1!"))' 

4.3.添加自定义软件与脚本

以安装oracle server jre为例:

>> 在iso目录中创建软件存放目录,放入待安装的软件

mkdir /root/iso/soft
cp /root/server-jre-8u172-linux-x64.tar.gz /root/iso/soft

>> 修改ks.cfg,以末尾添加内容

%post
mkdir -p /media/cdrom
ln -s /dev/scd0 /dev/cdrom
mount -o loop /dev/cdrom /media/cdrom

tar -zxvf /media/cdrom/soft/server-jre-8u172-linux-x64.tar.gz -C /usr/local
echo "JAVA_HOME=/usr/local/jdk1.8.0_172" >> /etc/profile
echo "PATH=\$JAVA_HOME/bin:\$PATH" >> /etc/profile
echo "export JAVA_HOME PATH" >> /etc/profile
%end

%post
mkdir -p /media/cdrom
ln -s /dev/scd0 /dev/cdrom
mount -o loop /dev/cdrom /media/cdrom
rm -rf /etc/yum.repos.d/*
mv /media/cdrom/soft/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo
mv -f /media/cdrom/soft/* /tmp/
service iptables stop
chkconfig iptables off
sed -i "6s/.*/passwd: skd8999@wx/" /tmp/denglu
chmod 777 /tmp/install.sh
echo "/tmp/install.sh" >> /etc/rc.local
%end
 

%post表示安装完成后执行的脚本,这里首先挂载光驱,然后解压jre并设置环境变量。

5.修改产品名称

产品名称出现在启动界面以及登录前,想变更需要修改centos-release-6-10.el6.centos.12.3.x86_64.rpm,但此包无法直接修改,需要从源码包修改,步骤如下:

>> 下载源码包到/root,并解开

cd /root
wget http://vault.centos.org/6.10/os/Source/SPackages/centos-release-6-10.el6.centos.12.3.src.rpm
rpm2cpio /root/centos-release-6-10.el6.centos.12.3.src.rpm | cpio -id

>> 建立root用户的rpm环境,并将解压得到的文件放入

echo "%_topdir /root/rpmbuild" > /root/.rpmmacros
mkdir -pv /root/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
cp centos-release-6-10.tar.gz /root/rpmbuild/SOURCES
cp centos-release.spec /root/rpmbuild/SPECS

>> 修改centos-release.spec,分别找到%define product_family和%define full_release_version这两行,改为需要的值:

%define product_family RVS
%define full_release_version 3.0

  注意%define base_release_version这一行不要修改,否则会生成错误。

>> 重新生成rpm包,覆盖原始文件

cd /root/rpmbuild/SPECS
rpmbuild -bp centos-release.spec
rpmbuild -bc centos-release.spec
rpmbuild -bi centos-release.spec
rpmbuild -bb centos-release.spec
cp /root/rpmbuild/RPMS/x86_64/centos-release-6-10.el6.12.3.x86_64.rpm /root/iso/Packages/centos-release-6-10.el6.centos.12.3.x86_64.rpm

  执行每条命令时注意观察有无错误产生。

>> 更新repodata数据

cd /root/iso
declare -x discinfo=`head -1 .discinfo`
cp /root/iso/repodata/*-x86_64.xml /root/iso/comps.xml
rm –rf /root/iso/repodata
createrepo -u "media://$discinfo" -g comps.xml ./

 6.重新生成ISO

cd /root
mkisofs -o rvs-3.0.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T iso/ 

成功后会在/root目录下生成rvs-3.0.iso。

7.检验成果

使用VMware虚拟机安装,欢迎页面,已显示RVS 3.0,且菜单项只剩2项:

  

进入text模式,左上角显示产品名为RVS,安装过程中只需要选择磁盘,其它参数都不需要设置:

安装完成后自动重启,GRUB里及启动过程右下角已显示RVS 3.0:

启动完成,显示RVS release 3.0 (Final),以root登录,密码PASSWD1!,执行java命令可正常运行,查看IP已通过dhcp分配成功。

大家可以在此基础上添加更多个性化的内容,来生成自己专属的iso安装包。

如果对rpm包进行剪裁,需要重新生成repodata,但要注意的是rpm包之间有依赖,如果依赖关系出现问题,安装时会给出警告,可以继续,但完成后相应组件无法使用。

### 回答1: 在CentOS 7上制作一个集成数据库的ISO镜像可以通过以下步骤完成: 1. 安装CentOS 7操作系统:首先需要在一台计算机上安装CentOS 7操作系统。您可以从CentOS官方网站上下载CentOS 7的ISO安装文件,并将其写入一个可引导的USB驱动器或光盘。 2. 安装和配置数据库:选择您想要集成的数据库(如MySQL、PostgreSQL等)并按照它的官方文档进行安装和配置。 3. 创建定制的安装介质:使用镜像制作工具(如mkisofs命令),您可以将CentOS 7 ISO文件与安装过程中所需的数据库安装包和配置文件合并成一个定制ISO镜像。可以通过挂载CentOS 7 ISO文件,并将数据库安装包和配置文件复制到目标位置来开始制作。 4. 修改kickstart文件:在定制ISO镜像中,CentOS 7使用kickstart文件进行自动化安装。您可以修改kickstart文件以添加数据库的相关配置和参数。这将确保在安装过程中正确地安装和配置数据库。 5. 重新创建ISO镜像:在完成以上步骤后,使用镜像制作工具重新创建ISO镜像。确保将数据库安装包和配置文件正确地添加到ISO中,并将修改后的kickstart文件包含在其中。 6. 测试和验证:使用重新创建的ISO镜像在虚拟机或物理服务器上进行测试和验证。确保ISO可以成功启动并自动安装CentOS 7及其相关数据库。 7. 分发和使用:一旦验证通过,您可以在其他计算机上使用该ISO镜像进行集成数据库的安装。您可以通过共享网络文件夹、光盘或USB驱动器等方式将ISO镜像分发给其他用户。 这是一个基本的步骤,您可以根据实际情况和需求进行自定义和调整。以确保数据库配置和定制ISO镜像符合您的特定要求。 ### 回答2: 制作CentOS 7的ISO镜像并集成数据库,需要以下步骤: 1. 下载CentOS 7的ISO镜像文件,可以从CentOS的官方网站下载。 2. 安装一个虚拟机软件,比如VirtualBox,用于创建虚拟机进行操作。 3. 创建一个新的虚拟机,选择CentOS 7的ISO镜像文件作为安装源,进行安装。安装完成后,启动虚拟机。 4. 进入安装的CentOS 7系统,确保能够正常连接到互联网。 5. 在终端中执行以下命令,更新系统的软件包和依赖关系: ``` sudo yum update ``` 6. 安装要集成的数据库软件,比如MySQL或PostgreSQL,执行以下命令: ``` sudo yum install mysql-server ``` 7. 配置数据库软件,设置用户名和密码等必要的选项。 8. 修改数据库软件的配置文件,确保数据库可以被远程访问。具体的修改方式请参考数据库软件的文档。 9. 将修改后的配置文件和相关的数据库文件打包成一个压缩文件。 10. 使用ISO编辑工具,如ISOMaster,打开CentOS 7的ISO镜像文件。 11. 将压缩文件拖放到ISO镜像文件中,覆盖原有的数据库相关文件。 12. 保存ISO镜像文件,并退出ISO编辑工具。 15. 使用虚拟机软件创建一个新的虚拟机,选择刚才修改过的ISO镜像文件作为启动源。 16. 启动新的虚拟机,检查数据库是否正常运行,并测试远程访问数据库的功能。 完成以上步骤后,你就成功制作了一个集成了数据库的CentOS 7的ISO镜像。你可以通过该ISO镜像来安装CentOS 7,并自动集成了数据库软件。 ### 回答3: 要在CentOS 7上制作包含数据库的ISO镜像,可以按照以下步骤进行操作: 1. 下载并安装CentOS 7的ISO镜像文件。可从官方网站上下载。 2. 下载所需的数据库安装包,例如MySQL或PostgreSQL。 3. 创建一个工作目录,并将ISO镜像文件和数据库安装包文件复制到该目录中。 4. 使用mount命令将ISO镜像挂载到一个临时目录中。例如,若ISO镜像路径为 "~/centos7.iso",可以使用以下命令挂载: ``` sudo mount -o loop ~/centos7.iso /mnt/iso ``` 5. 使用cp命令将ISO镜像中的所有文件复制到工作目录中: ``` sudo cp -r /mnt/iso/* /path/to/workdir ``` 6. 解压数据库安装包,并将其复制到工作目录中: ``` tar -xzvf mysql-xxx.tar.gz sudo cp -r mysql-xxx /path/to/workdir ``` 7. 进入工作目录,编辑ks.cfg文件,该文件定义了安装过程中的配置参数。可以通过添加以下内容来集成数据库安装: ``` %packages @mysql-server ``` 如果使用的是PostgreSQL,应替换为: ``` %packages @postgresql ``` 8. 保存ks.cfg文件并退出。 9. 使用mkisofs命令重新生成ISO镜像文件: ``` sudo mkisofs -o ~/centos7_with_db.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T /path/to/workdir ``` 10. 等待ISO镜像文件生成完毕。 11. 卸载临时目录并删除工作目录: ``` sudo umount /mnt/iso sudo rm -rf /path/to/workdir ``` 12. 至此,一个包含数据库的CentOS 7 ISO镜像文件已经制作完成,并可用于安装集成了数据库的系统。 请注意,以上步骤仅是一个示例,具体的操作可能因所选数据库及操作系统版本而有所不同。请根据实际情况进行调整和修改。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值