.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Podwrapper::Man 1.56.0 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "virt-inspector 1" .TH virt-inspector 1 2026-07-11 guestfs-tools-1.56.0 "Virtualization Support" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "نام (NAME)" virt\-inspector \- نمایش نسخه سیستم‌عامل و سایر اطلاعات مربوط به یک ماشین مجازی .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" .Vb 1 \& virt\-inspector [\-\-options] \-d domname \& \& virt\-inspector [\-\-options] \-a disk.img [\-a disk.img ...] .Ve .PP شیوه قدیمی: .PP .Vb 1 \& virt\-inspector domname \& \& virt\-inspector disk.img [disk.img ...] .Ve .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" دستور \&\fBvirt\-inspector\fR یک ماشین مجازی یا ایمیج دیسک را بررسی کرده و تلاش می‌کند تا نسخه سیستم‌عامل و سایر اطلاعات ماشین مجازی را تعیین کند. .PP ابزار Virt\-inspector خروجی XML برای استفاده در سایر برنامه‌ها تولید می‌کند. .PP در حالت معمول، از \f(CW\*(C`virt\-inspector \-d domname\*(C'\fR استفاده کنید که در آن \f(CW\*(C`domname\*(C'\fR دامنه libvirt است (ببینید: \f(CW\*(C`virsh list \-\-all\*(C'\fR). .PP همچنین می‌توانید virt\-inspector را مستقیماً روی ایمیج‌های دیسک متعلق به یک ماشین مجازی منفرد اجرا کنید. از دستور \f(CW\*(C`virt\-inspector \-a disk.img\*(C'\fR استفاده کنید. در موارد نادری که یک دامنه دارای چندین دستگاه بلوکی است، باید چندین گزینه \fI\-a\fR را پشت سر هم مشخص کنید، به طوری که اولین گزینه متناظر با \fI/dev/sda\fR مهمان، دومین گزینه متناظر با \fI/dev/sdb\fR مهمان و به همین ترتیب باشد. .PP علاوه بر این می‌توانید virt\-inspector را روی دیسک‌های نصب، دیسک‌های زنده (Live CD)، حافظه‌های فلش بوتیبل USB و موارد مشابه اجرا کنید. .PP ابزار Virt\-inspector در هر بار فقط می‌تواند \fIیک دامنه را بازرسی و گزارش کند\fR. برای بررسی چندین ماشین مجازی، باید virt\-inspector را چندین بار اجرا کنید (به عنوان مثال، از طریق یک حلقه for در اسکریپت شل). .PP از آنجا که virt\-inspector به دسترسی مستقیم به ایمیج‌های مهمان نیاز دارد، معمولاً از طریق اتصالات ریموت libvirt کار نمی‌کند. .PP تمامی اطلاعات ارائه‌شده توسط virt\-inspector، از طریق API اصلی بازرسی libguestfs نیز در دسترس است (بخش "INSPECTION" در \fBguestfs\fR\|(3) را ببینید). همین اطلاعات را می‌توان با استفاده از guestfish یا از طریق بایندرهای زبان‌های برنامه‌نویسی مختلف در libguestfs نیز به دست آورد (بخش "دریافت داده‌های بازرسی از طریق API LIBGUESTFS" را ببینید). .PP اطلاعات تکمیلی در مورد بوت‌لودر، کرنل و درایورهای داخل سیستم مهمان را می‌توان با استفاده از \fBvirt\-drivers\fR\|(1) پیدا کرد. .SH "گزینه‌ها (OPTIONS)" .IX Header "OPTIONS" .IP \fB\-\-help\fR 4 .IX Item "--help" نمایش راهنمای مختصر. .IP "\fB\-a\fR file" 4 .IX Item "-a file" .PD 0 .IP "\fB\-\-add\fR file" 4 .IX Item "--add file" .PD افزودن \fIfile\fR که باید یک ایمیج دیسک از یک ماشین مجازی باشد. اگر ماشین مجازی دارای چندین دستگاه بلوکی است، باید همه آن‌ها را با گزینه‌های \fI\-a\fR جداگانه مشخص کنید. .Sp فرمت ایمیج دیسک به طور خودکار شناسایی می‌شود. برای لغو این حالت و اجبار به یک فرمت خاص از گزینه \fI\-\-format=..\fR استفاده کنید. .IP "\fB\-a\fR URI" 4 .IX Item "-a URI" .PD 0 .IP "\fB\-\-add\fR URI" 4 .IX Item "--add URI" .PD افزودن یک دیسک از راه دور. بخش "ADDING REMOTE STORAGE" در \fBguestfish\fR\|(1) را ببینید. .IP \fB\-\-blocksize=512\fR 4 .IX Item "--blocksize=512" .PD 0 .IP \fB\-\-blocksize=4096\fR 4 .IX Item "--blocksize=4096" .IP \fB\-\-blocksize\fR 4 .IX Item "--blocksize" .PD این پارامتر اندازه سکتور ایمیج دیسک را تنظیم می‌کند. این مورد بر تمام دیسک‌هایی که پس از این پارامتر صراحتاً اضافه می‌شوند تأثیر می‌گذارد. استفاده از \&\fI\-\-blocksize\fR بدون آرگومان، اندازه سکتور دیسک را به مقدار پیش‌فرض که معمولاً ۵۱۲ بایت است تغییر می‌دهد. همچنین بخش "guestfs_add_drive_opts" در \fBguestfs\fR\|(3) را ببینید. .IP "\fB\-c\fR URI" 4 .IX Item "-c URI" .PD 0 .IP "\fB\-\-connect\fR URI" 4 .IX Item "--connect URI" .PD در صورت استفاده از libvirt، به \fIURI\fR داده‌شده متصل می‌شود. در صورت عدم تعیین، به هایپروایزر پیش‌فرض libvirt متصل می‌شویم. .Sp تنها در صورتی از libvirt استفاده می‌شود که یک \f(CW\*(C`domname\*(C'\fR را در خط فرمان مشخص کرده باشید. اگر دستگاه‌های بلوکی مهمان را مستقیماً تعیین کنید (\fI\-a\fR)، از libvirt به هیچ وجه استفاده نمی‌شود. .IP "\fB\-d\fR guest" 4 .IX Item "-d guest" .PD 0 .IP "\fB\-\-domain\fR guest" 4 .IX Item "--domain guest" .PD افزودن تمام دیسک‌های مربوط به مهمان libvirt مشخص‌شده. به جای نام می‌توان از UUID دامنه نیز استفاده کرد. .IP \fB\-\-echo\-keys\fR 4 .IX Item "--echo-keys" هنگام درخواست کلیدها و عبارات عبور، virt\-inspector معمولاً قابلیت نمایش نویسه‌ها (echo) را غیرفعال می‌کند تا نتوانید آنچه تایپ می‌کنید را ببینید. اگر نگران حملات تمپست (Tempest) نیستید و فرد دیگری در اتاق حضور ندارد، می‌توانید این فلگ را مشخص کنید تا تایپ خود را مشاهده نمایید. .IP \fB\-\-format=raw|qcow2|..\fR 4 .IX Item "--format=raw|qcow2|.." .PD 0 .IP \fB\-\-format\fR 4 .IX Item "--format" .PD مشخص کردن فرمت ایمیج‌های دیسک ارائه‌شده در خط فرمان. اگر تعیین نشود، فرمت به طور خودکار از محتوای ایمیج دیسک شناسایی می‌شود. .Sp اگر ایمیج‌های دیسک از libvirt درخواست شوند، این برنامه اطلاعات مربوطه را از libvirt استعلام می‌کند. در این حالت، مقدار پارامتر format نادیده گرفته می‌شود. .Sp هنگام کار با ایمیج‌های دیسک مهمان غیرقابل اعتماد با فرمت خام (raw)، باید اطمینان حاصل کنید که فرمت همیشه به صراحت مشخص شده باشد. .IP "\fB\-\-key\fR SELECTOR" 4 .IX Item "--key SELECTOR" مشخص کردن کلید برای LUKS، به منظور بازگشایی خودکار قفل دستگاه LUKS هنگام بازرسی. .RS 4 .IP "\fB\-\-key\fR NAME\fB:key:\fRKEY_STRING" 4 .IX Item "--key NAME:key:KEY_STRING" .PD 0 .IP "\fB\-\-key\fR UUID\fB:key:\fRKEY_STRING" 4 .IX Item "--key UUID:key:KEY_STRING" .IP "\fB\-\-key\fR \fBall:key:\fRKEY_STRING" 4 .IX Item "--key all:key:KEY_STRING" .PD مقدار \&\f(CW\*(C`NAME\*(C'\fR نام دستگاه در libguestfs است (مانند \f(CW\*(C`/dev/sda1\*(C'\fR). مقدار \f(CW\*(C`UUID\*(C'\fR شناسه یکتای دستگاه است. مقدار \f(CW\*(C`all\*(C'\fR به این معنی است که کلید روی هر دستگاه رمزگذاری‌شده‌ای آزمایش شود. .Sp از \f(CW\*(C`KEY_STRING\*(C'\fR مشخص‌شده به عنوان عبارت عبور استفاده می‌کند. .IP "\fB\-\-key\fR NAME\fB:file:\fRFILENAME" 4 .IX Item "--key NAME:file:FILENAME" .PD 0 .IP "\fB\-\-key\fR UUID\fB:file:\fRFILENAME" 4 .IX Item "--key UUID:file:FILENAME" .IP "\fB\-\-key\fR \fBall:file:\fRFILENAME" 4 .IX Item "--key all:file:FILENAME" .PD خواندن عبارت عبور از فایل \fIFILENAME\fR. .IP "\fB\-\-key\fR NAME\fB:clevis\fR" 4 .IX Item "--key NAME:clevis" .PD 0 .IP "\fB\-\-key\fR UUID\fB:clevis\fR" 4 .IX Item "--key UUID:clevis" .IP "\fB\-\-key\fR \fBall:clevis\fR" 4 .IX Item "--key all:clevis" .PD تلاش برای بازگشایی دستگاه بدون عبارت عبور با استفاده از Clevis و از طریق شبکه. لطفاً برای اطلاعات بیشتر در مورد رمزگذاری دیسک وابسته به شبکه (NBDE) به بخش "ENCRYPTED DISKS" در \fBguestfs\fR\|(3) مراجعه کنید. .Sp توجه داشته باشید که در صورت وجود هر یک از این گزینه‌ها در خط فرمان، شبکه کاربری QEMU به طور خودکار برای اپلاینس libguestfs فعال خواهد شد. .RE .RS 4 .RE .IP \fB\-\-keys\-from\-stdin\fR 4 .IX Item "--keys-from-stdin" خواندن پارامترهای کلید یا عبارت عبور از ورودی استاندارد (stdin). رفتار پیش‌فرض این است که با باز کردن \fI/dev/tty\fR تلاش شود عبارت عبور از کاربر خوانده شود. .Sp اگر چندین دستگاه رمزگذاری‌شده وجود داشته باشد، ممکن است نیاز باشد چندین کلید را در stdin وارد کنید، هر کلید در یک خط جداگانه. .IP \fB\-\-no\-applications\fR 4 .IX Item "--no-applications" به طور پیش‌فرض، خروجی virt\-inspector شامل فهرست تمام برنامه‌های نصب‌شده در سیستم مهمان (در صورت در دسترس بودن) است. .Sp این گزینه را برای غیرفعال کردن این بخش از خروجی XML مشخص کنید. .IP \fB\-\-no\-icon\fR 4 .IX Item "--no-icon" به طور پیش‌فرض، خروجی virt\-inspector در صورت وجود شامل نماد (آیکون) مهمان است (بخش "icon" را ببینید). .Sp این گزینه را برای غیرفعال کردن این بخش از خروجی XML تعیین کنید. .IP \fB\-v\fR 4 .IX Item "-v" .PD 0 .IP \fB\-\-verbose\fR 4 .IX Item "--verbose" .PD فعال‌سازی پیام‌های پرجزئیات برای اشکال‌زدایی. .IP \fB\-V\fR 4 .IX Item "-V" .PD 0 .IP \fB\-\-version\fR 4 .IX Item "--version" .PD نمایش شماره نسخه و خروج. .IP \fB\-x\fR 4 .IX Item "-x" فعال‌سازی ردیابی فراخوانی‌های API در libguestfs. .IP "\fB\-\-xpath\fR query" 4 .IX Item "--xpath query" اجرای یک پرس‌وجوی XPath روی XML ارائه‌شده در stdin و چاپ نتیجه روی خروجی استاندارد (stdout). در این حالت virt\-inspector فقط یک کوئری XPath را اجرا می‌کند؛ تمامی سایر قابلیت‌های بازرسی غیرفعال می‌شوند. برای نمونه‌ها به بخش "پرس‌وجوهای XPATH" در ادامه مراجعه کنید. .SH "آرگومان‌های خط فرمان به شیوه قدیمی (OLD\-STYLE COMMAND LINE ARGUMENTS)" .IX Header "OLD-STYLE COMMAND LINE ARGUMENTS" نسخه‌های قبلی virt\-inspector به شما امکان می‌دادند هر یک از موارد زیر را بنویسید: .PP .Vb 1 \& virt\-inspector disk.img [disk.img ...] .Ve .PP یا .PP .Vb 1 \& virt\-inspector guestname .Ve .PP در حالی که در این نسخه باید به ترتیب از \fI\-a\fR یا \fI\-d\fR استفاده کنید تا از حالت گیج‌کننده‌ای که در آن یک ایمیج دیسک ممکن است هم‌نام با یک مهمان باشد جلوگیری شود. .PP جهت حفظ سازگاری با گذشته، شیوه قدیمی همچنان پشتیبانی می‌شود. .SH "فرمت XML (XML FORMAT)" .IX Header "XML FORMAT" ساختار XML تولیدی virt\-inspector به طور دقیق در فایل طرح‌واره RELAX NG با نام \fIvirt\-inspector.rng\fR که همراه با libguestfs عرضه می‌شود توصیف شده است. این بخش صرفاً یک بررسی اجمالی است. .PP عنصر سطح بالا است و شامل یک یا چند عنصر می‌باشد. شما تنها زمانی بیش از یک عنصر خواهید دید که ماشین مجازی دارای چند سیستم‌عامل بوت‌شدنی (Multi\-boot) باشد که در دنیای واقعی ماشین‌های مجازی بسیار نادر است. .SS .IX Subsection "" در تگ فیلدهای اختیاری گوناگونی وجود دارند که سیستم‌عامل، معماری آن، رشته توصیفی "نام محصول"، نوع سیستم‌عامل و موارد دیگر را شرح می‌دهند، مانند این مثال: .PP .Vb 11 \& \& \& /dev/sda2 \& windows \& i386 \& windows \& Windows 7 Enterprise \& Client \& 6 \& 1 \& /Windows .Ve .PP به طور خلاصه، تگ کلاس سیستم‌عامل است (چیزی مانند \f(CW\*(C`linux\*(C'\fR یا \f(CW\*(C`windows\*(C'\fR)، تگ توزیع است (مثلاً \f(CW\*(C`fedora\*(C'\fR اما توزیع‌های بسیار دیگری نیز شناسایی می‌شوند) و معماری مهمان است. سایر فیلدها تا حد زیادی خودتوصیف هستند، اما از آنجا که این فیلدها مستقیماً از API بازرسی libguestfs گرفته شده‌اند، می‌توانید اطلاعات دقیق را در بخش "INSPECTION" در \fBguestfs\fR\|(3) بیابید. .PP عنصر دستگاه سیستم‌فایل ریشه است، اما از دیدگاه libguestfs (دستگاه‌های بلوکی ممکن است در داخل خود ماشین مجازی نام‌های کاملاً متفاوتی داشته باشند). .SS .IX Subsection "" مهمان‌های شبه یونیکس (Un*x\-like) معمولاً دارای چندین سیستم‌فایل هستند که در نقاط اتصال (Mountpoint) مختلف سوار می‌شوند و این موارد در عنصر شرح داده شده‌اند که به این صورت است: .PP .Vb 7 \& \& \& ... \& \& / \& /boot \& .Ve .PP مشابه ، دستگاه‌ها از دیدگاه libguestfs هستند و ممکن است درون سیستم مهمان نام‌های کاملاً متفاوتی داشته باشند. فقط سیستم‌فایل‌های قابل سوار شدن در این فهرست ظاهر می‌شوند، نه مواردی مانند دستگاه‌های Swap. .SS .IX Subsection "" تگ مشابه است اما \fIتمام\fR سیستم‌فایل‌های متعلق به مهمان را شامل می‌شود، از جمله Swap و پارتیشن‌های خالی. (در حالت نادر مهمان چندبوتی، سیستم‌فایل‌های متعلق به این سیستم‌عامل یا مشترک میان این سیستم‌عامل و سایر سیستم‌عامل‌ها را پوشش می‌دهد). .PP ممکن است چیزی شبیه به این مشاهده کنید: .PP .Vb 9 \& \& \& ... \& \& \& ext4 \& \& e6a4db1e\-15c2\-477b\-ac2a\-699181c396aa \& .Ve .PP عناصر اختیاری درون عبارتند از: نوع سیستم‌فایل، برچسب (Label) و شناسه یکتا (UUID). .SS .IX Subsection "" عناصر مرتبط ، و برنامه‌های نصب‌شده در ماشین مجازی را شرح می‌دهند. .PP تگ در صورت وجود، سیستم بسته‌بندی مورد استفاده را توصیف می‌کند. مقادیر معمول شامل \f(CW\*(C`rpm\*(C'\fR و \f(CW\*(C`deb\*(C'\fR هستند. .PP تگ در صورت وجود، ابزار مدیریت بسته را توصیف می‌کند. مقادیر معمول شامل \f(CW\*(C`yum\*(C'\fR، \f(CW\*(C`up2date\*(C'\fR و \f(CW\*(C`apt\*(C'\fR هستند. .PP تگ بسته‌ها یا برنامه‌های کاربردی نصب‌شده را فهرست می‌کند. .PP .Vb 9 \& \& \& ... \& \& \& coreutils \& 8.5 \& 1 \& .Ve .PP فیلدهای version و release ممکن است برای برخی از انواع مهمان‌ها در دسترس نباشند. فیلدهای دیگری نیز امکان‌پذیر هستند؛ بخش "guestfs_inspect_list_applications" در \fBguestfs\fR\|(3) را ببینید. .SS .IX Subsection "" برای سیستم‌عامل‌هایی مانند ویندوز که از حروف درایو استفاده می‌کنند، virt\-inspector قادر است نحوه نگاشت حروف درایو به سیستم‌فایل‌ها را کشف کند. .PP .Vb 7 \& \& \& ... \& \& /dev/sda2 \& /dev/sdb1 \& .Ve .PP در مثال بالا، درایو C به سیستم‌فایل روی پارتیشن دوم اولین دیسک نگاشت شده است و درایو E به سیستم‌فایل روی پارتیشن اول دومین دیسک نگاشت می‌شود. .PP توجه داشته باشید که این مورد تنها نگاشت‌های دائمی سیستم‌فایل محلی را پوشش می‌دهد و مواردی چون اشتراک‌های شبکه را شامل نمی‌شود. علاوه بر این نقاط اتصال ولوم NTFS ممکن است در اینجا فهرست نشوند. .SS .IX Subsection "" ابزار Virt\-inspector گاهی قادر است یک نماد یا لوگو برای مهمان استخراج کند. نماد به صورت داده‌های PNG کدگذاری‌شده با Base64 برگردانده می‌شود. توجه داشته باشید که این نماد می‌تواند بسیار بزرگ و با کیفیت بالا باشد. .PP .Vb 7 \& \& \& ... \& \& iVBORw0KGgoAAAANSUhEUgAAAGAAAABg[.......] \& [... many lines of base64 data ...] \& .Ve .PP برای نمایش نماد، باید آن را استخراج کرده و داده‌های Base64 را به یک فایل باینری برگردانید. از یک کوئری XPath یا به سادگی از یک ویرایشگر برای استخراج داده‌ها استفاده کنید، سپس از برنامه \fBbase64\fR\|(1) در coreutils برای تبدیل مجدد آن به فایل PNG بهره ببرید: .PP .Vb 1 \& base64 \-i \-d < icon.data > icon.png .Ve .SH "پرس‌وجوهای XPATH (XPATH QUERIES)" .IX Header "XPATH QUERIES" ابزار Virt\-inspector شامل پشتیبانی توکار برای اجرای پرس‌وجوهای XPath است. دلیل گنجاندن مستقیم پشتیبانی از XPath در virt\-inspector به سادگی این است که هیچ برنامه خط فرمانی خوب و گسترده‌ای که قادر به اجرای پرس‌وجوهای XPath باشد وجود ندارد. تنها برنامه مناسب \&\fBxmlstarlet\fR\|(1) است که آن هم در رد هت انترپرایز لینوکس در دسترس نیست. .PP برای اجرای پرس‌وجوی XPath، از گزینه \fI\-\-xpath\fR استفاده کنید. توجه داشته باشید که در این حالت، virt\-inspector به سادگی XML را از stdin می‌خواند و نتیجه پرس‌وجو را در stdout چاپ می‌کند. تمامی قابلیت‌های دیگر بازرسی در این حالت غیرفعال هستند. .PP برای مثال: .PP .Vb 5 \& $ virt\-inspector \-d Guest | virt\-inspector \-\-xpath \*(Aq//filesystems\*(Aq \& \& \& ext4 \& [...] \& \& $ virt\-inspector \-d Guest | \e \& virt\-inspector \-\-xpath "string(//filesystem[@dev=\*(Aq/dev/sda1\*(Aq]/type)" \& ext4 \& \& $ virt\-inspector \-d Guest | \e \& virt\-inspector \-\-xpath \*(Aqstring(//icon)\*(Aq | base64 \-i \-d | display \- \& [در صورت وجود نماد مهمان، آن را نمایش می‌دهد] .Ve .SH "دریافت داده‌های بازرسی از طریق API LIBGUESTFS (GETTING INSPECTION DATA FROM THE LIBGUESTFS API)" .IX Header "GETTING INSPECTION DATA FROM THE LIBGUESTFS API" در نسخه‌های اولیه libguestfs، برنامه virt\-inspector یک اسکریپت بزرگ Perl بود که شامل هیوریستیک‌ها (قواعد اکتشافی) متعددی برای بازرسی مهمان‌ها می‌شد. این رویکرد چندین مشکل داشت: برای انجام بازرسی از ابزارهای دیگر (مانند guestfish) مجبور بودیم این اسکریپت پرل را صدا بزنیم؛ و همچنین به زبان Perl نسبت به سایر زبان‌های تحت پشتیبانی libguestfs برتری و اولویت می‌داد. .PP تا زمان انتشار libguestfs 1.8، کد Perl را به زبان C بازنویسی کردیم و تمام آن را در API هسته libguestfs ادغام نمودیم (\fBguestfs\fR\|(3)). اکنون virt\-inspector صرفاً یک برنامه C سبک روی API اصلی زبان C است. تمامی اطلاعات بازرسی از تمام زبان‌های برنامه‌نویسی که libguestfs پشتیبانی می‌کند و همچنین از طریق guestfish در دسترس است. .PP برای مطالعه توضیحات مربوط به C inspection API، بخش "INSPECTION" در \fBguestfs\fR\|(3) را بخوانید. .PP برای کدهای نمونه با استفاده از C inspection API، فایل \fIinspect\-vm.c\fR را که همراه با libguestfs عرضه می‌شود بررسی کنید. .PP فایل \&\fIinspect\-vm.c\fR به زبان‌های دیگر نیز ترجمه شده است. برای مثال، \fIinspect_vm.pl\fR ترجمه پرل آن است و ترجمه‌های دیگری نیز برای OCaml، Python و غیره وجود دارد. بخش "USING LIBGUESTFS WITH OTHER PROGRAMMING LANGUAGES" در \fBguestfs\fR\|(3) را برای فهرستی از صفحات راهنما که شامل این کد نمونه هستند ببینید. .SS "دریافت داده‌های بازرسی از GUESTFISH (GETTING INSPECTION DATA FROM GUESTFISH)" .IX Subsection "GETTING INSPECTION DATA FROM GUESTFISH" اگر از گزینه \fI\-i\fR در guestfish استفاده کنید، API اصلی بازرسی C با نام "guestfs_inspect_os" در \fBguestfs\fR\|(3) فراخوانی می‌شود. این معادل دستور \f(CW\*(C`inspect\-os\*(C'\fR در guestfish است. شما همچنین می‌توانید این دستور guestfish را به صورت دستی فراخوانی کنید. .PP دستور \&\f(CW\*(C`inspect\-os\*(C'\fR بازرسی را روی ایمیج دیسک جاری انجام می‌دهد و فهرست سیستم‌عامل‌های یافت‌شده را برمی‌گرداند. هر سیستم‌عامل با دستگاه سیستم‌فایل ریشه خود نمایش داده می‌شود. در بیشتر موارد، این دستور چیزی چاپ نمی‌کند (هیچ سیستم‌عاملی یافت نشد) یا یک دستگاه ریشه منفرد را چاپ می‌کند، اما آگاه باشید که اگر چندین سیستم‌عامل وجود داشته باشد یا یک CD نصب به مهمان متصل باشد، می‌تواند چندین خط چاپ کند. .PP .Vb 4 \& $ guestfish \-\-ro \-a F15x32.img \& > run \& > inspect\-os \& /dev/vg_f15x32/lv_root .Ve .PP با استفاده از دستگاه ریشه، می‌توانید اطلاعات بیشتری درباره سیستم مهمان واکشی کنید: .PP .Vb 8 \& > 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) .Ve .PP محدودیت‌های guestfish انتساب دستگاه ریشه به یک متغیر را دشوار می‌کند (زیرا guestfish متغیر ندارد)، بنابراین اگر می‌خواهید این کار را به صورت بازتولیدپذیر انجام دهید، بهتر است اسکریپتی با استفاده از یکی از زبان‌های دیگری که API مربوط به libguestfs پشتیبانی می‌کند بنویسید. .PP برای فهرست کردن برنامه‌ها، ابتدا باید دیسک‌ها را سوار (mount) کنید: .PP .Vb 5 \& > 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 .Ve .PP و سپس API مربوط به inspect\-list\-applications را فراخوانی کنید: .PP .Vb 10 \& > inspect\-list\-applications /dev/vg_f15x32/lv_root | head \-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: \& } .Ve .PP برای نمایش نماد برای مهمان، توجه داشته باشید که سیستم‌فایل‌ها نیز باید مانند بالا سوار شده باشند. سپس می‌توانید این کار را انجام دهید: .PP .Vb 1 \& > inspect\-get\-icon /dev/vg_f15x32/lv_root | display \- .Ve .SH "نسخه‌های قدیمی VIRT\-INSPECTOR (OLD VERSIONS OF VIRT\-INSPECTOR)" .IX Header "OLD VERSIONS OF VIRT-INSPECTOR" همان‌طور که در بالا توضیح داده شد، نسخه‌های اولیه libguestfs همراه با یک برنامه متفاوت virt\-inspector که با Perl نوشته شده بود عرضه می‌شدند (نسخه فعلی با C نوشته شده است). خروجی XML برنامه قدیمی پرل متفاوت بود و همچنین می‌توانست در قالب‌های دیگری مانند متن خروجی دهد. .PP برنامه قدیمی virt\-inspector دیگر پشتیبانی نمی‌شود و همراه با libguestfs عرضه نمی‌گردد. .PP برای پیچیده‌تر شدن موضوع، در رد هت انترپرایز لینوکس ۶ دو نسخه از virt\-inspector با نام‌های مختلف عرضه شده بود: .PP .Vb 2 \& virt\-inspector نسخه قدیمی Perl. \& virt\-inspector2 نسخه جدید C. .Ve .SH "وضعیت خروج (EXIT STATUS)" .IX Header "EXIT STATUS" این برنامه در صورت موفقیت مقدار 0 و در صورت بروز خطا مقداری غیر صفر برمی‌گرداند. .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" \&\fBguestfs\fR\|(3), \&\fBguestfish\fR\|(1), http://www.w3.org/TR/xpath, \&\fBbase64\fR\|(1), \&\fBxmlstarlet\fR\|(1), \&\fBvirt\-drivers\fR\|(1), http://libguestfs.org. .SH "نویسندگان (AUTHORS)" .IX Header "AUTHORS" .IP \(bu 4 Richard W.M. Jones http://people.redhat.com/~rjones .IP \(bu 4 Matthew Booth mbooth@redhat.com .SH "حق نشر (COPYRIGHT)" .IX Header "COPYRIGHT" Copyright (C) 2010\-2025 Red Hat Inc. .SH "مجوز (LICENSE)" .IX Header "LICENSE" این برنامه یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط اجازه‌نامه عمومی همگانی گنو (GNU GPL) که توسط بنیاد نرم‌افزارهای آزاد منتشر شده است؛ چه نسخه ۲ اجازه‌نامه و چه (به انتخاب خودتان) هر نسخه بعدی، بازتوزیع کرده یا تغییر دهید. .PP این برنامه به این امید توزیع شده است که مفید واقع شود، اما بدون هرگونه ضمانت؛ حتی بدون ضمانت ضمنی قابل فروش بودن یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر به اجازه‌نامه عمومی همگانی گنو مراجعه کنید. .PP شما باید به همراه این برنامه یک نسخه از اجازه‌نامه عمومی همگانی گنو را دریافت کرده باشید؛ در غیر این صورت، به آدرس زیر بنویسید: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110\-1301 USA. .SH "اشکالات (BUGS)" .IX Header "BUGS" برای مشاهده فهرست اشکالات ثبت‌شده برای libguestfs، از این پیوند استفاده کنید: https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools .PP برای گزارش یک اشکال جدید برای libguestfs، از این پیوند استفاده کنید: https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools .PP هنگام گزارش اشکال، لطفاً موارد زیر را ارائه دهید: .IP \(bu 4 نسخه libguestfs. .IP \(bu 4 محل تهیه libguestfs (مثلاً کدام توزیع لینوکس، کامپایل‌شده از سورس‌کد و غیره). .IP \(bu 4 شرح دقیق اشکال و ارائه راهی برای بازتولید آن. .IP \(bu 4 دستور \fBlibguestfs\-test\-tool\fR\|(1) را اجرا کرده و خروجی \fBکامل و ویرایش‌نشده\fR آن را در گزارش اشکال قرار دهید.