Ito ang command virt-inspector na maaaring patakbuhin sa OnWorks na libreng hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator
PROGRAMA:
NAME
virt-inspector - Ipakita ang bersyon ng operating system at iba pang impormasyon tungkol sa isang virtual
makina
SINOPSIS
virt-inspector [--options] -d domname
virt-inspector [--options] -a disk.img [-a disk.img ...]
Lumang istilo:
virt-inspector domname
virt-inspector disk.img [disk.img ...]
DESCRIPTION
virt-inspector sinusuri ang isang virtual machine o disk image at sinusubukang tukuyin ang bersyon
ng operating system at iba pang impormasyon tungkol sa virtual machine.
Ang Virt-inspector ay gumagawa ng XML output para sa pagpapakain sa iba pang mga programa.
Sa normal na paggamit, gamitin ang "virt-inspector -d domname" kung saan ang "domname" ay ang libvirt domain
(tingnan ang: "virsh list --lahat").
Maaari ka ring magpatakbo ng virt-inspector nang direkta sa mga imahe ng disk mula sa isang virtual machine.
Gamitin ang "virt-inspector -a disk.img". Sa mga bihirang kaso, ang isang domain ay may ilang block device, sa
aling kaso dapat mong ilista ang ilan -a mga pagpipilian sa isa't isa, kasama ang una
naaayon sa panauhin / Dev / sda, ang pangalawa sa panauhin / dev / sdb at iba pa.
Maaari ka ring magpatakbo ng virt-inspector sa mga install disk, live CD, bootable USB key at katulad nito.
Ang Virt-inspector ay maaari lamang mag-inspeksyon at mag-ulat isa domain at a oras. Upang siyasatin ang ilan
virtual machine, kailangan mong patakbuhin ang virt-inspector nang maraming beses (halimbawa, mula sa isang shell
script para sa loop).
Dahil kailangan ng virt-inspector ng direktang pag-access sa mga larawan ng bisita, hindi ito karaniwang gagana
mga malayuang koneksyon sa libvirt.
Ang lahat ng impormasyong makukuha mula sa virt-inspector ay makukuha rin sa pamamagitan ng core
libguestfs inspection API (tingnan ang "INSPECTION" sa guestfs(3)). Ang parehong impormasyon ay maaari ding
makuha gamit ang guestfish o sa pamamagitan ng libguestfs bindings sa maraming programming language (tingnan ang
"PAGKUHA NG DATA NG INSPEKSYON MULA SA LIBGUESTFS API").
Opsyon
- Tumulong
Magpakita ng maikling tulong.
-a file
--idagdag file
Idagdag file na dapat ay isang disk image mula sa isang virtual machine. Kung ang virtual machine
ay may maramihang block device, dapat mong ibigay ang lahat ng mga ito ng hiwalay -a mga pagpipilian.
Ang format ng disk image ay awtomatikong natukoy. Upang i-override ito at pilitin a
partikular na format gamitin ang --format=.. pagpipilian.
-a URI
--idagdag URI
Magdagdag ng remote na disk. Tingnan ang "NAGDAGDAG NG REMOTE STORAGE" sa guestfishNa (1).
-c URI
--kunekta URI
Kung gumagamit ng libvirt, kumonekta sa ibinigay URI. Kung aalisin, pagkatapos ay kumonekta kami sa
default na libvirt hypervisor.
Ginagamit lang ang Libvirt kung tumukoy ka ng "domname" sa command line. Kung tinukoy mo
nang direkta sa pag-block ng mga device (-a), pagkatapos ay hindi ginagamit ang libvirt.
-d bisita
--domain bisita
Idagdag ang lahat ng mga disk mula sa pinangalanang bisitang libvirt. Ang mga UUID ng domain ay maaaring gamitin sa halip na
mga pangalan.
--echo-keys
Kapag nag-prompt para sa mga susi at passphrase, karaniwang pinapatay ng virt-inspector ang pag-echo
hindi mo makita kung ano ang iyong tina-type. Kung hindi ka nag-aalala tungkol sa pag-atake ng Tempest at
walang ibang tao sa silid na maaari mong tukuyin ang flag na ito upang makita kung ano ang iyong tina-type.
--format=raw|qcow2|..
--format
Tukuyin ang format ng mga imahe ng disk na ibinigay sa command line. Kung ito ay aalisin pagkatapos
ang format ay autodetected mula sa nilalaman ng disk image.
Kung ang mga imahe ng disk ay hiniling mula sa libvirt, ang program na ito ay humihingi ng libvirt para dito
impormasyon. Sa kasong ito, binabalewala ang halaga ng parameter ng format.
Kung nagtatrabaho sa hindi pinagkakatiwalaang raw-format na mga imahe ng guest disk, dapat mong tiyakin ang format
ay palaging tinukoy.
--keys-from-stdin
Basahin ang mga parameter ng key o passphrase mula sa stdin. Ang default ay subukang basahin
mga passphrase mula sa user sa pamamagitan ng pagbubukas /dev/tty.
-v
--verbose
Paganahin ang mga verbose na mensahe para sa pag-debug.
-V
--bersyon
Ipakita ang numero ng bersyon at lumabas.
-x Paganahin ang pagsubaybay sa mga libguestfs API na tawag.
--xpath tanong
Magsagawa ng XPath query sa XML sa stdin, at i-print ang resulta sa stdout. Dito sa
ang mode na virt-inspector ay nagpapatakbo lamang ng isang query sa XPath; lahat ng iba pang mga function ng inspeksyon ay
may kapansanan. Tingnan ang "XPATH QUERIES" sa ibaba para sa ilang halimbawa.
LUMANG ESTILO COMMAND LINE MGA PANGANGATWIRANG
Pinayagan ka ng mga nakaraang bersyon ng virt-inspector na magsulat ng alinman sa:
virt-inspector disk.img [disk.img ...]
or
virt-inspector guestname
samantalang sa bersyong ito dapat mong gamitin -a or -d ayon sa pagkakasunod upang maiwasan ang nakakalito na kaso
kung saan ang isang disk image ay maaaring may parehong pangalan bilang isang bisita.
Para sa pagiging tugma, sinusuportahan pa rin ang lumang istilo.
XML FORMAT
Ang birt-inspector XML ay eksaktong inilarawan sa isang RELAX NG schema file virt-inspector.rng
na binibigyan ng libguestfs. Ang seksyong ito ay isang pangkalahatang-ideya lamang.
Ang pinakamataas na antas ng elemento ay , at naglalaman ito ng isa o higit pa
mga elemento. Makakakita ka lang ng higit sa isa elemento kung ang virtual
machine ay multi-boot, na kung saan ay nawawalang bihira sa totoong mundo VMs.
Nasa Ang tag ay iba't ibang opsyonal na field na naglalarawan sa pagpapatakbo
system, arkitektura nito, ang naglalarawang "pangalan ng produkto" na string, ang uri ng OS at iba pa,
tulad ng sa halimbawang ito:
/dev/sda2/ ugat>
mga bintana
i386
mga bintana
Windows 7 Enterprise
Kliyente
6
1
/Windows
naka-install
Sa madaling sabi, ay ang klase ng operating system (tulad ng "linux" o "windows"),
ay ang pamamahagi (hal. "fedora" ngunit marami pang ibang distro ang kinikilala) at
ay ang arkitektura ng panauhin. Ang iba pang mga patlang ay medyo maliwanag, ngunit
dahil ang mga field na ito ay direktang kinuha mula sa libguestfs inspection API na mahahanap mo
tumpak na impormasyon mula sa "INSPECTION" sa guestfsNa (3).
Ang Ang elemento ay ang root filesystem device, ngunit mula sa punto ng view ng libguestfs
(maaaring magkaroon ng ganap na magkakaibang mga pangalan ang mga block device sa loob mismo ng VM).
Ang mga hindi*x-like na mga bisita ay karaniwang mayroong maraming filesystem na naka-mount sa iba't-ibang
mountpoints, at ang mga ito ay inilalarawan sa elemento na ganito ang hitsura:
...
/
/ boot
Tulad ng sa , ang mga device ay mula sa punto ng view ng libguestfs, at maaaring may ganap
iba't ibang pangalan sa loob ng bisita. Ang mga mountable filesystem lang ang lalabas sa listahang ito, hindi
mga bagay tulad ng swap device.
ay tulad ng ngunit sumasakop lahat mga filesystem na pagmamay-ari ng bisita,
kabilang ang swap at walang laman na mga partisyon. (Sa bihirang kaso ng isang multi-boot na bisita, sinasaklaw nito
mga filesystem na kabilang sa OS na ito o ibinahagi sa OS na ito at iba pang mga OS).
Maaari kang makakita ng ganito:
...
ext4
Fedora-13-x86_64
<uuid>e6a4db1e-15c2-477b-ac2a-699181c396aa</uuid>
Ang mga opsyonal na elemento sa loob ay ang uri ng filesystem, ang label, at ang
UUID.
Ang mga kaugnay na elemento , at ilarawan
mga application na naka-install sa virtual machine.
, kung mayroon, ay naglalarawan sa sistema ng packaging na ginamit. Ang mga karaniwang halaga ay gagawin
maging "rpm" at "deb".
, kung naroroon, ay naglalarawan sa manager ng package. Kasama sa mga karaniwang halaga
"yum", "up2date" at "apt"
naglilista ng mga package o application na naka-install.
...
coreutils
8.5
1
Maaaring hindi available ang bersyon at release field para sa ilang uri ng mga bisita. Iba pang mga patlang
ay posible, tingnan ang "guestfs_inspect_list_applications" sa guestfsNa (3).
Para sa mga operating system tulad ng Windows na gumagamit ng mga drive letter, mahahanap ng virt-inspector
out kung paano magmaneho ng mga titik sa mga filesystem.
...
/dev/sda2
/dev/sdb1
Sa halimbawa sa itaas, magmaneho ng mga mapa ng C sa filesystem sa pangalawang partisyon sa una
disk, at drive E mapa sa filesystem sa unang partition sa pangalawang disk.
Tandaan na sinasaklaw lang nito ang mga permanenteng lokal na filesystem mapping, hindi ang mga bagay tulad ng network
pagbabahagi. Higit pa rito, maaaring hindi nakalista dito ang mga volume mount point ng NTFS.
Minsan nakakapag-extract ng icon o logo ang Virt-inspector para sa bisita. Ang icon ay
ibinalik bilang base64-encoded PNG data. Tandaan na ang icon ay maaaring napakalaki at mataas
kalidad.
...
iVBORw0KGgoAAAANSUhEUgAAAAGAAAABg[.......]
[... maraming linya ng base64 data ...]
Upang ipakita ang icon, kailangan mong kunin ito at i-convert ang base64 data pabalik sa isang binary
file. Gumamit ng XPath query o simpleng editor para kunin ang data, pagkatapos ay gamitin ang coreutils
base64(1) programa upang gawin ang conversion pabalik sa isang PNG file:
base64 -i -d < icon.data > icon.png
INSPECTING INSTALL DISK, LIVE CD
Maaaring makita ng Virt-inspector ang ilang installer ng operating system sa mga install disk, live CD,
bootable USB key at higit pa.
Sa kasong ito ang Maglalaman ang tag ng "installer" at maaaring naroroon ang iba pang mga field
ipahiwatig ang isang live na CD, network installer, o isang bahagi ng isang multipart CD. Halimbawa:
/dev/sda/ ugat>
linux
i386
ubuntu
Ubuntu 10.10 "Maverick Meerkat"
10
10
installer
XPATH MGA TANONG
Kasama sa Virt-inspector ang built in na suporta para sa pagpapatakbo ng mga query sa XPath. Ang dahilan para sa
kabilang ang XPath suporta nang direkta sa virt-inspector ay lamang na walang mabuti at
malawak na magagamit na mga programa ng command line na maaaring gumawa ng mga query sa XPath. Ang tanging mabuti ay
xmlstarlet(1) at hindi iyon available sa Red Hat Enterprise Linux.
Upang magsagawa ng query sa XPath, gamitin ang --xpath opsyon. Tandaan na sa mode na ito, virt-inspector
nagbabasa lang ng XML mula sa stdin at naglalabas ng resulta ng query sa stdout. Lahat ng iba pang inspeksyon
hindi pinagana ang mga feature sa mode na ito.
Halimbawa:
$ virt-inspector -d Panauhin | virt-inspector --xpath '//filesystems'
ext4
[...]
$ virt-inspector -d Panauhin | \
virt-inspector --xpath "string(//filesystem[@dev='/dev/sda1']/type)"
ext4
$ virt-inspector -d Panauhin | \
virt-inspector --xpath 'string(//icon)' | base64 -i -d | display -
[ipinapakita ang icon ng panauhin, kung mayroon man]
PAGKAKITA INSPEKSYON DATA MULA SA ANG LIBGUESTFS API
Sa mga unang bersyon ng libguestfs, ang virt-inspector ay isang malaking Perl script na naglalaman
maraming heuristics para sa pag-inspeksyon sa mga bisita. Nagkaroon ito ng maraming problema: upang magawa
inspeksyon mula sa iba pang mga tool (tulad ng guestfish) kailangan naming tumawag sa Perl script na ito; at
binigyan nito ng pribilehiyo ang Perl kaysa sa iba pang mga wika na sinusuportahan ng libguestfs.
Sa pamamagitan ng libguestfs 1.8 ay muling isinulat namin ang Perl code sa C, at isinama ang lahat ng ito sa
core libguestfs API (guestfs(3)). Ngayon ang virt-inspector ay isa lamang manipis na C program sa ibabaw ng
core C API. Ang lahat ng impormasyon sa inspeksyon ay makukuha mula sa lahat ng mga programming language
na sinusuportahan ng libguestfs, at mula sa guestfish.
Para sa paglalarawan ng C inspection API, basahin ang "INSPECTION" sa guestfsNa (3).
Halimbawa code gamit ang C inspection API, hanapin inspect-vm.c kung saan nagpapadala sa
libguestfs.
inspect-vm.c ay isinalin din sa ibang mga wika. Halimbawa, inspect_vm.pl is
ang pagsasalin ng Perl, at mayroong iba pang mga pagsasalin para sa OCaml, Python, atbp. Tingnan ang "PAGGAMIT
LIBGUESTFS NA MAY IBA PANG PROGRAMMING LANGUAGES" sa guestfs(3) para sa isang listahan ng mga man page na
naglalaman ng halimbawang code na ito.
PAGKAKITA INSPEKSYON DATA MULA SA GUESTFISH
Kung gagamitin mo ang guestfish -i opsyon, pagkatapos ay ang pangunahing C inspection API "guestfs_inspect_os" sa
guestfs(3) ay tinatawag. Katumbas ito ng guestfish command na "inspect-os". Kaya mo
tawagin din itong guestfish command sa pamamagitan ng kamay.
Ang "inspect-os" ay nagsasagawa ng inspeksyon sa kasalukuyang disk image, ibinabalik ang listahan ng
natagpuan ang mga operating system. Ang bawat OS ay kinakatawan ng root filesystem device nito. Nasa
karamihan ng mga kaso, ang command na ito ay walang nai-print (walang OS na natagpuan), o isang solong root device,
ngunit mag-ingat na maaari itong mag-print ng maraming linya kung mayroong maraming OS o kung mayroong isang
i-install ang CD na naka-attach sa bisita.
$ guestfish --ro -a F15x32.img
> tumakbo
> inspeksyon-os
/dev/vg_f15x32/lv_root
Gamit ang root device, maaari kang kumuha ng karagdagang impormasyon tungkol sa bisita:
> 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 release 15 (Lovelock)
Dahil sa mga limitasyon ng guestfish, mahirap italaga ang root device sa isang variable (mula noong
ang guestfish ay walang mga variable), kaya kung gusto mong gawin itong muli mas mahusay ka
sa pagsusulat ng script gamit ang isa sa iba pang mga wika na sinusuportahan ng libguestfs API.
Upang maglista ng mga application, kailangan mo munang i-mount ang mga disk:
> 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
at pagkatapos ay tawagan ang inspect-list-applications API:
> inspect-list-applications /dev/vg_f15x32/lv_root | ulo -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:
}
Upang magpakita ng icon para sa bisita, tandaan na ang mga filesystem ay dapat ding naka-mount tulad ng nasa itaas.
Maaari mong gawin ang:
> inspect-get-icon /dev/vg_f15x32/lv_root | display -
OLD VERSION OF VIRT-INSPECTOR
Gaya ng inilarawan sa itaas, ang mga naunang bersyon ng libguestfs ay ipinadala kasama ng ibang virt-inspector
program na nakasulat sa Perl (ang kasalukuyang bersyon ay nakasulat sa C). Ang XML na output ng Perl
iba ang virt-inspector at maaari rin itong mag-output sa iba pang mga format tulad ng text.
Ang lumang virt-inspector ay hindi na sinusuportahan o ipinadala kasama ng libguestfs.
Upang higit pang malito ang mga bagay, sa Red Hat Enterprise Linux 6 nagpapadala kami ng dalawang bersyon ng birt-
inspektor na may iba't ibang pangalan:
virt-inspector Old Perl na bersyon.
virt-inspector2 Bagong bersyon ng C.
EXIT STATUS
Ang program na ito ay nagbabalik ng 0 kung matagumpay, o hindi zero kung may error.
Gumamit ng virt-inspector online gamit ang mga serbisyo ng onworks.net