What's treebuilder?
Treebuilder is the new branch of Lorax which builds Anaconda images that boot like regular Live images. The advantages of this approach are:
- The installer uses much less RAM and starts up much faster than it did in F15
- The initrd is a normal dracut image, so:
- There's a shell in
initrd.img
- No more maintaining the ancient, crusty
loader
codebase. yay!
- There's a shell in
initrd.img
is under 20MB, so PPC systems can netboot it
How do I get started?
1. set up an F16 chroot
- this is optional for x86 systems but required for ppc
- see http://sharkcz.livejournal.com/8649.html for detailed directions
- NOTE: you don't need a separate partition for this - just creating a directory named
/f16
will work OK
2. yum install pungi fedora-kickstarts
(inside the chroot if you're doing that)
3. Install a copy of the treebuilder branch:
git clone git://git.fedorahosted.org/git/lorax cd lorax git checkout treebuilder make sudo make install
4. Grab a kickstart
You can use fedora-install-fedora.ks
from the fedora-kickstarts
package, or you can use this minimized version if you're not going to build full DVD images:
# Minimal Fedora kickstart - basically just for testing anaconda # ==== REPOS ==== # pick one of rawhide or the current (branched) release #repo --name=rawhide --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=$basearch # -or- repo --name=fedora --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-16&arch=$basearch #repo --name=updates --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f16&arch=$basearch repo --name=updates-testing --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f16&arch=$basearch # And an extra line in case you have some local changes #repo --name=localrepo --baseurl=file:///srv/pungi/localrepo --cost=1 %packages # This is what ends up in the Packages dir and on the DVD. # It doesn't change the contents of the anaconda runtime. # This is a very minimal package set because we only care about the images (boot.iso etc.) @base %end
Save that as /srv/pungi/anacondatest.ks
.
5. Run pungi Here's the script I use:
#!/bin/bash if [ $(getenforce) == Enforcing ]; then sudo setenforce 0 echo "turning off SELinux enforcing" fi echo "removing /srv/pungi/test, one moment..." sudo rm -rf /srv/pungi/test sudo pungi --nosource --nodebuginfo --destdir=/srv/pungi/test -c /srv/pungi/anacondatest.ks -G -C -B "$@"
Testing / troubleshooting
Where are the .rpm packages?
OK, I've grokked the output format, which I see in $DESTDIR/os/images/boot.iso instead of $DESTDIR/iso/Fedora-16-x86_64-DVD.iso. (The descriptive filename and volume label of pungi come in handy, although spaces in the volume label cause trouble on the boot command line.) After burning boot.iso then the DVD does boot. But I see no *.rpm packages anywhere for anaconda to install, even after "offline" mounting all the layers of boot.iso. A related symptom is that my former .iso created by pungi was 2.3GB (my .ks is a full release DVD, except I omit all @Languages), while boot.iso is only 149MB. Squashfs on an entire filesystem might have a better compression ratio than on individual files, but I'm not ready to believe a factor of 15.
Initial dialogs
The first two dialogs for language and keyboard are in VGA character-cell text-mode "graphics". As far back as F13 or so these have been in X11 graphics.
$HOME ?
During install from boot.iso DVD, then /mnt/sysimage has a "home/<<me>>" directory which contains a copy of my user $HOME at the time I ran pungi, even though I ran pungi within "su; cd" which set $CWD to /root.
Making a USB stick
These are live images - use livecd-iso-to-disk
.
Can't find root device when booting ISO image
Currently (Sep. 9) the DVD images lack a proper root=
argument in their bootloader config. Change the root=
argument to root=live:/dev/sr0
(or add it if it doesn't exist).
On Power Mac systems, the CD driver is too old for udev to be able to handle setting up the /dev/disk/by-label
links, so booting will fail. As a workaround, try root=live:/dev/hda
.