Dies ist der Befehl virt-inspector, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
virt-inspector – Zeigt die Betriebssystemversion und andere Informationen zu einem virtuellen an
Maschine
ZUSAMMENFASSUNG
virt-inspector [--options] -d Domname
virt-inspector [--options] -a disk.img [-a disk.img ...]
Alter Stil:
virt-inspector domname
virt-inspector disk.img [disk.img ...]
BESCHREIBUNG
Virt-Inspektor untersucht eine virtuelle Maschine oder ein Festplatten-Image und versucht, die Version zu ermitteln
des Betriebssystems und weitere Informationen über die virtuelle Maschine.
Virt-inspector erzeugt eine XML-Ausgabe zur Einspeisung in andere Programme.
Im normalen Gebrauch verwenden Sie „virt-inspector -d domname“, wobei „domname“ die libvirt-Domäne ist
(siehe: „virsh list --all“).
Sie können virt-inspector auch direkt auf Festplatten-Images einer einzelnen virtuellen Maschine ausführen.
Verwenden Sie „virt-inspector -a disk.img“. In seltenen Fällen verfügt eine Domain über mehrere Blockgeräte, z
In diesem Fall sollten Sie mehrere auflisten -a Optionen nacheinander, mit der ersten
entsprechend dem des Gastes / Dev / sda, der zweite dem Gast / dev / sdb und so weiter.
Sie können virt-inspector auch auf Installationsdisketten, Live-CDs, bootfähigen USB-Sticks und Ähnlichem ausführen.
Virt-Inspektor kann nur inspizieren und darüber Bericht erstatten dank One Domain at a Zeit. Mehrere zu inspizieren
Für virtuelle Maschinen müssen Sie virt-inspector mehrmals ausführen (z. B. von einer Shell aus).
Skript for-Schleife).
Da Virt-Inspector direkten Zugriff auf Gastbilder benötigt, funktioniert es normalerweise nicht
Remote-Libvirt-Verbindungen.
Alle von virt-inspector verfügbaren Informationen sind auch über den Kern verfügbar
libguestfs-Inspektions-API (siehe „INSPEKTION“ in Gastfs(3)). Die gleichen Informationen können auch
kann mit Guestfish oder über libguestfs-Bindungen in vielen Programmiersprachen abgerufen werden (siehe
„INSPEKTIONSDATEN VON DER LIBGUESTFS-API ERHALTEN“).
OPTIONAL
--help
Kurze Hilfe anzeigen.
-a Datei
--hinzufügen Datei
Speichern Datei Dies sollte ein Disk-Image von einer virtuellen Maschine sein. Wenn die virtuelle Maschine
mehrere Blockgeräte hat, müssen Sie alle mit separaten versorgen -a Optionen.
Das Format des Disk-Images wird automatisch erkannt. Um dies zu überschreiben und a . zu erzwingen
bestimmtes Format verwenden --format=.. .
-a URI
--hinzufügen URI
Fügen Sie eine Remote-Festplatte hinzu. Siehe "FERNSPEICHER HINZUFÜGEN" in Gastfisch(1).
-c URI
--verbinden URI
Wenn Sie libvirt verwenden, verbinden Sie sich mit dem angegebenen URI. Wenn weggelassen, dann verbinden wir uns mit dem
Standard-Libvirt-Hypervisor.
Libvirt wird nur verwendet, wenn Sie in der Befehlszeile einen „Domnamen“ angeben. Wenn Sie angeben
Gastblockgeräte direkt (-a), dann wird libvirt überhaupt nicht verwendet.
-d Gast
--Domain Gast
Fügen Sie alle Festplatten des benannten libvirt-Gasts hinzu. Domänen-UUIDs können anstelle von verwendet werden
Namen.
--echo-Tasten
Bei der Aufforderung zur Eingabe von Schlüsseln und Passphrasen schaltet Virt-Inspector das Echo normalerweise aus
Sie können nicht sehen, was Sie eingeben. Wenn Sie sich keine Sorgen über Sturmangriffe machen und
Wenn sich sonst niemand im Raum befindet, können Sie dieses Flag angeben, um zu sehen, was Sie eingeben.
--format=raw|qcow2|..
--Format
Geben Sie das Format der Disk-Images in der Befehlszeile an. Wenn dies weggelassen wird, dann
das Format wird automatisch aus dem Inhalt des Disk-Images erkannt.
Wenn Disk-Images von libvirt angefordert werden, dann fragt dieses Programm libvirt danach
Information. In diesem Fall wird der Wert des Formatparameters ignoriert.
Wenn Sie mit nicht vertrauenswürdigen Gast-Festplattenimages im Rohformat arbeiten, sollten Sie das Format sicherstellen
ist immer angegeben.
--keys-from-stdin
Schlüssel- oder Passphrasenparameter aus stdin lesen. Standardmäßig wird versucht zu lesen
Passphrasen vom Benutzer durch Öffnen /dev/tty.
-v
- ausführlich
Aktivieren Sie ausführliche Nachrichten zum Debuggen.
-V
--Version
Versionsnummer anzeigen und beenden.
-x Aktivieren Sie die Ablaufverfolgung von libguestfs-API-Aufrufen.
--xpath query
Führen Sie eine XPath-Abfrage für das XML auf stdin durch und geben Sie das Ergebnis auf stdout aus. In diesem
mode virt-inspector führt einfach eine XPath-Abfrage aus; alle anderen Inspektionsfunktionen sind
deaktiviert. Einige Beispiele finden Sie weiter unten unter „XPATH-ABFRAGEN“.
ALTER STIL COMMAND LINE ARGUMENTE
In früheren Versionen von virt-inspector konnten Sie Folgendes schreiben:
virt-inspector disk.img [disk.img ...]
or
virt-inspector Gastname
während Sie in dieser Version verwenden sollten -a or -d bzw. um den verwirrenden Fall zu vermeiden
wobei ein Disk-Image den gleichen Namen wie ein Gast haben kann.
Aus Kompatibilitätsgründen wird der alte Stil weiterhin unterstützt.
XML FORMAT
Das Virt-Inspector-XML ist in einer RELAX NG-Schemadatei genau beschrieben virt-inspector.rng
welches mit libguestfs geliefert wird. Dieser Abschnitt ist nur eine Übersicht.
Das oberste Element ist , und es enthält eine oder mehrere
Elemente. Sie würden nur mehr als eine sehen Element, wenn das virtuelle
Die Maschine ist Multi-Boot, was bei realen VMs verschwindend selten vorkommt.
Im Tag sind verschiedene optionale Felder, die den Betrieb beschreiben
System, seine Architektur, die beschreibende Zeichenfolge „Produktname“, der Typ des Betriebssystems usw.
wie in diesem Beispiel:
/dev/sda2/ Root>
Fenster
i386
Fenster
Windows 7 Enterprise
Klient
6
1
/Windows
Eingerichtet
In Kürze, ist die Klasse des Betriebssystems (so etwas wie „Linux“ oder „Windows“),
ist die Distribution (z. B. „Fedora“, aber viele andere Distributionen werden erkannt) und
ist die Gastarchitektur. Die anderen Felder sind ziemlich selbsterklärend, aber
weil diese Felder direkt von der libguestfs-Inspektions-API übernommen werden, die Sie finden können
Genaue Informationen aus „INSPEKTION“ in Gastfs(3).
Der Das Element ist das Root-Dateisystemgerät, jedoch aus der Sicht von libguestfs
(Blockgeräte können innerhalb der VM selbst völlig unterschiedliche Namen haben).
Un*x-ähnliche Gäste verfügen normalerweise über mehrere Dateisysteme, die an verschiedenen Orten gemountet sind
Mountpoints, und diese werden im beschrieben Element, das so aussieht:
...
/
/ boot
Wie mit , Geräte sind aus Sicht von libguestfs und können vollständig sein
verschiedene Namen innerhalb des Gastes. In dieser Liste werden nur mountbare Dateisysteme angezeigt, nicht
Dinge wie Gerätetausch.
ist wie aber deckt ab alle Dateisysteme des Gastes,
einschließlich Swap- und leerer Partitionen. (Im seltenen Fall eines Multi-Boot-Gasts ist dies der Fall
Dateisysteme, die zu diesem Betriebssystem gehören oder mit diesem Betriebssystem und anderen Betriebssystemen geteilt werden).
Möglicherweise sehen Sie so etwas:
...
ext4
Fedora-13-x86_64
<uuid>e6a4db1e-15c2-477b-ac2a-699181c396aa</uuid>
Die optionalen Elemente darin sind der Dateisystemtyp, die Bezeichnung und die
UUID.
Die zugehörigen Elemente , Und beschreiben
Anwendungen, die in der virtuellen Maschine installiert sind.
, falls vorhanden, beschreibt das verwendete Verpackungssystem. Typische Werte wären
seien „rpm“ und „deb“.
, falls vorhanden, beschreibt den Paketmanager. Typische Werte sind:
„lecker“, „up2date“ und „apt“
listet die installierten Pakete oder Anwendungen auf.
...
coreutils
8.5
1
Die Felder „Version“ und „Release“ sind für einige Gasttypen möglicherweise nicht verfügbar. Andere Felder
sind möglich, siehe „guestfs_inspect_list_applications“ in Gastfs(3).
Für Betriebssysteme wie Windows, die Laufwerksbuchstaben verwenden, kann virt-inspector dies finden
Finden Sie heraus, wie Laufwerksbuchstaben Dateisystemen zugeordnet werden.
...
/dev/sda2
/dev/sdb1
Im obigen Beispiel wird Laufwerk C dem Dateisystem auf der zweiten Partition der ersten zugeordnet
Festplatte und Laufwerk E wird dem Dateisystem auf der ersten Partition auf der zweiten Festplatte zugeordnet.
Beachten Sie, dass dies nur permanente lokale Dateisystemzuordnungen betrifft, nicht Dinge wie das Netzwerk
Anteile. Darüber hinaus werden NTFS-Volume-Mount-Punkte hier möglicherweise nicht aufgeführt.
Virt-Inspector ist manchmal in der Lage, ein Symbol oder Logo für den Gast zu extrahieren. Das Symbol ist
werden als Base64-kodierte PNG-Daten zurückgegeben. Beachten Sie, dass das Symbol sehr groß und hoch sein kann
Qualität.
...
iVBORw0KGgoAAAANSUhEUgAAAGAAAABg[.......]
[... viele Zeilen mit Base64-Daten ...]
Um das Symbol anzuzeigen, müssen Sie es extrahieren und die Base64-Daten zurück in eine Binärdatei konvertieren
Datei. Verwenden Sie eine XPath-Abfrage oder einfach einen Editor, um die Daten zu extrahieren, und verwenden Sie dann die Coreutils
base64(1) Programm zur Konvertierung zurück in eine PNG-Datei:
base64 -i -d <icon.data > icon.png
INSPEKTION INSTALLIEREN SCHEIBEN, LIVE CDs
Virt-Inspector kann einige Betriebssystem-Installationsprogramme auf Installationsdisketten, Live-CDs usw. erkennen.
bootfähige USB-Sticks und mehr.
In diesem Fall die Das Tag enthält „Installer“ und es können weitere Felder vorhanden sein
Geben Sie eine Live-CD, ein Netzwerkinstallationsprogramm oder einen Teil einer mehrteiligen CD an. Zum Beispiel:
/dev/sda/ Root>
Linux
i386
Ubuntu
Ubuntu 10.10 „Maverick Meerkat“
10
10
Installateur
XPATH FRAGEN
Virt-inspector bietet integrierte Unterstützung für die Ausführung von XPath-Abfragen. Der Grund für
Das Einbeziehen der XPath-Unterstützung direkt in Virt-Inspector bedeutet einfach, dass es keine guten und gibt
Weit verbreitete Befehlszeilenprogramme, die XPath-Abfragen durchführen können. Das einzig Gute ist
xmlstarlet(1) und das ist unter Red Hat Enterprise Linux nicht verfügbar.
Um eine XPath-Abfrage durchzuführen, verwenden Sie die --xpath Möglichkeit. Beachten Sie, dass in diesem Modus virt-inspector
Liest einfach XML von stdin und gibt das Abfrageergebnis auf stdout aus. Alle anderen Inspektionen
Funktionen sind in diesem Modus deaktiviert.
Beispielsweise:
$ virt-inspector -d Gast | virt-inspector --xpath '//filesystems'
ext4
[...]
$ virt-inspector -d Gast | \
virt-inspector --xpath "string(//filesystem[@dev='/dev/sda1']/type)"
ext4
$ virt-inspector -d Gast | \
virt-inspector --xpath 'string(//icon)' | base64 -i -d | Anzeige -
[zeigt das Gastsymbol an, falls vorhanden]
BEKOMMEN PRÜFUNG DATEN AB LIBGUESTFS API
In frühen Versionen von libguestfs war virt-inspector ein großes Perl-Skript, das Folgendes enthielt:
viele Heuristiken zur Inspektion von Gästen. Dies hatte mehrere Probleme: um zu tun
Inspektion durch andere Tools (wie Guestfish) mussten wir auf dieses Perl-Skript zurückgreifen; Und
Es privilegierte Perl gegenüber anderen Sprachen, die libguestfs unterstützt.
Mit libguestfs 1.8 hatten wir den Perl-Code in C umgeschrieben und alles in die integriert
Kern der libguestfs-API (Gastfs(3)). Jetzt ist Virt-Inspector einfach ein dünnes C-Programm über dem
Kern-C-API. Sämtliche Inspektionsinformationen sind in allen Programmiersprachen verfügbar
das libguestfs unterstützt, und von Guestfish.
Eine Beschreibung der C-Inspektions-API finden Sie unter „INSPECTION“. Gastfs(3).
Suchen Sie beispielsweise nach Code, der die C-Inspektions-API verwendet inspect-vm.c was im Lieferumfang enthalten ist
libguestfs.
inspect-vm.c wurde auch in andere Sprachen übersetzt. Zum Beispiel, inspect_vm.pl is
die Perl-Übersetzung, und es gibt andere Übersetzungen für OCaml, Python usw. Siehe „USING
LIBGUESTFS MIT ANDEREN PROGRAMMIERSPRACHEN" in Gastfs(3) für eine Liste der Manpages, die
enthalten diesen Beispielcode.
BEKOMMEN PRÜFUNG DATEN AB GÄSTEFISCH
Wenn Sie den Gastfisch verwenden -i Option, dann die Haupt-C-Inspektions-API „guestfs_inspect_os“ in
Gastfs(3) heißt. Dies entspricht dem Guestfish-Befehl „inspect-os“. Du kannst
Rufen Sie diesen Guestfish-Befehl auch manuell auf.
„inspect-os“ führt eine Überprüfung des aktuellen Disk-Images durch und gibt die Liste zurück
Betriebssysteme gefunden. Jedes Betriebssystem wird durch sein Root-Dateisystemgerät repräsentiert. Im
In den meisten Fällen gibt dieser Befehl nichts aus (keine Betriebssysteme gefunden) oder ein einzelnes Root-Gerät.
Beachten Sie jedoch, dass mehrere Zeilen gedruckt werden können, wenn mehrere Betriebssysteme vorhanden sind oder eins vorhanden ist
Installieren Sie die dem Gast beigefügte CD.
$ Guestfish --ro -a F15x32.img
> laufen
> inspect-os
/dev/vg_f15x32/lv_root
Über das Root-Gerät können Sie weitere Informationen zum Gast abrufen:
> inspect-get-type /dev/vg_f15x32/lv_root
linux
> inspect-get-distro /dev/vg_f15x32/lv_root
Fedora
> inspect-get-major-version /dev/vg_f15x32/lv_root
15
> inspect-get-product-name /dev/vg_f15x32/lv_root
Fedora-Version 15 (Lovelock)
Einschränkungen von Guestfish machen es schwierig, das Root-Gerät einer Variablen zuzuweisen (da
Guestfish hat keine Variablen. Wenn Sie dies also reproduzierbar machen möchten, sind Sie besser dran
Es lohnt sich, ein Skript mit einer der anderen Sprachen zu schreiben, die von der libguestfs-API unterstützt werden.
Um Anwendungen aufzulisten, müssen Sie zunächst die Festplatten mounten:
> inspect-get-mountpoints /dev/vg_f15x32/lv_root
/: /dev/vg_f15x32/lv_root
/ boot: /dev/vda1
> mount-ro /dev/vg_f15x32/lv_root /
> mount-ro /dev/vda1 / boot
und rufen Sie dann die API „inspect-list-applications“ auf:
> inspect-list-applications /dev/vg_f15x32/lv_root | Kopf -28
[0] = {
App-Name: ConsoleKit
app_display_name:
app_epoch: 0
app_version: 0.4.5
app_release: 1.fc15
app_install_path:
app_trans_path:
app_publisher:
app_url:
app_source_package:
app_summary:
app_description:
}
[1] = {
app_name: ConsoleKit-libs
app_display_name:
app_epoch: 0
app_version: 0.4.5
app_release: 1.fc15
app_install_path:
app_trans_path:
app_publisher:
app_url:
app_source_package:
app_summary:
app_description:
}
Um ein Symbol für den Gast anzuzeigen, beachten Sie, dass auch Dateisysteme wie oben gemountet werden müssen.
Sie können dann Folgendes tun:
> inspect-get-icon /dev/vg_f15x32/lv_root | Anzeige -
OLD VERSIONEN OF VIRT-INSPEKTOR
Wie oben beschrieben, wurden frühe Versionen von libguestfs mit einem anderen Virt-Inspector ausgeliefert
Programm geschrieben in Perl (die aktuelle Version ist in C geschrieben). Die XML-Ausgabe von Perl
Virt-Inspector war anders und konnte auch in anderen Formaten wie Text ausgeben.
Der alte Virt-Inspector wird nicht mehr unterstützt oder mit libguestfs ausgeliefert.
Um die Sache noch weiter zu verwirren, liefern wir in Red Hat Enterprise Linux 6 zwei Versionen der virtuellen Version aus.
Inspektor mit verschiedenen Namen:
virt-inspector Alte Perl-Version.
virt-inspector2 Neue C-Version.
EXIT STATUS
Dieses Programm gibt 0 zurück, wenn es erfolgreich ist, oder ungleich Null, wenn ein Fehler aufgetreten ist.
Nutzen Sie virt-inspector online über die Dienste von onworks.net