在使用cobbler或PXE安裝系統的時候,在安裝系統前關于raid卡的配置,ipmi的配置等都需要登入主機先手動配置,那有什麼可以使用腳本來做這些東西呢?大家一定會想到winpe,那linux有什麼呢?Linux有一個LiveCD,但是公共的LiveCD很多沒有像MegaRAID,ipmitools等工具,那我們隻有自己來定制LiveCD
1. 安裝制作環境
添加yum源:
[livecd]
name = CentOS $releasever - LiveCD
baseurl = http://www.nanotechnologies.qc.ca/propos/linux/centos-live/$basearch/live
enabled=1
protect=0
gpgkey = http://www.nanotechnologies.qc.ca/propos/linux/RPM-GPG-KEY-PGuay2010
yum install livecd-tools syslinux anaconda-runtime
2. 編寫kickstart腳本
lang en_US.UTF-8
keyboard us
timezone US/Eastern
auth --useshadow --enablemd5
selinux --enforcing
firewall --disabled
repo --name=a-base --baseurl=http://mirror.centos.org/centos/5/os/$basearch
repo --name=a-updates --baseurl=http://mirror.centos.org/centos/5/updates/$basearch
repo --name=a-extras --baseurl=http://mirror.centos.org/centos/5/extras/$basearch
repo --name=a-live --baseurl=http://www.nanotechnologies.qc.ca/propos/linux/centos-live/$basearch/live
%packages
bash
kernel
syslinux
passwd
policycoreutils
chkconfig
authconfig
rootfiles
comps-extras
xkeyboard-config
3. 開始制作Livecd
LANG=C livecd-creator --config=centos-livecd-minimal.ks --cache=/home/livecd/cache --tmpdir=/home/livecd/tmp \\
--fslabel=CentOS-LiveCD
這一步完成後會在目前目錄生成一個CentOS-LiveCD.iso檔案,centos-livecd-minimal.ks是編寫好的kickstart腳本,至此Livecd已經生成,接下來開始修改。
4. 定制Livecd
4.1 安裝工具
yum install squashfs-tools
或者使用squashfs4版本,通過源碼安裝
4.2 挂載ISO鏡像
mkdir -p /home/livecd
mount -o loop -t iso9660 CentOS-LiveCD.iso /home/livecd
4.3 copy鏡像
mkdir -p /home/img
cp -R /home/livecd/* /home/img
4.4 解壓squashfs.img
進入/home/img/LiveOS 目錄,會看見squashfs.img檔案
unsquashfs squashfs.img
會産生squashfs-root目錄,進入其子目錄LiveOS中,會有一個ext3fs.img檔案,挂載該檔案
mount -o loop,rw ext3fs.img /tmp/iso
在做完各種修改後,解除安裝該檔案
umount /tmp/iso
重新回到/home/img/LiveOS目錄,生成新的squashfs.img檔案
修改rc.local檔案,加入一系列劃分分區、格式化、挂載、解壓指令後,
開始打包img檔案
mksquashfs squashfs-root squashfs.img
genisop_w_picpath -o /iso/LiveCD.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -V "LiveCD" -T ./
或
mkisofs -R -b isolinux/isolinux.bin -c isolinux/boot.cat -o /tmp/LiveCD.iso -V "LiveCD" \\ -no-emul-boot -boot-load-size 4 -boot-info-table .
livecd-iso-to-pxeboot LiveCD.iso