当前位置: > CentOS > CentOS入门 >

定制centos 6.5自动安装光盘

时间:2015-04-15 22:02来源:51cto.com 作者:51cto.com
一、制作环境准备
实验环境:
VMware Workstation
CentOS-6.5-x86_64-minimal 最小化安装
安装后,我们会使用系统 /root 目录下 install.log 和 anaconda-ks.cfg 这两个文件(在此基础上修改比较方便)
1.光盘目录结构
*isolinux 目录存放光盘启动时的安装界面信息
*images 目录包括了必要的启动映像文件
*Packages 目录存放安装软件包及信息
*.discinfo 文件是安装价质的识别信息
MediaCentOS 目录存放媒体中心安装包
Repodata 目录存放rpm包依赖信息
5.x 系列, boot.iso 存在于 images/ 这个目录
6.x 系列, 存放于 /isolinux 目录下
6.x 网络安装需要在官网下载:netinstall.iso 镜像文件
2. 定制步骤
(1)安装最小化的操作系统.包括基本的系统和所需要的工具等(我这先实现最小化自动安装)
比如:对于http,mysql等软件,建议使用编译的方式安装, 然后打包放进去,可以减少许多依赖包的麻烦.
(2)安装系统后,收集系统已安装的软件包,使用脚本统一转存到一个目录中.
(3)在安装光盘复制images镜像,从光盘启动centos安装所需的文件等.
(4)定义自己的kickstart安装脚本.
(5)按照之前转存的软件(rpm)包, 重新生成光盘的repodata信息.
(6)打包生成ISO文件,及MD5效验码.
二、操作过程记录:
1、安装所需工具包
       1 #  yum -y install anaconda repodata createrepo mkisofs rsync

2、 挂载并拷贝文件
目录规划:
挂载目录为: /mnt
定制光盘文件目录: /root/iso
[root@linuxidc ~]# pwd
/root
[root@linuxidc ~]# mkdir iso                            # 建立iso文件制作目录
[root@linuxidc ~]# mkdir -p  ./iso/{Packages,repodata}  # 建立软件包目录和repodata目录 
[root@linuxidc ~]# mount /dev/cdrom /mnt                # 挂载 DVD
mount: block device /dev/sr0 is write-protected, mounting read-only
# 拷贝 源DVD镜像中,除了Packages,repodata 目录外的所有文件到 iso 目录
[root@linuxidc ~]# /usr/bin/rsync -a --exclude=Packages --exclude=repodata  /mnt/  ./iso/
[root@linuxidc ~]# ls iso
CentOS_BuildTag  GPL      Packages                  RPM-GPG-KEY-CentOS-6          RPM-GPG-KEY-CentOS-Testing-6
EFI              images    RELEASE-NOTES-en-US.html  RPM-GPG-KEY-CentOS-Debug-6    TRANS.TBL
EULA            isolinux  repodata                  RPM-GPG-KEY-CentOS-Security-6
 
# 参考当前系统的安装包,拷贝
[root@linuxidc ~]# awk '/Installing/ {print $2}' install.log | xargs -i cp /mnt/Packages/{}.rpm  ./iso/Packages/ #如果安装系统时选了安装语文为中文这里Installing会乱码
[root@linuxidc ~]# ls iso/Packages/ | wc -l
205
# 执行createrepo程序生成repodata下的comps.xml文件(重要)
#comps.xml 文件中包含了安装时用户所见到的与rpm相关的所有内容,它会检查Packages下
# 的RPM包的依赖关系,安装时如果缺少依赖包,它会提示您哪个RPM 包需要哪些依赖库。
 
[root@linuxidc ~]# pwd
/root
# 编辑 shell 脚本, 并执行
#!/bin/bash
 
ISO_DIR=/root/iso
cd  ${ISO_DIR}
declare -x discinfo=$(head -1 .discinfo)
 
cp  /mnt/repodata/*-minimal-x86_64.xml ${ISO_DIR}/repodata/minimal-x86_64.xml
 
createrepo  -g  ${ISO_DIR}/repodata/minimal-x86_64.xml  ${ISO_DIR}
 
createrepo -u "media://$discinfo" -g ${ISO_DIR}/repodata/*-minimal-x86_64.xml ${ISO_DIR}
 
到这里,comps.xml文件和其他相关联的文件已被重新生成到repodata目录下。
Tips:如果你新增或删除了Packages目录的RPM包,请重新生成comps.xml文件。
3、制作 ks.cfg 脚本
    ks文件由系统安装所创建的 anaconda-ks.cfg进行修改,当然也可以用system-config-kickstart工具制作而得。可以根据需要和实际情况进行修改:
编写.cfg文件
将~/anaconda-ks.cfg 复制到 ~/ios/isolinux/ks.cfg
修改后Ks.cfg 的内容如下
# Kickstart file automatically generated by anaconda.

#version=DEVEL
install
#text
cdrom
#设置安装语言
#lang en_US.UTF-8
lang zh_CN.UTF-8
keyboard us
#skip the X configuration
skipx

network --onboot no --device eth0 --bootproto dhcp --noipv6
#设置root密码,此处为:centos
rootpw  --iscrypted $6$q4pbJVjqD7ZmOEEq$f7C0H8gIBf3rlKXqVn0UOVfOYqYIG8kFU2yBghH5lc0uVjmU0mFTSgHe4MwZGuXvHWZOyXxhnBoIK9yIuDBt20
firewall --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --enforcing
timezone --utc Asia/Chongqing
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
#clearpart --linux --drives=sda
#volgroup VolGroup --pesize=4096 pv.008002
#logvol / --fstype=ext4 --name=lv_root --vgname=VolGroup --grow --size=1024 --maxsize=51200
#logvol swap --name=lv_swap --vgname=VolGroup --grow --size=1984 --maxsize=1984

#part /boot --fstype=ext4 --size=500
#part pv.008002 --grow --size=1

#clearpart --linux --drives=sda

#clearpart --all --initlabel

clearpart --all --initlabel #此命令必须添加,否则系统会让用户手动选择是否清除所有数据
# 所有硬碟的分割表通通被清除!clearpart  --all# 僅清除 vda 硬碟的分割表,其他的硬碟不要清除分割表!clearpart  --drives=vda  --all#此处设置分区
part /boot --fstype=ext4 --size=300 --ondisk=sda
part /home --fstype=ext4 --grow --size=1 --ondisk=sda #使用剩下的所有空间
part /opt --fstype=ext4 --size=3000 --ondisk=sda
part /var --fstype=ext4 --size=2000 --ondisk=sda
part / --fstype=ext4 --size=8000 --ondisk=sda
part swap --recommended --ondisk=sda

#repo --name="CentOS"  --baseurl=cdrom:sr0 --cost=100 #这句一定要注释掉不然会提示找不到名为CentOS 的有效的repo

#要安装的软件包@ 开头的为group,也可写单个包名如 vim
%packages
@core
@server-policy
@workstation-policy
%end

#%post --nochroot
#mount cdrom
#/bin/mkdir -p /mnt/cdrom
#/bin/mount -r -t iso9660 /tmp/cdrom /mnt/cdrom

#umount cdrom
#/bin/umount /mnt/cdrom

%post   #这部分是安装完系统之后执行的步骤,可自定义
/bin/echo "mount -n -o remount,ro /" >> /etc/rc.local
/bin/echo "tmpfs /tmp tmpfs defaults 0 0" >> /etc/fstab
%end


#--Reboot the host after installation is done
reboot
4、修改 isolinux.cfg 配置文件,指定 ks 路径
注意,编辑这个文件,需要强制保存。 :wq!
# vi ./iso/isolinux/isolinux.cfg
default auto

#default vesamenu.c32
#prompt 1
timeout 600

display boot.msg

menu background splash.jpg
menu title Welcome to CentOS 6.5!
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 auto
  kernel vmlinuz
  append ks=cdrom:/isolinux/ks.cfg initrd=initrd.img
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 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 -
5、生成iso镜像,并生成 MD5校验码

# cd ~/iso
# mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -o ../myos-0.1-x86.iso \
-b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table ./





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.imgcp 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 -9 --format=lzma > ../initrd.img
附件下载:
  ks.cfg 下载地址:http://xiexiaojun.blog.51cto.com/2305291/1632139
(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容