文档章节

教你制作属于自己的CentOS 6.4一键自动化安装ISO镜像光盘

完美世界
 完美世界
发布于 2014/06/05 17:22
字数 1329
阅读 71
收藏 1
点赞 0
评论 1


和朋友今天正好聊到CentOS的自动化安装光盘制作问题,就顺便把自己之前的测试过程发出来。希望能够帮到大家。


直接发下自己之前做的时候的工作记录了,因为是工作中使用,添加了一些所需的软件包之类的东西,其实您也完全可以自由发挥,直接装完系统,一个优化好的LNMP等等众多软件都已经安装好了的系统也是完全可能的,想想网上的那些一键安装的ISO…

所以大家加油哦!后期我也会完善本篇文章的具体注释的。

下载CentOS-6.4-x86_64-minimal.iso

http://mirrors.163.com/centos/6.4/isos/x86_64/CentOS-6.4-x86_64-minimal.iso

定制步骤:

1、安装一个干净的操作系统.包括基本的系统和所需要的工具等.

比如:对于http,mysql等软件,建议使用编译的方式安装, 然后打包放进去,可以减少许多依赖包的麻烦.

2、安装系统后,收集系统已安装的软件包,使用脚本统一转存到一个目录中.

3、在安装光盘复制images镜像,从光盘启动centos安装所需的文件等.

4、定义自己的kickstart安装脚本.

5、按照之前转存的软件(rpm)包, 重新生成光盘的report信息.

6、打包生成ISO文件,及MD5效验码.

光盘结构介绍:

* isolinux目录存放光盘启动时的安装界面信息

* images目录包括了必要的启动映像文件

* CentOS目录存放安装软件包及信息

* .discinfo文件是安装价质的识别信息

安装时默认第一项是text自动安装,也可以选择第二项进行手动安装…

安装完成后的ISO:

IP地址:192.168.7.110

root密码:nopassword

操作过程记录:

(一)挂载光盘,使用脚本拷贝相关软件包到/ISO/Packages目录下

[root@CentOS  ~]# mkdir /mnt/cdrom

[root@CentOS  ~]# mount  /dev/cdrom  /mnt/cdrom

[root@CentOS~]# /usr/bin/rsync -a --exclude=Packages/ --exclude=repodata/ /mnt/cdrom/  /ISO/

[root@CentOS  ~]# mkdir -p /ISO/{Packages,repodata}

[root@CentOS  ~]# vi copy.sh

#!/bin/bash

cd /root

awk '/Installing/{print $2}' install.log | sed 's/^*://g' >package.txt

DVD='/mnt/cdrom/Packages'

PACKDIR='/root/package.txt'

NEW_DVD='/ISO/Packages'

while read LINE

do

cp ${DVD}/${LINE}*.rpm /${NEW_DVD} || echo "$LINE don't cp......."

done < package.txt

rm -f package.txt

[root@CentOS  ~]# chmod +x copy.sh

[root@CentOS  ~]# ./copy.sh

[root@CentOS  ~]# ll /ISO/Packages/ |wc -l

(二)定制kickstart安装脚本ks.cfg,并修改/ISO/isolinux/isolinux.cfg文件,默认isolinux.cfg的权限为444,只能读,无法修改

[root@CentOS  ~]# cd /ISO

[root@CentOS  ISO]# cp ~/anaconda-ks.cfg isolinux/ks.cfg

[root@CentOS  ISO]# vi  isolinux/ks.cfg

[root@CentOS  ISO]# chmod 644 isolinux/isolinux.cfg

[root@CentOS  ISO]# vi isolinux/isolinux.cfg

[root@CentOS  ISO]# chmod 444  isolinux/isolinux.cfg

(三)安装anaconda repodata createrepo mkisofs等工具,执行createrepo程序生成repodata下的comps.xml文件

[root@CentOS  ISO]# yum -y install anaconda repodata createrepo mkisofs rsync

[root@CentOS  ISO]# cp /mnt/cdrom/repodata/*-minimal-x86_64.xml  /ISO/repodata/minimal-x86_64.xml

[root@CentOS  ISO]# createrepo -g repodata/minimal-x86_64.xml ./

285/285 - Packages/audit-libs-2.2-2.el6.x86_64.rpm                       

Saving Primary metadata

Saving file lists metadata

Saving other metadata

[root@CentOS  ISO]# declare -x discinfo=`head -1 .discinfo`

[root@CentOS  ISO]# echo $discinfo

1341569670.539525

[root@CentOS  ISO]# createrepo -u "media://$discinfo" -g repodata/minimal-x86_64.xml .

285/285 - Packages/audit-libs-2.2-2.el6.x86_64.rpm                       

Saving Primary metadata

Saving file lists metadata

Saving other metadata

[root@CentOS  ISO]# ll repodata/

total 724

-rw-r--r--. 1 root root 266266 Jul 17 02:30 filelists.xml.gz

-rw-r--r--. 1 root root  11334 Jul 17 02:30 minimal-x86_64.xml

-rw-r--r--. 1 root root   1387 Jul 17 02:30 minimal-x86_64.xml.gz

-rw-r--r--. 1 root root 183083 Jul 17 02:30 other.xml.gz

-rw-r--r--. 1 root root 265795 Jul 17 02:30 primary.xml.gz

-rw-r--r--. 1 root root   2125 Jul 17 02:30 repomd.xml

(四)使用mkisofs命令生成ISO文件

[root@CentOS  ISO]# mkisofs -o CentOS-6.4_64.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T /ISO/

I: -input-charset not specified, using utf-8 (detected in locale settings)

genisoimage 1.1.9 (Linux)

Scanning /ISO/

Scanning /ISO/EFI

Scanning /ISO/EFI/BOOT

Excluded: /ISO/EFI/BOOT/TRANS.TBL

Excluded: /ISO/EFI/TRANS.TBL

Scanning /ISO/repodata

Scanning /ISO/images

Excluded: /ISO/images/TRANS.TBL

Scanning /ISO/isolinux

Excluded: /ISO/isolinux/TRANS.TBL

Excluded by match: /ISO/isolinux/boot.cat

………………………………………….

98.05% done, estimate finish Tue Jul 17 02:43:01 2012

Total translation table size: 81205

Total rockridge attributes bytes: 35197

Total directory bytes: 59644

Path table size(bytes): 96

Done with: The File(s)                             Block(s)    203755

Writing:   Ending Padblock                         Start Block 203836

Done with: Ending Padblock                         Block(s)    150

Max brk space used 65000

203986 extents written (398 MB)

(五)生成ISO文件MD5值

[root@CentOS  ISO]# /usr/bin/implantisomd5 /ISO/CentOS-6.4_64.iso

Inserting md5sum into iso image...

md5 = 1355f3a08334162777e6ad867c448d2e

Inserting fragment md5sums into iso image...

fragmd5 = a832435cd7aeb593363287aa551476c9dd21be459aada4c29e9f3475da1e

frags = 20

Setting supported flag to 0

[root@CentOS  ISO]#

isolinux.cfg文件内容如下:

default vesamenu.c32

#prompt 1

timeout 100    ###10秒钟

display boot.msg

menu background splash.jpg

menu title Welcome to use CentOS 6.4!

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 ^Auto Install Xlogin Linux System

  menu default

  kernel vmlinuz

  append ks=cdrom:/isolinux/ks.cfg initrd=initrd.img   ###ks文件路径

label vesa

  menu label Install system with ^basic video driver

  kernel vmlinuz

  append initrd=initrd.img xdriver=vesa 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 -

以上是整个ISO的制作所有的操作过程,看起来绝对够简单吧!附件中是ks文件,希望这篇文章能够帮到你哦!

最后找个例如winscp之类的工具将ISO文件传输到本机,就可以刻盘安装了…

© 著作权归作者所有

共有 人打赏支持
完美世界
粉丝 10
博文 149
码字总数 134011
作品 0
西城
高级程序员
加载中

评论(1)

曹梦龙
曹梦龙
牛!
运维系统自动化安装

实验1:制作启动iso迷你版,yum源依赖网络 1.创建引导光盘,复制光盘下的isolinux文件夹到指定的刻录光盘的目录下 cp -r /misc/cd/isolinux/ /app/iso 2.编辑菜单项isolinux.cfg加上一个图形化...

疯帽爱丽丝 ⋅ 2017/10/10 ⋅ 0

企业私有云应用之使用OZ制作openstack镜像

最近工作忙,好久没写博客,现在正好有空介绍一下我这里使用私有云的经验。 现在分享一下如何使用oz自动化制作openstack镜像,下面有我自己制作centos 6.4 6.5 6.7 7.2与ubuntu 12.04.5与14....

dl528888 ⋅ 2016/10/17 ⋅ 0

CentOS7 下PXE+kickstart自动化安装系统

一、实验环境 操作系统:CentOS Linux release 7(Core) 网卡地址:192.168.100.147/24 光盘镜像:CentOS-7-x86_64.iso 安装工具:kickstart + dhcp + tftp + ftp 二、准备工作 2.1 关闭防火墙...

ugali ⋅ 2017/08/22 ⋅ 0

U盘、移动硬盘引导启动安装linux系统【Centos 6.4 】

U盘、移动硬盘引导启动安装linux系统【Centos 6.4 】 U盘、移动硬盘引导启动安装linux系统【Centos 6.4 】( rhel基本相同) 本文案例是我安装32系统的,64位时U盘单个文件大于4G不能fat32格式...

yufulinux ⋅ 2014/05/09 ⋅ 0

U盘、移动硬盘引导启动安装linux系统【Centos 6.4 】

U盘、移动硬盘引导启动安装linux系统【Centos 6.4 】 U盘、移动硬盘引导启动安装linux系统【Centos 6.4 】( rhel基本相同) 本文案例是我安装32系统的,64位时U盘单个文件大于4G不能fat32格式...

yufulinux ⋅ 2014/05/09 ⋅ 0

suse11一键安装光盘制作

SLES11 一键安装光盘制作教程 第 1 页共 11 页 第 1 章 文档简介 AutoY ast 是 SuSE Linux 的自动安装工具。通过 AutoY ast ,在 DHCP 、 TFTP 、 PXE 服 务的支持下, 通过 FTP 、 NFS 等网...

一只菜菜鸟 ⋅ 2014/08/12 ⋅ 0

U盘移动硬盘引导启动安装linux系统Centos 6.4

U盘、移动硬盘引导启动安装linux系统【Centos 6.4 】 U盘、移动硬盘引导启动安装linux系统【Centos 6.4 】( rhel基本相同) 本文案例是我安装32系统的,64位时U盘单个文件大于4G不能fat32格式...

yufulinux ⋅ 2014/05/09 ⋅ 0

搭建yum仓库

1.1 导言 YUM英文全称是Yellow Dog Updater Modified。 YUM主要用于自动安装、升级rpm软件包,它能自动查找并解决rpm包之间的依赖关系。要成功的使用YUM工具安装更新软件或系统,就需要有一个...

陈发哥007 ⋅ 2017/05/30 ⋅ 0

分享DOS启动盘制作方法 轻松实现鼠标操作

DOS模式下安装操作系统,相信许多用户都尝试过,我们需要通过各种DOS命令来完成对系统进行安装,其实,你也许不知道,在DOS模式下也能支持鼠标操作,并且还能够进行诸如硬盘分区、系统备份与...

以后我知道 ⋅ 2015/04/16 ⋅ 2

RedHat Enterprise Linux 6.0(32位)如何使用CentOS YUM...

由于 redhat的yum在线更新是收费的,如果没有注册的话不能使用,如果要使用,需将redhat的yum卸载后,重启安装,再配置其他源,以下为详细过程: 1、删除redhat原有的yum rpm -aq|grep yum|...

0___0 ⋅ 2013/08/29 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

熊掌号收录比例对于网站原创数据排名的影响[图]

从去年下半年开始,我在写博客了,因为我觉得业余写写博客也还是很不错的,但是从2017年下半年开始,百度已经推出了原创保护功能和熊掌号平台,为此,我也提交了不少以前的老数据,而这些历史...

原创小博客 ⋅ 16分钟前 ⋅ 0

LVM讲解、磁盘故障小案例

LVM LVM就是动态卷管理,可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态对分区进行扩缩空间大小,安全快捷方便管理。 1.新建分区,更改类型为8e 即L...

蛋黄Yolks ⋅ 34分钟前 ⋅ 0

Hadoop Yarn调度器的选择和使用

一、引言 Yarn在Hadoop的生态系统中担任了资源管理和任务调度的角色。在讨论其构造器之前先简单了解一下Yarn的架构。 上图是Yarn的基本架构,其中ResourceManager是整个架构的核心组件,它负...

p柯西 ⋅ 45分钟前 ⋅ 0

uWSGI + Django @ Ubuntu

创建 Django App Project 创建后, 可以看到路径下有一个wsgi.py的问题 uWSGI运行 直接命令行运行 利用如下命令, 可直接访问 uwsgi --http :8080 --wsgi-file dj/wsgi.py 配置文件 & 运行 [u...

袁祾 ⋅ 今天 ⋅ 0

JVM堆的理解

在JVM中,我们经常提到的就是堆了,堆确实很重要,其实,除了堆之外,还有几个重要的模块,看下图: 大 多数情况下,我们并不需要关心JVM的底层,但是如果了解它的话,对于我们系统调优是非常...

不羁之后 ⋅ 昨天 ⋅ 0

推荐:并发情况下:Java HashMap 形成死循环的原因

在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历...

码代码的小司机 ⋅ 昨天 ⋅ 1

聊聊spring cloud gateway的RetryGatewayFilter

序 本文主要研究一下spring cloud gateway的RetryGatewayFilter GatewayAutoConfiguration spring-cloud-gateway-core-2.0.0.RC2-sources.jar!/org/springframework/cloud/gateway/config/G......

go4it ⋅ 昨天 ⋅ 0

创建新用户和授予MySQL中的权限教程

导读 MySQL是一个开源数据库管理软件,可帮助用户存储,组织和以后检索数据。 它有多种选项来授予特定用户在表和数据库中的细微的权限 - 本教程将简要介绍一些选项。 如何创建新用户 在MySQL...

问题终结者 ⋅ 昨天 ⋅ 0

android -------- 颜色的半透明效果配置

最近有朋友问我 Android 背景颜色的半透明效果配置,我网上看资料,总结了一下, 开发中也是常常遇到的,所以来写篇博客 常用的颜色值格式有: RGB ARGB RRGGBB AARRGGBB 这4种 透明度 透明度...

切切歆语 ⋅ 昨天 ⋅ 0

CentOS开机启动subversion

建立自启动脚本: vim /etc/init.d/subversion 输入如下内容: #!/bin/bash## subversion startup script for the server## chkconfig: 2345 90 10# description: start the subve......

随风而飘 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部