一 ISO定制项清单

  1. 安装系统为centos6.5 (base server),安装方式为全新安装

  2. 使用ext4分区格式

  3. 安装前可以交互输入root密码,主机名,swap分区大小,之后安装过程自动化

  4. 关闭防火墙,selinux

  5. 网络为dhcp方式获取

  6. 时区为Asia/Shanghai

  7. 分区表类型为mbr

  8. 默认设置三个分区,boot分区200M,swap分区由用户指定,其余为根分区

  9. 更改软件包安装背景为自定义logo,更改欢迎信息

二 安装步骤

1、安装制作系统镜像所需要的工具

yum -y install anaconda repodata createrepo mkisofs rsync

2、创建光盘挂载目录、资源重构目录、自定义数据库目录

mkdir /mnt/cdrom (挂载光盘)
mkdir /data/ISO (ISO目录)
mkdir /data/ISO/mydata (需要封装的数据)

3、挂载CentOS系统光盘

mount -o loop /data/iso/CentOS-6.4-x86_64-bin-DVD1.iso /mnt/cdrom

4、拷贝定制ISO光盘所需的数据和文件

rsync -a --exclude=Packages/ /mnt/cdrom/ /data/ISO/ #--exclude=Packages/排除此目录
rm -fr /data/ISO/repodata
mkdir -p /data/ISO/{Packages,repodata} #创建yum仓库,软件包存放位置

5、拷贝定制的的软件包到ISO重构目录(/data/ISO/Packages)

#!/bin/bash
cd /root
awk '/Installing/{print $2}' install.log | sed 's/^*://g' > package.txt
PACKAGES='/mnt/cdrom/Packages'
PACKDIR='/root/package.txt'
NEW_PACKAGES='/data/ISO/Packages'
while read LINE
do
cp ${PACKAGES}/${LINE}.rpm /${NEW_PACKAGES} || echo "$LINE don't cp......."
done < package.txt
rm -f package.txt

6、创建自响应文件 ks.cfg ,把此文件放在/data/ISO/isolinux/ks.cfg

#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use CDROM installation media
cdrom
#interactive
# Root password
#rootpw --plaintext
# System authorization information
auth --useshadow --passalgo=sha512
# Use text mode install
#text
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --disabled
network --onboot=yes --device=eth0 --bootproto=dhcp --noipv6
# Do not configure the X Window System
skipx
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone --isUtc Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
#part /boot --fstype="ext4" --size=
#part swap --fstype="swap" --size=
#part / --fstype="ext4" --grow --size=
%include /tmp/mydata.txt
%packages
@base
@console-internet
@core
@debugging
@directory-client
@hardware-monitoring
@java-platform
@large-systems
@network-file-system-client
@performance
@perl-runtime
@server-platform
@server-policy
@workstation-policy
pax
oddjob
sgpio
device-mapper-persistent-data
samba-winbind
certmonger
pam_krb5
krb5-workstation
perl-DBD-SQLite
%end
%pre
#!/bin/bash
exec < /dev/tty6 > /dev/tty6
chvt
clear
echo "######################################################################"
echo " Welcome to xxx OS , before install, we will set something"
echo "######################################################################"
echo -n "Please entrer the hostname:"
read hostn
hostname $hostn
echo -e "NETWORKING=yes\nHOSTNAME=$hostn" > /etc/sysconfig/network
echo -e "\n"
echo -n "Please input the root passwd:"
read -s Passwd
echo "rootpw --plaintext $Passwd" >> /tmp/mydata.txt
echo -e "\n"
echo -n "Please input the swap size(M):"
read Size
echo -e "part /boot --fstype="ext4" --size=200\npart swap --fstype="swap" --size=${Size}\npart / --fstype="ext4" --grow --size=1" >> /tmp/mydata.txt
exec < /dev/tty1 > /dev/tty1
chvt
%end

7、修改启动安装导向文件/data/ISO/isolinux/isolinux.cfg,下面为修改后内容

default vesamenu.c32
#prompt
timeout ##等待时间
display boot.msg
menu background splash.jpg
menu title Welcome to use CentOS 6.4!
menu color border #ffffffff #
menu color sel #ffffffff #ff000000
menu color title #ffffffff #
menu color tabmsg #ffffffff #
menu color unsel #ffffffff #
menu color hotsel #ff000000 #ffffffff
menu color hotkey #ffffffff #ff000000
menu color scrollbar #ffffffff #
label linux #用ks.cfg自响应方式安装
menu label ^Install PowerSoft OS
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 -

8、创建软件仓库

cd /data/ISO
declare -x discinfo=$(head - .discinfo)
cp /mnt/cdrom/repodata/*-c6-x86_64-comps.xml repodata/c6-x86_64-comps.xml
createrepo -g repodata/c6-x86_64-comps.xml ./

9.修改光盘背景,文字等信息

9.1修改系统自动安装过程中显示的背景图片.修改光盘背景,文字等信息
#进入光盘images目录
cd /data/ISO/images/
#install.img镜像中包含了光盘安装过程中使用到的背景图片,挂载此img文件
mount -o loop -t squashfs install.img /mnt/install
mkdir tmp
#挂载的install.img不能编辑,需要拷贝一份,修改后替换原install.img文件
rsync -av /mnt/install/ tmp/
#进入背景图片所在目录,选择需要修改的图片,并替换(主机图片尺寸,格式需要与原来的相同),图片位置为:tmp/install/usr/share/anaconda/pixmaps
#重新创建新的install.img
mksquashfs tmp/ install_v1.img -all-root
#替换install.img
cp tmp/install_v1.img install.img
9.2 修改安装过程中的欢迎语
mkdir /data/ISO/isolinux/tmp
#解压initrd.img镜像
xz -dc ../initrd.img | cpio -id
#修改欢迎语.buildstamp文件,把其中的CentOS替换为PowerSoft
vim .buildstamp
#创建新的initrd.img并替换
find . | cpio -c -o | xz - --format=lzma > ../initrd.img

10、重构系统,生成ISO镜像

mkisofs -o CentOS-.5_64.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size  -boot-info-table -R -J -v -T ISO/

11、用生成的ISO刻录光盘进行安装测试

virt-install -n centos6 -r  -c CentOS-.6_64.iso --disk path=centos6_v1.qcow2,device=disk,bus=virtio,size=,format=qcow2 --vnc --vncport= --vnclisten=0.0.0.0 -v

#这里使用KVM虚拟化测试ISO文件

12 ks.cfg文件解析

#更多ks.cfg配置选项,参考redhat文档:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-kickstart2-options.html

#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
#关闭防火墙
firewall --disabled #install表示为全新安装系统
install #使用的安装源为光盘
cdrom #打开此选项,使用ks.cfg中的选项作为默认配置,但是允许用户手动修改每一项配置,用户需要手动点击下一步
#interactive #设置root密码
#rootpw --plaintext #设置系统认证信息
auth --useshadow --passalgo=sha512 #打开此选项,表示安装过程使用纯文本模式,没有此选项为图形安装界面
#text #键盘类型
keyboard us #系统语言
lang en_US #关闭selinux
selinux --disabled #配置eth0网卡开机启动,使用dhcp获取IP信息,禁用ipv6
network --onboot=yes --device=eth0 --bootproto=dhcp --noipv6 #不配置x window
skipx #设置安装过程中的错误记录等级为info
logging --level=info #安装完成之后,重启系统(注:使用kvm虚拟机测试制作的ISO镜像时发现,安装完成之后是关机,不能重启)
reboot #系统时区
timezone --isUtc Asia/Shanghai #分区表类型为mbr
bootloader --location=mbr #清楚主机原有mbr分区信息
zerombr #初始化系统所有分区,执行全新安装
clearpart --all --initlabel #指定分区方式,boot分区200M,swap分区16G,其余全为主分区
#part /boot --fstype="ext4" --size=
#part swap --fstype="swap" --size=
#part / --fstype="ext4" --grow --size= #加载额外的配置信息作为ks项
%include /tmp/mydata.txt #安装软件包(base server)
%packages
@base
@console-internet
@core
@debugging
@directory-client
@hardware-monitoring
@java-platform
@large-systems
@network-file-system-client
@performance
@perl-runtime
@server-platform
@server-policy
@workstation-policy
pax
oddjob
sgpio
device-mapper-persistent-data
samba-winbind
certmonger
pam_krb5
krb5-workstation
perl-DBD-SQLite
%end #安装前执行脚本
%pre
#!/bin/bash
#切换到终端6执行脚本,然后再切换会原终端1
exec < /dev/tty6 > /dev/tty6
chvt
clear
echo "######################################################################"
echo " Welcome to xxx
echo "######################################################################"
#设置主机名
echo -n "Please entrer the hostname:"
read hostn
hostname $hostn
echo -e "NETWORKING=yes\nHOSTNAME=$hostn" > /etc/sysconfig/network
echo -e "\n"
#设置root密码
echo -n "Please input the root passwd:"
read -s Passwd
echo "rootpw --plaintext $Passwd" >> /tmp/mydata.txt
echo -e "\n"
#设置swap分区大小
echo -n "Please input the swap size(M):"
read Size
echo -e "part /boot --fstype="ext4" --size=200\npart swap --fstype="swap" --size=${Size}\npart / --fstype="ext4" --grow --size=1" >> /tmp/mydata.txt
exec < /dev/tty1 > /dev/tty1
chvt
%end

定制centos6.5自动安装ISO光盘的更多相关文章

  1. CentOS 6.9 CentOS 7.4 自动安装系统 kickstart

    通过ks文件 实现 CentOS 6.9 & 7.4 自动安装系统 环境: VMware 14.0 Pro版 光盘镜像: CentOS-6.9-x86_64-minimal.iso ks文件生 ...

  2. 使用光盘iso实现Linux操作系统的自动安装部署

    前边写了一篇使用 PXE 的方式批量安装操作系统,不是任何时候任何地方都有环境来通过 PXE 方式来进行安装.如果此时需要通过光盘安装,默认的情况下是通过交互式方式进行安装,其实也可以通过 kicks ...

  3. CentOS 6.4一键自动化安装ISO镜像光盘

    下载CentOS-6.4-x86_64-minimal.iso 1 http://mirrors.163.com/centos/6.4/isos/x86_64/CentOS-6.4-x86_64-mi ...

  4. 定制centos安装iso

    参考 https://gist.github.com/pauljeff/4b9ad551cb6c35870d7c https://www.redhat.com/archives/kickstart-l ...

  5. U盘安装centos6.4:缺少iso 9660映像

    方法: 1.下载安装的ISO文件    到www.centos.org网站下载对应的Centos 6.4安装文件.下载站点我一般选择网易镜像站点    64位下载参考链接:http://mirrors ...

  6. CentOS6.x/6.5/6.4/6.3/6.2/7.x 64位安装php5.2(使用YUM自动安装)

    默认情况下,CentOS6 64 bit 已经早已不支持php5.2.x ,但是某些php程序还需要zend optimizer支持,怎么办呢?目前大部分的yum repos 都已经不支持直接安装ph ...

  7. kickstart半自动安装centos系统与pxe自动安装centos系统

    一.kickstart半自动安装centos系统 关闭防火墙,关闭selinux,使用system-config-kickstart生成kickstart配置文件,启动xmanger-Passive ...

  8. cobbler无人值守自动安装

      无人值守安装(自动按定制的需求来批量安装linux系统) kickstart cobbler linux安装系统的方法: 1,光盘 把iso镜像刻录(windows下有类似nero这类软件)到光盘 ...

  9. 自动化运维之-PXE实现系统批量自动安装

    转自:https://www.linuxidc.com/Linux/2017-10/147379.htm 本节索引 需求分析 PXE简介 整体方案 服务选择 功能实现 安装调试 错误分析 总结 1 需 ...

随机推荐

  1. 常用OID(SNMP)

    系统参数(1.3.6.1.2.1.1) OID 描述 备注 请求方式 .1.3.6.1.2.1.1.1.0 获取系统基本信息 SysDesc GET .1.3.6.1.2.1.1.3.0 监控时间 s ...

  2. LeetCode_401. Binary Watch

    401. Binary Watch Easy A binary watch has 4 LEDs on the top which represent the hours (0-11), and th ...

  3. 关于css清除元素浮动的方法总结(overflow clear floatfix)

    在前两天的一个面试中考官问我web中清除浮动的一些css常用方法,我很轻松的答出了: 1.overflow:hidden 2.clear:both 3.floatfix类 然后问题就来了,考官接着问' ...

  4. ubuntu 搭建jdk1.8运行环境

    参照了:https://blog.csdn.net/smile_from_2015/article/details/80056297 首先下载linux对应的安装包 下载地址:http://www.o ...

  5. 老司机带大家领略MySQL中的乐观锁和悲观锁

    原文地址:https://cloud.tencent.com/developer/news/227982 为什么需要锁 在并发环境下,如果多个客户端访问同一条数据,此时就会产生数据不一致的问题,如何解 ...

  6. caffe windows10 vs2015 cuda8.0 ->vs2013

    http://blog.csdn.net/xjz18298268521/article/details/52190184 http://www.cnblogs.com/xuanyuyt/p/57269 ...

  7. 【OpenGL开发】关于GLEW扩展库

    GLEW是一个跨平台的C++扩展库,基于OpenGL图形接口.使用OpenGL的朋友都知道,window目前只支持OpenGL1.1的涵数,但 OpenGL现在都发展到2.0以上了,要使用这些Open ...

  8. 【JS】逻辑处理

    1.计算会员进度 const a = res.data.directCount(当前充值点券) / nextLevelData.map(item => item.direct_number(下一 ...

  9. Spark 基础操作

    1. Spark 基础 2. Spark Core 3. Spark SQL 4. Spark Streaming 5. Spark 内核机制 6. Spark 性能调优 1. Spark 基础 1. ...

  10. Hive 企业调优

    9.企业级调优 9.1 Fetch 抓取 Fetch 抓取:Hive 中对某些情况的查询可以不必使用 MapReduce 计算: hive.fetch.task.conversion:more 9.2 ...