Sie sind auf Seite 1von 32

Leseprobe http://qemu-buch.

de Anhang

Nützliche Tools
In diesem Abschnitt werden einige nützliche Tools für die Arbeit mit QEMU erläutert. Die-
ser kurze Überblick dient auch dazu, sich bei weniger bekannten Gast-Systemen zurecht-
zufinden. Die meisten der hier beschriebenen Tools sind als Kommandozeilen-Befehle zu
bedienen und kommen aus dem Unix-Umfeld. Sie sind aber auch auf anderen Plattfor-
men, wie Microsoft Windows-Versionen (teilweise in etwas abgewandelter Form), verfüg-
bar. Einige der Tools sind bereits in Microsoft Windows-Versionen enthalten. Andere
können nachinstalliert werden. Zu empfehlen ist Cygwin, das viele der hier beschriebe-
nen Tools bereitstellt.

Kommandozeileninterpreter
Unix­Shells
Unix-Systeme werden traditionellerweise über die Kommandozeile bedient. Dies liegt
daran, dass die Shells (Kommandozeileninterpreter) unter Unix wesentlich leistungsfähi-
ger sind als zum Beispiel der DOS-Kommandozeileninterpreter. Außerdem ist eine Shell
bei manchen Aufgaben einer grafischen Benutzeroberfläche überlegen, da durch die
Shell-Syntax zum Beispiel Ablaufsteuerung und Programmrückmeldungen einbezogen
werden können, was bei graphischen Anwendungen meist nicht möglich ist. Neben der
interaktiven Nutzung haben die Shells auch die Aufgabe Shellscripte auszuführen. Diese
sind vergleichbar mit DOS-Stapelverarbeitungsdateien, jedoch aufgrund der wesentlich
besseren Ausstattung der Unix-Shells mit Kontrollstrukturen deutlich leistungsfähiger.
Insbesondere erlauben es die Unix-Shells Kommando-Bausteine zu verknüpfen. Es stehen
unter Unix unterschiedliche Shells zur Verfügung, zum Beispiel sh, csh, ksh, bash, tcsh und
zsh. Unter Linux wird häufig bash verwendet.

DOS­Eingabeaufforderung
Unter den inzwischen veralteten DOS-basierten Microsoft Windows-Versionen wurde
command.com verwendet, um eine DOS-Eingabeaufforderung bereitzustellen. Microsoft
Windows NT und Nachfolger setzen einen neuen, weitgehend abwärtskompatiblen Kom-
mandozeileninterpreter namens cmd.exe ein, der kein wichtiger Bestandteil des Betriebs-
systems ist und nur benötigt wird, um eine Eingabeaufforderung bereitzustellen und
Stapelverarbeitungsdateien auszuführen. Gestartet wird die DOS-Eingabeaufforderung bei
neueren Microsoft Windows-Versionen über den Punkt Ausführen im Start-Menü. In der
erscheinenden Eingabe-Zeile gibt man den Befehl cmd ein. Beendet wird die DOS-Eingabe-
aufforderung mit exit.
C:\> exit

262
QEMU Leseprobe http://qemu-buch.de

Cygwin – Unix­Tools für Microsoft Windows
Download: http://www.cygwin.com/setup.exe
Wer unter Microsoft Windows viele Unix/Linux-Tools mit einer komfortable Shell ver-
wenden möchte, sollte Cygwin installieren. Cygwin ist eine Emulation der Linux-API un-
ter verschiedenen Versionen von Microsoft Windows. Dadurch lassen sich Programme,
die üblicherweise unter POSIX-Systemen wie GNU/Linux, BSD und Unix laufen, auf Mi-
crosoft Windows portieren. POSIX (Portable Operating System Interface) ist ein für Unix
entwickeltes standardisiertes Applikationsebeneninterface.
Zur Installation lädt man das Setup-Programm herunter und startet es. Dieses kleine Pro-
gramm holt sich dann alle benötigten Dateien direkt von verschiedenen FTP-Servern. Bei
der Installation werden drei verschiedene Optionen angeboten.
Install From Internet Die benötigten Dateien werden direkt aus dem Internet wäh-
rend der Installation heruntergeladen.
Download without in- Alle benötigten Dateien werden für eine spätere Installation
stalling heruntergeladen aber nicht installiert.
Install from Local Di- Die zur Installation benötigten Dateien wurden bereits vorher
rectory über die Option Download without installing heruntergeladen.
Tabelle 30: Cygwin – Installationsoptionen.

Für eine einmalige Installation ist die Option Install From Internet zu verwenden. Im nächs-
ten Dialog wird das Verzeichnis gewählt, in das Cygwin installiert werden soll. Die Vorga-
be dazu ist C:\cygwin. Weiterhin wird abgefragt ob nur der angemeldete oder alle
Benutzer Cygwin verwenden sollen. Zu empfehlen ist, allen Benutzern (All Users) die Ver-
wendung von Cygwin zu erlauben. Es wird auch gefragt, in welchem Format Text-Dateien
interpretiert werden sollen. Hier empfiehlt sich das Format Unix.
Danach fragt das Setup-Programm, in welchem Verzeichnis die heruntergeladenen Datei-
en ablegt werden sollen. Im nächsten Schritt wird nach einem Proxy-Server gefragt. Ist
kein Proxy verfügbar, ist die Option Direct Connection die richtige Wahl. Bei der Wahl des
Mirror-Servers empfiehlt es sich, einen Server in der Nähe auszuwählen. Das Setup-Pro-
gramm lädt nun eine Liste der verfügbaren Pakete und bietet diese zur Auswahl an. In der
Default-Einstellung werden nur die bash-Shell und einige Zusatz-Tools installiert. Es soll-
ten mindestens die Paketgruppen Archive, Doc, Net, System, Text und Web zur Installation
ausgewählt werden. Dazu klickt man in der Liste rechts neben dem Namen der Paketgrup-
pen auf den Text Default. Statt Default muss dann jeweils Install stehen. Pakete können
auch nachträglich durch erneutes Aufrufen von setup.exe installiert werden. Nach dem Kli-
cken auf den Button Weiter beginnt Cygwin mit dem Download und der Installation der
ausgewählten Pakete. Am Ende der Installation erfolgt noch die Abfrage, ob Einträge im
Start-Menü und ein Icon auf dem Desktop eingerichtet werden sollen. Cygwin wird durch

263
Leseprobe http://qemu-buch.de Anhang

Anklicken des Icons gestartet. Cygwin stellt eine Unix-Umgebung bereit. Unter Unix ist
der Pfad-Trenner ein Slash (/) und kein Backslash (\). Die Erweiterungen für ausführbare
Dateien (.exe) können grundsätzlich weggelassen werden. Die Windows-Registry kann un-
ter Cygwin unter /proc/registry durchsucht werden. Laufwerksbuchstaben (C:, D:, ...), wie
unter Microsoft Windows, existieren nicht. Zum Beispiel wird aus dem Windows-Pfad
C:\Temp\test.txt in Cygwin der Pfad /cygdrive/C/Temp/test.txt. Das Wurzelverzeichnis (/)
unter Cygwin entspricht dem Cygwin-Installations-Pfad. Falls Cygwin in C:\cygwin instal-
liert ist, sind die beiden Pfade /cygdrive/C/usr/bin/gzip.exe und /usr/bin/gzip.exe äquivalent.
Ein Wechsel des Laufwerks erfolgt mit cd, gefolgt von dem Laufwerksbuchstaben. Zum
Beispiel wechselt der folgende Befehl zum Laufwerk C.
~$ cd c:

Hilfestellungen
Unter Unix-Derivaten beziehungsweise Cygwin erhält man Hilfestellungen über die Ma-
nual-Pages. Der Aufruf erfolgt durch den Befehl man gefolgt von dem Befehl, den man er-
läutert haben will. Beispiel:
~$ man qemu
Ist der Befehl unbekannt, kann man sich mit apropos alle Manualpages zu einem bestimm-
ten Stichwort auflisten lassen.
~$ apropos qemu
qemu (1)             ­ QEMU Emulator User Documentation
qemu­doc (1) [qemu]  ­ QEMU Emulator User Documentation
qemu­img (1)         ­ QEMU disk image utility
qemu (1)             ­ QEMU Emulator User Documentation
qemu­doc (1) [qemu]  ­ QEMU Emulator User Documentation
qemu­img (1)         ­ QEMU disk image utility

264
QEMU Leseprobe http://qemu-buch.de

Unter Microsoft Windows wird im DOS-Eingabefenster mit dem Befehl help gefolgt durch
den Befehl, den man erläutert haben will, eine Hilfestellung gezeigt. Das folgende Beispiel
zeigt eine Hilfestellung zu dem Befehl dir.
C:\> help dir
Unter Microsoft Windows gibt es weiterhin eine Hilfestellung im Start-Menü unter Hilfe
und Support.

Datei­ und Verzeichnis­Befehle
Um das Verzeichnis zu wechseln, dient unter Unix und Microsoft Windows der Befehl cd
gefolgt von dem Namen des Ziel-Verzeichnisses.
~$ cd Verzeichnis
Ein Verzeichnis höher gelangt man mit cd gefolgt von zwei Punkten. Unter Unix muss
hinter cd immer ein Leerzeichen stehen.
~$ cd ..
Zur Ermittlung des aktuellen Verzeichnispfades dient unter Unix der Befehl pwd. Unter
Microsoft Windows kann dazu der Befehl dir verwendet werden. Dieser listet auch den In-
halt des aktuellen Verzeichnisses auf.
C:\> dir
Unter Unix dient zum Auflisten des Inhaltsverzeichnisses der Befehl ls. Mit der Option -l
erfolgt eine detaillierte Anzeige. Dabei werden folgende Informationen zu der Datei aus-
gegeben:
– Datei-Rechte (siehe Seite 274)
– Eigentümer
– Gruppenzugehörigkeit
– Größe
– Datum der letzten Änderung
– Datei-Name.
Beispiel:
~$ ls ­l
­rw­r­­r­­ 1 robert robert  24264704 2007­07­10 20:04 ReactOS.img
­rw­r­­r­­ 1 robert robert  25579520 2007­03­09 14:30 ReactOS.iso
Mit dem Parameter -h zeigt der Befehl ls die Größe der Dateien in KByte, MByte, GByte
oder TByte an.

265
Leseprobe http://qemu-buch.de Anhang

~$ ls ­lh
­rw­r­­r­­ 1 robert robert  24M 2007­07­10 20:04 ReactOS.img
­rw­r­­r­­ 1 robert robert  25M 2007­03­09 14:30 ReactOS.iso
Sowohl unter Microsoft Windows als auch unter Unix lassen sich Wildcards zum Filtern
der Dateinamen verwenden. Wildcards sind die Sonderzeichen Stern (*) und Fragezeichen
(?). Der Stern steht für eine beliebige Anzahl von beliebigen Zeichen im Dateinamen. Ein
Fragezeichen steht dagegen für ein beliebiges Zeichen. Das folgende Beispiel listet unter
Microsoft Windows alle Dateien mit einer Datei-Endung .img auf.
C:\> dir *.img
Das folgende Beispiel listet unter Unix alle Dateien auf, die drei Zeichen im Datei-Namen
haben, wobei das erste Zeichen ein a ist.
~$ ls a??
Verzeichnisse erstellt man unter Unix und Microsoft Windows mit dem Befehl mkdir ge-
folgt von dem Namen des neuen Verzeichnisses. Unter Microsoft Windows gibt es auch
die Kurzform md. Beispiel unter Unix:
~$ mkdir Verzeichnis
Beispiel unter Microsoft Windows:
C:\> mkdir Verzeichnis
Zum Löschen von leeren Verzeichnissen dient unter Unix und Microsoft Windows der Be-
fehl rmdir.
C:\> rmdir Verzeichnis
Unter Unix können ganze Verzeichnisbäume gelöscht werden. Dazu dient der Befehl rm
-rf gefolgt von dem Verzeichnis-Namen. Die Option -r bewirkt das Löschen aller Unterver-
zeichnisse und darin enthaltener Dateien. Die Option -f löscht ohne Nachfrage. Dieser Be-
fehl sollte nur nach gründlicher Überlegung angewendet werden. Er löscht wirklich alles,
auch in Unterverzeichnisse gemountete Festplatten.
Unter Microsoft Windows löscht man Verzeichnisse, die nicht leer sind mit rmdir /s.
C:\> rmdir /s Verzeichnis
Das Löschen von Dateien erfolgt unter Unix mit dem Befehl rm, gefolgt von dem Datei-Na-
men.
~$ rm Datei
Unter Microsoft Windows werden Dateien mit dem Befehl del gelöscht.
C:\> del Datei

266
QEMU Leseprobe http://qemu-buch.de

Das Umbenennen von Verzeichnissen und Dateien erfolgt unter Unix mit mv und unter
Microsoft Windows mit move. Danach wird jeweils der alte und danach der neue Name an-
gegeben. Beispiel unter Microsoft Windows:
C:\> move alterName neuerName
Beispiel unter Unix:
~$ mv alterName neuerName
Weiterhin dienen die Befehle move und mv auch zum Verschieben von Dateien oder von
Verzeichnissen in andere Verzeichnisse. Beispiel unter Microsoft Windows:
C:\> move alterName Verzeichnis
Beispiel unter Unix:
~$ mv alterName Verzeichnis
Kopiert werden Dateien unter Unix mit cp. Sollen Verzeichnisse mit Inhalt kopiert wer-
den, ist die Option -r mit anzugeben.
~$ cp ­r Verzeichnis VerzeichnisKopie
Unter Microsoft Windows werden Dateien mit dem Befehl copy kopiert.
C:\> copy Datei DateiKopie
Komplette Verzeichnisse werden unter Microsoft Windows mit dem Befehl xcopy /e ko-
piert.
C:\> xcopy /e Verzeichnis VerzeichnisKopie

Links
Unter Unix und Linux ist es möglich, Dateien und Verzeichnisse durch Links mehrfach im
Dateisystem zu referenzieren. Das heißt, wird zum Beispiel ein Link auf eine Datei ange-
legt, ist diese über mehrere Pfade zu erreichen. Man unterscheidet zwischen harten und
symbolischen Links. Harte Links können nur auf Dateien angewendet werden und ver-
wenden jeweils den gleichen Inode der Ziel-Datei. Ein Inode kennzeichnet durch eine ein-
malige Nummer eindeutig eine Datei. Das bedeutet, dass ein harter Link immer noch
funktioniert, wenn die Ziel-Datei verschoben wurde.
Ein symbolischer Link, auch Symlink oder Softlink genannt, ist lediglich eine Referenz
und kein richtiges Element. Wenn man aber die Zieldatei verschiebt, und ein Softlink
zeigt darauf, kann die Zieldatei nicht wissen, dass ein Link auf sie zeigt, womit der symbo-
lische Link ins Leere zeigt. Der Vorteil ist aber, dass diese Arten von Verknüpfungen parti-
tions- und dateisystemübergreifend arbeiten können und auch bei Verzeichnissen
funktionieren, was bei harten Links nicht der Fall ist.

267
Leseprobe http://qemu-buch.de Anhang

Unter Unix wird mit dem Befehl ln -s ein symbolischer Link erzeugt. Im folgenden Beispiel
wird ein symbolischer Link mit dem Pfad /usr/src/linux auf das vorhandene Verzeichnis
/usr/src/linux-source-2.6.15 angelegt. Das heißt, unter dem Pfad /usr/src/linux wird der In-
halt des Verzeichnisses /usr/src/linux-source-2.6.15 abgebildet.
~# ln ­s /usr/src/linux­source­2.6.15 /usr/src/linux
Durch den Parameter -f kann ein vorhandener symbolischer Link überschrieben werden.
Nach dem Ausführen des folgenden Beispiels zeigt der symbolische Link /usr/src/linux auf
das Verzeichnis /usr/src/linux-source-2.6.18.
~# ln ­sf /usr/src/linux­source­2.6.18 /usr/src/linux
Unter Microsoft Windows-Versionen gibt es Verknüpfungen, die aber mit einem Link un-
ter Unix nicht zu vergleichen sind. Eine installierte Cygwin-Umgebung befähigt dagegen
auch unter Microsoft Windows, bei Verwendung des Datei-Systems NTFS, symbolische
und harte Links zu setzen.

Datei­Typ ermitteln
Unter DOS und Microsoft Windows wird der Datei-Typ durch die drei Zeichen nach dem
Punkt im Datei-Namen bestimmt. Zum Beispiel kennzeichnet .exe ausführbare Dateien,
also Programme. Oft wird die Anzeige dieser drei Zeichen ausgeblendet, was aber ein Si-
cherheitsrisiko ist.
Unter Unix kennzeichnet der Datei-Name nicht zwingend den Datei-Typ. Mit dem Befehl
file lässt sich der Datei-Typ ermitteln. Nach dem Befehl file können ein oder mehrere Da-
teien oder Verzeichnisse angegeben werden. Verzeichnisse sind unter Unix auch Dateien.
Das folgende Beispiel ermittelt den Datei-Typ der Datei /etc/fstab.
~$ file /etc/fstab
/etc/fstab: ASCII text
Die Datei /etc/fstab ist also eine Text-Datei.

Text­Dateien anzeigen
Unter Microsoft Windows lassen sich Text-Dateien mit dem Befehl type anzeigen.
C:\> type Textdatei
Unter Unix dient der Befehl cat zur Ausgabe von Text-Dateien. Zum Beispiel kann man
sich mit cat Informationen über das System anzeigen lassen. Diese aktuell gehaltenen In-
formationen zum System liegen bei vielen Unix-Varianten unter dem Verzeichnis /proc in
Textform vor. Der folgende Befehl zeigt zum Beispiel Informationen zu den CPUs an.
~$ cat /proc/cpuinfo

268
QEMU Leseprobe http://qemu-buch.de

Unter Unix lassen sich Text-Dateien komfortabel mit den Befehlen less anzeigen. less ist
ein Programm zum Betrachten großer Datenmengen. Im Gegensatz zu einem Texteditor
ist der Benutzer jedoch mit less nicht in der Lage diese zu verändern. less gibt Daten auf
die Terminal-Größe zugeschnitten aus, wobei sich mit verschiedenen Tasten über den Da-
tensatz scrollen lässt . Mit q beendet man less.
~$ less Textdatei
Zur System- oder Fehler-Analyse ist die Auswertung von Log-Dateien notwendig. Unter
Unix werden diese meist im Verzeichnis /var/log/ als Text-Dateien geschrieben. Um sich
fortlaufend die letzten Einträge einer Log-Datei anzeigen zu lassen, dient der Befehl tail.
Der Parameter -f bewirkt, dass auch die Einträge angezeigt werden, die nach Aufruf dieses
Befehls in die Log-Datei geschrieben werden. Oft wird unter Linux der folgende Befehl an-
gewendet, um das System-Logfile zu überwachen.

~$ tail ­f /var/log/messages
Es ist auch möglich nur Zeilen mit bestimmten Mustern ausgeben zu lassen. Dazu dient
das Pipe-Zeichen (|) und der Befehl grep. Eine Pipe bewirkt die Umleitung der Ausgabe ei-
nes Befehls in die Eingabe eines anderen Befehls. Das heißt hier werden alle neuen Einträ-
ge in der Datei /var/log/messages in den Befehl grep weitergeleitet. grep lässt nur Zeilen
durch, in denen das angegebene Muster vorkommt. Hier werden nur Zeilen dargestellt,
die das Muster error beinhalten, wobei Groß- und Kleinschreibung durch den Parameter -i
ignoriert werden. Mit anderen Worten, wenn im System ein Fehler festgestellt wird, wird
er angezeigt.
~$ tail ­f /var/log/messages | grep ­i “error”
Unter Microsoft Windows ist die Anzeige und Auswertung von System-Meldungen und
Ereignissen nicht so komfortabel möglich.

Text­Dateien bearbeiten
Unter Microsoft DOS/Windows dient der Editor edit zum Bearbeiten von Dateien. Aufge-
rufen wird dieses Programm mit dem Befehl edit gefolgt von dem Namen der Text-Datei.
Mit der Maus oder der Taste [Alt] lassen sich die Menüs erreichen.
C:\> edit Textdatei
Unter Unix stehen sehr leistungsfähige Text-Editoren zu Verfügung. Das liegt auch daran,
dass alle Konfigurationsdateien unter Unix Text-Dateien sind. Deshalb ist sind Kenntnisse
zur Bedienung eines überall verfügbaren Texteditors unumgänglich. Der sehr leistungsfä-
hige Editor vi ist auf jedem unix-artigen System vorhanden. Seine Bedienung gilt als un-
gewöhnlich. Eine Ursache für seine fremdartige Bedienung ist, dass der vi auch auf alten
Terminals bedienbar sein muss. Nicht alle Terminals besitzen alle Kursor-Tasten und Son-

269
Leseprobe http://qemu-buch.de Anhang

der-Tasten. Mitunter haben auch einige Sonder-Tasten beim Einloggen in ferne Rechner
eine andere Zuordnung. Der Start von vi erfolgt durch die Eingabe des Kommandos vi und
des Datei-Namens der zu editierenden Datei als Parameter.
~$ vi Textdatei
Die unterste Zeile dient zur Anzeige von Informationen und zur Kommunikation mit dem
Nutzer. Der vi verfügt über drei verschiedene Betriebsmodi – ein Umstand, der dazu bei-
trägt, dass dieser Editor als schwer bedienbar gilt. Nach dem Start befindet sich der vi im
Kommando-Modus. Hier kann der Kursor mit den Kursortasten an eine beliebige Stelle
bewegt werden. Durch Betätigen der Taste [Esc] und danach [i] gelangt man in den Text-
Eingabe-Modus.
[Esc] [i]
Nun ist es möglich Text einzugeben. Danach ist wieder [Esc] einzugeben, um den Eingabe-
Modus zu verlassen. Zum Speichern drückt man nacheinander die folgende Tasten.
[Esc] [:] [w]
Der Editor vi kann mit dem folgenden Befehl beendet werden.
[Esc] [:] [q]
Hat man einen Fehler gemacht, so sollte man ohne Speichern den Editor vi beenden. Dazu
dient die folgende Tasten-Reihenfolge:
[Esc] [:] [q] [!]
Ein großer Vorteil von vi ist, dass mehrere Befehle nacheinander ohne gleichzeitiges Betä-
tigen der Alt-, Strg- oder sonstiger Modifikator-Tasten abgesetzt werden können. Für den
geübten Benutzer bedeutet das eine erhebliche Steigerung der Arbeitsgeschwindigkeit.

Dateien aneinanderfügen
Mit dem Befehl copy und der Option /b können unter Microsoft Windows mehrere Dateien
aneinander gefügt werden. Das folgende Beispiel fügt die Dateien raw-hd1. img und raw-
hd2.img unter der Datei raw-hd3. img zusammen.
C:\> copy /b raw­hd1.img+raw­hd2.img raw­hd3.img
Unter Unix ist das Aneinanderfügen von Dateien mit dem Befehl cat möglich. cat dient zur
Ausgabe von Datei-Inhalten. In diesem Beispiel werden die Inhalte von raw-hd1. img und
raw-hd2.img nicht ausgegeben, sondern nacheinander in die Datei raw-hd3. img umgeleitet.
Umleitungen werden mit dem Zeichen > definiert. Das Prinzip der Ein-/Ausgabeumlen-
kung findet man auch bei Microsoft Windows und DOS.
~$ cat raw­hd1.img raw­hd2.img > raw­hd3.img

270
QEMU Leseprobe http://qemu-buch.de

Komprimierung /Archivierung
Als Komprimierung bezeichnet man die Anwendung von Verfahren zur Reduktion des
Speicherbedarfs von Daten. Die Datenmenge wird reduziert, indem eine günstigere Re-
präsentation bestimmt wird, mit der sich die Daten in kürzerer Form darstellen lassen.
Man spricht von einer verlustfreien Kompression wenn die kodierten Daten nach Anwen-
dung der entsprechenden Dekodiervorschrift exakt denen des Originals entsprechen.
Das ZIP-Dateiformat ist ein offenes Format zur komprimierten Archivierung von Dateien.
Die Archiv-Dateien tragen üblicherweise die Endung .zip. Im ZIP-Format sind die Dateien
einzeln komprimiert. Es ist weiterhin möglich, das Archiv auf mehrere Dateien zu vertei-
len oder selbstextrahierende Dateien anzulegen. Nicht jedes Kompressionsprogramm,
dessen Name die Zeichenkette „ZIP“ enthält, arbeitet mit dem ZIP-Dateiformat. Unter Mi-
crosoft Windows wird das ZIP-Format von dem Programm 7-Zip unterstützt (siehe unten).
Unter Unix ermöglicht der Befehl zip das Komprimieren im ZIP-Format. Im folgenden Bei-
spiel wird ein ZIP-Archiv mit dem Namen MeinArchiv.zip erstellt, dass alle Dateien mit der
Datei-Endung .img komprimiert. Der Dateiname des Archivs wird automatisch mit der En-
dung .zip erweitert.
~$ zip MeinArchiv *.img
Entpackt wird dieses Archiv mit dem Befehl unzip.
~$ unzip MeinArchiv.zip
Das Kompressionsprogramm gzip, ist für fast alle Betriebssysteme verfügbar, bietet einen
guten Kompressionsgrad und ist frei von patentierten Algorithmen. Die übliche Datei-En-
dung für gzip-komprimierte Dateien ist .gz. Da gzip nur einzelne Dateien komprimiert,
werden Sammlungen mehrerer Dateien üblicherweise zunächst mit tar (siehe unten) zu-
sammengefasst, bevor sie mit gzip komprimiert werden. Solche Archive tragen dann die
doppelte Endung .tar.gz oder auch einfach .tgz. Unter Unix ist die Komprimierung mit gzip
heute Standard, weil sie für viele Aufgaben einen guten Kompromiss aus hoher Geschwin-
digkeit und guter Datenreduktion ermöglicht. Unter Unix komprimiert das folgende Bei-
spiel die Datei Platte.img.
~$ gzip Platte.img
Das Dekomprimieren erfolgt mit gunzip.
~$ gunzip Platte.img.gz
Alternativ ist die Dekomprimierung mit gzip -d möglich.
~$ gzip ­d Platte.img.gz
Das frei verfügbare Komprimierungsprogramm bzip2 dient zur verlustfreien Kompression
von Dateien. Die Kompression mit bzip2 ist oft effizienter, aber meist erheblich langsamer
als die Kompression mit gzip. Mit bzip2 komprimierte Dateien werden durch die Dateien-

271
Leseprobe http://qemu-buch.de Anhang

dung .bz2 gekennzeichnet. tar-Dateien, die mit bzip2 komprimiert wurden, haben übli-
cherweise die Erweiterung .tar.bz2, .tbz oder auch .tbz2. In diesem Beispiel wird die Datei
Platte.img komprimiert.
~$ bzip2 Platte.img
Das Dekomprimieren erfolgt mit bzip2 -d.
~$ bzip2 ­d Platte.img.bz2
tar ist der Name eines im Unix-Umfeld sehr geläufigen Archivierungsprogramms. Der
Name wurde aus tape archiver (Bandarchivierer) gebildet, da mit dem Programm ur-
sprünglich Daten auf Bandlaufwerken gesichert wurden. tar bietet die Möglichkeit, Datei-
en sequenziell in eine einzige Datei zu schreiben, beziehungsweise Dateien aus selbiger
wieder herzustellen. Die entstehende Datei trägt die Endung .tar und wird auch als Tarball
(Teerklumpen) bezeichnet. Unter Microsoft Windows können Tarballs mit 7-Zip (siehe
unten) bearbeitet werden. Viele andere gängige Archivprogramme können tar-Archive
zumindest entpacken. Oft werden tar-Dateien mit gzip oder bzip2 komprimiert. Ein kom-
primierter Tarball trägt üblicherweise die Endung .tar.gz, .tgz, .tar.Z, .tar.bz2, .tbz2 oder .tbz,
wenn er mit einem der zuvor genannten Programme komprimiert wurde.
Unter Unix wird mit dem folgenden Befehl ein Archiv mit dem Inhalt des Verzeichnisses
/etc erstellt. Der Parameter c bewirkt das Erstellen des Archives, v dient der Anzeige der
archivierten Dateien und f definiert mit der nachfolgenden Option den Datei-Namen des
Archivs. Am Ende wird das Verzeichnis angegeben, das man archivieren will.
~$ tar cvf etc.tar /etc/
Anschließend kann dieses Archiv mit gzip komprimiert werden.
~$ gzip etc.tar
Neuere Versionen von tar unterstützen das Komprimieren mit gzip (Parameter z). Das
heißt die beiden vorherigen Befehle werden mit einem Befehl abgearbeitet:
~$ tar czvf etc.tar.gz /etc/
Neuere Versionen von tar unterstützen auch das Komprimieren mit bzip2 (Parameter j).
~$ tar cjvf etc.tar.bz2 /etc/
Zum Entpacken von tar-Archiven ist der Parameter x notwendig.
~$ tar xvf etc.tar
Liegt ein mit gzip komprimiertes tar-Archiv vor, ist dieses vorher zu dekomprimieren.
~$ gunzip etc.tar.gz
Neuere Versionen von tar unterstützen auch das Dekomprimieren mit gzip (Parameter z).
~$ tar xzvf etc.tar.gz
Neuere Versionen von tar unterstützen auch das Dekomprimieren mit bzip2 (Parameter j).

272
QEMU Leseprobe http://qemu-buch.de

~$ tar xjvf test.tar.bz2
Der Parameter -C ermöglicht das Entpacken des Archivs in ein anderes Verzeichnis.
~# tar xzvf qemu­0.9.1­i386.tar.gz ­C /
Zum Anzeigen des Inhalts eines tar-Archivs, dient der Parameter t.
~$ tar tvf etc.tar
Hinweis: Das Programm tar unterstützt keine effektive Verwaltung von Sparse-Dateien.
Das heißt die Sparse-Dateien werden beim Archivieren mit tar vergrößert.
7-Zip ist ein freies Kompressionsprogramm für Microsoft Windows. Mit 7-Zip lassen sich
komprimierte (Archiv-)Dateien der Formate 7z (eigenes neues Format), zip, gzip, bzip2 und
tar erstellen. Die grafische Benutzeroberfläche fügt sich dank „Drag & Drop" und Kontext-
menüs nahtlos in Microsoft Windows ein. Zur Installation lädt man die Installationsdatei
von der Website http://www.7-zip.org herunter und startet diese. Es wird bei der Installati-
on nur nach dem Ziel-Ordner (C:\Programme\7-Zip) gefragt. Nach der Installation kann der
7-Zip File Manager über das Start-Menü, Programme gestartet werden. Mit einem Klick der
rechten Maustaste auf ein oder mehrere Dateien oder Verzeichnisse kann man diese über
den Punkt 7-Zip zu einem Archiv hinzufügen. Im anschließenden Dialog wird nach der Art
der Komprimierung und dem Datei-Namen des Archivs gefragt. Um ein Archiv zu entpa-
cken, ist mit einem Klick der rechten Maustaste auf dieses Archiv das Kontext-Menü zu
öffnen. Im Punkt 7-Zip stehen dann Optionen zum Entpacken des Archiv zur Verfügung. 7-
Zip fügt sich auch in den Datei-Explorer von Microsoft Windows ein. Es lassen sich dort
die gleichen Funktionen mit der rechten Maus-Taste bedienen. 7-Zip gibt es auch als
Kommandozeilentool unter Linux. Die Installation ist unter Debian und Ubuntu mit root-
Rechten mit einer Befehlszeile erledigt.
~# apt­get install p7zip
Ein 7Zip-Archiv wird wie folgt entpackt.
~$ p7zip ­d archiv.7z
RAR ist ein Algorithmus und Dateiformat zur Komprimierung von Dateien. Dabei werden
mehrere Dateien zusammen komprimiert. Dadurch können auch Redundanzen zwischen
den Dateien eliminiert werden. RAR unterstützt die Verschlüsselung der komprimierten
Daten. Die Endung dieser Archivdateien ist üblicherweise .rar. Da die Entpackroutinen frei
verfügbar sind, wird das Dekomprimieren von RAR-Archiven inzwischen von nahezu je-
dem Multiformat-Packprogramm unterstützt. Der Kompressionsalgorithmus ist jedoch
nicht zur Übernahme freigegeben. Offiziell unterstützen deshalb nur die vom RAR-Her-
steller (http://www.rarlab.com) selbst veröffentlichen Programme WinRAR, RAR für DOS,
RAR für Linux usw. diese Funktionalität. Diese Tools können von der Website http://ww-
w.winrar.de heruntergeladen und installiert werden. Unter Debian und Ubuntu ist die In-
stallation mit einer Befehlszeile mit root-Rechten erledigt.

273
Leseprobe http://qemu-buch.de Anhang

Host ~# apt­get install rar
Unter Unix dekomprimiert das folgende Beispiel die Datei archiv.rar.
Host ~$ rar e archiv.rar

Benutzer­ und Rechteverwaltung unter Unix
Unix war von Anfang an ein Multi-User-Betriebssystem. Das bedeutet, dass verschiedene
Benutzer am Rechner arbeiten können und voreinander abgeschottet werden. Es ist mög-
lich anderen Benutzern zu erlauben oder zu verbieten, auf bestimmte Dateien zuzugrei-
fen. Benutzer sind Gruppen zugeordnet, denen kollektiv bestimmte Zugriffsrechte
gewährt werden. Eine besondere Rolle spielt der Benutzer root (Systemadministrator), der
als einziger Benutzer vollen Zugriff auf das System hat. Jeder Benutzer hat typischerweise
sein eigenes Heimatverzeichnis, in welchem nur er (und root) Dateien anlegen und lö-
schen kann. Auf Unix-Dateisystemen besitzt jede Datei Rechte, die sich auf drei Arten ver-
teilen:
– Eigentümer
– Gruppe
– Sonstige
Jeder der drei Benutzer-Klassen kann eines oder mehrere der folgenden Rechte zugewie-
sen werden:
– Lesen: Dieses Recht wird durch den Buchstaben r dargestellt.
– Schreiben: Der Benutzer darf in die Datei schreiben bzw. Dateien und Unterverzeich-
nisse in dem Verzeichnis erstellen, bearbeiten, umbenennen, löschen und deren Da-
tei-Rechte verändern. Dieses Recht wird durch den Buchstaben w dargestellt.
– Ausführen: Bei Dateien darf der Benutzer die Datei als Programm ausführen. Besitzt
ein Verzeichnis das Bit zum Ausführen, dann darf der Benutzer in das Verzeichnis
wechseln und dort Dateien oder Unter-Verzeichnisse erreichen. Dieses Recht wird
durch den Buchstaben x dargestellt.
Die Rechte der drei Benutzer-Klassen werden hintereinander notiert, wobei das Recht je-
der Klasse durch ein Zeichen-Triplet repräsentiert wird. An Stelle des ersten Zeichens
steht in diesem Triplet ein r, wenn das Lesen-Bit gesetzt ist. An der zweiten Stelle steht
ein w, wenn Schreiben erlaubt ist. An der dritten Stelle steht x, wenn Ausführen erlaubt
ist. Mit dem Befehl ls -l lassen sich die Rechte von Dateien auflisten. In diesem Beispiel
werden die Rechte an der Datei /var/log/messages aufgelistet.
~$ ls ­l /var/log/messages
­rw­r­­­­­ 1 root adm 44618 2007­07­18 16:07 /var/log/messages

274
QEMU Leseprobe http://qemu-buch.de

Die Datei gehört dem User root und der Gruppe adm. Der User root darf diese Datei lesen
und schreiben (rw). Die Gruppe adm darf diese Datei nur lesen (r). Alle anderen dürfen
diese Datei weder lesen noch ändern.
Unter Unix werden mit dem Befehl chmod die Datei-Rechte verändert. Diese Änderungen
lassen sich nur von dem Besitzer der Datei oder dem Benutzer root durchführen. In den
folgenden Beispiel ist die Datei Platte.img für alle lesbar aber nur der Eigentümer, hier ro-
bert, darf diese Datei verändern.
~$ ls ­l Platte.img
­rw­r­­r­­ 1 robert users 24264704 2007­07­10 20:04 Platte.img
Durch den Parameter g+w wird mit dem Befehl chmod auch der Gruppe (g), hier users, das
Recht zum Schreiben (+w) erlaubt.
~$ chmod g+w Platte.img
Diese Rechte können mit dem Befehl ls -l aufgelistet werden.
~$ ls ­l Platte.img
­rw­rw­r­­ 1 robert users 24264704 2007­07­10 20:04 Platte.img
Um allen, die nicht in der Gruppe users sind, die Lese-Rechte (r) zu entziehen, ist folgen-
der Befehl anzuwenden.
~$ chmod o­r Platte.img
Auch diese Rechte können wieder mit dem Befehl ls -l aufgelistet werden.
~$ ls ­l Platte.img
­rw­rw­­­­ 1 robert users 24264704 2007­07­10 20:04 Platte.img
Es lassen sich also die Rechte mit u für den Eigentümer, mit g für die Gruppe und mit o für
alle anderen Benutzer einstellen. Diese Optionen lassen sich auch kombinieren. Folgender
Befehl vergibt die Rechte zum Lesen und Schreiben an den User und die Gruppe.
~$ chmod ug+rw Platte.img
Ob eine Datei unter Unix ausführbar ist, hängt nicht von ihrem Datei-Typ ab. Es sind die
jeweiligen Ausführungsrechte für User, Gruppe und Andere notwendig. Die Ausführungs-
rechte werden jeweils durch ein x gekennzeichnet. Um beispielsweise ein selbst geschrie-
benes Shell-Script für alle ausführbar zu machen ist folgender Befehl anzuwenden.
~$ chmod +x MeinScript.sh
Sehr verbreitet ist auch die Notation der Dateirechte in der Oktalschreibweise. Jeweils
eine Oktalzahl repräsentiert dabei eine Benutzerklasse, in der Reihenfolge Eigentümer,
Gruppe, Sonstige. Eine Ziffer setzt sich dabei als Summe aus den drei Rechten zusammen:
1 für Ausführen, 2 für Schreiben und 4 für Lesen. Um die Rechte für Schreiben und Lesen
zu vergeben, ist die 6 (2+4) anzuwenden. Folgendes Beispiel gibt dem User, der Gruppe
und allen Anderen Schreib- und Lese-Rechte.

275
Leseprobe http://qemu-buch.de Anhang

~$ chmod 666 Platte.img
Unter Unix werden mit dem Befehl chown die Besitzer- und Gruppen-Zugehörigkeiten ge-
ändert. Um eine Datei zu verschenken ist folgender Befehl anzuwenden.
~# chown andrea:familie Platte.img
Nun gehört die Datei dem User andrea und der Gruppe familie. Um die Eigentumsverhält-
nisse von kompletten Verzeichnisbäumen mit Unterverzeichnissen zu ändern, dient der
Parameter -R.
~# chown ­R robert /home/testus
Das Kommando su dient unter Unix dazu, die Benutzer-ID zu wechseln. Die Syntax ist fol-
gende.
~$ su ­ Benutzername
Wird nur su – ohne Benutzernamen aufgerufen, wird nach einer Passwortabfrage zum Be-
nutzer root gewechselt. Der Bindestrich nach dem Befehl su bewirkt, dass ein kompletter
Login-Vorgang durchgeführt wird. Das heißt, es werden das komplette Profil des neuen
Benutzers eingelesen und die Umgebungsvariablen neu gesetzt. Mit dem Befehl exit ge-
langt man zu dem ursprünglichen Benutzer und seinen Rechten zurück.
~$ su ­ 
Password: *****
~ # exit
~$
sudo ist ein Befehl unter Unix, der dazu benutzt wird, Prozesse mit den Rechten eines an-
deren Benutzers, beispielsweise des Users root zu starten. Um ein Befehl mit sudo zu star-
ten ist erst sudo gefolgt von dem Befehl einzugeben.
~$ sudo chown ­R robert /home/testus
Password: ****
Es kann mit der Option -p der Text für die Passwort-Abfrage geändert werden. Dies ist für
Scripte nützlich.
~$ sudo ­p "Bitte Passwort eingeben: " chown ­R robert /home/testus
Bitte Passwort eingeben: *****
Unter Mac OS X und Ubuntu ist der root-Account standardmäßig deaktiviert, statt su wird
das Kommando sudo empfohlen.

276
QEMU Leseprobe http://qemu-buch.de

Speichermedien
dd und dd_rescue
Das klassische Unix-Tool dd kopiert Daten zwischen Blockgerätedateien und/oder regulä-
ren Dateien. So können ganze Partitionen, Festplatten, Floppies und CD/DVDs Byte für
Byte kopiert werden. Es werden also nicht nur die existierenden Dateien überspielt, son-
dern ein genaues Abbild erstellt. dd ist auf fast allen Unix/Linux-Versionen verfügbar und
es gibt auch Versionen für Microsoft Windows. So kann dd unter Cygwin verwendet wer-
den. Es ist aber auch möglich dd als separates Tool unter Microsoft Windows zu installie-
ren. Es kann zum Beispiel von der URL http://www.chrysocome.net/downloads/dd-0.5.zip
heruntergeladen, entpackt und direkt gestartet werden. Der Parameter if beschreibt die
einzulesende Datei. Der Parameter of beschreibt die zu schreibende Datei. Das folgende
Beispiel erstellt unter Linux ein Image einer eingelegten aber nicht gemounteten Floppy.
~# dd if=/dev/fd0 of=floppy.img
Anschließend kann nach einem Disketten-Wechsel dieses Image auf eine andere Diskette
kopiert werden.
~# dd if=floppy.img of=/dev/fd0
Wird ein Datenstrom aus lauter Nullen mit einer definierten Länge in eine Datei umgelei-
tet, entsteht ein raw-Image. Der folgende Befehl erzeugt ein Image im raw-Format mit ei-
ner Größe von einem GByte. Es werden dabei aus dem Device /dev/zero Nullen geholt und
in die Datei Platte.img geschrieben. Die Blockgrösse der Daten ist hier mit 1024 KB vorge-
geben. Der count-Parameter gibt dabei an wie viele dieser Blöcke geschrieben werden sol-
len. Zur Erzeugung einer Sparse-Datei wird der Parameter seek benötigt, der das Ende der
Datei bestimmt. Dazwischen werden keine Blöcke geschrieben. Im folgenden Beispiel wird
nur ein Block geschrieben (count=1) und das Datei-Ende auf 1024 Blöcke gesetzt.
~$ dd if=/dev/zero of=Platte.img bs=1024k count=1 seek=1024
1+0 records in
1+0 records out
1048576 bytes transferred in 0.002445 seconds (428871465 bytes/sec)
Bei defekten Speichermedien versagt dd und es ist dd_rescue anzuwenden. Das Tool dd_res-
cue ist eine Variante des Unix-Klassikers dd, die speziell für die Datenrettung entwickelt
wurde. dd_rescue hat gegenüber dd zwei Vorteile. Zum einen bricht dd_rescue den Kopier-
vorgang bei Lesefehlern nicht ab, sondern schreibt anstelle des unlesbaren Blocks einen
gleich großen Bereich Nullen in die Zieldatei. Damit erhält man am Ende ein vollständiges
Abbild der Partition, in dem nur die unlesbaren Bereiche durch Nullen ersetzt sind. Zum
anderen arbeitet dd_rescue mit zwei Blockgrößen für die Lesezugriffe: So lange kein Fehler
auftritt, werden große Blöcke gelesen (Vorgabe: 16384 Byte), nach einem Fehler geht es
mit kleineren Blöcken weiter (Vorgabe: 512 Byte). Beide Werte kann man über Optionen
verändern. Im Gegensatz zu dd kann dd_rescue nicht in die Standardausgabe und in eine

277
Leseprobe http://qemu-buch.de Anhang

Pipe schreiben. Installiert wird dieses Tool entweder als Paket ddrescue oder man lädt es
von der Website http://www.garloff.de/kurt/linux/ddrescue/ herunter. Hier als Beispiel die
Installation unter Ubuntu.
~# apt­get install ddrescue
Beim Aufruf von dd_rescue sind die dd-typischen Parameter if= und of= nicht nötig: Der
erste und zweite Parameter geben Quelle und Ziel an. Während das Programm arbeitet,
zeigt es ständig an, wie weit es schon fortgeschritten ist. Bei Lesefehlern wird eine War-
nung ausgegeben. In diesem Beispiel wird mit dd_rescue ein Image einer Floppy erstellt.
~$ dd_rescue /dev/fd0 bla.img

Partitionierung
Vereinfacht gesagt ist Partitionierung die Unterteilung eines physikalischen Datenträgers
in verschiedene logische Bereiche. Viele Betriebssysteme erwarten zumindest eine Parti-
tion pro Datenträger. Unix-Derivate brauchen mindestens eine Partition für das Wurzel-
verzeichnis (root). Eine zusätzliche Swap-Partition ist sinnvoll. Weitere Partitionen
können die Sicherheit erhöhen und die Administration und Sicherung vereinfachen. Un-
ter BSD- und Solaris-Betriebssystemen wird die Unterteilung der Festplatte Slices ge-
nannt. Da die Verwendung von Partitionen beziehungsweise Slices bei diversen
Betriebssystemen unterschiedlich ist, weichen auch die Programme zum Partitionieren
zwischen den Betriebssystemen ab.
Hinweis: Image-Dateien müssen nicht unbedingt partitioniert werden. Sie stellen dann nur
die eine Partition dar.
Viele Partitionierungsprogramme werden fdisk genannt. Die fdisk-Version von Linux ist
dialogbasiert und bietet viele Optionen. Zum Anzeigen aller verfügbaren Partitionen
dient der Befehl fdisk -l.
~# fdisk ­l
Zusätzlich kann der Parameter -u angegeben werden. Dadurch wird die Größe der Parti-
tionen nicht in Zylindern, sondern in Sektoren angegeben.
~# fdisk ­lu
Um einen Datenträger zu partitionieren wird fdisk gefolgt von dem Namen des Datenträ-
gers aufgerufen. Ist der Datenträger eine reale Festplatte, so ist der Device-Name der Fest-
platte anzugeben. Unter Linux wird mit /dev/hda die erste IDE-Platte bezeichnet. /dev/hdb
kennzeichnet die zweite IDE-Platte. SCSI-Platten werden unter Linux mit /dev/sda,
/dev/sdb und so weiter symbolisiert.
Hinweis: Alle Daten auf diesem Datenträger gehen durch das Partitionieren verloren!
In diesem Beispiel soll die zweite IDE-Festplatte (/dev/hdb) partitioniert werden.
~# fdisk /dev/hdb1

278
QEMU Leseprobe http://qemu-buch.de

Soll eine virtuelle Festplatte, also ein Image, partitioniert werden, ist der Name der
Image-Datei anzugeben. Der Parameter -C ist hier notwendig, um fdisk eine Anzahl von
Zylindern vorzugeben. Obwohl die Anzahl der Zylinder bei einer Image-Datei keine Rolle
spielt, benötigt fdisk diese Angabe.
~# fdisk ­C 130 Platte.img
Die Befehle von fdisk listet m auf. Mit n wird eine neuen Partition angelegt.
Command (m for help): n
Command action
   e   extended
   p   primary partition (1­4) p
Ab vier Partitionen muss eine erweiterte (extended) Partition angelegt werden. Hier wird
nur eine Partition angelegt, also ist hier p für eine primäre Partition anzugeben. Die Num-
mer der Partition ist 1.
Partition number (1­4): 1
Die Größe der Partition wird durch den ersten und letzten Zylinder angegeben. Bei einer
Partition können die Vorgabewerte übernommen werden.
First cylinder (1­130, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1­130, default 130): 130
Using default value 130
Zur Kontrolle lässt man sich die Partitionstabelle mit p anzeigen.
Command (m for help): p
Disk Platte.img: 0 MB, 0 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
     Device Boot      Start         End      Blocks   Id  System
Platte.img1               1         130     1044193+  83  Linux
Der System-Typ der Partition ist per Default auf Linux gesetzt. Um zum Beispiel den Sys-
tem-Typ auf FAT32 zu ändern, sind folgende Schritte notwendig.
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): L
Mit dem Befehl L lässt man sich alle System-Typen auflisten. FAT32 ist mit c auswählbar.
Hex code (type L to list codes): c
Changed system type of partition 1 to c (W95 FAT32 (LBA))
Zur Kontrolle lässt man sich wieder die Partitionstabelle mit p anzeigen.

279
Leseprobe http://qemu-buch.de Anhang

Command (m for help): p
Disk Platte.img: 0 MB, 0 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
     Device Boot   Start     End    Blocks   Id  System
Platte.img1            1     130   1044193+   c  W95 FAT32 (LBA)
Mit w schreibt man die Änderungen auf den Datenträger und beendet das Programm.
Command (m for help): w
Sehr komfortabel wird das Partitionieren vom Gnome Partition Editor unterstützt. Der
Gnome Partition Editor (Live-CD GParted) ist kein Kommandozeilen-Tool, sondern eine
komplette Linux-Distribution, die das leistungsfähige und komfortable Partitionierungs-
programm Gnome Partition Editor enthält. Damit ist man unabhängig von den Partitio-
nierungsprogrammen der einzelnen Betriebssysteme. GParted gibt es als Live-CD und als
Live-USB. Für die Verwendung mit QEMU ist die Live-CD zu empfehlen. Dazu lädt man die
ISO-Datei der Live-CD von der URL http://gparted-livecd.tuxfamily.org herunter. Von diesem
CD-Image wird gebootet. So können Partitionen und darin liegende Dateisysteme erzeugt,
vergrößert, verkleinert, verschoben, kopiert und überprüft werden. Damit kann man bei-
spielsweise in einem bestehenden System Platz für weitere Betriebssysteme schaffen, in-
dem man die bisher existierenden Partitionen verkleinert. Weiterhin kann man
Partitionen innerhalb einer Festplatte umsortieren oder auf andere Festplatten verschie-
ben.
~$ qemu ­hda Platte.img ­cdrom gparted­livecd­0.3.4­11.iso    \
­boot d ­std­vga

Abbildung 108: Der Gnome Partition Editor.

280
QEMU Leseprobe http://qemu-buch.de

Nach dem Start von der Live-CD ist im Boot-Menü die voreingestellte Auswahl GParted-li-
veCD (auto-configuration) mit Return zu bestätigen. Anschließend wird nach dem Tastatur-
Layout gefragt. Für ein deutsches Layout ist 10 einzugeben. In der nachfolgenden Sprach-
auswahl ist auch die 10 für Deutsch einzugeben.
Nach dem Hochfahren erscheint der Gnome Partition Editor und zeigt die Partitionen und
die freien Bereiche der Festplatten an. Im Gnome Partition Editor wählt man in der Pull-
Down-Liste (rechts-oben) die Festplatte (/dev/hda) aus. Anschließend klickt man auf das
Icon New, um eine neue Partition anzulegen. Wenn nur eine Partition angelegt werden
soll, sind die Vorgabe-Werte für die Größe einfach zu übernehmen und es ist eine primäre
Partion zu erstellen. In diesem Beispiel soll als Dateisystem FAT32 verwendet werden. Da-
mit ist diese virtuelle Festplatte auch unter Microsoft Windows verwendbar. Im Gnome
Partition Editor klickt man dann auf das Icon Apply um die Änderungen auf die Festplatte
zu schreiben. Beendet wird die Gparted-Live-CD mit einem Klick auf das Icon Exit.

Abbildung 109: Der Gnome Partition Editor – Anlegen einer neuen Partition.

Einbinden von Dateisystemen 
Beim Mounten oder Einhängen wird ein Dateisystem dem Betriebssystem an einer be-
stimmten Stelle (Mount point) zur Verfügung gestellt. Meist geschieht das Einbinden au-
tomatisch beim Booten. Wechselmedien werden oft bei Zugriff durch einen Automounter
automatisch eingebunden. Manuelles Mounten kann nach dem Einlegen einer Daten-CD
beziehungsweise -Diskette oder dem Anschließen eines USB-Sticks nötig sein, erst danach
sind die Daten über den Mount-Point verfügbar. Bei Microsoft Windows ist dieser ein wei-
terer Laufwerksbuchstabe wie D: oder E:, bei Mac OS X werden Wechselmedien vom Auto-
mounter unter /Volumes eingebunden und erscheinen dann auf dem Desktop, unter Linux
wird oft in ein Unterverzeichnis von /mnt oder /media eingebunden.

281
Leseprobe http://qemu-buch.de Anhang

Das Gegenteil von Mounten ist Unmounten oder Aushängen. Dies geschieht unter der Ge-
währleistung, dass keine Dateien von dem Dateisystem verwendet werden und dass alle
Daten auf das Dateisystem geschrieben wurden. Wird ein Dateisystem ohne Unmounten
entfernt (zum Beispiel wird ein USB-Stick abgezogen) kann es zu Datenverlust kommen.
Unter Unix wird die zweite Partition auf der primären Festplatte am ersten ATA-Port mit
folgendem Kommando manuell gemountet:
~# mount /dev/hda2 /mein/verzeichnis 
Ein Aushängen wird erreicht durch den Befehl umount gefolgt von dem Datei-Namen des
Dateisystem oder dem Pfad zum Mount-Point. Hier als Beispiel die Angabe des Datei-Na-
mens des Dateisystems.
~# umount /dev/hda2 
Hier als Beispiel die Angabe des Datei-Namens des Mount-Points.
~# umount /mein/verzeichnis 
Eine Liste der gemounteten Dateisysteme gibt der Befehl mount ohne Parameter aus:
~$ mount 
Mit dem Parameter -t kann der Typ des Datei-Systems angegeben werden. Um beispiels-
weise auf ein NTFS-Image zuzugreifen, dient die Option -t ntfs.
Host ~# mount ­t ntfs ntfs.img /mnt 
Auch eine Datei kann über das so genannte „loop device“ wiederum als Dateisystem ein-
gebunden werden, am häufigsten findet dies bei ISO-Images von CD/DVDs Verwendung:
~# mount ­r ­t iso9660 ­o loop DVD.iso /mein/verzeichnis 

Füllstand der Partitionen ermitteln
Unter Unix wird der Füllstand der eingebundenen Partitionen mit dem Befehl df ermit-
telt. Die Option -h verwendet für die Größenangaben KByte, MByte und GByte. Dies dient
der besseren Lesbarkeit.
$ df ­h
Dateisystem            Größe Benut  Verf Ben% Eingehängt auf
/dev/hda3              54G  8,0G   46G  15% /
/dev/hda1             111M   69M   36M  66% /boot

282
QEMU Leseprobe http://qemu-buch.de

Netzwerk­Konfiguration und Test
Heutige Netzwerke basieren auf den Protokollen TCP/IP. Die Abkürzung TCP/IP steht für
das Transmission Control Protocol (TCP) und das Internet Protocol (IP). TCP/IP ist sehr
ausgereift und besitzt ausgezeichnete Routing-Funktionen. Diese Protokolle sind die Basis
für das Internet. Alle Anwendungsprotokolle, wie zum Beispiel HTTP, FTP und SSH, setzen
TCP/IP voraus. Neben TCP/IP gibt es noch andere Netzwerk-Protokolle, wie zum Beispiel
NetBIOS. NetBIOS wird noch gelegentlich in der DOS/Windows-Welt verwendet. QEMU
unterstützt nur TCP/IP.
Unter Unix dient zur manuellen Netzwerk-Konfiguration das Programm ifconfig. Leider
sind dessen Optionen und Parameter bei den Unix/Linux-Derivaten nicht einheitlich. Um
sich alle Netzwerk-Interfaces anzeigen zu lassen, ruft man ifconfig ohne Parameter auf.
~# ifconfig
Bei einigen Unix-Versionen ist dazu noch die Option -a anzuhängen.
~# ifconfig ­a
Sollen nur Informationen zu einem Netzwerk-Interface aufgelistet werden, ist der Name
des Netzwerk-Interfaces mit anzugeben. In diesem Beispiel werden Informationen zu dem
Netzwerk-Interface eth0 angezeigt. Die wichtigsten Informationen sind, dass es dieses In-
terface überhaupt gibt und welche IP-Adresse es hat.
~# ifconfig eth0
eth0 Protokoll:Ethernet  Hardware Adresse 00:0B:6B:69:E8:63
     inet Adresse:192.168.1.10 Bcast:192.168.1.255
     Maske:255.255.255.0
     inet6 Adresse: fe80::20b:6aff:fe69:e883/64 
     Gültigkeitsbereich:Verbindung
     UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
     RX packets:0 errors:0 dropped:0 overruns:0 frame:0
     TX packets:330 errors:0 dropped:0 overruns:0 carrier:0
     Kollisionen:0 Sendewarteschlangenlänge:1000
     RX bytes:0 (0.0 b)  TX bytes:42678 (41.6 KiB)
     Interrupt:201 Basisadresse:0xbc00
Um einem vorhandenen Netzwerk-Interface eine IP-Adresse, zum Beispiel 192.168.1.15,
zuzuordnen, ist folgender Befehl unter Linux notwendig.
~# ifconfig eth0 192.168.1.15 netmask 255.255.255.0 up
Der Parameter eth0 kennzeichnet die erste Netzwerk-Karte im Rechner. Danach wird die
IP-Adresse angegeben. Diese IP-Adresse darf im Netz noch nicht vergeben sein. Der Para-
meter netmask definiert die Netz-Maske. Die Option up bewirkt, das das Netzwerk-Inter-
face aktiviert wird. Um ein Netzwerk-Interface zu deaktivieren, ist die Option down zu
verwenden.

283
Leseprobe http://qemu-buch.de Anhang

~# ifconfig eth0 down
Mit dem Befehl ping wird überprüft, ob ein bestimmtes Netzwerk-Interface in einem
Netzwerk erreichbar ist. ping steht unter vielen Betriebssystemen zur Verfügung. Als Pa-
rameter wird der DNS-Name oder die IP-Adresse des zu testenden Netzwerk-Interfaces
angegeben. In diesem Beispiel wird unter Linux die Verbindung zum Host www.qemu.org
mit ping getestet.
~ $ ping www.qemu.org
PING www.qemu.org (88.191.20.202) 56(84) bytes of data.
64 bytes from 88.191.20.202: icmp_seq=1 ttl=52 time=33.0 ms
64 bytes from 88.191.20.202: icmp_seq=2 ttl=52 time=32.3 ms
An den Antworten ist zu erkennen, dass der Host erreichbar ist. Wenn die Gegenstelle
nicht antwortet, heißt dies aber noch nicht, das sie nicht erreichbar ist. Der Befehl ping
verwendet das Internet Control Message Protocol (ICMP). Es dient in Netzwerken zum
Austausch von Informationen und Fehlermeldungen über das Internet-Protokoll (IP). Es
wird von jedem Router und jedem Rechner erwartet, das ICM-Protocol zu unterstützen.
Es gibt aber auch Rechner, die sich tarnen oder Firewalls, die das ICM-Protokoll nicht
durchlassen. So blockt auch QEMU dieses Protokoll. Das heißt, ping funktioniert nicht in
einer QEMU-Instanz.

Netzwerkdienste und ­Clients
SSH
Secure Shell (ssh) ist sowohl ein Programm als auch ein Netzwerkprotokoll, mit dessen
Hilfe man sich über eine verschlüsselte Netzwerkverbindung auf einem entfernten Com-
puter einloggen und dort Programme ausführen kann. SSH ermöglicht eine sichere, au-
thentifizierte und verschlüsselte Verbindung zwischen zwei Rechnern. Mit OpenSSH
existiert auch eine freie Implementierung von SSH, die mittlerweile einen sehr großen
Verbreitungsgrad erreicht hat. SSH-Implementationen waren ursprünglich nur unter
Unix verfügbar, mittlerweile wurden jedoch sowohl SSH-Server als auch Clients für ande-
re Plattformen programmiert. Unter Cygwin gibt es auch einen SSH-Server für Microsoft
Windows, der auf OpenSSH basiert. Damit kann man sich per SSH-Client auf einer Micro-
soft Windows-Maschine einloggen.
Um sich zum Beispiel als User root auf den Rechner mit dem Namen bibo mit ssh einzu-
loggen, dient folgender Befehl.
~$ ssh root@bibo
Normalerweise lauscht ein SSH-Server auf dem Port 22. Dies kann verändert werden. Um
sich mit dem SSH-Client auf einem anderen Port zu verbinden, ist die Option -p gefolgt
von der Port-Nummer anzugeben.
~$ ssh ­p 12345 root@bibo

284
QEMU Leseprobe http://qemu-buch.de

putty
Download: http://www.putty.nl/download.html
Unter den gängigen Microsoft Windows-Versionen steht mit putty ein ssh-Client zur Ver-
fügung. Dazu braucht man nur die Datei putty.exe herunterzuladen und diese zu starten.
Um sich zum Beispiel als User root auf dem Rechner mit dem Namen bibo mit SSH einzu-
loggen, ist folgende Konfiguration einsetzbar:
Host Name: bibo
Port:        22
Protocol:   ssh
Zum Verbinden ist der Button Open anzuklicken.
Hinweis: Möglicherweise muss in der Einstellung der Windows-Firewall auf dem Host die-
ser Port freigegeben werden.

Abbildung 110: Der ssh-Client putty.

SCP
Secure Copy (SCP) ist ein Protokoll sowie ein Programm zur verschlüsselten Übertragung
von Daten zwischen zwei Computern über ein Netzwerk, zum Beispiel das Internet. Es ge-
währleistet Vertraulichkeit, Integrität und Authentizität der übertragenen Daten. Dazu
nutzt es das Protokoll SSH. Mit OpenSSH steht ein freier Server sowie ein freier Client für
SCP zur Verfügung. SCP-Clients gibt es auch für Microsoft Windows, zum Beispiel WinSCP.

285
Leseprobe http://qemu-buch.de Anhang

Das Programm scp funktioniert in Grundzügen wie der Kopie-Befehl cp. Im folgenden Bei-
spiel werden von dem Rechner mit dem Namen bibo die Datei /etc/passwd in das aktuelle
Verzeichnis kopiert.
~ $ scp root@bibo:/etc/passwd .
In diesem Beispiel wird die Datei Platte.img auf den entfernten Rechner mit dem Namen
bibo in das Verzeichnis /tmp kopiert.
~ $ scp Platte.img root@bibo:/tmp

Abbildung 111: WinSCP – Ein SCP-Client für Windows.

286
QEMU Leseprobe http://qemu-buch.de

WinSCP
Download: http://winscp.net/eng/docs/lang:de
WinSCP ist ein grafischer SCP Client für Microsoft Windows und kann auch als FTP-Client
verwendet werden. WinSCP steht unter der GNU General Public License und ist damit
freie Software. Für die deutsche Version muss man zusätzlich das Multilanguage Installation
Package herunterladen. Die Installation startet zunächst in Englisch. Man kann aber im In-
stallationsdialog German auswählen, um den Installationsvorgang auf Deutsch weiterzu-
führen. Die Installation von WinSCP ist einfach und selbsterklärend. Mit WinSCP unter
Microsoft Windows können auch Dateien zwischen Rechnern ausgetauscht werden.

FTP
Das File Transfer Protocol ist ein Netzwerkprotokoll zur Dateiübertragung über TCP/IP-
Netzwerke. Es wird benutzt, um Dateien vom Server zum Client (Download), vom Client
zum Server (Upload) zu übertragen. Außerdem können mit FTP Verzeichnisse angelegt
und ausgelesen, sowie Verzeichnisse und Dateien umbenannt oder gelöscht werden. Da
FTP ein textbasiertes Protokoll ist, werden sowohl die Daten als auch die Authentifizie-
rungsinformationen im Klartext übertragen. Zum Download wird ein FTP-Client benötigt,
den man auch in vielen Web-Browsern finden kann.
Der FTP-Client ftp ist auf fast jedem Betriebssystem verfügbar. Der ursprünglich für Unix
programmierte Client wurde schon bald auf andere Betriebssysteme (zum Beispiel Micro-
soft Windows) portiert. Das Programm ftp wird meist mit einem Kommandozeilenbefehl
gestartet, oft mit Angabe eines FTP-Servers als Argument, zu dem man Kontakt aufneh-
men möchte. Bei erfolgreicher Verbindung fragt das Programm nach Benutzername und
Passwort und gelangt nach abgeschlossenem Login in den Zustand, in dem es Kommandos
vom Benutzer erwartet. In diesem Beispiel wird mit dem FTP-Client in der DOS-Eingabe-
konsole unter Microsoft Windows die Datei bla.txt zum Rechner mit der IP-Adresse
10.0.2.2 übertragen.
Gast C:\> ftp 10.0.2.2
Benutzer (10.0.2.2): robert
Kennwort: *****
Ftp> put bla.txt
Ftp> quit
Weitere Kommandos sind:
Ftp> ascii 
Einstellen von ASCII als Übertragungsmodus. Dies ist der Standardübertragungsmodus.
Ftp> binary 
Einstellen von Binary als Übertragungsmodus.
Ftp> cd Verzeichnis

287
Leseprobe http://qemu-buch.de Anhang

Wechselt in das Arbeitsverzeichnis auf dem FTP-Server.


Ftp> delete Datei 
Löscht die Datei auf dem FTP-Server.
Ftp> dir 
Zeigt den Inhalt des aktuellen Arbeitsverzeichnisses auf dem FTP-Server an.
Ftp> get Datei
Kopiert eine Datei vom FTP-Server auf den Client.
Ftp> lcd Verzeichnis 
Wechselt das Verzeichnis auf dem Client.
Ftp> ls 
Listet den Inhalt des Verzeichnisses auf.
Ftp> mget Dateien 
Kopiert mehrere Dateien vom Server auf den Client. Wildcards sind erlaubt.
Ftp> mkdir Verzeichnis
Erstellt ein Verzeichnis auf dem FTP-Server.
Ftp> mput Dateien 
Kopiert mehrere Dateien vom Client auf den FTP-Server. Wildcards sind erlaubt.
Ftp> pwd 
Gibt das aktuelle Arbeitsverzeichnis auf dem FTP-Server aus.
Ftp> quit 
Schließt die Verbindung zum FTP-Server und beendet das Programm.
Ftp> rmdir Verzeichnis 
Löscht ein Verzeichnis auf dem FTP-Server.

TFTP
Das Trivial File Transfer Protocol (TFTP) ist ein sehr einfaches Datei-Übertragungsproto-
koll und unterstützt lediglich das Lesen oder Schreiben von Dateien. Nicht vorhanden
sind viele Funktionen des mächtigeren FTP wie etwa Rechtevergabe, Anzeigen der vor-
handenen Dateien oder Benutzer-Authentifizierung. Motivation für die Entwicklung von
TFTP war das Laden von Betriebssystemen oder Konfigurationen über das Netzwerk.
Hierfür sind das verbindungsorientierte TCP und das darauf aufsetzende FTP viel zu kom-
plex. TFTP wurde dagegen bewusst einfach gehalten.

288
QEMU Leseprobe http://qemu-buch.de

Microsoft Windows bringt von Haus aus einen tftp-client (tftp.exe) mit. Bestimmte Arten
von Computerwürmern wie zum Beispiel W32.Blaster nutzen TFTP-Server zu ihrer Ver-
breitung. Deshalb sollte tftp.exe bei Benutzung einer Personal Firewall standardmäßig der
Internetzugriff verweigert werden. Ein TFTP-Client für Microsoft Windows-Versionen
kann auch unter http://www.tftp-server.com/tftp-download.html (WinAgents TFTP Client)
heruntergeladen und direkt ausgeführt werden.
C:\> tftp ­i 10.0.2.2 GET /tmp/bla.txt
Unter Unix ist ein tftp-Client meist nicht installiert. Ist das Gast-System ein Linux Debian-
Derivat, ist die Installation des Paketes tftp mit einer Befehlszeile getan.
Gast ~# apt­get install tftp
Das Herunterladen einer Datei per TFTP erfolgt mit diesen Befehlen.
Gast ~$ tftp
(to) 10.0.2.2
tftp> binary
tftp> get /tmp/bla.txt
tftp> quit

wget
Download: http://www.gnu.org/software/wget/
Das Tool wget ist ein freies Kommandozeilen-Programm zum Herunterladen von Dateien.
Zu den unterstützten Protokollen gehören FTP, HTTP und HTTPS. Das Programm gibt es
sowohl für Unix und GNU/Linux als auch für Microsoft Windows. wget ist in Cygwin ent-
halten. wget kann einen abgebrochenen Download wieder aufnehmen, komplette Websi-
tes herunterladen. Um eine Datei von einem Web- beziehungsweise FTP-Server
herunterzuladen, genügt es wget und die entsprechende URL aufzurufen, zum Beispiel:
~$ wget http://www.qemu.org/qemu­0.9.1.tar.gz

289
Leseprobe http://qemu-buch.de Anhang

Abbildung 112: wget unter Microsoft Windows (Cygwin).

Telnet
Telnet (Teletype Network) ist der Name eines im Internet weit verbreiteten Netzwerkpro-
tokolls und wird dazu verwendet, Benutzern den Zugang zu Rechnern über die Komman-
dozeile zu ermöglichen. Aufgrund der fehlenden Verschlüsselung wird es kaum noch
eingesetzt. Weiterhin ist Telnet der Name eines Client-Programms, welches Verbindun-
gen zu einem entfernten Rechner ausbauen kann. Das Telnet-Protokoll verwendet TCP
und die Clients verbinden sich über Port 23 mit dem Zielrechner. Dieser Port lässt sich,
wie bei den meisten Internetprotokollen, modifizieren. Es ist ebenfalls möglich, mit ei-
nem Telnet-Client eine interaktive TCP-Verbindung zu anderen Internetservices aufzu-
bauen. Im folgenden Beispiel wird der Telnet-Client mit dem Host bibo und dessen Port
4444 verbunden.
~$ telnet bibo 4444
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
Unter Microsoft Windows wird der Telnet-Client über den Punkt Ausführen im Start-Menü
gestartet. In der erscheinenden Eingabe-Zeile gibt man den Befehl telnet ein. Im Menü des
Clients gibt man unter Verbinden, Remote System den Host und den Port ein.

290
QEMU Leseprobe http://qemu-buch.de

Abbildung 113: Der Telnet-Client unter Microsoft Windows.

netcat
Download: http://netcat.sourceforge.net/
Das Programm netcat, auch nc genannt, ist ein einfaches Werkzeug, um Daten von der
Standardeingabe oder Standardausgabe über Netzwerkverbindungen zu transportieren.
Es arbeitet als Client oder Server mit den Protokollen TCP und UDP. Eine Windows-Versi-
on ist in Cygwin enthalten. Diese Version wird mit nc aufgerufen.
In dem nachfolgenden Beispiel wird die Datei bla.txt von dem Rechner 1 mit netcat über
das Netzwerk auf den Rechner 2 mit der IP-Adresse 172.16.10.61 übertragen. Dazu wird
zuerst der Rechner 2 empfangsbereit geschaltet.
Rechner 2 ~$ netcat ­w30 ­vvnlp 3333 > bla.txt
Der Parameter -w gibt das Timeout an. Das heißt in dem Beispiel wartet netcat maximal 30
Sekunden auf das Zustandekommen der Verbindung. Die Parameter -vv bewirkt eine aus-
führlichere Ausgabe, um mögliche Fehler zu erkennen. Der Parameter -l schaltet netcat in
den „Lausch“-Modus. Der Parameter -n bewirkt, dass keine DNS-Abfrage erforderlich ist.
Es ist dann die IP-Adresse statt des DNS-Namens anzugeben. Der Parameter -p definiert
den zu verwendenden Port (hier 3333). Der empfangene Datenstrom wird in die Datei
bla.txt umgeleitet. Auf Rechner 1 startet man dann die Übertragung der Datei bla.txt. Zu-
sätzlich ist hier noch die Adresse des Ziel-Rechners anzugeben. Dieses Beispiel enthält
keinerlei Absicherungen.

291
Leseprobe http://qemu-buch.de Anhang

Rechner 1 ~$ netcat ­w 30 ­vvn 172.16.10.61 3333 < bla.txt
Viele Hacker/Cracker benutzen Netcat um Backdoors (Hintertüren) auf den Rechnern ih-
rer Opfer zu öffnen. Deshalb stufen einige Anti-Viren-Programme das Windows-Executa-
ble nc.exe als Hackingtool ein und verhindert dessen Ausführung.

TightVNC 
Download: http://www.tightvnc.com/
TightVNC ist ein VNC-Server und -Client der unter der GPL-Lizenz steht. Er ist für Micro-
soft Windows sowie für zahlreiche Unix-Derivate verfügbar. Weiterhin existiert eine
plattformunabhängige Implementierung in Java (nur als Client). Hier als Beispiel die In-
stallation unter einem Linux-Debian-Derivat.
Host ~# apt­get install xtightvncviewer
Auf der Website des Projekts steht die Software für viele Betriebssysteme zum Download
bereit. Zur Installation unter Microsoft Windows ist die Datei tightvnc-1.3.9-setup.exe her-
unterzuladen und aufzurufen. Im Wizzard für die Installation gibt man das Ziel-Verzeich-
nis ein (C:\Programme\TightVNC). Danach sind die zu installierenden Software-
Komponenten (Server, Viewer, Dokumentation) auszuwählen. Anschließend ist der Name
des Ordners im Start-Menü festzulegen (TightVNC). Im nächsten Schritt ist anzugeben, ob
der VNC-Server als System-Dienst registriert werden soll und ob der VNC-Server automa-
tisch gestartet werden soll. Dies ist nur zu empfehlen, wenn dieser Rechner dauerhaft per
VNC erreichbar sein soll. Nach der Installation wird TightVNC wie folgt aufgerufen. Menü
Start | Alle Programme | TightVNC | TightVNC Viewer (Fast Compression).

Abbildung 114: Der VNC-Viewer TightVNC.

292
QEMU Leseprobe http://qemu-buch.de

Kompilieren
Um Software aus dem Quellcode zu kompilieren, werden nach dem Herunterladen der
Quellen und dem Entpacken meist die folgenden Schritte in dem erstellten Verzeichnis
angewendet:
~$ ./configure
~$ make
~# make install
Als erster Schritt wird das Script ./configure aufgerufen. Es überprüft, ob alle und welche
der zur Konfiguration gehörenden Komponenten vorhanden sind. Weiterhin legt es ent-
sprechend der ermittelten Bedingungen Konfigurationsdateien und eventuell Unterver-
zeichnisse für make an. Diese Konfigurationsdateien heißen jeweils Makefile und liegen in
den angelegten Verzeichnissen und beschreiben was make dort ausführen soll. Danach er-
folgt der Aufruf von make. Das Programm make führt Kommandos in Abhängigkeit von Be-
dingungen, die in den Makefiles beschrieben sind, aus. Genutzt wird es beispielsweise, um
in einem Projekt, das aus vielen verschiedenen Dateien mit Quellcode besteht, automati-
siert alle Arbeitsschritte (Übersetzung, Linken, Dateien kopieren etc.) zu steuern. Im letz-
ten Schritt, der unter dem User root ausgeführt werden muss, werden mit make install die
erstellten Dateien (Binaries, Konfigurationsdateien, Manuals) in die entsprechenden Ver-
zeichnisse des Systems kopiert.

293