Virtuelle Maschinen · 5 min read · Feb 10, 2026

Die perfekte Xen 3.0.3 Einrichtung für Debian Sarge - Seite 3

4.4 Erstellen einer virtuellen Maschine (domU)

(Bitte beachten: Die Erstellung des Images hängt davon ab, ob Sie Xen aus den Quellen oder aus den Binaries installiert haben. Wenn Sie Xen aus den Binaries installiert haben, beziehen Sie sich bitte auf Kapitel 5.2!)

Als nächstes erstellen wir ein Image einer virtuellen Maschine. Es wird ein grundlegendes Debian-System sein. Dieses Image wird die Vorlage für all unsere virtuellen Maschinen sein. Wann immer wir eine neue virtuelle Maschine erstellen möchten, kopieren wir einfach dieses Image, erstellen eine neue Xen-Konfigurationsdatei und starten die Kopie, und dann können wir die Kopie nach unseren Bedürfnissen konfigurieren (z. B. einen Mailserver, Webserver, DNS-Server usw. darauf installieren). Alle unsere Images werden auf der Partition /vserver gespeichert, die die größte sein sollte, die wir haben.

mkdir /vserver/vm_base  
mkdir /vserver/images

Jetzt erstellen wir eine 1 GB große Image-Datei und ein 500 MB Swap-Image. Am Ende werden die virtuellen Maschinen 1 GB Speicherplatz und 500 MB Swap haben. Dies sind nur Beispielwerte; in der realen Welt möchten Sie möglicherweise mehr Speicherplatz für Ihre virtuellen Maschinen (z. B. zwischen 5 und 30 GB), also erhöhen Sie einfach den Wert von count, um größere Images zu erstellen.

dd if=/dev/zero of=/vserver/images/vm_base.img bs=1024k count=1000  
dd if=/dev/zero of=/vserver/images/vm_base-swap.img bs=1024k count=500

Dann formatieren wir /vserver/images/vm_base.img mit ext3 und vm_base-swap.img mit Swap:

mkfs.ext3 /vserver/images/vm_base.img

Wenn Sie Folgendes sehen, antworten Sie mit y:

/vserver/images/mail.img ist kein Block-Sondergerät.  
Trotzdem fortfahren? (y,n) <-- y
mkswap /vserver/images/vm_base-swap.img

4.4.1 Installieren eines grundlegenden Debian im Image

Um ein grundlegendes Debian-System in unser Image zu installieren, mounten wir das Image, führen debootstrap und einige andere Befehle aus:

mount -o loop /vserver/images/vm_base.img /vserver/vm_base  
debootstrap --arch i386 sarge /vserver/vm_base/ http://ftp2.de.debian.org/debian
chroot /vserver/vm_base  
apt-setup

Sie werden nach folgender Frage gefragt:

Archivzugriffsmethode für apt: <– http

Wählen Sie dann einen nahegelegenen Mirror aus.

Danach bearbeiten Sie /etc/apt/sources.list und ersetzen testing durch stable. So sieht meine /etc/apt/sources.list aus:

vi /etc/apt/sources.list

| deb http://ftp2.de.debian.org/debian/ stable main deb-src http://ftp2.de.debian.org/debian/ stable main deb http://security.debian.org/ stable/updates main |

Dann führen Sie aus

apt-get update

Jetzt richten wir unsere Locales ein. Wenn wir das jetzt nicht tun, sehen wir während der Basis-Konfiguration einige hässliche Warnungen wie diese:

| perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = "en_DE:en_US:en_GB:en", LC_ALL = (unset), LANG = "en_US" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_MESSAGES to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory |

Sie sind nicht ernst, aber hässlich… Also führen wir aus

apt-get install localeconf

Sie werden nach einigen Fragen gefragt:

Wählen Sie die zu generierenden Locales aus. <– en_US ISO-8859-1
Welches Locale sollte das Standardlocale in der Systemumgebung sein? <– en_US
Verwalten Sie die Locale-Konfigurationsdateien mit debconf? <– Ja
Umgebungsvariablen, die das Standardlocale überschreiben sollten: <– nichts auswählen
Vorhandene Locale-Konfigurationsdateien ersetzen? <– Ja
Standard-Systemlocale: <– z. B. en_US ISO-8859-1

Führen Sie als nächstes aus

base-config

Sie sehen ein Menü mit Installationsoptionen. Das machen wir:

  1. Zeitzone konfigurieren
  2. Benutzer und Passwörter einrichten
  3. Pakete auswählen und installieren (wenn es darum geht, Software auszuwählen, die installiert werden soll:, können Sie wählen, was Sie möchten; ich wähle jedoch nichts, weil ich ein grundlegendes System installieren möchte.)
  4. Basis-Systemkonfiguration abschließen

Kümmern Sie sich nicht um die anderen Menüelemente, die benötigen Sie nicht. Dann entfernen wir nfs-common und löschen /etc/hostname:

apt-get remove nfs-common  
rm -f /etc/hostname

Dann bearbeiten Sie /etc/fstab. Es sollte so aussehen:

vi /etc/fstab

| /dev/hda1 / ext3 defaults 1 2 /dev/hda2 none swap sw 0 0 /dev/pts devpts gid=5,mode=620 0 0 none /dev/shm tmpfs defaults 0 0 |

Ändern Sie /etc/network/interfaces, damit es so aussieht:

vi /etc/network/interfaces

| auto lo iface lo inet loopback address 127.0.0.1 netmask 255.0.0.0 |

Dann erstellen Sie /etc/hosts:

vi /etc/hosts

| 127.0.0.1 localhost.localdomain localhost # Die folgenden Zeilen sind wünschenswert für IPv6-fähige Hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts |

Dann bearbeiten wir die Skripte /etc/init.d/hwclock.sh und /etc/init.d/hwclockfirst.sh und fügen die Zeile exit 0 ganz am Anfang hinzu, da diese beiden Skripte sonst wirklich den Bootvorgang unserer virtuellen Maschinen verlangsamen:

vi /etc/init.d/hwclock.sh

| #!/bin/sh # hwclock.sh Set and adjust the CMOS clock, according to the UTC # setting in /etc/default/rcS (siehe auch rcS(5)). # # Version: @(#)hwclock.sh 2.00 14-Dez-1998 [email protected] # # Patches: # 2000-01-30 Henrique M. Holschuh <[email protected]> # - Kleinere kosmetische Änderungen in einem Versuch, neuen # Benutzern zu helfen, etwas zu bemerken, das ihre Uhren # während des Starts/Herunterfahrens ändert. # - Kommentare hinzugefügt, um Benutzer auf hwclock-Probleme # aufmerksam zu machen und das Verändern ohne richtige # Dokumentation zu entmutigen. # WARNUNG: Bitte lesen Sie /usr/share/doc/util-linux/README.Debian.hwclock # bevor Sie diese Datei ändern. Andernfalls riskieren Sie # schwerwiegende Uhrprobleme. exit 0 [...] |

vi /etc/init.d/hwclockfirst.sh

| #!/bin/bash # hwclockfirst.sh Setzt die Systemuhr auf die Hardwareuhr, gemäß der UTC # Einstellung in /etc/default/rcS (siehe auch rcS(5)). # # WARNUNG: Läuft ohne Schreibberechtigung auf /etc und bevor # alle Dateisysteme gemountet werden! Wenn Sie Schreibberechtigung # benötigen, um etwas zu tun, tun Sie es in hwclock.sh. # # WARNUNG: Wenn Ihre Hardwareuhr nicht in UTC/GMT ist, muss dieses Skript # die lokale Zeitzone kennen. Diese Information ist # in /etc/localtime gespeichert. Das könnte ein Problem sein, wenn # Ihr /etc/localtime ein Symlink zu etwas in # /usr/share/zoneinfo ist UND /usr nicht in der Root- # Partition ist! Der Workaround besteht darin, TZ entweder # in /etc/default/rcS oder an der richtigen Stelle unten zu definieren. # # DENKEN SIE DARAN, AUCH hwclock.sh ZU BEARBEITEN! # Setzen Sie dies auf alle Optionen, die Sie hwclock möglicherweise geben müssen, # wie z. B. den Hardware-Uhrtyp für Alphas. exit 0 HWCLOCKPARS= [...] |

Jetzt verlassen wir die chroot-Umgebung:

exit

Dann kopieren wir die Kernel-Module in unser virtuelles Maschinen-Image und unmounten das Image:

cp -dpR /lib/modules/2.6.16.29-xenU /vserver/vm_base/lib/modules/  
mv /vserver/vm_base/lib/tls /vserver/vm_base/lib/tls.disabled  
fuser -k /vserver/vm_base  
umount /vserver/vm_base

Jetzt ist unsere Vorlage für das virtuelle Maschinen-Image bereit!

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.