Il s'agit de la commande virt-inspector qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
virt-inspector - Affiche la version du système d'exploitation et d'autres informations sur un
click
SYNOPSIS
virt-inspecteur [--options] -d nom_domaine
virt-inspector [--options] -a disk.img [-a disk.img ...]
À l'ancienne :
nom de domaine virt-inspector
virt-inspecteur disk.img [disk.img ...]
DESCRIPTION
inspecteur-virt examine une machine virtuelle ou une image disque et essaie de déterminer la version
du système d'exploitation et d'autres informations sur la machine virtuelle.
Virt-inspector produit une sortie XML pour alimenter d'autres programmes.
Dans l'utilisation normale, utilisez "virt-inspector -d domname" où "domname" est le domaine libvirt
(voir : "virsh list --all").
Vous pouvez également exécuter virt-inspector directement sur les images disque à partir d'une seule machine virtuelle.
Utilisez "virt-inspector -a disk.img". Dans de rares cas, un domaine a plusieurs périphériques de bloc, dans
auquel cas vous devriez en lister plusieurs -a options l'une après l'autre, avec le premier
correspondant à l'invité / Dev / sda, le second à celui de l'invité / Dev / sdb etc.
Vous pouvez également exécuter virt-inspector sur des disques d'installation, des CD live, des clés USB amorçables et similaires.
Virt-inspector ne peut inspecter et faire rapport que sur UN domaine at a fois. Pour inspecter plusieurs
machines virtuelles, vous devez exécuter virt-inspector plusieurs fois (par exemple, à partir d'un shell
boucle for du script).
Étant donné que virt-inspector a besoin d'un accès direct aux images des invités, il ne fonctionnera normalement pas
connexions libvirt à distance.
Toutes les informations disponibles auprès de virt-inspector sont également disponibles via le core
API d'inspection libguestfs (voir "INSPECTION" dans invités(3)). Les mêmes informations peuvent également
être récupéré en utilisant guestfish ou via les liaisons libguestfs dans de nombreux langages de programmation (voir
« OBTENTION DE DONNÉES D'INSPECTION À PARTIR DE L'API LIBGUESTFS »).
OPTIONS
--Aidez-moi
Afficher une brève aide.
-a filet
--ajouter filet
Ajouter filet qui devrait être une image disque d'une machine virtuelle. Si la machine virtuelle
a plusieurs périphériques de bloc, vous devez tous les fournir avec des -a options.
Le format de l'image disque est détecté automatiquement. Pour outrepasser cela et forcer un
format particulier utiliser le --format=.. option.
-a URI
--ajouter URI
Ajoutez un disque distant. Voir « AJOUT DE STOCKAGE À DISTANCE » dans poisson invité (1).
-c URI
--relier URI
Si vous utilisez libvirt, connectez-vous au URI. S'il est omis, nous nous connectons au
hyperviseur libvirt par défaut.
Libvirt n'est utilisé que si vous spécifiez un "nom de domaine" sur la ligne de commande. Si vous spécifiez
périphériques de bloc d'invité directement (-a), alors libvirt n'est pas du tout utilisé.
-d invité
--domaine invité
Ajoutez tous les disques de l'invité libvirt nommé. Les UUID de domaine peuvent être utilisés à la place de
des noms.
--echo-touches
Lorsqu'il demande des clés et des phrases de passe, virt-inspector désactive normalement l'écho afin que
vous ne pouvez pas voir ce que vous tapez. Si vous ne vous inquiétez pas des attaques Tempest et
il n'y a personne d'autre dans la pièce, vous pouvez spécifier ce drapeau pour voir ce que vous tapez.
--format=brut|qcow2|..
--format
Spécifiez le format des images disque donné sur la ligne de commande. Si cela est omis, alors
le format est détecté automatiquement à partir du contenu de l'image disque.
Si des images disque sont demandées à libvirt, alors ce programme demande à libvirt pour cela
informations. Dans ce cas, la valeur du paramètre format est ignorée.
Si vous travaillez avec des images de disque invité au format brut non fiables, vous devez vous assurer que le format
est toujours spécifié.
--clés-de-stdin
Lisez les paramètres de clé ou de phrase secrète à partir de stdin. La valeur par défaut est d'essayer de lire
mots de passe de l'utilisateur en ouvrant /dev/tty.
-v
--verbeux
Activez les messages détaillés pour le débogage.
-V
--version
Afficher le numéro de version et quitter.
-x Activez le traçage des appels d'API libguestfs.
--xpath question
Effectuez une requête XPath sur le XML sur stdin et imprimez le résultat sur stdout. Dans ce
le mode virt-inspector exécute simplement une requête XPath ; toutes les autres fonctions d'inspection sont
désactivée. Voir "XPATH QUERIES" ci-dessous pour quelques exemples.
A L'ANCIENNE COMMAND LINE ARGUMENTS
Les versions précédentes de virt-inspector vous permettaient d'écrire soit :
virt-inspecteur disk.img [disk.img ...]
or
nom d'invité virt-inspector
alors que dans cette version vous devez utiliser -a or -d respectivement pour éviter le cas confus
où une image disque peut avoir le même nom qu'un invité.
Pour la compatibilité, l'ancien style est toujours pris en charge.
XML Format
Le XML virt-inspector est décrit précisément dans un fichier de schéma RELAX NG inspecteur-virt.rng
qui est fourni avec libguestfs. Cette section n'est qu'un aperçu.
L'élément de niveau supérieur est , et il contient un ou plusieurs
éléments. Tu n'en verrais que plus d'un élément si le virtuel
la machine est multi-boot, ce qui est extrêmement rare dans les machines virtuelles du monde réel.
Dans le tag sont divers champs facultatifs qui décrivent le fonctionnement
système, son architecture, la chaîne descriptive "nom du produit", le type de système d'exploitation et ainsi de suite,
comme dans cet exemple :
/dev/sda2/ Root>
les fenêtres
i386
les fenêtres
Windows 7 Entreprise
Client
6
1
/Les fenêtres
installée
En bref, est la classe du système d'exploitation (quelque chose comme "linux" ou "windows"),
est la distribution (par exemple "fedora" mais de nombreuses autres distributions sont reconnues) et
est l'architecture invitée. Les autres champs sont assez explicites, mais
parce que ces champs sont tirés directement de l'API d'inspection libguestfs, vous pouvez trouver
des informations précises de "INSPECTION" dans invités (3).
Les l'élément est le périphérique du système de fichiers racine, mais du point de vue de libguestfs
(les périphériques de bloc peuvent avoir des noms complètement différents à l'intérieur de la VM elle-même).
Les invités de type Un*x ont généralement plusieurs systèmes de fichiers qui sont montés à divers
points de montage, et ceux-ci sont décrits dans le élément qui ressemble à ceci :
/
/ boot
Comme avec , les périphériques sont du point de vue de libguestfs, et peuvent avoir complètement
différents noms à l'intérieur de l'invité. Seuls les systèmes de fichiers montables apparaissent dans cette liste, pas
des choses comme les périphériques d'échange.
est comme mais couvre tous les systèmes de fichiers appartenant à l'invité,
y compris les partitions swap et vides. (Dans le cas rare d'un invité multi-boot, il couvre
systèmes de fichiers appartenant à ce système d'exploitation ou partagés avec ce système d'exploitation et d'autres systèmes d'exploitation).
Vous pourriez voir quelque chose comme ceci :
poste4
Fedora-13-x86_64
<uuid>e6a4db1e-15c2-477b-ac2a-699181c396aa</uuid>
Les éléments facultatifs dans sont le type de système de fichiers, l'étiquette et le
UUID.
Les éléments liés , et décris
applications installées dans la machine virtuelle.
, s'il est présent, décrit le système d'emballage utilisé. Les valeurs typiques seraient
être "rpm" et "deb".
, s'il est présent, décrit le gestionnaire de packages. Les valeurs typiques incluent
"miam", "up2date" et "apt"
répertorie les packages ou les applications installés.
coreutils
8.5
1
Les champs de version et de version peuvent ne pas être disponibles pour certains types d'invités. Autres domaines
sont possibles, voir "guestfs_inspect_list_applications" dans invités (3).
Pour les systèmes d'exploitation comme Windows qui utilisent des lettres de lecteur, virt-inspector est capable de trouver
comment les lettres de lecteur sont mappées aux systèmes de fichiers.
/dev/sda2
/dev/sdb1
Dans l'exemple ci-dessus, le lecteur C mappe le système de fichiers sur la deuxième partition sur la première
disque et le lecteur E correspond au système de fichiers de la première partition du deuxième disque.
Notez que cela ne couvre que les mappages de système de fichiers locaux permanents, pas des choses comme le réseau
actions. De plus, les points de montage de volume NTFS peuvent ne pas être répertoriés ici.
Virt-inspector est parfois capable d'extraire une icône ou un logo pour l'invité. L'icône est
renvoyé sous forme de données PNG encodées en base64. Notez que l'icône peut être très grande et haute
qualité.
iVBORw0KGgoAAAANSUhEUgAAAGAAAAABg[.......]
[... de nombreuses lignes de données base64 ...]
Pour afficher l'icône, vous devez l'extraire et reconvertir les données base64 en binaire
déposer. Utilisez une requête XPath ou simplement un éditeur pour extraire les données, puis utilisez les coreutils
base64(1) programme pour faire la conversion vers un fichier PNG :
base64 -i -d < icon.data > icon.png
INSPECTION INSTALLER DISQUES, VIVRE CD
Virt-inspector peut détecter certains programmes d'installation du système d'exploitation sur les disques d'installation, les live CD,
clés USB amorçables et plus encore.
Dans ce cas le tag contiendra "installer" et d'autres champs peuvent être présents pour
indiquer un live CD, un programme d'installation réseau ou une partie d'un CD en plusieurs parties. Par exemple:
/dev/sda/ Root>
linux
i386
Ubuntu
Ubuntu 10.10 "Maverick Suricate"
10
10
installateur
XPATH QUERIES
Virt-inspector inclut un support intégré pour l'exécution de requêtes XPath. La raison pour
inclure le support XPath directement dans virt-inspector est simplement qu'il n'y a pas de bon et
programmes de ligne de commande largement disponibles qui peuvent effectuer des requêtes XPath. Le seul bon est
xmlstarlette(1) et qui n'est pas disponible sur Red Hat Enterprise Linux.
Pour effectuer une requête XPath, utilisez le --xpath option. Notez que dans ce mode, virt-inspector
lit simplement XML à partir de stdin et affiche le résultat de la requête sur stdout. Toutes les autres inspections
les fonctionnalités sont désactivées dans ce mode.
Par exemple :
$ virt-inspector -d Invité | virt-inspector --xpath '//filesystems'
poste4
[...]
$ virt-inspector -d Invité | \
virt-inspector --xpath "string(//filesystem[@dev='/dev/sda1']/type)"
ext4
$ virt-inspector -d Invité | \
virt-inspector --xpath 'string(//icon)' | base64 -i -d | affichage -
[affiche l'icône d'invité, s'il y en a une]
OBTENIR INSPECTION DONNEES De L' LIBGUESTFS API
Dans les premières versions de libguestfs, virt-inspector était un gros script Perl qui contenait
de nombreuses heuristiques pour inspecter les invités. Cela posait plusieurs problèmes : pour faire
l'inspection à partir d'autres outils (comme guestfish) que nous avons dû appeler ce script Perl ; et
il privilégiait Perl par rapport aux autres langages pris en charge par libguestfs.
Avec libguestfs 1.8, nous avions réécrit le code Perl en C, et tout incorporé dans le
API de base de libguestfs (invités(3)). Maintenant virt-inspector est simplement un programme C léger sur le
API C de base. Toutes les informations d'inspection sont disponibles dans tous les langages de programmation
que libguestfs prend en charge, et de guestfish.
Pour une description de l'API d'inspection C, lisez « INSPECTION » dans invités (3).
Pour un exemple de code utilisant l'API d'inspection C, recherchez inspecter-vm.c qui expédie avec
libguestfs.
inspecter-vm.c a également été traduit dans d'autres langues. Par exemple, inspect_vm.pl is
la traduction Perl, et il existe d'autres traductions pour OCaml, Python, etc. Voir "UTILISATION
LIBGUESTFS AVEC D'AUTRES LANGUES DE PROGRAMMATION" dans invités(3) pour une liste de pages de manuel qui
contiennent cet exemple de code.
OBTENIR INSPECTION DONNEES De POISSON INVITÉ
Si vous utilisez le guestfish -i option, puis l'API d'inspection C principale "guestfs_inspect_os" dans
invités(3) est appelé. C'est l'équivalent de la commande guestfish "inspect-os". Vous pouvez
appelez également cette commande guestfish à la main.
"inspect-os" effectue une inspection sur l'image disque actuelle, renvoyant la liste des
systèmes d'exploitation trouvés. Chaque système d'exploitation est représenté par son périphérique de système de fichiers racine. Dans le
dans la majorité des cas, cette commande n'affiche rien (aucun système d'exploitation trouvé), ou un seul périphérique racine,
mais attention il peut imprimer plusieurs lignes s'il y a plusieurs OS ou s'il y a un
CD d'installation attaché à l'invité.
$ poisson invité --ro -a F15x32.img
> Cours
> inspecter-os
/dev/vg_f15x32/lv_root
À l'aide du périphérique racine, vous pouvez récupérer des informations supplémentaires sur l'invité :
> inspecter-get-type /dev/vg_f15x32/lv_root
linux
> inspect-get-distro /dev/vg_f15x32/lv_root
feutre
> inspect-get-major-version /dev/vg_f15x32/lv_root
15
> inspect-get-product-name /dev/vg_f15x32/lv_root
Fedora version 15 (Lovelock)
Les limitations de guestfish rendent difficile l'affectation du périphérique racine à une variable (puisque
guestfish n'a pas de variables), donc si vous voulez le faire de manière reproductible, vous êtes meilleur
en écrivant un script en utilisant l'un des autres langages pris en charge par l'API libguestfs.
Pour lister les applications, vous devez d'abord monter les disques :
> 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
puis appelez l'API inspect-list-applications :
> inspect-list-applications /dev/vg_f15x32/lv_root | tête -28
[0] = {
nom_application : ConsoleKit
app_display_name :
app_epoch : 0
version_application : 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
version_application : 0.4.5
app_release : 1.fc15
app_install_path :
app_trans_path :
app_publisher :
app_url :
app_source_package :
app_summary :
app_description :
}
Pour afficher une icône pour l'invité, notez que les systèmes de fichiers doivent également être montés comme ci-dessus.
Vous pouvez alors faire :
> inspect-get-icon /dev/vg_f15x32/lv_root | affichage -
VIEUX VERSIONS OF VIRT-INSPECTEUR
Comme décrit ci-dessus, les premières versions de libguestfs étaient livrées avec un autre virt-inspector
programme écrit en Perl (la version actuelle est écrite en C). La sortie XML de Perl
virt-inspector était différent et il pouvait également sortir dans d'autres formats comme du texte.
L'ancien virt-inspector n'est plus pris en charge ni fourni avec libguestfs.
Pour compliquer davantage les choses, dans Red Hat Enterprise Linux 6, nous livrons deux versions de virt-
inspecteur avec des noms différents :
virt-inspector Ancienne version de Perl.
virt-inspector2 Nouvelle version C.
EXIT STATUT
Ce programme renvoie 0 en cas de succès, ou différent de zéro en cas d'erreur.
Utilisez virt-inspector en ligne en utilisant les services onworks.net