=== Installation ===

Nach kurzer Suche finde ich das Paket "rootstrap":

  apt-get install rootstrap

In der /etc/rootstrap/rootstrap.conf habe ich den Abschnitt für die
Netzwerkeinstellungen angepaßt. Dann "rootstrap root_fs"
ausgeführt. Das ging bei mir nur als root (lt. Manpage sollte es
auch als User gehen, aber ich weiß nicht, was man dazu noch tun
muss). 

Ich habe folgende Einträge in der /etc/network/interfaces,
Gastgeber und UML erhalten ihre IP-Adresse vom DHCP-Server:
(Pakete bridge-utils und uml-utilities müssen installiert sein).

  auto lo  eth0 tap0 br0
  iface lo inet loopback
  iface eth0 inet manual
        up ifconfig eth0 0.0.0.0 promisc up
  iface tap0 inet manual
        pre-up tunctl -u umluser -t tap0
        up ifconfig tap0 up
        down ifconfig tap0 down
  iface br0 inet dhcp
        bridge_ports eth0 tap0
        bridge_fd 1
        bridge_stp off
        bridge_hello 1
        down ifconfig br0 down

Beim "umluser" handelt es sich um die Benutzer-Kennung unter der
der UML mit Netzwerk-Zugriff über tap0 gestartet wird, z.B. mit:
 
  ./linux ubd0=debian31 ubd1=swap eth0=tuntap,tap0 con=null

// PeterHormanns

=== User Mode Linux startet ===

An dieser Stelle gibt's den ersten Erfolg zu vermelden:

Mit "linux" startet das User Linux. Ein Problem hat das System beim
RW-Mounten des Root Filesystems: Klar, die Datei "root_fs" darf nur
von root geschrieben werden, ich hab's aber unter meinem User
gestartet. Also: "chown user root_fs" aufgerufen und beim nächsten
Versuch gehen sechs x-term-Fenster für die sechs virtuellen
Konsolen meines User-Linux auf! Als root angemeldet habe ich dann
zuerst in der /etc/inittab die Konsolen zwei bis sechs
auskommentiert.

Aber wozu habe ich beim Erzeugen des Filesystem-Image die ganzen
Netzwerkparameter angegeben? Das Netzwerk ist nicht konfiguriert
:-(


=== Das Netzwerk auf dem host System konfigurieren ===

Damit die Interface auch gebunden werden können, werden 2
Kernelmodule benötigt: tun und netlink_dev

       $ su
        Password:
        # modprobe tun && modprobe netlink_dev
        # [ -c /dev/net/tun ] || ( mkdir -p /dev/net && mknod -m 660 /dev/net/tun c 10 200 )
        # tunctl -u user
        Set 'tap0' persistent and owned by uid 1000
        # chmod 660 /dev/net/tun
        # chown root.uml-net /dev/net/tun                     <-- der UML-User muss in der Gruppe uml-net sein
        # ifconfig tap0 192.168.1.2 up
        # echo "1" > /proc/sys/net/ipv4/ip_forward
        # route add -host 192.168.1.3 dev tap0                <-- use the ip from the uml here
        # echo "1" > /proc/sys/net/ipv4/conf/tap0/proxy_arp   <-- das tap device des tunctl Kommandos oben angeben
        # arp -Ds 192.168.1.3 eth0 pub
        # exit


=== Das Netzwerk innerhalb der UML konfigurieren ===

Schade, die Netzwerkparameter aus der rootstrap.conf waren wohl nur
für die Installation. Also zunächst muss die Netzanbindung nach
aussen -- also zum Gast-System hin -- beim Aufruf angegeben werden:

  linux eth0=tuntap,,,192.168.x.y

Dabei gilt "tuntap" für ein 2.4.x System, sonst "ethertap"
einsetzen. Die IP-Adresse ist eine freie aus dem Netz, sie kann mit
der IP des Gast-Systems übereinstimmen. Es ist nicht die IP des
UserModeLinux Systems! Das funktioniert für normale User nur, wenn
man ihnen zuvor das Recht gibt /usr/lib/uml/uml_net auszuführen!

Nach dem Starten des Systems lassen sich dann mit

 # ifconfig lo 127.0.0.1 up
 # ifconfig eth0 192.168.x.z up
 # route add default gw 192.168.x.1

die Interfaces eth0 und lo starten.

Das läßt sich wie üblich durch ein /etc/network/interfaces unter
Debian einstellen. Dazu muss noch der /sbin/start-stop-daemon
aktiviert werden, er ist nämlich in /sbin/start-stop-daemon.REAL
umbenannt worden! Sonst startet garnichts.

/begin 2003-07-07 ping-panther at freenet.de

Das mit start-stop-daemon klingt mir nach einem in die Hose
gegangenen debootstrap-Lauf.  Ab und zu klemmte da auch was bei
mir, aber diesen Fehler hab ich so nicht zu sehen bekommen.  Es mag
auch spezifisch für die debootstrap/rootstrap-Kombination sein.

Meine debootstrap-Wirren waren lediglich pcmcia-cs-spezifisch. 
Beim Generieren von Pototo-Roots ignoriert debootstrap irgendwie
das --exclude=pcmcia-cs, hierfür hab ich das Skript in
/usr/lib/debootstrap angepaßt, für Woody, Sarge und Sid klappt es,
pcmcia-cs per --exclude= auszublenden.  Und Bei Sid ist derzeit
(gegen Ende Juni-2003 zuletzt probiert) /etc/default/rcS nicht
vorhanden.  Aber das ist ja Sid... "Sid is dangerous"... ;-)

Höherlevelige Root-Filesystem-Generatoren hab ich nicht angeschaut.

/end

Bisher ist es mir gelungen in meinem ersten UserModeLinux System
mit apt-get denn sshd und apache zu installieren. Sieht also recht
gut aus!

Auf einem Gastsystem mit Kernel 2.2.20 habe ich das rootstrap
jedoch nicht auf Anhieb zum laufen gebracht und dann lieber auf
Kernel 2.4.18 migriert.