[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: xfs 1.1
On Fri, 2002-05-31 at 17:02, Michael Best wrote:
> Is it self building so to speak, ie the contents of the image contain
> the method for making the iso?
Hm, no. I guess I really should document the build procedure, if I ever
want to get out of this job. :) Hopefully I'll put up a better
explanation at some point, but basically...
First, of course, the anaconda code needs to know about XFS. Most of it
is already in there; there's a 1 line change to actually enable it.
There are a couple other tweaks, look at the patch in the anaconda SRPM
to see them. Lots of it is just lawyer fluff about how this is not
stock Red Hat. Other changes are for teaching it about the 4th disk,
disallowing lilo on the boot partition, etc.
Since RPMs were added/replaced for this distribution, you need to create
a new hdlist to tell anaconda what RPMs are where.
I created
genhdlist/rh_disc1/RedHat/RPMS
genhdlist/rh_disc2/RedHat/RPMS
genhdlist/rh_disc2/RedHat/RPMS
genhdlist/sgi_disc4/RedHat/RPMS
and populated them with the RPMs from each of those disks. Since new
kernels were in genhdlist/sgi_disc4/RedHat/RPMS, kernel RPMs were
removed from the red hat directories. Same for anaconda. Then run
hdlist against this tree:
anaconda/anaconda-xfs/utils/genhdlist --withnumbers \
--hdlist bootGen/RedHat/base/hdlist \
`pwd`/genhdlist/rh_disc1 \
`pwd`/genhdlist/rh_disc2 \
`pwd`/genhdlist/rh_disc3 \
`pwd`/genhdlist/sgi_disc4
This deposits the hdlist into bootGen/RedHat/base/hdlist, where
"bootGen" is a tree used to generate the boot disk. It looks like:
bootGen/RedHat/base
bootGen/RedHat/RPMS/
and the directory is full of symlinks into the genhdlist RPMS
directories; i.e. symlinks to every RPM in the distribution. Anaconda
uses this to build the build environment, like so:
BOOTGEN = /mnt/sda4/bootGen
buildimg:
(cd anaconda/anaconda-xfs/scripts; ./buildinstall ${BOOTGEN} )
Anaconda will expand the RPMs it needs for it's runtime, and populate
/mnt/sda4/bootGen with the files needed for the boot cd; i.e. dosutils
and images.
Now the bootGen directory looks like this:
bootGen/
|-- RedHat
| |-- RPMS
| `-- base
|-- dosutils
| `-- autoboot
`-- images
|-- de
|-- es
|-- fr
|-- it
|-- ja
`-- pxeboot
Finally, more symlinks to create the root of the actual install disk:
[sandeen@stout sda4]$ tree sgiInstall/
sgiInstall/
|-- RedHat
| |-- RPMS -> ../../genhdlist/sgi_disc4/RedHat/RPMS/
| `-- base -> ../../bootGen/RedHat/base/
|-- SRPMS -> ../genhdlist/sgi_disc4/RedHat/SRPMS/
|-- dosutils -> ../bootGen/dosutils/
`-- images -> ../bootGen/images/
This picks up the runtime environment (RedHat/base), boot images
(images), RPMS (RedHat/RPMS) and SRPMS (not necessary for the installer,
but included).
Then create an ISO against the sgiInstall directory:
MKISOFS = mkisofs
ISO = xfs-`date "+%b%d-%H"`.iso
isofs:
$(MKISOFS) -V "SGI XFS 1.1" \
-P SGI -p "xfs-masters@oss.sgi.com" \
-A "SGI Linux XFS 1.1 RH7.3 Installer" \
-b dosutils/autoboot/cdboot.img \
-c boot.cat -J -l -f -r -T \
-o ./$(ISO) sgiInstall
Clear as mud, eh? :)
-Eric
- References:
- xfs 1.1
- From: "Baker, Dick - Perot" <DEBaker@chw.edu>
- Re: xfs 1.1
- From: Eric Sandeen <sandeen@sgi.com>
- Re: xfs 1.1
- From: Michael Best <mbest@emergence.com>