This is the method that I use to customize CentOS x86_64 distro. The objective of this operation is reducing image install used for server. We need those two ISO: CentOS x86_64 netinstall and CentOS x86_64 CD1. CentOS netinstall permits you to install a fresh mini install but there's yet in this way some packages that are useless for using on a server. On netinstall install, where only the vim package is selected , all the following packages are useless for me: wireless-tools xorg-x11-filesystem Deployment_Guide-fr-FR libXcursor rhpl libpng libjpeg libtiff cups-libs bitstream-vera-fonts fontconfig libXft libXext libXcursor libXrandr libXdmcp libXinerama ecryptfs-utils gtk2 libX11 libXi libXrender cairo trousers libXau libXfixes But some others useful packages for server were not installed: slocate autoconf automake rsync make imake m4 man yum-utils elinks telnet First, you have to do this fresh mini netinstall for create a local repository, because customising an ISO, for reducing it, essentially requires the removal of unnecessary packages. So when install is done. We create a mini local repository, with packages installed on this fresh install. Those that will be included into the custom ISO. How to:
# remove useless packages yum remove wireless-tools xorg-x11-filesystem Deployment_Guide-fr-FR libXcursor rhpl libpng libjpeg libtiff cups-libs bitstream-vera-fonts fontconfig libXft libXext libXcursor libXrandr libXdmcp libXinerama ecryptfs-utils gtk2 libX11 libXi libXrender cairo trousers libXau libXfixes -y # install required packages yum install slocate autoconf automake rsync make imake m4 man yum-utils elinks telnet yum-utils -y # listing all packages and download them into temp directory rpm -qa > /home/rpm.log && mkdir /tmp/rpm for i in $(cat /home/rpm.log) ; do yumdownloader "$i" -y --destdir /tmp/rpm ; done # To create repo (useless for customize CentOS ISO) yum install createrepo -y createrepo /tmp/rpm/ cd /etc/yum.repos.d/ vi local.repo [localrepo] name= CentOS Server $releasesever - My Local Repo baseurl=file:///tmp/rpm/ enabled=1 gpgcheck=0 #gpgkey=file:////etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 :wqNow packages are downloaded and we can start to build new ISO. To customize CentOS distro, we only need of the first CentOS CD among eight medias CD for normal install. Thus after downloading, mount the iso on this linux server and customise your distro. How to Second part :
# Create directories mkdir /mnt/cdimages/ mkdir /mnt/cdimages/CentOS-5.5-x86_64 mkdir /mnt/cdimages/CentOS-5.5-x86_64-core # Mount ISO mount -t iso9660 -oloop,ro /home/CentOS-5.5-x86_64-bin-1of8.iso /mnt/cdimages/CentOS-5.5-x86_64 # Install needed packages yum install mkisofs cdrecord # Rsync ISO content to new CentOS minimal core rsync -av --exclude CentOS/ /mnt/cdimages/CentOS-5.5-x86_64/ /mnt/cdimages/CentOS-5.5-x86_64-core/ mkdir /mnt/cdimages/CentOS-5.5-x86_64-core/CentOS cp -r /tmp/rpm/* /mnt/cdimages/CentOS-5.5-x86_64-core/CentOS/ # Edit comps.xml cd /mnt/cdimages/CentOS-5.5-x86_64-core wc -l repodata/comps.xml # 11418 repodata/comps.xml grep "xml:lang" repodata/comps.xml | wc -l # 8811 grep -v "xml:lang" repodata/comps.xml > /tmp/no-lang.comps.xml wc -l /tmp/no-lang.comps.xml # 2607 /tmp/no-lang.comps.xml rm repodata/* -f cp /tmp/no-lang.comps.xml repodata/comps.xml # Test RPM dependencies cd /mnt/cdimages/CentOS-5.5-x86_64-core/CentOS mkdir /tmp/testrpmdb rpm --initdb --dbpath /tmp/testrpmdb/ rpm --test --dbpath /tmp/testrpmdb/ -ivh *.rpm echo $? # 0 du -sh /tmp/testrpmdb/ # 644K /tmp/testrpmdb/ rm -rf /tmp/testrpmdb # Create repo yum install createrepo -y cd /mnt/cdimages/CentOS-5.5-x86_64-core cat .discinfo export discinfo=$(head -1 /mnt/cdimages/CentOS-5.5-x86_64-core/.discinfo) echo $discinfo createrepo -u "media://$discinfo" -g repodata/comps.xml /mnt/cdimages/CentOS-5.5-x86_64-core # Create bootable ISO export isofilename=/mnt/cdimages/CentOS-5.5-x86_64-core.iso mkisofs -r -R -J -T -v \ -no-emul-boot -boot-load-size 4 -boot-info-table \ -V "CentOS-5u5-core 64 bit" -p "CentOS_Custom" -A "CentOS-5u5-core 64 bit-2011/01/01" \ -b isolinux/isolinux.bin -c isolinux/boot.cat -x "lost+found" \ -o $isofilename /mnt/cdimages/CentOS-5.5-x86_64-core # 213685 extents written (417 MB) # Implant MD5SUM in the ISO file yum install mkcdrec updatedb locate implantisomd5 /var/opt/mkcdrec/bin/implantisomd5 $isofilename ## Use New CentOS ISO: /mnt/cdimages/CentOS-5.5-x86_64-core.isoYou can now try to install new virtual machine with this new ISO media boot to check that everything works perfectly.
I will try to make a CentOS 6.2 ISO soon.
RépondreSupprimer