實驗環境:VMware + CentOS5.6(64bit)
根據自己的習慣,将CentOS重新打包成一個新ISO,可以自動分區、選擇原件包,快速安裝系統。
先用虛拟機按照正常的流程安裝一個CentOS系統,接下來在這系統上去建立我們的定制系統:
1、挂載光驅
mount /dev/cdrom /mnt |
2、建立臨時目錄
mkdir -p /root/iso/CentOS |
3、提取需要的RPM包,正常安裝好作業系統在/root目錄下會有install.log檔案,這個就是作業系統安裝RPM包的記錄,我們從這些記錄中,将所需的RPM包從/mnt/CentOS中複制到/root/iso/CentOS裡面去
#!/bin/bash cd /root awk '/Installing/{print $2}' install.log | sed 's/^[0-9]*://g' >package.txt DVD='/mnt/CentOS' PACKDIR='/root/package.txt' NEW_DVD='/root/iso/CentOS/' while read LINE do cp ${DVD}/${LINE}*.rpm /${NEW_DVD} || echo "$LINE don't cp......." done < package.txt rm -f package.txt |
4、把原鏡像除了CentOS目錄外的檔案全部複制至/root/iso目錄下
cd /mnt ls | grep -v CentOS | xargs -i cp -Rp {} /home/test/ |
5、把/root目錄下的anaconda-ks.cfg複制至/root/iso目錄下,并根據自己實際需要修改安裝要求
# Kickstart file automatically generated by anaconda. install cdrom lang en_US.UTF-8 keyboard us network --device eth0 --bootproto dhcp rootpw --iscrypted $1$fupKhGiH$sx2TexUjriSyu..IZUwT9. firewall --disabled --port=22:tcp authconfig --enableshadow --enablemd5 selinux --disabled timezone --utc Asia/Shanghai bootloader --location=mbr --driveorder=sda # 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 part /boot --fstype ext3 --size=100 part swap --size=512 part / --fstype ext3 --size=100 --grow %packages @base @core @development-tools @dialup @editors @text-internet keyutils openCryptoki libhbaapi brltty dmraid-events-logwatch libhbalinux aide kexec-tools nfs4-acl-tools tpm-tools iscsi-initiator-utils trousers bridge-utils authd fipscheck squashfs-tools star sssd hardlink freeipmi x86info device-mapper-multipath hfsutils fcoe-utils edac-utils hesinfo fuse-libs convmv fuse cpufreq-utils openswan gcc44-c++ gcc44-gfortran pexpect dejagnu imake java-1.6.0-openjdk-devel gcc-objc ElectricFence memtest86+ gcc-gnat libgfortran44 gcc44 expect java-1.6.0-openjdk unifdef nasm %post # Disable unused service chkconfig NetworkManager off chkconfig acpid off chkconfig anacron off chkconfig atd off chkconfig auditd off chkconfig autofs off chkconfig avahi-daemon off chkconfig avahi-dnsconfd off chkconfig bluetooth off chkconfig capi off chkconfig conman off chkconfig cpuspeed off chkconfig dnsmasq off chkconfig dund off chkconfig edac off chkconfig fcoe off chkconfig firstboot off chkconfig gpm off chkconfig haldaemon off chkconfig hidd off chkconfig ip6tables off chkconfig ipsec off chkconfig iptables off chkconfig irda off chkconfig iscsi off chkconfig iscsid off chkconfig isdn off chkconfig kdump off chkconfig kudzu off chkconfig mcstrans off chkconfig mdmonitor off chkconfig mdmpd off chkconfig messagebus off chkconfig multipathd off chkconfig netconsole off chkconfig netfs off chkconfig netplugd off chkconfig nfs off chkconfig nfslock off chkconfig nscd off chkconfig oddjobd off chkconfig pand off chkconfig pcscd off chkconfig portmap off chkconfig psacct off chkconfig rawdevices off chkconfig rdisc off chkconfig readahead_early off chkconfig readahead_later off chkconfig restorecond off chkconfig rpcgssd off chkconfig rpcidmapd off chkconfig rpcsvcgssd off chkconfig saslauthd off chkconfig sendmail off chkconfig smartd off chkconfig sssd off chkconfig svnserve off chkconfig tcsd off chkconfig wpa_supplicant off chkconfig xfs off chkconfig xinetd off chkconfig ypbind off chkconfig yum-updatesd off |
6、讓ISO按照anaconda-ks.cfg檔案來執行安裝
vi /root/iso/isolinux/isolinux.cfg Default linux 修改成default linux ks=cdrom:/anaconda-ks.cfg |
7、生成comps.xml檔案
yum -y install createrepo mkisofs cd /root/iso createrepo -g repodata/*comps.xml /root/iso/ |
8、制作ISO
mkisofs -o MyCentOS.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T /root/iso/ |
然後下次需要重裝系統的時候就直接使用這個ISO啦,友善快捷!有個缺點就是密碼是按照anaconda-ks.cfg中設定的執行,再研究一下看看能不能設定密碼跟使用者互動的模式。