[xen] Ubuntu 10.04 DomU auf openSuSE dom0 erstellen

Hallo,

wenn ihr euch bereits mit Xen beschäftigt habt (opensource-xen, nicht citrix) werdet ihr vielleicht festgestellt haben, dass es garnicht so einfach ist, eine VM mit Ubuntu paravirtualisiert zum laufen zu bekommen.

Vollvirtualisiert ist das kein Problem, allerdings fehlen einem dann die Treiber und die VM kann noch nichtmal über den Hypervisor heruntergefahren werden, also muss eine Lösung zum paravirtualsierten Betrieb her.

Im folgenden möchte ich meine erfolgreiche Vorgehensweise zum Erreichen dieses Ziels darlegen.

Debootstrap rpm besorgen

 Festplatten anlegen

Da ich die Festplatten per lvm erstellen beschreibe ich auch diesen Weg:

  • lvcreate -n ubuntu -L10G /dev/lvmxen
  • lvcreate -n ubuntu-swap -L256M /dev/lvmxen
  • mke2fs -j /dev/lvmxen/ubuntu
  • mkswap /dev/lvmxen/ubuntu-swap
  • mkdir /mnt/xen
  • dann die Platte mit mount /dev/lvmxen/ubuntu /mnt/xen mounten

Ubuntu debootstrappen

  • debootstrap –arch=amd64 –include=linux-image-generic,linux-image-2.6.32-21-generic,linux-image-2.6.32-305-ec2,linux-image-ec2,grub –components=main,universe,multiverse lucid /mnt/xen http://archive.ubuntu.com/ubuntu/
  • Hinweis dazu: Ich benutze hier den ec2-Kernel, weil der Xen-Kernel seit Hardy nicht mehr existent ist!

Einstellungen vornehmen

  • Nachdem Debootstrap das System erstellt hat, muss es noch angepasst werden.
  • dazu in die Chroot wechseln: chroot /mnt/xen
  • export LANG=DE

Fstab erstellen

  • touch /etc/fstab
  • vi /etc/fstab

/dev/xvda1 / ext3 defaults 0 1
/dev/xvdb1 none swap defaults 0 0
proc /proc proc defaults 0 0

Grub-Config erstellen

  • update-grub -> Menu.lst erstellen lassen

Netzwerk

  • vi /etc/network/interfaces

auto eth0
iface eth0 inet dhcp

/etc/hosts erstellen
# cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 hardy

/etc/hostname erstellen
# cat /etc/hostname
lucid

Finetuning

Referenz auf die Hardware-Clock entfernen. Diese sind dafür verantwortlich, dass die VM hängt.
# update-rc.d -f hwclockfirst remove
# update-rc.d -f hwclock remove
# rm /etc/udev/rules.d/85-hwclock.rules

  • Chroot mit exit verlassen
  • /mnt/xen unmounten

DomU Konfiguration erstellen

# cat /etc/xen/ubuntu

bootloader = ‘/usr/bin/pygrub’

memory = 256

name = “ubuntu”

vif = [ ‘mac=00:01:2E:5E:F1:D2,bridge=br0 ‘ ]

disk = [ ‘phy:/dev/lvmxen/ubuntu,xvda1,w’, ‘phy:/dev/lvmxen/ubuntu-swap,xvdb1,w’ ]

Xen-Server domU Clone-Skript

Hallo,

hier ein Skript zum Klonen von virtuellen Maschinen. Vorraussetzung ist hierbei das von Novell entwickelte Skript xmclone.sh. Bei einer Xen-Installation auf openSUSE/SLES ist das Skript bereits vorhanden.

#!/bin/bash
# Datei vm-clone.sh

echo “Cloning A VM made easy!”

## Parameter eingeben

read -p “Bitte den Namen der zu klonenenden VM angeben: ” sourcedomU

read -p “Bitte den Namen des Klons angeben: ” newdomU

read -p “Bitte den neuen Hostname des Klons angeben: ” hostname

read -p “Bitte die IP-Adresse des Klons angeben[xxx.xxx.xxx.xxx]: ” ip

echo “Start Cloning the VM!”

## der geklonten VM eine zufällige MAC-Adresse generieren und zuweisen

MAC=`perl -e ‘printf “00:01:2E:%02X:%02X:%02X\n”, rand 0xFF, rand 0xFF, rand 0xFF’`

/etc/xen/scripts/xmclone.sh -n $hostname -i $ip -m $MAC $sourcedomU $newdomU

echo “Cloning complete!”

## Virtuelle Maschine aus der erzeugten Konfiguration erstellen

xm new /etc/xen/vm/$newdomU

Xen-server domU Install-Skript

Hallo,

hier ein Skript, welches nach Eingabe der Parameter eine VM erstellt:

#!/bin/bash
#Datei vm-install.sh

##Parameter eingeben

read -p “Bitte Name der VM eingeben: ” name

read -p “Bitte gewünschtes Betriebssystem eingeben: ” bs

read -p “Bitte Größe der Festplatte eingeben [G]: ” hdsize

read -p “Bitte Minimum RAM eingeben [MB]: ” minram

read -p “Bitte Maximum RAM eingeben [MB]: ” maxram

read -p “Bitte Anzahl der CPUs angeben: ” cpu

read -p “Bitte ISO-Image angeben [/mnt/iso]: ” iso

read -p “Paravirtualisiert oder vollvirtualisiert? [-v/-V]: ” virt

##Zufällige Mac-Adresse generieren

MAC=`perl -e ‘printf “00:01:2E:%02X:%02X:%02X\n”, rand 0xFF, rand 0xFF, rand 0xFF’`

## Festplatte per LVM erstellen

lvcreate -n $name -L $hdsize /dev/lvxen

##VM generieren (im Hintergrund)

vm-install -o $bs -n $name –vcpus=$cpu –nic bridge=br0,mac=$MAC –disk phy:/dev/lvmxen/$name –disk /mnt/iso/$iso,hdc,cdrom,r -m $minram -M $maxram $virt –background

[Linux] Zeichensatz in Dateinamen konvertieren

Hallo,

ich habe seit einiger Zeit das Problem, dass beim Sichern meinen NAS auf eine angeschlossene USB-Festplatte krachen geht. Laut Log liegt es an den Umlauten in den Dateinamen.

Jetzt überlegt man sich, wie man das Problem löst, ohne alle Dateien einzeln umzubennen.

Die Lösung nennt sich “convmv”! 

Convmv ist ein kleines Tool, welches den Zeichensatz von Dateinamen von
ISO-8859-15 auf UTF-8 ändert. Dies ist nämlich hier genau das Problem. Der Backup-Algorithmus kommt nur mit Dateinamen im UTF-8-Format klar.

Das Tool ist bei openSuSE sowie bei Ubuntu in den Standard-Repositorys vorhanden.

Konvertieren kann man nun mit folgendem Befehl:

  • convmv -f iso-8859-15 -t utf-8 -r .
  • Dadurch gibt das Tool alle Dateien aus, die es umbennen würde, tut dies aber noch nicht!
  • Sobald man die Ausgabe überprüft hat, kann man mit convmv -f iso-8859-15 -t utf-8 -r –notest . die Konvertierung beginnen
Das wars, viel Spaß!

[Linux] T-Online Mediencenter Integration

Hallo,

da T-Online keine native Software für Linux anbietet, muss man sich anders behelfen, wenn man nicht alle Daten per Browser hochladen möchte.

Das Stichwort hierbei ist Webdav.

Das Mediencenter lässt sich leicht als Webdav mounten, wenn man das Paket davfs2 auf dem Rechner installiert hat.

Dieses steht für die Distribution openSuSE als rpm auf software.opensuse.org bereit (allerdings muss hier in den Such-Optionen die Option “Suche auch in ‘Home’-Projekten) angehakt sein.

Hinweis: Unter Ubuntu gibts es das Paket in den Standard-Repositorys also einfach mit sudo apt-get install davfs2 installieren

Nachdem das Paket installiert wurde, kann man nun in /mnt zb einen Ordner webdav anlegen und das Webdav dann hier herein mounten.

Dazu folgendermaßen vorgehen:

  • sudo mount -t davfs https://webdav.mediencenter.t-online.de -o uid=1000,gid=100 /mnt/webdav
  • Anschließend wird man nach einem Benutzernamen und Password gefragt, diese entsprechend eingeben
  • Um das Webdav auch nach einem Reboot verfügbar zu haben, muss ein Eintrag in der /etc/fstab vorgenommen werden
  • Bsp: https://mediencenter.t-online.de /mnt/webdav davfs user,noauto,rw 0 0  
  • Da das Webdav aber nach Benutzername und Passwort fragt, müssen diese im System hinterlegt werden.
  • Dazu bringt davfs eine Konfigurationsdatei mit: /etc/davfs2/secrets
  • Hierbei ist die Schreibweise:
    <Mountpunkt / WebDAV-URL> <login> <passwort>
  • Bsp:
    /mnt/webdav blabla@t-online.de abcdef

 

Das wars, nun habt ihr euer Webdav direkt in Linux integriert ohne eine proprietäre Software benutzen zu müssen!