[ Software | Consulting | Ramblings | blog | Photos | Hacks | Humor Archive | Home Automation | Chris Farris ]

Creating your own SuSE distro

Purpose
This document describes how to create your own SuSE distribution. You can configure it to autoinstall, tweak the package selection, and even run your own scripts. I've compiled this document because SuSE's own docs are less than useful and a lot of this info I have developed by trial-and-error. Everything I've done is based on SuSE 8.1.

My impetus for delving into this mess was to create an autoinstall customized distribution for my HomeAuto project.

AutoInstall
SuSE supports automatic installation via autoyast. SuSE's documentation can be found here. Nashif's documents vary between the different version numbers, so I'd scan all the versions. For example the 8.1 howto doesn't give you the XML tags needed to setup a static ethernet interface, you can find that info in the 8.0 howto.

Contrary to what the howto says, the only place I've gotten an autoinst.xml to be recognized is within the initrd image. The initrd image is located in ./boot/loader and the image is gzipped (mv initrd initrd.gz ; gunzip initrd.gz). Once decompressed you can mount the initrd image with:

mount -o loop=/dev/loop initrd /mnt

This is the autoinst.xml I'm using right now.

Making the Distro CD
If you want to tweak the packages available on the CD, put the RPMs you want in the ./suse/i586 and ./suse/noarch directories. You then need to run:

md5sum * > MD5SUMS
in those directories. Then run:
/usr/lib/YaST2/bin/create_package_descr -d fullpathto/CD/suse -l english
to build the new package databases. CD to the root of the CD and then run:
rm INDEX.gz ls-lR.gz
ls -lR > ls-lR
gzip ls-lR
find . > INDEX
gzip INDEX

The file ./boot/loader/isolinux.cfg contains the startup information for the CD. You can append any paramaters to the kernel or to Yast here. I've added a new line like:

label autoinstall
kernel linux
append initrd=initrd ramdisk_size=65536 autoyast=default install=cdrom
and set the first line to autoinstall.

Finally you need to create the CD image. Google told me nothing as to how this was created, luckly you can find the mkisofs command by doing a strings on the raw cd image. This is the mkisofs command I use (from inside the CD tree):

mkisofs -p "Room17 Enterprises, chris@room17.com" -P "SuSE Linux AG, suse@suse.de" -r -T -J -pad -no-emul-boot -boot-load-size 4 -boot-info-table -b boot/loader/isolinux.bin -c boot/boot.catalog -hide boot/boot.catalog -hide-joliet boot/boot.catalog -V SU810.001 -o ../SuSE-8.1-Room17-HomeAuto-v.01.iso -A SuSE-Linux-Professional-8.1-Room17-HomeAuto-v.01 .


Questions or comments should be sent to: Chris Farris chris at room17 dot com
Copyright 2000, Room17 Enterprises, all rights reserved.
File Last modified on: Monday, 05-Aug-2002 15:52:24 EDT