在centos中可以用kickstart進(jìn)行裝機(jī)自動(dòng)化,也可以定制一些軟件包,公司的需要的基礎(chǔ)系統(tǒng)里面很多軟件參數(shù)、選項(xiàng)、內(nèi)核都經(jīng)過優(yōu)化,所以用kickstart裝起來雖然方便但是后期調(diào)整很麻煩,所以打算換種方法,思路如下:
把經(jīng)過優(yōu)化的系統(tǒng)整體打包,做成一個(gè)原始的tar包,由于linux是文件系統(tǒng),所以只要在新硬盤上劃好分區(qū)好以后,解壓打好的tar系統(tǒng)包就可以了,然后安裝grub,這樣一個(gè)系統(tǒng)就完成了,但是本人有點(diǎn)懶,分區(qū),grub都不想自己動(dòng)手,所以可以寫個(gè)腳本自動(dòng)執(zhí)行。
1 打包系統(tǒng)
1 | tar czvfp Centos5_x86_64.tgz bin/ boot/ dev/ etc/ home/ lib/ lib64/ lost+found/ media/ mnt/ opt/ \ |
2 | --exclude=proc/* proc/ root/ sbin/ selinux/ srv/ --exclude=tmp/* tmp/ usr/ var/ --exclude=sys/* sys/ |
2 制作centos livecd
2.1 安裝制作環(huán)境
1 | yum install livecd-tools syslinux anaconda-runtime |
2.2 編寫kickstart腳本
04 | auth --useshadow --enablemd5 |
08 | repo --name=a-base --baseurl=http://mirrors.163.com/centos/5/os/$basearch/ |
09 | repo --name=a-addons --baseurl=http://mirrors.163.com/centos/5/addons/$basearch/ |
10 | repo --name=a-extras --baseurl=http://mirrors.163.com/centos/5/extras/$basearch/ |
11 | repo --name=a-centosplus --baseurl=http://mirrors.163.com/centos/5/centosplus/$basearch/ |
12 | repo --name=a-contrib --baseurl=http://mirrors.163.com/centos/5/contrib/$basearch/ |
13 | repo --name=a-live --baseurl=http://www.nanotechnologies./propos/linux/centos-live/$basearch/live |
2.3 開始制作Livecd
1 | LANG=C livecd-creator --config=centos-livecd-minimal.ks --cache=/home/livecd/cache --tmpdir=/home/livecd/tmp \ |
2 | --fslabel=CentOS-minimal |
這一步完成后會(huì)在當(dāng)前目錄生成一個(gè)CentOS-minimal.iso文件,centos-livecd-minimal.ks是編寫好的kickstart腳本,至此Livecd已經(jīng)生成,接下來開始修改。
3 定制Livecd
3.1 安裝工具
1 | yum install squashfs-tools |
或者使用squashfs4版本,下載源碼包后,進(jìn)入squashfs-tools目錄,make&&make install 即可安裝完成,
默認(rèn)命令安裝在/usr/local/bin,可以copy到/bin中。
3.2 掛載ISO鏡像
2 | mount -o loop -t iso9660 CentOS-minimal.iso /home/livecd |
3.3 copy鏡像
2 | cp -R /home/livecd/* /home/img |
3.4 解壓squashfs.img
進(jìn)入/home/img/LiveOS 目錄,會(huì)看見squashfs.img文件,
會(huì)產(chǎn)生squashfs-root目錄,進(jìn)入其子目錄LiveOS中,會(huì)有一個(gè)ext3fs.img文件,掛載該文件
1 | mount -o loop,rw ext3fs.img /tmp |
在做完各種修改后,卸載該文件,重新回到/home/img/LiveOS目錄,生成新的squashfs.img文件
我的需求是:修改rc.local文件,加入一系列劃分分區(qū)、格式化、掛載、解壓命令后,并把前面打的tar包傳入/tmp的制定目錄下,這樣用livecd啟動(dòng)時(shí)會(huì)執(zhí)行rc.local中的命令,這樣等livecd完全啟動(dòng)后,宿主機(jī)的硬盤上就會(huì)有一個(gè)我們剛才打包好的系統(tǒng)了。
1 | mksquashfs squashfs-root squashfs.img |
刪除squashfs-root目錄,回到上級(jí)目錄,生成新的ISO
1 | mkisofs -R -b isolinux/isolinux.bin -c isolinux/boot. cat -o /tmp/ test .iso -V "CentOS-minima" \ |
1 | -no-emul-boot -boot-load-size 4 -boot-info-table . |
這樣經(jīng)過修改的鏡像文件就會(huì)生成,刻入CD中,就可以自動(dòng)裝機(jī)了。
注:這只是適應(yīng)我們部分小的需求,也沒什么創(chuàng)新,google了幾遍文檔,糅雜在一起的。
相關(guān)參照:
https://projects./trac/livecd/
|