این دستور virt-inspector است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
virt-inspector - نمایش نسخه سیستم عامل و سایر اطلاعات در مورد یک مجازی
دستگاه
خلاصه
virt-inspector [--گزینه ها] -d domname
virt-inspector [--options] -a disk.img [-a disk.img ...]
مدل قدیمی:
ویرت-بازرس domname
virt-inspector disk.img [disk.img ...]
شرح
فضیلت بازرس یک ماشین مجازی یا تصویر دیسک را بررسی می کند و سعی می کند نسخه را تعیین کند
سیستم عامل و سایر اطلاعات در مورد ماشین مجازی.
Virt-inspector خروجی XML را برای تغذیه به برنامه های دیگر تولید می کند.
در استفاده معمولی، از "virt-inspector -d domname" استفاده کنید که در آن "domname" دامنه libvirt است.
(نگاه کنید به: "virsh list --all").
همچنین می توانید virt-inspector را مستقیماً روی تصاویر دیسک از یک ماشین مجازی واحد اجرا کنید.
از "virt-inspector -a disk.img" استفاده کنید. در موارد نادر یک دامنه دارای چندین دستگاه بلوک است، در
در این صورت باید چندین مورد را فهرست کنید -a گزینه ها یکی پس از دیگری، با اولین
مطابق با مهمان / dev / sda و، دوم به مهمان / dev / sdb و الی آخر.
همچنین می توانید virt-inspector را روی دیسک های نصب، سی دی های زنده، کلیدهای USB قابل بوت و موارد مشابه اجرا کنید.
Virt-inspector فقط می تواند بازرسی و گزارش دهد یک دامنه at a زمان. برای بازرسی چند
ماشین های مجازی، شما باید virt-inspector را چندین بار اجرا کنید (مثلاً از یک پوسته
اسکریپت برای حلقه).
از آنجایی که virt-inspector نیاز به دسترسی مستقیم به تصاویر مهمان دارد، معمولاً کار نمی کند
اتصالات libvirt از راه دور
تمام اطلاعات موجود از virt-inspector نیز از طریق هسته در دسترس است
libguestfs inspection API (به «INSPECTION» در مهمانان(3)). همین اطلاعات نیز می تواند
با استفاده از guestfish یا از طریق پیوندهای libguestfs در بسیاری از زبان های برنامه نویسی واکشی شود (نگاه کنید به
"دریافت داده های بازرسی از API LIBGUESTFS").
OPTIONS
--کمک
نمایش راهنمایی مختصر
-a پرونده
--اضافه کردن پرونده
اضافه کردن پرونده که باید یک تصویر دیسک از یک ماشین مجازی باشد. اگر ماشین مجازی
دارای چندین دستگاه بلوک است، شما باید همه آنها را جداگانه تهیه کنید -a گزینه.
فرمت تصویر دیسک به طور خودکار شناسایی می شود. برای نادیده گرفتن این و مجبور کردن a
فرمت خاص استفاده کنید --فرمت=.. گزینه.
-a URI
--اضافه کردن URI
یک دیسک راه دور اضافه کنید. به "افزودن حافظه از راه دور" در اینجا مراجعه کنید ماهی مهمان(1).
-c URI
-- اتصال URI
اگر از libvirt استفاده می کنید، به داده شده متصل شوید URI. اگر حذف شد، به آن متصل می شویم
هایپروایزر پیش فرض libvirt
Libvirt فقط در صورتی استفاده می شود که یک "domname" را در خط فرمان مشخص کنید. اگر مشخص کنید
دستگاه های بلوک مهمان به طور مستقیم (-a، پس از libvirt اصلا استفاده نمی شود.
-d مهمان
--دامنه مهمان
همه دیسکهای مهمان libvirt را اضافه کنید. UUID های دامنه را می توان به جای استفاده کرد
نامها
---کلیدهای اکو
وقتی کلیدها و عبارتهای عبور را درخواست میکند، virt-inspector معمولاً اکو را خاموش میکند.
شما نمی توانید آنچه را که تایپ می کنید ببینید. اگر نگران حملات طوفان نیستید و
هیچ کس دیگری در اتاق وجود ندارد که بتوانید این پرچم را مشخص کنید تا ببینید چه چیزی تایپ می کنید.
--format=raw|qcow2|..
--قالب
فرمت تصاویر دیسک داده شده در خط فرمان را مشخص کنید. اگر این حذف شده است
فرمت به طور خودکار از محتوای تصویر دیسک شناسایی می شود.
اگر تصاویر دیسک از libvirt درخواست شده باشد، این برنامه از libvirt برای این درخواست می کند
اطلاعات در این حالت مقدار پارامتر فرمت نادیده گرفته می شود.
اگر با تصاویر دیسک مهمان با فرمت خام غیرقابل اعتماد کار می کنید، باید از فرمت آن اطمینان حاصل کنید
همیشه مشخص می شود.
--keys-from-stdin
پارامترهای کلید یا عبارت عبور را از stdin بخوانید. پیش فرض این است که سعی کنید بخوانید
عبارات عبور از کاربر با باز کردن /dev/tty.
-v
-- پرحرف
پیام های پرمخاطب را برای اشکال زدایی فعال کنید.
-V
- نسخه
نمایش شماره نسخه و خروج
-x ردیابی تماس های API libguestfs را فعال کنید.
--xpath پرس و جو
یک کوئری XPath در XML در stdin انجام دهید و نتیجه را در stdout چاپ کنید. در این
mode virt-inspector به سادگی یک کوئری XPath را اجرا می کند. همه عملکردهای بازرسی دیگر هستند
معلول. برای چند نمونه به "XPATH QUERIES" در زیر مراجعه کنید.
مدل قدیمی COMMAND LINE ادله
نسخه های قبلی virt-inspector به شما این امکان را می داد که بنویسید:
virt-inspector disk.img [disk.img ...]
or
نام مهمان virt-inspector
در حالی که در این نسخه باید استفاده کنید -a or -d به ترتیب برای جلوگیری از موارد گیج کننده
جایی که یک تصویر دیسک ممکن است همان نام مهمان را داشته باشد.
برای سازگاری، سبک قدیمی هنوز پشتیبانی می شود.
XML FORMAT
virt-inspector XML دقیقاً در یک فایل طرحواره RELAX NG توضیح داده شده است virt-inspector.rng
که با libguestfs عرضه می شود. این بخش فقط یک نمای کلی است.
عنصر سطح بالا است ، و شامل یک یا چند است
عناصر. شما فقط بیش از یکی را خواهید دید عنصر اگر مجازی است
ماشین چند بوت است که در VMهای دنیای واقعی بسیار نادر است.
در تگ فیلدهای اختیاری مختلفی هستند که عملیات را توصیف می کنند
سیستم، معماری آن، رشته توصیفی "نام محصول"، نوع سیستم عامل و غیره،
مانند این مثال:
/dev/sda2/ ریشه>
پنجره ها
i386
پنجره ها
Windows 7 Enterprise
مشتری
6
1
/پنجره ها
نصب شده است
به طور خلاصه، کلاس سیستم عامل است (چیزی مانند "لینوکس" یا "ویندوز")،
توزیع است (به عنوان مثال "فدورا" اما بسیاری از توزیع های دیگر به رسمیت شناخته شده است) و
معماری مهمان است. سایر زمینه ها کاملاً خود توضیحی هستند، اما
زیرا این فیلدها مستقیماً از API بازرسی libguestfs گرفته شده اند که می توانید پیدا کنید
اطلاعات دقیق از "INSPECTION" در مهمانان(3).
در عنصر دستگاه فایل سیستم ریشه است، اما از دیدگاه libguestfs
(دستگاه های بلاک ممکن است نام های کاملاً متفاوتی در داخل خود ماشین مجازی داشته باشند).
مهمانهای غیر*x-مانند معمولاً چندین سیستم فایل دارند که در موارد مختلف نصب شدهاند
نقاط کوهستانی، و اینها در توضیح داده شده است عنصری که به شکل زیر است:
...
/
/ boot
همانطور که با ، دستگاه ها از دیدگاه libguestfs هستند و ممکن است به طور کامل داشته باشند
نام های مختلف داخل مهمان فقط فایل سیستم های قابل نصب در این لیست ظاهر می شوند، نه
چیزهایی مانند تعویض دستگاه
مثل این است اما پوشش می دهد تمام فایل سیستم های متعلق به مهمان،
از جمله پارتیشن های swap و خالی. (در مورد نادر مهمان چند بوت، پوشش می دهد
فایل سیستم های متعلق به این سیستم عامل یا به اشتراک گذاشته شده با این سیستم عامل و سایر سیستم عامل ها).
شما ممکن است چیزی شبیه به این ببینید:
...
ext4
Fedora-13-x86_64
<uuid>e6a4db1e-15c2-477b-ac2a-699181c396aa</uuid>
عناصر اختیاری در داخل نوع سیستم فایل، برچسب و
UUID.
عناصر مرتبط ، و توصیف کردن
برنامه های نصب شده در ماشین مجازی
، در صورت وجود، سیستم بسته بندی مورد استفاده را توصیف می کند. مقادیر معمولی خواهد بود
"rpm" و "deb" باشد.
، در صورت وجود، مدیر بسته را توصیف می کند. مقادیر معمولی شامل
"yum"، "up2date" و "apt"
بسته ها یا برنامه های نصب شده را لیست می کند.
...
coreutils
8.5
1
ممکن است فیلدهای نسخه و نسخه برای برخی از مهمانان در دسترس نباشد. سایر زمینه ها
امکان پذیر است، به "guestfs_inspect_list_applications" مراجعه کنید مهمانان(3).
برای سیستم عامل هایی مانند ویندوز که از حروف درایو استفاده می کنند، virt-inspector قادر به یافتن است
نحوه نگاشت حروف درایو به سیستم فایل.
...
/dev/sda2
/dev/sdb1
در مثال بالا، نقشه های C را به سیستم فایل در پارتیشن دوم در پارتیشن اول درایو کنید
دیسک، و نقشه های E را به سیستم فایل در پارتیشن اول روی دیسک دوم درایو کنید.
توجه داشته باشید که این فقط نگاشتهای سیستم فایل محلی دائمی را پوشش میدهد، نه مواردی مانند شبکه
سهام علاوه بر این، نقاط نصب حجم NTFS ممکن است در اینجا فهرست نشده باشند.
Virt-inspector گاهی اوقات قادر است یک نماد یا لوگو برای مهمان استخراج کند. نماد است
به عنوان دادههای PNG کدگذاری شده با base64 برگردانده شد. توجه داشته باشید که نماد می تواند بسیار بزرگ و بلند باشد
کیفیت.
...
iVBORw0KGgoAAAANSUhEUgAAAGAAAABg[.......]
[... بسیاری از خطوط داده base64 ...]
برای نمایش آیکون، باید آن را استخراج کرده و داده های base64 را به باینری تبدیل کنید
فایل. از یک کوئری XPath یا به سادگی یک ویرایشگر برای استخراج داده ها استفاده کنید، سپس از coreutils استفاده کنید
base64(1) برنامه ای برای تبدیل مجدد به یک فایل PNG:
base64 -i -d < icon.data > icon.png
بازرسی نصب دیسک ها، زنده سی دی
Virt-inspector می تواند برخی از نصب کننده های سیستم عامل را بر روی دیسک های نصب، سی دی های زنده،
کلیدهای USB قابل بوت و موارد دیگر.
در این مورد برچسب حاوی "نصب کننده" خواهد بود و ممکن است فیلدهای دیگری در آن وجود داشته باشد
یک سی دی زنده، نصب کننده شبکه یا بخشی از یک سی دی چند قسمتی را نشان دهید. مثلا:
/dev/sda/ ریشه>
لینوکس
i386
اوبونتو
اوبونتو 10.10 "Maverick Meerkat"
10
10
نصاب
XPATH پرس و جوها
Virt-inspector شامل پشتیبانی داخلی برای اجرای کوئری های XPath است. دلیل اینکه
از جمله پشتیبانی از XPath به طور مستقیم در virt-inspector است که به سادگی وجود ندارد خوب و
برنامه های خط فرمان گسترده ای که می توانند پرس و جوهای XPath را انجام دهند. تنها خوبیش اینه
xmlstarlet(1) و در لینوکس Red Hat Enterprise در دسترس نیست.
برای انجام یک کوئری XPath، از --xpath گزینه. توجه داشته باشید که در این حالت، virt-inspector
به سادگی XML را از stdin می خواند و نتیجه پرس و جو را در stdout خروجی می دهد. همه بازرسی های دیگر
ویژگی ها در این حالت غیرفعال هستند.
مثلا:
$ virt-inspector -d مهمان | virt-inspector --xpath '//filesystems'
ext4
[...]
$ virt-inspector -d مهمان |
virt-inspector --xpath "string(//filesystem[@dev='/dev/sda1']/type)"
ext4
$ virt-inspector -d مهمان |
virt-inspector --xpath 'string(//icon)' | base64 -i -d | نمایش دادن -
[آیکون مهمان را در صورت وجود نشان می دهد]
دست آوردن بازرسی داده ها از L' LIBGUESTFS API
در نسخه های اولیه libguestfs، virt-inspector یک اسکریپت پرل بزرگ بود که حاوی
بسیاری از اکتشافات برای بازرسی مهمانان. این چند مشکل داشت: به منظور انجام
بازرسی از ابزارهای دیگر (مانند guestfish) ما مجبور بودیم این اسکریپت پرل را فراخوانی کنیم. و
پرل را نسبت به سایر زبانهایی که libguestfs پشتیبانی میکند، امتیاز داد.
توسط libguestfs 1.8 ما کد پرل را در C بازنویسی کرده بودیم و همه آن را در
هسته libguestfs API (مهمانان(3)). اکنون virt-inspector به سادگی یک برنامه C نازک است
هسته C API. تمام اطلاعات بازرسی از تمام زبان های برنامه نویسی در دسترس است
که libguestfs پشتیبانی می کند و از guestfish.
برای توضیح C inspection API، "INSPECTION" را در اینجا بخوانید مهمانان(3).
به عنوان مثال کد با استفاده از C inspection API را جستجو کنید inspect-vm.c که با آن حمل می شود
libguestfs.
inspect-vm.c به زبان های دیگر نیز ترجمه شده است. مثلا، inspect_vm.pl is
ترجمه Perl، و ترجمه های دیگری برای OCaml، Python و غیره وجود دارد. به «استفاده» مراجعه کنید
LIBGUESTFS با سایر زبان های برنامه نویسی" در مهمانان(3) برای لیستی از صفحات man که
شامل این کد مثال است.
دست آوردن بازرسی داده ها از ماهی مهمان
اگر از ماهی مهمان استفاده می کنید -i گزینه، سپس API اصلی بازرسی C "guestfs_inspect_os" در
مهمانان(3) نامیده می شود. این معادل دستور guestfish "inspect-os" است. تو می توانی
این دستور ماهی را با دست هم صدا کنید.
"inspect-os" تصویر دیسک فعلی را بازرسی انجام می دهد و لیستی را برمی گرداند
سیستم عامل پیدا شد هر سیستم عامل توسط دستگاه فایل سیستم ریشه خود نشان داده می شود. در
در اکثر موارد، این دستور هیچ چیزی را چاپ نمی کند (هیچ سیستم عاملی یافت نشد)، یا یک دستگاه ریشه واحد،
اما مراقب باشید که در صورت وجود چندین سیستم عامل یا وجود یک سیستم عامل می تواند چندین خط را چاپ کند
سی دی ضمیمه شده به مهمان را نصب کنید.
$ guestfish --ro -a F15x32.img
> اجرا کن
> بازرسی سیستم عامل
/dev/vg_f15x32/lv_root
با استفاده از دستگاه ریشه، می توانید اطلاعات بیشتری در مورد مهمان دریافت کنید:
> inspect-get-type /dev/vg_f15x32/lv_root
لینوکس
> inspect-get-distro /dev/vg_f15x32/lv_root
کلاه نمدی مردانه
> inspect-get-major-version /dev/vg_f15x32/lv_root
15
> inspect-get-product-name /dev/vg_f15x32/lv_root
نسخه 15 فدورا (Lovelock)
محدودیتهای ماهی مهمان، اختصاص دادن دستگاه ریشه به یک متغیر را دشوار میکند (از آنجا که
guestfish متغیری ندارد)، بنابراین اگر می خواهید این کار را به صورت تکراری انجام دهید بهتر است
نوشتن یک اسکریپت با استفاده از یکی از زبان های دیگری که API libguestfs پشتیبانی می کند.
برای فهرست کردن برنامهها، ابتدا باید دیسکها را نصب کنید:
> 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
و سپس inspect-list-applications API را فراخوانی کنید:
> inspect-list-applications /dev/vg_f15x32/lv_root | سر -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:
}
برای نمایش یک نماد برای مهمان، توجه داشته باشید که سیستم های فایل نیز باید مانند بالا نصب شوند.
سپس می توانید انجام دهید:
> inspect-get-icon /dev/vg_f15x32/lv_root | نمایش دادن -
OLD نسخه ها OF VIRT-INSPECTOR
همانطور که در بالا توضیح داده شد، نسخه های اولیه libguestfs با یک بازرس مجازی متفاوت ارسال می شد
برنامه نوشته شده در پرل (نسخه فعلی به زبان C نوشته شده است). خروجی XML پرل
virt-inspector متفاوت بود و همچنین میتوانست در قالبهای دیگر مانند متن خروجی بگیرد.
Virt-Inspector قدیمی دیگر پشتیبانی نمیشود یا با libguestfs ارسال نمیشود.
برای گیج شدن بیشتر، در Red Hat Enterprise Linux 6 دو نسخه از virt-
بازرس با نام های مختلف:
نسخه اولد پرل virt-inspector.
virt-inspector2 نسخه جدید C.
خروج وضعیت
این برنامه در صورت موفقیت آمیز بودن 0 یا در صورت وجود خطا، عدد غیر صفر را برمی گرداند.
با استفاده از خدمات onworks.net از virt-inspector به صورت آنلاین استفاده کنید