定製centos 6.5自動安裝光碟片

來源:互聯網
上載者:User

定製centos 6.5自動安裝光碟片

一、製作環境準備
實驗環境:
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-yinstallanacondarepodatacreaterepomkisofsrsync

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的內容如下

#Kickstartfileautomaticallygeneratedbyanaconda.

#version=DEVEL

install

#text

cdrom

#設定安裝語言

#langen_US.UTF-8

langzh_CN.UTF-8

keyboardus

#skiptheXconfiguration

skipx

network--onbootno--deviceeth0--bootprotodhcp--noipv6

#設定root密碼,此處為:centos

rootpw--iscrypted$6$q4pbJVjqD7ZmOEEq$f7C0H8gIBf3rlKXqVn0UOVfOYqYIG8kFU2yBghH5lc0uVjmU0mFTSgHe4MwZGuXvHWZOyXxhnBoIK9yIuDBt20

firewall--service=ssh

authconfig--enableshadow--passalgo=sha512

selinux--enforcing

timezone--utcAsia/Chongqing

bootloader--location=mbr--driveorder=sda--append="crashkernel=autorhgbquiet"

#Thefollowingisthepartitioninformationyourequested

#Notethatanypartitionsyoudeletedarenotexpressed

#heresounlessyouclearallpartitionsfirst,thisis

#notguaranteedtowork

#clearpart--linux--drives=sda

#volgroupVolGroup--pesize=4096pv.008002

#logvol/--fstype=ext4--name=lv_root--vgname=VolGroup--grow--size=1024--maxsize=51200

#logvolswap--name=lv_swap--vgname=VolGroup--grow--size=1984--maxsize=1984

#part/boot--fstype=ext4--size=500

#partpv.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

partswap--recommended --ondisk=sda

#repo--name="CentOS"--baseurl=cdrom:sr0--cost=100#這句一定要注釋掉不然會提示找不到名為CentOS的有效repo

#要安裝的軟體包@開頭的為group,也可寫單個包名如vim

%packages

@core

@server-policy

@workstation-policy

%end

#%post--nochroot

#mountcdrom

#/bin/mkdir-p/mnt/cdrom

#/bin/mount-r-tiso9660/tmp/cdrom/mnt/cdrom

#umountcdrom

#/bin/umount/mnt/cdrom

%post#這部分是安裝完系統之後執行的步驟,可自訂

/bin/echo"mount-n-oremount,ro/">>/etc/rc.local

/bin/echo"tmpfs/tmptmpfsdefaults00">>/etc/fstab

%end

#--Rebootthehostafterinstallationisdone

reboot

4、修改 isolinux.cfg 設定檔,指定 ks 路徑
注意,編輯這個檔案,需要強制儲存。 :wq!

# vi ./iso/isolinux/isolinux.cfg

defaultauto

#defaultvesamenu.c32

#prompt1

timeout600

displayboot.msg

menubackgroundsplash.jpg

menutitleWelcometoCentOS6.5!

menucolorborder0#ffffffff#00000000

menucolorsel7#ffffffff#ff000000

menucolortitle0#ffffffff#00000000

menucolortabmsg0#ffffffff#00000000

menucolorunsel0#ffffffff#00000000

menucolorhotsel0#ff000000#ffffffff

menucolorhotkey7#ffffffff#ff000000

menucolorscrollbar0#ffffffff#00000000

labelauto

kernelvmlinuz

appendks=cdrom:/isolinux/ks.cfginitrd=initrd.img

labellinux

menulabel^Installorupgradeanexistingsystem

menudefault

kernelvmlinuz

appendinitrd=initrd.img

labelvesa

menulabelInstallsystemwith^basicvideodriver

kernelvmlinuz

appendinitrd=initrd.imgxdriver=vesanomodeset

labelrescue

menulabel^Rescueinstalledsystem

kernelvmlinuz

appendinitrd=initrd.imgrescue

labellocal

menulabelBootfrom^localdrive

localboot0xffff

labelmemtest86

menulabel^Memorytest

kernelmemtest

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\

-bisolinux/isolinux.bin-cisolinux/boot.cat-no-emul-boot-boot-load-size4-boot-info-table./

9.修改光碟片背景,文字等資訊9.1修改系統自動安裝過程中顯示的背景圖片.修改光碟片背景,文字等資訊

#進入光碟片images目錄cd/data/ISO/images/#install.img鏡像中包含了光碟片安裝過程中使用到的背景圖片,掛載此img檔案mount-oloop-tsquashfsinstall.img/mnt/installmkdirtmp#掛載的install.img不能編輯,需要拷貝一份,修改後替換原install.img檔案rsync-av/mnt/install/tmp/#進入背景圖片所在目錄,選擇需要修改的圖片,並替換(主機圖片尺寸,格式需要與原來的相同),圖片位置為:tmp/install/usr/share/anaconda/pixmaps#重新建立新的install.imgmksquashfstmp/install_v1.img-all-root#替換install.imgcptmp/install_v1.imginstall.img

9.2 修改安裝過程中的歡迎語

mkdir/data/ISO/isolinux/tmp#解壓initrd.img鏡像xz-dc../initrd.img|cpio-id#修改歡迎語.buildstamp檔案,把其中的CentOS替換為PowerSoftvim.buildstamp#建立新的initrd.img並替換find.|cpio-c-o|xz-9--format=lzma>../initrd.img

附件下載:
  ks.cfg :http://xiexiaojun.blog.51cto.com/2305291/1632139

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.