Unterschiede zwischen den Revisionen 2 und 3
Revision 2 vom 2005-04-11 10:33:56
Größe: 3988
Autor: anonym
Kommentar: + deutscher howto link
Revision 3 vom 2012-06-13 21:26:22
Größe: 3988
Autor: anonym
Kommentar: converted to 1.6 markup
Es wurden keine Änderungen gefunden!

UML

allgemein

  • user mode linux ist im wesentlichen ein kernel patch fuer das linux, das als prozess laufen soll (das dann in der doku UML heisst).
  • die UMLs koennen von Usern gestartet werden -> nette Privilege seperation!

  • das Ganze kostet Performance, es gibt aber einen patch (skas) fuers host system, der auf jeden Fall eingespielt werden sollte, weil er auch dolle Sicherheitsfeatures hat, die das jail sichern.
    • apt-get install kernel-patch-skas
  • es gibt schoene Doku auf der Homepage und so: apt-get install user-mode-linux-doc

policy fuer sao2

  • Tun/Tap einrichten, z.B. mit 192.168.5.n fuer die Host-Enden des tun devices und 192.168.4.n fuer die UMLs. Konventionsvorschlag: n ist an beiden Enden des tun devices gleich.
  • was ein paar Freaks gemacht haben:

The host firewall accepts no syn packets at all on its external IP address. All syn packets must be directed to the UML kernel IP address to be accepted.

  • mehr spannende details von deren setup unter /usr/share/doc/user-mode-linux-doc/html/case-studies.html auf deiner Kiste ;>

  • jedes uml kriegt nen eigenen user, alle in einer Gruppe?

wie geht was bestimmtes genau:

  • image besorgen:
    • vorcompiliert: apt-get install user-mode-linux (sollte eigentlich reichen)
    • sourcen (: besser erstmal apt-get install user-mode-linux-doc, dann: dillo /usr/share/doc/user-mode-linux-doc/html/compile.html)
      • da steht: kernelsourcen ziehn, passenden patch von http://sourceforge.net/project/showfiles.php?group_id=429 besorgen

      • mkdir /usr/src/uml
      • cd /usr/src/uml
      • tar -xzvf linux-2.4.0-prerelease.tar.bz2
      • cd /usr/src/uml/linux
      • cat uml-patch-2.4.0-prerelease.bz2 | bunzip2 - | patch -p1
      • make menuconfig ARCH=um
        • devfs anlassen, oder folgendes im fs machen: for i in 0 1 2 3 4 5 6 7; do mknod ubd$i b 98 $i; done
        • dann auch /etc/fstab und /etc/inittab anpassen
      • make linux ARCH=um
      • make modules ARCH=um
      • mount root_fs mnt -o loop
      • make modules_install INSTALL_MOD_PATH=pwd/mnt ARCH=um

      • umount mnt
  • netz einrichten:
    • aufm host als root tunctl -u <uid> tippen, wobei uid die UserID oder der Name des users ist, der das uml starten wird. Das tool sagt, welches tap device eingerichtet wurde (ab jetzt $TAP).

    • aufm host ist(am besten als Boot-UML-Script):
      • ifconfig $TAP $HOST_IPADDRESS up
      • echo 1 > /proc/sys/net/ipv4/ip_forward

      • route add -host $UML_IPADDRESS dev $TAP
      • echo 1 > /proc/sys/net/ipv4/conf/$TAP/proxy_arp

      • arp -Ds $UML_IPADDRESS eth0 pub
    • host: chmod 666 /dev/net/tun (wenn wir den usern trauen, ansonsten debians uml-net Gruppe)
    • UML mit folgender commandline starten: eth0=tuntap,$TAP
    • im UML /etc/network/interfaces:
      • auto eth0
      • iface eth0 inet static
      • address 192.168.4.1
      • netmask 255.255.0.0
      • network 192.168.0.0
      • gateway 192.168.5.1 #uml host
    • TODO aus irgendeinem abgefahrenen Grund kommt das UML-eth0-device nachm down nicht mehr up.. -> nicht downen hehe

    • damit die lokalen clients die Kiste sehen, muessen sie netmask 192.168.0.0 haben.
  • laufenden uml-kernel als root killen (wenns nur einer ist):
    • kill ps -e | grep linux| head -1| cut -d " " -f 2 && rm -r ~/.uml/*

FAQ

  • Q: Kernel panic: outer trampoline didn't exit with SIGKILL
    • A: UML Kernel ist zu alt fuer den Host. Neueren nehmen.
  • Q: Ich hab das test-rootfs von deren Seite gezogen, und beim booten hoerts nach cron auf/ hat schon vorher kernel panic
    • A: /etc/fstab Zeile auf /dev/ubd0 aendern, in /etc/inittab 4 Zeilen auf folgendes veraendern:
      • 0:2345:respawn:/sbin/getty 38400 tty1
      • #1:2345:respawn:/sbin/getty 38400 tty2
      • #2:2345:respawn:/sbin/getty 38400 tty3
      • c:2345:respawn:/sbin/getty 38400 ttyS0

Creative Commons Lizenzvertrag
This page is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.