<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Das Rootserver-Experiment &#187; Tips und Tricks</title>
	<atom:link href="http://blog.rootserverexperiment.de/category/tips-und-tricks/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.rootserverexperiment.de</link>
	<description>Erlebnisse eines Rootserver (Beinahe-) Neulings</description>
	<lastBuildDate>Sat, 04 Sep 2010 13:18:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Ubuntu 10.04 als DomU (Xen) &#8220;debootstrappen&#8221;</title>
		<link>http://blog.rootserverexperiment.de/2010/09/01/ubuntu-lucid-xen4-domu-debootstrappen/</link>
		<comments>http://blog.rootserverexperiment.de/2010/09/01/ubuntu-lucid-xen4-domu-debootstrappen/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 10:00:40 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips und Tricks]]></category>
		<category><![CDATA[Xen]]></category>

		<guid isPermaLink="false">http://blog.rootserverexperiment.de/?p=571</guid>
		<description><![CDATA[Nach vier Jahren ist es mal wieder Zeit für ein kleines Tutorial zur Installation von Ubuntu-domUs via debootstrap. Dank Aufnahme der pvops-DomU in den Vanilla-Kernel bringt Ubuntu einen Kernel mit, der lediglich kleine Anpassungen am Initramfs benötigt, um sauber auf einem aktuellen Xen 4.0 zu starten.
Installation von Debootstrap
Zuerst muss debootstrap vorhanden sein, am einfachsten natürlich [...]]]></description>
			<content:encoded><![CDATA[<p>Nach <a href="http://blog.rootserverexperiment.de/2006/07/22/ubuntu-als-domu-xen-debootstrappen/">vier Jahren</a> ist es mal wieder Zeit für ein kleines Tutorial zur Installation von Ubuntu-domUs via <tt>debootstrap</tt>. Dank Aufnahme der pvops-DomU in den Vanilla-Kernel bringt Ubuntu einen Kernel mit, der lediglich kleine Anpassungen am Initramfs benötigt, um sauber auf einem <a href="http://blog.rootserverexperiment.de/2010/08/30/xen-401-pvops-dom0-ubuntu1004/">aktuellen Xen 4.0</a> zu starten.</p>
<h3>Installation von Debootstrap</h3>
<p>Zuerst muss <tt>debootstrap</tt> vorhanden sein, am einfachsten natürlich mit <tt>apt-get install debootstrap</tt>. Unter Ubuntu kann mit <tt>debootstrap</tt> auch die Folgeversion installiert werden. Debian-User können das Ubuntu-Debootstrap direkt von <a href="http://archive.ubuntu.com/ubuntu/pool/main/d/debootstrap/">http://archive.ubuntu.com/ubuntu/pool/main/d/debootstrap/</a> herunterladen und mit <tt>dpkg -i</tt> installieren. Nutzer von RPM-Distributionen sollten ein Konvertierungstool installieren oder Debootstrap direkt aus dem <tt>.tar.gz</tt> installieren.</p>
<h3>Vorbereitung eines Images</h3>
<p>Für Xen DomUs haben Sie die Möglichkeit, physikalische Festplatten oder deren Partitionen zu nutzen oder Festplattenimages zu verwenden. Bei den Images wiederum gibt es zwei Möglichkeiten: Tap-Disks, die wachsen können und beispielsweise VMware VMDK-Format unterstützen oder &#8220;Plain-Images&#8221;, die als Loopback-Device gemountet werden können. Ich empfehle bei Testkonfigurationen grundsätzlich und bei Produktivsystemen für die Systempartitionen Images von Partitionen. Die Gründe:<span id="more-571"></span></p>
<ul>
<li>Im Gegensatz zu partitionierten Festplattenimages kann ein Partitionsimage ohne Verrenkungen vergrößert werden</li>
<li>Ein Mounten ist simpel mit <tt>mount -o loop ...</tt> möglich, es muss kein Offset errechnet und angegeben werden</li>
<li>Im Gegensatz zu VMDK-Images benötigt der Mount auf einer Xen-losen Maschine keine zusätzlichen Werkzeuge</li>
</ul>
<p>Images erstelle ich als Sparse-Images, das geht schnell und spart Plattenplatz, hat aber bei Maschinen mit vielen Xen-Instanzen deutlich spürbare Einbußen durch doppelte Fragmentierung zur Folge. Zunächst entsteht ein Image für die Systempartition. Da ich gerne auch Kernel in der Xen-Instanz baue, hier 8GB groß, das Swap-Image bekommt ein Gigabyte:</p>
<pre>dd if=/dev/zero bs=$((1024**2)) count=1 seek=8191 of=xvda1.img
dd if=/dev/zero bs=$((1024**2)) count=1 seek=1023 of=swap.img
</pre>
<p>Als nächstes entsteht eine Swap-Signatur und ein Dateisystem auf dem Image <tt>xvda1.img</tt>. Das Dateisystem mounte ich gleich auf einen noch zu erstellenden Mountpoint <tt>/tmp/minibuntu</tt>:</p>
<pre>mkswap -f swap.img
freeloop=` losetup -f `
losetup $freeloop xvda1.img
echo "loopdevice is $freeloop"
mkfs.ext3 $freeloop
mkdir /tmp/minibuntu
mount $freeloop /tmp/minibuntu</pre>
<h3>Installation des Basissystems</h3>
<p>Die Installation des Basissystems geht innerhalb weniger Minuten mit dem Befehl <tt>debootstrap</tt>. Auf einem 64-Bit Hostsystem haben Sie die Wahl, 32- oder 64-Bit-Gäste zu installieren. Bei Gästen, die keine allzu große Prozessgröße erwarten lassen, sind 32-Bit-Gäste oft einen Tick flotter und kompakter:</p>
<pre>debootstrap --arch i386 lucid /tmp/minibuntu http://archive.ubuntu.com/ubuntu</pre>
<p>oder</p>
<pre>debootstrap --arch amd64 lucid /tmp/minibuntu http://archive.ubuntu.com/ubuntu</pre>
<p>Das so installierte Ubuntu würde sich mit dem Hostkernel schon booten, darüber hinaus jedoch kaum nutzen lassen. Setzen wir einige Einstellungen:</p>
<pre>vim /tmp/minibuntu/etc/default/locale</pre>
<pre># BEGIN /etc/default/locale
LANG="POSIX"
# oder
# LANG="de_DE.UTF-8"
# END /etc/default/locale</pre>
<pre>vim /tmp/minibuntu/etc/network/interfaces</pre>
<pre># BEGIN /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
# END /etc/network/interfaces</pre>
<pre>echo '127.0.0.1 localhost' > /tmp/minibuntu/etc/hosts
echo 'lucid-domU.test' > /tmp/minibuntu/etc/hostname</pre>
<p>Auch eine vollständige <tt>/etc/apt/sources.list</tt> wird benötigt:</p>
<pre>vim /tmp/minibuntu/etc/apt/sources.list</pre>
<pre># BEGIN /etc/apt/sources.list
deb http://de.archive.ubuntu.com/ubuntu/ lucid main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ lucid main restricted
deb http://de.archive.ubuntu.com/ubuntu/ lucid-updates main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ lucid-updates main restricted
deb http://de.archive.ubuntu.com/ubuntu/ lucid universe
deb-src http://de.archive.ubuntu.com/ubuntu/ lucid universe
deb http://de.archive.ubuntu.com/ubuntu/ lucid-updates universe
deb-src http://de.archive.ubuntu.com/ubuntu/ lucid-updates universe
deb http://de.archive.ubuntu.com/ubuntu/ lucid multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ lucid multiverse
deb http://de.archive.ubuntu.com/ubuntu/ lucid-updates multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ lucid-updates multiverse
deb http://security.ubuntu.com/ubuntu lucid-security main restricted
deb-src http://security.ubuntu.com/ubuntu lucid-security main restricted
deb http://security.ubuntu.com/ubuntu lucid-security universe
deb-src http://security.ubuntu.com/ubuntu lucid-security universe
deb http://security.ubuntu.com/ubuntu lucid-security multiverse
deb-src http://security.ubuntu.com/ubuntu lucid-security multiverse
# END /etc/apt/sources.list</pre>
<p>Ohne <tt>/etc/fstab</tt> geht wenig im domU-System, die Platten heissen nicht mehr wie bei den alten dom0- und domU-Kerneln <tt>/dev/sda</tt>, sondern <tt>/dev/xvda</tt>:</p>
<pre>vim /tmp/minibuntu/etc/fstab</pre>
<pre># BEGIN /etc/fstab
proc /proc proc defaults 0 0
/dev/xvda1 / ext3 defaults 0 1
/dev/xvda2 none swap sw 0 0
# END /etc/fstab</pre>
<p>Eine Konsole für Xen. Xen nutzt <tt>/dev/hvc0</tt> als Systemkonsole, diese muss noch mit einem <tt>getty</tt> versehen werden. Das erledigen Sie durch Kopieren der Definition von <tt>tty1</tt> und entsprechende Anpassungen:</p>
<pre>cp /tmp/minibuntu/etc/init/{tty1,hvc0}.conf
sed -i 's/tty1/hvc0/g' /tmp/minibuntu/etc/init/hvc0.conf</pre>
<h3>Chroot, Passwort und Kernel</h3>
<p>Zum Abschluss der Installation und der Nachinstallation von Software müssen Sie per <tt>chroot</tt> in das frisch installierte Ubuntu wechseln. Zunächst benötigen Sie dafür einige spezielle Dateisysteme:</p>
<pre>mount -t proc none /tmp/minibuntu/proc
mount -t devpts none /tmp/minibuntu/dev/pts </pre>
<p>Wenn Host und Gast die gleiche Architektur nutzen, klappt der Chroot klassisch:</p>
<pre>LANG=C chroot /tmp/minibuntu /bin/bash</pre>
<p>Ist der Host dagegen 64 bittig und der Gast 32 bittig, ist <tt>setarch</tt> zu verwenden:</p>
<pre>LANG=C setarch i386 chroot /tmp/minibuntu /bin/bash</pre>
<p>Zunächst aktivieren wir Shadow-Passwörter und setzen ein Root-Passwort:</p>
<pre>shadowconfig on
passwd</pre>
<p>Auf 32-Bit-Gästen muss zwingend ein PAE-Kernel installiert werden. Nur dieser enthält Unterstützung für pvops. Kernel ohne PAE laufen nur auf dem &#8220;nackten Metall&#8221;. Bei 64 Bit sollten alle Kernel pvops unterstützen:</p>
<pre>apt-get install linux-image-generic-pae</pre>
<p>Da ein Bootloader bei unserer Konfiguration keinen Sinn macht, sind entsprechende Nachfragen mit <tt>[No]</tt> zu beantworten.</p>
<h3>Aufbau des Initramfs</h3>
<p>Im Gegensatz zu gängigen Dateisystemtreibern enthält Ubuntus Kernel die Frontend-Treiber für Blockdevices und das Netz nur als Module. Diese sind entsprechend zu Initramfs-Konfiguration hinzuzufügen:</p>
<pre>vim.tiny /etc/initramfs-tools/initramfs.conf</pre>
<pre>MODULES=list</pre>
<p>Diese Liste ist entsprechend anzupassen:</p>
<pre>vim.tiny /etc/initramfs-tools/modules</pre>
<pre># BEGIN /etc/initramfs-tools/modules
xen-kbdfront
xen-netfront
xen-blkfront
# END /etc/initramfs-tools/modules</pre>
<p>Und anschließend wird das Initramfs neu aufgebaut:</p>
<pre>mkinitramfs -o /boot/initrd.img-2.6.32-24-generic-pae 2.6.32-24-generic-pae</pre>
<p>Verlassen Sie nun den Chroot wieder und unmounten Sie die beiden speziellen Dateisysteme.</p>
<pre>exit
umount /tmp/minibuntu/proc
umount /tmp/minibuntu/dev/pts</pre>
<h3>Kopieren der Kernel, Aufbau der domU-Konfiguration</h3>
<p>Kopieren Sie nun Kernel und Initramfs von <tt>/tmp/minibuntu/boot</tt> in das Verzeichnis, welches Festplattenimages und später die Konfiguration enthält. Erstellen Sie dann eine Datei <tt>ubuntu.cfg</tt> mit folgendem Inhalt (selbstverständlich ist der Pfad zum Installationsverzeichnis anzupassen und Kernel sowie Initramfs umzubenennen oder zu verlinken):</p>
<pre>kernel = "/usr/local/xendomains/lucid_test/vmlinuz"
ramdisk = "/usr/local/xendomains/lucid_test/initrd.gz"
memory = 512
name = "lucid-test"
vif = [ 'mac=00:16:00:00:42:23' ]
disk = [ 'file:/usr/local/xendomains/lucid_test/xvda1.img,xvda1,w',
         'file:/usr/local/xendomains/lucid_test/swap.img,xvda2,w' ]
root = '/dev/xvda1 ro'
extra = 'console=hvc0'</pre>
<p>Jetzt nicht vergessen, das Loopback-Device zu unmounten und freizugeben:</p>
<pre>umount /tmp/minibuntu
umount $freeloop
losetup -d $freeloop</pre>
<p>Dann kann auch die neue domU gestartet werden:</p>
<pre>xm create -c ubuntu.cfg</pre>
<p>Melden Sie sich in der Konsole der domU an und installieren Sie die Xen-Version der C-Bibliothek, sowie OpenSSH nach:</p>
<pre>apt-get install ssh libc6-xen</pre>
<p>Beim nächsten Mal kann dann die Domain ohne <tt>-c</tt> gestartet und per SSH zugegriffen werden. Soll die virtuelle Festplatte vergrößert werden, kann dies nach dem Herunterfahren mit <tt>dd</tt> erfolgen:</p>
<pre>dd if=/dev/zero bs=$((1024**2)) count=1 seek=16383 of=xvda1.img
freeloop=` losetup -f`
losetup $freeloop xvda1.img
fsck.ext3 -f $freeloop
resize2fs $freeloop
losetup -d $freeloop</pre>
<p>That&#8217;s it! Soll die domU automatisch mit dem Xend des Hostes starten, die <tt>.cfg</tt> in <tt>/etc/xen/auto</tt> verlinken und darauf achten, dass das Startscript <tt>/etc/init.d/xendomains</tt> beim Systemstart unmittelbar nach <tt>xend</tt> gestartet wird. Die so erstellte Domain ist prinzipiell portabel, man sollte sich allerdings keine allzugroßen Hoffnungen auf einen Boot unter alten Xen-Versionen (vor 3.4) machen. Sind noch alte dom0s vorhanden, schafft möglicherweise Ubuntus ec2-Kernel für Amazons Elastic Computing Cloud Abhilfe.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rootserverexperiment.de/2010/09/01/ubuntu-lucid-xen4-domu-debootstrappen/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Installation von Xen 4.0.1 mit pvops-Dom0 auf Ubuntu 10.04</title>
		<link>http://blog.rootserverexperiment.de/2010/08/30/xen-401-pvops-dom0-ubuntu1004/</link>
		<comments>http://blog.rootserverexperiment.de/2010/08/30/xen-401-pvops-dom0-ubuntu1004/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 13:35:13 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips und Tricks]]></category>
		<category><![CDATA[Xen]]></category>

		<guid isPermaLink="false">http://blog.rootserverexperiment.de/?p=548</guid>
		<description><![CDATA[Xen 4.0 hat einige interessante Features eingeführt. Am Auffälligsten dürfte die Umstellung des vom Xen-Projekt gepflegten Dom0-Kernels auf &#8220;pvops&#8221; sein. Es handelt sich dabei um eine Technologie, mithilfe derer ein Kernel erkennt, ob er auf &#8220;nacktem Metall&#8221; (&#8220;bare metal&#8221; = direkt auf Hardware) oder auf dem Xen-Hypervisor läuft. Für unpriviligierte Domains (domU) ist dieses Feature [...]]]></description>
			<content:encoded><![CDATA[<p>Xen 4.0 hat einige interessante Features eingeführt. Am Auffälligsten dürfte die Umstellung des vom Xen-Projekt gepflegten Dom0-Kernels auf &#8220;pvops&#8221; sein. Es handelt sich dabei um eine Technologie, mithilfe derer ein Kernel erkennt, ob er auf &#8220;nacktem Metall&#8221; (&#8220;bare metal&#8221; = direkt auf Hardware) oder auf dem Xen-Hypervisor läuft. Für unpriviligierte Domains (domU) ist dieses Feature bereits seit geraumer Zeit im Linux-Kernel enthalten, für dom0s is es neu und muss über den Kernel des Xen-Projektes installiert werden.</p>
<p>Ich habe einmal testweise ein Setup auf einer AMD64-Maschine erstellt, auf 32-Bit-Systemen sind lediglich einige Kleinigkeiten anders: Der Kernel muss PAE-Support haben und es muss zwingend ein Prozessortyp ausgewählt werden, der über Virtualisierungserweiterungen verfügt. Da heutzutage kaum Rechner als Xen-Host zum Einsatz kommen dürften, die nicht 64-Bit-tauglich sind, sollte sich die Frage nach pvops-Dom0s auf 32-Bit-Hardware kaum stellen. <span id="more-548"></span></p>
<h3>Die Vorbereitung</h3>
<p>Fürs Bauen des Kernels müssen zuerst einige Debian-Pakete nachinstalliert werden. Meine Testmaschine war ein recht blankes Netinstall, so dass diese Liste hoffentlich vollständig ist:</p>
<pre>apt-get install build-essential libncurses5-dev python-twisted \
        git-core zlib1g-dev gettext libX11-dev uuid-dev libssl-dev\
        bin86 bcc flex bison python-dev bridge-utils</pre>
<p>Neuere Xen-Versionen benötigen Intels ACPI-Compiler. Den habe ich noch nicht in den Ubuntu-Paketlisten gefunden, stattdessen habe ich ihn aus den Quellen gebaut und mittels <tt>install</tt> installiert. Da nur ein einziges Binary benötigt wird, ist es leicht möglich, das temporäre Build-Verzeichnis in den Pfad aufzunehmen und so das System nicht zu verschmutzen. Bitte prüft vor der ACPICA-Installation, ob unter <a href="http://www.acpica.org/downloads/">http://www.acpica.org/downloads/</a> neuere Versionen bereitstehen:</p>
<pre>cd /usr/src
wget http://acpica.org/download/acpica-unix-20100806.tar.gz
tar xvzf acpica-unix-20100806.tar.gz
cd acpica-unix-20100806/compiler
make
install -m 0755 iasl /usr/bin</pre>
<h3>Bau und Boot des pvops-Kernels</h3>
<p>Wie eingangs erwähnt, ist Support für pvops-Dom0 noch nicht Teil des offiziellen Kernels. Es muss daher Jeremys 2.6.32er mit pvops-Patches ausgecheckt werden. Falls jemand abkürzen möchte, kann er <a href="http://cdprojekte.mattiasschlenker.de/Public/Xen-Kernel/vmlinuz-2.6.32.18-xen0-pvops-20100830-sources.tbz">hier die von mir verwendeten Sourcen herunterladen</a>, diese beinhalten bereits eine <tt>.config</tt>. </p>
<pre>cd /usr/src
git clone git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git linux-2.6-xen
cd linux-2.6-xen
git reset --hard
git checkout -b xen/stable-2.6.32.x origin/xen/stable-2.6.32.x</pre>
<p>Beim Selbstbau dürfte es meist ganz gut passen, die Kernelconfig des Ubuntu als Basis zu verwenden und mit <tt>make oldconfig</tt> die Xen-spezifischen Punkte zu ergänzen. Wer dabei die richtigen Treiber statisch einbindet, braucht auch an der Initramfs-Konfiguration nichts zu modifizieren:</p>
<pre>cd /usr/src
cd linux-2.6-xen
cp /boot/config-` uname -r ` .config
make oldconfig</pre>
<p>Zum Vergleich hier meine Xen-spezifischen Optionen:</p>
<pre>CONFIG_XEN=y
CONFIG_XEN_MAX_DOMAIN_MEMORY=32
CONFIG_XEN_SAVE_RESTORE=y
CONFIG_SWIOTLB_XEN=y
CONFIG_MICROCODE_XEN=y
CONFIG_XEN_DOM0=y
CONFIG_XEN_PRIVILEGED_GUEST=y
CONFIG_XEN_DOM0_PCI=y
CONFIG_XEN_PCI_PASSTHROUGH=y
CONFIG_PCI_XEN=y
CONFIG_XEN_PCIDEV_FRONTEND=y
CONFIG_XEN_BLKDEV_FRONTEND=m
CONFIG_NETXEN_NIC=m
CONFIG_XEN_NETDEV_FRONTEND=m
CONFIG_XEN_KBDDEV_FRONTEND=m
CONFIG_HVC_XEN=y
CONFIG_XEN_FBDEV_FRONTEND=m
CONFIG_XEN_BALLOON=y
CONFIG_XEN_SCRUB_PAGES=y
CONFIG_XEN_DEV_EVTCHN=m
CONFIG_XEN_BACKEND=y
CONFIG_XEN_NETDEV_BACKEND=y
CONFIG_XEN_BLKDEV_BACKEND=y
CONFIG_XEN_BLKDEV_TAP=y
CONFIG_XEN_BLKBACK_PAGEMAP=y
CONFIG_XEN_PCIDEV_BACKEND=y
CONFIG_XEN_PCIDEV_BACKEND_VPCI=y
CONFIG_XENFS=m
CONFIG_XEN_COMPAT_XENFS=y
CONFIG_XEN_SYS_HYPERVISOR=y
CONFIG_XEN_MCE=y
CONFIG_XEN_XENBUS_FRONTEND=y
CONFIG_XEN_GNTDEV=m
CONFIG_XEN_S3=y
CONFIG_ACPI_PROCESSOR_XEN=y
CONFIG_XEN_PLATFORM_PCI=m</pre>
<p>Wer möchte, kann meine Konfiguration <a href="http://cdprojekte.mattiasschlenker.de/Public/Xen-Kernel/config-2.6.32.18-xen0-pvops-20100830-amd64">komplett</a> oder als <a href="http://cdprojekte.mattiasschlenker.de/Public/Xen-Kernel/config-2.6.32.18-xen0-pvops-20100830-amd64.diff">unified diff</a> (gegen Ubuntus 2.6.32-24 Kernel) herunterladen und diese verwenden. Das Bauen geht dann wie gewohnt, ich strippe die Kernelmodule und erstelle gleich eine GRUB-Konfiguration:</p>
<pre>make
make install
make modules_install
find /lib/modules/2.6.32.18-xen0-pvops/ -name '*.ko' -exec strip --strip-unneeded {} \;
mkinitramfs -o /boot/initrd.img-2.6.32.18-xen0-pvops 2.6.32.18-xen0-pvops
update-grub</pre>
<h3>Der erste Neustart</h3>
<p>Rebooten Sie nun den Rechner und wählen Sie den neuen pvops-Kernel als Startkernel aus. Die Maschine sollte problemlos hochfahren, tut sie das nicht, stehen die Chancen schlecht, dass dieser Kernel auch auf Xen sauber startet.</p>
<h3>Installation von Xen und den Xen-Tools</h3>
<p>Als dieses Tutorial erstellt wurde, war mit Xen 4.0.1 gerade die erste <a href="http://www.xen.org/products/xen_source.html"></a>Maintenance-Release der 4.0er-Reihe erhältlich. Falls Sie noch 3.4.x oder 4.0.0 verwenden (und damit zufrieden sind): Aktualisieren Sie auf jeden Fall auf 4.0.1, weil hier einige Bugs im Zusammenspiel von Xen und dom0-pvops-Kerneln beseitigt wurden:</p>
<pre>cd /usr/src
wget http://bits.xensource.com/oss-xen/release/4.0.1/xen-4.0.1.tar.gz
tar xvzf xen-4.0.1.tar.gz
cd xen-4.0.1
make xen
make install-xen
make tools
make install-tools PYTHON_PREFIX_ARG=</pre>
<p>Es folgt die Erstellung einer Bootloder-Konfiguration, bitte die UUID entsprechend anpassen:</p>
<pre>vim.tiny /etc/grub.d/50_xen</pre>
<pre>#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry "Ubuntu 10.04 - Xen 4.0.1 - 2.6.32.18 pvops" {
        insmod ext2
        set root=(hd0,1)
        search --no-floppy --fs-uuid --set dc50c3d6-787a-45d7-951b-20836d10443c
        multiboot /boot/xen-4.0.1.gz dummy=dummy
        module /boot/vmlinuz-2.6.32.18-xen0-pvops root=UUID=dc50c3d6-787a-45d7-951b-20836d10443c ro dummy=dummy
        module /boot/initrd.img-2.6.32.18-xen0-pvops
}</pre>
<pre>chmod a+x /etc/grub.d/50_xen
vim.tiny /etc/default/grub</pre>
<pre>GRUB_DEFAULT="Ubuntu 10.04 - Xen 4.0.1 - 2.6.32.18 pvops"
GRUB_HIDDEN_TIMEOUT=30
GRUB_HIDDEN_TIMEOUT_QUIET=false</pre>
<p>Anschließend nicht vergessen, die Grub-Konfiguration noch einmal neu aufzubauen:</p>
<pre>update-grub</pre>
<p>Ein Dateisystem für Xen: Einige Scripte benäötigen das alte <tt>/proc/xen</tt>. Dieses wird durch einen Eintrag in der <tt>/etc/fstab</tt> beim nächsten Neustart gemountet:</p>
<pre>xenfs /proc/xen xenfs defaults</pre>
<p>Dann benötigen wir noch zwei Module und deren Devices &#8211; die Module sollten in die <tt>/etc/modules</tt> eingetragen werden:</p>
<pre>modprobe -v xen-evtchn
modprobe -v xen-gntdev</pre>
<pre>mkdir /dev/xen
mknod -m 0660 /dev/xen/gntdev c 10 57
mknod -m 0660 /dev/xen/evtchn c 10 58</pre>
<p>Das war es: Beim nächsten Neustart startet der eben gebootete pvops-Kernel nicht auf nacktem Metall, sondern auf dem Hypervisor. Mit pvops-Kernel sollte es auch möglich sein, die beschleunigten Grafiktreiber von AMD und nVidia zu nutzen, ausprobiert habe ich dies nicht, weil bei mir Xen nur auf dem Server eingesetzt wird.</p>
<p>Auf die Konfiguration von pvops-DomUs gehe ich in den nächsten Tagen ein: Für diese halten aktuelle Distributionen oft passende Kernel bereit, ich werde jedoch auch zeigen, wie man mit einem frischen Vanilla-Kernel 2.6.35.x ein wenig mehr herausholt.</p>
<h3>Vielen Dank an&#8230;</h3>
<ul>
<li><a href="http://blog.xen.org/index.php/2010/03/26/steps-to-try-xen-4-0-0-release-candidate-8-on-ubuntu-lucid-10-04-64-bits/">&#8230;das offizielle Xen-Blog, an dessen Anleitung ich mich grob orientiert habe</a></li>
<li><a href="http://wiki.xensource.com/xenwiki/XenParavirtOps">&#8230;die Mitarbeiter des Xen-Wikis, die viele wertvolle Informationen zu pvops zusammengetragen haben</a></li>
</ul>
<h3>Update, 31. August 2010</h3>
<ul>
<li>bridge-utils zur Paketliste hinzugefügt</li>
<li>Ergänzung zu <tt>/proc/xen</tt></li>
<li>Ergänzung zu fehlenden Devices und Modulen</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.rootserverexperiment.de/2010/08/30/xen-401-pvops-dom0-ubuntu1004/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Welchen Bootloader verwende ich?</title>
		<link>http://blog.rootserverexperiment.de/2010/08/25/welchen-bootloader-verwende-ich/</link>
		<comments>http://blog.rootserverexperiment.de/2010/08/25/welchen-bootloader-verwende-ich/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 09:11:40 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Randnotizen]]></category>
		<category><![CDATA[Tips und Tricks]]></category>

		<guid isPermaLink="false">http://blog.rootserverexperiment.de/?p=540</guid>
		<description><![CDATA[Ich arbeite an Rootservern, bei denen die verschiedensten Bootloader installiert sind. Mal Grub 0.9x, mal Grub 2, oft Extlinux (oh, ja, ich muss mal ein Tutorial zu Syslinux 4.0 machen&#8230;). Böse ist, wenn sowohl eine extlinux.conf als auch ein Ordner /boot/grub vorhanden sind. Was tun? Einfach im MBR nachschauen:
root@caesium:~#  dd if=/dev/sda bs=448 count=1 &#124; [...]]]></description>
			<content:encoded><![CDATA[<p>Ich arbeite an Rootservern, bei denen die verschiedensten Bootloader installiert sind. Mal Grub 0.9x, mal Grub 2, oft <a href="http://blog.rootserverexperiment.de/2006/08/01/extlinux-flexibler-bootloader-fur-den-rootserver/" target="_blank">Extlinux</a> (oh, ja, ich muss mal ein Tutorial zu Syslinux 4.0 machen&#8230;). Böse ist, wenn sowohl eine <tt>extlinux.conf</tt> als auch ein Ordner <tt>/boot/grub</tt> vorhanden sind. Was tun? Einfach im MBR nachschauen:</p>
<pre>root@caesium:~#  dd if=/dev/sda bs=448 count=1 | strings
1+0 Datensätze ein
1+0 Datensätze aus
448 Bytes (448 B) kopiert, 4,2288e-05 s, 10,6 MB/s
ZRr=
`|f
\|f1
GRUB
Geom
Hard Disk
Read
 Error</pre>
<p>Das ist wohl GRUB, beim Syslinux-MBR (Extlinux) sieht die Ausgabe so aus:</p>
<pre>RPf1
Missing operating system.
f`f1
|fRfP
Ht[y9Y[
Multiple active partitions.
Operating system load error.</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.rootserverexperiment.de/2010/08/25/welchen-bootloader-verwende-ich/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xen-Nachtrag, Setup mit Routing</title>
		<link>http://blog.rootserverexperiment.de/2010/03/19/xen-nachtrag-setup-mit-routing/</link>
		<comments>http://blog.rootserverexperiment.de/2010/03/19/xen-nachtrag-setup-mit-routing/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 07:18:09 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips und Tricks]]></category>
		<category><![CDATA[Xen]]></category>

		<guid isPermaLink="false">http://blog.rootserverexperiment.de/?p=494</guid>
		<description><![CDATA[Mir ist aufgefallen, dass mein gestriges Setup mit Dummy-Adapter und Vergabe der ersten IP-Adresse des Netzes auf das Interface dummy0 nicht die optimale Konfiguration darstellt: Hier wird das alte Setup mit separatem Router 1:1 nachgebaut, was zur Folge hat, dass die drei Adressen für Broadcast, Netz und Gateway nicht für Produktivsysteme nutzbar sind. Das beschriebene [...]]]></description>
			<content:encoded><![CDATA[<p>Mir ist aufgefallen, dass mein <a href="http://blog.rootserverexperiment.de/2010/03/18/vinalla-xen-und-kernel-auf-ubuntu-karmic/">gestriges Setup mit Dummy-Adapter</a> und Vergabe der ersten IP-Adresse des Netzes auf das Interface <tt>dummy0</tt> nicht die optimale Konfiguration darstellt: Hier wird das alte Setup mit separatem Router 1:1 nachgebaut, was zur Folge hat, dass die drei Adressen für Broadcast, Netz und Gateway nicht für Produktivsysteme nutzbar sind. Das beschriebene Setup ist daher nur sinnvoll, wenn ein Server in zwei Stufen von bridged auf routed umgestellt werden soll. </p>
<p>Beim Neuaufsetzen eines Servers ist es besser, gleich eine PointToPoint-Lösung mit 255.255.255.255-Maske aufzusetzen. Damit können bei einer 29-Bit-Maske (255.255.255.248) acht statt fünf IP-Adressen genutzt werden &#8212; satte 60% mehr (bei vier, fünf, oder sechs Bit Masken fällt der Gewinn natürlich kleiner aus). Die Änderungen gegenüber dem Setup von gestern sind, dass <tt>dummy0</tt> in der <tt>/etc/network/interfaces</tt> der dom0 entfällt. In der <tt>/etc/xen/xend-config.sxp</tt> wird das extern erreichbare Interface eingetragen (in der Regel <tt>eth0</tt>):</p>
<pre>(network-script 'network-route netdev=eth0')
(vif-script     'vif-route netdev=eth0')</pre>
<p>Die Netzwerkkonfiguration der domU bekommt nun die primäre IP-Adresse der dom0 als Gateway eingetragen, dazu das Schlüsselwort <tt>pointopoint</tt> (nur ein &#8216;t&#8217;!) und die &#8220;dichte&#8221; Netzmaske:</p>
<pre>auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
        address 172.16.16.114
        netmask 255.255.255.255
        gateway 192.168.1.2
        pointopoint 192.168.1.2
        post-up ethtool -K eth0 tx off</pre>
<h3>Vielen Dank an&#8230;</h3>
<ul>
<li><a href="http://wiki.hetzner.de/index.php/Umstellung_Debian_Etch_mit_XEN_3_auf_routed">Umstellung Debian Etch mit XEN 3 auf routed</a> &#8230;die fleissigen Dokumentatoren im Hetzner-Wiki</li>
<li>&#8230;den Admin bei 1&amp;1, dessen Default-Setup mit pointopoint auf der primären IP mich dazu anregte, hier nochmal nachzuforschen</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.rootserverexperiment.de/2010/03/19/xen-nachtrag-setup-mit-routing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ein Tag mit Xen: Vanilla-Xen und -Kernel auf Ubuntu Karmic installieren</title>
		<link>http://blog.rootserverexperiment.de/2010/03/18/vinalla-xen-und-kernel-auf-ubuntu-karmic/</link>
		<comments>http://blog.rootserverexperiment.de/2010/03/18/vinalla-xen-und-kernel-auf-ubuntu-karmic/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 18:30:11 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips und Tricks]]></category>
		<category><![CDATA[Xen]]></category>

		<guid isPermaLink="false">http://blog.rootserverexperiment.de/?p=470</guid>
		<description><![CDATA[Bislang laufen alle unsere Dom0s entweder auf Ubuntu 8.04 oder openSUSE 11.1 oder 11.2. Für einen neuen alten Server wollte ich Ubuntu 9.10 als Basis nehmen, auch um im Mai leichter auf 10.04 wechseln zu können. Bei Ubuntu ist die Xen-Situation nicht besonders rosig: Laut halboffizieller Doku steht weder ein aktueller Xen, noch ein brauchbarer [...]]]></description>
			<content:encoded><![CDATA[<p>Bislang laufen alle unsere Dom0s entweder auf Ubuntu 8.04 oder openSUSE 11.1 oder 11.2. Für einen neuen alten Server wollte ich Ubuntu 9.10 als Basis nehmen, auch um im Mai leichter auf 10.04 wechseln zu können. Bei Ubuntu ist die Xen-Situation nicht besonders rosig: Laut halboffizieller Doku steht <a href="https://help.ubuntu.com/community/Xen">weder ein aktueller Xen, noch ein brauchbarer Kernel bereit</a>. Immerhin ein Xend (der Verwaltungsdaemon) in Version 3.3. Erfahrungen seit 3.2 haben gezeigt, dass sich die Schnittstellen kaum noch ändern, so dass der 3.3er Daemon mit dem 3.4er Xen zusammen arbeiten sollte. Denkste.</p>
<p>Ziel waren zwei Server: Ein 64-Bit-System fürs Büro und ein 32-Bit-System für einen alten (AMD Athlon XP 2000, 512MB, 80GB) Hetzner Rootie (Presse-Testsystem). Beide Systeme wurden zunächst mit einem Ubuntu Minimalsystem ausgestattet. Bei Hetzner geschah dies aus dem Notfall-System per <i>debootstrap</i> (fertige OS-Images werden nur einmal am Tag aufgespielt, was stört, wenn man nach einer abgeschossenen Installation neu aufsetzen möchte) und der Server zuhause wurde per Debian-Installer per PXE-Netboot eingerichtet. Die zwei Möglichkeiten, einen Hetzner-Server mit Ubuntu oder Debian auszustatten &#8212; debootstrap und den Debian-Installer im SSH-Modus &#8212; erkläre ich bei Gelegenheit im Detail.  <span id="more-470"></span></p>
<h3>Benötigte Pakete</h3>
<p>Mit dem folgenden Befehl sollten alle Abhängigkeiten aufgelöst werden, die zum Bau von Xen und dem Betrieb einer Dom0 benötigt werden:</p>
<pre>apt-get install rsync screen build-essential bin86 bcc libssl-dev \
      gettext libncurses-dev python python-dev pciutils-dev libx11-dev \
      pkg-config python-twisted bridge-utils gawk</pre>
<p>Unter 32 Bit-Systemen sollte man aus Performance-Gründen noch die angepasste C-Bibliothek installieren:</p>
<pre>apt-get install libc6-xen</pre>
<h3>Kernel kompilieren</h3>
<p>Ubuntu selbst bietet einen Kernel für <a href="http://aws.amazon.com/ec2/">Amazons EC2</a>, der sollte einigermaßen gut auf aktuellen Xen-Versionen laufen. Getestet habe ich es nicht. Stattdessen habe ich selbst drei Kernel kompiliert: Einen für AMD64 mit vollem Dom0-Support und vielen Treibern, einen mit stark abgespeckten Treibern (für 64Bit-DomUs) und einen i686-Kernel mit vollem Dom0-Support und der Möglichkeit, auf älteren Xen-Versionen gestartet zu werden. Die für Xen benötigten Frontend- sowie Backend-Treiber habe ich statisch integriert, was den Vorteil hat, dass an der Konfiguration des Initramfs nichts geändert werden muss. Alle Konfigurationen bieten Verbesserungspotential, beispielsweise beim Abspecken um nicht benötigte Treiber. Hier sei allerdings darauf verwiesen, dass das Entfernen vermeintlich nicht benötigter Funktionen <i>Unresolved Symbols</i> und damit Kompilationsabbrüche zur Folge haben kann.</p>
<p>Als Kernel kommt hier Gentoos 2.6.31.12 &#8212; konkret das Patchset xen-patches-2.6.31-12.tar.bz2 &#8212; zum Einsatz. Die verwendeten Patches stammen größtenteils von openSUSEs Xen-Kernel, wurden aber von SuSE-Spezifika befreit. Das macht das Bauen und die Installation einfacher. Gepflegt werden die Patches <a href="http://code.google.com/p/gentoo-xen-kernel/downloads/list">als eigenes Projekt bei Google Code</a>.</p>
<p>Meine Konfigurationsdateien:</p>
<ul>
<li><a href="http://cdprojekte.mattiasschlenker.de/Public/Xen-Kernel/config-2.6.31.12-mfs002-xen0-compat-i586">config-2.6.31.12-mfs002-xen0-compat-i586</a></li>
<li><a href="http://cdprojekte.mattiasschlenker.de/Public/Xen-Kernel/config-2.6.31.12-mfs001-xen0-amd64">config-2.6.31.12-mfs001-xen0-amd64</a></li>
<li><a href="http://cdprojekte.mattiasschlenker.de/Public/Xen-Kernel/config-2.6.31.12-mfs006-xenU-minimal-amd64">config-2.6.31.12-mfs006-xenU-minimal-amd64</a></li>
</ul>
<p>Und nun zum Bauen des Kernels, hier für AMD64:</p>
<pre>mkdir xen-patches-2.6.31-12
cd xen-patches-2.6.31-12
tar xvjf ../xen-patches-2.6.31-12.tar.bz2
cd ../linux-2.6.31
for i in ../xen-patches-2.6.31-12/*.patch1 ; do patch -p1 < $i ; done
wget -O .config http://cdprojekte.mattiasschlenker.de/Public/Xen-Kernel/config-2.6.31.12-mfs001-xen0-amd64
make oldconfig
make
make install
make modules_install</pre>
<p>Der Kernel braucht noch ein passendes Initramfs, dieses entsteht mit:</p>
<pre>mkinitramfs -o /boot/initrd.img-2.6.31.12-mfs001-xen0-amd64 2.6.31.12-mfs001-xen0-amd64</pre>
<p>Falls Sie Xen Frontend- oder Backend-Treiber in Module ausgelagert haben, müssen Sie ggf. die Modulliste des Initramfs anpassen!</p>
<h3>Xen Hypervisor installieren</h3>
<p>Ohne Xen nützt der schönste Kernel nichts, also bauen und installieren wir Xen 3.4.2 aus dem <a href="http://www.xen.org/products/xen_source.html">offiziellen Tarball von www.xen.org</a>:</p>
<pre>tar xvzf xen-3.4.2.tar.gz
cd xen-3.4.2
make xen
make install-xen</pre>
<h3>Bootloader konfigurieren</h3>
<p>Der einfachste Weg ist die Erstellung eines simplen Scriptes <tt>/etc/grub.d/50_xen</tt>, welches hart kodiert Kernelnamen, Xen-Version und Pfade (Root-Device ist hier <tt>/dev/sda4</tt>) enthält. Zweimal <tt>root=...</tt> ist kein Tippfehler, sondern als Workaround für einen kleinen Bug in den Scripten des Initramfs gedacht:</p>
<pre>#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

menuentry "Ubuntu 9.10 - Xen 3.4.2 + Linux 2.6.31" {
        insmod ext2
        set root=(hd0,4)
        multiboot /boot/xen-3.4.2.gz
        module /boot/vmlinuz-2.6.31.12-mfs001-xen0-amd64 root=/dev/sda4 ro root=/dev/sda4
        module /boot/initrd.img-2.6.31.12-mfs001-xen0-amd64
}</pre>
<p>Das Script muss nun noch ausführbar gesetzt werden, sonst wird der neue Eintrag nicht in die GRUB-Konfiguration übernommen!</p>
<pre>chmod a+x /etc/grub.d/50_xen</pre>
<p>In der Datei <tt>/etc/default/grub</tt> sollten Sie den Standard-Booteintrag auf den neuen Kernel setzen:</p>
<pre>GRUB_DEFAULT="Ubuntu 9.10 - Xen 3.4.2 + Linux 2.6.31"</pre>
<p>Danach rufen Sie <tt>update-grub</tt> auf um die Bootloader-Konfiguration neu aufzubauen. Rebooten Sie jetzt den Rechner mit Xen und dem neuen Kernel.</p>
<h3>Installation der Xen-Tools</h3>
<p>Die Xen-Tools habe ich in einem frisch entpackten Xen-Tarball kompiliert. Die bei der Installation angegebene Variable ist wichtig, damit die Python-Module in den bei Ubuntu üblichen Pfaden landen. Gibt man diese Variable nicht an, ist es ggf. erforderlich eine Umgebunsvariable <tt>PYTHONPATH</tt> zu setzen und diese ggf. in das Script <tt>/etc/init.d/xend</tt> einzubauen:</p>
<pre>rm -rf xen-3.4.2
tar xvzf xen-3.4.2.tar.gz
cd xen-3.4.2
make tools
make install-tools PYTHON_PREFIX_ARG=</pre>
<p>Wenn alles geklappt hat, lässt sich der Xend starten. Läuft dieser, können die Bootmeldungen des Hypervisors ausgelesen werden.</p>
<pre>/etc/init.d/xend start
xm dmesg</pre>
<h3>Xend in den Runleveln verlinken</h3>
<p>Ich habe Xend <i>vor</i> dem SSH-Server verlinkt, den Start der domU-Instanzen danach. Grund waren Probleme mit dem SSH-Server: Upstart (oder der Xend?) versucht diesen neu zu starten, wenn neue Interfaces auftauchen. Das gelingt nicht immer, so dass ich während meiner Tests häufiger ohne SSH da stand. Auf einem Root-Server ist so etwas natürlich ganz bescheiden.</p>
<pre>update-rc.d xend start 14 2 3 4 5 . stop 80 0 1 6 .
update-rc.d xendomains start 21 2 3 4 5 . stop 79 0 1 6 .</pre>
<h3>Vorbereitung für Routing-Setup</h3>
<p><b>Achtung:</b> Siehe auch <a href="http://blog.rootserverexperiment.de/2010/03/19/xen-nachtrag-setup-mit-routing/">den Nachtrag vom 19. März</a> für ein besseres Setup!</p>
<p>Provider wie Hetzner oder Strato routen einem Server zugewiesene Subnetze auf dessen primäre IP-Adresse. Deshalb muss bei diesen Servern das Xen-Netzwerk von bridged auf routed umgestellt werden. <b>Achtung:</b> Einige Provider klemmen Server gnadenlos ab, wenn hinter einem Port des Routers bislang unbekannte MAC-Adressen auftauchen. Wer den Xend bei so einem Provider startet, ohne vorher auf routed umgestellt zu haben, fliegt aus der SSH-Verbindung raus und darf mit dem Support telefonieren!</p>
<p>Zuerst wird die Datei  <tt>/etc/modules</tt> um eine Zeile </p>
<pre>dummy</pre>
<p>für den Dummy-Netzwerk-Adapter erweitert.</p>
<p>Es folgt die statische Konfiguration der primären IP-Adresse auf <tt>eth0</tt> und der ersten nutzbaren IP-Adresse auf <tt>dummy</tt>. In diesem Fall haben wir das Subnetz <tt>172.16.16.112/ 255.255.255.248</tt> (acht Adressen von </tt>.112</tt> bis <tt>.119</tt>) zugewiesen bekommen, <tt>.112</tt> ist hier die Adresse des Netzes, <tt>.113</tt> wird auf <tt>dummy0</tt> gelegt, <tt>.114</tt> bis <tt>.118</tt> (fünf von acht Adressen) sind für die domUs nutzbar und <tt>.119</tt> ist die Broadcast-Adresse:</p>
<pre>auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
        address 192.168.1.2
        netmask 255.255.255.0
        gateway 192.168.1.1

auto dummy0
iface dummy0 inet static
        address 172.16.16.113
        netmask 255.255.255.248</pre>
<p>In der Konfigurationsdatei <tt>/etc/xen/xend-config.sxp</tt> des Xend muss die Einstellung von bridged auf routed umgestellt werden. Das zu routende Device muss explizit angegeben werden:</p>
<pre># (network-script network-bridge)
# (vif-script     vif-bridge)
(network-script 'network-route netdev=dummy0')
(vif-script     'vif-route netdev=dummy0')</pre>
<p>An dieser Stelle ist ein Neustart des Xend, besser ein Reboot erforderlich. Anschließend können die domUs konfiguriert werden. Die Routing-Informationen werden hierfür in der Client-Config eingetragen:</p>
<pre>kernel = "/boot/vmlinuz-2.6.31.12-mfs006-xenU-minimal-amd64"
ramdisk = "/boot/initrd.img-2.6.31.12-mfs006-xenU-minimal-amd64"
memory = 256
name = "ubuntu-amd64-minimal"
vif = [ 'ip=172.16.16.114' , 'mac=00:16:00:00:00:27' ]
disk = [ 'file:/usr/local/xendomains/test01_64/sda1.img,sda1,w' ]
root = "/dev/sda1 ro"
extras = "console=hvc0 xencons=tty"</pre>
<p>Daneben ist es erforderlich, die IP-Konfiguration in der <tt>/etc/network/interfaces</tt> der domU einzutragen -- DHCP möchte ich an dieser Stelle nicht erklären, das würde den Rahmen sprengen.</p>
<h3>Vielen Dank an...</h3>
<ul>
<li><a href="http://www.brandonturner.net/blog/2010/01/install-xen-ubuntu/">Installing Xen on Ubuntu 9.10 -- Brandon's Blog</a> ...für die Idee mit dem Gentoo-Kernel und die GRUB-Konfiguration</li>
<li><a href="http://www.debian-administration.org/articles/360">An introduction to custom Xen networking -- Debian Administration</a> ...für die Hinweise zum Routed-Setup</li>
</ul>
<h3>Anmerkungen:</h3>
<ul>
<li>
<p><b>Nie</b> erst Ubuntus Xen-Tools 3.3 installieren und dann diese Anleitung durchführen. Das resultierende Versionsmischmasch wird garantiert kein funktionierendes Netzwerk zur Folge haben!</p>
</li>
<li>
<p>Details zur domU-Konfiguration bei Hetzner folgen</p>
</li>
<li>
<p>Details zur Ubuntu-/Debian-Installation aus Hetzners Rettungssystem folgen</p>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.rootserverexperiment.de/2010/03/18/vinalla-xen-und-kernel-auf-ubuntu-karmic/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Linux auf dem Asus A52JR</title>
		<link>http://blog.rootserverexperiment.de/2010/03/01/linux-auf-dem-asus-a52jr/</link>
		<comments>http://blog.rootserverexperiment.de/2010/03/01/linux-auf-dem-asus-a52jr/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 09:04:44 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips und Tricks]]></category>

		<guid isPermaLink="false">http://blog.rootserverexperiment.de/?p=455</guid>
		<description><![CDATA[Seit einigen Tagen steht ein Asus A52JR (konkret: das A52JR-SX109V der aktuellen Saturn-Aktion) im Büro und wartet darauf, zum &#8220;Alltagsnotebook&#8221; (und zur schnelleren Ergänzung zu den von mir so geliebten Netbooks) mit Linux beglückt zu werden, konkret soll Ubuntu 9.10 zum Einsatz kommen, vor einem selbst kompilierten Kernel und einer manuellen Installation von Grafiktreibern schrecke [...]]]></description>
			<content:encoded><![CDATA[<p>Seit einigen Tagen steht ein Asus A52JR (konkret: das A52JR-SX109V der aktuellen Saturn-Aktion) im Büro und wartet darauf, zum &#8220;Alltagsnotebook&#8221; (und zur schnelleren Ergänzung zu den von mir so geliebten Netbooks) mit Linux beglückt zu werden, konkret soll Ubuntu 9.10 zum Einsatz kommen, vor einem selbst kompilierten Kernel und einer manuellen Installation von Grafiktreibern schrecke ich nicht zurück. Bislang gibt es lediglich Teilerfolge zu berichten, diese sollten aber immerhin anderen interessierten bei der Kaufentscheidung helfen. Wegen der verwandten Innereien dürften die hier beschriebenen Vorgehensweisen auch beim A72JR, beim K52J und beim K72J sowie bei X52JR und X72JR anzuwenden sein (die K-Modelle werden über den regulären Fachhandel vertrieben und sind etwas eleganter und mit hübscherer Tastatur ausgestattet).<span id="more-455"></span></p>
<h3>Erster Bootversuch</h3>
<p>Meinen ersten Bootversuch unternahm ich mit der aktuellen <a href="http://download.lesslinux.org/testing/cbrescue/">Testversion der Computerbild-Notfall-CD 2.1</a>. Diese basiert auf &#8220;<a href="http://blog.lesslinux.org/">LessLinux</a>&#8220;, meiner eigenen LFS basierten Distribution. Da Kernel 2.6.33 einen stabilen JME-Treiber mitbringt (JMicron Gigabit Ethernet) und Unterstützung für viele Atheros-WLAN-Chips hinzufügt war ich neugierig, wie sich diese CD schlagen würde. Das Ergebnis war gar nicht schlecht:</p>
<ul>
<li><b>Ethernet:</b> nutzbar, flott, stabil</li>
<li><b>WLAN:</b> nutzbar, stabil, moderate Systemlast</li>
<li><b>Grafik:</b> VESA 1024&#215;768 statt nativer 1366&#215;768</li>
</ul>
<h3>Installation von Ubuntu 9.10</h3>
<p>Da Ubuntus 2.6.31er-Installationskernel den JME-Treiber nicht kennt, schlug die favorisierte Netzwerkinstallation über unseren &#8220;<a href="http://blog.rootserverexperiment.de/2007/09/17/der-buro-bootserver-pxelinux-im-praxiseinsatz/">Plug&amp;Install-Server</a>&#8221; leider fehl. Ich brannte also eine Xubuntu Alternate Install CD und installierte von dieser. Das folgende Update und die Nachinstallation von <tt>build-essential</tt>, <tt>m4</tt> und <tt>libncurses-dev</tt> erfolgte über einen Ralink 2561 802.11g USB-Stick. </p>
<h3>Kernelkompilierung und Segfaults</h3>
<p>Den Kernel 2.6.33 entpackte ich unter <tt>/usr/src</tt> und kopierte Ubuntus Konfigurationsdatei nach <tt>.config</tt>. Ein anschließendes <tt>make oldconfig</tt> fragt nach den neuen Treibern, die aktiviert werden sollen. Als Faustregel gilt, dass Treiber, die als Modul bereitstehen, als Modul gebaut werden sollen und ansonsten der Vorschlag befolgt werden soll.</p>
<p>Seltsames passierte beim anschließenden Lauf von <tt>make</tt>: Ich hatte mehrere Segfaults. Da diese zunächst in eher exotischen Treibern auftauchten, vermutete ich Probleme im Zusammenspiel Compiler-Kernel-Architektur. Nach mehrfachen Reboots gelang es mir jedoch, den Kernel durchzukompilieren und zu installieren. Ich wählte den nicht ganz Debian konformen Ansatz mit</p>
<pre>make
make install
make modules_install
find /lib/modules/2.6.33 -name '*.ko' -exec strip --strip-unneeded {} \;
update-initramfs -c -k 2.6.33
update-grub</pre>
<p>Nach dem Reboot mit dem Kernel 2.6.33 lief der Rechner stabil, auch zwei gleichzeitige Kernel-Kompilierungen parallel konnten ihn nicht mehr aus dem Tritt bringen. Ich tendiere nun dazu anzunehmen, dass eher Probleme von Linux 2.6.31 dem Chipsatztreiber oder dem Core i3 ursächlich für das instabile System waren. wer sich den Ärger ersparen möchte, kompiliert den Kernel auf einer anderen Maschine, erstell mit <tt>make deb-pkg</tt> ein Debian-Paket und installiert dieses anschließend auf dem A52JR.</p>
<h3>Teilerfolg und fehlende Grafiktreiber</h3>
<p>Mit Kernel 2.6.33 lädt auch Ubuntu 9.10 korrekt <tt>jme</tt> für die Gigabit-Ethernetkarte und <tt>ath9k</tt> für die WLAN-Karte, Sound geht und die Webcam funktioniert mit Cheese (das Bild steht halt Kopf). Mein nächster Versuch galt also ATIs Catalyst-Treiber 10.2 vom 16. Februar 2010. Und da verließen sie ihn&#8230;</p>
<pre>aticonfig: No supported adapters detected</pre>
<p>Eine kurze Recherche auf Atis Website ergab, dass für die Mobility Radeon HD 5470 noch keine Treiber bereitstehen &#8211; weder für Linux noch für Windows. Da die Mobilversion andere PCI-IDs verwendet als die verwandte Desktopversion, kann diese <a href="http://www.golem.de/1001/72243.html" target="_blank">erst seit Anfang des Jahres ausgelieferte Karte</a> noch nicht zufriedenstellend genutzt werden. Geht die beigelegte Treiber-DVD verloren, schauen auch Windows-Nutzer in die Röhre. Zumindest bis zum nächsten Update der Catalyst-Treiber. Sollte ASUS sich an seinen bisherigen Zyklus halten, stehen um Mitte März die Treiber für Linux bereit, zehn Tage später Windows-Versionen. Solange muss ich wohl noch mit 1024&#215;768 auskommen. <b>Fortsetzung folgt&#8230;</b></p>
<h3>Dateien</h3>
<ul>
<li><a href="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20100301_asus_a52jr_lspci_-vv.txt" target="_blank">Ausgabe von lspci -vv</a></li>
<li><a href="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20100301_asus_a52jr_lspci_-nn.txt" target="_blank">Ausgabe von lspci -nn</a></li>
<li><a href="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20100301_asus_a52jr_lsusb.txt" target="_blank">Ausgabe von lsusb</a></li>
<li><a href="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20100301_asus_a52jr_dmesg_2.6.33.txt" target="_blank">Ausgabe von dmesg (Kernel 2.6.33)</a></li>
<li><a href="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20100301_asus_a52jr_dotconfig.txt" target="_blank">Verwendete Kernelkonfiguration für Kernel 2.6.33 (benötigt noch Feinschliff)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.rootserverexperiment.de/2010/03/01/linux-auf-dem-asus-a52jr/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Ubuntu 9.10 Karmic Koala und VMware Player</title>
		<link>http://blog.rootserverexperiment.de/2009/10/25/ubuntu-910-karmic-koala-und-vmware-player/</link>
		<comments>http://blog.rootserverexperiment.de/2009/10/25/ubuntu-910-karmic-koala-und-vmware-player/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 17:22:59 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips und Tricks]]></category>
		<category><![CDATA[Tool der Woche]]></category>

		<guid isPermaLink="false">http://blog.rootserverexperiment.de/?p=437</guid>
		<description><![CDATA[Ich hatte seit Wochen ein Mainboard nebst zugehörigem Quadcore-Opteron Phenom nebst 8GB RAM herumliegen. Das war ursprünglich ein Build-/Testsystem, sollte aber jetzt meinen doch schon etwas älteren (zweieinhalb Jahre) Desktop ablösen, der nun als Testsystem weiter dienen wird. Auf einen neuen Rechner installiert man natürlich ein neues OS &#8212; statt bislang Ubuntu 8.04.x sollte 9.10 [...]]]></description>
			<content:encoded><![CDATA[<p>Ich hatte seit Wochen ein Mainboard nebst zugehörigem Quadcore-<strike>Opteron</strike> Phenom nebst 8GB RAM herumliegen. Das war ursprünglich ein Build-/Testsystem, sollte aber jetzt meinen doch schon etwas älteren (zweieinhalb Jahre) Desktop ablösen, der nun als Testsystem weiter dienen wird. Auf einen neuen Rechner installiert man natürlich ein neues OS &#8212; statt bislang Ubuntu 8.04.x sollte 9.10 RC zum Einsatz kommen.</p>
<p>Probleme bereitete die Installation und Nutzung des VMware-Players, den ich gerne als recht flexible Virtualisierungslösung einsetze.</p>
<p><span id="more-437"></span></p>
<h3>Das Installationsproblem</h3>
<p>Die Installation ist eigentlich simpel: Man setzt das *.bundle auf executable und startet das Paket dann mit Rootrechten. Doch ein Erfolg wollte sich nicht einstellen. Irgendwo auf halber Strecke  hängt der Installer und bewegt sich weder vor noch zurück. Greppt man die Ausgabe von <tt>ps waux</tt> nach gcc-Prozessen durch, wird man schlafende oder wartende Kompilationsvorgänge finden.</p>
<p>Warum das? Die Kompilierung der VMware-Module verursacht viele Warnungen über fehlende Symbole. Daran verschluckt sich nun der umgebende Python-Prozess und nichts geht voran. Die <a href="http://communities.vmware.com/thread/228949">Lösung hat das VMware-Forum</a> parat:</p>
<ul>
<li>Man startet die Installation in zwei Fenstern (je mit Rootrechten)</li>
<li>In einem der Fenster startet man das Bundle mit dem Parameter <tt>--ignore-errors</tt></li>
<li>Im zweiten Fenster tötet man gnadenlos alle Modul-Bauprozesse:<br/><tt>while true; do killall -9 vmware-modconfig-console; sleep 1; done</tt><br/>Die Schleife mit Strg+C abbrechen, wenn die Installation durch ist.</li>
<li>Am Ende hat man zwar eine VMware, aber keine Kernelmodule, die baut man hinterher mit<br/><tt>vmware-modconfig --console --install-all</tt></li>
<li>Nun noch den VMware-Dienst neu starten und der Player lässt sich nutzen</li>
</ul>
<h3>Das Mausproblem</h3>
<p>Schnell werdet Ihr feststellen, dass die Maus in der VMware hüpft und immer wieder aus der VMware raus oder in sie rein wechselt. Ein vernünftiges Arbeiten ist so nicht möglich.</p>
<p>Die <a href="http://www.rootloot.de/blog/vmware_in_ubuntu_karmic">Lösung des Problems hat Rootloot.de herausgefunden</a>: Eine Inkompatibilität, zwischen Ubuntus Gtk+ und dem Gtk, das die VMware erwartet. Der Trick: Einfach die VMware zwingen, das mitgelieferte Gtk+ zu nutzen, auch wenn die Darstellung nicht zu 100% mit dem Rest des Desktops kongruent sein sollte. Am besten per Export einer Umgebungsvariable. Da ich die VMware eh immer aus einer Shell starte, habe ich mich mit</p>
<p><tt>export VMWARE_USE_SHIPPED_GTK=force</tt></p>
<p>beholfen. Bingo, klappt alles!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rootserverexperiment.de/2009/10/25/ubuntu-910-karmic-koala-und-vmware-player/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Linux: Verschlüsselte und komprimierte Backups auf DVD</title>
		<link>http://blog.rootserverexperiment.de/2009/02/04/verschlusselte-komprimierte-dvd-backups-unter-linux/</link>
		<comments>http://blog.rootserverexperiment.de/2009/02/04/verschlusselte-komprimierte-dvd-backups-unter-linux/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 18:32:07 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tips und Tricks]]></category>
		<category><![CDATA[Tool der Woche]]></category>

		<guid isPermaLink="false">http://blog.rootserverexperiment.de/?p=294</guid>
		<description><![CDATA[Ich sichere nach wie vor geschäftsrelevante Daten auf DVD, allerdings stellte mich keine der fertigen Lösungen vollkommen zufrieden. Meine Anforderungen:


Starke Verschlüsselung: Das Backup muss sicherer sein als diese unsägliche ZIP-Verschlüsselung hinreichend sicher sein und ein statistischer Angriff soll keinen Erfolg versprechen.


Gute Komprimierung: Ich möchte in kurzer Zeit das Backup klein eindampfen können und beim Zugriff [...]]]></description>
			<content:encoded><![CDATA[<p>Ich sichere nach wie vor geschäftsrelevante Daten auf DVD, allerdings stellte mich keine der fertigen Lösungen vollkommen zufrieden. Meine Anforderungen:</p>
<ul>
<li>
<p><b>Starke Verschlüsselung</b>: Das Backup muss <strike>sicherer sein als diese unsägliche ZIP-Verschlüsselung</strike> hinreichend sicher sein und ein statistischer Angriff soll keinen Erfolg versprechen.</p>
</li>
<li>
<p><b>Gute Komprimierung</b>: Ich möchte in kurzer Zeit das Backup klein eindampfen können und beim Zugriff effizient entpacken, also nur die Dateien, die ich benötige.</p>
</li>
<li>
<p><b>Mountbares Backup</b>: Ganz ohne vorheriges Entpacken soll ein sofortiger Zugriff auf alle Dateien im Backup möglich sein.</p>
</li>
<li>
<p><b>Keine unverschlüsselten temporären Dateien</b>: Weder beim Packen noch beim Entpacken sollen unverschlüsselte temporäre Dateien anfallen, einerseits aus Sicherheitsgründen, andererseits weil eine temporäre Datei auf einem zufällig verschlüsselten Dateisystem Prozessorlast erzeugt.</p>
</li>
</ul>
<p>Bis vor kurzem habe ich einfach Archive mit Tarballs mit <a href="http://de.wikipedia.org/wiki/Twofish" target="_blank">Twofish</a> verschlüsselt (<a href="http://www.openssl.org/docs/apps/enc.html" target="_blank">openssl</a> bietet ein komfortables Subkommando) und diese auf DVD gebrannt. Neben den oben genannten Nachteilen kam das Problem dazu, dass auf einem ISO-9660-Dateisystem die Dateigrößengrenze bei 2GB lag.</p>
<p>Meine Lösung sah eine Kombination aus bekannten Technologien vor: Eine Containerdatei sollte per losetup zum blockorientierten Gerät mutieren, dort wiederum sollte mit cryptsetup ein verschlüsselter Datenträger entstehen, der wiederum ein komprimiertes Squashfs-Dateisystem aufnehmen sollte. Klingt kompliziert? Ist es aber nicht:</p>
<p>Benötigt werden die im Tutorial <a href="http://blog.rootserverexperiment.de/2008/11/05/das-perfekte-netbook-setup-heimatverzeichnis-home-reisetauglich-verschluesselt/" target="_blank">/home reisetauglich verschlüsselt</a> erwähnten Pakete und die <tt>squashfs-tools</tt> sowie SquashFS-Module für den laufenden Kernel.<span id="more-294"></span></p>
<h3>Anlegen des Containers und Befüllen mit Daten</h3>
<p>Zuerst wird ein Container angelegt, verschlüsselt und dann mit Daten gefüllt</p>
<ul>
<li>
<p><b>Erstellen des Containers:</b> Ein Sparse-File mit der maximal zulässigen Größe einer DVD5 (4700372992 Bytes oder 2295104 Blöcke &#8212; bei einer DVD9 müssten es 4150388 Blöcke sein) entsteht mit dem folgenden Befehl. Die Datei belegt am Anfang nur 2048 Byte, angezeigt wird dennoch die maximale Größe:</p>
<pre>dd if=/dev/zero bs=2048 count=1 seek=2295103 of=crypt_squash.data</pre>
</li>
<li>
<p><b>Erstellen eines  Loop-Devices:</b> Mittels <tt>losetup</tt> entsteht jetzt eine der Datei zugeordnete Blockdevice:</p>
<pre>losetup /dev/loop0 crypt_squash.data</pre>
<p>Sollte <tt>/dev/loop0</tt> bereits besetzt sein, zeigt <tt>losetup -f</tt> freie Loop-Devices.</p>
</li>
<li>
<p><b>Erstellen des Containers:</b> Auf der Loop-Datei wird nun das verschlüsselte Blockgerät vorbereitet:</p>
<pre>cryptsetup luksFormat -c aes-cbc-essiv:sha256 -s 256 -y /dev/loop0</pre>
</li>
<li>
<p><b>Öffnen des verschlüsselten Gerätes:</b> Nun wird die verschlüsselte Gerätedatei geöffnent. Das Resultat ist ein Blockdevide <tt>/dev/mapper/cryptdvd</tt> auf das geschrieben werden und von dem gelesen werden kann. Die Verschlüsselung erfogt hier komplett transparent:</p>
<pre>sudo cryptsetup luksOpen /dev/loop0 cryptdvd</pre>
</li>
<li>
<p><b>Erstellen des komprimierten Dateisystems:</b> In <tt>/dev/mapper/cryptdvd</tt> entsteht nun das komprimierte Dateisystem SquashFS. Weil wir in eine Gerätedatei schreiben,  muss explizit <tt>-noappend</tt> angegeben werden, um diese zu überschreiben. Die restlichen Parameter sind Kosmetik: Ich bevorzuge noch aus Kompatibilitätsgründen Komprimierung mit <tt>gzip</tt> und möchte nur einen Prozessor einspannen.</p>
<pre>mksquashfs Projekte WichtigeDaten /dev/mapper/cryptdvd  -nolzma -check_data -noappend -processors 1</pre>
</li>
</ul>
<h3>Test des Containers</h3>
<p>Nun ist der Test des Containers dran. Funktioniert das Backup so, wie wir es uns vorgestellt haben?</p>
<ul>
<li>
<p><b>Mounten des Containers:</b> Das Cryptdevice existiert ja noch, mounten wir es einfach:</p>
<pre>mkdir /tmp/cryptdvd
mount /dev/mapper/cryptdvd /tmp/cryptdvd/</pre>
<p>Falls ein unbekanntes Dateisystem angegeben wird, sollten Sie sicherstellen, dass das SquashFS-Modul geladen ist und gegebenenfalls den Dateisystemtyp angeben:</p>
<pre>mount -t squashfs /dev/mapper/cryptdvd /tmp/cryptdvd/</pre>
</li>
<li>
<p><b>Unmounten:</b></p>
<pre>umount /dev/mapper/cryptdvd</pre>
</li>
<li>
<p><b>Auflösen des Cryptdevices:</b></p>
<pre>cryptsetup luksClose /dev/mapper/cryptdvd</pre>
</li>
<li>
<p><b>Lösen des Loop-Devices:</b> So stellen wir sicher, dass auch alle Daten im Container gelandet sind und wir gefahrlos brennen können:</p>
<pre>losetup -d /dev/loop0</pre>
</li>
</ul>
<h3>Brennen der DVD</h3>
<ul>
<li>
<p><b>Brennen der DVD:</b> <tt>cdrecord</tt> ist es herzlich egal, was für Daten da gebrannt werden, es bannt unseren Container 1:1 auf den optischen Datenträger:</p>
<pre>cdrecord -v -speed=4 -dev=/dev/scd1 crypt_squash.data</pre>
</li>
</ul>
<h3>Test der gebrannten DVD &#8212; Mounten und Unmounten des Backups</h3>
<ul>
<li>
<p><b>Loop-Device erstellen:</b> Zunächst entsteht ein Loopdevice auf der gebrannten DVD. Es könnte eigentlich auch ohne funktionieren:</p>
<pre>losetup /dev/loop1 /dev/scd1</pre>
</li>
<li>
<p><b>Öffnen des Crypt-Devices:</b> Jetzt wird die Datei <tt>/dev/mapper/cryptdvd</tt> erzeugt, welche die Entschlüsselung transparent macht. Hier ist die Eingabe des Passwortes erforderlich:</p>
<pre>sudo cryptsetup luksOpen /dev/loop1 cryptdvd</pre>
</li>
<li>
<p><b>Mounten des Dateisystems:</b> Möglicherweise ist die Angabe des Dateisystemtyps erforderlich:</p>
<pre>mount /dev/mapper/cryptdvd /tmp/cryptdvd/</pre>
<li>
<p><b>Unmounten wie oben:</b></p>
<pre>umount /dev/mapper/cryptdvd</pre>
<li>
<p><b>Lösen des Crypt-Devices:</b></p>
<pre>cryptsetup luksClose /dev/mapper/cryptdvd</pre>
</li>
<li>
<p><b>Lösen des Loop-Devices:</b></p>
<pre>losetup -d /dev/loop1</pre>
<p>Nun kann die DVD entnommen werden.</p>
</li>
</ul>
<p>Die meisten der angegebenen Schritte lassen sich leicht automatisieren, so dass sichere Backups sehr einfach durchgeführt werden können und der Zugriff genauso einfach möglich ist. Ein Manko bleibt: Für das Hinzufügen neuer LUKS-Schlüssel muss der Container natürlich mit <tt>dd</tt> auf Festplatte transferiert und in ein Loop-Device  überführt werden, bevor er neu gebrannt wird.</p>
<p><b>Nachtrag I:</b> Ich stelle diesen Artikel hiermit unter BY-SA zur Verfügung. Wer möchte, kann ihn also per Copy und Paste ins UbuntuUsers-Wiki (oder andere Wikis) übernehmen und dort weiterbearbeiten, solange auf mich als Urheber verwiesen wird. Viel Spaß damit! <a href="http://creativecommons.org/licenses/by-sa/3.0/de/">creativecommons.org/licenses/by-sa/3.0/de/</a></p>
<p><b>Nachtrag II:</b> Da einige Community-Wikis NC-BY-SA verwenden und BY-SA nicht nach NC-BY-SA überführt werden kann, zusätzliche Bereitstellung unter NC-BY-SA. Viel Spaß damit! <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/de/">creativecommons.org/licenses/by-nc-sa/3.0/de/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rootserverexperiment.de/2009/02/04/verschlusselte-komprimierte-dvd-backups-unter-linux/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Dreimal Windows &#8212; und keines weiss vom anderen</title>
		<link>http://blog.rootserverexperiment.de/2009/01/24/dreimal-windows-mit-grub/</link>
		<comments>http://blog.rootserverexperiment.de/2009/01/24/dreimal-windows-mit-grub/#comments</comments>
		<pubDate>Sat, 24 Jan 2009 22:07:26 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Tips und Tricks]]></category>
		<category><![CDATA[Tool der Woche]]></category>

		<guid isPermaLink="false">http://blog.rootserverexperiment.de/?p=260</guid>
		<description><![CDATA[OK, ein beinahe reines Windows-Thema ist ungewöhnlich hier. Aber ich habe gerade viele Leser aus dem Windows-Umfeld, denen es weiterhilft, wenn Sie wissen, wie man mit einer Linux-Live-CD und dem Bootloader GRUB seine Windows-Installationen besser in den Griff bekommt. Darum im Tool der Woche: GRUB und fdisk.
Wer Windows in der von Microsoft vorgesehenen Reihenfolge &#8212; [...]]]></description>
			<content:encoded><![CDATA[<p><i>OK, ein beinahe reines Windows-Thema ist ungewöhnlich hier. Aber ich habe gerade viele Leser aus dem Windows-Umfeld, denen es weiterhilft, wenn Sie wissen, wie man mit einer Linux-Live-CD und dem Bootloader GRUB seine Windows-Installationen besser in den Griff bekommt. Darum im Tool der Woche: GRUB und fdisk.</i></p>
<p>Wer Windows in der von Microsoft vorgesehenen Reihenfolge &#8212; erst XP, dann Vista, dann 7 &#8212; installiert, wird selten Probleme bekommen: Jedes Windows erkennt seine Vorgänger und bindet diese in den eigenen Bootloader ein. Trickserei ist aber gefragt, wenn kein Windows vom anderen Kenntnis haben soll oder man zu jeder Zeit ein beliebiges Windows durch eine Neuinstallation ersetzen möchte. Der Standard-Bootmanager von Windows scheitert hieran, Abhilfe schafft der kostenlose und von Linux-Distributionen bekannte GRUB. Netter Nebeneffekt meiner Lösung: Jedes Windows hat den Laufwerksbuchstaben C: für die Systempartition. </p>
<p>
Im folgenden b eschreibe ich, wie man Windows XP, Windows Vista und Windows 7 unabhängig voneinnader installiert. Je nach Bedarf können Sie auch zweimal XP und einmal 7 installieren oder die Reihenfolge variieren. Einzige Einschränkung ist die Limitation bootfähiger Windows-Versionen auf drei, was durch die maximale Anzahl an primären Partitionen bedingt ist. Wer GRUB auf eine zweite Festplatte, Diskette, USB-Stick oder CD auslagert, kommt auf vier.
</p>
<p>Als Werkzeugkiste kommt eine <a href="http://www.sidux.com/">Sidux-Live-CD in Version 2008-04</a> zum Einsatz. Im Prinzip sollte es jede Live-CD tun, die Gparted und fdisk mitbringt. Schlimmstenfalls sind auf Grund anderer Mountpoints etc. einige Parameter anders einzugeben.</p>
<p><span id="more-260"></span></p>
<h3>Vorbereitung der Festplatte</h3>
<p>Die Partitionierung der Festplatte nehmen wir unter Sidux vor. Rufen Sie in einem Terminalfenster <tt>sudo gparted</tt> auf, um den Partitionseditor zu starten. Hier legen Sie nun eine <i>primäre</i> Partition mit NTFS-Dateisystem für die erste Windows-Installation, zwei weitere <i>primäre</i> Partitionen ohne Dateisystem und eine kleine (alles ab 30MB aufwärts genügt) <i>primäre</i> FAT16- oder FAT32-Partition für den Bootloader an. Schreiben Sie die Änderungen der Partitionstabelle und ändern Sie anschließend die Flags: Die NTFS-Partition muss das Bootflag gesetzt haben, damit sich Windows problemlos installieren und starten lässt. Bei dieser Gelegenheit können Sie sich gleich mit der Notation für Laufwerke unter Linux vertraut machen: <tt>/dev/sda</tt> ist die erste Festplatte, die enthaltenen Partitionen sind nummeriert: eins bis vier für primäre, respektive erweiterte und fünf bis unendlich für logische Partitionen.</p>
<div align="center"><a href="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20090124_screen01_gparted.png" target="_blank"><img src="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20090124_screen01_gparted_sml.png" /></a></div>
<h3>Installation von Windows XP</h3>
<p>Nun ist die Installation von XP an der Reihe. Hier gibt es wenig Spektakuläres zu vermelden: Bei der Installation ist auf die Auswahl der richtigen Partition zu achten, führen Sie eine Schnellformatierung durch, damit sichergestellt ist, dass XP mit der Version des Dateisystems klarkommt.</p>
<div align="center"><a href="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20090124_screen02_xp.png" target="_blank"><img src="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20090124_screen02_xp_sml.png" /></a></div>
<h3>Sicherung der XP-Installation und Aktivierung einer weiteren Partition</h3>
<p>Wir booten nun erneut das Live-Linux-System. Allerdings ist jetzt etwas Kommandozeilen-Voodoo nötig. Achten Sie auf die Details: ein <tt>#</tt> kennzeichnet einen Root-Prompt, den wir zuvor mit <tt>sudo su</tt> angefordert haben. Da wir unsere XP-Installation sichern und dann <b>mutwillig beschädigen (!!!)</b> werden, benötigen Sie bspw. einen USB-Stick. In unserem Beispiel dient eine 16GB-Festplatte (es handelt sich um eine VMware) mit einer einzigen FAT32-Partition als Sicherungsmedium. Sie wird als <tt>/dev/sdb</tt> erkannt.</p>
<ol>
<li>
<p>Mounten Sie das Laufwerk, welches zur Sicherung dient, indem Sie es im Bereich &#8220;Speichermedien&#8221; auf dem Desktop einfach anklicken. Der Befehl &#8220;mount&#8221; oder &#8220;df&#8221; verrät dann Mountpoint, also Ordner, unter dem der Datenträger verfügbar ist. In unseren Fall ist dies <tt>/media/disk2part1</tt>.</p>
<div align="center"><a href="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20090124_screen03_mount.png" target="_blank"><img src="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20090124_screen03_mount_sml.png" /></a></div>
</li>
<li>
<p>Öffnen Sie ein Terminalfenster, in dem Sie mit <tt>sudo su</tt> Rootrechte erlangen. Dort lassen Sie dich mit <tt>fdisk</tt> die aktuelle Partitionierung anzeigen &#8212; die XP-Partition wird meist <tt>/dev/sda1</tt> sein. Nun sichern Sie mit <tt>dd</tt> die ersten 16MB der Partition auf die zweite Festplatte oder den USB-Stick: <tt>if=...</tt> kennzeichnet dabei die als Eingabedatei verwendete Windows-Partition. Anschließend überschreiben Sie die ersten  16MB mit Nullen (Eingabedatei <tt>/dev/zero</tt>). Sie verhindern so, dass die nächste Windows-Installation das Dateisystem findet und versucht, einzubinden.</p>
<div align="center"><a href="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20090124_screen04_dd.png" target="_blank"><img src="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20090124_screen04_dd_sml.png" /></a></div>
</li>
<li>
<p>Mit <tt>fdisk /dev/sda</tt> starten Sie nun den Partitionseditor auf der ersten Platte. Den Typ der ersten Partition ändern Sie mit <tt>t</tt> auf <tt>da</tt> (Data), den Typ der zweiten Partition auf NTFS (7). Schließlich entziehen Sie <tt>/dev/sda1</tt> mit <tt>a</tt> das Bootable-Flag und setzen es ebenfalls mit <tt>a</tt> auf <tt>/dev/sda2</tt>. Wenn <tt>p</tt> das gewünschte Ergenis anzeigt, sichern Sie die Partitionstabelle mit <tt>w</tt>.</p>
<div align="center"><a href="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20090124_screen05_fdisk.png" target="_blank"><img src="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20090124_screen05_fdisk_sml.png" /></a></div>
</li>
<li>
<p>Starten Sie nun den Rechner neu, beispielsweise durch Eingabe des Kommandos <tt>reboot</tt>.</p>
</li>
</ol>
<h3>Installation von Windows Vista</h3>
<p>Nun ist die Installation von Vista an der Reihe. Hier gibt es wenig Spektakuläres zu vermelden: Bei der Installation ist auf die Auswahl der richtigen Partition zu achten, führen Sie eine Schnellformatierung durch, damit sichergestellt ist, dass Vista mit der Version des Dateisystems klarkommt.</p>
<div align="center"><a href="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20090124_screen06_vista.png" target="_blank"><img src="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20090124_screen06_vista_sml.png" /></a></div>
<h3>Sicherung der Vista-Installation und Aktivierung einer weiteren Partition</h3>
<p>Wir booten nun erneut das Live-Linux-System. Wieder ist etwas Kommandozeilen-Voodoo nötig. Wir sichern und beschädigen die Vista-Partition so, wie wir es zuvor mit der XP-Partition getan haben. Vergessen Sie das Einbinden des Laufwerks, auf dem Sie die Sicherung ablegen, nicht!</p>
<ol>
<li>
<p>Öffnen Sie ein Terminalfenster, indem Sie mit <tt>sudo su</tt> Rootrechte erlangen. Dort lassen Sie dich mit <tt>fdisk</tt> die aktuelle Partitionierung anzeigen &#8212; die Vista-Partition wird meist <tt>/dev/sda2</tt> sein. Auch hier sichern Sie mit <tt>dd</tt> die ersten 16MB der Partition auf die zweite Festplatte oder den USB-Stick: <tt>if=...</tt> kennzeichnet dabei die als Eingabedatei verwendete Windows-Partition. Anschließend überschreiben Sie die ersten  16MB mit Nullen (Eingabedatei <tt>/dev/zero</tt>). Sie verhindern so, dass die nächste Windows-Installation das Dateisystem findet und versucht, einzubinden.</p>
<div align="center"><a href="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20090124_screen07_dd.png" target="_blank"><img src="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20090124_screen07_dd_sml.png" /></a></div>
</li>
<li>
<p>Mit <tt>fdisk /dev/sda</tt> starten Sie nun den Partitionseditor auf der ersten Platte. Den Typ der zweiten Partition ändern Sie mit <tt>t</tt> auf <tt>da</tt> (Data), den Typ der dritten  Partition auf NTFS (7). Schließlich entziehen Sie <tt>/dev/sda2</tt> mit <tt>a</tt> das Bootable-Flag und setzen es ebenfalls mit <tt>a</tt> auf <tt>/dev/sda3</tt>. Wenn <tt>p</tt> das gewünschte Ergenis anzeigt, sichern Sie die Partitionstabelle mit <tt>w</tt>.</p>
<div align="center"><a href="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20090124_screen08_fdisk.png" target="_blank"><img src="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20090124_screen08_fdisk_sml.png" /></a></div>
</li>
<li>
<p>Starten Sie nun den Rechner neu, beispielsweise durch Eingabe des Kommandos <tt>reboot</tt>.</p>
</li>
</ol>
<h3>Installation von Windows 7</h3>
<p>Nun ist die Installation von Windows 7 an der Reihe. Sie verläuft wie die von Vista. Formatieren Sie die vorgesehene Partition und fahren Sie wie gewohnt fort.</p>
<div align="center"><a href="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20090124_screen09_win7.png" target="_blank"><img src="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20090124_screen09_win7_sml.png" /></a></div>
<h3>Schreiben des Bootloaders</h3>
<p>Jetzt muss der GRUB-Bootloader geschrieben werden. Mounten Sie hierfür die Partition, die GRUB später aufnehmen wird (im Beispiel <tt>/dev/sda4</tt>, gemountet unter <tt>/media/disk1part4</tt>) und die Partition, welche die gesicherten Partitionsanfänge enthält (im Beispiel <tt>/dev/sdb1</tt>, gemountet unter <tt>/media/disk2part1</tt>).</p>
<ol>
<li>
<p>Prüfen Sie zunächst mit <tt>df | grep sd</tt>, ob die beiden benötigten Partitionen wirklich eingehängt sind. Anschließend schreiben Sie GRUB mit den auf dem Screenshot erkennbaren Parametern: <tt>--root-directory=/media/disk1part4</tt> kennzeichnet die Partition, auf der die Konfiguration abgelegt ist, <tt>/dev/sda</tt> ist die Zielplatte. </p>
<div align="center"><a href="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20090124_screen10_grub.png" target="_blank"><img src="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20090124_screen10_grub_sml.png" /></a></div>
</li>
<li>
<p>GRUB benötigt nun noch eine Konfigurationsdatei <tt>/boot/grub/menu.lst</tt> auf der Installationspartition, hier also <tt>/media/disk1part4/boot/grub/menu.lst</tt>. Verwenden Sie den Befehl <tt>sudo kate /media/disk1part4/boot/grub/menu.lst</tt> um die Konfigurationsdatei anzulegen.</p>
<div align="center"><a href="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20090124_screen11_grub.png" target="_blank"><img src="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20090124_screen11_grub_sml.png" /></a></div>
<p>Hier die vollständige Konfiguration für Copy&amp;Paste:</p>
<pre>default 1
timeout 10

title Windows XP
root (hd0,0)
hide (hd0,1)
hide (hd0,2)
unhide (hd0,0)
savedefault
makeactive
chainloader +1

title Windows Vista
root (hd0,1)
hide (hd0,0)
hide (hd0,2)
unhide (hd0,1)
savedefault
makeactive
chainloader +1

title Windows 7
root (hd0,2)
hide (hd0,0)
hide (hd0,1)
unhide (hd0,2)
savedefault
makeactive
chainloader +1</pre>
<p>Zu bemerken ist, dass GRUB Laufwerke anders kennzeichnet als Linux selbst: Zunächst fängt die Zählung bei Null an, zudem verwenden Platten keine Buchstaben. (hd0,0) ist also die erste Partition der ersten Festplatte. Unsere GRUB-Konfiguration versteckt bei jedem Start einer Windows-Installation die anderen (hide) und holt die eigene hervor (unhide). Übrigens: Um immer den zuletzt gewählten Eintrag zu starten, verwenden Sie <tt>default saved</tt>.</p>
</li>
</ol>
<h3>Anpassung der Partitionstypen</h3>
<p>Nun müssen die mutwillig beschädigten Installation von XP und Vista repariert werden und die Partitionstypen wieder korrigiert werden:</p>
<ol>
<li>
<p>Verwenden Sie wieder <tt>dd</tt>, um die gesicherten Partitionsanfänge zurückzuschreiben. Blockgröße und -anzahl sind jetzt nicht nötig:</p>
<div align="center"><a href="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20090124_screen12_dd.png" target="_blank"><img src="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20090124_screen12_dd_sml.png" /></a></div>
</li>
<li>
<p>Mit <tt>fdisk</tt> setzen Sie die Typen der als Datenpartition markierten Partitionen <tt>sda1</tt> und <tt>sda2</tt> jetzt wieder auf NTFS (7):</p>
<div align="center"><a href="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20090124_screen13_fdisk" target="_blank"><img src="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20090124_screen13_fdisk_sml.png" /></a></div>
</li>
</ol>
<h3>Der erste Start</h3>
<p>Und so sieht GRUB dann aus:</p>
<div align="center"><a href="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20090124_screen14_grub.png" target="_blank"><img src="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20090124_screen14_grub_sml.png" /></a></div>
<p>Sollten Sie eine Windows-Installation neu installieren müssen, ist dies ganz einfach: Sichern Sie mit <tt>dd</tt> die Partitionsanfänge der beiden anderen, überschreiben Sie diese mit Nullbytes und ändern Sie den Partitionstyp auf <tt>da</tt>. Dann installieren Sie das Windows erneut. Nach abgeschlossener Installation setzen Sie die Partititionstypen zurück und spielen die gesicherten Partitionsanfänge zurück. Unter Umständen müssen Sie GRUB erneut installieren, wobei jedoch die Konfiguration erhalten bleibt.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rootserverexperiment.de/2009/01/24/dreimal-windows-mit-grub/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Akoya E1210: Ubuntu 8.04.1 Alternate Install von USB-Stick</title>
		<link>http://blog.rootserverexperiment.de/2008/07/04/akoya-e1210-ubuntu-8041-alternate-install-von-usb-stick/</link>
		<comments>http://blog.rootserverexperiment.de/2008/07/04/akoya-e1210-ubuntu-8041-alternate-install-von-usb-stick/#comments</comments>
		<pubDate>Fri, 04 Jul 2008 11:38:37 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[EeePC]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MSI Wind]]></category>
		<category><![CDATA[Netbook]]></category>
		<category><![CDATA[Tips und Tricks]]></category>

		<guid isPermaLink="false">http://blog.rootserverexperiment.de/2008/07/04/akoya-e1210-ubuntu-8041-alternate-install-von-usb-stick/</guid>
		<description><![CDATA[Dieser Beitrag dürfte für viele Nutzer mit Erscheinen der finalen Version von Ubuntu 8.10 hinfällig sein. Installieren Sie Ubuntu 8.04.1 nur, wenn Sie auf Long Term Support angewiesen sind. Siehe Das perfekte Netbook-Setup: 1. Installation von Ubuntu/Xubuntu 8.10
So, nach den Startschwierigkeiten gestern klappte nun die Installation von Ubuntu 8.04.1 auf dem Akoya E1210. Als Installationsmedien [...]]]></description>
			<content:encoded><![CDATA[<div class="attention">Dieser Beitrag dürfte für viele Nutzer mit Erscheinen der finalen Version von Ubuntu 8.10 hinfällig sein. Installieren Sie Ubuntu 8.04.1 nur, wenn Sie auf Long Term Support angewiesen sind. Siehe <a href="http://blog.rootserverexperiment.de/2008/11/02/das-perfekte-netbook-setup-installation-ubuntu-xubuntu-810/">Das perfekte Netbook-Setup: 1. Installation von Ubuntu/Xubuntu 8.10</a></div>
<p>So, nach den Startschwierigkeiten gestern klappte nun die Installation von Ubuntu 8.04.1 auf dem Akoya E1210. Als Installationsmedien verwendete ich einen USB-Stick (SD-Karten funktionieren ebenfalls). Bootfiles hierfür habe ich so zusammengestellt, dass auch unbedarfte Nutzer schnell zur Alternate Install kommen dürften:</p>
<p><span id="more-68"></span></p>
<ul>
<li>
<p>Laden Sie die Datei <a href="http://eeepc.mattiasschlenker.de/ubuntu-8.04.1-alternate-i386.usb.zip">ubuntu-8.04.1-alternate-i386.usb.zip</a> (Ubuntu 8.04.1), <a href="http://eeepc.mattiasschlenker.de/ubuntu-8.10-alternate-rc1-20081024-i386.usb.zip">ubuntu-8.10-alternate-rc1-20081024-i386.usb.zip</a> (Ubuntu 8.10 RC) oder <a href="http://eeepc.mattiasschlenker.de/xubuntu-8.10-alternate-rc1-20081024-i386.usb.zip">xubuntu-8.10-alternate-rc1-20081024-i386.usb.zip</a> <b>(Xubuntu 8.10 RC, bevorzugt!)</b> herunter und entpacken Sie das Archiv</p>
</li>
<li>
<p>Entpacken Sie das (in der ZIP-Datei) enthaltene Paket syslinux-3.55.tar.bz2 (nur unter Linux notwendig)</p>
</li>
<li>
<p>Schreiben Sie mit dem Befehl </p>
<p><tt>cat syslinux-3.55/mbr/mbr.bin &gt; /dev/sdx</tt></p>
<p>den MBR des Sticks (x bitte durch b, c, d&#8230; wasauchimmer ersetzen)</p>
</li>
<li>
<p>Stellen Sie sicher, dass die erste/einzige Partition des Sticks bootfähig/aktiv markiert ist (gparted oder fdisk)</p>
</li>
<li>
<p>Unmounten Sie den Stick (falls er gerade gemountet ist) und schreiben Sie mit dem Befehl </p>
<p><tt>./syslinux-3.55/unix/syslinux /dev/sdx1</tt></p>
<p> den Bootloader auf den Stick</p>
</li>
<li>
<p>Windows-Nutzer: Es liegt eine makeboot.bat bei, welche <b>sowohl den MBR als auch den Bootloader</b> schreibt und nach dem Laufwerksbuchstaben fragt</p>
</li>
<li>
<p>Kopieren Sie nun den gesamten Inhalt des Unterordners <tt>stick/</tt> in das Wurzelverzeichnis des USB-Sticks</p>
</li>
</ul>
<p>Der USB-Stick ist nun bootfähig und kann unmittelbar nach dem BIOS-Selbststest mit F11 (Medion Akoya E1210) oder Esc (EeePC 701 und 900) als Bootmedium ausgewählt werden. Die Installationsroutine durchsucht dann alle Laufwerke nach dem Installations-Image und startet die Alternate-Install ansonsten genau wie von CD.</p>
<p><b>Xubuntu oder Kubuntu:</b> Wer statt dem gewöhnlichen Ubuntu ein Kubuntu oder Xubuntu installieren möchte, sollte das Zip-Archiv <a href="http://eeepc.mattiasschlenker.de/ubuntu-8.04.1-alternate-i386-bootonly.usb.zip">ubuntu-8.04.1-alternate-i386-bootonly.usb.zip</a> verwenden. Kopieren Sie dann das 8.04.1-Alternate-ISO-Image der gewünschten Ubuntu-Geschmacksrichtung in den Ordner <tt>install/</tt> und passen Sie in der Datei <tt>syslinux.cfg</tt> den Namen des Seeds an. Für 8.10 folgt diese Option mit der finalen Version.</p>
<p>Idee von <a href="http://ubuntuforums.org/showpost.php?p=4404569&#038;postcount=37" target="_blank">http://ubuntuforums.org/showpost.php?p=4404569&#038;postcount=37</a>.</p>
<p>Eventuell hilfreich:</p>
<ul>
<li><a href="http://cdprojekte.mattiasschlenker.de/Public/Artikel/PC-Magazin_Linux_2006_03_-_Pocket-Pinguin.pdf">Artikel PC Magazin Linux 03/2006 “Pocket-Pinguin” — Konfiguration und Einrichtung von Syslinux</a></li>
</ul>
<p><b>Update, 18. September, 10. Oktober, 24. Oktober:</b> Unter <a href="http://eeepc.mattiasschlenker.de/">eeepc.mattiasschlenker.de</a> stehen auch <b>Installationsimages für Ubuntu 8.10</b> <strike>Alpha</strike> <strike>Beta</strike> RC bereit. Die werden alle ein bis zwei Wochen aktualisiert.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rootserverexperiment.de/2008/07/04/akoya-e1210-ubuntu-8041-alternate-install-von-usb-stick/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
	</channel>
</rss>
