qemu, kvm, xen & libvirtHauptseite | Über | Hilfe | FAQ | Spezialseiten | Anmelden

Druckversion | Impressum | Datenschutz

libguestfs guestfish virt-cat virt-edit virt-df virt-p2v

(Link zu dieser Seite als [[QEMU-KVM-Buch/ Managementtools/ libguestfs]])

<<<|###|>>> | English



Im Aufbau


Inhaltsverzeichnis

[bearbeiten] Die Bibliothek libguestfs

Website: http://libguestfs.org

Die C-Bibliothek libguestfs (Open Source) ist eine API zum Bearbeiten von virtuellen Speichermedien (Images), die von virtuellen Maschinen verwendet werden. Mit den Werkzeugen dieser Bibliothek (virt-cat, virt-edit, virt-df, virt-p2v) lassen sich in den Gast-Systemen Dateien bearbeiten, Statistiken der Dateisysteme erstellen und Registry-Einträge verändern (Microsoft Windows). Weitere Features sind: Backups, Klonen und Migrationen. Unterstützt werden unter anderem die Dateisysteme ext2/3/4, btrfs, FAT und NTFS, LVM und unterschiedliche Image-Formate, wie zum Beispiel qcow2 und vmdk. Es lassen sich virtuelle Maschinen bearbeiten, die mit der Bibliothek libvirt verwaltet werden (siehe Abschnitt Managementtols). Die Bibliothek libguestfs verwendet Features der Kernel-based Virtual Machine. Die C-Bibliothek libguestfs bietet APIs für C, C++, OCaml, Perl, Python, Ruby, Java, Haskell, C# und Shell-Skripts.

[bearbeiten] Installation

[bearbeiten] Fedora, RHEL mit EPEL

Unter Fedora ab Version 11 und RHEL mit REPEL (Extra Packages for Enterprise Linux) werden die notwendigen Pakete mit diesen Befehlen installiert.

Host ~$ su - 
Host ~# yum install '*guestf*' 

Die Installation wird mit einem vorhandenen Image getestet.

Host ~# guestfish --ro -a disk.img

[bearbeiten] Kompilieren

Zum Kompilieren wird folgende Software benötigt:

Die Installation von QEMU/KVM wird unter der URL http://qemu-buch.de/d/Installation beschrieben.

Host ~$ qemu --version
QEMU PC emulator version 0.12.4, Copyright (c) 2003-2008 Fabrice Bellard


Pakete debootstrap und debirf.

Host ~$ sudo apt-get install debootstrap debirf 
Host ~$ debootstrap --help
Host ~$ debirf help

Für fakeroot sind die Pakete fakeroot und fakeroot-ng zu installieren.

Host ~$ sudo apt-get install fakeroot fakeroot-ng
Host ~$ fakeroot --version
fakeroot version 1.12.1

Das Paket fakechroot muss mindestens in der Version 2.9 vorliegen.

Host ~$ sudo apt-get install fakechroot
Host ~$ fakechroot --version
fakechroot version 2.9

Liegt fakechroot nicht in der Version 2.9 vor, ist es zu kompilieren.

Host ~$ mkdir -p ~/source
Host ~$ cd ~/source
Host ~$ wget \
http://ftp.debian.org/debian/pool/main/f/fakechroot/fakechroot_2.9.orig.tar.gz
Host ~$ tar xzvf fakechroot_2.9.orig.tar.gz
Host ~$ cd fakechroot-2.9
Host ~$ ./configure && make
Host ~$ sudo make install
Host ~$ sudo ln -sf /usr/local/bin/fakechroot /usr/bin/fakechroot
Host ~$ fakechroot --version
fakechroot version 2.9

?? XDR, rpcgen (on Linux these are provided by glibc)

Host ~$ xdrmem_create
??
Host ~$ sudo apt-get install libc6 libc6-dev
Host ~$ rpcgen

Paket squashfs-tools

Host ~$ sudo apt-get install squashfs-tools 
Host ~$ mksquashfs -version
mksquashfs version 3.3 (2007/10/31)

Paket genisoimage

Host ~$ sudo apt-get install genisoimage 
Host ~$ genisoimage -version
genisoimage 1.1.9 (Linux)

Optional: hivex - Windows Registry "hive" extraction library

FUSE

Host ~$ sudo apt-get install libfuse-dev libfuse2

Augeas

Host ~$ sudo apt-get install libaugeas-dev augeas-tools

Readline

Host ~$ sudo apt-get install libreadline5-dev readline-common

xmllint

Host ~$ sudo apt-get install libxml2-utils
Host ~$ xmllint -version
xmllint: using libxml version 20632

OCaml-Bindings

Host ~$ sudo apt-get install ocaml ocaml-interp libocamlnet-ocaml-bin
Host ~$ sudo apt-get install libvirt-ocaml libvirt-ocaml-dev libxml-light-ocaml-dev

Man testet die Verfügbarkeit.

Host ~$ ocaml -version 
The Objective Caml toplevel, version 3.11.1 
Host ~$ ocamlopt -config
version: 3.11.1

Optiopnal: local Fedora mirror

Python-Bindings

Host ~$ python --version
Python 2.6.4
Host ~$ sudo apt-get install python-libvirt

Ruby-Bindings

Host ~$ sudo apt-get install ruby-full rake rubygems irb

Man testet die Verfügbarkeit.

Host ~$ ruby --version
ruby 1.8.7 (2008-08-11 patchlevel 72) [x86_64-linux]
Host ~$ irb
irb(main):001:0> quit

Java-Bindings

Host ~$ sudo apt-get install sun-java6-bin sun-java6-jre sun-java6-jdk 
Host ~$ sudo update-java-alternatives --jre --set java-6-sun
Host ~$ export JAVA_HOME="/usr/lib/jvm/java-6-sun"  

Man testet die Verfügbarkeit.

Host~$ javac -version
javac 1.6.0_20


Optional benötigt man GHC für die Haskell-Bindings.

Host ~$ sudo apt-get install ghc6 haskell-utils

Paket perldoc

Host ~$ sudo apt-get install perl-doc
Host ~$ pod2man --help
Host ~$ pod2text --help

Optional werden die Perl-Module XML::XPath, Test::More, ExtUtils::MakeMaker, Pod::Usage, Getopt::Long, Sys::Virt, Data::Dumper, Locale::TextDomain, XML::Writer, Win::Hivex und Win::Hivex::Regedit benötigt. Viele Perl-Module werden als Software-Pakete angeboten (lib*-perl).

Host ~$ sudo apt-get install libextutils-autoinstall-perl 
Host ~$ sudo apt-get install libmodule-build-perl libtest-pod-perl
Host ~$ sudo apt-get install libxml-writer-perl libxml-xpath-perl

??

Host ~$ sudo apt-get install libwin-hivex-perl

Steht ein Perl-Modul nicht als Paket zur Verfügung, installiert man es mit CPAN. Dazu wird das Paket perl-modules benötigt.

Perl-Bindings

Host ~$ sudo apt-get install perl-modules

Als Benutzer root ruft man cpan auf.

Host ~$ sudo -i 
Host ~# cpan

Beim ersten Aufruf von cpan werden einige Fragen zur Konfiguration gestellt. Die Default-Antworten können übernommen werden. Bei der Frage nach dem Mirror-Server ist ein Server in der Nähe auszuwählen. Die Konfiguration wird bei Debian/Ubuntu in der Datei /etc/perl/CPAN/Config.pm gespeichert. Nach erfolgreicher Konfiguration wartet der CPAN-Prompt auf Befehle.

cpan> quit

Das Perl-Modul Sys::Virt liefert die Perl-Bindings für libvirt. Die Dokumentation steht unter der URL http://search.cpan.org/dist/Sys-Virt/lib/Sys/Virt.pm zur Verfügung. Gibt es kein entsprechendes Paket, installiert man dieses Modul per CPAN. Mit folgenden Befehl sucht man das Perl-Modul Sys::Virt.

Host ~# cpan
cpan> i /Sys::Virt/

Die Installation eines Perl-Moduls erfolgt mit install.

cpan> install Sys::Virt
cpan> install Win::Hivex
cpan> install Win::Hivex::Regedit
cpan> quit
Host ~# exit

Mit folgendem Befehl testet man die erfolgreiche Installation der Perl-Module. Wenn jeweils keine Ausgabe erscheint, ist alles richtig.

Host ~$ perl -MXML::XPath -e exit
Host ~$ perl -MXML::Writer -e exit
Host ~$ perl -MTest::More -e exit
Host ~$ perl -MExtUtils::MakeMaker -e exit
Host ~$ perl -MLocale::TextDomain -e exit
Host ~$ perl -MData::Dumper -e exit
Host ~$ perl -MGetopt::Long -e exit
Host ~$ perl -MPod::Usage -e exit
Host ~$ perl -MSys::Virt -e exit
Host ~$ perl -MWin::Hivex -e exit
Host ~$ perl -MWin::Hivex::Regedit -e exit

(Optional, but highly recommended) perl-libintl for translating perl code.

Host ~$ sudo apt-get install libintl-perl


Quellen holen und kompilieren:

Host ~$ mkdir -p ~/source
Host ~$ cd ~/source
Host ~$ wget http://libguestfs.org/download/libguestfs-1.5.0.tar.gz
Host ~$ tar xzvf libguestfs-1.5.0.tar.gz
Host ~$ cd libguestfs-1.5.0
Host ~$ less REAME
Host ~$ ./configure --help
Host ~$ ./configure --with-repo=sarge
...
Daemon .............................. yes
Appliance ........................... yes
QEMU ................................ /usr/bin/qemu
OCaml bindings ...................... yes
Perl bindings ....................... yes
Python bindings ..................... yes
Ruby bindings ....................... yes
Java bindings ....................... yes
Haskell bindings .................... yes
virt-inspector ...................... yes
virt-* tools ........................ yes
supermin appliance .................. yes
FUSE filesystem ..................... yes
Host ~$ make
Host ~$ make check
Host ~$ sudo make install

Probleme

make 

...

+ debirf make -n debian
Loading profile 'debian'...
debirf: clearing old debirf root...
debirf: creating debirf root...
I: Retrieving Release
E: unknown location /dists/sarge/Release
make[2]: *** [../initramfs/fakeroot.log] Error 1
make[2]: Leaving directory `/home/ich/source/libguestfs-1.5.0/appliance'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/ich/source/libguestfs-1.5.0'
make: *** [all] Fehler 2


[bearbeiten] Links


<<<|###|>>> http://qemu-buch.de

Von „http://qemu-buch.de/de/index.php?title=QEMU-KVM-Buch/_Managementtools/_libguestfs

Diese Seite wurde bisher 23.393 mal abgerufen. Diese Seite wurde zuletzt am 23. Juli 2010 um 10:51 Uhr geändert. Inhalt ist verfügbar unter der GNU Free Documentation License 1.2.


Finden

Blättern

News

Deutsch
Weitersagen
Tipps für Autoren
Autoren
Impressum


English
Recommendation
The Authors
Contact



Letzte Änderungen


Ändern
Seite bearbeiten
Bearbeitungshilfe
Seitenoptionen
Diskussion
Kommentar hinzufügen
Druckversion
Seitendaten
Versionen
Links auf diese Seite
Änderungen an verlinkten Seiten
Meine Seiten
Anmelden
Spezialseiten
Neue Seiten
Dateiliste
Statistik
Kontakt
Mehr …