(→How do I get started?: fix repo ids) |
|||
Line 29: | Line 29: | ||
# ==== REPOS ==== | # ==== REPOS ==== | ||
repo --name=fedora --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-16&arch=$basearch | repo --name=fedora --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-16&arch=$basearch | ||
repo --name= | repo --name=updates --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f16&arch=$basearch | ||
repo --name= | 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 | # And an extra line in case you have some local changes |
Revision as of 17:24, 9 August 2011
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 ==== 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 # core stuff that isn't in @base kernel* dracut* # basic groups @filesystems @base-x # size removals -*-devel -*-src -*javadoc* -xorg-x11-docs -kernel-doc -frysk -*gcj* -kde* %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
Try changing the root=
argument to root=live:/dev/sr0
.
Slow
Treebuilder is slower. The first culprit looks like dracut.
number | execve |
---|---|
7606 | /bin/egrep |
2578 | /bin/cp |
1633 | /lib64/ld-linux-x86-64.so.2 |
1434 | /usr/bin/ldd |
1413 | /bin/ln |
1303 | /usr/local/bin/ln |
1303 | /usr/bin/ln |
1087 | /sbin/modinfo |
The second culprit is not honoring $TMPDIR, and not putting yumroot-$PID and installroot-$PID inside it.
count | filename |
---|---|
1693845 | * |
253387 | $DESTDIR/yumroot/... |
79977 | $DESTDIR/installroot/... |
44486 | /etc/xattr.conf |
41713 | /proc/self/task/31818/attr/fscreate |
25919 | /proc/self/task/1070/attr/fscreate |
20220 | /usr |
19487 | /etc/localtime |
18485 | /lib64/libc.so.6 |
18294 | /usr/share |
18184 | /etc/ld.so.cache |
18074 | /etc/ld.so.preload |
17213 | /usr/bin/ldd |
14471 | /bin/egrep |
9861 | /usr/share/locale |
9090 | /var/log/dracut.log |
9013 | /dev/null |
7529 | /sbin/modprobe |
6110 | . |