Endian Firewall Community 2.11 für den Einsatz unter Xen präparieren
Die Version 2.11 bringt bereit einen eigenen Kernel mit Xen-Patches mit. Bei der Installation kann man durch Eingabe von xen veranlassen, dass statt des normalen Kernels der mit den Xen-Patches installiert wird. Die Installation setzt also zunächst ein physisches System oder eine Virtualiserungsumgebung voraus, die einen vollständigen Rechner nachbildet (VMware, QEmu, Xen-HVM-Domain etc.).
Ich habe es mit einer Xen-HVM gemacht, die ich mit folgenden Config-File gestartet habe. Die virtuelle Platte der Installation ist dabei ein LVM-Volume:
builder='hvm' memory='128' shadowmemory='8' name='efw211' device_model='/usr/lib/xen-3.1.0-1/bin/qemu-dm' boot='c' disk=['phy:/dev/data/efw211,ioemu:hda,w',' file:/mnt/isos/EFW-COMMUNITY-2.1.1-200705240013.iso,hdc:cdrom,r'] vnc=1 vncviewer=1 vncpasswd="peter" vif = [ 'type=ioemu, bridge=intern' ]
Anschließend bindet man die enstandenen Platten in die Konfiguration für ein paravirtualisiertes System (PV) ein, also eine Abwandlung der Konfigurationsdatei:
kernel="/boot/efw211/vmlinuz-2.6.9-55.EL.endian18-xenU" ramdisk="/boot/efw211/initrd-2.6.9-55.EL.endian18-xenU.img" memory='128' name='efw211pv' disk=['phy:/dev/data/efw211,ioemu:hda,w'] vif = [ 'bridge=intern' ]
Zum Starten als PV-DomU braucht es einen Kernel und eine Init-RAM-Disk. Die kann man aus der Installation stehlen, indem man die Partition mit den Daten mountet, das geht über das loop-Dateisystem erfordert aber die Angabe des richtigen Offsets oder ein Skript, das das automatisch übernimmt, etwa das aus: http://thread.gmane.org/gmane.linux.kernel/314454/focus=314630. Xen bringt ein spezielles Mount-Kommando gleich mit, packt es unter Debian aber leider nicht in den Pfad. nach dem Mounten kopiert man die Kernel- und Init-RAM-Disk-Dateien ins Host-Dateisystem und entmountet die Partition wieder:
/usr/lib/xen-3.1.0-1/bin/lomount -diskimage /dev/data/efw211 -partition 1 /mnt/temp/ mkdir /boot/efw211 cp /mnt/temp/initrd-2.6.9-55.EL.endian18-xenU.img /mnt/temp/vmlinuz-2.6.9-55.EL.endian18-xenU /boot/efw211/ umount /mnt/temp
Der erste Versuch, das System zu booten, schlägt fehl, weil es keinen Zugriff auf die Block-Devices bekommt. und entsprechend sein root-Filesystem nicht mounten will. Das Neubauen einer Init-RAM-Disk, in der die Xen-eigenen Module eingebaut sind, verspricht Abhilfe:
/usr/lib/xen-3.1.0-1/bin/lomount -diskimage /dev/data/efw211 -partition 3 /mnt/temp/ chroot /mnt/temp mkinitrd --with=xenblk --with=xennet /tmp/initrd.img 2.6.9-55.EL.endian18-xenU