Custom Linux bootable CD

From WBITT's Cooker!

(Difference between revisions)
Jump to: navigation, search
(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.  
-
So here it goes. First, the setup.
+
===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>
-
As you can see, I have created a directory /data/cdimages/CentOS-5.4-x86_64-core just now, which will be the custom install tree, and referred to as $RHROOT.
+
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, it is required that you install the following packages on your base OS. ( I am using Fedora 11 64 bit as build host.)
+
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]# 
Personal tools