Custom Linux bootable CD
From WBITT's Cooker!
(Created page with 'This article is in relation to the article CENTOS Server CD project , and is "heavily" based on http://people.redhat.com/rkeech/custom-distro.txt . So here it goes. First, t…') |
|||
Line 1: | Line 1: | ||
- | This article is in relation to the article [[CENTOS Server CD project]] , and is "heavily" based on http://people.redhat.com/rkeech/custom-distro.txt . | + | This article is in relation to the article [[CENTOS Server CD project]] , and is "heavily" based on http://people.redhat.com/rkeech/custom-distro.txt . So here it goes. |
- | + | ===First, the setup=== | |
- | I have a directory /data/cdimages, which looks like the following: | + | My machine on which I am doing all these steps / building the Custom CENTOS CD is Fedora 11 64 bit, named kworkhorse. |
+ | |||
+ | I have a directory /data/cdimages, which contains full install tree of original CENTOS 5.4 64 bit CD, and an empty CENTOS-5.4-x86_64-core directory. The directory layout looks like the following: | ||
<pre> | <pre> | ||
Line 25: | Line 27: | ||
</pre> | </pre> | ||
- | + | The directory /data/cdimages/CentOS-5.4-x86_64-core (which is empty at the moment), will be the custom install tree, and referred to as $RHROOT in this document. | |
- | Before you continue, | + | Before you continue, you must install the following packages on your base OS. |
<pre> | <pre> | ||
yum -y install anaconda anaconda-runtime mkisofs cdrecord | yum -y install anaconda anaconda-runtime mkisofs cdrecord | ||
+ | </pre> | ||
+ | |||
+ | Note: anaconda-runtime is RHEL/CENTOS specific package, and is part of the RHEL/CENTOS distribution. As evident below: | ||
+ | |||
+ | <pre> | ||
+ | [kamran@kworkhorse CentOS]$ ls /data/cdimages/CentOS-5.4-x86_64/CentOS/anaconda-* -1 | ||
+ | anaconda-11.1.2.195-1.el5.centos.x86_64.rpm | ||
+ | anaconda-runtime-11.1.2.195-1.el5.centos.x86_64.rpm | ||
+ | [kamran@kworkhorse CentOS]$ | ||
+ | </pre> | ||
+ | |||
+ | This package "anaconda-runtime" provides the following packages: | ||
+ | |||
+ | <pre> | ||
+ | [kamran@kworkhorse CentOS]$ rpm -qpl anaconda-runtime-11.1.2.195-1.el5.centos.x86_64.rpm | ||
+ | . . . | ||
+ | /usr/lib/anaconda-runtime | ||
+ | /usr/lib/anaconda-runtime/boot | ||
+ | /usr/lib/anaconda-runtime/boot/boot.msg | ||
+ | /usr/lib/anaconda-runtime/boot/general.msg | ||
+ | /usr/lib/anaconda-runtime/boot/options.msg | ||
+ | /usr/lib/anaconda-runtime/boot/param.msg | ||
+ | /usr/lib/anaconda-runtime/boot/rescue.msg | ||
+ | /usr/lib/anaconda-runtime/boot/syslinux.cfg | ||
+ | /usr/lib/anaconda-runtime/buildinstall | ||
+ | /usr/lib/anaconda-runtime/checkisomd5 | ||
+ | /usr/lib/anaconda-runtime/filtermoddeps | ||
+ | /usr/lib/anaconda-runtime/fixmtime.py | ||
+ | /usr/lib/anaconda-runtime/fixmtime.pyc | ||
+ | /usr/lib/anaconda-runtime/fixmtime.pyo | ||
+ | /usr/lib/anaconda-runtime/getkeymaps | ||
+ | /usr/lib/anaconda-runtime/implantisomd5 | ||
+ | /usr/lib/anaconda-runtime/keymaps-override-x86_64 | ||
+ | /usr/lib/anaconda-runtime/libunicode-lite.so.1 | ||
+ | /usr/lib/anaconda-runtime/loader | ||
+ | /usr/lib/anaconda-runtime/loader/init | ||
+ | /usr/lib/anaconda-runtime/loader/loader | ||
+ | /usr/lib/anaconda-runtime/loader/loader.tr | ||
+ | /usr/lib/anaconda-runtime/loader/module-info | ||
+ | /usr/lib/anaconda-runtime/loader/unicode-linedraw-chars.txt | ||
+ | /usr/lib/anaconda-runtime/makestamp.py | ||
+ | /usr/lib/anaconda-runtime/makestamp.pyc | ||
+ | /usr/lib/anaconda-runtime/makestamp.pyo | ||
+ | /usr/lib/anaconda-runtime/maketreeinfo.py | ||
+ | /usr/lib/anaconda-runtime/maketreeinfo.pyc | ||
+ | /usr/lib/anaconda-runtime/maketreeinfo.pyo | ||
+ | /usr/lib/anaconda-runtime/mapshdr | ||
+ | /usr/lib/anaconda-runtime/mk-images | ||
+ | /usr/lib/anaconda-runtime/mk-images.ia64 | ||
+ | /usr/lib/anaconda-runtime/mk-images.ppc | ||
+ | /usr/lib/anaconda-runtime/mk-images.s390 | ||
+ | /usr/lib/anaconda-runtime/mk-images.x86 | ||
+ | /usr/lib/anaconda-runtime/mk-rescueimage.i386 | ||
+ | /usr/lib/anaconda-runtime/mk-rescueimage.ppc | ||
+ | /usr/lib/anaconda-runtime/mk-rescueimage.x86_64 | ||
+ | /usr/lib/anaconda-runtime/moddeps | ||
+ | /usr/lib/anaconda-runtime/modlist | ||
+ | /usr/lib/anaconda-runtime/pkgorder | ||
+ | /usr/lib/anaconda-runtime/pyisomd5sum.so | ||
+ | /usr/lib/anaconda-runtime/pyrc.py | ||
+ | /usr/lib/anaconda-runtime/pyrc.pyc | ||
+ | /usr/lib/anaconda-runtime/pyrc.pyo | ||
+ | /usr/lib/anaconda-runtime/readmap | ||
+ | /usr/lib/anaconda-runtime/screenfont-x86_64.gz | ||
+ | /usr/lib/anaconda-runtime/scrubtree | ||
+ | /usr/lib/anaconda-runtime/splittree.py | ||
+ | /usr/lib/anaconda-runtime/splittree.pyc | ||
+ | /usr/lib/anaconda-runtime/splittree.pyo | ||
+ | /usr/lib/anaconda-runtime/trimmodalias | ||
+ | /usr/lib/anaconda-runtime/trimpciids | ||
+ | /usr/lib/anaconda-runtime/upd-instroot | ||
+ | /usr/lib/anaconda-runtime/yumcache | ||
+ | . . . | ||
+ | [kamran@kworkhorse CentOS]$ | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | If you are using Fedora, you may not find anaconda-runtime. Instead anaconda and anaconda-runtime are merged into single package, which provides the same functionality : | ||
+ | |||
+ | <pre> | ||
+ | [root@kworkhorse cdimages]# rpm -ql anaconda | grep runtime | ||
+ | . . . | ||
+ | /usr/lib/anaconda-runtime | ||
+ | /usr/lib/anaconda-runtime/boot | ||
+ | /usr/lib/anaconda-runtime/boot/boot.msg | ||
+ | /usr/lib/anaconda-runtime/boot/grub.conf | ||
+ | /usr/lib/anaconda-runtime/boot/syslinux.cfg | ||
+ | /usr/lib/anaconda-runtime/buildinstall | ||
+ | /usr/lib/anaconda-runtime/buildinstall.functions | ||
+ | /usr/lib/anaconda-runtime/genmodinfo | ||
+ | /usr/lib/anaconda-runtime/getkeymaps | ||
+ | /usr/lib/anaconda-runtime/keymaps-override-x86_64 | ||
+ | /usr/lib/anaconda-runtime/loader | ||
+ | /usr/lib/anaconda-runtime/loader/init | ||
+ | /usr/lib/anaconda-runtime/loader/loader | ||
+ | /usr/lib/anaconda-runtime/loader/loader.tr | ||
+ | /usr/lib/anaconda-runtime/loader/unicode-linedraw-chars.txt | ||
+ | /usr/lib/anaconda-runtime/makestamp.py | ||
+ | /usr/lib/anaconda-runtime/makestamp.pyc | ||
+ | /usr/lib/anaconda-runtime/makestamp.pyo | ||
+ | /usr/lib/anaconda-runtime/maketreeinfo.py | ||
+ | /usr/lib/anaconda-runtime/maketreeinfo.pyc | ||
+ | /usr/lib/anaconda-runtime/maketreeinfo.pyo | ||
+ | /usr/lib/anaconda-runtime/mapshdr | ||
+ | /usr/lib/anaconda-runtime/mk-images | ||
+ | /usr/lib/anaconda-runtime/mk-images.alpha | ||
+ | /usr/lib/anaconda-runtime/mk-images.efi | ||
+ | /usr/lib/anaconda-runtime/mk-images.ia64 | ||
+ | /usr/lib/anaconda-runtime/mk-images.ppc | ||
+ | /usr/lib/anaconda-runtime/mk-images.s390 | ||
+ | /usr/lib/anaconda-runtime/mk-images.x86 | ||
+ | /usr/lib/anaconda-runtime/modlist | ||
+ | /usr/lib/anaconda-runtime/pyrc.py | ||
+ | /usr/lib/anaconda-runtime/pyrc.pyc | ||
+ | /usr/lib/anaconda-runtime/pyrc.pyo | ||
+ | /usr/lib/anaconda-runtime/readmap | ||
+ | /usr/lib/anaconda-runtime/screenfont-x86_64.gz | ||
+ | /usr/lib/anaconda-runtime/scrubtree | ||
+ | /usr/lib/anaconda-runtime/trimpciids | ||
+ | /usr/lib/anaconda-runtime/upd-instroot | ||
+ | /usr/lib/anaconda-runtime/upd-updates | ||
+ | . . . | ||
+ | [root@kworkhorse cdimages]# | ||
</pre> | </pre> |
Revision as of 18:13, 29 June 2010
This article is in relation to the article CENTOS Server CD project , and is "heavily" based on http://people.redhat.com/rkeech/custom-distro.txt . So here it goes.
First, the setup
My machine on which I am doing all these steps / building the Custom CENTOS CD is Fedora 11 64 bit, named kworkhorse.
I have a directory /data/cdimages, which contains full install tree of original CENTOS 5.4 64 bit CD, and an empty CENTOS-5.4-x86_64-core directory. The directory layout looks like the following:
[root@kworkhorse cdimages]# pwd /data/cdimages [root@kworkhorse cdimages]# tree -d . ├── CentOS-5.4-x86_64 │ ├── CentOS │ ├── images │ │ ├── pxeboot │ │ └── xen │ ├── isolinux │ ├── NOTES │ └── repodata └── CentOS-5.4-x86_64-core [root@kworkhorse cdimages]#
The directory /data/cdimages/CentOS-5.4-x86_64-core (which is empty at the moment), will be the custom install tree, and referred to as $RHROOT in this document.
Before you continue, you must install the following packages on your base OS.
yum -y install anaconda anaconda-runtime mkisofs cdrecord
Note: anaconda-runtime is RHEL/CENTOS specific package, and is part of the RHEL/CENTOS distribution. As evident below:
[kamran@kworkhorse CentOS]$ ls /data/cdimages/CentOS-5.4-x86_64/CentOS/anaconda-* -1 anaconda-11.1.2.195-1.el5.centos.x86_64.rpm anaconda-runtime-11.1.2.195-1.el5.centos.x86_64.rpm [kamran@kworkhorse CentOS]$
This package "anaconda-runtime" provides the following packages:
[kamran@kworkhorse CentOS]$ rpm -qpl anaconda-runtime-11.1.2.195-1.el5.centos.x86_64.rpm . . . /usr/lib/anaconda-runtime /usr/lib/anaconda-runtime/boot /usr/lib/anaconda-runtime/boot/boot.msg /usr/lib/anaconda-runtime/boot/general.msg /usr/lib/anaconda-runtime/boot/options.msg /usr/lib/anaconda-runtime/boot/param.msg /usr/lib/anaconda-runtime/boot/rescue.msg /usr/lib/anaconda-runtime/boot/syslinux.cfg /usr/lib/anaconda-runtime/buildinstall /usr/lib/anaconda-runtime/checkisomd5 /usr/lib/anaconda-runtime/filtermoddeps /usr/lib/anaconda-runtime/fixmtime.py /usr/lib/anaconda-runtime/fixmtime.pyc /usr/lib/anaconda-runtime/fixmtime.pyo /usr/lib/anaconda-runtime/getkeymaps /usr/lib/anaconda-runtime/implantisomd5 /usr/lib/anaconda-runtime/keymaps-override-x86_64 /usr/lib/anaconda-runtime/libunicode-lite.so.1 /usr/lib/anaconda-runtime/loader /usr/lib/anaconda-runtime/loader/init /usr/lib/anaconda-runtime/loader/loader /usr/lib/anaconda-runtime/loader/loader.tr /usr/lib/anaconda-runtime/loader/module-info /usr/lib/anaconda-runtime/loader/unicode-linedraw-chars.txt /usr/lib/anaconda-runtime/makestamp.py /usr/lib/anaconda-runtime/makestamp.pyc /usr/lib/anaconda-runtime/makestamp.pyo /usr/lib/anaconda-runtime/maketreeinfo.py /usr/lib/anaconda-runtime/maketreeinfo.pyc /usr/lib/anaconda-runtime/maketreeinfo.pyo /usr/lib/anaconda-runtime/mapshdr /usr/lib/anaconda-runtime/mk-images /usr/lib/anaconda-runtime/mk-images.ia64 /usr/lib/anaconda-runtime/mk-images.ppc /usr/lib/anaconda-runtime/mk-images.s390 /usr/lib/anaconda-runtime/mk-images.x86 /usr/lib/anaconda-runtime/mk-rescueimage.i386 /usr/lib/anaconda-runtime/mk-rescueimage.ppc /usr/lib/anaconda-runtime/mk-rescueimage.x86_64 /usr/lib/anaconda-runtime/moddeps /usr/lib/anaconda-runtime/modlist /usr/lib/anaconda-runtime/pkgorder /usr/lib/anaconda-runtime/pyisomd5sum.so /usr/lib/anaconda-runtime/pyrc.py /usr/lib/anaconda-runtime/pyrc.pyc /usr/lib/anaconda-runtime/pyrc.pyo /usr/lib/anaconda-runtime/readmap /usr/lib/anaconda-runtime/screenfont-x86_64.gz /usr/lib/anaconda-runtime/scrubtree /usr/lib/anaconda-runtime/splittree.py /usr/lib/anaconda-runtime/splittree.pyc /usr/lib/anaconda-runtime/splittree.pyo /usr/lib/anaconda-runtime/trimmodalias /usr/lib/anaconda-runtime/trimpciids /usr/lib/anaconda-runtime/upd-instroot /usr/lib/anaconda-runtime/yumcache . . . [kamran@kworkhorse CentOS]$
If you are using Fedora, you may not find anaconda-runtime. Instead anaconda and anaconda-runtime are merged into single package, which provides the same functionality :
[root@kworkhorse cdimages]# rpm -ql anaconda | grep runtime . . . /usr/lib/anaconda-runtime /usr/lib/anaconda-runtime/boot /usr/lib/anaconda-runtime/boot/boot.msg /usr/lib/anaconda-runtime/boot/grub.conf /usr/lib/anaconda-runtime/boot/syslinux.cfg /usr/lib/anaconda-runtime/buildinstall /usr/lib/anaconda-runtime/buildinstall.functions /usr/lib/anaconda-runtime/genmodinfo /usr/lib/anaconda-runtime/getkeymaps /usr/lib/anaconda-runtime/keymaps-override-x86_64 /usr/lib/anaconda-runtime/loader /usr/lib/anaconda-runtime/loader/init /usr/lib/anaconda-runtime/loader/loader /usr/lib/anaconda-runtime/loader/loader.tr /usr/lib/anaconda-runtime/loader/unicode-linedraw-chars.txt /usr/lib/anaconda-runtime/makestamp.py /usr/lib/anaconda-runtime/makestamp.pyc /usr/lib/anaconda-runtime/makestamp.pyo /usr/lib/anaconda-runtime/maketreeinfo.py /usr/lib/anaconda-runtime/maketreeinfo.pyc /usr/lib/anaconda-runtime/maketreeinfo.pyo /usr/lib/anaconda-runtime/mapshdr /usr/lib/anaconda-runtime/mk-images /usr/lib/anaconda-runtime/mk-images.alpha /usr/lib/anaconda-runtime/mk-images.efi /usr/lib/anaconda-runtime/mk-images.ia64 /usr/lib/anaconda-runtime/mk-images.ppc /usr/lib/anaconda-runtime/mk-images.s390 /usr/lib/anaconda-runtime/mk-images.x86 /usr/lib/anaconda-runtime/modlist /usr/lib/anaconda-runtime/pyrc.py /usr/lib/anaconda-runtime/pyrc.pyc /usr/lib/anaconda-runtime/pyrc.pyo /usr/lib/anaconda-runtime/readmap /usr/lib/anaconda-runtime/screenfont-x86_64.gz /usr/lib/anaconda-runtime/scrubtree /usr/lib/anaconda-runtime/trimpciids /usr/lib/anaconda-runtime/upd-instroot /usr/lib/anaconda-runtime/upd-updates . . . [root@kworkhorse cdimages]#