Este es el comando virt-inspector que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
virt-inspector: muestra la versión del sistema operativo y otra información sobre un
máquina
SINOPSIS
virt-inspector [--opciones] -d nombre_dominio
virt-inspector [--opciones] -a disk.img [-a disk.img ...]
Viejo estilo:
nombre de dominio de virt-inspector
virt-inspector disco.img [disco.img...]
DESCRIPCIÓN
virt-inspector examina una máquina virtual o una imagen de disco e intenta determinar la versión
del sistema operativo y otra información sobre la máquina virtual.
Virt-inspector genera una salida XML para alimentar a otros programas.
En el uso normal, use "virt-inspector -d domname" donde "domname" es el dominio libvirt
(ver: "lista virsh --todos").
También puede ejecutar virt-inspector directamente en imágenes de disco desde una sola máquina virtual.
Utilice "virt-inspector -a disk.img". En raras ocasiones, un dominio tiene varios dispositivos de bloque, en
cuyo caso debe enumerar varios -a opciones una tras otra, con la primera
correspondiente a la del huésped / Dev / sda, el segundo para el invitado / dev / sdb y así sucesivamente.
También puede ejecutar virt-inspector en discos de instalación, CD en vivo, llaves USB de arranque y similares.
Virt-inspector solo puede inspeccionar e informar one dominio at a time. Para inspeccionar varios
máquinas virtuales, debe ejecutar virt-inspector varias veces (por ejemplo, desde un shell
secuencia de comandos para bucle).
Debido a que virt-inspector necesita acceso directo a las imágenes de los invitados, normalmente no funcionará
conexiones libvirt remotas.
Toda la información disponible de virt-inspector también está disponible a través del core
API de inspección libguestfs (ver "INSPECCIÓN" en invitados(3)). La misma información también puede
ser obtenido usando guestfish o mediante enlaces libguestfs en muchos lenguajes de programación (ver
"OBTENER DATOS DE INSPECCIÓN DE LA API DE LIBGUESTFS").
OPCIONES
--ayuda
Muestra ayuda breve.
-a presentar
--agregar presentar
Añadir el archivo presentar que debería ser una imagen de disco de una máquina virtual. Si la máquina virtual
tiene varios dispositivos de bloque, debe suministrarlos a todos con -a .
El formato de la imagen del disco se detecta automáticamente. Para anular esto y forzar un
formato particular utilice el --format = .. .
-a URI
--agregar URI
Agregue un disco remoto. Consulte "AÑADIR ALMACENAMIENTO REMOTO" en pez invitado(1).
-c URI
--conectar URI
Si usa libvirt, conéctese al dado URI. Si se omite, nos conectamos al
hipervisor libvirt predeterminado.
Libvirt solo se usa si especifica un "nombre de dominio" en la línea de comando. Si especifica
dispositivos de bloqueo de invitados directamente (-a), libvirt no se utiliza en absoluto.
-d invitado
--dominio invitado
Agregue todos los discos del invitado libvirt nombrado. Los UUID de dominio se pueden utilizar en lugar de
Nombres
- teclas de eco
Cuando se solicita claves y frases de contraseña, virt-inspector normalmente desactiva el eco, por lo que
no puede ver lo que está escribiendo. Si no le preocupan los ataques de la tempestad y
no hay nadie más en la sala, puede especificar esta bandera para ver lo que está escribiendo.
--format = raw | qcow2 | ..
--formato
Especifique el formato de las imágenes de disco en la línea de comando. Si esto se omite entonces
el formato se detecta automáticamente a partir del contenido de la imagen del disco.
Si se solicitan imágenes de disco de libvirt, este programa solicita a libvirt esto
información. En este caso, se ignora el valor del parámetro de formato.
Si trabaja con imágenes de disco de invitado de formato sin formato que no sean de confianza, debe asegurarse de que el formato
siempre se especifica.
- llaves-de-stdin
Lea los parámetros de clave o frase de contraseña de stdin. El valor predeterminado es intentar leer
frases de contraseña del usuario abriendo / dev / tty.
-v
--verboso
Habilite los mensajes detallados para la depuración.
-V
--versión
Muestra el número de versión y sale.
-x Habilite el seguimiento de las llamadas a la API de libguestfs.
--xpath pregunta
Realice una consulta XPath en XML en stdin e imprima el resultado en stdout. En esto
mode virt-inspector simplemente ejecuta una consulta XPath; todas las demás funciones de inspección son
discapacitado. Consulte "CONSULTAS XPATH" a continuación para ver algunos ejemplos.
VIEJO ESTILO COMANDO LÍNEA ARGUMENTOS
Las versiones anteriores de virt-inspector le permitían escribir:
virt-inspector disco.img [disco.img...]
or
virt-inspector nombre de invitado
mientras que en esta versión deberías usar -a or -d respectivamente para evitar el caso confuso
donde una imagen de disco puede tener el mismo nombre que un invitado.
Por compatibilidad, el estilo antiguo todavía es compatible.
XML FORMATO
El XML virt-inspector se describe con precisión en un archivo de esquema RELAX NG virt-inspector.rng
que se suministra con libguestfs. Esta sección es solo una descripción general.
El elemento de nivel superior es , y contiene uno o más
elementos. Solo verías más de uno elemento si el virtual
La máquina es de arranque múltiple, lo que es extremadamente raro en las máquinas virtuales del mundo real.
En el etiqueta son varios campos opcionales que describen el funcionamiento
sistema, su arquitectura, la cadena descriptiva "nombre del producto", el tipo de SO, etc.
como en este ejemplo:
/ dev / sda2/ Root>
ventanas
i386
ventanas
Windows 7 Enterprise
Cliente
6
1
/ Windows
instalado
En breve, es la clase de sistema operativo (algo así como "linux" o "windows"),
es la distribución (por ejemplo, "fedora" pero se reconocen muchas otras distribuciones) y
es la arquitectura invitada. Los otros campos se explican por sí mismos, pero
porque estos campos se toman directamente de la API de inspección de libguestfs, puede encontrar
información precisa de "INSPECCIÓN" en invitados(3).
los elemento es el dispositivo del sistema de archivos raíz, pero desde el punto de vista de libguestfs
(los dispositivos de bloque pueden tener nombres completamente diferentes dentro de la propia máquina virtual).
Los invitados similares a * x suelen tener varios sistemas de archivos que se montan en varios
puntos de montaje, y estos se describen en el elemento que se ve así:
...
/
/bota
Al igual que con , los dispositivos son desde el punto de vista de libguestfs y pueden tener
diferentes nombres dentro del huésped. En esta lista solo aparecen los sistemas de archivos montables, no
cosas como intercambiar dispositivos.
es como pero cubre all sistemas de archivos pertenecientes al huésped,
incluyendo particiones de intercambio y vacías. (En el raro caso de un invitado de arranque múltiple, cubre
sistemas de archivos pertenecientes a este sistema operativo o compartidos con este sistema operativo y otros sistemas operativos).
Es posible que vea algo como esto:
...
ext4
Fedora-13-x86_64
<uuid>e6a4db1e-15c2-477b-ac2a-699181c396aa</uuid>
Los elementos opcionales dentro son el tipo de sistema de archivos, la etiqueta y el
UUID.
Los elementos relacionados , y describir
aplicaciones instaladas en la máquina virtual.
, si está presente, describe el sistema de embalaje utilizado. Los valores típicos serían
ser "rpm" y "deb".
, si está presente, describe el administrador de paquetes. Los valores típicos incluyen
"mmm", "up2date" y "apto"
enumera los paquetes o aplicaciones instaladas.
...
coreutils
8.5
1
Es posible que los campos de versión y lanzamiento no estén disponibles para algunos tipos de invitados. Otros campos
son posibles, consulte "guestfs_inspect_list_applications" en invitados(3).
Para sistemas operativos como Windows que usan letras de unidad, virt-inspector puede encontrar
averiguar cómo se asignan las letras de las unidades a los sistemas de archivos.
...
/ dev / sda2
/ dev / sdb1
En el ejemplo anterior, la unidad C se asigna al sistema de archivos en la segunda partición en la primera
disco y la unidad E se asigna al sistema de archivos de la primera partición del segundo disco.
Tenga en cuenta que esto solo cubre las asignaciones permanentes del sistema de archivos local, no cosas como la red
Comparte. Además, es posible que los puntos de montaje de volumen NTFS no se enumeren aquí.
Virt-inspector a veces puede extraer un icono o logotipo para el invitado. El icono es
devuelto como datos PNG codificados en base64. Tenga en cuenta que el icono puede ser muy grande y alto.
calidad.
...
iVBORw0KGgoAAAANSUhEUgAAAGAAAABg [.......]
[... muchas líneas de datos base64 ...]
Para mostrar el icono, debe extraerlo y convertir los datos base64 de nuevo en un binario.
expediente. Use una consulta XPath o simplemente un editor para extraer los datos, luego use las coreutils
base64(1) programa para hacer la conversión de nuevo a un archivo PNG:
base64 -i -d <icon.data> icon.png
INSPECCIONANDO INSTALAR DISCOS, EN VIVO CDs
Virt-inspector puede detectar algunos instaladores de sistemas operativos en discos de instalación, CD en vivo,
llaves USB de arranque y más.
En este caso el La etiqueta contendrá "instalador" y otros campos pueden estar presentes para
indican un CD en vivo, un instalador de red o una parte de un CD de varias partes. Por ejemplo:
/ dev / sda/ Root>
linux
i386
ubuntu
Ubuntu 10.10 "Maverick Meerkat"
10
10
instalador
XPATH CONSULTAS
Virt-inspector incluye soporte integrado para ejecutar consultas XPath. La razón por
incluir soporte XPath directamente en virt-inspector es simplemente que no hay buenos y
programas de línea de comandos ampliamente disponibles que pueden realizar consultas XPath. El único bueno es
xmlestrella(1) y que no está disponible en Red Hat Enterprise Linux.
Para realizar una consulta XPath, use el --xpath opción. Tenga en cuenta que en este modo, virt-inspector
simplemente lee XML de stdin y genera el resultado de la consulta en stdout. Todas las demás inspecciones
las funciones están deshabilitadas en este modo.
Por ejemplo:
$ virt-inspector -d Invitado | virt-inspector --xpath '// sistemas de archivos'
ext4
[...]
$ virt-inspector -d Invitado | \
virt-inspector --xpath "cadena (// sistema de archivos [@dev = '/ dev / sda1'] / type)"
ext4
$ virt-inspector -d Invitado | \
virt-inspector --xpath 'cadena (// icono)' | base64 -i -d | monitor -
[muestra el icono de invitado, si hay uno]
CONSIGUIENDO INSPECCIÓN DATOS DESDE BIBLIOGRAFIAS API
En las primeras versiones de libguestfs, virt-inspector era un gran script Perl que contenía
muchas heurísticas para inspeccionar invitados. Esto tuvo varios problemas: para hacer
inspección de otras herramientas (como guestfish) tuvimos que llamar a este script de Perl; y
privilegiaba a Perl sobre otros lenguajes que soporta libguestfs.
Por libguestfs 1.8 habíamos reescrito el código Perl en C, y lo incorporamos todo en el
API principal de libguestfs (invitados(3)). Ahora virt-inspector es simplemente un programa delgado en C sobre el
API core de C. Toda la información de inspección está disponible en todos los lenguajes de programación.
que admite libguestfs, y de guestfish.
Para obtener una descripción de la API de inspección C, lea "INSPECCIÓN" en invitados(3).
Por ejemplo, código que utiliza la API de inspección C, busque inspeccionar-vm.c que se envía con
libguestfs.
inspeccionar-vm.c también ha sido traducido a otros idiomas. Por ejemplo, inspeccionar_vm.pl is
la traducción de Perl, y hay otras traducciones para OCaml, Python, etc. Consulte "UTILIZAR
LIBGUESTFS CON OTROS IDIOMAS DE PROGRAMACIÓN "en invitados(3) para obtener una lista de páginas de manual que
contienen este código de ejemplo.
CONSIGUIENDO INSPECCIÓN DATOS DESDE PESCADO INVITADO
Si usa el pez invitado -i opción, luego la API de inspección C principal "guestfs_inspect_os" en
invitados(3) se llama. Esto es equivalente al comando guestfish "inspect-os". Usted puede
también llame a este comando guestfish a mano.
"inspect-os" realiza una inspección de la imagen del disco actual y devuelve la lista de
sistemas operativos encontrados. Cada sistema operativo está representado por su dispositivo de sistema de archivos raíz. En el
la mayoría de los casos, este comando no imprime nada (no se encontraron sistemas operativos), o un solo dispositivo raíz,
pero tenga en cuenta que puede imprimir varias líneas si hay varios sistemas operativos o si hay un
instale el CD adjunto al invitado.
$ pez invitado --ro -a F15x32.img
> correr
> inspeccionar-os
/ dev / vg_f15x32 / lv_root
Con el dispositivo raíz, puede obtener más información sobre el invitado:
> inspeccionar-obtener-tipo / dev / vg_f15x32 / lv_root
Linux
> inspeccionar-obtener-distro / dev / vg_f15x32 / lv_root
fedora
> inspeccionar-obtener-versión-principal / dev / vg_f15x32 / lv_root
15
> inspeccionar-obtener-nombre-producto / dev / vg_f15x32 / lv_root
Versión 15 de Fedora (Lovelock)
Las limitaciones de guestfish dificultan la asignación del dispositivo raíz a una variable (ya que
guestfish no tiene variables), por lo que si desea hacer esto de manera reproducible, es mejor
escribir un script utilizando uno de los otros lenguajes que admite la API de libguestfs.
Para enumerar las aplicaciones, primero debe montar los discos:
> inspeccionar-obtener-puntos de montaje / dev / vg_f15x32 / lv_root
/: / dev / vg_f15x32 / lv_root
/bota: / dev / vda1
> mount-ro / dev / vg_f15x32 / lv_root /
> mount-ro / dev / vda1 /bota
y luego llame a la API inspect-list-applications:
> inspeccionar-lista-aplicaciones / dev / vg_f15x32 / lv_root | cabeza -28
[0] = {
nombre_aplicación: ConsoleKit
nombre_visualización_aplicación:
época_aplicación: 0
versión_aplicación: 0.4.5
versión_aplicación: 1.fc15
ruta_instalación_aplicación:
ruta_trans_aplicación:
editor_de_aplicaciones:
aplicación_url:
paquete_origen_aplicaciones:
resumen_aplicación:
descripción_aplicación:
}
[1] = {
nombre_aplicación: ConsoleKit-libs
nombre_visualización_aplicación:
época_aplicación: 0
versión_aplicación: 0.4.5
versión_aplicación: 1.fc15
ruta_instalación_aplicación:
ruta_trans_aplicación:
editor_de_aplicaciones:
aplicación_url:
paquete_origen_aplicaciones:
resumen_aplicación:
descripción_aplicación:
}
Para mostrar un icono para el invitado, tenga en cuenta que los sistemas de archivos también deben montarse como se indicó anteriormente.
Entonces puedes hacer:
> inspeccionar-obtener-icono / dev / vg_f15x32 / lv_root | monitor -
VIEJO VERSIONES OF INSPECTOR VIRT
Como se describió anteriormente, las primeras versiones de libguestfs se enviaban con un inspector virt diferente
programa escrito en Perl (la versión actual está escrita en C). La salida XML de Perl
virt-inspector era diferente y también podía generar en otros formatos como texto.
El antiguo virt-inspector ya no se admite ni se envía con libguestfs.
Para confundir aún más las cosas, en Red Hat Enterprise Linux 6 enviamos dos versiones de virt-
inspector con diferentes nombres:
virt-inspector Versión antigua de Perl.
virt-inspector2 Nueva versión C.
SALIR ESTADO
Este programa devuelve 0 si tiene éxito, o distinto de cero si hubo un error.
Utilice virt-inspector en línea utilizando los servicios de onworks.net