教你製作屬於自己的CentOS 6.4一鍵自動化安裝ISO鏡像光盤

   和朋友今天正好聊到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、在安裝光盤複製p_w_picpaths鏡像,從光盤啓動centos安裝所需的文件等.
4、定義自己的kickstart安裝腳本.
5、按照之前轉存的軟件(rpm)包, 重新生成光盤的report信息.
6、打包生成ISO文件,及MD5效驗碼.


光盤結構介紹:

* isolinux目錄存放光盤啓動時的安裝界面信息
* p_w_picpaths目錄包括了必要的啓動映像文件
* CentOS目錄存放安裝軟件包及信息
* .discinfo文件是安裝價質的識別信息


   安裝時默認第一項是text自動安裝,也可以選擇第二項進行手動安裝...

165345281.jpg

安裝完成後的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
285

wKiom1Uvbzfyefr1AAJKoGG3844000.jpg


(二)定製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)
genisop_w_picpath 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/p_w_picpaths
Excluded: /ISO/p_w_picpaths/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 p_w_picpath...
md5 = 1355f3a08334162777e6ad867c448d2e
Inserting fragment md5sums into iso p_w_picpath...
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文件傳輸到本機,就可以刻盤安裝了...

165605231.jpg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章