From Fedora Project Wiki
Line 79: Line 79:
   root=ID=ata_SONY_DVD_RW_AW_G-170A
   root=ID=ata_SONY_DVD_RW_AW_G-170A
also fails [that name is in my /dev/disk/by-id].
also fails [that name is in my /dev/disk/by-id].
=== 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||.
|}

Revision as of 00:37, 6 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:

  1. The installer uses much less RAM and starts up much faster than it did in F15
  2. The initrd is a normal dracut image, so:
    • There's a shell in initrd.img
    • No more maintaining the ancient, crusty loader codebase. yay!
  3. 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

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=fedora --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f16&arch=$basearch
repo --name=fedora --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 "$@"

Troubleshooting

 TODO.

Boot problem 2011-08-05 0000 UTC

Upon boot of DVD, then dracut drops to shell with the message:

 Warning: No root device "live:/dev/disk/by-label/Fedora" found.

The file is present as

 /dev/disk/by-label/Fedora 16 x86_64 DVD

with those three spaces. Reboot with quoting (single, or double, or backslash) also fails. Altering the boot parameter to

 root=ID=ata_SONY_DVD_RW_AW_G-170A

also fails [that name is in my /dev/disk/by-id].

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 .