.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Podwrapper::Man 1.60.1 (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 "guestfs-testing 1" .TH guestfs-testing 1 2026-07-14 libguestfs-1.60.1 "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)" guestfs\-testing \- آزمون دستی libguestfs؛ شما هم می‌توانید کمک کنید! .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" این صفحه شامل آزمون‌های دستی است که می‌توانید بر روی libguestfs امتحان کنید\&. هر فرد ترکیب اندکی متفاوتی از پلتفرم، سخت‌افزار و ماشین‌های مهمان دارد، بنابراین این آزمون‌ها بسیار ارزشمند هستند\&. از کمک شما سپاسگزاریم! .PP آزمون‌هایی که با علامت ستاره (\fB*\fR) مشخص شده‌اند، در صورت بی‌دقتی می‌توانند \fBداده‌ها را نابود کنند\fR\&. سایر آزمون‌ها ایمن هستند و چیزی را تغییر نمی‌دهند\&. .PP این آزمون‌ها به \fBlibguestfs ≥ 1.22\fR نیاز دارند\&. .PP می‌توانید اشکالاتی را که پیدا می‌کنید از طریق این پیوند گزارش دهید: .PP https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools .PP یا در فهرست پستی مطرح کنید (ثبت‌نام الزامی \fBنیست\fR، اما اگر ثبت‌نام نکرده باشید باید منتظر بمانید تا مدیر به صورت دستی پیام شما را تأیید کند): .PP https://lists.libguestfs.org .SH "آزمون‌ها (TESTS)" .IX Header "TESTS" .SS "اجرای libguestfs\-test\-tool" .IX Subsection "Run libguestfs-test-tool" دستور زیر را اجرا کنید: .PP .Vb 1 \& libguestfs\-test\-tool .Ve .PP این دستور یک آزمون بسیار ساده و غیرمخرب انجام می‌دهد تا بررسی کند کارکردهای پایه libguestfs به درستی کار می‌کنند\&. نیازی به اجرای آن با دسترسی ریشه (root) ندارید\&. .PP اگر عبارت \f(CW\*(C`===== TEST FINISHED OK =====\*(C'\fR چاپ \fIنشد\fR، آن را به عنوان یک اشکال گزارش کنید\&. بسیار مهم است که خروجی \fBکامل و دست‌نخورده\fR دستور \f(CW\*(C`libguestfs\-test\-tool\*(C'\fR را در گزارش اشکال خود بگنجانید\&. به بخش "اشکالات (BUGS)" در انتهای این صفحه مراجعه کنید\&. .SS "بررسی استفاده از شتاب‌دهنده KVM" .IX Subsection "Check KVM acceleration is being used." اگر میزبان شما شتاب‌دهنده سخت‌افزاری مجازی‌سازی دارد، با یک حافظه پنهان گرم (hot cache) باید بتواند libguestfs را در چند ثانیه راه‌اندازی کند\&. دستور زیر را چند بار اجرا نمایید: .PP .Vb 1 \& time guestfish \-a /dev/null run .Ve .PP پس از چند بار اجرا، زمان باید روی چند ثانیه تثبیت شود (زیر ۳ ثانیه در سخت‌افزارهای سریع ۶۴ بیتی)\&. .PP اگر دستور بالا اصلاً کار نکرد، از \fBlibguestfs\-test\-tool\fR\|(1) استفاده کنید\&. .SS "بررسی نسخه libguestfs، qemu، libvirt و غیره مورد استفاده" .IX Subsection "Check which version of libguestfs, qemu, libvirt, etc is being used." به خروجی \f(CW\*(C`libguestfs\-test\-tool\*(C'\fR نگاه کرده و موارد زیر را بررسی کنید: .IP \(bu 4 از کدام نسخه libguestfs استفاده می‌شود؟ در نزدیکی ابتدای خروجی خطی مانند این خواهید دید: .Sp .Vb 1 \& library version: 1.22.0fedora=19,release=1.fc19,libvirt .Ve .IP \(bu 4 آیا از libvirt استفاده می‌شود؟ با نگاه کردن به بک‌اند می‌توانید تفاوت را تشخیص دهید: .Sp .Vb 1 \& guestfs_get_backend: direct .Ve .Sp یا: .Sp .Vb 1 \& guestfs_get_backend: libvirt .Ve .IP \(bu 4 از کدام نسخه qemu استفاده می‌شود؟ ممکن است چاپ شده باشد: .Sp .Vb 1 \& libguestfs: qemu version 1.5 .Ve .IP \(bu 4 از کدام هسته (کرنل) استفاده می‌شود؟ ابزار \fBsupermin\fR\|(1) تلاش خواهد کرد جدیدترین کرنل نصب‌شده روی سیستم شما را انتخاب کند\&. می‌توانید نسخه را در خروجی اپلاینس مشاهده کنید، به عنوان مثال: .Sp .Vb 1 \& [ 0.000000] Linux version 3.9.2\-200.fc18.x86_64 [...] .Ve .SS "تلاش برای باز کردن ایمیج مهمان محلی با guestfish" .IX Subsection "Try to open a local guest image with guestfish." برای این آزمون می‌توانید از هر ایمیج دیسک مهمانی استفاده کنید\&. اطمینان حاصل کنید که از گزینه \&\f(CW\*(C`\-\-ro\*(C'\fR استفاده می‌کنید تا \fBguestfish\fR\|(1) ایمیج دیسک را به صورت فقط‌خواندنی باز کند\&. .PP .Vb 1 \& guestfish \-\-ro \-a /path/to/disk.img \-i .Ve .PP اگر دستور با موفقیت اجرا شود، باید نام سیستم‌عامل مهمان را چاپ کند و شما را در اعلان خط فرمان \f(CW\*(C`>\*(C'\fR در guestfish قرار دهد\&. می‌توانید از دستورات guestfish مانند \f(CW\*(C`ll\ /\*(C'\fR برای بررسی داخل ایمیج دیسک استفاده کنید\&. برای خروج، عبارت \f(CW\*(C`exit\*(C'\fR را تایپ کنید\&. .PP اگر خطایی دریافت کردید، اشکال‌زدایی را فعال کنید (گزینه \f(CW\*(C`\-v\*(C'\fR را به خط فرمان اضافه کنید)\&. همچنین مطمئن شوید که \fBlibguestfs\-test\-tool\fR\|(1) با موفقیت اجرا می‌شود\&. .SS "تلاش برای باز کردن ایمیج مهمان از راه دور با guestfish" .IX Subsection "Try to open a remote guest image with guestfish." همچنین ممکن است لازم باشد با تنظیم متغیر زیر، libvirt را غیرفعال کنید: .PP .Vb 1 \& export LIBGUESTFS_BACKEND=direct .Ve .PP اگر ایمیج دیسکی در بستر HTTP/FTP در دسترس دارید، سعی کنید آن را باز کنید: .PP .Vb 1 \& guestfish \-\-ro \-i \-\-format=raw \-a http://www.example.com/disk.img .Ve .PP برای SSH باید اطمینان حاصل کنید که ssh\-agent تنظیم شده است تا برای ورود به ماشین راه دور نیازی به گذرواژه نداشته باشید\&. سپس دستوری مشابه دستور زیر باید کار کند: .PP .Vb 2 \& guestfish \-\-ro \-i \-\-format=raw \e \& \-a ssh://remote.example.com/path/to/disk.img .Ve .PP اگر با خطایی روبرو شدید، اشکال‌زدایی را فعال کنید (افزودن \f(CW\*(C`\-v\*(C'\fR به خط فرمان)\&. همچنین مطمئن شوید که \fBlibguestfs\-test\-tool\fR\|(1) با موفقیت به پایان می‌رسد\&. .SS "اجرای virt\-alignment\-scan روی تمام ماشین‌های مهمان" .IX Subsection "Run virt-alignment-scan on all your guests." دستور \fBvirt\-alignment\-scan\fR\|(1) را روی مهمان‌ها یا ایمیج‌های دیسک اجرا کنید: .PP .Vb 1 \& virt\-alignment\-scan \-a /path/to/disk.img .Ve .PP یا: .PP .Vb 1 \& virt\-alignment\-scan \-d Guest .Ve .PP آیا گزارش تراز با نحوه تراز بودن پارتیشن‌های مهمان مطابقت دارد؟ .SS "اجرای virt\-cat روی برخی فایل‌ها در ماشین‌های مهمان" .IX Subsection "Run virt-cat on some files in guests." ابزار \&\fBvirt\-cat\fR\|(1) می‌تواند فایل‌های موجود در ماشین‌های مهمان را نمایش دهد\&. برای یک مهمان لینوکسی، این دستور را امتحان کنید: .PP .Vb 1 \& virt\-cat LinuxGuest /etc/passwd .Ve .PP یکی از قابلیت‌های جدیدتر، پشتیبانی از مسیرهای ویندوزی است، برای نمونه: .PP .Vb 1 \& virt\-cat WindowsGuest \*(Aqc:\ewindows\ewin.ini\*(Aq .Ve .PP یک آزمون حتی بهتر این است که یک ماشین مهمان ویندوزی با چند درایو داشته باشید\&. آیا مسیرهایی نظیر \f(CW\*(C`D:\*(C'\fR، \f(CW\*(C`E:\*(C'\fR و غیره به درستی کار می‌کنند؟ .SS "\fB*\fP کپی‌کردن برخی فایل‌ها به یک ماشین مهمان \fBخاموش\fP" .IX Subsection "* Copy some files into a shut off guest." ابزار \&\fBvirt\-copy\-in\fR\|(1) می‌تواند فایل‌ها و پوشه‌ها را به صورت بازگشتی درون یک مهمان یا ایمیج دیسک کپی کند\&. .PP .Vb 1 \& virt\-copy\-in \-d Guest /etc /tmp .Ve .PP این دستور باید دایرکتوری محلی \fI/etc\fR را در مسیر \fI/tmp/etc\fR داخل ماشین مهمان (به صورت بازگشتی) کپی کند\&. اگر مهمان را بوت کنید، آیا می‌توانید تمام فایل‌ها و پوشه‌های کپی‌شده را ببینید؟ .PP مهمان را خاموش کرده و کپی چندین فایل و دایرکتوری را امتحان کنید: .PP .Vb 1 \& virt\-copy\-in \-d Guest /home /etc/issue /tmp .Ve .SS "کپی‌کردن برخی فایل‌ها به بیرون از ماشین مهمان" .IX Subsection "Copy some files out of a guest." ابزار \&\fBvirt\-copy\-out\fR\|(1) می‌تواند فایل‌ها و پوشه‌ها را به صورت بازگشتی به خارج از یک ماشین مهمان یا ایمیج دیسک کپی کند\&. .PP .Vb 1 \& virt\-copy\-out \-d Guest /home . .Ve .PP توجه داشته باشید که فاصله و نقطه پایانی در دستور یک غلط املایی نیست\&. .PP این دستور باید مسیر \fI/home\fR را از مهمان به دایرکتوری جاری کپی کند\&. .SS "اجرای virt\-df" .IX Subsection "Run virt-df." ابزار \&\fBvirt\-df\fR\|(1) فضای دیسک را فهرست می‌کند\&. دستور زیر را اجرا کنید: .PP .Vb 1 \& virt\-df .Ve .PP می‌توانید نتایج این دستور را با خروجی \fBdf\fR\|(1) داخل ماشین مهمان مقایسه کنید، اما شروطی وجود دارد: .IP \(bu 4 مهمان باید در حالت بیکار (idle) باشد\&. .IP \(bu 4 دیسک‌های مهمان باید با استفاده از \fBsync\fR\|(1) همگام‌سازی شده باشند\&. .IP \(bu 4 هر عملی مانند بوت کردن مهمان باعث نوشتن فایل‌های لاگ و در نتیجه تغییر اعداد می‌شود\&. .PP ما تضمین نمی‌کنیم که حتی تحت این شرایط نیز ارقام دقیقاً یکسان باشند\&. اما باید شبیه به هم باشند\&. دیدن تفاوت‌های بسیار بزرگ نشان‌دهنده یک اشکال خواهد بود\&. .SS "تلاش برای وارد کردن خروجی CSV ابزار virt\-df به یک صفحه‌گسترده یا پایگاه‌داده" .IX Subsection "Try importing virt-df CSV output into a spreadsheet or database." دستور زیر را اجرا کنید: .PP .Vb 1 \& virt\-df \-\-csv > /tmp/report.csv .Ve .PP اکنون سعی کنید این خروجی را در صفحه‌گسترده یا پایگاه‌داده دلخواه خود بارگذاری کنید\&. آیا نتایج به طور دقیق در صفحه‌گسترده/پایگاه‌داده بازتولید می‌شوند؟ .PP http://www.postgresql.org/docs/8.1/static/sql\-copy.html http://dev.mysql.com/doc/refman/5.1/en/load\-data.html .SS "\fB*\fP ویرایش یک فایل در ماشین مهمان \fBخاموش\fP" .IX Subsection "* Edit a file in a shut off guest." ابزار \&\fBvirt\-edit\fR\|(1) می‌تواند فایل‌ها را در مهمان‌ها ویرایش کند\&. این دستور را روی یک مهمان RHEL یا Fedora امتحان کنید: .PP .Vb 1 \& virt\-edit LinuxGuest /etc/sysconfig/network .Ve .PP در سایر مهمان‌های لینوکسی، ویرایش فایل‌های دیگر را امتحان کنید مانند: .PP .Vb 1 \& virt\-edit LinuxGuest /etc/motd .Ve .PP آیا تغییرات پس از بوت‌شدن ماشین مهمان درون آن دیده می‌شوند؟ .SS "نمایش سیستم‌های فایل / پارتیشن‌ها / LVها در یک ماشین مهمان" .IX Subsection "Display the filesystems / partitions / LVs in a guest." ابزار \&\fBvirt\-filesystems\fR\|(1) می‌تواند برای نمایش سیستم‌های فایل در یک مهمان استفاده شود\&. این دستور را روی هر ایمیج دیسک یا ماشین مهمانی امتحان کنید: .PP .Vb 1 \& virt\-filesystems \-a /path/to/disk.img \-\-all \-\-long \-h .Ve .PP یا: .PP .Vb 1 \& virt\-filesystems \-d Guest \-\-all \-\-long \-h .Ve .PP آیا نتایج با آنچه درون ماشین مهمان دیده می‌شود مطابقت دارند؟ .SS "اجرای virt\-inspector روی تمام ماشین‌های مهمان" .IX Subsection "Run virt-inspector on all your guests." از \&\fBvirt\-inspector\fR\|(1) برای دریافت گزارشی درباره تمام ماشین‌های مهمان یا ایمیج‌های دیسک خود استفاده کنید: .PP .Vb 1 \& virt\-inspector \-a /path/to/disk.img | less .Ve .PP یا: .PP .Vb 1 \& virt\-inspector \-d Guest | less .Ve .PP آیا نتایج با آنچه واقعاً درون ماشین مهمان قرار دارد مطابقت دارند؟ .PP اگر یک مهمان نامتعارف دارید (یک توزیع نادر لینوکس، نسخه بسیار جدیدی از ویندوز)، آیا virt\-inspector آن را شناسایی می‌کند؟ اگر نه، احتمالاً یک اشکال است\&. .SS "بررسی قابلیت‌های ممیزی virt\-ls روی تمام ماشین‌های مهمان" .IX Subsection "Try the auditing features of virt-ls on all your guests." فهرست کردن تمام برنامه‌های setuid یا setgid در یک ماشین مجازی لینوکس: .PP .Vb 1 \& virt\-ls \-lR \-d Guest / | grep \*(Aq^\- [42]\*(Aq .Ve .PP فهرست کردن تمام پوشه‌های عمومی قابل نوشتن در یک ماشین مجازی لینوکس: .PP .Vb 1 \& virt\-ls \-lR \-d Guest / | grep \*(Aq^d ...7\*(Aq .Ve .PP فهرست کردن تمام سوکت‌های دامنه یونیکس در یک ماشین مجازی لینوکس: .PP .Vb 1 \& virt\-ls \-lR \-d Guest / | grep \*(Aq^s\*(Aq .Ve .PP فهرست کردن تمام فایل‌های معمولی که نام آن‌ها به ‘.png’ ختم می‌شود: .PP .Vb 1 \& virt\-ls \-lR \-d Guest / | grep \-i \*(Aq^\-.*\e.png$\*(Aq .Ve .PP نمایش فایل‌های بزرگ‌تر از 10MB در پوشه‌های خانگی (home): .PP .Vb 1 \& virt\-ls \-lR \-d Guest /home | awk \*(Aq$3 > 10*1024*1024\*(Aq .Ve .PP یافتن هر آنچه در ۷ روز گذشته تغییر یافته است: .PP .Vb 1 \& virt\-ls \-lR \-d Guest \-\-time\-days / | awk \*(Aq$6 <= 7\*(Aq .Ve .PP یافتن فایل‌های معمولی تغییریافته در ۲۴ ساعت گذشته: .PP .Vb 1 \& virt\-ls \-lR \-d Guest \-\-time\-days / | grep \*(Aq^\-\*(Aq | awk \*(Aq$6 < 1\*(Aq .Ve .PP آیا نتایج با آنچه درون ماشین مهمان است مطابقت دارند؟ .SS "ساخت ایمیج دیسک از یک فایل tarball" .IX Subsection "Create a disk image from a tarball." از \&\fBvirt\-make\-fs\fR\|(1) برای ایجاد یک ایمیج دیسک از هر فایل tarball که در اختیار دارید استفاده کنید: .PP .Vb 1 \& virt\-make\-fs \-\-partition=mbr \-\-type=vfat /any/tarball.tar.gz output.img .Ve .PP فایل ‘output.img’ را به عنوان یک دیسک خام (raw) به یک ماشین مهمان موجود اضافه کنید\&. بررسی کنید که آیا مهمان می‌تواند فایل‌ها را ببیند\&. این آزمون به ویژه اگر آن را با یک ماشین مهمان ویندوزی امتحان کنید بسیار مفید است\&. .PP طرح‌های پارتیشن‌بندی دیگر را نیز امتحان کنید، مثلاً \fI\-\-partition=gpt\fR\&. .PP سایر قالب‌های سیستم‌فایل را نیز آزمایش کنید، مثلاً \fI\-\-type=ntfs\fR، \fI\-\-type=ext2\fR\&. .SS "\fB*\fP اجرای virt\-rescue روی یک ایمیج دیسک یا ماشین مهمان \fBخاموش\fP" .IX Subsection "* Run virt-rescue on a shut off disk image or guest." از \&\fBvirt\-rescue\fR\|(1) برای بررسی، نجات یا تعمیر یک ماشین مهمان یا ایمیج دیسک \fBخاموش\fP استفاده کنید: .PP .Vb 1 \& virt\-rescue \-a /path/to/disk.img .Ve .PP یا: .PP .Vb 1 \& virt\-rescue \-d Guest .Ve .PP آیا می‌توانید از دستورات معمولی شل برای بررسی ماشین مهمان استفاده کنید؟ .SS "\fB*\fP تغییر اندازه ماشین‌های مهمان" .IX Subsection "* Resize your guests." از \&\fBvirt\-resize\fR\|(1) برای افزودن فضای دیسک بیشتر به یک ماشین مهمان استفاده کنید\&. برای نمونه اگر ایمیج دیسکی دارید که کوچک‌تر از 30G است، با دستورات زیر آن را به 30G افزایش دهید: .PP .Vb 4 \& truncate \-s 30G newdisk.img \& virt\-filesystems \-a /path/to/olddisk.img \-\-all \-\-long \-h \& virt\-resize /path/to/olddisk.img newdisk.img \-\-expand /dev/sda1 \& qemu\-kvm \-m 1024 \-hda newdisk.img .Ve .PP آیا ماشین مهمان هنوز بوت می‌شود؟ گسترش پارتیشن‌های دیگر را نیز امتحان کنید\&. .SS "\fB*\fP کم‌حجم و تنک‌سازی دیسک ماشین مهمان (Sparsify)" .IX Subsection "* Sparsify a guest disk." با استفاده از \&\fBvirt\-sparsify\fR\|(1)، ایمیج دیسک را تنک‌تر (کم‌حجم‌تر) کنید: .PP .Vb 1 \& virt\-sparsify /path/to/olddisk.img newdisk.img .Ve .PP آیا فایل \fInewdisk.img\fR پس از تنک‌سازی هنوز قابل بوت است؟ آیا حجم فایل ایمیج دیسک کوچک‌تر شده است (برای بررسی از \f(CW\*(C`du\*(C'\fR استفاده کنید)؟ .SS "ساخت و بوت کردن یک ماشین مهمان" .IX Subsection "Build and boot a guest" با استفاده از \&\fBvirt\-builder\fR\|(1)، یک ماشین مهمان از فهرست انتخاب کنید: .PP .Vb 1 \& virt\-builder \-l .Ve .PP آن را بسازید: .PP .Vb 1 \& virt\-builder \-o disk.img [os\-version from list above] .Ve .PP و آن را بوت کنید: .PP .Vb 1 \& qemu\-kvm \-cpu host \-m 2048 \-drive file=disk.img,format=raw .Ve .PP آیا بوت می‌شود؟ .SS "\fB*\fP آماده‌سازی سیستمی («Sysprep») یک مهمان لینوکس \fBخاموش\fP" .IX Subsection "* ""Sysprep"" a shut off Linux guest." \&\fBتوجه\fR داشته باشید که این کار واقعاً پیکربندی مهمان موجود را به هم می‌ریزد، بنابراین بهتر است پیش از امتحان آن، یک کلون از ماشین مهمان تهیه کنید\&. .PP .Vb 1 \& virt\-sysprep \-\-hostname newhost.example.com \-a /path/to/disk.img .Ve .PP آیا sysprep موفقیت‌آمیز بود؟ پس از بوت شدن، چه تغییراتی اعمال شدند و آیا موفق بودند؟ .SS "استخراج ریجستری ویندوز از ماشین‌های مهمان ویندوز" .IX Subsection "Dump the Windows Registry from your Windows guests." از \&\fBvirt\-win\-reg\fR\|(1) برای استخراج ریجستری ویندوز از هر مهمان ویندوزی که دارید استفاده کنید\&. .PP .Vb 2 \& virt\-win\-reg \-\-unsafe\-printable\-strings WindowsGuest \*(AqHKLM\eSoftware\*(Aq | \& less \& \& virt\-win\-reg \-\-unsafe\-printable\-strings WindowsGuest \*(AqHKLM\eSystem\*(Aq | \& less .Ve .PP آیا خروجی با اجرای \f(CW\*(C`regedit\*(C'\fR در داخل مهمان مطابقت دارد؟ .PP یکی از امکانات جدید، قابلیت استخراج ریجستری کاربران است، بنابراین این مورد را امتحان کنید و به جای \fIusername\fR نام یک کاربر محلی در مهمان را قرار دهید: .PP .Vb 2 \& virt\-win\-reg \-\-unsafe\-printable\-strings WindowsGuest \*(AqHKEY_USERS\eusername\*(Aq | \& less .Ve .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" \&\fBguestfs\fR\|(3), \&\fBguestfish\fR\|(1), \&\fBguestfs\-examples\fR\|(3), http://libguestfs.org .SH "نویسندگان (AUTHORS)" .IX Header "AUTHORS" Richard W.M. Jones (\f(CW\*(C`rjones at redhat dot com\*(C'\fR) .SH "حق نشر (COPYRIGHT)" .IX Header "COPYRIGHT" Copyright (C) 2011\-2025 Red Hat Inc. .SH "مجوز (LICENSE)" .IX Header "LICENSE" این کتابخانه یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط «مجوز عمومی همگانی کاهش‌یافته گنو» (GNU Lesser General Public License) طبق آنچه توسط بنیاد نرم‌افزارهای آزاد منتشر شده است، بازتوزیع کرده و/یا تغییر دهید؛ چه نسخه ۲ مجوز یا (به انتخاب خودتان) هر نسخه پس از آن\&. .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 آن را درون گزارش اشکال جای‌گذاری کنید\&.