Openlab 01 - Workshop Virtualisierung/UML

Aus Opennet
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

UML - Usermode Linux

Hostsystem

Am Hostsystem muss man keine Aenderungen vornehmen. Aber es gibts zwei Punkte die man erwaehnen sollte.

SKAS-Patch

Der SKAS3-Patch wird auf den Kernel des Hostsystems angewant und bringt eine deutlich Geschwindigkeitssteigerung.

# wget http://www.finnie.org/software/uml/2.6.28-skas3.patch
# patch -p0 < 2.6.28-skas3.patch

TUN-Device

Damit sich das UML-System auch mit der Aussenwelt unterhalten kann, bietet sich eine Anbindung per TAP-Device an. Falls Euer Kernel keine TUN/TAP-Devices unterstuetzt, kann dies unter:

- Device Drivers -> Network device support -> Universal TUN/TAP device driver support

aktiviert werden.

Guestsystem

Das Gastsystem besteht aus zwei Teilen, dem UML-Kernel und einem Dateisystem. UML wird in Linux als eigenstaendige Architektur gehandelt und so ist dies beim compilen mit zu uebergeben.

Kernel

Den Kernel fuer das Guestsystem kann man aus den gleichen Quellen bauen, wie auch fuer das Hostsystem. Wichtig ist das Parameter "ARCH=um" beim compilen.

Kernel downloaden

# wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.tar.bz2

Archiv entpacken

# tar xvfj linux-2.6.28.tar.bz2

evtl. vorhandene vorherige Compilereste loeschen

# make mrproper ARCH=um

ncurses-menu zur Konfiguration

# make menuconfig ARCH=um

Den Kernel compilen

# make linux ARCH=um

Module compilen

# make modules ARCH=um

Kernel "strippen"

# strip vmlinux

Module in "root_fs" installieren

# make modules_install ARCH=um INSTALL_MOD_PATH=../root_fs

Filesystem

Als Dateisystem kommt der Einfach halt wegen ext2 zum Einsatz. Mit entsprechendem Support im Kernel kann man natuerlich auch ein anderes FS nehmen.

Wir erzeugen eine Datei "disk.img" mit der Groesse von 1GB.

# dd if=dev/zero of=disk.img bs=1024 count=$[1024 * 1024]

Darauf legen wir ein Ext2-Dateisystem an

# mke2fs -Fq disk.img

Ein Ordner zum FS mounten

# mkdir root_fs

"disk.img" nach "root_fs" mounten

# mount -o loop disk.img root_fs

debootstrap erzeugt in "root_fs" eine Installation von Debian etch

# debootstrap etch root_fs

Die fstab editieren und die entsprechenden Dateisysteme mit mountpoints eintragen

# vi root_fs/etc/fstab
 # /dev/ubd0  /  ext2  defaults  0  0
 # proc  /proc  proc  defaults  0  0

Falls nicht vorhanden, die "source.list" erzeugen

# touch /etc/apt/source.list


Network

Zum Netzwerken kommt TUN/TAP zu Einsatz

Hostsystem

Auf dem Hostsystem sicherstellen, dass TUN/TAP-Support vorhanden ist.

Das TAP-Device dem Nutzer <uml-user> zuweisen

# tunctl -u <uml-user>

UML im nachhinein (hotplug) eine Netzwerkkarte unterschieben

# uml_mconsole UMID config eth0=tuntap,,,IP

Guestsystem

eth0 mit einer IP im Netzwerk hochfahren

# ifconfig eth0 IP+1 up

Defaultroute eintragen

# route add default gw IP
Meine Werkzeuge
Namensräume

Varianten
Aktionen
Start
Opennet
Kommunikation
Karten
Werkzeuge