Erstellen eines VMWare-Images

Aus TuxBoxWIKI
Wechseln zu: Navigation, Suche

Allgemein

Als sehr nützlich für die Erstellung einer Entwicklungsumgebung hat sich das Aufsetzen einer Virtualisierung erwiesen, wenn man nicht unbedingt ein komplettes Linuxsystem einrichten möchte oder kann. Dank gestiegener Hardwareleistung, insbesondere bei Mehrkernsystemen, ist der Umgang mit solch einer Lösung fast gleichwertig und eine sehr gute Alternative zu einem echtem Linuxsystem. Vor allem Neulinge auf diesem Gebiet, bietet diese Alternative einen optimalen Einstieg. Dank vorgefertigter und zum Teil für bestimmte Verwendungszwecke zugeschnittene Images, sind solche Systeme relativ schnell eingerichtet.

Voraussetzungen

Es wird davon ausgegangen, dass eine Windowsinstallation (>=WindowsXP) vorhanden ist und die enstprechende Hardware mit möglichst ordentlicher CPU, am besten Mehrkern-CPU's, vorhanden ist. Natürlich sollte VMware installiert sein. Eine Lösung über andere Virtualisierungs-Plattformen wie sie z.B. von Sun's VirtualBox besteht, ist im wesentlichen auch möglich. Andere sollten auch möglich sein, aber hierfür sind momentan keine weiteren Informationen bekannt.

Debian Squeeze

Installation

Es wird ein fertiges Image benötigt. Dafür diese Datei herunterladen:

http://cdimage.debian.org/debian-cd/6.0.1a/i386/iso-cd/debian-6.0.1a-i386-netinst.iso

VMWare vorbereiten

Einmaliger Prozess zum Erstellen des VMWare-Images:

  • Menü File, New, Virtual Machine, Weiter, Typical, Linux - Ubuntu,
  • Speicherort auswählen, Use bridged networking, 8GB -

Rest nicht verändern, Fertig stellen

  • Menü VM, Settings, CD-ROM - Use ISO Image

obiges ISO auswählen

  • Virtuelle Maschine starten
  • Install, Enter
  • German, Enter
  • Deutschland, Enter
  • Deutsch, Enter

(evtl. muss das Netzwerk konfiguriert werden)

  • Rechnername tuxbox
  • Geführt - verwende vollständige Festplatte, Enter

*Enter

  • Alle Dateien auf eine Partition, Enter
  • Partitionierung beenden und Änderungen übernehmen, Enter
  • Änderungen auf die Festplatten schreiben? Ja, Enter

...Grundsystem wird installiert

  • Root-Passwort vergeben
  • Neuer Benutzer, Name: tuxbox
  • Benutzername: tuxbox

Passwort vergeben

  • Debian-Archiv-Spiegelserver Deutschland
  • Server auswählen
  • Paketverwendungserfassung nein, Enter
  • Keine Software-Sammlung auswählen

alle Sterne entfernen, Enter

  • Grub in Master Boot Record - Ja, Enter

Nach Beendigung der Installation, virtuelle Maschine neustarten!

Lenny einrichten

Einmaliger Prozess zum Einrichten von Debian und Installieren der notwendigen Pakete:

Innerhalb der virtuellen Maschine anmelden als User root

apt-get update
apt-get upgrade
apt-get install --no-install-recommends sudo openssh-server
echo "tuxbox ALL=(ALL) ALL" >> /etc/sudoers
ifconfig (die IP-Adresse von eth0 merken)
logout

STRG+ALT, um das VMWare-Fenster wieder zu verlassen

per SSH (auf Windows ist Putty zu empfehlen!) zur virtuellen Maschine unter o.g. IP verbinden als User tuxbox einloggen

sudo apt-get install --no-install-recommends cvs libtool autoconf automake gettext autopoint make g++ flex bison patch bzip2 pkg-config zlib1g-dev python

für die Freunde des Midnight-Commanders:

sudo apt-get install --no-install-recommends mc

danach aufräumen:

sudo apt-get clean

Tuxbox-CDK einrichten

Als Bespiel soll hier eine allgemeine Vorgehensweise gezeigt werden, wie man sofort loslegen könnte. Detailierte Informationen zu Bauvorgang, Optionen usw. findet man unter Images und Yadd's erstellen.

mkdir $HOME/cvs $HOME/archive $HOME/customization $HOME/archive

Herunterladen/Aktualisieren des Tuxbox-CVS:

cd $HOME/cvs
CVS_RSH=ssh cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P .

(beim ersten Mal die Frage nach RSA key fingerprint mit yes beantworten)

Kompilieren eines Images, dafür immer ein leeres Verzeichnis nehmen:

cd $HOME
rm -rf compile image
cp -r cvs compile

wenn Patches eingespielt werden sollen:

cd $HOME/compile
patch -p0 -E -i /home/tuxbox/datei.diff

weiter:

cd $HOME/compile/cdk
./autogen.sh

Für eine Übersicht aller Konfigurationsoptionen:

./configure --help


./configure --prefix=$HOME/image --with-cvsdir=$HOME/compile --with-archivedir=$HOME/archive

optional:

--with-rootpartitionsize=0x460000

--with-customizationsdir=$HOME/customization

Nun können Images kompiliert werden:

make flash-neutrino-squashfs-all
make flash-enigma-squashfs-all
make flash-enigma+neutrino-squashfs-all

Das fertige Image liegt in

tuxbox@tuxbox:~$ ls -la $HOME/image/cdkflash/*img*
-rw-r--r-- 1 tuxbox tuxbox 8257536 3. Feb 16:31 /home/tuxbox/image/cdkflash/neutrino-squashfs.img1x
-rw-r--r-- 1 tuxbox tuxbox 8257536 3. Feb 16:31 /home/tuxbox/image/cdkflash/neutrino-squashfs.img2x

Yadd-Setup

Allgemeine Infos zum Thema Images und Yadd's erstellen

Hier nun die Setup-Anleitung für das VMWare-Image:

Setup einer Yadd-Umgebung, bestehend aus DHCP/bootp/NFS-Server.

Installieren und Konfigurieren des NFS-Servers:

su - root

Passwort für root eingeben, Enter

apt-get install --no-install-recommends nfs-kernel-server dhcp3-server tftpd
apt-get clean
sed -i "s/\/srv\/tftp/\/home\/tuxbox\/image\/tftpboot/" /etc/inetd.conf
echo "/home/tuxbox/image/cdkroot *(rw,sync,no_root_squash,no_subtree_check)" >> /etc/exports
logout

Von der Dbox wird die MAC-Adresse der Netzwerkkarte benötigt, dazu muss bereits ein Linux-Image auf der Box laufen. Per Telnet (geht auch mit Putty) eine Verbindung zur Dbox aufbauen, Username root, dann

ifconfig eth0

eingeben und den Wert hinter HWaddr ermitteln, dieser muss später in die Konfigurationsdatei des DHCP-Servers eingetragen werden, Beispiel:

eth0      Link encap:Ethernet  HWaddr 12:34:56:78:9A:BC
         inet addr:192.168.1.4  Bcast:192.168.1.255  Mask:255.255.255.0

In diesem Fall ist die MAC-Adresse 12:34:56:78:9A:BC

Nun beginnt das Setup des DHCP-Servers innerhalb der VMWare-Sitzung.

Dieser wird benötigt, um Yadd zu booten. Wenn im Netzwerk bereits ein DHCP-Server aktiv ist, muss dessen Bootp-Unterstützung für die oben ermittelte MAC-Adresse deaktiviert werden. Da es viele unterschiedliche DHCP-Server gibt, kann ich hier nur ein Beispiel liefern:

   host dbox
   {
       deny bootp;
       hardware ethernet 12:34:56:78:9A:BC;
       fixed-address 192.168.1.4;
   }

Entscheidend ist hier die Zeile "deny bootp;". Die Dbox hat die IP-Adresse 192.168.1.4, diese IP muss auch im DHCP-Server der VMWare-Sitzung für die Dbox verwendet werden.

Nun wird der DHCP-Server der VMWare-Sitzung konfiguriert, dazu wird der vorhandene Editor Nano genutzt, hier die Tastenübersicht.

Am einfachsten ist es, folgende Konfiguration zu übernehmen und die mit Dollarzeichen ($$$Beschreibung$$$) markierten Einträge zu bearbeiten.

sudo rm /etc/dhcp3/dhcpd.conf
sudo nano /etc/dhcp3/dhcpd.conf

Folgenden Text in den Editor kopieren:

ddns-update-style none;
allow bootp;

option domain-name "$$$Domainname des Netzwerks$$$";
option domain-name-servers $$$IP des DNS-Servers$$$;
option routers $$$IP des DNS-Servers$$$;

default-lease-time 600;
max-lease-time 7200;

subnet $$$IP des DNS-Servers, endend auf Null$$$ netmask 255.255.255.0 {
}

host dbox {
       fixed-address [b]$$$IP der Dbox$$$[/b];
       hardware ethernet [b]$$$MAC-Adresse der Dbox$$$[/b];
       server-name "[b]$$$IP der VMWare-Sitzung$$$[/b]";
       next-server [b]$$$IP der VMWare-Sitzung$$$[/b];
       option root-path "/home/tuxbox/image/cdkroot";
       if exists vendor-class-identifier {
               filename "/home/tuxbox/image/tftpboot/kernel-cdk";
       } else {
               filename "/home/tuxbox/image/tftpboot/u-boot";
       }
}

STRG+X, J, Enter zum Speichern der Änderungen

sudo invoke-rc.d dhcp3-server restart
sudo invoke-rc.d nfs-kernel-server restart
sudo invoke-rc.d openbsd-inetd restart

Ein Yadd-Image eignet sich perfekt zum Debuggen.

Zum Kompilieren einer Yadd-Umgebung:

make yadd-neutrino
make yadd-enigma

Wenn Neutrino und Enigma gleichzeitig gewünscht sind:

make yadd-neutrino yadd-enigma

Nach dem Kompilieren die Dbox2 in den deep-standby fahren, die o.g. Dienste aktivieren, ein serielles Log öffnen zum Überwachen des Bootprozesses und die Dbox2 einschalten.

Weblinks

Ursprungsthread zu diesem Howto im Tuxbox-Forum