Unterschiede zwischen den Revisionen 3 und 4
Revision 3 vom 2012-06-13 21:26:22
Größe: 3988
Autor: anonym
Kommentar: converted to 1.6 markup
Revision 4 vom 2023-08-19 18:15:43
Größe: 0
Autor: phil
Kommentar: Veraltet
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 1: Zeile 1:
== 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
  * nett in deutsch: http://www.mathematik.uni-marburg.de/~odb/usermodelinux-howto.html
 
==== 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.