Ausgehend von der Situation, dass eine ursprüngliche Musterlösungsinstallation auf LVM-Volumes der Xen-Dom0 kopiert wurde (oder die ursprüngliche Installation sich bereits auf LVM-Volumes befand, die nun von der Dom0 aus erreichbar sind) müssen an der Originalinstallation noch einige Änderungen vorgenommen werden.
Dazu werden die Dateisysteme der Originalinstallation in der Dom0 gemountet und anschließend mit chroot in dieses Dateisystem gewechselt. Nun können dort Pakete installiert werden, Dateien angepasst werden u.ä.
mount -o bind /dev/ /target/dev/ mount -o bind /proc/ /target/proc/ chroot /target/
Sicherstellen, dass die Namensauflösung funktioniert und schauen ob das Netz läuft:
# host web.de web.de A 217.72.195.42 # ping web.de PING web.de (217.72.195.42) 56(84) bytes of data. 64 bytes from ha-42.web.de (217.72.195.42): icmp_seq=1 ttl=55 time=29.5 ms 64 bytes from ha-42.web.de (217.72.195.42): icmp_seq=2 ttl=55 time=29.7 ms
apt-get install linux-image-2.6-xen-686 apt-get install libc6-xen
In der Datei /boot/grub/menu.lst
kann man alle Startnenüeinträge löschen und statt dessen einen neuen anlegen:
## ## End Default Options ## title Debian GNU/Linux, kernel 2.6.18-6-xen-686 root (hd0,0) kernel /boot/vmlinuz-2.6.18-6-xen-686 root=/dev/xvda1 ro initrd /boot/initrd.img-2.6.18-6-xen-686 savedefault ### END DEBIAN AUTOMAGIC KERNELS LIST
Außerdem sollte man in der Datei /boot/grub/device.map
als festplattendevice /dev/xvda
eintragen, damit die Installation neuer Kernel später wieder automatisch klappt.
(hd0) /dev/xvda
Dabei sollte man natürlich den Xen-Kernel angeben, den man zuvor installiert hat.
Erklärung zum root FS
In der alten stehen die physikalischen Devices des ursprünglichen Servers:
# /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 /dev/mapper/alterserver-root / ext3 defaults,errors=remount-ro 0 1 /dev/sda1 /boot ext3 defaults 0 2 /dev/mapper/alterserver-usr /usr ext3 defaults 0 2 /dev/mapper/alterserver-home /home ext3 defaults,usrquota,grpquota 0 2 /dev/mapper/alterserver-var /var ext3 defaults,noatime,usrquota,grpquota 0 2 /dev/mapper/alterserver-swap none swap sw 0 0 /dev/mapper/alterserver-cups /var/spool/cups ext3 defaults 0 2 /dev/hda /media/cdrom0 udf,iso9660 user,noauto 0 0 LABEL=BACKUP /media/backup2l ext2 defaults,noauto 0 0 none /tmp tmpfs defaults 0 0
In der neuen stehen die virtuellen Devices der XEN Virtualisierung:
Anpassungen für System in mehreren Partitionen
# /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 /dev/xvda1 / ext3 defaults,errors=remount-ro 0 1 /dev/xvda2 none swap sw 0 0 none /tmp tmpfs defaults 0 0
Unter XEN gibt es nur eine Konsole, der Wechsel mit ALT-F1 u.ä. geht nicht, drum werden die abgeschaltet, indem man die Datei /etc/inittab anpasst:
# Note that on most Debian systems tty7 is used by the X Window System, # so if you want to add more getty's go ahead but skip tty7 if you run X. # 1:2345:respawn:/sbin/getty 38400 tty1 2:23:respawn:/sbin/getty 38400 tty2 3:23:respawn:/sbin/getty 38400 tty3 4:23:respawn:/sbin/getty 38400 tty4 5:23:respawn:/sbin/getty 38400 tty5 6:23:respawn:/sbin/getty 38400 tty6
Neu:
# Note that on most Debian systems tty7 is used by the X Window System, # so if you want to add more getty's go ahead but skip tty7 if you run X. # 1:2345:respawn:/sbin/getty 38400 tty1 #2:23:respawn:/sbin/getty 38400 tty2 #3:23:respawn:/sbin/getty 38400 tty3 #4:23:respawn:/sbin/getty 38400 tty4 #5:23:respawn:/sbin/getty 38400 tty5 #6:23:respawn:/sbin/getty 38400 tty6
exit # umount /target/dev/ # umount /target/proc/ # umount /target
Zurück in der Dom0 muss nun eine Konfiguration für den virtuellen Server erstellt werden, bevor man diesen starten kann. Dazu legt man die Datei /etc/xen/paedmlserver
an und füllt diese mit dem folgenden Inhalt:
memory='960' name='paedmlserver' execfile('/etc/xen/ctsrvcommon') bootloader = '/usr/bin/pygrub' root='/dev/xvda1 ro' disk = [ 'phy:/dev/hostsys/aegtest,xvda1,w', 'phy:/dev/hostsys/aegtestswap,xvda2,w' ] vif = [ 'mac='+mymac+',bridge=breth1' ] extra="console=xvc0 xencons=tty"
Anschließend kann man die virtualisierte Musterlösung mit dem Befehl
xm create paedmlserver -c
starten.