CentOS6.7定制化制作ISO

以CentOS 6.7-minimal为例。

欢迎大家转载,并保留原文出处。内容若有错误或补充,请联系:[email protected]

本文主要讲解如何在已有官方CentOS镜像文件的情况下对系统默认安装的RPM包进行剪裁,同时添加与公司业务相关的应用RPM包,生成一个定制版的ISO,确保每次系统安装后业务布署自动化和高度一致。

本文不对Linux内核进行任何剪裁和优化,不能带你装逼。

自动化部署文件

这个文件一般在你安装完CentOS后/root目录下生成,分别记录了你安装系统时的系统配置情况和安装了哪些软件包。我们在制作定制版ISO时可以直接使用这个文件,可以减轻一些工作量。当然你直接创建一个文本文件并编辑为下面内容也是可以的。

# vi /root/ks.cfg

# Kickstart file automatically generated by anaconda.

#version=DEVEL

install

cdrom

lang zh_CN.UTF-8

keyboard us

rootpw  --iscrypted $6$wkkHFjodgcq5lXPL$Y6rKvuAbZcxGT144.EDLv17Sz706nxUJvDw1ODUEh.B21ZFSvO5NXsW1jeKEu1jxr45Q5NlM9gt95vt9PSpCA0

firewall --service=ssh

authconfig --enableshadow --passalgo=sha512

selinux --disabled

timezone --utc Asia/Shanghai

#bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"

# The following is the partition information you requested

# Note that any partitions you deleted are not expressed

# here so unless you clear all partitions first, this is

# not guaranteed to work

network --hostname YueKeOS --onboot yes  --bootproto dhcp  --nameserver 223.5.5.5,223.6.6.6

%pre

%end

%packages --nobase

@core

%end

%post

%end

准备环境

# yum install createrepo mkisofs isomd5sum squashfs-tools

# mkdir /root/YueKeOS

[说明]:以后统一将”/root/YueKeOS”称为ISO制作目录。

# mount /dev/cdrom /media/

# cp -r /media/* /root/YueKeOS/

# cp  /media/.discinfo /root/YueKeOS/

# cp  /media/.treeinfo /root/YueKeOS/

# cp /root/anaconda-ks.cfg isolinux/ks.cfg

# chmod +w isolinux/isolinux.cfg

找到下面一行内容,在其后面加上一部分:

append initrd=initrd.img ks=cdrom:/isolinux/ks.cfg asknetwork

[说明]:斜体部分可选,代表是否在安装时对网络部分进行提示交互。

安装前运行自定义脚本

%pre表示系统安装前,此时ISO镜像文件被挂载到内存中Linux的/mnt/source

具体操作:暂无

安装后运行自定义脚本

%post 在系统安装后执行

--不带参数,其实就是在真实的操作系统里操作。

--nochroot 已安装的真实操作系统被挂载到内存虚拟操作系统中的/mnt/sysimage目录。这个参数的用途主要是配合%pre使用的。先将光盘里的文件copy到内存运行的虚拟操作系统,再从内存虚拟操作系统copy到已安装的真实操作操作。

%post --nochroot

mkdir /media

mount /dev/cdrom /media/

cp /media/test1.txt /mnt/sysimage/root/

%end

[说明]:上面命令实现了从ISO镜像中拷贝文本文件到安装好的真实操作系统中。

利用系统安装得到RPM包

简单地来讲,系统安装主要是将光驱作为本地YUM源。那么只要找到第一次安装到底安装了哪些RPM包,则这些RPM包完全满足YUM源,不存在任何依赖关系破损。

而centos系统安装完成后生成的/root/install.log。这个文件记录的恰恰是系统安装时安装了哪些RPM包(不管是系统默认还是用户自定义勾选的)。我们可以从光驱里拷贝对应的RPM包到ISO制作工作目录里的Packages目录。

第一步:清空ISO制作目录里的Packages和repodata俩个目录里的所有内容。并重新参照install.log从光驱里拷贝对应的RPM包。

# rm Packages/* repodata/* -rf

# awk ‘{print $2}‘  /root/install.log |xargs -i cp /media/Packages/{}.rpm /root/YueKeOS/Packages/

系统首次更新

官方ISO可能比较旧,安装后我们可能需要执行“yum upgrade”来升级。虽然这种更新不包括操作系统内核和跨越发行版本,但至少可以保证已安装的软件包升级到最新。

1、修改YUM配置文件。以确保YUM命令操作会保存RPM包

# /etc/yum.conf

keepcache=1 #1为保存 0为不保存,默认不保存

2、yum upgrade

3、拿到YUM命令下载到本机缓存库里的包,并拷贝到ISO制作目录里。

# mv /var/cache/yum/x86_64/6/updates/packages/* /root/YueKeOS/Packages

# mv /var/cache/yum/x86_64/6/base/packages/* /root/YueKeOS/Packages

4、删除旧的对应RPM包。当然也可以不用删除。我这里的测试结果是系统最终安装的版本是升级包的最新版本。

利用YUM来搜集RPM包

很多情况下,除了系统最少安装包外,我们还需要额外安装业务相关软件,比如常见的VIM、MySQL等。系统默认YUM安装MySQL才5.1,版本太旧了。我们需要让ISO集成更新的MySQL 5.6版本并默认安装。

1、修改YUM配置文件。以确保YUM命令操作会在本机保存下来RPM包

# /etc/yum.conf

keepcache=1 #1为保存 0为不保存,默认不保存

2、yum install vim

[说明]:从yum安装界面上显示信息,vim-enhanced才是完整的软件包名称

3、yum install mysql-community-server

搭建MySQL的Yum源,详见官网说明:

httpp://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

4、将所有此次安装的软件安装包和依赖包,全部转移到ISO制作目录的Packages目录。

创建光驱YUM仓库

1、准备资源库列表XML文件

# cp /media/repodata/*minimal-x86_64.xml /root/minimal-x86_64.xml

<comps>

<group>

<id>core</id>

<name>Core</name>

<description/>

<default>true</default>

<uservisible>false</uservisible>

<packagelist>

<packagereq type=‘mandatory‘>acl</packagereq>

<packagereq type=‘mandatory‘>xfsprogs</packagereq>

此处省略N行

<packagereq type=‘mandatory‘>vim-enhanced</packagereq>

<packagereq type=‘mandatory‘>mysql-community-server</packagereq>

</packagelist>

</group>

<category>

<id>core</id>

<name>Core</name>

<description>Minimal server packages set</description>

<display_order>60</display_order>

<grouplist>

<groupid>core</groupid>

</grouplist>

</category>

</comps>

[说明1]:让我们来打量一下XML文件,它接下来将被“reaterepo -g参数”这种形式来引用的。它的作用就是在生成YUM仓库后将RPM列表归为几个group。哪些group id可以安装由ks.cfg来指定。我们在网上看到一些关于创建本地YUM源并没有这个配置文件,是因为创建本地YUM源根本不需要。

[说明2]:经过实际测试,只需要在资源库列表中列出你要安装的软件包完整名称即可,其依赖包可以不用列出。当然你也可以创建新的group id给自己的业务定制包,也可以按照YUM的安装顺序将依赖包列入资源库列表中。

3、重新生成repo

# declare -x discinfo=$(head -1 /root/YueKeOS/.discinfo)

# createrepo -u "media://$discinfo" -g /root/minimal-x86_64.xml /root/YueKeOS/

[说明]:.discinfo隐藏文件里的第一行数字为光盘介质编号,可以随便编写。并制作repo时必须要引用它。

自己制作RPM包

暂无

其它修饰

isolinux.cfg

光盘启动时安装选项菜单。修改背景图

# mount -o loop images/install.img /mnt/

[说明:挂载后可以浏览,但无法修改。需要将里面的全部文件拷贝到另外一个临时目录。待修改完成后再制作成install.img文件。假设这个临时目录名为“install-image”

# mksquashfs install-image/ /root/install.img -all-root -noF

光盘安装软件包进度时上方背景图

制作ISO

# cd /root

#
mkisofs -o YueKeOS-6.7.1_64.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/YueKeOS/

[说明]:mkisofs实际上是链接genisoimage命令

# implantisomd5 YueKeOS-6.7.1_64.iso

时间: 2024-10-27 09:54:37

CentOS6.7定制化制作ISO的相关文章

Ubuntu定制化系统ISO制作

一.安装工具 apt-get install squashfs-toolsapt-get install mkisofs二.挂载并解压系统ISO文件 在opt目录下进行操作cd /opt/mkdir mnt livecd tool 上传要定制化的系统ISO到 /opt/tool/ 挂载ISO镜像到 /opt/mnt/下mount /opt/tool/ubuntu-16.04.2-server-amd64.iso /opt/mnt/ 复制所有的镜像文件到/opt/livecd/下cp -rp /o

大数据平台一键安装OS【定制化OS镜像制作】

 定制化 大数据平台一键安装OS 大数据平台一键安装OS系列 大数据平台一键安装OS[搭建脚本篇] 定制化OS镜像制作 1.操作环境 操作环境:VMware Workstarion 9 and vSphere client 系统:CentOS -6.8-x86_64 工具:gconf-editor anaconda repodata createrepo mkisofs rsync 2.主要思路 定制化是通过kickstart脚本来实现的,linux系统安装完毕后在root目录下会生成anaco

linux 制作iso文件

1 概述 为了日常工作方便,我们可以自己制作iso文件,方便后期的使用 2 操作 2.1.cp直接制作 格式如下 cp  光盘路径  新生成的iso文件路径 例子 cp /dev/sr0  ./tt1/CentOS6.iso 这样的方式相当于是刻录磁盘,生成的文件CentOS6.iso 可以做启动盘 2.2 借助脚本mkdvdiso.sh来制作 以下是mkdvdiso.sh这个脚本下载路径.这个脚本只能是centOS4,5,6,三个版本可以制作 https://wiki.centos.org/T

【Linux】CentOS6.X最小化安装后配置

1.centos6.5最小化安装后启动网卡2.ifconfig查询IP进行SSH链接3.更新系统源并且升级系统4.系统时间更新和设定定时任5.修改ip地址.网关.主机名.DNS6.关闭selinux,清空iptables7.创建普通用户并进行sudo授权管理8.修改SSH端口号和屏蔽root账号远程登陆9.锁定关键文件系统(禁止非授权用户获得权限)10.精简开机自启动服务11.调整系统文件描述符大小12.设置系统字符集13.清理登陆的时候显示的系统及内核版本14.内核参数优化15.定时清理/va

jquery-ui-datepicker定制化,汉化,因手机布局美观化源码修改

感谢浏览,欢迎交流=.= 公司微信网页需要使用日历控件,想到jquery-mobile,但是css影响页面布局,放弃后使用jquery-ui-datepicker. 话不多说,进入正题: 1.jqueryui官网定制化下载jquery-ui. 只取其core+datepicker 则仅需40kb,欣喜一番,因为之前想用dialog功能,发现定制下来150多kb,太奢侈了. 2.汉化代码 (function () { $.datepicker.regional['zh-CN'] = { clear

企业是否需要定制化ERP系统?

数据统计,大部分顾问认为在现代企业资源规划系统中已经找到了定制化功能了.于是,大量的用户想到了定制化所提供了一些功能和好处. 在这个追求个性化的时代下,人人都在追求不别一个不一样的东西:不能撞衫,不能撞包,甚至是不能撞脸,在这种大背景下企业ERP管理是否也在企求个性化,定制化呢?但与个人的追求相反,现今市场上供应商努力在创造一个可以适合所有行业,所有企业的解决方案.那么企业究竟是否需要一个定制化的解决方案? 数据统计,大部分顾问认为在现代企业资源规划系统中已经找到了定制化功能了.于是,大量的用户

#openstack centos6 centos7 kvm镜像制作

#openstack centos6 centos7 kvm 镜像制作 openstack pike 集群高可用  安装部署 汇总 http://www.cnblogs.com/elvi/p/7613861.html #openstack centos6 centos7 镜像制作 #################################### #KVM环境 yum install -y kvm virt-* libvirt bridge-utils qemu-img qemu-kvm-

cobbler定制化安装Centos7.2操作系统

一.定制Centos_7_x86_64.ks文件内容 # Cobbler for Kickstart Configurator for CentOS 7.2.1511 by Wolf_Dreams # Install OS instead of upgrade install # Use network installation(The starting "$" variables are all values in the call configuration file) url -

Linux系统——搭建FTP方式的本地定制化Yum仓库

(1)搭建公网源yum仓库 安装wget aliyun源 # wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo 163源 # wget -O /etc/yum.repos.d/163.repo http://mirrors.163.com/.help/CentOS6-Base-163.repo 2)开启yum仓库配置文件 /etc/yum.conf的keepcache功能 将keepcach