.\" -*- 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 "guestfish 1" .TH guestfish 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)" guestfish \- پوسته تعاملی و اسکریپت‌نویسی مدیریت سیستم‌فایل‌های ماشین مجازی .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" .Vb 1 \& guestfish [\-\-options] [commands] \& \& guestfish \& \& guestfish [\-\-ro|\-\-rw] \-a disk.img \& \& guestfish [\-\-ro|\-\-rw] \-a disk.img \-m dev[:mountpoint] \& \& guestfish \-d libvirt\-domain \& \& guestfish [\-\-ro|\-\-rw] \-a disk.img \-i \& \& guestfish \-d libvirt\-domain \-i .Ve .SH "هشدار (WARNING)" .IX Header "WARNING" استفاده از \f(CW\*(C`guestfish\*(C'\fR در حالت نوشتن بر روی ماشین‌های مجازی فعال (زنده) یا به‌طور هم‌زمان با سایر ابزارهای ویرایش دیسک می‌تواند خطرناک باشد و به خرابی دیسک منجر شود. ماشین مجازی باید پیش از استفاده از این دستور خاموش شود و ایمیج‌های دیسک نباید به‌طور هم‌زمان ویرایش شوند. .PP اگر احتمال می‌دهید ایمیج دیسک یا ماشین مجازی فعال باشد، از گزینه \fI\-\-ro\fR (فقط‌خواندنی) برای استفاده ایمن از \f(CW\*(C`guestfish\*(C'\fR استفاده کنید. اگر هم‌زمان با سایر تغییرات اجرا شود، ممکن است نتایج عجیب یا ناسازگاری مشاهده کنید، اما با این گزینه خطری برای خرابی دیسک وجود نخواهد داشت. .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" دستور Guestfish یک پوسته و ابزار خط فرمان برای بررسی و تغییر سیستم‌فایل‌های ماشین مجازی است. این ابزار از libguestfs استفاده کرده و تمام عملکردهای API مربوط به guestfs را در دسترس قرار می‌دهد؛ به \fBguestfs\fR\|(3) مراجعه کنید. .PP ابزار Guestfish دسترسی ساختاریافته به API مربوط به libguestfs را از طریق اسکریپت‌های شل، خط فرمان یا به‌صورت تعاملی فراهم می‌کند. اگر می‌خواهید یک ایمیج ماشین مجازی خراب را نجات دهید، باید دستور \&\fBvirt\-rescue\fR\|(1) را بررسی کنید. .SH "مثال‌ها (EXAMPLES)" .IX Header "EXAMPLES" .SS "به عنوان پوسته تعاملی (As an interactive shell)" .IX Subsection "As an interactive shell" .Vb 1 \& $ guestfish \& \& Welcome to guestfish, the guest filesystem shell for \& editing virtual machine filesystems. \& \& Type: \*(Aqhelp\*(Aq for a list of commands \& \*(Aqman\*(Aq to read the manual \& \*(Aqquit\*(Aq to quit the shell \& \& > add\-ro disk.img \& > run \& > list\-filesystems \& /dev/sda1: ext4 \& /dev/vg_guest/lv_root: ext4 \& /dev/vg_guest/lv_swap: swap \& > mount /dev/vg_guest/lv_root / \& > cat /etc/fstab \& # /etc/fstab \& # Created by anaconda \& [...] \& > exit .Ve .SS "از طریق اسکریپت‌های شل (From shell scripts)" .IX Subsection "From shell scripts" ایجاد یک فایل \fI/etc/motd\fR جدید در یک سیستم مهمان یا ایمیج دیسک: .PP .Vb 6 \& guestfish <<_EOF_ \& add disk.img \& run \& mount /dev/vg_guest/lv_root / \& write /etc/motd "Welcome, new users" \& _EOF_ .Ve .PP فهرست کردن حجم‌های منطقی LVM در یک ایمیج دیسک: .PP .Vb 4 \& guestfish \-a disk.img \-\-ro <<_EOF_ \& run \& lvs \& _EOF_ .Ve .PP فهرست کردن تمام سیستم‌فایل‌ها در یک ایمیج دیسک: .PP .Vb 4 \& guestfish \-a disk.img \-\-ro <<_EOF_ \& run \& list\-filesystems \& _EOF_ .Ve .SS "در یک خط فرمان (On one command line)" .IX Subsection "On one command line" به‌روزرسانی \fI/etc/resolv.conf\fR در یک سیستم مهمان: .PP .Vb 3 \& guestfish \e \& add disk.img : run : mount /dev/vg_guest/lv_root / : \e \& write /etc/resolv.conf "nameserver 1.2.3.4" .Ve .PP ویرایش تعاملی \fI/boot/grub/grub.conf\fR: .PP .Vb 4 \& guestfish \-\-rw \-\-add disk.img \e \& \-\-mount /dev/vg_guest/lv_root \e \& \-\-mount /dev/sda1:/boot \e \& edit /boot/grub/grub.conf .Ve .SS "مونت خودکار دیسک‌ها (Mount disks automatically)" .IX Subsection "Mount disks automatically" از گزینه \fI\-i\fR برای مونت خودکار دیسک‌های یک ماشین مجازی استفاده کنید: .PP .Vb 1 \& guestfish \-\-ro \-a disk.img \-i cat /etc/group \& \& guestfish \-\-ro \-d libvirt\-domain \-i cat /etc/group .Ve .PP یک روش دیگر برای ویرایش تعاملی \fI/boot/grub/grub.conf\fR: .PP .Vb 1 \& guestfish \-\-rw \-a disk.img \-i edit /boot/grub/grub.conf .Ve .SS "به عنوان مفسر اسکریپت (As a script interpreter)" .IX Subsection "As a script interpreter" ایجاد یک دیسک ۱۰۰ مگابایتی شامل یک پارتیشن با قالب‌بندی ext2: .PP .Vb 5 \& #!/usr/bin/guestfish \-f \& sparse test1.img 100M \& run \& part\-disk /dev/sda mbr \& mkfs ext2 /dev/sda1 .Ve .SS "شروع با یک دیسک آماده‌شده (Start with a prepared disk)" .IX Subsection "Start with a prepared disk" ایجاد یک دیسک ۱ گیگابایتی به نام \fItest1.img\fR شامل یک پارتیشن با قالب‌بندی ext2: .PP .Vb 1 \& guestfish \-N fs .Ve .PP برای مشاهده موارد موجود اجرا کنید: .PP .Vb 1 \& guestfish \-N help | less .Ve .SS "درایوهای راه دور (Remote drives)" .IX Subsection "Remote drives" دسترسی به دیسک راه دور با استفاده از ssh: .PP .Vb 1 \& guestfish \-a ssh://example.com/path/to/disk.img .Ve .SS "کنترل از راه دور (Remote control)" .IX Subsection "Remote control" .Vb 4 \& eval "\`guestfish \-\-listen\`" \& guestfish \-\-remote add\-ro disk.img \& guestfish \-\-remote run \& guestfish \-\-remote lvs .Ve .SH "گزینه‌ها (OPTIONS)" .IX Header "OPTIONS" .IP \fB\-\-help\fR 4 .IX Item "--help" نمایش راهنمای عمومی درباره گزینه‌ها. .IP \fB\-h\fR 4 .IX Item "-h" .PD 0 .IP \fB\-\-cmd\-help\fR 4 .IX Item "--cmd-help" .PD فهرست کردن تمام دستورات موجود در guestfish. .IP "\fB\-h\fR CMD" 4 .IX Item "-h CMD" .PD 0 .IP "\fB\-\-cmd\-help\fR CMD" 4 .IX Item "--cmd-help CMD" .PD نمایش راهنمای تفصیلی درباره یک دستور منفرد \f(CW\*(C`cmd\*(C'\fR. .IP "\fB\-a\fR IMAGE" 4 .IX Item "-a IMAGE" .PD 0 .IP "\fB\-\-add\fR IMAGE" 4 .IX Item "--add IMAGE" .PD افزودن یک دستگاه بلوکی یا ایمیج ماشین مجازی به پوسته. .Sp قالب ایمیج دیسک به‌طور خودکار تشخیص داده می‌شود. برای لغو این حالت و تحمیل یک قالب خاص، از گزینه \fI\-\-format=..\fR استفاده کنید. .Sp استفاده از این فلگ تا حد زیادی معادل استفاده از دستور \f(CW\*(C`add\*(C'\fR است، به همراه \f(CW\*(C`readonly:true\*(C'\fR در صورتی که فلگ \fI\-\-ro\fR داده شده باشد، و با \f(CW\*(C`format:...\*(C'\fR اگر فلگ \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) مراجعه کنید. .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 هنگامی که همراه با گزینه \fI\-d\fR استفاده شود، آدرس URI مربوط به libvirt را برای استفاده مشخص می‌کند. مقدار پیش‌فرض استفاده از اتصال پیش‌فرض libvirt است. .IP \fB\-\-csh\fR 4 .IX Item "--csh" اگر از گزینه \fI\-\-listen\fR و پوسته‌ای شبیه به csh استفاده می‌کنید، از این گزینه استفاده نمایید. بخش «کنترل از راه دور و CSH» (REMOTE CONTROL AND CSH) را در ادامه ببینید. .IP "\fB\-d\fR LIBVIRT\-DOMAIN" 4 .IX Item "-d LIBVIRT-DOMAIN" .PD 0 .IP "\fB\-\-domain\fR LIBVIRT\-DOMAIN" 4 .IX Item "--domain LIBVIRT-DOMAIN" .PD افزودن دیسک‌ها از دامنه نام‌گذاری‌شده libvirt. اگر گزینه \fI\-\-ro\fR نیز استفاده شده باشد، هر دامنه libvirt را می‌توان به کار برد. با این حال در حالت نوشتن، تنها دامنه‌های libvirt که خاموش هستند را می‌توان در اینجا نام برد. .Sp می‌توان از UUIDهای دامنه به جای نام‌ها استفاده کرد. .Sp استفاده از این فلگ تا حد زیادی معادل استفاده از دستور \f(CW\*(C`add\-domain\*(C'\fR است، به همراه \f(CW\*(C`readonly:true\*(C'\fR در صورتی که فلگ \fI\-\-ro\fR داده شده باشد، و با \f(CW\*(C`format:...\*(C'\fR اگر فلگ \fI\-\-format=...\fR مشخص شده باشد. .IP \fB\-\-echo\-keys\fR 4 .IX Item "--echo-keys" هنگام درخواست کلیدها و عبارات عبور، guestfish معمولاً نمایش کاراکترها (echoing) را غیرفعال می‌کند تا نتوانید آنچه تایپ می‌کنید را ببینید. اگر نگران حملات تمپست (Tempest) نیستید و شخص دیگری در اتاق حضور ندارد، می‌توانید این فلگ را مشخص کنید تا آنچه تایپ می‌کنید را مشاهده نمایید. .IP "\fB\-f\fR FILE" 4 .IX Item "-f FILE" .PD 0 .IP "\fB\-\-file\fR FILE" 4 .IX Item "--file FILE" .PD خواندن دستورات از \f(CW\*(C`FILE\*(C'\fR. برای نوشتن اسکریپت‌های خالص guestfish، استفاده کنید از: .Sp .Vb 1 \& #!/usr/bin/guestfish \-f .Ve .IP \fB\-\-format=raw|qcow2|..\fR 4 .IX Item "--format=raw|qcow2|.." .PD 0 .IP \fB\-\-format\fR 4 .IX Item "--format" .PD حالت پیش‌فرض برای گزینه \fI\-a\fR تشخیص خودکار قالب ایمیج دیسک است. استفاده از این گزینه، قالب دیسک را برای گزینه‌های \fI\-a\fR که در ادامه خط فرمان می‌آیند تحمیل می‌کند. استفاده از \fI\-\-format\fR بدون آرگومان، حالت تشخیص خودکار را برای گزینه‌های بعدی \fI\-a\fR فعال می‌سازد. .Sp برای مثال: .Sp .Vb 1 \& guestfish \-\-format=raw \-a disk.img .Ve .Sp قالب raw (بدون تشخیص خودکار) را برای \fIdisk.img\fR تحمیل می‌کند. .Sp .Vb 1 \& guestfish \-\-format=raw \-a disk.img \-\-format \-a another.img .Ve .Sp قالب raw (بدون تشخیص خودکار) را برای \fIdisk.img\fR تحمیل کرده و برای \fIanother.img\fR به تشخیص خودکار بازمی‌گردد. .Sp اگر ایمیج‌های دیسک مهمان نامعتمد با قالب raw دارید، باید از این گزینه برای تعیین قالب دیسک استفاده کنید. این کار از یک مشکل امنیتی احتمالی با سیستم‌های مهمان مخرب جلوگیری می‌کند (CVE\-2010\-3851). همچنین به "add" مراجعه کنید. .IP \fB\-i\fR 4 .IX Item "-i" .PD 0 .IP \fB\-\-inspector\fR 4 .IX Item "--inspector" .PD با استفاده از کدهای \fBvirt\-inspector\fR\|(1)، دیسک‌ها را برای یافتن سیستم‌عامل بازرسی کرده و سیستم‌فایل‌ها را همان‌گونه که در ماشین مجازی واقعی مونت می‌شدند، مونت می‌کند. .Sp کاربرد معمول به یکی از دو صورت زیر است: .Sp .Vb 1 \& guestfish \-d myguest \-i .Ve .Sp (برای یک دامنه غیرفعال libvirt به نام \fImyguest\fR)، یا: .Sp .Vb 1 \& guestfish \-\-ro \-d myguest \-i .Ve .Sp (برای دامنه‌های فعال، به‌صورت فقط‌خواندنی)، یا تعیین مستقیم دستگاه بلوکی: .Sp .Vb 1 \& guestfish \-\-rw \-a /dev/Guests/MyGuest \-i .Ve .Sp توجه داشته باشید که نحو خط فرمان نسبت به نسخه‌های قدیمی‌تر guestfish اندکی تغییر کرده است. همچنان می‌توانید از نحو قدیمی استفاده کنید: .Sp .Vb 1 \& guestfish [\-\-ro] \-i disk.img \& \& guestfish [\-\-ro] \-i libvirt\-domain .Ve .Sp استفاده از این فلگ تا حد زیادی معادل استفاده از دستور \f(CW\*(C`inspect\-os\*(C'\fR و سپس استفاده از سایر دستورات برای مونت کردن سیستم‌فایل‌های یافت‌شده است. .IP "\fB\-\-key\fR SELECTOR" 4 .IX Item "--key SELECTOR" تعیین یک کلید برای LUKS، جهت باز کردن خودکار دستگاه LUKS هنگام استفاده از بازرسی (inspection). .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 شناسه یکتای (UUID) دستگاه است. \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 اگر چند دستگاه رمزنگاری‌شده وجود داشته باشد، ممکن است لازم باشد چندین کلید را در ورودی استاندارد وارد کنید، هر کلید در یک خط جداگانه. .IP \fB\-\-listen\fR 4 .IX Item "--listen" انتقال فرآیند به پس‌زمینه (fork) و گوش دادن به دستورات راه دور. به بخش «کنترل از راه دور GUESTFISH از طریق سوکت» (REMOTE CONTROL GUESTFISH OVER A SOCKET) در ادامه مراجعه کنید. .IP "\fB\-m\fR dev[:mountpoint[:options[:fstype]]]" 4 .IX Item "-m dev[:mountpoint[:options[:fstype]]]" .PD 0 .IP "\fB\-\-mount\fR dev[:mountpoint[:options[:fstype]]]" 4 .IX Item "--mount dev[:mountpoint[:options[:fstype]]]" .PD مونت کردن پارتیشن یا حجم منطقی نام‌برده‌شده روی نقطه مونت داده‌شده. .Sp اگر نقطه مونت حذف شود، مقدار پیش‌فرض آن \fI/\fR خواهد بود. .Sp قبل از اینکه اکثر دستورات کار کنند، باید چیزی را روی \fI/\fR مونت کنید. .Sp در صورت مشخص شدن هر یک از گزینه‌های \fI\-m\fR یا \fI\-\-mount\fR، سیستم مهمان به‌طور خودکار راه‌اندازی (launch) می‌شود. .Sp اگر نمی‌دانید یک ایمیج دیسک شامل چه سیستم‌فایل‌هایی است، می‌توانید guestfish را بدون این گزینه اجرا کنید، سپس پارتیشن‌ها، سیستم‌فایل‌ها و LVهای موجود را فهرست کنید (به دستورات "list\-partitions"، "list\-filesystems" و "lvs" مراجعه کنید)، یا می‌توانید از برنامه \&\fBvirt\-filesystems\fR\|(1) استفاده نمایید. .Sp بخش سوم (که به ندرت استفاده می‌شود) از پارامتر مونت، فهرست گزینه‌های مونت است که برای مونت کردن سیستم‌فایل زیرین به کار می‌رود. اگر این بخش داده نشود، گزینه‌های مونت یا رشته خالی یا \f(CW\*(C`ro\*(C'\fR خواهند بود (حالت دوم در صورتی است که فلگ \fI\-\-ro\fR استفاده شده باشد). با تعیین گزینه‌های مونت، این انتخاب پیش‌فرض را لغو می‌کنید. احتمالاً تنها زمانی که از این استفاده می‌کنید برای فعال‌سازی ACLها و/یا صفت‌های گسترش‌یافته (extended attributes) است، در صورتی که سیستم‌فایل از آن‌ها پشتیبانی کند: .Sp .Vb 1 \& \-m /dev/sda1:/:acl,user_xattr .Ve .Sp استفاده از این فلگ معادل استفاده از دستور \f(CW\*(C`mount\-options\*(C'\fR است. .Sp بخش چهارم پارامتر، درایور سیستم‌فایل مورد استفاده است، مانند \f(CW\*(C`ext3\*(C'\fR یا \f(CW\*(C`ntfs\*(C'\fR. این بخش به ندرت مورد نیاز است، اما زمانی که چند درایور برای یک سیستم‌فایل معتبر باشند (مانند \f(CW\*(C`ext2\*(C'\fR و \f(CW\*(C`ext3\*(C'\fR)، یا اگر libguestfs سیستم‌فایلی را به اشتباه شناسایی کند، می‌تواند مفید باشد. .IP \fB\-\-network\fR 4 .IX Item "--network" فعال کردن شبکه کاربری QEMU در سیستم مهمان. .IP "\fB\-N\fR [FILENAME=]TYPE" 4 .IX Item "-N [FILENAME=]TYPE" .PD 0 .IP "\fB\-\-new\fR [FILENAME=]TYPE" 4 .IX Item "--new [FILENAME=]TYPE" .IP "\fB\-N\fR \fBhelp\fR" 4 .IX Item "-N help" .PD آماده‌سازی یک ایمیج دیسک تازه با قالب‌بندی \f(CW\*(C`TYPE\*(C'\fR. این یک جایگزین برای گزینه \fI\-a\fR است: در حالی که \fI\-a\fR یک دیسک موجود را اضافه می‌کند، \&\fI\-N\fR یک دیسک پیش‌قالب‌بندی‌شده با یک سیستم‌فایل ایجاد کرده و آن را اضافه می‌کند. به «ایمیج‌های دیسک آماده‌شده» (PREPARED DISK IMAGES) در ادامه مراجعه کنید. .IP \fB\-n\fR 4 .IX Item "-n" .PD 0 .IP \fB\-\-no\-sync\fR 4 .IX Item "--no-sync" .PD غیرفعال کردن همگام‌سازی خودکار (autosync). این ویژگی به‌طور پیش‌فرض فعال است. به بحث پیرامون autosync در صفحه راهنمای \fBguestfs\fR\|(3) مراجعه کنید. .IP \fB\-\-no\-dest\-paths\fR 4 .IX Item "--no-dest-paths" عدم تکمیل خودکار مسیرها با کلید Tab در سیستم‌فایل مهمان. امکان فشردن کلید Tab برای تکمیل مسیرها در سیستم‌فایل مهمان مفید است، اما این امر باعث فراخوانی‌های «پنهان» اضافی به guestfs می‌شود؛ بنابراین این گزینه برای امکان غیرفعال کردن این ویژگی در اینجا قرار داده شده است. .IP \fB\-\-pipe\-error\fR 4 .IX Item "--pipe-error" اگر نوشتن در دستورات پایپ (به بخش «پایپ‌ها» (PIPES) در ادامه مراجعه کنید) ناموفق باشد، دستور یک خطا بازمی‌گرداند. .Sp حالت پیش‌فرض (همچنین به دلایل تاریخی) نادیده گرفتن چنین خطاهایی است تا دستور زیر: .Sp .Vb 1 \& > command_with_lots_of_output | head .Ve .Sp خطایی تولید نکند. .IP \fB\-\-progress\-bars\fR 4 .IX Item "--progress-bars" فعال کردن نوارهای پیشرفت، حتی زمانی که guestfish به‌صورت غیرتعاملی استفاده می‌شود. .Sp نوارهای پیشرفت به‌طور پیش‌فرض زمانی که guestfish به عنوان یک پوسته تعاملی استفاده می‌شود فعال هستند. .IP \fB\-\-no\-progress\-bars\fR 4 .IX Item "--no-progress-bars" غیرفعال کردن نوارهای پیشرفت. .IP \fB\-\-remote\fR 4 .IX Item "--remote" .PD 0 .IP \fB\-\-remote=\fRPID 4 .IX Item "--remote=PID" .PD ارسال دستورات راه دور به \f(CW$GUESTFISH_PID\fR یا \f(CW\*(C`pid\*(C'\fR. به بخش «کنترل از راه دور GUESTFISH از طریق سوکت» (REMOTE CONTROL GUESTFISH OVER A SOCKET) در ادامه مراجعه کنید. .IP \fB\-r\fR 4 .IX Item "-r" .PD 0 .IP \fB\-\-ro\fR 4 .IX Item "--ro" .PD این گزینه عملکرد گزینه‌های \fI\-a\fR، \fI\-d\fR و \fI\-m\fR را به‌گونه‌ای تغییر می‌دهد که دیسک‌ها اضافه شده و مونت‌ها به‌صورت فقط‌خواندنی انجام شوند. .Sp این گزینه همیشه باید در مواردی که ممکن است ایمیج دیسک یا ماشین مجازی در حال اجرا باشد استفاده شود، و عموماً در مواردی که نیازی به دسترسی نوشتن روی دیسک ندارید توصیه می‌شود. .Sp توجه داشته باشید که ایمیج‌های دیسک آماده‌شده که با \fI\-N\fR ایجاد شده‌اند تحت تأثیر این گزینه قرار نمی‌گیرند. همچنین دستوراتی مانند \f(CW\*(C`add\*(C'\fR تحت تأثیر قرار نمی‌گیرند \- در صورت نیاز باید گزینه \f(CW\*(C`readonly:true\*(C'\fR را به‌طور صریح مشخص کنید. .Sp همچنین به بخش «باز کردن دیسک‌ها برای خواندن و نوشتن» (OPENING DISKS FOR READ AND WRITE) در ادامه مراجعه کنید. .IP \fB\-\-selinux\fR 4 .IX Item "--selinux" این گزینه برای سازگاری با نسخه‌های پیشین ارائه شده است و هیچ کاری انجام نمی‌دهد. .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 نمایش شماره نسخه guestfish / libguestfs و خروج. .IP \fB\-w\fR 4 .IX Item "-w" .PD 0 .IP \fB\-\-rw\fR 4 .IX Item "--rw" .PD این گزینه عملکرد گزینه‌های \fI\-a\fR، \fI\-d\fR و \fI\-m\fR را به‌گونه‌ای تغییر می‌دهد که دیسک‌ها اضافه شده و مونت‌ها به‌صورت خواندن و نوشتن انجام شوند. .Sp به بخش «باز کردن دیسک‌ها برای خواندن و نوشتن» (OPENING DISKS FOR READ AND WRITE) در ادامه مراجعه کنید. .IP \fB\-x\fR 4 .IX Item "-x" چاپ هر دستور قبل از اجرای آن. .SH "دستورات در خط فرمان (COMMANDS ON COMMAND LINE)" .IX Header "COMMANDS ON COMMAND LINE" هر آرگومان اضافی (غیر از گزینه‌ها) به عنوان دستوراتی برای اجرا در نظر گرفته می‌شود. .PP دستورات اجرایی باید با یک دونقطه (\f(CW\*(C`:\*(C'\fR) از هم جدا شوند، به طوری که دونقطه یک پارامتر جداگانه باشد. بنابراین: .PP .Vb 1 \& guestfish cmd [args...] : cmd [args...] : cmd [args...] ... .Ve .PP اگر آرگومان اضافی دیگری وجود نداشته باشد، وارد یک پوسته می‌شویم؛ یا یک پوسته تعاملی با اعلان خط فرمان (اگر ورودی یک ترمینال باشد) یا یک پوسته غیرتعاملی. .PP چه در حالت خط فرمان و چه در پوسته غیرتعاملی، اولین دستوری که با خطا مواجه شود باعث خروج کامل پوسته می‌شود. در حالت تعاملی (با اعلان خط فرمان) اگر دستوری ناموفق باشد، می‌توانید به وارد کردن دستورات ادامه دهید. .PP توجه داشته باشید که آرگومان‌های دستورات در صورتی که با یک خط تیره (\f(CW\*(C`\-\*(C'\fR) آغاز شوند، به عنوان گزینه‌های guestfish در نظر گرفته خواهند شد: همیشه می‌توانید گزینه‌های guestfish و بقیه دستورات (همراه با آرگومان‌هایشان) را با استفاده از دو خط تیره (\f(CW\*(C`\-\-\*(C'\fR) از یکدیگر جدا کنید. برای مثال: .PP .Vb 1 \& guestfish \-\- disk_create overlay.qcow2 qcow2 \-1 backingfile:image.img .Ve .SH "استفاده از launch (یا run) (USING launch (OR run))" .IX Header "USING launch (OR run)" همانند \fBguestfs\fR\|(3)، ابتدا باید با افزودن دیسک‌ها سیستم مهمان خود را پیکربندی کنید، سپس آن را راه‌اندازی (launch) نمایید، سپس هر دیسکی را که نیاز دارید مونت کنید و در نهایت اقدامات/دستورات را صادر کنید. بنابراین ترتیب کلی عملیات به شرح زیر است: .IP \(bu 4 دستور add یا \-a/\-\-add .IP \(bu 4 دستور launch (معروف به run) .IP \(bu 4 دستور mount یا \-m/\-\-mount .IP \(bu 4 هر دستور دیگر .PP دستور \f(CW\*(C`run\*(C'\fR مترادفی برای \f(CW\*(C`launch\*(C'\fR است. پیش از مونت کردن یا اجرای هر دستور دیگری باید سیستم مهمان خود را \f(CW\*(C`launch\*(C'\fR (یا \f(CW\*(C`run\*(C'\fR) کنید. .PP تنها استثنا این است که اگر هر یک از گزینه‌های \fI\-i\fR، \fI\-m\fR، \fI\-\-mount\fR، \fI\-N\fR یا \fI\-\-new\fR داده شده باشند، \f(CW\*(C`run\*(C'\fR به‌طور خودکار انجام می‌شود، صرفاً به این دلیل که guestfish بدون انجام این کار نمی‌تواند عملیاتی را که درخواست کرده‌اید انجام دهد. .SH "باز کردن دیسک‌ها برای خواندن و نوشتن (OPENING DISKS FOR READ AND WRITE)" .IX Header "OPENING DISKS FOR READ AND WRITE" گزینه‌های \fI\-\-ro\fR و \fI\-\-rw\fR در guestfish، \fBguestmount\fR\|(1) و \fBvirt\-rescue\fR\|(1) بر این موضوع تأثیر می‌گذارند که آیا سایر گزینه‌های خط فرمان مانند \fI\-a\fR، \fI\-c\fR، \fI\-d\fR، \fI\-i\fR و \fI\-m\fR ایمیج‌های دیسک را به‌صورت فقط‌خواندنی باز می‌کنند یا برای نوشتن. .PP در libguestfs نسخه ۱.۱۰ و پیش از آن، guestfish، guestmount و virt\-rescue به‌طور پیش‌فرض ایمیج‌های دیسک ارائه‌شده در خط فرمان را برای نوشتن باز می‌کردند. برای باز کردن یک ایمیج دیسک به‌صورت فقط‌خواندنی باید از \fI\-a image \-\-ro\fR استفاده می‌کردید. .PP این موضوع اهمیت دارد: اگر تصادفاً یک ایمیج دیسک ماشین مجازی زنده و فعال را به‌صورت قابل‌نوشتن باز کنید، باعث خرابی برگشت‌ناپذیر دیسک خواهید شد. .PP در نسخه‌های آینده libguestfs قصد داریم پیش‌فرض را به حالت معکوس تغییر دهیم. ایمیج‌های دیسک به‌صورت فقط‌خواندنی باز خواهند شد. برای به دست آوردن دسترسی نوشتن برای ایمیج‌های دیسک مشخص‌شده با آن سایر گزینه‌های خط فرمان، باید \&\fIguestfish \-\-rw\fR، \fIguestmount \-\-rw\fR، \fIvirt\-rescue \-\-rw\fR را مشخص کنید یا فایل پیکربندی را تغییر دهید. .PP این نسخه از guestfish، guestmount و virt\-rescue دارای یک گزینه \fI\-\-rw\fR است که هیچ کاری انجام نمی‌دهد (چرا که در حال حاضر پیش‌فرض است). با این حال، اکیداً توصیه می‌شود از این گزینه برای نشان دادن نیاز خود به دسترسی نوشتن استفاده کنید و اسکریپت‌های خود را برای روزی که این گزینه برای دسترسی نوشتن الزامی خواهد شد، آماده نمایید. .PP \&\fBنکته:\fR این مورد بر دستوراتی مانند "add" و "mount" یا هر برنامه دیگر libguestfs به جز guestfish و guestmount تأثیری \fIندارد\fR. .SH "نقل‌قول (QUOTING)" .IX Header "QUOTING" می‌توانید پارامترهای معمولی را با استفاده از نقل‌قول تکی (single quote) یا دوتایی (double quote) محصور کنید. برای مثال: .PP .Vb 1 \& add "file with a space.img" \& \& rm \*(Aq/file name\*(Aq \& \& rm \*(Aq/"\*(Aq .Ve .PP تعداد کمی از دستورات نیاز به ارسال فهرستی از رشته‌ها دارند. برای این موارد، از یک فهرست جداشده با فاصله استفاده کنید که درون نقل‌قول قرار گرفته است. رشته‌های حاوی فاصله که باید ارسال شوند باید در نقل‌قول تکی قرار گیرند. یک نقل‌قول تکی واقعی باید با بک‌اسلش اسکیپ شود. .PP .Vb 3 \& vgcreate VG "/dev/sda1 /dev/sdb1" \& command "/bin/echo \*(Aqfoo bar\*(Aq" \& command "/bin/echo \e\*(Aqfoo\e\*(Aq" .Ve .SS "توالی‌های گریز در آرگومان‌های با نقل‌قول دوتایی (ESCAPE SEQUENCES IN DOUBLE QUOTED ARGUMENTS)" .IX Subsection "ESCAPE SEQUENCES IN DOUBLE QUOTED ARGUMENTS" تنها در آرگومان‌های با نقل‌قول دوتایی، از بک‌اسلش برای درج نویسه‌های ویژه استفاده کنید: .ie n .IP """\ea""" 4 .el .IP \f(CW\ea\fR 4 .IX Item "a" نویسه هشدار یا زنگ (Alert/bell). .ie n .IP """\eb""" 4 .el .IP \f(CW\eb\fR 4 .IX Item "b" نویسه پس‌بر (Backspace). .ie n .IP """\ef""" 4 .el .IP \f(CW\ef\fR 4 .IX Item "f" نویسه فرم‌فید (Form feed). .ie n .IP """\en""" 4 .el .IP \f(CW\en\fR 4 .IX Item "n" نویسه خط جدید (Newline). .ie n .IP """\er""" 4 .el .IP \f(CW\er\fR 4 .IX Item "r" نویسه بازگشت به ابتدای سطر (Carriage return). .ie n .IP """\et""" 4 .el .IP \f(CW\et\fR 4 .IX Item "t" نویسه تب افقی (Horizontal tab). .ie n .IP """\ev""" 4 .el .IP \f(CW\ev\fR 4 .IX Item "v" نویسه تب عمودی (Vertical tab). .ie n .IP """\e""""" 4 .el .IP "\f(CW\e""\fR" 4 .IX Item """" یک نویسه نقل‌قول دوتایی واقعی. .ie n .IP """\eooo""" 4 .el .IP \f(CW\eooo\fR 4 .IX Item "ooo" یک نویسه با مقدار هشت‌هشتی (اکتال) \fIooo\fR. دقیقاً باید ۳ رقم هشت‌هشتی وجود داشته باشد (برخلاف C). .ie n .IP """\exhh""" 4 .el .IP \f(CW\exhh\fR 4 .IX Item "xhh" یک نویسه با مقدار شانزده‌شانزدهی (هگزادسیمال) \fIhh\fR. دقیقاً باید ۲ رقم شانزده‌شانزدهی وجود داشته باشد. .Sp در پیاده‌سازی فعلی، \f(CW\*(C`\e000\*(C'\fR و \f(CW\*(C`\ex00\*(C'\fR نمی‌توانند در رشته‌ها استفاده شوند. .ie n .IP """\e\e""" 4 .el .IP \f(CW\e\e\fR 4 .IX Item "" یک نویسه بک‌اسلش واقعی. .SH "آرگومان‌های اختیاری (OPTIONAL ARGUMENTS)" .IX Header "OPTIONAL ARGUMENTS" برخی دستورات آرگومان‌های اختیاری می‌پذیرند. این آرگومان‌ها در این مستندات به صورت \f(CW\*(C`[argname:..]\*(C'\fR نمایش داده می‌شوند. می‌توانید از آن‌ها مانند این مثال‌ها استفاده کنید: .PP .Vb 1 \& add filename \& \& add filename readonly:true \& \& add filename format:qcow2 readonly:false .Ve .PP هر آرگومان اختیاری حداکثر یک بار می‌تواند ظاهر شود. تمام آرگومان‌های اختیاری باید بعد از آرگومان‌های اجباری قرار گیرند. .SH "اعداد (NUMBERS)" .IX Header "NUMBERS" این بخش برای تمام دستوراتی که می‌توانند اعداد صحیح را به عنوان پارامتر دریافت کنند، اعمال می‌شود. .SS "پسوند اندازه (SIZE SUFFIX)" .IX Subsection "SIZE SUFFIX" هنگامی که دستور پارامتری با واحد بایت دریافت می‌کند، می‌توانید از یکی از پسوندهای زیر برای تعیین کیلوبایت، مگابایت و اندازه‌های بزرگ‌تر استفاده کنید: .IP "\fBk\fR یا \fBK\fR یا \fBKiB\fR" 4 .IX Item "k or K or KiB" اندازه بر حسب کیلوبایت (ضرب در ۱۰۲۴). .IP \fBKB\fR 4 .IX Item "KB" اندازه در واحدهای استاندارد SI بر حسب ۱۰۰۰ بایت. .IP "\fBM\fR یا \fBMiB\fR" 4 .IX Item "M or MiB" اندازه بر حسب مگابایت (ضرب در ۱۰۴۸۵۷۶). .IP \fBMB\fR 4 .IX Item "MB" اندازه در واحدهای استاندارد SI بر حسب ۱۰۰۰۰۰۰ بایت. .IP "\fBG\fR یا \fBGiB\fR" 4 .IX Item "G or GiB" اندازه بر حسب گیگابایت (ضرب در ۲ به توان ۳۰). .IP \fBGB\fR 4 .IX Item "GB" اندازه در واحدهای استاندارد SI بر حسب ۱۰ به توان ۹ بایت. .IP "\fBT\fR یا \fBTiB\fR" 4 .IX Item "T or TiB" اندازه بر حسب ترابایت (ضرب در ۲ به توان ۴۰). .IP \fBTB\fR 4 .IX Item "TB" اندازه در واحدهای استاندارد SI بر حسب ۱۰ به توان ۱۲ بایت. .IP "\fBP\fR یا \fBPiB\fR" 4 .IX Item "P or PiB" اندازه بر حسب پتابایت (ضرب در ۲ به توان ۵۰). .IP \fBPB\fR 4 .IX Item "PB" اندازه در واحدهای استاندارد SI بر حسب ۱۰ به توان ۱۵ بایت. .IP "\fBE\fR یا \fBEiB\fR" 4 .IX Item "E or EiB" اندازه بر حسب اگزابایت (ضرب در ۲ به توان ۶۰). .IP \fBEB\fR 4 .IX Item "EB" اندازه در واحدهای استاندارد SI بر حسب ۱۰ به توان ۱۸ بایت. .IP "\fBZ\fR یا \fBZiB\fR" 4 .IX Item "Z or ZiB" اندازه بر حسب زتابایت (ضرب در ۲ به توان ۷۰). .IP \fBZB\fR 4 .IX Item "ZB" اندازه در واحدهای استاندارد SI بر حسب ۱۰ به توان ۲۱ بایت. .IP "\fBY\fR یا \fBYiB\fR" 4 .IX Item "Y or YiB" اندازه بر حسب یوتابایت (ضرب در ۲ به توان ۸۰). .IP \fBYB\fR 4 .IX Item "YB" اندازه در واحدهای استاندارد SI بر حسب ۱۰ به توان ۲۴ بایت. .PP برای مثال: .PP .Vb 1 \& truncate\-size /file 1G .Ve .PP فایل را به اندازه ۱ گیگابایت کوتاه یا بریده (truncate) می‌کند. .PP دقت کنید زیرا برخی دستورات اندازه‌ها را بر حسب کیلوبایت یا مگابایت دریافت می‌کنند (برای مثال پارامتر "memsize" از قبل بر حسب مگابایت مشخص شده است). افزودن پسوند احتمالاً کاری را که انتظار دارید انجام نخواهد داد. .SS "اعداد هشت‌هشتی و شانزده‌شانزدهی (OCTAL AND HEXADECIMAL NUMBERS)" .IX Subsection "OCTAL AND HEXADECIMAL NUMBERS" برای تعیین مبنا (radix)، از قرارداد زبان C استفاده کنید: پیشوند \f(CW0\fR برای یک عدد هشت‌هشتی (octal) یا پیشوند \f(CW\*(C`0x\*(C'\fR برای یک عدد شانزده‌شانزدهی (hexadecimal). برای مثال: .PP .Vb 3 \& 1234 decimal number 1234 \& 02322 octal number, equivalent to decimal 1234 \& 0x4d2 hexadecimal number, equivalent to decimal 1234 .Ve .PP هنگام استفاده از دستور \f(CW\*(C`chmod\*(C'\fR، تقریباً همیشه می‌خواهید یک عدد هشت‌هشتی را برای حالت (mode) مشخص کنید، و باید پیشوند \f(CW0\fR را قبل از آن قرار دهید (برخلاف برنامه \fBchmod\fR\|(1) یونیکس): .PP .Vb 2 \& chmod 0777 /public # OK \& chmod 777 /public # WRONG! This is mode 777 decimal = 01411 octal. .Ve .PP دستوراتی که اعداد را برمی‌گردانند معمولاً آن‌ها را در مبنای ۱۰ (ده‌دهی) چاپ می‌کنند، اما برخی دستورات اعداد را در مبناهای دیگر چاپ می‌کنند (برای مثال \f(CW\*(C`umask\*(C'\fR حالت را در مبنای هشت، همراه با پیشوند \f(CW0\fR چاپ می‌کند). .SH "جانشین‌ها و الگوها (WILDCARDS AND GLOBBING)" .IX Header "WILDCARDS AND GLOBBING" نه guestfish و نه API زیرین guestfs به‌طور پیش‌فرض گسترش الگوها (globbing) را انجام نمی‌دهند. بنابراین برای مثال دستور زیر کاری را که انتظار دارید انجام نخواهد داد: .PP .Vb 1 \& rm\-rf /home/* .Ve .PP با فرض اینکه دایرکتوری‌ای دقیقاً با نام \fI/home/*\fR نداشته باشید، دستور بالا با خطا مواجه خواهد شد. .PP برای انجام گسترش الگوها، از دستور \f(CW\*(C`glob\*(C'\fR استفاده کنید. .PP .Vb 1 \& glob rm\-rf /home/* .Ve .PP دستور \f(CW\*(C`rm\-rf\*(C'\fR را روی هر مسیری که مطابقت داشته باشد اجرا می‌کند (یعنی احتمالاً اجرای دستور به تعداد دفعات زیاد)، معادل با: .PP .Vb 3 \& rm\-rf /home/jim \& rm\-rf /home/joe \& rm\-rf /home/mary .Ve .PP دستور \f(CW\*(C`glob\*(C'\fR فقط روی مسیرهای ساده مهمان کار می‌کند و نه روی نام دستگاه‌ها. .PP اگر چندین پارامتر داشته باشید که هر کدام شامل یک نویسه جانشین (wildcard) باشند، glob حاصل‌ضرب دکارتی را انجام خواهد داد. .SH "توضیحات (COMMENTS)" .IX Header "COMMENTS" هر خطی که با نویسه \fI#\fR شروع شود به عنوان توضیح (comment) در نظر گرفته شده و نادیده گرفته می‌شود. \fI#\fR می‌تواند به‌طور اختیاری با فاصله خالی همراه باشد، اما \fBنه\fR پس از یک دستور. برای مثال: .PP .Vb 3 \& # this is a comment \& # this is a comment \& foo # NOT a comment .Ve .PP خطوط خالی نیز نادیده گرفته می‌شوند. .SH "اجرای محلی دستورات (RUNNING COMMANDS LOCALLY)" .IX Header "RUNNING COMMANDS LOCALLY" هر خطی که با نویسه \fI!\fR شروع شود به عنوان دستوری که به پوسته محلی ارسال شده در نظر گرفته می‌شود (\fI/bin/sh\fR یا هر آنچه که \fBsystem\fR\|(3) استفاده می‌کند). برای مثال: .PP .Vb 2 \& !mkdir local \& tgz\-out /remote local/remote\-data.tar.gz .Ve .PP یک دایرکتوری به نام \f(CW\*(C`local\*(C'\fR روی سیستم میزبان ایجاد می‌کند و سپس محتویات \fI/remote\fR در سیستم‌فایل مونت‌شده را به \&\fIlocal/remote\-data.tar.gz\fR استخراج می‌کند. (به \f(CW\*(C`tgz\-out\*(C'\fR مراجعه کنید). .PP برای تغییر دایرکتوری محلی، از دستور \f(CW\*(C`lcd\*(C'\fR استفاده کنید. \f(CW\*(C`!cd\*(C'\fR به دلیل نحوه عملکرد زیرفرآیندها (subprocesses) در یونیکس، هیچ تأثیری نخواهد داشت. .SS "دستورات محلی با اجرای درون‌خطی (LOCAL COMMANDS WITH INLINE EXECUTION)" .IX Subsection "LOCAL COMMANDS WITH INLINE EXECUTION" اگر خطی با \fI | command\*(C'\fR برای پایپ کردن (انتقال لوله‌ای) خروجی دستور اول (یک دستور guestfish) به دستور دوم (هر دستور دلخواه در سیستم میزبان) استفاده کنید. برای مثال: .PP .Vb 1 \& cat /etc/passwd | awk \-F: \*(Aq$3 == 0 { print }\*(Aq .Ve .PP (که در آن \f(CW\*(C`cat\*(C'\fR دستور cat در guestfish است، اما \f(CW\*(C`awk\*(C'\fR برنامه awk در سیستم میزبان است). دستور فوق تمام حساب‌های موجود در سیستم‌فایل مهمان را که دارای UID برابر با 0 هستند فهرست می‌کند، یعنی حساب‌های کاربری ریشه از جمله درهای پشتی (backdoors). مثال‌های دیگر: .PP .Vb 3 \& hexdump /bin/ls | head \& list\-devices | tail \-1 \& tgz\-out / \- | tar ztf \- .Ve .PP فاصله قبل از نویسه پایپ الزامی است؛ هرگونه فاصله بعد از نویسه پایپ اختیاری است. هر چیزی بعد از نویسه پایپ مستقیماً به پوسته میزبان ارسال می‌شود، بنابراین می‌تواند شامل هدایت مجدد (redirection)، الگوها (globs) و هر چیز دیگری باشد که در سمت میزبان معنادار است. .PP برای استفاده از یک آرگومان واقعی که با نویسه پایپ آغاز می‌شود، باید آن را در نقل‌قول قرار دهید، مثلاً: .PP .Vb 1 \& echo "|" .Ve .SH "پوشه‌های خانگی (HOME DIRECTORIES)" .IX Header "HOME DIRECTORIES" اگر پارامتری با نویسه \f(CW\*(C`~\*(C'\fR آغاز شود، علامت تیلدا ممکن است به عنوان مسیر یک دایرکتوری خانگی باز شود (یا \f(CW\*(C`~\*(C'\fR برای دایرکتوری خانگی کاربر جاری، یا \f(CW\*(C`~user\*(C'\fR برای کاربر دیگر). .PP توجه داشته باشید که گسترش دایرکتوری خانگی برای کاربران شناخته‌شده \fIروی سیستم میزبان\fR انجام می‌شود، نه در سیستم‌فایل مهمان. .PP برای استفاده از یک آرگومان واقعی که با تیلدا آغاز می‌شود، باید آن را در نقل‌قول قرار دهید، مثلاً: .PP .Vb 1 \& echo "~" .Ve .SH "دیسک‌های رمزگذاری‌شده (ENCRYPTED DISKS)" .IX Header "ENCRYPTED DISKS" مجموعه Libguestfs تا حدی از مهمان‌های لینوکسی که طبق استاندارد راه‌اندازی کلید یکپارچه لینوکس (LUKS) رمزگذاری شده‌اند پشتیبانی می‌کند؛ این استاندارد تقریباً شامل تمامی سیستم‌های رمزگذاری کامل دیسک مورد استفاده در مهمان‌های مدرن لینوکس و همچنین BitLocker ویندوز است. .PP شناسایی دستگاه‌های بلوکی و پارتیشن‌های رمزگذاری‌شده با استفاده از "vfs\-type": .PP .Vb 2 \& > vfs\-type /dev/sda2 \& crypto_LUKS .Ve .PP یا: .PP .Vb 2 \& > vfs\-type /dev/sda2 \& BitLocker .Ve .PP سپس باز کردن آن دستگاه‌ها با استفاده از "cryptsetup\-open". این دستور یک دستگاه device\-mapper به نام \fI/dev/mapper/name\fR ایجاد می‌کند. .PP .Vb 2 \& > cryptsetup\-open /dev/sda2 name \& Enter key or passphrase ("key"): .Ve .PP برای مهمان‌های لینوکس باید به LVM اعلام کنید که گروه‌های حجم (volume groups) را روی دستگاه نگاشت‌شده جدید اسکن کند: .PP .Vb 2 \& vgscan \& vg\-activate\-all true .Ve .PP اکنون سیستم‌های فایل یا حجم‌های منطقی می‌توانند به شیوه معمول سوار (mount) شوند. .PP پیش از بستن یک دستگاه رمزگذاری‌شده، باید هرگونه حجم منطقی موجود روی آن را پیاده (unmount) کرده و با فراخوانی \&\f(CW\*(C`vg\-activate false VG\*(C'\fR روی هر یک، گروه‌های حجم را غیرفعال کنید. سپس می‌توانید دستگاه نگاشت‌شده (mapper device) را ببندید: .PP .Vb 2 \& vg\-activate false /dev/VG \& cryptsetup\-close /dev/mapper/name .Ve .SH "مسیرهای ویندوز (WINDOWS PATHS)" .IX Header "WINDOWS PATHS" اگر یک مسیر دارای پیشوند \f(CW\*(C`win:\*(C'\fR باشد، می‌توانید از حروف درایو و مسیرهای به سبک ویندوز (با برخی محدودیت‌ها) استفاده کنید. دستورات زیر معادل یکدیگرند: .PP .Vb 1 \& file /WINDOWS/system32/config/system.LOG \& \& file win:\ewindows\esystem32\econfig\esystem.log \& \& file WIN:C:\eWindows\eSYSTEM32\eCONFIG\eSYSTEM.LOG .Ve .PP پارامتر در «پشت صحنه» با جستجوی موقعیتی که درایو در آن سوار شده است، افزودن آن به ابتدای مسیر، تبدیل تمام کاراکترهای بک‌اسلش به اسلش رو به جلو، و سپس حل نتیجه با استفاده از "case\-sensitive\-path" بازنویسی می‌شود. به عنوان مثال اگر درایو E: روی \fI/e\fR سوار شده باشد، ممکن است پارامتر به این صورت بازنویسی شود: .PP .Vb 1 \& win:e:\efoo\ebar => /e/FOO/bar .Ve .PP این قابلیت فقط در موقعیت‌های آرگومانی که انتظار یک مسیر را دارند کار می‌کند. .SH "بارگذاری و دانلود فایل‌ها (UPLOADING AND DOWNLOADING FILES)" .IX Header "UPLOADING AND DOWNLOADING FILES" برای دستوراتی مانند \f(CW\*(C`upload\*(C'\fR، \f(CW\*(C`download\*(C'\fR، \f(CW\*(C`tar\-in\*(C'\fR، \f(CW\*(C`tar\-out\*(C'\fR و سایر دستوراتی که از یک فایل محلی بارگذاری یا در آن دانلود می‌کنند، می‌توانید از نام فایل ویژه \f(CW\*(C`\-\*(C'\fR به معنای «از ورودی استاندارد (stdin)» یا «به خروجی استاندارد (stdout)» استفاده کنید. برای مثال: .PP .Vb 1 \& upload \- /foo .Ve .PP ورودی استاندارد (stdin) را می‌خواند و از آن فایلی به نام \fI/foo\fR در تصویر دیسک ایجاد می‌کند، و: .PP .Vb 1 \& tar\-out /etc \- | tar tf \- .Ve .PP تاربال (tarball) را در stdout می‌نویسد و سپس آن را به دستور خارجی "tar" هدایت (pipe) می‌کند (بخش "PIPES" را ببینید). .PP هنگام استفاده از \f(CW\*(C`\-\*(C'\fR برای خواندن از stdin، ورودی تا انتهای stdin خوانده می‌شود. همچنین می‌توانید از یک نحو ویژه شبیه به "heredoc" برای خواندن تا یک نشانه پایانی دلخواه استفاده کنید: .PP .Vb 5 \& upload \-</dev/null 2>&1 ||: \& } \& trap cleanup_guestfish EXIT ERR \& \& guestfish \-\-remote \-\- run \& \& # ... .Ve .SS "عدم کارکرد کنترل از راه دور با گزینه‌هایی نظیر \fI\-a\fP (REMOTE CONTROL DOES NOT WORK WITH \fI\-a\fP ETC. OPTIONS)" .IX Subsection "REMOTE CONTROL DOES NOT WORK WITH -a ETC. OPTIONS" گزینه‌هایی مانند \fI\-a\fR، \fI\-\-add\fR، \fI\-N\fR، \fI\-\-new\fR و غیره تعامل مناسبی با پشتیبانی راه دور ندارند. آن‌ها به صورت محلی پردازش می‌شوند و به guestfish راه دور ارسال نمی‌شوند. به طور خاص، دستور زیر آنچه انتظار دارید را انجام نخواهد داد: .PP .Vb 1 \& guestfish \-\-remote \-\-add disk.img .Ve .PP از این گزینه‌ها استفاده نکنید. در عوض از دستورات معادل آن‌ها استفاده کنید، برای مثال: .PP .Vb 1 \& guestfish \-\-remote add\-drive disk.img .Ve .PP یا: .PP .Vb 2 \& guestfish \-\-remote \& > add disk.img .Ve .SS "قفل شدن دستور RUN در کنترل از راه دور (REMOTE CONTROL RUN COMMAND HANGING)" .IX Subsection "REMOTE CONTROL RUN COMMAND HANGING" استفاده از دستور \f(CW\*(C`run\*(C'\fR (یا \f(CW\*(C`launch\*(C'\fR) از راه دور در زمینه جایگزینی دستور (command substitution) باعث قفل شدن (hang) می‌شود، یعنی این کار را انجام ندهید (به بک‌تیک‌ها توجه کنید): .PP .Vb 1 \& a=\`guestfish \-\-remote run\` .Ve .PP از آنجا که دستور \f(CW\*(C`run\*(C'\fR هیچ خروجی‌ای در stdout تولید نمی‌کند، این کار در هر صورت فایده‌ای ندارد. برای اطلاعات بیشتر پیوند https://bugzilla.redhat.com/show_bug.cgi?id=592910 را ببینید. .SH "تصاویر دیسک آماده (PREPARED DISK IMAGES)" .IX Header "PREPARED DISK IMAGES" از پارامتر \fI\-N [filename=]type\fR یا \fI\-\-new [filename=]type\fR برای انتخاب یکی از مجموعه تصاویر دیسک از پیش قالب‌بندی‌شده‌ای که guestfish می‌تواند برای صرفه‌جویی در تایپ برای شما ایجاد کند، استفاده کنید. این گزینه به ویژه برای اهداف آزمایشی بسیار مفید است. این گزینه به جای گزینه \fI\-a\fR استفاده می‌شود و مانند \fI\-a\fR می‌تواند چندین بار تکرار شود (و می‌تواند با \fI\-a\fR ترکیب شود). .PP دیسک جدید برای اولین \fI\-N\fR با نام \fItest1.img\fR، برای دومی \fItest2.img\fR و به همین ترتیب نام‌گذاری می‌شود. فایل‌های موجود در دایرکتوری جاری \fIرونویسی می‌شوند\fR. می‌توانید با مشخص کردن \f(CW\*(C`filename=\*(C'\fR پیش از نوع دیسک، نام فایل متفاوتی را استفاده کنید (مثال‌های زیر را ببینید). .PP نوع (type) به طور خلاصه نحوه اندازه، پارتیشن‌بندی، ایجاد سیستم(های) فایل و نحوه افزودن محتوا را توصیف می‌کند. به صورت اختیاری، نوع می‌تواند با پارامترهای اضافی همراه شود که با کاراکترهای \f(CW\*(C`:\*(C'\fR (دونقطه) از هم جدا می‌شوند. برای مثال، \fI\-N fs\fR یک دیسک پیش‌فرض ۱ گیگابایتی کم‌حجم (sparsely\-allocated) شامل یک پارتیشن تکی ایجاد می‌کند که پارتیشن آن به صورت ext2 قالب‌بندی شده است. دستور \fI\-N fs:ext4:2G\fR مشابه است، اما برای یک سیستم‌فایل ext4 روی دیسک ۲ گیگابایتی. .PP توجه داشته باشید که سیستم‌فایل آماده سوار (mount) نمی‌شود. معمولاً باید از دستور \f(CW\*(C`mount /dev/sda1 /\*(C'\fR استفاده کنید یا گزینه \fI\-m /dev/sda1\fR را اضافه نمایید. .PP اگر هر یک از گزینه‌های \fI\-N\fR یا \fI\-\-new\fR داده شوند، ابزارک (appliance) کمکی libguestfs به صورت خودکار راه‌اندازی می‌شود. .SS "مثال‌ها (EXAMPLES)" .IX Subsection "EXAMPLES" ایجاد یک دیسک ۱ گیگابایتی با پارتیشن فرمت‌شده با ext4 به نام \fItest1.img\fR در دایرکتوری جاری: .PP .Vb 1 \& guestfish \-N fs:ext4 .Ve .PP ایجاد یک دیسک ۳۲ مگابایتی با پارتیشن فرمت‌شده با VFAT و سوار کردن آن: .PP .Vb 1 \& guestfish \-N fs:vfat:32M \-m /dev/sda1 .Ve .PP ایجاد یک دیسک خالی ۲۰۰ مگابایتی: .PP .Vb 1 \& guestfish \-N disk:200M .Ve .PP ایجاد یک دیسک خالی ۲۰۰ مگابایتی به نام \fIblankdisk.img\fR (به جای \fItest1.img\fR): .PP .Vb 1 \& guestfish \-N blankdisk.img=disk:200M .Ve .SS "\fB\-N disk\fP \- ایجاد یک دیسک خام" .IX Subsection "-N disk - create a blank disk" \&\f(CW\*(C`guestfish \-N [\fR\f(CIfilename\fR\f(CW=]disk[:\fR\f(CIsize\fR\f(CW]\*(C'\fR .PP ایجاد یک دیسک خام، با اندازه پیش‌فرض 1G. .PP اندازه پیش‌فرض را می‌توان با ارائه یک پارامتر اختیاری تغییر داد. .PP پارامترهای اختیاری عبارتند از: .PP .Vb 2 \& Name Default value \& size 1G the size of the disk image .Ve .SS "\fB\-N part\fP \- ایجاد یک دیسک پارتیشن‌بندی‌شده" .IX Subsection "-N part - create a partitioned disk" \&\f(CW\*(C`guestfish \-N [\fR\f(CIfilename\fR\f(CW=]part[:\fR\f(CIsize\fR\f(CW[:\fR\f(CIpartition\fR\f(CW]]\*(C'\fR .PP ایجاد دیسک با یک پارتیشن منفرد. به طور پیش‌فرض اندازه دیسک 1G است (فضای در دسترس در پارتیشن کمی کوچکتر خواهد بود) و جدول پارتیشن از نوع MBR (به سبک قدیمی DOS) خواهد بود. .PP این مقادیر پیش‌فرض را می‌توان با ارائه پارامترهای اختیاری تغییر داد. .PP پارامترهای اختیاری عبارتند از: .PP .Vb 3 \& Name Default value \& size 1G the size of the disk image \& partition mbr partition table type .Ve .SS "\fB\-N fs\fP \- ایجاد یک سیستم‌فایل" .IX Subsection "-N fs - create a filesystem" \&\f(CW\*(C`guestfish \-N [\fR\f(CIfilename\fR\f(CW=]fs[:\fR\f(CIfilesystem\fR\f(CW[:\fR\f(CIsize\fR\f(CW[:\fR\f(CIpartition\fR\f(CW]]]\*(C'\fR .PP ایجاد یک دیسک با یک پارتیشن منفرد، به‌طوری‌که پارتیشن حاوی یک سیستم‌فایل خالی باشد. به صورت پیش‌فرض یک دیسک 1G (فضای در دسترس سیستم‌فایل کمی کوچکتر خواهد بود) با جدول پارتیشن MBR (سبک قدیمی DOS) و سیستم‌فایل ext2 ایجاد می‌شود. .PP این مقادیر پیش‌فرض را می‌توان با ارائه پارامترهای اختیاری تغییر داد. .PP پارامترهای اختیاری عبارتند از: .PP .Vb 4 \& Name Default value \& filesystem ext2 the type of filesystem to use \& size 1G the size of the disk image \& partition mbr partition table type .Ve .SS "\fB\-N lv\fP \- ایجاد یک دیسک با حجم منطقی" .IX Subsection "-N lv - create a disk with logical volume" \&\f(CW\*(C`guestfish \-N [\fR\f(CIfilename\fR\f(CW=]lv[:\fR\f(CIname\fR\f(CW[:\fR\f(CIsize\fR\f(CW[:\fR\f(CIpartition\fR\f(CW]]]\*(C'\fR .PP ایجاد یک دیسک با یک پارتیشن منفرد، تنظیم پارتیشن به عنوان یک حجم فیزیکی LVM2، و قرار دادن یک گروه حجم (volume group) و حجم منطقی (logical volume) روی آن. به طور پیش‌فرض یک دیسک 1G با VG و LV به نام \f(CW\*(C`/dev/VG/LV\*(C'\fR ایجاد می‌شود. می‌توانید نام VG و LV را با ارائه نامی دیگر به عنوان اولین پارامتر اختیاری تغییر دهید. .PP توجه داشته باشید که این دستور سیستم‌فایل ایجاد نمی‌کند. برای این کار از \*(Aqlvfs\*(Aq استفاده کنید. .PP پارامترهای اختیاری عبارتند از: .PP .Vb 4 \& Name Default value \& name /dev/VG/LV the name of the VG and LV to use \& size 1G the size of the disk image \& partition mbr partition table type .Ve .SS "\fB\-N lvfs\fP \- ایجاد یک دیسک با حجم منطقی و سیستم‌فایل" .IX Subsection "-N lvfs - create a disk with logical volume and filesystem" \&\f(CW\*(C`guestfish \-N [\fR\f(CIfilename\fR\f(CW=]lvfs[:\fR\f(CIname\fR\f(CW[:\fR\f(CIfilesystem\fR\f(CW[:\fR\f(CIsize\fR\f(CW[:\fR\f(CIpartition\fR\f(CW]]]]\*(C'\fR .PP ایجاد یک دیسک با یک پارتیشن منفرد، تنظیم پارتیشن به عنوان یک حجم فیزیکی LVM2، و قرار دادن یک گروه حجم و حجم منطقی روی آن. سپس قالب‌بندی LV با یک سیستم‌فایل. به طور پیش‌فرض یک دیسک 1G با VG و LV به نام \f(CW\*(C`/dev/VG/LV\*(C'\fR همراه با سیستم‌فایل ext2 ایجاد می‌شود. .PP پارامترهای اختیاری عبارتند از: .PP .Vb 5 \& Name Default value \& name /dev/VG/LV the name of the VG and LV to use \& filesystem ext2 the type of filesystem to use \& size 1G the size of the disk image \& partition mbr partition table type .Ve .SS "\fB\-N bootroot\fP \- ایجاد یک سیستم‌فایل بوت و ریشه" .IX Subsection "-N bootroot - create a boot and root filesystem" \&\f(CW\*(C`guestfish \-N [\fR\f(CIfilename\fR\f(CW=]bootroot[:\fR\f(CIbootfs\fR\f(CW[:\fR\f(CIrootfs\fR\f(CW[:\fR\f(CIsize\fR\f(CW[:\fR\f(CIbootsize\fR\f(CW[:\fR\f(CIpartition\fR\f(CW]]]]]\*(C'\fR .PP ایجاد یک دیسک با دو پارتیشن، برای سیستم‌فایل‌های بوت (boot) و ریشه (root). هر دو سیستم‌فایل به طور مستقل قالب‌بندی می‌شوند. چندین پارامتر اختیاری وجود دارد که چینش دقیق و انواع سیستم‌فایل را کنترل می‌کنند. .PP پارامترهای اختیاری عبارتند از: .PP .Vb 6 \& Name Default value \& bootfs ext2 the type of filesystem to use for boot \& rootfs ext2 the type of filesystem to use for root \& size 1G the size of the disk image \& bootsize 128M the size of the boot filesystem \& partition mbr partition table type .Ve .SS "\fB\-N bootrootlv\fP \- ایجاد سیستم‌فایل بوت و ریشه با استفاده از LVM" .IX Subsection "-N bootrootlv - create a boot and root filesystem using LVM" \&\f(CW\*(C`guestfish \-N [\fR\f(CIfilename\fR\f(CW=]bootrootlv[:\fR\f(CIname\fR\f(CW[:\fR\f(CIbootfs\fR\f(CW[:\fR\f(CIrootfs\fR\f(CW[:\fR\f(CIsize\fR\f(CW[:\fR\f(CIbootsize\fR\f(CW[:\fR\f(CIpartition\fR\f(CW]]]]]]\*(C'\fR .PP این مورد مشابه \f(CW\*(C`bootroot\*(C'\fR است اما (فقط) سیستم‌فایل ریشه روی یک حجم منطقی قرار می‌گیرد که به طور پیش‌فرض \f(CW\*(C`/dev/VG/LV\*(C'\fR نام دارد. چندین پارامتر اختیاری چینش دقیق را کنترل می‌کنند. .PP پارامترهای اختیاری عبارتند از: .PP .Vb 7 \& Name Default value \& name /dev/VG/LV the name of the VG and LV for root \& bootfs ext2 the type of filesystem to use for boot \& rootfs ext2 the type of filesystem to use for root \& size 1G the size of the disk image \& bootsize 128M the size of the boot filesystem \& partition mbr partition table type .Ve .SH "افزودن ذخیره‌ساز از راه دور (ADDING REMOTE STORAGE)" .IX Header "ADDING REMOTE STORAGE" \&\fIبرای مستندات سطح API در این موضوع، بخش‌های "guestfs_add_drive_opts" در \fR\f(BIguestfs\fR\fI\|(3) و "REMOTE STORAGE" در \fR\f(BIguestfs\fR\fI\|(3) را ببینید\fR. .PP در خط فرمان می‌توانید از گزینه \fI\-a\fR برای افزودن دستگاه‌های بلوکی شبکه با استفاده از قالب شبیه URI استفاده کنید، به عنوان مثال: .PP .Vb 1 \& guestfish \-a ssh://root@example.com/disk.img .Ve .PP شناسه‌های URI \fIنمی‌توانند\fR با دستور "add" استفاده شوند. دستور معادل با استفاده مستقیم از API به صورت زیر است: .PP .Vb 1 \& > add /disk.img protocol:ssh server:tcp:example.com username:root .Ve .PP قالب‌های ممکن \fI\-a URI\fR در ادامه شرح داده شده‌اند. .SS "\fB\-a disk.img\fP" .IX Subsection "-a disk.img" .SS "\fB\-a file:///path/to/disk.img\fP" .IX Subsection "-a file:///path/to/disk.img" افزودن تصویر دیسک محلی (یا دستگاه) به نام \fIdisk.img\fR. .SS "\fB\-a ftp://[user@]example.com[:port]/disk.img\fP" .IX Subsection "-a ftp://[user@]example.com[:port]/disk.img" .SS "\fB\-a ftps://[user@]example.com[:port]/disk.img\fP" .IX Subsection "-a ftps://[user@]example.com[:port]/disk.img" .SS "\fB\-a http://[user@]example.com[:port]/disk.img\fP" .IX Subsection "-a http://[user@]example.com[:port]/disk.img" .SS "\fB\-a https://[user@]example.com[:port]/disk.img\fP" .IX Subsection "-a https://[user@]example.com[:port]/disk.img" افزودن یک دیسک واقع روی یک سرور راه دور FTP یا HTTP. .PP دستور معادل API به این صورت خواهد بود: .PP .Vb 1 \& > add /disk.img protocol:(ftp|...) server:tcp:example.com .Ve .SS "\fB\-a iscsi://example.com[:port]/target\-iqn\-name[/lun]\fP" .IX Subsection "-a iscsi://example.com[:port]/target-iqn-name[/lun]" افزودن دیسک واقع روی یک سرور iSCSI. .PP دستور معادل API به این صورت خواهد بود: .PP .Vb 1 \& > add target\-iqn\-name/lun protocol:iscsi server:tcp:example.com .Ve .SS "\fB\-a nbd://example.com[:port]\fP" .IX Subsection "-a nbd://example.com[:port]" .SS "\fB\-a nbd://example.com[:port]/exportname\fP" .IX Subsection "-a nbd://example.com[:port]/exportname" .SS "\fB\-a nbd://?socket=/socket\fP" .IX Subsection "-a nbd://?socket=/socket" .SS "\fB\-a nbd:///exportname?socket=/socket\fP" .IX Subsection "-a nbd:///exportname?socket=/socket" افزودن یک دیسک واقع روی ذخیره‌ساز Network Block Device (nbd). .PP بخش \fIexportname\fR در URI یک نام اکسپورت NBD را مشخص می‌کند، اما معمولاً خالی رها می‌شود. .PP پارامتر اختیاری \fI?socket\fR را می‌توان برای مشخص کردن یک سوکت دامنه یونیکس که از طریق آن با سرور NBD ارتباط برقرار می‌کنیم استفاده کرد. توجه داشته باشید که نمی‌توانید نام سرور (یعنی TCP/IP) و مسیر سوکت را با هم ترکیب کنید. .PP دستور معادل API به صورت زیر خواهد بود (بدون نام اکسپورت): .PP .Vb 1 \& > add "" protocol:nbd server:[tcp:example.com|unix:/socket] .Ve .SS "\fB\-a rbd:///pool/disk\fP" .IX Subsection "-a rbd:///pool/disk" .SS "\fB\-a rbd://example.com[:port]/pool/disk\fP" .IX Subsection "-a rbd://example.com[:port]/pool/disk" افزودن یک تصویر دیسک واقع روی یک حجم ذخیره‌سازی Ceph (RBD/librbd). .PP اگرچه libguestfs و Ceph از چندین سرور پشتیبانی می‌کنند، اما هنگام استفاده از این نحو URI تنها یک سرور واحد را می‌توان مشخص کرد. .PP دستور معادل API به این صورت خواهد بود: .PP .Vb 1 \& > add pool/disk protocol:rbd server:tcp:example.com:port .Ve .SS "\fB\-a ssh://[user@]example.com[:port]/disk.img\fP" .IX Subsection "-a ssh://[user@]example.com[:port]/disk.img" افزودن یک تصویر دیسک واقع روی یک سرور راه دور، با دسترسی از طریق پروتکل SFTP پوسته امن (ssh). پروتکل SFTP به طور پیش‌فرض توسط تمامی سرورهای اصلی SSH پشتیبانی می‌شود. .PP دستور معادل API به این صورت خواهد بود: .PP .Vb 1 \& > add /disk protocol:ssh server:tcp:example.com [username:user] .Ve .PP توجه داشته باشید که شناسه‌های URI از نحو RFC 3986 پیروی می‌کنند: به ویژه، محدودیت‌هایی روی کاراکترهای مجاز برای اجزای مختلف URI وجود دارد. کاراکترهایی مانند \f(CW\*(C`:\*(C'\fR، \f(CW\*(C`@\*(C'\fR و \f(CW\*(C`/\*(C'\fR \fBباید\fR کدگذاری درصدی (percent\-encoded) شوند: .PP .Vb 1 \& $ guestfish \-a ssh://user:pass%40word@example.com/disk.img .Ve .PP در این حالت، گذرواژه \f(CW\*(C`pass@word\*(C'\fR است. .SH "نوارهای پیشرفت (PROGRESS BARS)" .IX Header "PROGRESS BARS" برخی از دستورات طولانی‌مدت (نه همه آن‌ها) هنگام اجرا پیام‌های اعلان پیشرفت ارسال می‌کنند. برنامه Guestfish این پیام‌ها را به نوارهای پیشرفت تبدیل می‌کند. .PP هنگامی که اجرای دستوری که از نوارهای پیشرفت پشتیبانی می‌کند بیش از دو ثانیه طول بکشد، و اگر نوارهای پیشرفت فعال باشند، مشاهده خواهید کرد که نواری در زیر دستور ظاهر می‌شود: .PP .Vb 2 \& > copy\-size /large\-file /another\-file 2048M \& / 10% [#####\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-] 00:30 .Ve .PP اسپینر (نماد چرخان) در سمت چپ به ازای هر اعلان پیشرفت دریافت شده از بک‌اند یک بار می‌چرخد. این یک اطمینان (معقول و) قطعی است که دستور «در حال انجام کاری است» حتی اگر نوار پیشرفت حرکت نکند، زیرا دستور قادر است اعلان‌های پیشرفت را ارسال کند. هنگامی که نوار به ۱۰۰٪ می‌رسد و دستور به پایان می‌رسد، اسپینر ناپدید می‌شود. .PP نوارهای پیشرفت به طور پیش‌فرض هنگام استفاده تعاملی از guestfish فعال هستند. می‌توانید آن‌ها را حتی برای حالت‌های غیرتعاملی با استفاده از \fI\-\-progress\-bars\fR فعال کنید، و می‌توانید آن‌ها را با استفاده از \fI\-\-no\-progress\-bars\fR به طور کامل غیرفعال نمایید. .SH "اعلان ورودی (PROMPT)" .IX Header "PROMPT" می‌توانید اعلان ورودی (prompt) پیش‌فرض (\f(CW\*(C`>\*(C'\fR) را با تنظیم متغیر محیطی \f(CW\*(C`GUESTFISH_PS1\*(C'\fR تغییر داده یا به آن رنگ اضافه کنید. رشته دوم (\f(CW\*(C`GUESTFISH_OUTPUT\*(C'\fR) پس از وارد شدن دستور و قبل از خروجی چاپ می‌شود و به شما امکان می‌دهد رنگ خروجی را کنترل کنید. رشته سوم (\f(CW\*(C`GUESTFISH_INIT\*(C'\fR) قبل از پیام خوش‌آمدگویی چاپ می‌شود و به شما اجازه می‌دهد رنگ آن پیام را کنترل نمایید. رشته چهارم (\f(CW\*(C`GUESTFISH_RESTORE\*(C'\fR) قبل از خروج guestfish چاپ می‌شود. .PP یک اعلان ساده را می‌توان با تنظیم \f(CW\*(C`GUESTFISH_PS1\*(C'\fR روی یک رشته دیگر تعیین کرد: .PP .Vb 5 \& $ GUESTFISH_PS1=\*(Aq(type a command) \*(Aq \& $ export GUESTFISH_PS1 \& $ guestfish \& [...] \& (type a command) ▂ .Ve .PP همچنین می‌توانید از توالی‌های گریز (escape sequences) ویژه استفاده کنید، همان‌طور که در جدول زیر شرح داده شده است: .IP \e\e 4 .IX Item "" یک کاراکتر بک‌اسلش واقعی. .IP \e[ 4 .IX Item "[" .PD 0 .IP \e] 4 .IX Item "]" .PD (این موارد فقط باید در \f(CW\*(C`GUESTFISH_PS1\*(C'\fR استفاده شوند.) .Sp کاراکترهای غیرقابل چاپ (مانند کدهای کنترل ترمینال برای رنگ‌ها) را بین \f(CW\*(C`\e[...\e]\*(C'\fR قرار دهید. کاری که این دستور انجام می‌دهد این است که به کتابخانه \fBreadline\fR\|(3) اطلاع می‌دهد که باید با این زیردنباله به عنوان کاراکتر با عرض صفر (zero\-width) رفتار کند تا نمایش مجدد خط فرمان، ویرایش و غیره به درستی کار کند. .IP \ea 4 .IX Item "a" یک کاراکتر زنگ (bell). .IP \ee 4 .IX Item "e" یک کاراکتر ASCII ESC (گریز / escape). .IP \en 4 .IX Item "n" یک خط جدید (newline). .IP \er 4 .IX Item "r" یک بازگشت به ابتدای سطر (carriage return). .IP \eNNN 4 .IX Item "NNN" کاراکتر اسکی که کد آن مقدار اکتال NNN است. .IP \exNN 4 .IX Item "xNN" کاراکتر اسکی که کد آن مقدار هگزادسیمال NN است. .SS "مثال‌هایی از اعلان ورودی (EXAMPLES OF PROMPTS)" .IX Subsection "EXAMPLES OF PROMPTS" توجه داشته باشید که این مثال‌ها به ترمینالی نیاز دارند که از کدهای گریز ANSI پشتیبانی کند. .IP \(bu 4 .Sp .Vb 1 \& GUESTFISH_PS1=\*(Aq\e[\ee[1;30m\e]>\e[\ee[0;30m\e] \*(Aq .Ve .Sp نسخه مشکی پررنگ (bold) از اعلان معمولی. .IP \(bu 4 .Sp .Vb 4 \& GUESTFISH_PS1=\*(Aq\e[\ee[1;32m\e]>\e[\ee[0;31m\e] \*(Aq \& GUESTFISH_OUTPUT=\*(Aq\ee[0m\*(Aq \& GUESTFISH_RESTORE="$GUESTFISH_OUTPUT" \& GUESTFISH_INIT=\*(Aq\ee[1;34m\*(Aq .Ve .Sp متن خوش‌آمدگویی آبی، اعلان ورودی سبز، دستورات قرمز، خروجی دستور مشکی. .SH "ویندوز ۸ (WINDOWS 8)" .IX Header "WINDOWS 8" قابلیت «راه‌اندازی سریع» (fast startup) در ویندوز ۸ می‌تواند مانع از سوار کردن پارتیشن‌های NTFS توسط guestfish شود. بخش "WINDOWS HIBERNATION AND WINDOWS 8 FAST STARTUP" در \fBguestfs\fR\|(3) را ببینید. .SH "دستورات GUESTFISH (GUESTFISH COMMANDS)" .IX Header "GUESTFISH COMMANDS" دستورات این بخش دستورات کاربردی و کمکی guestfish هستند، به عبارت دیگر، آن‌ها بخشی از API اصلی \fBguestfs\fR\|(3) نیستند. .SS help .IX Subsection "help" .Vb 3 \& help \& help cmd \& help \-l|\-\-list .Ve .PP بدون هیچ پارامتری، راهنمای کلی را ارائه می‌دهد. .PP با پارامتر \f(CW\*(C`cmd\*(C'\fR، راهنمای تفصیلی آن دستور را نمایش می‌دهد. .PP با \fI\-l\fR یا \fI\-\-list\fR، تمام دستورات را فهرست می‌کند. .SS exit .IX Subsection "exit" .SS quit .IX Subsection "quit" از guestfish خارج می‌شود. همچنین می‌توانید از کلید \f(CW\*(C`^D\*(C'\fR استفاده کنید. .SS alloc .IX Subsection "alloc" .SS allocate .IX Subsection "allocate" .Vb 1 \& alloc filename size .Ve .PP این دستور یک فایل خالی (صفرشده) با اندازه داده شده ایجاد کرده و سپس آن را اضافه می‌کند تا بتوان آن را بیشتر بررسی کرد. .PP برای ایجاد پیشرفته‌تر تصویر، "disk\-create" را ببینید. .PP اندازه را می‌توان با استفاده از پسوندهای استاندارد مشخص کرد، مانند \f(CW\*(C`1M\*(C'\fR. .PP برای ایجاد یک فایل کم‌حجم (sparse)، به جای آن از "sparse" استفاده کنید. برای ایجاد یک تصویر دیسک آماده، بخش "تصاویر دیسک آماده (PREPARED DISK IMAGES)" را ببینید. .SS copy\-in .IX Subsection "copy-in" .Vb 1 \& copy\-in local [local ...] /remotedir .Ve .PP دستور \f(CW\*(C`copy\-in\*(C'\fR فایل‌ها یا دایرکتوری‌های محلی را به صورت بازگشتی در تصویر دیسک کپی کرده و آن‌ها را در دایرکتوری به نام \fI/remotedir\fR (که باید وجود داشته باشد) قرار می‌دهد. این فرافرمان (meta\-command) در guestfish در صورت نیاز به دنباله‌ای از دستورات "tar\-in" و سایر دستورات تبدیل می‌شود. .PP چندین فایل و دایرکتوری محلی را می‌توان مشخص کرد، اما آخرین پارامتر همیشه باید یک دایرکتوری راه دور باشد. نویسه‌های عام (wildcards) قابل استفاده نیستند. .SS copy\-out .IX Subsection "copy-out" .Vb 1 \& copy\-out remote [remote ...] localdir .Ve .PP دستور \f(CW\*(C`copy\-out\*(C'\fR فایل‌ها یا دایرکتوری‌های راه دور را به صورت بازگشتی از تصویر دیسک به بیرون کپی کرده و آن‌ها را روی دیسک میزبان در یک دایرکتوری محلی به نام \f(CW\*(C`localdir\*(C'\fR (که باید وجود داشته باشد) قرار می‌دهد. این فرافرمان در guestfish در صورت نیاز به دنباله‌ای از دستورات "download"، "tar\-out" و سایر دستورات تبدیل می‌شود. .PP چندین فایل و دایرکتوری راه دور را می‌توان مشخص کرد، اما آخرین پارامتر همیشه باید یک دایرکتوری محلی باشد. برای دانلود در دایرکتوری جاری، از \f(CW\*(C`.\*(C'\fR مانند زیر استفاده کنید: .PP .Vb 1 \& copy\-out /home . .Ve .PP نویسه‌های عام در دستور معمولی قابل استفاده نیستند، اما می‌توانید با کمک "glob" به شکل زیر از آن‌ها استفاده کنید: .PP .Vb 1 \& glob copy\-out /home/* . .Ve .SS delete\-event .IX Subsection "delete-event" .Vb 1 \& delete\-event name .Ve .PP گرداننده رویدادی (event handler) که قبلاً به نام \f(CW\*(C`name\*(C'\fR ثبت شده بود را حذف می‌کند. اگر چندین گرداننده رویداد با همین نام ثبت شده باشند، همه آن‌ها حذف می‌شوند. .PP همچنین دستورات guestfish به نام‌های \f(CW\*(C`event\*(C'\fR و \f(CW\*(C`list\-events\*(C'\fR را ببینید. .SS display .IX Subsection "display" .Vb 1 \& display filename .Ve .PP از \f(CW\*(C`display\*(C'\fR (یک برنامه نمایش گرافیکی) برای نمایش یک فایل تصویر استفاده کنید. این دستور فایل را دانلود کرده و \f(CW\*(C`display\*(C'\fR را روی آن اجرا می‌کند. .PP برای استفاده از یک برنامه جایگزین، متغیر محیطی \f(CW\*(C`GUESTFISH_DISPLAY_IMAGE\*(C'\fR را تنظیم کنید. به عنوان مثال برای استفاده از برنامه نمایش تصاویر گنوم: .PP .Vb 1 \& export GUESTFISH_DISPLAY_IMAGE=eog .Ve .PP همچنین \fBdisplay\fR\|(1) را ببینید. .SS echo .IX Subsection "echo" .Vb 1 \& echo [params ...] .Ve .PP این دستور پارامترها را در ترمینال چاپ (echo) می‌کند. .SS edit .IX Subsection "edit" .SS vi .IX Subsection "vi" .SS emacs .IX Subsection "emacs" .Vb 1 \& edit filename .Ve .PP برای ویرایش یک فایل استفاده می‌شود. فایل را دانلود کرده، با استفاده از ویرایشگر شما به صورت محلی ویرایش می‌کند، سپس نتیجه را بارگذاری می‌نماید. .PP ویرایشگر همان \f(CW$EDITOR\fR است. با این حال اگر از دستورات جایگزین \f(CW\*(C`vi\*(C'\fR یا \f(CW\*(C`emacs\*(C'\fR استفاده کنید، ویرایشگرهای متناظر آن‌ها را دریافت خواهید کرد. .SS event .IX Subsection "event" .Vb 1 \& event name eventset "shell script ..." .Ve .PP ثبت یک قطعه اسکریپت پوسته که هنگام رخ دادن یک رویداد اجرا می‌شود. برای بررسی API رویداد در libguestfs، بخش "guestfs_set_event_callback" در \fBguestfs\fR\|(3) را ببینید. .PP پارامتر \f(CW\*(C`name\*(C'\fR نامی است که به این گرداننده رویداد می‌دهید. می‌تواند هر رشته‌ای (حتی رشته خالی) باشد و صرفاً برای این است که بتوانید با استفاده از دستور \f(CW\*(C`delete\-event\*(C'\fR در guestfish گرداننده را حذف کنید. .PP پارامتر \f(CW\*(C`eventset\*(C'\fR یک فهرست جدا شده با کاما از یک یا چند رویداد است، به عنوان مثال \f(CW\*(C`close\*(C'\fR یا \f(CW\*(C`close,trace\*(C'\fR. مقدار ویژه \f(CW\*(C`*\*(C'\fR به معنای همه رویدادها است. .PP پارامتر سوم و نهایی قطعه اسکریپت پوسته (یا هر دستور خارجی) است که هنگام وقوع هر یک از رویدادهای موجود در eventset اجرا می‌شود. این اسکریپت با استفاده از \f(CW\*(C`$SHELL \-c\*(C'\fR اجرا می‌شود، یا اگر \f(CW$SHELL\fR تنظیم نشده باشد با \fI/bin/sh \-c\fR. .PP قطعه اسکریپت پوسته، پارامترهای بازفراخوانی (callback) را به صورت آرگومان‌های \f(CW$1\fR، \f(CW$2\fR و غیره دریافت می‌کند. رویداد واقعی فراخوانی‌شده در متغیر محیطی \f(CW$EVENT\fR در دسترس است. .PP .Vb 4 \& event "" close "echo closed" \& event messages appliance,library,trace "echo $@" \& event "" progress "echo progress: $3/$4" \& event "" * "echo $EVENT $@" .Ve .PP همچنین دستورات guestfish به نام‌های \f(CW\*(C`delete\-event\*(C'\fR و \f(CW\*(C`list\-events\*(C'\fR را ببینید. .SS glob .IX Subsection "glob" .Vb 1 \& glob command args... .Ve .PP گسترش نویسه‌های عام در هر یک از مسیرهای موجود در فهرست args، و اجرای مکرر \f(CW\*(C`command\*(C'\fR روی هر مسیر منطبق. .PP بخش "WILDCARDS AND GLOBBING" را ببینید. .SS hexedit .IX Subsection "hexedit" .Vb 3 \& hexedit \& hexedit \& hexedit .Ve .PP استفاده از hexedit (ویرایشگر هگز) برای ویرایش تمام یا بخشی از یک فایل باینری یا دستگاه بلوکی. .PP این دستور با دانلود کل فایل یا دستگاه، ویرایش محلی آن و سپس بارگذاری مجدد آن کار می‌کند. اگر فایل یا دستگاه بزرگ باشد، باید با استفاده از پارامترهای \f(CW\*(C`max\*(C'\fR و/یا \f(CW\*(C`start\*(C'\fR \f(CW\*(C`max\*(C'\fR مشخص کنید که کدام بخش را می‌خواهید ویرایش کنید. \f(CW\*(C`start\*(C'\fR و \f(CW\*(C`max\*(C'\fR بر حسب بایت مشخص می‌شوند و پسوندهای معمول مانند \f(CW\*(C`1M\*(C'\fR (یک مگابایت) مجاز هستند. .PP برای مثال، برای ویرایش چند سکتور اول یک دیسک می‌توانید دستور زیر را اجرا کنید: .PP .Vb 1 \& hexedit /dev/sda 1M .Ve .PP که به شما امکان می‌دهد در هر نقطه‌ای از مگابایت اول دیسک ویرایش انجام دهید. .PP برای ویرایش سوپربلاک یک سیستم‌فایل ext2 روی \fI/dev/sda1\fR دستور زیر را اجرا کنید: .PP .Vb 1 \& hexedit /dev/sda1 0x400 0x400 .Ve .PP (با فرض اینکه سوپربلاک در مکان استاندارد قرار دارد). .PP این دستور به برنامه خارجی \fBhexedit\fR\|(1) نیاز دارد. می‌توانید با تنظیم متغیر محیطی \f(CW\*(C`HEXEDITOR\*(C'\fR برنامه دیگری را برای استفاده مشخص کنید. .PP همچنین "hexdump" را ببینید. .SS lcd .IX Subsection "lcd" .Vb 1 \& lcd directory .Ve .PP تغییر دایرکتوری محلی، یعنی دایرکتوری جاری خود guestfish. .PP توجه داشته باشید که \f(CW\*(C`!cd\*(C'\fR آن کاری که ممکن است انتظار داشته باشید را انجام نمی‌دهد. .SS list\-events .IX Subsection "list-events" .Vb 1 \& list\-events .Ve .PP فهرست کردن گرداننده‌های رویداد ثبت‌شده با استفاده از دستور \f(CW\*(C`event\*(C'\fR در guestfish. .SS man .IX Subsection "man" .SS manual .IX Subsection "manual" .Vb 1 \& man .Ve .PP صفحه راهنمای guestfish را باز می‌کند. .SS more .IX Subsection "more" .SS less .IX Subsection "less" .Vb 1 \& more filename \& \& less filename .Ve .PP برای مشاهده محتوای یک فایل استفاده می‌شود. .PP نمایش‌دهنده پیش‌فرض \f(CW$PAGER\fR است. با این حال اگر از دستور جایگزین \f(CW\*(C`less\*(C'\fR استفاده کنید، به طور خاص از دستور \f(CW\*(C`less\*(C'\fR استفاده خواهد شد. .SS not .IX Subsection "not" .Vb 1 \& not command [args...] .Ve .PP یک دستور موجود در guestfish را اجرا کرده و کد خروج را نقیض (معکوس) می‌کند؛ بنابراین اگر دستور با شکست مواجه شود، \f(CW\*(C`not command\*(C'\fR موفق خواهد شد. .PP توجه داشته باشید که این دستور مفهوم دستوراتی که مقادیر بولی برمی‌گردانند را معکوس نمی‌کند (برای مثال \f(CW\*(C`not exists /foo\*(C'\fR آن کاری که فکر می‌کنید را انجام نمی‌دهد). .PP برای مثال، \f(CW\*(C`not cat /foo\*(C'\fR بررسی خواهد کرد که فایل وجود ندارد. .SS reopen .IX Subsection "reopen" .Vb 1 \& reopen .Ve .PP بستن و بازگشایی مجدد هندل libguestfs. استفاده از این دستور در حالت عادی ضروری نیست، زیرا هندل به درستی هنگام خروج guestfish بسته می‌شود. با این حال این دستور گاهی برای آزمایش مفید است. .SS setenv .IX Subsection "setenv" .Vb 1 \& setenv VAR value .Ve .PP تنظیم متغیر محیطی \f(CW\*(C`VAR\*(C'\fR روی رشته \f(CW\*(C`value\*(C'\fR. .PP برای چاپ مقدار یک متغیر محیطی از یک دستور پوسته مانند زیر استفاده کنید: .PP .Vb 1 \& !echo $VAR .Ve .SS sparse .IX Subsection "sparse" .Vb 1 \& sparse filename size .Ve .PP یک فایل کم‌حجم (sparse) خالی با اندازه داده شده ایجاد کرده و سپس اضافه می‌کند تا بتوان آن را بیشتر بررسی کرد. .PP از همه جهات مانند دستور "alloc" کار می‌کند، به جز اینکه فایل تصویر به صورت کم‌حجم تخصیص می‌یابد؛ به این معنی که بلوک‌های دیسک تا زمانی که مورد نیاز نباشند به فایل اختصاص داده نمی‌شوند. فایل‌های دیسک کم‌حجم فقط هنگام نوشتن فضا مصرف می‌کنند، اما کندتر هستند و این خطر وجود دارد که در حین عملیات نوشتن، فضای واقعی دیسک شما تمام شود. .PP برای ایجاد پیشرفته‌تر تصویر دیسک، "disk\-create" را ببینید. .PP اندازه را می‌توان با استفاده از پسوندهای استاندارد مشخص کرد، مانند \f(CW\*(C`1M\*(C'\fR. .PP همچنین دستور "scratch" در guestfish را ببینید. .SS supported .IX Subsection "supported" .Vb 1 \& supported .Ve .PP این دستور فهرستی از گروه‌های اختیاری شناخته‌شده برای دیمن (daemon) را برمی‌گرداند و مشخص می‌کند کدام‌یک توسط این بیلد از ابزارک libguestfs پشتیبانی می‌شوند. .PP همچنین بخش "AVAILABILITY" در \fBguestfs\fR\|(3) را ببینید. .SS time .IX Subsection "time" .Vb 1 \& time command args... .Ve .PP دستور را طبق معمول اجرا می‌کند، اما زمان سپری شده را پس از آن چاپ می‌نماید. این کار می‌تواند برای محک‌زدن (benchmarking) عملیات مفید باشد. .SS unsetenv .IX Subsection "unsetenv" .Vb 1 \& unsetenv VAR .Ve .PP حذف \f(CW\*(C`VAR\*(C'\fR از محیط. .SH "دستورات (COMMANDS)" .IX Header "COMMANDS" .SS acl\-delete\-def\-file .IX Subsection "acl-delete-def-file" .Vb 1 \& acl\-delete\-def\-file dir .Ve .PP این تابع لیست کنترل دسترسی (ACL) پیش‌فرض POSIX متصل به دایرکتوری \f(CW\*(C`dir\*(C'\fR را حذف می‌کند. .PP این دستور به ویژگی \f(CW\*(C`acl\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS acl\-get\-file .IX Subsection "acl-get-file" .Vb 1 \& acl\-get\-file path acltype .Ve .PP این تابع لیست کنترل دسترسی (ACL) پازیکس پیوست‌شده به \f(CW\*(C`path\*(C'\fR را برمی‌گرداند. مقدار ACL در قالب «متن بلند» بازگردانده می‌شود (نگاه کنید به \fBacl\fR\|(5)). .PP پارامتر \f(CW\*(C`acltype\*(C'\fR می‌تواند یکی از مقادیر زیر باشد: .ie n .IP """access""" 4 .el .IP \f(CWaccess\fR 4 .IX Item "access" برگرداندن ACL معمولی (access) برای هر فایل، دایرکتوری یا شیء دیگر فایل‌سیستم. .ie n .IP """default""" 4 .el .IP \f(CWdefault\fR 4 .IX Item "default" برگرداندن ACL پیش‌فرض. معمولاً این گزینه تنها زمانی کاربرد دارد که \&\f(CW\*(C`path\*(C'\fR یک دایرکتوری باشد. .PP این دستور به ویژگی \f(CW\*(C`acl\*(C'\fR وابسته است. همچنین نگاه کنید به "feature\-available". .SS acl\-set\-file .IX Subsection "acl-set-file" .Vb 1 \& acl\-set\-file path acltype acl .Ve .PP این تابع لیست کنترل دسترسی (ACL) پازیکس پیوست‌شده به \f(CW\*(C`path\*(C'\fR را تنظیم می‌کند. .PP پارامتر \f(CW\*(C`acltype\*(C'\fR می‌تواند یکی از مقادیر زیر باشد: .ie n .IP """access""" 4 .el .IP \f(CWaccess\fR 4 .IX Item "access" تنظیم ACL معمولی (access) برای هر فایل، دایرکتوری یا شیء دیگر فایل‌سیستم. .ie n .IP """default""" 4 .el .IP \f(CWdefault\fR 4 .IX Item "default" تنظیم ACL پیش‌فرض. معمولاً این گزینه تنها زمانی کاربرد دارد که \&\f(CW\*(C`path\*(C'\fR یک دایرکتوری باشد. .PP پارامتر \f(CW\*(C`acl\*(C'\fR عبارت است از ACL جدید در قالب «متن بلند» یا «متن کوتاه» (نگاه کنید به \fBacl\fR\|(5)). مقدار جدید ACL به‌طور کامل جایگزین هرگونه ACL قبلی روی فایل می‌شود. این ACL باید شامل تمام مجوزهای کامل یونیکس باشد (مانند \f(CW\*(C`u::rwx,g::rx,o::rx\*(C'\fR). .PP اگر کاربران یا گروه‌های مجزایی را مشخص می‌کنید، فیلد mask نیز الزامی است (مانند \f(CW\*(C`m::rwx\*(C'\fR)، که به دنبال آن فیلد(های) \&\f(CW\*(C`u:\fR\f(CIID\fR\f(CW:...\*(C'\fR و/یا \f(CW\*(C`g:\fR\f(CIID\fR\f(CW:...\*(C'\fR می‌آید. بنابراین یک رشته کامل ACL ممکن است به این شکل باشد: .PP .Vb 2 \& u::rwx,g::rwx,o::rwx,m::rwx,u:500:rwx,g:500:rwx \& \e Unix permissions / \emask/ \e ACL / .Ve .PP باید از شناسه کاربری عددی (UID) و شناسه گروهی عددی (GID) استفاده کنید. برای نگاشت نام‌های کاربری و نام‌های گروهی به شناسه‌های عددی متناظر در بستر سیستم مهمان، از توابع Augeas استفاده نمایید (نگاه کنید به "aug\-init"). .PP این دستور به ویژگی \f(CW\*(C`acl\*(C'\fR وابسته است. همچنین نگاه کنید به "feature\-available". .SS add\-cdrom .IX Subsection "add-cdrom" .Vb 1 \& add\-cdrom filename .Ve .PP این تابع یک ایمیج دیسک CD\-ROM مجازی را به مهمان اضافه می‌کند. .PP این ایمیج به عنوان درایو فقط‌خواندنی افزوده می‌شود، بنابراین این تابع معادل "add\-drive\-ro" است. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "add\-drive\-ro" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان می‌دهد که مشکلاتی در استفاده صحیح از این توابع وجود دارد. .SS add\-domain .IX Subsection "add-domain" .SS domain .IX Subsection "domain" .Vb 1 \& add\-domain dom [libvirturi:..] [readonly:true|false] [iface:..] [live:true|false] [allowuuid:true|false] [readonlydisk:..] [cachemode:..] [discard:..] [copyonread:true|false] .Ve .PP این تابع دیسک(های) متصل به دامین نام‌برده libvirt یعنی \f(CW\*(C`dom\*(C'\fR را اضافه می‌کند. نحوه کار آن به این صورت است که به libvirt متصل شده، دامین و XML دامین را از libvirt درخواست می‌کند، آن را برای یافتن دیسک‌ها پردازش می‌نماید، و برای هر دیسک دستور "add\-drive\-opts" را فراخوانی می‌کند. .PP تعداد دیسک‌های اضافه شده برگردانده می‌شود. این عملیات اتمیک است: در صورت بازگشت خطا، هیچ دیسکی اضافه نمی‌شود. .PP این تابع بررسی‌های اولیه‌ای انجام می‌دهد تا مطمئن شود دامین libvirt در حال اجرا نیست (مگر اینکه \f(CW\*(C`readonly\*(C'\fR برابر true باشد). در نسخه‌های آینده سعی خواهیم کرد قفل libvirt را روی هر دیسک به دست آوریم. .PP دیسک‌ها باید به صورت محلی در دسترس باشند. این اغلب به این معنی است که افزودن دیسک‌ها از طریق یک اتصال راه دور libvirt (نگاه کنید به https://libvirt.org/remote.html) شکست خواهد خورد مگر اینکه آن دیسک‌ها از طریق همان مسیر دستگاه در سیستم محلی نیز قابل دسترسی باشند. .PP پارامتر اختیاری \f(CW\*(C`libvirturi\*(C'\fR شناسه URI مربوط به libvirt را تعیین می‌کند (نگاه کنید به https://libvirt.org/uri.html). اگر این مقدار تنظیم نشود، به URI پیش‌فرض libvirt متصل می‌شویم (یا مقداری که از طریق یک متغیر محیطی تنظیم شده است، برای جزئیات کامل به مستندات libvirt مراجعه کنید). .PP فلگ اختیاری \f(CW\*(C`live\*(C'\fR در نسخه‌های libguestfs ≥ 1.48 نادیده گرفته می‌شود. .PP اگر فلگ \f(CW\*(C`allowuuid\*(C'\fR برابر true باشد (پیش‌فرض false است)، آنگاه می‌توان به جای نام دامین یک \&\fIUUID\fR پاس داد. رشته \f(CW\*(C`dom\*(C'\fR ابتدا به عنوان UUID در نظر گرفته و جستجو می‌شود، و در صورت عدم موفقیت در جستجو، با \f(CW\*(C`dom\*(C'\fR طبق روال معمول به عنوان یک نام رفتار می‌شود. .PP پارامتر اختیاری \f(CW\*(C`readonlydisk\*(C'\fR کنترل می‌کند که در مواجهه با دیسک‌هایی که دارای علامت در ساختار XML مربوط به libvirt هستند، چه رفتاری صورت گیرد. مقادیر مجاز عبارتند از: .IP "readonlydisk = ""error""" 4 .IX Item "readonlydisk = ""error""" اگر \f(CW\*(C`readonly\*(C'\fR برابر false باشد: .Sp در صورت یافتن هر دیسکی با فلگ ، کل فراخوانی با یک خطا لغو می‌شود. .Sp اگر \f(CW\*(C`readonly\*(C'\fR برابر true باشد: .Sp دیسک‌های دارای فلگ به صورت فقط‌خواندنی اضافه می‌شوند. .IP "readonlydisk = ""read""" 4 .IX Item "readonlydisk = ""read""" اگر \f(CW\*(C`readonly\*(C'\fR برابر false باشد: .Sp دیسک‌های دارای فلگ به صورت فقط‌خواندنی اضافه می‌شوند. سایر دیسک‌ها به صورت خواندنی/نوشتنی اضافه می‌شوند. .Sp اگر \f(CW\*(C`readonly\*(C'\fR برابر true باشد: .Sp دیسک‌های دارای فلگ به صورت فقط‌خواندنی اضافه می‌شوند. .IP "readonlydisk = ""write"" (default)" 4 .IX Item "readonlydisk = ""write"" (default)" اگر \f(CW\*(C`readonly\*(C'\fR برابر false باشد: .Sp دیسک‌های دارای فلگ به صورت خواندنی/نوشتنی اضافه می‌شوند. .Sp اگر \f(CW\*(C`readonly\*(C'\fR برابر true باشد: .Sp دیسک‌های دارای فلگ به صورت فقط‌خواندنی اضافه می‌شوند. .IP "readonlydisk = ""ignore""" 4 .IX Item "readonlydisk = ""ignore""" اگر \f(CW\*(C`readonly\*(C'\fR برابر true یا false باشد: .Sp از دیسک‌های دارای فلگ صرف‌نظر می‌شود. .PP در صورت وجود، مقدار ویژگی \f(CW\*(C`logical_block_size\*(C'\fR از تگ در XML مربوط به libvirt به عنوان پارامتر \f(CW\*(C`blocksize\*(C'\fR به "add\-drive\-opts" پاس داده می‌شود. .PP سایر پارامترهای اختیاری مستقیماً به "add\-drive\-opts" ارسال می‌شوند. .PP این دستور دارای یک یا چند آرگومان اختیاری است. نگاه کنید به "OPTIONAL ARGUMENTS". .SS add\-drive .IX Subsection "add-drive" .SS add .IX Subsection "add" .SS add\-drive\-opts .IX Subsection "add-drive-opts" .Vb 1 \& add\-drive filename [readonly:true|false] [format:..] [iface:..] [name:..] [label:..] [protocol:..] [server:..] [username:..] [secret:..] [cachemode:..] [discard:..] [copyonread:true|false] [blocksize:N] .Ve .PP این تابع یک ایمیج دیسک به نام \fIfilename\fR را به هندل اضافه می‌کند. \&\fIfilename\fR می‌تواند یک فایل معمولی میزبان یا یک دستگاه میزبان باشد. .PP هنگامی که این تابع قبل از "launch" (حالت معمول) فراخوانی شود، در اولین فراخوانی دیسک به صورت \fI/dev/sda\fR، در بار دوم به صورت \fI/dev/sdb\fR و به همین ترتیب در API ظاهر می‌شود. .PP برای استفاده از libguestfs لزوماً نیازی به کاربر ریشه (root) بودن نیست. اما بدیهی است که برای انجام هرگونه عملیات مورد نظر، به مجوزهای دسترسی کافی روی فایل نیاز دارید (یعنی دسترسی خواندن برای خواندن ایمیج یا دسترسی نوشتن برای ویرایش ایمیج). .PP این فراخوانی وجود \fIfilename\fR را بررسی می‌کند. .PP \&\fIfilename\fR می‌تواند رشته ویژه \f(CW"/dev/null"\fR باشد. به "NULL DISKS" در \fBguestfs\fR\|(3) مراجعه کنید. .PP آرگومان‌های اختیاری عبارتند از: .ie n .IP """readonly""" 4 .el .IP \f(CWreadonly\fR 4 .IX Item "readonly" اگر true باشد، با ایمیج به صورت فقط‌خواندنی رفتار می‌شود. نوشتن همچنان مجاز است، اما تغییرات در یک لایه همپوشان اسنپ‌شات موقت ذخیره شده و در انتها دور ریخته می‌شوند. دیسک اضافه شده تغییر نخواهد کرد. .ie n .IP """format""" 4 .el .IP \f(CWformat\fR 4 .IX Item "format" این گزینه فرمت ایمیج را تحمیل می‌کند. اگر این گزینه را حذف کنید (یا از "add\-drive" یا "add\-drive\-ro" استفاده کنید)، فرمت به صورت خودکار تشخیص داده می‌شود. فرمت‌های ممکن شامل \f(CW\*(C`raw\*(C'\fR و \f(CW\*(C`qcow2\*(C'\fR هستند. .Sp تشخیص خودکار فرمت هنگام کار با ایمیج‌های غیرقابل اعتماد با فرمت خام (raw) ممکن است روزنه امنیتی ایجاد کند. به CVE\-2010\-3851 و RHBZ#642934 مراجعه کنید. تعیین صریح فرمت این روزنه امنیتی را مسدود می‌کند. .ie n .IP """iface""" 4 .el .IP \f(CWiface\fR 4 .IX Item "iface" این گزینه که به ندرت استفاده می‌شود، امکان شبیه‌سازی رفتار فراخوانی منسوخ‌شده "add\-drive\-with\-if" را فراهم می‌کند (به آن مراجعه کنید). .ie n .IP """name""" 4 .el .IP \f(CWname\fR 4 .IX Item "name" این فیلد قبلاً به عنوان راهنما برای بررسی و بازرسی مهمان ارسال می‌شد، اما دیگر استفاده نمی‌شود. .ie n .IP """label""" 4 .el .IP \f(CWlabel\fR 4 .IX Item "label" یک برچسب به دیسک اختصاص می‌دهد. برچسب باید یک رشته کوتاه و یکتا باشد که \fIفقط\fR از کاراکترهای اسکی \f(CW\*(C`[a\-zA\-Z]\*(C'\fR استفاده کند. علاوه بر نام معمول آن در API (مانند \fI/dev/sda\fR)، درایو همچنین با نام \fI/dev/disk/guestfs/label\fR شناخته خواهد شد. .Sp به "DISK LABELS" در \fBguestfs\fR\|(3) مراجعه کنید. .ie n .IP """protocol""" 4 .el .IP \f(CWprotocol\fR 4 .IX Item "protocol" آرگومان اختیاری پروتکل می‌تواند برای انتخاب یک پروتکل مبدأ جایگزین استفاده شود. .Sp همچنین نگاه کنید به: "REMOTE STORAGE" در \fBguestfs\fR\|(3). .RS 4 .ie n .IP """protocol = ""file""""" 4 .el .IP "\f(CWprotocol = ""file""\fR" 4 .IX Item "protocol = ""file""" \&\fIfilename\fR به عنوان یک فایل محلی یا دستگاه محلی تفسیر می‌شود. در صورت عدم تعیین پارامتر اختیاری پروتکل، این حالت پیش‌فرض است. .ie n .IP """protocol = ""ftp""|""ftps""|""http""|""https""""" 4 .el .IP "\f(CWprotocol = ""ftp""|""ftps""|""http""|""https""\fR" 4 .IX Item "protocol = ""ftp""|""ftps""|""http""|""https""" اتصال به یک سرور راه دور FTP یا HTTP. پارامتر \f(CW\*(C`server\*(C'\fR نیز باید ارائه شود \- توضیحات زیر را ببینید. .Sp همچنین نگاه کنید به: "FTP AND HTTP" در \fBguestfs\fR\|(3) .ie n .IP """protocol = ""iscsi""""" 4 .el .IP "\f(CWprotocol = ""iscsi""\fR" 4 .IX Item "protocol = ""iscsi""" اتصال به سرور iSCSI. پارامتر \f(CW\*(C`server\*(C'\fR باید ارائه شود \- توضیحات زیر را ببینید. پارامتر \f(CW\*(C`username\*(C'\fR می‌تواند ارائه شود. پارامتر \f(CW\*(C`secret\*(C'\fR نیز می‌تواند ارائه شود. .Sp همچنین نگاه کنید به: "ISCSI" در \fBguestfs\fR\|(3). .ie n .IP """protocol = ""nbd""""" 4 .el .IP "\f(CWprotocol = ""nbd""\fR" 4 .IX Item "protocol = ""nbd""" اتصال به سرور Network Block Device (دستگاه بلوکی شبکه). پارامتر \f(CW\*(C`server\*(C'\fR نیز باید ارائه شود \- توضیحات زیر را ببینید. .Sp همچنین نگاه کنید به: "NETWORK BLOCK DEVICE" در \fBguestfs\fR\|(3). .ie n .IP """protocol = ""rbd""""" 4 .el .IP "\f(CWprotocol = ""rbd""\fR" 4 .IX Item "protocol = ""rbd""" اتصال به سرور Ceph (librbd/RBD). پارامتر \f(CW\*(C`server\*(C'\fR باید ارائه شود \- توضیحات زیر را ببینید. پارامترهای \f(CW\*(C`username\*(C'\fR و \f(CW\*(C`secret\*(C'\fR می‌توانند ارائه شوند. .Sp همچنین نگاه کنید به: "CEPH" در \fBguestfs\fR\|(3). .ie n .IP """protocol = ""ssh""""" 4 .el .IP "\f(CWprotocol = ""ssh""\fR" 4 .IX Item "protocol = ""ssh""" اتصال به سرور Secure Shell (ssh). .Sp پارامتر \f(CW\*(C`server\*(C'\fR باید ارائه شود. پارامتر \f(CW\*(C`username\*(C'\fR می‌تواند ارائه شود. .Sp همچنین نگاه کنید به: "SSH" در \fBguestfs\fR\|(3). .RE .RS 4 .RE .ie n .IP """server""" 4 .el .IP \f(CWserver\fR 4 .IX Item "server" برای پروتکل‌هایی که نیاز به دسترسی به یک سرور راه دور دارند، این پارامتر فهرستی از سرور(ها) است. .Sp .Vb 8 \& Protocol Number of servers required \& \-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- \& file List must be empty or param not used at all \& ftp|ftps|http|https Exactly one \& iscsi Exactly one \& nbd Exactly one \& rbd Zero or more \& ssh Exactly one .Ve .Sp هر عنصر فهرست یک رشته مشخص‌کننده سرور است. این رشته باید در یکی از فرمت‌های زیر باشد: .Sp .Vb 5 \& hostname \& hostname:port \& tcp:hostname \& tcp:hostname:port \& unix:/path/to/socket .Ve .Sp در صورت حذف شماره پورت، پورت استاندارد مربوط به پروتکل استفاده می‌شود (نگاه کنید به \fI/etc/services\fR). .ie n .IP """username""" 4 .el .IP \f(CWusername\fR 4 .IX Item "username" برای پروتکل‌های \f(CW\*(C`ftp\*(C'\fR، \f(CW\*(C`ftps\*(C'\fR، \f(CW\*(C`http\*(C'\fR، \f(CW\*(C`https\*(C'\fR، \f(CW\*(C`iscsi\*(C'\fR، \f(CW\*(C`rbd\*(C'\fR و \f(CW\*(C`ssh\*(C'\fR، نام کاربری راه دور را مشخص می‌کند. .Sp در صورت عدم تعیین، برای \f(CW\*(C`ssh\*(C'\fR نام کاربری محلی استفاده می‌شود و برای ceph هیچ احراز هویتی انجام نمی‌گیرد. اما توجه داشته باشید که این موضوع گاهی اوقات ممکن است نتایج غیرمنتظره‌ای به همراه داشته باشد، برای مثال هنگام استفاده از بک‌اند libvirt در حالتی که برای راه‌اندازی ابزار qemu با یک کاربر ویژه مانند \f(CW\*(C`qemu.qemu\*(C'\fR پیکربندی شده است. در صورت تردید، نام کاربری راه دور مورد نظر را صریحاً مشخص کنید. .ie n .IP """secret""" 4 .el .IP \f(CWsecret\fR 4 .IX Item "secret" فقط برای پروتکل \f(CW\*(C`rbd\*(C'\fR، رمز مخفی («secret») مورد استفاده برای اتصال به دستگاه راه دور را مشخص می‌کند. این مقدار باید با فرمت base64 کدگذاری شده باشد. .Sp در صورت عدم تعیین، یک secret منطبق با نام کاربری ارائه‌شده در مکان‌های پیش‌فرض جاکلیدی جستجو می‌شود، یا اگر نام کاربری ارائه نشده باشد، هیچ احراز هویتی انجام نمی‌شود. .ie n .IP """cachemode""" 4 .el .IP \f(CWcachemode\fR 4 .IX Item "cachemode" تعیین می‌کند که آیا libguestfs از عملیات همگام‌سازی (sync) تبعیت کند (امن اما کند) یا خیر (ناامن اما سریع). مقادیر ممکن برای این رشته عبارتند از: .RS 4 .ie n .IP """cachemode = ""writeback""""" 4 .el .IP "\f(CWcachemode = ""writeback""\fR" 4 .IX Item "cachemode = ""writeback""" این حالت پیش‌فرض است. .Sp عملیات نوشتن در API تا زمان تکمیل فراخوانی \fBwrite\fR\|(2) در میزبان برنمی‌گردند [البته توجه داشته باشید که این به معنای نوشته شدن قطعی داده‌ها روی دیسک نیست]. .Sp عملیات همگام‌سازی در API، از جمله همگام‌سازی‌های ضمنی ناشی از ژورنالینگ فایل‌سیستم، تا زمانی که فراخوانی \fBfdatasync\fR\|(2) در میزبان تکمیل نشود برنمی‌گردند که این نشان‌دهنده ثبت قطعی داده‌ها بر روی دیسک است. .ie n .IP """cachemode = ""unsafe""""" 4 .el .IP "\f(CWcachemode = ""unsafe""\fR" 4 .IX Item "cachemode = ""unsafe""" در این حالت هیچ تضمینی وجود ندارد. libguestfs ممکن است هر چیزی را کَش کند و درخواست‌های همگام‌سازی را نادیده بگیرد. این حالت فقط برای دیسک‌های موقت یا چرک‌نویس مناسب است. .RE .RS 4 .RE .ie n .IP """discard""" 4 .el .IP \f(CWdiscard\fR 4 .IX Item "discard" فعال یا غیرفعال کردن پشتیبانی از آزادسازی بلوک‌ها (یا همان trim / unmap / discard) روی این درایو. در صورت فعال بودن، عملیاتی مانند "fstrim" می‌توانند بلوک‌ها را در فایل یا دستگاه زیرین میزبان آزاد کرده، کم‌حجم سازند یا در آن سوراخ ایجاد کنند (punch holes). .Sp تنظیمات ممکن برای discard عبارتند از: .RS 4 .ie n .IP """discard = ""disable""""" 4 .el .IP "\f(CWdiscard = ""disable""\fR" 4 .IX Item "discard = ""disable""" غیرفعال کردن پشتیبانی از discard. این مقدار پیش‌فرض است. .ie n .IP """discard = ""enable""""" 4 .el .IP "\f(CWdiscard = ""enable""\fR" 4 .IX Item "discard = ""enable""" فعال کردن پشتیبانی از discard. در صورتی که discard ممکن نباشد، خطا می‌دهد. .ie n .IP """discard = ""besteffort""""" 4 .el .IP "\f(CWdiscard = ""besteffort""\fR" 4 .IX Item "discard = ""besteffort""" فعال کردن پشتیبانی از discard در صورت امکان، اما در صورت عدم پشتیبانی خطا ندهد. .Sp از آنجا که همه بک‌اندها و سیستم‌های زیرین از discard پشتیبانی نمی‌کنند، اگر تمایل دارید در صورت امکان از discard استفاده کنید اما با کار نکردن آن مشکلی ندارید، این گزینه انتخاب مناسبی است. .RE .RS 4 .RE .ie n .IP """copyonread""" 4 .el .IP \f(CWcopyonread\fR 4 .IX Item "copyonread" پارامتر بولی \f(CW\*(C`copyonread\*(C'\fR پشتیبانی از کپی هنگام خواندن (copy\-on\-read) را فعال می‌کند. این گزینه فقط بر فرمت‌های دیسکی تأثیر می‌گذارد که دارای فایل‌های پشتیبان (backing files) هستند و باعث می‌شود خواندن‌ها در لایه همپوشان ذخیره شوند، که سرعت خواندن‌های مکرر از یک ناحیه دیسک را افزایش می‌دهد. .Sp پیش‌فرض false است. .ie n .IP """blocksize""" 4 .el .IP \f(CWblocksize\fR 4 .IX Item "blocksize" این پارامتر اندازه سکتور دیسک را تنظیم می‌کند. مقادیر ممکن عبارتند از \&\f(CW512\fR (پیش‌فرض در صورت حذف پارامتر) یا \f(CW4096\fR. هنگام کار با دیسک‌های «فرمت پیشرفته» (Advanced Format) که از اندازه سکتور 4K استفاده می‌کنند، از \&\f(CW4096\fR استفاده کنید (https://en.wikipedia.org/wiki/Advanced_Format). .Sp تنها زیرمجموعه‌ای از بک‌اندها از این پارامتر پشتیبانی می‌کنند (در حال حاضر فقط بک‌اندهای libvirt و مستقیم). .PP این دستور دارای یک یا چند آرگومان اختیاری است. نگاه کنید به "OPTIONAL ARGUMENTS". .SS add\-drive\-ro .IX Subsection "add-drive-ro" .SS add\-ro .IX Subsection "add-ro" .Vb 1 \& add\-drive\-ro filename .Ve .PP این تابع معادل فراخوانی "add\-drive\-opts" با تنظیم پارامتر اختیاری \f(CW\*(C`GUESTFS_ADD_DRIVE_OPTS_READONLY\*(C'\fR روی مقدار 1 است، بنابراین دیسک به صورت فقط‌خواندنی اضافه شده و فرمت آن به طور خودکار تشخیص داده می‌شود. .SS add\-drive\-ro\-with\-if .IX Subsection "add-drive-ro-with-if" .Vb 1 \& add\-drive\-ro\-with\-if filename iface .Ve .PP این تابع مشابه "add\-drive\-ro" است اما به شما امکان می‌دهد نوع شبیه‌سازی رابط QEMU را در زمان اجرا مشخص کنید. هر دو بک‌اند مستقیم و libvirt پارامتر \f(CW\*(C`iface\*(C'\fR را نادیده می‌گیرند. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "add\-drive" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان می‌دهد که مشکلاتی در استفاده صحیح از این توابع وجود دارد. .SS add\-drive\-scratch .IX Subsection "add-drive-scratch" .SS scratch .IX Subsection "scratch" .Vb 1 \& add\-drive\-scratch size [name:..] [label:..] [blocksize:N] .Ve .PP این دستور یک درایو موقت چرک‌نویس (scratch) را به هندل اضافه می‌کند. پارامتر \&\f(CW\*(C`size\*(C'\fR اندازه مجازی (به بایت) است. درایو چرک‌نویس در ابتدا خالی است (تمام خواندن‌ها بایت‌های صفر برمی‌گردانند تا زمانی که شروع به نوشتن روی آن کنید). هنگام بسته شدن هندل، درایو حذف می‌شود. .PP آرگومان‌های اختیاری \f(CW\*(C`name\*(C'\fR، \f(CW\*(C`label\*(C'\fR و \f(CW\*(C`blocksize\*(C'\fR به "add\-drive\-opts" پاس داده می‌شوند. .PP این دستور دارای یک یا چند آرگومان اختیاری است. نگاه کنید به "OPTIONAL ARGUMENTS". .SS add\-drive\-with\-if .IX Subsection "add-drive-with-if" .Vb 1 \& add\-drive\-with\-if filename iface .Ve .PP این دستور مشابه "add\-drive" است اما به شما امکان می‌دهد نوع شبیه‌سازی رابط QEMU را در زمان اجرا مشخص کنید. هر دو بک‌اند مستقیم و libvirt پارامتر \f(CW\*(C`iface\*(C'\fR را نادیده می‌گیرند. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "add\-drive" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان می‌دهد که مشکلاتی در استفاده صحیح از این توابع وجود دارد. .SS aug\-clear .IX Subsection "aug-clear" .Vb 1 \& aug\-clear augpath .Ve .PP مقدار مرتبط با \f(CW\*(C`path\*(C'\fR را روی \f(CW\*(C`NULL\*(C'\fR تنظیم می‌کند. این معادل دستور \f(CW\*(C`clear\*(C'\fR در \fBaugtool\fR\|(1) است. .SS aug\-close .IX Subsection "aug-close" .Vb 1 \& aug\-close .Ve .PP هندل جاری Augeas را بسته و تمام منابع مورد استفاده آن را آزاد می‌کند. پس از فراخوانی این تابع، قبل از استفاده از هر تابع دیگر Augeas باید مجدداً "aug\-init" را فراخوانی کنید. .SS aug\-defnode .IX Subsection "aug-defnode" .Vb 1 \& aug\-defnode name expr val .Ve .PP متغیر \f(CW\*(C`name\*(C'\fR را تعریف می‌کند که مقدار آن حاصل ارزیابی \f(CW\*(C`expr\*(C'\fR است. .PP اگر \f(CW\*(C`expr\*(C'\fR به یک مجموعه گره (nodeset) خالی ارزیابی شود، یک گره ایجاد می‌شود که معادل فراخوانی "aug\-set" با آرگومان‌های \f(CW\*(C`expr\*(C'\fR و \f(CW\*(C`val\*(C'\fR است. \&\f(CW\*(C`name\*(C'\fR مجموعه گره‌ای شامل همان تک گره خواهد بود. .PP در صورت موفقیت، این تابع یک جفت شامل تعداد گره‌های موجود در مجموعه گره و یک فلگ بولی که نشان می‌دهد آیا گره‌ای ایجاد شده است یا خیر را برمی‌گرداند. .SS aug\-defvar .IX Subsection "aug-defvar" .Vb 1 \& aug\-defvar name expr .Ve .PP یک متغیر Augeas به نام \f(CW\*(C`name\*(C'\fR تعریف می‌کند که مقدار آن حاصل ارزیابی \f(CW\*(C`expr\*(C'\fR است. اگر \f(CW\*(C`expr\*(C'\fR برابر NULL باشد، \f(CW\*(C`name\*(C'\fR تعریف‌نشده باقی می‌ماند. .PP در صورت موفقیت، این دستور تعداد گره‌های درون \f(CW\*(C`expr\*(C'\fR را برمی‌گرداند، یا اگر \f(CW\*(C`expr\*(C'\fR به چیزی غیر از مجموعه گره ارزیابی شود، مقدار \&\f(CW0\fR برگردانده می‌شود. .SS aug\-get .IX Subsection "aug-get" .Vb 1 \& aug\-get augpath .Ve .PP مقدار مرتبط با \f(CW\*(C`path\*(C'\fR را جستجو می‌کند. اگر \f(CW\*(C`path\*(C'\fR دقیقاً با یک گره مطابقت داشته باشد، مقدار \f(CW\*(C`value\*(C'\fR برگردانده می‌شود. .SS aug\-init .IX Subsection "aug-init" .Vb 1 \& aug\-init root flags .Ve .PP یک هندل جدید Augeas برای ویرایش فایل‌های پیکربندی ایجاد می‌کند. اگر هندل قبلی Augeas مرتبط با این نشست guestfs وجود داشته باشد، بسته می‌شود. .PP قبل از استفاده از هر یک از دستورات دیگر "aug\-*" باید این تابع را فراخوانی کنید. .PP \&\f(CW\*(C`root\*(C'\fR ریشه فایل‌سیستم است. \f(CW\*(C`root\*(C'\fR نباید NULL باشد، به جای آن از \fI/\fR استفاده کنید. .PP فلگ‌ها همان فلگ‌های تعریف‌شده در هستند که عبارتند از ترکیب منطقی \fIor\fR اعداد صحیح زیر: .ie n .IP """AUG_SAVE_BACKUP"" = 1" 4 .el .IP "\f(CWAUG_SAVE_BACKUP\fR = 1" 4 .IX Item "AUG_SAVE_BACKUP = 1" نگهداری فایل اصلی با پسوند \f(CW\*(C`.augsave\*(C'\fR. .ie n .IP """AUG_SAVE_NEWFILE"" = 2" 4 .el .IP "\f(CWAUG_SAVE_NEWFILE\fR = 2" 4 .IX Item "AUG_SAVE_NEWFILE = 2" ذخیره تغییرات در فایلی با پسوند \f(CW\*(C`.augnew\*(C'\fR و بازنویسی نکردن فایل اصلی. بر \f(CW\*(C`AUG_SAVE_BACKUP\*(C'\fR تقدم دارد. .ie n .IP """AUG_TYPE_CHECK"" = 4" 4 .el .IP "\f(CWAUG_TYPE_CHECK\fR = 4" 4 .IX Item "AUG_TYPE_CHECK = 4" بررسی نوع لنزها (lens). .Sp این گزینه فقط هنگام عیب‌یابی لنزهای Augeas مفید است. استفاده از این گزینه ممکن است به حافظه اضافی برای ماشین مجازی libguestfs نیاز داشته باشد. ممکن است نیاز باشد متغیر محیطی \f(CW\*(C`LIBGUESTFS_MEMSIZE\*(C'\fR را تنظیم کنید یا "set\-memsize" را فراخوانی نمایید. .ie n .IP """AUG_NO_STDINC"" = 8" 4 .el .IP "\f(CWAUG_NO_STDINC\fR = 8" 4 .IX Item "AUG_NO_STDINC = 8" از مسیر بارگذاری استاندارد برای ماژول‌ها استفاده نکند. .ie n .IP """AUG_SAVE_NOOP"" = 16" 4 .el .IP "\f(CWAUG_SAVE_NOOP\fR = 16" 4 .IX Item "AUG_SAVE_NOOP = 16" عملیات ذخیره‌سازی را بدون اثر (no\-op) کند و تنها مواردی را که تغییر می‌کردند ثبت نماید. .ie n .IP """AUG_NO_LOAD"" = 32" 4 .el .IP "\f(CWAUG_NO_LOAD\fR = 32" 4 .IX Item "AUG_NO_LOAD = 32" بارگذاری نکردن درخت در "aug\-init". .PP برای بستن هندل، می‌توانید "aug\-close" را فراخوانی کنید. .PP برای کسب اطلاعات بیشتر درباره Augeas، به http://augeas.net مراجعه کنید. .SS aug\-insert .IX Subsection "aug-insert" .Vb 1 \& aug\-insert augpath label true|false .Ve .PP یک برچسب هم‌سطح (sibling) جدید به نام \f(CW\*(C`label\*(C'\fR برای \f(CW\*(C`path\*(C'\fR ایجاد می‌کند و آن را قبل یا بعد از \f(CW\*(C`path\*(C'\fR (بسته به فلگ بولی \f(CW\*(C`before\*(C'\fR) در درخت درج می‌نماید. .PP \&\f(CW\*(C`path\*(C'\fR باید دقیقاً با یک گره موجود در درخت مطابقت داشته باشد، و \&\f(CW\*(C`label\*(C'\fR باید یک برچسب باشد، یعنی نباید حاوی \fI/\fR، \f(CW\*(C`*\*(C'\fR باشد یا با یک نمایه درون قلاب \f(CW\*(C`[N]\*(C'\fR پایان یابد. .SS aug\-label .IX Subsection "aug-label" .Vb 1 \& aug\-label augpath .Ve .PP برچسب (نام آخرین عنصر) عبارت مسیر Augeas یعنی \&\f(CW\*(C`augpath\*(C'\fR برگردانده می‌شود. \&\f(CW\*(C`augpath\*(C'\fR باید دقیقاً با یک گره مطابقت داشته باشد، در غیر این صورت این تابع خطا برمی‌گرداند. .SS aug\-load .IX Subsection "aug-load" .Vb 1 \& aug\-load .Ve .PP بارگذاری فایل‌ها در درخت. .PP برای جزئیات کامل به \f(CW\*(C`aug_load\*(C'\fR در مستندات Augeas مراجعه کنید. .SS aug\-ls .IX Subsection "aug-ls" .Vb 1 \& aug\-ls augpath .Ve .PP این دستور تنها یک میانبر برای اجرای "aug\-match" روی \&\f(CW\*(C`path/*\*(C'\fR و مرتب‌سازی گره‌های حاصل به ترتیب الفبایی است. .SS aug\-match .IX Subsection "aug-match" .Vb 1 \& aug\-match augpath .Ve .PP فهرستی از مسیرهایی که با عبارت مسیر \f(CW\*(C`path\*(C'\fR مطابقت دارند را برمی‌گرداند. مسیرهای بازگردانده شده به اندازه کافی واجد شرایط هستند تا دقیقاً با یک گره در درخت فعلی مطابقت داشته باشند. .SS aug\-mv .IX Subsection "aug-mv" .Vb 1 \& aug\-mv src dest .Ve .PP انتقال گره \f(CW\*(C`src\*(C'\fR به \f(CW\*(C`dest\*(C'\fR. گره \f(CW\*(C`src\*(C'\fR باید دقیقاً با یک گره مطابقت داشته باشد. اگر \f(CW\*(C`dest\*(C'\fR وجود داشته باشد، بازنویسی می‌شود. .SS aug\-rm .IX Subsection "aug-rm" .Vb 1 \& aug\-rm augpath .Ve .PP حذف \f(CW\*(C`path\*(C'\fR و تمامی فرزندان آن. .PP در صورت موفقیت، تعداد مدخل‌هایی که حذف شده‌اند بازگردانده می‌شود. .SS aug\-save .IX Subsection "aug-save" .Vb 1 \& aug\-save .Ve .PP تمام تغییرات معلق را روی دیسک می‌نویسد. .PP فلگ‌هایی که به "aug\-init" ارسال شده‌اند، دقیقاً نحوه ذخیره فایل‌ها را تعیین می‌کنند. .SS aug\-set .IX Subsection "aug-set" .Vb 1 \& aug\-set augpath val .Ve .PP مقدار مرتبط با \f(CW\*(C`augpath\*(C'\fR را روی \f(CW\*(C`val\*(C'\fR تنظیم می‌کند. .PP در API مربوط به Augeas، امکان پاک کردن یک گره با تنظیم مقدار آن به NULL وجود دارد. به دلیل یک نقص جزئی در API مربوط به libguestfs، نمی‌توانید این کار را با این فراخوانی انجام دهید. در عوض باید از فراخوانی "aug\-clear" استفاده کنید. .SS aug\-setm .IX Subsection "aug-setm" .Vb 1 \& aug\-setm base sub val .Ve .PP تغییر چندین گره Augeas در یک عملیات واحد. \f(CW\*(C`base\*(C'\fR عبارتی است که با چندین گره مطابقت دارد. \f(CW\*(C`sub\*(C'\fR یک عبارت مسیر نسبت به \f(CW\*(C`base\*(C'\fR است. تمام گره‌های منطبق با \f(CW\*(C`base\*(C'\fR یافت می‌شوند و سپس برای هر گره، \f(CW\*(C`sub\*(C'\fR به \f(CW\*(C`val\*(C'\fR تغییر می‌یابد. \f(CW\*(C`sub\*(C'\fR همچنین می‌تواند \f(CW\*(C`NULL\*(C'\fR باشد که در این صورت گره‌های \f(CW\*(C`base\*(C'\fR اصلاح می‌شوند. .PP این تابع تعداد گره‌های اصلاح‌شده را برمی‌گرداند. .SS aug\-transform .IX Subsection "aug-transform" .Vb 1 \& aug\-transform lens file [remove:true|false] .Ve .PP یک تبدیل Augeas برای \f(CW\*(C`lens\*(C'\fR مشخص‌شده اضافه می‌کند تا بتواند \f(CW\*(C`file\*(C'\fR را مدیریت کند. .PP اگر \f(CW\*(C`remove\*(C'\fR برابر true باشد (پیش‌فرض \f(CW\*(C`false\*(C'\fR است)، تبدیل حذف می‌شود. .PP این دستور دارای یک یا چند آرگومان اختیاری است. نگاه کنید به "OPTIONAL ARGUMENTS". .SS available .IX Subsection "available" .Vb 1 \& available \*(Aqgroups ...\*(Aq .Ve .PP این دستور برای بررسی در دسترس بودن برخی از گروه‌های عملکردی در ماشین مجازی استفاده می‌شود، که ممکن است همه ساخت‌های ماشین مجازی libguestfs قادر به ارائه آن‌ها نباشند. .PP گروه‌های libguestfs و توابع متناظر با آن‌ها در "AVAILABILITY" در \fBguestfs\fR\|(3) فهرست شده‌اند. همچنین می‌توانید این فهرست را در زمان اجرا با فراخوانی "available\-all\-groups" دریافت کنید. .PP آرگومان \f(CW\*(C`groups\*(C'\fR فهرستی از نام‌های گروه‌ها است، به عنوان مثال: \&\f(CW\*(C`["inotify", "augeas"]\*(C'\fR در دسترس بودن توابع inotify لینوکس و توابع Augeas (ویرایش فایل‌های پیکربندی) را بررسی می‌کند. .PP اگر \fIهمه\fR گروه‌های درخواستی در دسترس باشند، این دستور هیچ خطایی برنمی‌گرداند. .PP اگر یک یا چند گروه از گروه‌های درخواستی در ماشین مجازی در دسترس نباشند، با خطا مواجه می‌شود. .PP اگر یک نام گروه نامعتبر یا ناشناخته در فهرست گروه‌ها گنجانده شود، همیشه خطا برگردانده می‌شود. .PP \&\fIنکات:\fR .IP \(bu 4 "feature\-available" مشابه این فراخوانی است، اما با یک API کمی ساده‌تر: آن فراخوانی به جای ایجاد خطا، یک مقدار بولی true/false برمی‌گرداند. .IP \(bu 4 قبل از فراخوانی این تابع باید "launch" را فراخوانی کنید. .Sp دلیل این است که تا زمان اجرا شدن دیمون/ماشین مجازی و امکان استعلام از آن، نمی‌دانیم چه گروه‌هایی پشتیبانی می‌شوند. .IP \(bu 4 در دسترس بودن یک گروه از توابع لزوماً به این معنی نیست که آن‌ها حتماً کار خواهند کرد. حتی در صورت در دسترس بودن، همچنان باید هنگام فراخوانی تک‌تک توابع API خطاهای احتمالی را بررسی کنید. .IP \(bu 4 معمولاً وظیفه بسته‌سازهای توزیع است که قابلیت‌های کامل را در ماشین مجازی libguestfs بسازند. libguestfs بالادستی، در صورتی که با برآورده شدن همه نیازمندی‌ها از سورس کامپایل شود، از همه چیز پشتیبانی خواهد کرد. .IP \(bu 4 این فراخوانی در نسخه \f(CW1.0.80\fR اضافه شده است. در نسخه‌های قبلی libguestfs تنها کاری که می‌توانستید انجام دهید اجرای آزمایشی یک دستور بود تا متوجه شوید آیا دیمون آن را پیاده‌سازی کرده است یا خیر. همچنین نگاه کنید به "version". .PP همچنین نگاه کنید به "filesystem\-available". .SS available\-all\-groups .IX Subsection "available-all-groups" .Vb 1 \& available\-all\-groups .Ve .PP این دستور فهرستی از تمام گروه‌های اختیاری که این دیمون از آن‌ها آگاه است را برمی‌گرداند. توجه داشته باشید که این دستور هر دو گروه پشتیبانی‌شده و پشتیبانی‌نشده را بازمی‌گرداند. برای فهمیدن اینکه دیمون واقعاً از کدام‌یک پشتیبانی می‌کند، باید "available" / "feature\-available" را روی هر یک از اعضای فهرست بازگردانده‌شده فراخوانی کنید. .PP همچنین نگاه کنید به "available"، "feature\-available" و "AVAILABILITY" در \fBguestfs\fR\|(3). .SS base64\-in .IX Subsection "base64-in" .Vb 1 \& base64\-in (base64file|\-) filename .Ve .PP این دستور داده‌های کدگذاری‌شده با base64 را از \f(CW\*(C`base64file\*(C'\fR در \fIfilename\fR بارگذاری می‌کند. .PP از \f(CW\*(C`\-\*(C'\fR به جای نام فایل برای خواندن/نوشتن از stdin/stdout استفاده کنید. .SS base64\-out .IX Subsection "base64-out" .Vb 1 \& base64\-out filename (base64file|\-) .Ve .PP این دستور محتویات \fIfilename\fR را دانلود کرده و آن را به صورت کدگذاری base64 در فایل محلی \f(CW\*(C`base64file\*(C'\fR می‌نویسد. .PP از \f(CW\*(C`\-\*(C'\fR به جای نام فایل برای خواندن/نوشتن از stdin/stdout استفاده کنید. .SS blkdiscard .IX Subsection "blkdiscard" .Vb 1 \& blkdiscard device .Ve .PP این دستور تمام بلوک‌های روی دستگاه بلوکی \f(CW\*(C`device\*(C'\fR را دور می‌ریزد (discard می‌کند) و فضای آزاد را به میزبان پس می‌دهد. .PP این عملیات نیازمند پشتیبانی در libguestfs، فایل‌سیستم میزبان، qemu و کرنل میزبان است. اگر این پشتیبانی وجود نداشته باشد ممکن است خطا دهد یا حتی به ظاهر اجرا شود اما کاری انجام ندهد. همچنین باید ویژگی \f(CW\*(C`discard\*(C'\fR را روی درایو زیرین تنظیم کنید (نگاه کنید به "add\-drive\-opts"). .PP این دستور به ویژگی \f(CW\*(C`blkdiscard\*(C'\fR وابسته است. همچنین نگاه کنید به "feature\-available". .SS blkdiscardzeroes .IX Subsection "blkdiscardzeroes" .Vb 1 \& blkdiscardzeroes device .Ve .PP این فراخوانی اگر بلوک‌های روی \f(CW\*(C`device\*(C'\fR که با فراخوانی "blkdiscard" آزاد شده‌اند، در زمان خواندن بعدی به عنوان بلوک‌هایی از بایت‌های صفر برگردانده شوند، مقدار true برمی‌گرداند. .PP اگر مقدار false برگرداند، ممکن است بلوک‌های آزاد شده به عنوان داده‌های قدیمی یا تصادفی خوانده شوند. .PP این دستور به ویژگی \f(CW\*(C`blkdiscardzeroes\*(C'\fR وابسته است. همچنین نگاه کنید به "feature\-available". .SS blkid .IX Subsection "blkid" .Vb 1 \& blkid device .Ve .PP این دستور ویژگی‌های دستگاه بلوکی را برای \f(CW\*(C`device\*(C'\fR برمی‌گرداند. فیلدهای زیر معمولاً در جدول هش بازگردانده شده وجود دارند. فیلدهای دیگر نیز ممکن است وجود داشته باشند. .ie n .IP """UUID""" 4 .el .IP \f(CWUUID\fR 4 .IX Item "UUID" شناسه uuid این دستگاه. .ie n .IP """LABEL""" 4 .el .IP \f(CWLABEL\fR 4 .IX Item "LABEL" برچسب این دستگاه. .ie n .IP """VERSION""" 4 .el .IP \f(CWVERSION\fR 4 .IX Item "VERSION" نسخه دستور blkid. .ie n .IP """TYPE""" 4 .el .IP \f(CWTYPE\fR 4 .IX Item "TYPE" نوع فایل‌سیستم یا RAID این دستگاه. .ie n .IP """USAGE""" 4 .el .IP \f(CWUSAGE\fR 4 .IX Item "USAGE" کاربرد این دستگاه، به عنوان مثال \f(CW\*(C`filesystem\*(C'\fR یا \f(CW\*(C`raid\*(C'\fR. .SS blockdev\-flushbufs .IX Subsection "blockdev-flushbufs" .Vb 1 \& blockdev\-flushbufs device .Ve .PP این دستور به کرنل اعلام می‌کند بافرهای داخلی مرتبط با \f(CW\*(C`device\*(C'\fR را تخلیه (flush) کند. .PP این دستور از دستور \fBblockdev\fR\|(8) استفاده می‌کند. .SS blockdev\-getbsz .IX Subsection "blockdev-getbsz" .Vb 1 \& blockdev\-getbsz device .Ve .PP این دستور اندازه بلوک یک دستگاه را برمی‌گرداند. .PP نکته: این مقدار هم با \fIاندازه در قالب بلوک‌ها\fR و هم با \&\fIاندازه بلوک فایل‌سیستم\fR متفاوت است. همچنین این تنظیم واقعاً توسط چیزی استفاده نمی‌شود. احتمالاً نباید از آن برای کاری استفاده کنید. فایل‌سیستم‌ها ایده خود را درباره انتخاب اندازه بلوک دارند. .PP این دستور از دستور \fBblockdev\fR\|(8) استفاده می‌کند. .SS blockdev\-getro .IX Subsection "blockdev-getro" .Vb 1 \& blockdev\-getro device .Ve .PP یک مقدار بولی برمی‌گرداند که نشان می‌دهد آیا دستگاه بلوکی فقط‌خواندنی است یا خیر (true در صورت فقط‌خواندنی بودن، false در غیر این صورت). .PP این دستور از دستور \fBblockdev\fR\|(8) استفاده می‌کند. .SS blockdev\-getsize64 .IX Subsection "blockdev-getsize64" .Vb 1 \& blockdev\-getsize64 device .Ve .PP این دستور اندازه دستگاه را به بایت برمی‌گرداند. .PP همچنین نگاه کنید به "blockdev\-getsz". .PP این دستور از دستور \fBblockdev\fR\|(8) استفاده می‌کند. .SS blockdev\-getss .IX Subsection "blockdev-getss" .Vb 1 \& blockdev\-getss device .Ve .PP این دستور اندازه سکتورها را روی یک دستگاه بلوکی برمی‌گرداند. معمولاً 512 است، اما در دستگاه‌های مدرن می‌تواند بزرگ‌تر باشد. .PP (توجه داشته باشید که این مقدار تعداد سکتورها نیست، برای آن از "blockdev\-getsz" استفاده کنید). .PP این دستور از دستور \fBblockdev\fR\|(8) استفاده می‌کند. .SS blockdev\-getsz .IX Subsection "blockdev-getsz" .Vb 1 \& blockdev\-getsz device .Ve .PP این دستور اندازه دستگاه را بر حسب واحدهای سکتورهای 512 بایتی برمی‌گرداند (حتی اگر اندازه سکتور 512 بایت نباشد ... عجیب است). .PP همچنین برای اندازه واقعی سکتور دستگاه به "blockdev\-getss" و برای \fIاندازه بر حسب بایت\fR که کاربردی‌تر است به "blockdev\-getsize64" مراجعه کنید. .PP این دستور از دستور \fBblockdev\fR\|(8) استفاده می‌کند. .SS blockdev\-rereadpt .IX Subsection "blockdev-rereadpt" .Vb 1 \& blockdev\-rereadpt device .Ve .PP جدول پارتیشن را روی \f(CW\*(C`device\*(C'\fR مجدداً می‌خواند. .PP این دستور از دستور \fBblockdev\fR\|(8) استفاده می‌کند. .SS blockdev\-setbsz .IX Subsection "blockdev-setbsz" .Vb 1 \& blockdev\-setbsz device blocksize .Ve .PP این فراخوانی هیچ کاری انجام نمی‌دهد و به دلیل وجود یک باگ در blockdev هرگز کاری انجام نداده است. \fBاز آن استفاده نکنید.\fR .PP اگر نیاز به تنظیم اندازه بلوک فایل‌سیستم دارید، از گزینه \&\f(CW\*(C`blocksize\*(C'\fR در "mkfs" استفاده کنید. .PP \&\fIاین تابع منسوخ شده است.\fR هیچ جایگزینی ندارد. برای اطلاعات بیشتر به مستندات API در \&\fBguestfs\fR\|(3) مراجعه کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان می‌دهد که مشکلاتی در استفاده صحیح از این توابع وجود دارد. .SS blockdev\-setra .IX Subsection "blockdev-setra" .Vb 1 \& blockdev\-setra device sectors .Ve .PP تنظیم پیش‌خوانی یا readahead (بر حسب سکتورهای 512 بایتی) برای دستگاه. .PP این دستور از دستور \fBblockdev\fR\|(8) استفاده می‌کند. .SS blockdev\-setro .IX Subsection "blockdev-setro" .Vb 1 \& blockdev\-setro device .Ve .PP دستگاه بلوکی با نام \f(CW\*(C`device\*(C'\fR را در حالت فقط‌خواندنی قرار می‌دهد. .PP این دستور از دستور \fBblockdev\fR\|(8) استفاده می‌کند. .SS blockdev\-setrw .IX Subsection "blockdev-setrw" .Vb 1 \& blockdev\-setrw device .Ve .PP دستگاه بلوکی با نام \f(CW\*(C`device\*(C'\fR را در حالت خواندنی/نوشتنی قرار می‌دهد. .PP این دستور از دستور \fBblockdev\fR\|(8) استفاده می‌کند. .SS btrfs\-balance\-cancel .IX Subsection "btrfs-balance-cancel" .Vb 1 \& btrfs\-balance\-cancel path .Ve .PP لغو عملیات بالانس (balance) در حال اجرا روی یک فایل‌سیستم btrfs. .PP این دستور به ویژگی \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین نگاه کنید به "feature\-available". .SS btrfs\-balance\-pause .IX Subsection "btrfs-balance-pause" .Vb 1 \& btrfs\-balance\-pause path .Ve .PP مکث در عملیات بالانس (balance) در حال اجرا روی یک فایل‌سیستم btrfs. .PP این دستور به ویژگی \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین نگاه کنید به "feature\-available". .SS btrfs\-balance\-resume .IX Subsection "btrfs-balance-resume" .Vb 1 \& btrfs\-balance\-resume path .Ve .PP ادامه عملیات بالانس (balance) متوقف‌شده روی یک فایل‌سیستم btrfs. .PP این دستور به ویژگی \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین نگاه کنید به "feature\-available". .SS btrfs\-balance\-status .IX Subsection "btrfs-balance-status" .Vb 1 \& btrfs\-balance\-status path .Ve .PP نمایش وضعیت یک عملیات توازن (balance) در حال اجرا یا متوقف‌شده روی یک سیستم‌فایل btrfs. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-device\-add .IX Subsection "btrfs-device-add" .Vb 1 \& btrfs\-device\-add \*(Aqdevices ...\*(Aq fs .Ve .PP افزودن فهرست دستگاه(ها) در \f(CW\*(C`devices\*(C'\fR به سیستم‌فایل btrfs مونت‌شده در \f(CW\*(C`fs\*(C'\fR. اگر \f(CW\*(C`devices\*(C'\fR یک فهرست خالی باشد، هیچ کاری انجام نمی‌شود. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-device\-delete .IX Subsection "btrfs-device-delete" .Vb 1 \& btrfs\-device\-delete \*(Aqdevices ...\*(Aq fs .Ve .PP حذف \f(CW\*(C`devices\*(C'\fR از سیستم‌فایل btrfs مونت‌شده در \f(CW\*(C`fs\*(C'\fR. اگر \f(CW\*(C`devices\*(C'\fR یک فهرست خالی باشد، هیچ کاری انجام نمی‌شود. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-filesystem\-balance .IX Subsection "btrfs-filesystem-balance" .SS btrfs\-balance .IX Subsection "btrfs-balance" .Vb 1 \& btrfs\-filesystem\-balance fs .Ve .PP توازن (balance) تکه‌ها (chunks) در سیستم‌فایل btrfs مونت‌شده در \f(CW\*(C`fs\*(C'\fR در سراسر دستگاه‌های زیربنایی. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-filesystem\-defragment .IX Subsection "btrfs-filesystem-defragment" .Vb 1 \& btrfs\-filesystem\-defragment path [flush:true|false] [compress:..] .Ve .PP یکپارچه‌سازی (defragment) یک فایل یا دایرکتوری روی سیستم‌فایل btrfs. مقدار compress یکی از zlib یا lzo است. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-filesystem\-resize .IX Subsection "btrfs-filesystem-resize" .Vb 1 \& btrfs\-filesystem\-resize mountpoint [size:N] .Ve .PP این دستور اندازه یک سیستم‌فایل btrfs را تغییر می‌دهد. .PP توجه داشته باشید که بر خلاف سایر فراخوانی‌های تغییر اندازه، سیستم‌فایل باید مونت شده باشد و پارامتر مربوطه نقطه مونت است نه دستگاه (این یکی از الزامات خود btrfs است). .PP پارامترهای اختیاری عبارتند از: .ie n .IP """size""" 4 .el .IP \f(CWsize\fR 4 .IX Item "size" اندازه جدید (به بایت) سیستم‌فایل. در صورت حذف، اندازه سیستم‌فایل به حداکثر اندازه ممکن تغییر می‌یابد. .PP همچنین ببینید \fBbtrfs\fR\|(8). .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-filesystem\-show .IX Subsection "btrfs-filesystem-show" .Vb 1 \& btrfs\-filesystem\-show device .Ve .PP نمایش تمام دستگاه‌هایی که سیستم‌فایل‌های موجود در \f(CW\*(C`device\*(C'\fR روی آن‌ها گسترده شده‌اند. .PP اگر تمام دستگاه‌های مربوط به سیستم‌فایل‌ها موجود نباشند، این تابع شکست خورده و \f(CW\*(C`errno\*(C'\fR برابر با \f(CW\*(C`ENODEV\*(C'\fR تنظیم می‌شود. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-filesystem\-sync .IX Subsection "btrfs-filesystem-sync" .Vb 1 \& btrfs\-filesystem\-sync fs .Ve .PP اجبار به همگام‌سازی (sync) روی سیستم‌فایل btrfs مونت‌شده در \f(CW\*(C`fs\*(C'\fR. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-fsck .IX Subsection "btrfs-fsck" .Vb 1 \& btrfs\-fsck device [superblock:N] [repair:true|false] .Ve .PP برای بررسی یک سیستم‌فایل btrfs استفاده می‌شود، \f(CW\*(C`device\*(C'\fR فایل دستگاهی است که سیستم‌فایل روی آن ذخیره شده است. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "btrfs\-scrub\-full" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ شدن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-image .IX Subsection "btrfs-image" .Vb 1 \& btrfs\-image \*(Aqsource ...\*(Aq image [compresslevel:N] .Ve .PP این دستور برای ایجاد یک ایمیج از یک سیستم‌فایل btrfs استفاده می‌شود. تمام داده‌ها صفر می‌شوند، اما متادیتا و موارد مشابه حفظ می‌گردند. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-qgroup\-assign .IX Subsection "btrfs-qgroup-assign" .Vb 1 \& btrfs\-qgroup\-assign src dst path .Ve .PP افزودن qgroup با نام \f(CW\*(C`src\*(C'\fR به qgroup والد \f(CW\*(C`dst\*(C'\fR. این دستور می‌تواند چندین qgroup را در یک qgroup والد گروه‌بندی کند تا محدودیت مشترک به اشتراک گذاشته شود. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-qgroup\-create .IX Subsection "btrfs-qgroup-create" .Vb 1 \& btrfs\-qgroup\-create qgroupid subvolume .Ve .PP ایجاد یک گروه سهمیه‌بندی (qgroup) برای زیرحجم در \f(CW\*(C`subvolume\*(C'\fR. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-qgroup\-destroy .IX Subsection "btrfs-qgroup-destroy" .Vb 1 \& btrfs\-qgroup\-destroy qgroupid subvolume .Ve .PP حذف یک گروه سهمیه‌بندی (quota group). .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-qgroup\-limit .IX Subsection "btrfs-qgroup-limit" .Vb 1 \& btrfs\-qgroup\-limit subvolume size .Ve .PP محدود کردن اندازه زیرحجم با مسیر \f(CW\*(C`subvolume\*(C'\fR. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-qgroup\-remove .IX Subsection "btrfs-qgroup-remove" .Vb 1 \& btrfs\-qgroup\-remove src dst path .Ve .PP حذف qgroup با نام \f(CW\*(C`src\*(C'\fR از qgroup والد \f(CW\*(C`dst\*(C'\fR. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-qgroup\-show .IX Subsection "btrfs-qgroup-show" .Vb 1 \& btrfs\-qgroup\-show path .Ve .PP نمایش تمام گروه‌های سهمیه‌بندی زیرحجم در یک سیستم‌فایل btrfs، شامل میزان استفاده آن‌ها. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-quota\-enable .IX Subsection "btrfs-quota-enable" .Vb 1 \& btrfs\-quota\-enable fs true|false .Ve .PP فعال یا غیرفعال کردن پشتیبانی از سهمیه‌بندی زیرحجم برای سیستم‌فایلی که شامل \f(CW\*(C`path\*(C'\fR است. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-quota\-rescan .IX Subsection "btrfs-quota-rescan" .Vb 1 \& btrfs\-quota\-rescan fs .Ve .PP دور ریختن تمام اعداد qgroup و اسکن مجدد متادیتا با پیکربندی فعلی. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-replace .IX Subsection "btrfs-replace" .Vb 1 \& btrfs\-replace srcdev targetdev mntpoint .Ve .PP جایگزینی دستگاه در یک سیستم‌فایل btrfs. روی یک سیستم‌فایل فعال، داده‌هایی که در حال حاضر روی دستگاه مبدأ ذخیره شده‌اند روی دستگاه مقصد کپی می‌شوند. پس از اتمام عملیات، دستگاه مبدأ پاکسازی شده و از سیستم‌فایل حذف می‌شود. .PP اندازه \f(CW\*(C`targetdev\*(C'\fR باید برابر یا بزرگ‌تر از \f(CW\*(C`srcdev\*(C'\fR باشد. دستگاه‌هایی که در حال حاضر مونت هستند هرگز مجاز نیستند به عنوان \f(CW\*(C`targetdev\*(C'\fR استفاده شوند. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-rescue\-chunk\-recover .IX Subsection "btrfs-rescue-chunk-recover" .Vb 1 \& btrfs\-rescue\-chunk\-recover device .Ve .PP بازیابی درخت تکه‌ها (chunk tree) در سیستم‌فایل btrfs از طریق اسکن تک‌تک دستگاه‌ها. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-rescue\-super\-recover .IX Subsection "btrfs-rescue-super-recover" .Vb 1 \& btrfs\-rescue\-super\-recover device .Ve .PP بازیابی سوپربلاک‌های خراب از روی نسخه‌های سالم. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-scrub\-cancel .IX Subsection "btrfs-scrub-cancel" .Vb 1 \& btrfs\-scrub\-cancel path .Ve .PP لغو یک عملیات اسکراب (scrub) در حال اجرا روی سیستم‌فایل btrfs. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-scrub\-full .IX Subsection "btrfs-scrub-full" .Vb 1 \& btrfs\-scrub\-full path [readonly:true|false] .Ve .PP اجرای یک اسکراب کامل روی سیستم‌فایل btrfs و انتظار برای پایان یافتن آن. اگر سیستم‌فایل دارای خطا باشد، این دستور یک خطا برمی‌گرداند. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-scrub\-resume .IX Subsection "btrfs-scrub-resume" .Vb 1 \& btrfs\-scrub\-resume path .Ve .PP ادامه دادن یک اسکراب که پیش‌تر لغو یا متوقف شده بود روی سیستم‌فایل btrfs. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-scrub\-start .IX Subsection "btrfs-scrub-start" .Vb 1 \& btrfs\-scrub\-start path .Ve .PP تمام داده‌ها و متادیتاهای روی سیستم‌فایل را می‌خواند و از چکسام‌ها و نسخه‌های رونوشت ذخیره‌سازی RAID برای شناسایی و ترمیم داده‌های فاسد استفاده می‌کند. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-scrub\-status .IX Subsection "btrfs-scrub-status" .Vb 1 \& btrfs\-scrub\-status path .Ve .PP نمایش وضعیت اسکراب در حال اجرا یا پایان‌یافته روی سیستم‌فایل btrfs. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-set\-seeding .IX Subsection "btrfs-set-seeding" .Vb 1 \& btrfs\-set\-seeding device true|false .Ve .PP فعال یا غیرفعال کردن قابلیت سیدینگ (seeding) برای دستگاهی که شامل یک سیستم‌فایل btrfs است. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-subvolume\-create .IX Subsection "btrfs-subvolume-create" .SS btrfs\-subvolume\-create\-opts .IX Subsection "btrfs-subvolume-create-opts" .Vb 1 \& btrfs\-subvolume\-create dest [qgroupid:..] .Ve .PP ایجاد یک زیرحجم (subvolume) در btrfs. آرگومان \f(CW\*(C`dest\*(C'\fR دایرکتوری مقصد و نام زیرحجم است که به صورت \fI/path/to/dest/name\fR مشخص می‌شود. پارامتر اختیاری \f(CW\*(C`qgroupid\*(C'\fR مشخص‌کننده qgroup است که زیرحجم تازه ایجاد شده به آن اضافه خواهد شد. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-subvolume\-delete .IX Subsection "btrfs-subvolume-delete" .Vb 1 \& btrfs\-subvolume\-delete subvolume .Ve .PP حذف زیرحجم یا اسنپ‌شات نام‌برده شده در btrfs. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-subvolume\-get\-default .IX Subsection "btrfs-subvolume-get-default" .Vb 1 \& btrfs\-subvolume\-get\-default fs .Ve .PP دریافت زیرحجم یا اسنپ‌شات پیش‌فرض سیستم‌فایل مونت‌شده در \f(CW\*(C`mountpoint\*(C'\fR. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-subvolume\-list .IX Subsection "btrfs-subvolume-list" .Vb 1 \& btrfs\-subvolume\-list fs .Ve .PP فهرست کردن اسنپ‌شات‌ها و زیرحجم‌های سیستم‌فایل btrfs که در \f(CW\*(C`fs\*(C'\fR مونت شده است. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-subvolume\-set\-default .IX Subsection "btrfs-subvolume-set-default" .Vb 1 \& btrfs\-subvolume\-set\-default id fs .Ve .PP تنظیم زیرحجم سیستم‌فایل btrfs با نام \f(CW\*(C`fs\*(C'\fR که به صورت پیش‌فرض مونت خواهد شد. برای دریافت فهرست زیرحجم‌ها، "btrfs\-subvolume\-list" را ببینید. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-subvolume\-show .IX Subsection "btrfs-subvolume-show" .Vb 1 \& btrfs\-subvolume\-show subvolume .Ve .PP بازگرداندن اطلاعات تفصیلی درباره زیرحجم. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfs\-subvolume\-snapshot .IX Subsection "btrfs-subvolume-snapshot" .SS btrfs\-subvolume\-snapshot\-opts .IX Subsection "btrfs-subvolume-snapshot-opts" .Vb 1 \& btrfs\-subvolume\-snapshot source dest [ro:true|false] [qgroupid:..] .Ve .PP ایجاد یک اسنپ‌شات از زیرحجم btrfs با نام \f(CW\*(C`source\*(C'\fR. آرگومان \f(CW\*(C`dest\*(C'\fR دایرکتوری مقصد و نام اسنپ‌شات است که به صورت \fI/path/to/dest/name\fR مشخص می‌شود. به صورت پیش‌فرض اسنپ‌شات ایجاد شده قابل نوشتن است، اما اگر مقدار پارامتر اختیاری \f(CW\*(C`ro\*(C'\fR برابر true باشد، اسنپ‌شات فقط‌خواندنی ایجاد می‌شود. پارامتر اختیاری \f(CW\*(C`qgroupid\*(C'\fR مشخص‌کننده qgroup است که اسنپ‌شات ایجاد شده به آن افزوده خواهد شد. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfstune\-enable\-extended\-inode\-refs .IX Subsection "btrfstune-enable-extended-inode-refs" .Vb 1 \& btrfstune\-enable\-extended\-inode\-refs device .Ve .PP این دستور ارجاعات گسترش‌یافته inode (extended inode refs) را فعال می‌کند. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfstune\-enable\-skinny\-metadata\-extent\-refs .IX Subsection "btrfstune-enable-skinny-metadata-extent-refs" .Vb 1 \& btrfstune\-enable\-skinny\-metadata\-extent\-refs device .Ve .PP این دستور ارجاعات اکستنت متادیتای لاغر (skinny metadata extent refs) را فعال می‌کند. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS btrfstune\-seeding .IX Subsection "btrfstune-seeding" .Vb 1 \& btrfstune\-seeding device true|false .Ve .PP فعال کردن قابلیت سیدینگ برای یک دستگاه btrfs؛ این کار سیستم‌فایل را فقط‌خواندنی می‌کند تا بتوانید از آن برای ساخت سایر سیستم‌فایل‌ها استفاده نمایید. .PP این دستور به قابلیت \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS c\-pointer .IX Subsection "c-pointer" .Vb 1 \& c\-pointer .Ve .PP در اتصالات زبان‌های غیر C، این دستور به شما امکان می‌دهد اشاره‌گر C زیربنایی به هندل (یعنی "h *") را بازیابی کنید. هدف از این کار این است که به سایر کتابخانه‌ها امکان تعامل با libguestfs داده شود. .SS canonical\-device\-name .IX Subsection "canonical-device-name" .Vb 1 \& canonical\-device\-name device .Ve .PP این تابع ابزاری هنگام نمایش نام دستگاه‌ها به کاربر مفید است. این دستور تعدادی از نام‌های غیرمعمول دستگاه‌ها را دریافت کرده و آن‌ها را در قالبی سازگار و یکدست برمی‌گرداند: .IP \fI/dev/hdX\fR 4 .IX Item "/dev/hdX" .PD 0 .IP \fI/dev/vdX\fR 4 .IX Item "/dev/vdX" .PD این موارد به عنوان \fI/dev/sdX\fR بازگردانده می‌شوند. توجه داشته باشید که این دستور برای نام‌های دستگاه و نام‌های پارتیشن کار می‌کند. این تقریباً معکوس الگوریتم شرح داده شده در "BLOCK DEVICE NAMING" در \fBguestfs\fR\|(3) است. .IP \fI/dev/mapper/VG\-LV\fR 4 .IX Item "/dev/mapper/VG-LV" .PD 0 .IP \fI/dev/dm\-N\fR 4 .IX Item "/dev/dm-N" .PD با استفاده از "lvm\-canonical\-lv\-name" به شکل \fI/dev/VG/LV\fR تبدیل می‌شوند. .PP سایر رشته‌ها بدون تغییر بازگردانده می‌شوند. .SS cap\-get\-file .IX Subsection "cap-get-file" .Vb 1 \& cap\-get\-file path .Ve .PP این تابع قابلیت‌های لینوکس (capabilities) متصل به \f(CW\*(C`path\*(C'\fR را برمی‌گرداند. مجموعه قابلیت‌ها به صورت متنی بازگردانده می‌شود (ببینید \fBcap_to_text\fR\|(3)). .PP اگر هیچ قابلیتی به فایل متصل نباشد، یک رشته خالی برگردانده می‌شود. .PP این دستور به قابلیت \f(CW\*(C`linuxcaps\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS cap\-set\-file .IX Subsection "cap-set-file" .Vb 1 \& cap\-set\-file path cap .Ve .PP این تابع قابلیت‌های لینوکس متصل به \f(CW\*(C`path\*(C'\fR را تنظیم می‌کند. مجموعه قابلیت‌های \f(CW\*(C`cap\*(C'\fR باید به صورت متنی ارسال شود (ببینید \fBcap_from_text\fR\|(3)). .PP این دستور به قابلیت \f(CW\*(C`linuxcaps\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS case\-sensitive\-path .IX Subsection "case-sensitive-path" .Vb 1 \& case\-sensitive\-path path .Ve .PP این دستور می‌تواند برای حل و تطبیق مسیرهای حساس به کوچک و بزرگی حروف روی سیستم‌فایلی که حساس به حروف است استفاده شود. مورد کاربرد آن تبدیل مسیرهایی است که از فایل‌های پیکربندی ویندوز یا ریجستری ویندوز خوانده‌اید به مسیر واقعی در لینوکس. .PP این دستور یکی از ویژگی‌های خاص درایور لینوکسی ntfs\-3g (و احتمالاً درایورهای دیگر) را مدیریت می‌کند؛ با وجود این‌که سیستم‌فایل زیربنایی به حروف حساس نیست، این درایور سیستم‌فایل را به صورت حساس به حروف به لینوکس صادر می‌کند. .PP یک پیامد این موضوع آن است که دایرکتوری‌های ویژه مانند \fIC:\ewindows\fR ممکن است بسته به جزئیات دقیق نحوه ایجاد آن‌ها به صورت \fI/WINDOWS\fR یا \fI/windows\fR (یا موارد دیگر) ظاهر شوند. در خود ویندوز این مسئله مشکلی ایجاد نمی‌کرد. .PP باگ است یا قابلیت؟ قضاوت با شماست. مدخل مربوطه در پرسش‌های متداول ntfs\-3g را ببینید: https://github.com/tuxera/ntfs\-3g/wiki/NTFS\-3G\-FAQ .PP دستور "case\-sensitive\-path" تلاش می‌کند حالت حروف صحیح هر عنصر در مسیر را پیدا کند. اگر کل مسیر یا دایرکتوری والد آن وجود داشته باشد، مسیر حل‌شده را برمی‌گرداند. اگر دایرکتوری والد وجود داشته باشد ولی کل مسیر وجود نداشته باشد، حالت حروف دایرکتوری والد به درستی حل شده و بقیه مسیر بدون تغییر پیوست می‌شود. برای مثال، اگر فایل \f(CW"/Windows/System32/netkvm.sys"\fR موجود باشد: .IP """case\-sensitive\-path"" (""/windows/system32/netkvm.sys"")" 4 .IX Item """case-sensitive-path"" (""/windows/system32/netkvm.sys"")" "Windows/System32/netkvm.sys" .IP """case\-sensitive\-path"" (""/windows/system32/NoSuchFile"")" 4 .IX Item """case-sensitive-path"" (""/windows/system32/NoSuchFile"")" "Windows/System32/NoSuchFile" .IP """case\-sensitive\-path"" (""/windows/system33/netkvm.sys"")" 4 .IX Item """case-sensitive-path"" (""/windows/system33/netkvm.sys"")" \&\fIERROR\fR .PP \&\fIنکته\fR: به دلیل رفتار فوق، نمی‌توان از "case\-sensitive\-path" برای بررسی وجود یک فایل استفاده کرد. .PP \&\fIنکته\fR: این تابع نام درایوها، بک‌اسلش‌ها و موارد مشابه را مدیریت نمی‌کند. .PP همچنین ببینید "realpath". .SS cat .IX Subsection "cat" .Vb 1 \& cat path .Ve .PP محتویات فایل با نام \f(CW\*(C`path\*(C'\fR را برمی‌گرداند. .PP از آنجا که در زبان C این تابع یک \f(CW\*(C`char *\*(C'\fR برمی‌گرداند، راهی برای تمایز بین نویسه \f(CW\*(C`\e0\*(C'\fR در فایل و پایان رشته وجود ندارد. برای کار با فایل‌های باینری، از توابع "read\-file" یا "download" استفاده کنید. .SS checksum .IX Subsection "checksum" .Vb 1 \& checksum csumtype path .Ve .PP این فراخوانی چکسام MD5، SHAx یا CRC مربوط به فایل با نام \f(CW\*(C`path\*(C'\fR را محاسبه می‌کند. .PP نوع چکسام برای محاسبه با پارامتر \f(CW\*(C`csumtype\*(C'\fR مشخص می‌شود که باید یکی از مقادیر زیر را داشته باشد: .ie n .IP """crc""" 4 .el .IP \f(CWcrc\fR 4 .IX Item "crc" محاسبه چکسام افزونگی چرخه‌ای (CRC) مشخص‌شده توسط استاندارد POSIX برای دستور \f(CW\*(C`cksum\*(C'\fR. .ie n .IP """gost""" 4 .el .IP \f(CWgost\fR 4 .IX Item "gost" .PD 0 .ie n .IP """gost12""" 4 .el .IP \f(CWgost12\fR 4 .IX Item "gost12" .PD محاسبه چکسام با استفاده از خلاصه پیام GOST R34.11\-94 یا GOST R34.11\-2012. .ie n .IP """md5""" 4 .el .IP \f(CWmd5\fR 4 .IX Item "md5" محاسبه هش MD5 (با استفاده از برنامه \fBmd5sum\fR\|(1)). .ie n .IP """sha1""" 4 .el .IP \f(CWsha1\fR 4 .IX Item "sha1" محاسبه هش SHA1 (با استفاده از برنامه \fBsha1sum\fR\|(1)). .ie n .IP """sha224""" 4 .el .IP \f(CWsha224\fR 4 .IX Item "sha224" محاسبه هش SHA224 (با استفاده از برنامه \fBsha224sum\fR\|(1)). .ie n .IP """sha256""" 4 .el .IP \f(CWsha256\fR 4 .IX Item "sha256" محاسبه هش SHA256 (با استفاده از برنامه \fBsha256sum\fR\|(1)). .ie n .IP """sha384""" 4 .el .IP \f(CWsha384\fR 4 .IX Item "sha384" محاسبه هش SHA384 (با استفاده از برنامه \fBsha384sum\fR\|(1)). .ie n .IP """sha512""" 4 .el .IP \f(CWsha512\fR 4 .IX Item "sha512" محاسبه هش SHA512 (با استفاده از برنامه \fBsha512sum\fR\|(1)). .PP چکسام به عنوان یک رشته قابل چاپ بازگردانده می‌شود. .PP برای دریافت چکسام یک دستگاه، از "checksum\-device" استفاده کنید. .PP برای دریافت چکسام چندین فایل، از "checksums\-out" استفاده کنید. .SS checksum\-device .IX Subsection "checksum-device" .Vb 1 \& checksum\-device csumtype device .Ve .PP این فراخوانی چکسام MD5، SHAx یا CRC مربوط به محتویات دستگاه با نام \f(CW\*(C`device\*(C'\fR را محاسبه می‌کند. برای مشاهده انواع چکسام‌های پشتیبانی‌شده، دستور "checksum" را ببینید. .SS checksums\-out .IX Subsection "checksums-out" .Vb 1 \& checksums\-out csumtype directory (sumsfile|\-) .Ve .PP این دستور چکسام تمام فایل‌های معمولی موجود در \fIdirectory\fR را محاسبه کرده و سپس فهرستی از آن چکسام‌ها را در فایل خروجی محلی \f(CW\*(C`sumsfile\*(C'\fR منتشر می‌کند. .PP این دستور می‌تواند برای اعتبارسنجی یکپارچگی یک ماشین مجازی استفاده شود. با این حال برای امنیت مناسب باید به خروجی دستور چکسام دقت کنید (این دستور از ابزارهای GNU coreutils استفاده می‌کند). به ویژه زمانی که نام فایل غیرقابل چاپ باشد، coreutils از سینتکس ویژه بک‌اسلش استفاده می‌نماید. برای اطلاعات بیشتر، فایل info مربوط به GNU coreutils را ببینید. .PP به جای نام فایل از \f(CW\*(C`\-\*(C'\fR برای خواندن/نوشتن از stdin/stdout استفاده کنید. .SS chmod .IX Subsection "chmod" .Vb 1 \& chmod mode path .Ve .PP تغییر حالت (مجوزهای دسترسی) \f(CW\*(C`path\*(C'\fR به \f(CW\*(C`mode\*(C'\fR. فقط حالت‌های عددی پشتیبانی می‌شوند. .PP \&\fIنکته\fR: هنگام استفاده از این دستور از طریق guestfish، مقدار \f(CW\*(C`mode\*(C'\fR به صورت پیش‌فرض در مبنای ده (دسیمال) خواهد بود، مگر اینکه پیشوند \&\f(CW0\fR را برای مبنای هشت (اکتال) به آن اضافه کنید؛ یعنی از \f(CW0700\fR استفاده کنید نه \f(CW700\fR. .PP حالت دسترسی که واقعاً اعمال می‌شود تحت تأثیر umask قرار دارد. .SS chown .IX Subsection "chown" .Vb 1 \& chown owner group path .Ve .PP تغییر مالک فایل به \f(CW\*(C`owner\*(C'\fR و گروه به \f(CW\*(C`group\*(C'\fR. .PP تنها uid و gid عددی پشتیبانی می‌شوند. اگر می‌خواهید از نام‌ها استفاده کنید، باید فایل پسورد را خودتان یافته و پردازش کنید (پشتیبانی از Augeas این کار را نسبتاً آسان می‌کند). .SS clear\-backend\-setting .IX Subsection "clear-backend-setting" .Vb 1 \& clear\-backend\-setting name .Ve .PP اگر رشته‌ای از تنظیمات بک‌اند مطابق با \f(CW"name"\fR یا شروع‌شونده با \f(CW"name="\fR وجود داشته باشد، آن رشته از تنظیمات بک‌اند حذف می‌شود. .PP این فراخوانی تعداد رشته‌های حذف‌شده را برمی‌گرداند (که ممکن است 0، 1 یا بیشتر از 1 باشد). .PP ببینید "BACKEND" در \fBguestfs\fR\|(3)، "BACKEND SETTINGS" در \fBguestfs\fR\|(3). .SS clevis\-luks\-unlock .IX Subsection "clevis-luks-unlock" .Vb 1 \& clevis\-luks\-unlock device mapname .Ve .PP این دستور یک دستگاه بلوکی رمزنگاری‌شده بر اساس استاندارد Linux Unified Key Setup (LUKS) را با استفاده از رمزنگاری دیسک متصل به شبکه (NBDE) بازگشایی می‌کند. .PP \&\f(CW\*(C`device\*(C'\fR دستگاه بلوکی رمزنگاری‌شده است. .PP اپلاینس به سرورهای Tang ذکر شده در درخت پین‌های Clevis که به یک keyslot از هدر LUKS متصل است، متصل خواهد شد. درخت پین‌های Clevis ممکن است شامل پین‌های \f(CW\*(C`sss\*(C'\fR (افزونگی) به عنوان گره‌های داخلی (اختیاری) و پین‌های \f(CW\*(C`tang\*(C'\fR به عنوان برگ‌ها باشد. پین‌های \f(CW\*(C`tpm2\*(C'\fR پشتیبانی نمی‌شوند. اپلاینس با ترکیب پاسخ‌های سرورهای Tang با متادیتای هدر LUKS قفل دستگاه بلوکی را باز می‌کند؛ پارامتر \f(CW\*(C`key\*(C'\fR وجود ندارد. .PP اگر شبکه برای اپلاینس فعال نشده باشد، این دستور با شکست مواجه می‌شود. به "set\-network" مراجعه کنید. .PP این دستور یک دستگاه بلوکی جدید به نام \fI/dev/mapper/mapname\fR ایجاد می‌کند. خواندن و نوشتن در این دستگاه بلوکی به ترتیب از روی \f(CW\*(C`device\*(C'\fR زیربنایی رمزگشایی و روی آن رمزنگاری می‌شود. دستگاه بلوکی رمزگشایی‌شده را با "cryptsetup\-close" ببندید. .PP مقدار \f(CW\*(C`mapname\*(C'\fR نمی‌تواند \f(CW"control"\fR باشد زیرا این نام توسط device\-mapper رزرو شده است. .PP اگر این دستگاه بلوکی شامل گروه‌های حجم LVM باشد، فراخوانی "lvm\-scan" با پارامتر \f(CW\*(C`activate\*(C'\fR برابر با \f(CW\*(C`true\*(C'\fR آن‌ها را قابل مشاهده می‌کند. .PP از "list\-dm\-devices" برای فهرست کردن تمام دستگاه‌های device mapper استفاده کنید. .PP این دستور به قابلیت \f(CW\*(C`clevisluks\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS command .IX Subsection "command" .Vb 1 \& command \*(Aqarguments ...\*(Aq .Ve .PP این فراخوانی یک دستور را از درون سیستم‌فایل مهمان اجرا می‌کند. سیستم‌فایل باید مونت شده باشد و شامل یک سیستم‌عامل سازگار باشد (یعنی لینوکس، با معماری پردازنده یکسان یا سازگار). .PP تنها پارامتر، فهرستی از آرگومان‌ها به سبک argv است. عنصر اول نام برنامه برای اجرا است. عناصر بعدی پارامترها هستند. فهرست نباید خالی باشد (یعنی باید حداقل شامل یک نام برنامه باشد). توجه داشته باشید که دستور مستقیماً اجرا می‌شود و از طریق پوسته (shell) فراخوانی \fIنمی‌شود\fR (ببینید "sh"). .PP مقدار بازگشتی هر آن چیزی است که توسط دستور در \fIstdout\fR چاپ شده است. .PP اگر دستور با وضعیت خروج غیر صفر پایان یابد، این تابع یک پیام خطا برمی‌گرداند. رشته پیام خطا همان محتوای \fIstderr\fR حاصل از دستور است. .PP متغیر محیطی \f(CW$PATH\fR حداقل شامل \fI/usr/bin\fR و \fI/bin\fR خواهد بود. اگر به برنامه‌ای از مکان دیگری نیاز دارید، باید مسیر کامل را در پارامتر اول مشخص کنید. .PP کتابخانه‌های مشترک و فایل‌های داده مورد نیاز برنامه باید در سیستم‌فایل‌هایی که در مکان‌های صحیح مونت شده‌اند در دسترس باشند. این مسئولیت فراخواننده است که اطمینان حاصل کند تمام سیستم‌فایل‌های مورد نیاز در مکان‌های مناسب مونت شده‌اند. .PP به دلیل پروتکل پیام‌رسانی، محدودیت انتقال بین ۲ مگابایت و ۴ مگابایت وجود دارد. ببینید "PROTOCOL LIMITS" در \fBguestfs\fR\|(3). .SS command\-lines .IX Subsection "command-lines" .Vb 1 \& command\-lines \*(Aqarguments ...\*(Aq .Ve .PP این دستور همانند "command" است، اما نتیجه را به فهرستی از خطوط تقسیم می‌کند. .PP همچنین ببینید: "sh\-lines" .PP به دلیل پروتکل پیام‌رسانی، محدودیت انتقال بین ۲ مگابایت و ۴ مگابایت وجود دارد. ببینید "PROTOCOL LIMITS" در \fBguestfs\fR\|(3). .SS command\-out .IX Subsection "command-out" .Vb 1 \& command\-out \*(Aqarguments ...\*(Aq (output|\-) .Ve .PP این دستور همانند "command" است، اما خروجی را به صورت جریانی (stream) برمی‌گرداند و مواردی را که خروجی دستور از محدودیت پروتکل بزرگ‌تر است مدیریت می‌کند. .PP همچنین ببینید: "sh\-out" .PP به جای نام فایل از \f(CW\*(C`\-\*(C'\fR برای خواندن/نوشتن از stdin/stdout استفاده کنید. .SS compress\-device\-out .IX Subsection "compress-device-out" .Vb 1 \& compress\-device\-out ctype device (zdevice|\-) [level:N] .Ve .PP این دستور \f(CW\*(C`device\*(C'\fR را فشرده کرده و در فایل محلی \f(CW\*(C`zdevice\*(C'\fR می‌نویسد. .PP پارامتر \f(CW\*(C`ctype\*(C'\fR و پارامتر اختیاری \f(CW\*(C`level\*(C'\fR همان معنای موجود در "compress\-out" را دارند. .PP به جای نام فایل از \f(CW\*(C`\-\*(C'\fR برای خواندن/نوشتن از stdin/stdout استفاده کنید. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .SS compress\-out .IX Subsection "compress-out" .Vb 1 \& compress\-out ctype file (zfile|\-) [level:N] .Ve .PP این دستور \fIfile\fR را فشرده کرده و در فایل محلی \fIzfile\fR می‌نویسد. .PP برنامه فشرده‌سازی استفاده‌شده توسط پارامتر \f(CW\*(C`ctype\*(C'\fR کنترل می‌شود. در حال حاضر این مقادیر شامل موارد زیر است: \f(CW\*(C`compress\*(C'\fR, \f(CW\*(C`gzip\*(C'\fR, \f(CW\*(C`bzip2\*(C'\fR, \f(CW\*(C`xz\*(C'\fR یا \f(CW\*(C`lzop\*(C'\fR. برخی از انواع فشرده‌سازی ممکن است در ساخت‌های خاصی از libguestfs پشتیبانی نشوند، که در این صورت خطایی شامل زیررشته "not supported" دریافت خواهید کرد. .PP پارامتر اختیاری \f(CW\*(C`level\*(C'\fR سطح فشرده‌سازی را کنترل می‌کند. معنی و مقدار پیش‌فرض این پارامتر به برنامه فشرده‌سازی در حال استفاده بستگی دارد. .PP به جای نام فایل از \f(CW\*(C`\-\*(C'\fR برای خواندن/نوشتن از stdin/stdout استفاده کنید. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .SS config .IX Subsection "config" .Vb 1 \& config hvparam hvvalue .Ve .PP این دستور می‌تواند برای افزودن پارامترهای دلخواه هایپروایزر به فرم \fI\-param value\fR استفاده شود. البته کاملاً دلخواه نیست \- ما از تنظیم برخی پارامترها که با پارامترهای مورد استفاده ما تداخل دارند جلوگیری می‌کنیم. .PP کاراکتر اول رشته \f(CW\*(C`hvparam\*(C'\fR باید یک \f(CW\*(C`\-\*(C'\fR (خط تیره) باشد. .PP مقدار \f(CW\*(C`hvvalue\*(C'\fR می‌تواند NULL باشد. .SS copy\-attributes .IX Subsection "copy-attributes" .Vb 1 \& copy\-attributes src dest [all:true|false] [mode:true|false] [xattributes:true|false] [ownership:true|false] .Ve .PP کپی کردن ویژگی‌های یک مسیر (که می‌تواند فایل یا دایرکتوری باشد) به یک مسیر دیگر. .PP به صورت پیش‌فرض \fBهیچ\fR ویژگی کپی نمی‌شود، بنابراین مطمئن شوید که مورد نظر را مشخص کرده‌اید (یا \f(CW\*(C`all\*(C'\fR را برای کپی همه چیز تنظیم کنید). .PP آرگومان‌های اختیاری تعیین می‌کنند که چه ویژگی‌هایی کپی شوند: .ie n .IP """mode""" 4 .el .IP \f(CWmode\fR 4 .IX Item "mode" کپی بخشی از حالت فایل از \f(CW\*(C`source\*(C'\fR به \f(CW\*(C`destination\*(C'\fR. فقط مجوزهای یونیکس و بیت‌های sticky/setuid/setgid قابل کپی هستند. .ie n .IP """xattributes""" 4 .el .IP \f(CWxattributes\fR 4 .IX Item "xattributes" کپی ویژگی‌های گسترش‌یافته لینوکس (xattrs) از \f(CW\*(C`source\*(C'\fR به \f(CW\*(C`destination\*(C'\fR. اگر قابلیت \fIlinuxxattrs\fR در دسترس نباشد این فلگ هیچ کاری انجام نمی‌دهد (ببینید "feature\-available"). .ie n .IP """ownership""" 4 .el .IP \f(CWownership\fR 4 .IX Item "ownership" کپی مالک uid و گروه gid از \f(CW\*(C`source\*(C'\fR به \f(CW\*(C`destination\*(C'\fR. .ie n .IP """all""" 4 .el .IP \f(CWall\fR 4 .IX Item "all" کپی \fBتمام\fR ویژگی‌ها از \f(CW\*(C`source\*(C'\fR به \f(CW\*(C`destination\*(C'\fR. فعال کردن آن سایر فلگ‌ها را در صورت مشخص نشدن فعال می‌کند. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .SS copy\-device\-to\-device .IX Subsection "copy-device-to-device" .Vb 1 \& copy\-device\-to\-device src dest [srcoffset:N] [destoffset:N] [size:N] [sparse:true|false] [append:true|false] .Ve .PP چهار فراخوانی "copy\-device\-to\-device", "copy\-device\-to\-file", "copy\-file\-to\-device", و "copy\-file\-to\-file" به شما امکان می‌دهند از یک مبدأ (دستگاه|فایل) به یک مقصد (دستگاه|فایل) کپی کنید. .PP کپی‌های جزئی را می‌توان انجام داد زیرا می‌توانید به دلخواه آفست مبدأ، آفست مقصد و اندازه برای کپی را مشخص کنید. این مقادیر همگی به بایت تعیین می‌شوند. در صورت مشخص نشدن، هر دو آفست به صورت پیش‌فرض صفر هستند و اندازه به طور پیش‌فرض تا جای ممکن تا رسیدن به انتهای مبدأ کپی می‌کند. .PP مبدأ و مقصد می‌توانند شیء یکسانی باشند. با این حال نواحی هم‌پوشان ممکن است به درستی کپی نشوند. .PP اگر مقصد یک فایل باشد، در صورت نیاز ایجاد می‌شود. اگر فایل مقصد به اندازه کافی بزرگ نباشد، گسترش داده می‌شود. .PP اگر مقصد یک فایل باشد و فلگ \f(CW\*(C`append\*(C'\fR تنظیم نشده باشد، فایل مقصد کوتاه (truncate) می‌شود. اگر فلگ \f(CW\*(C`append\*(C'\fR تنظیم شده باشد، عملیات کپی به انتهای فایل مقصد پیوست می‌شود. فلگ \f(CW\*(C`append\*(C'\fR در حال حاضر نمی‌تواند برای دستگاه‌ها تنظیم شود. .PP اگر فلگ \f(CW\*(C`sparse\*(C'\fR برابر true باشد، فراخوانی از نوشتن بلوک‌هایی که فقط شامل صفر هستند خودداری می‌کند که در برخی شرایط که دیسک پشتیبان دارای تخصیص پویا (thin\-provisioned) است می‌تواند مفید باشد. توجه داشته باشید مگر اینکه مقصد از قبل صفر شده باشد، استفاده از این گزینه منجر به کپی نادرست خواهد شد. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .SS copy\-device\-to\-file .IX Subsection "copy-device-to-file" .Vb 1 \& copy\-device\-to\-file src dest [srcoffset:N] [destoffset:N] [size:N] [sparse:true|false] [append:true|false] .Ve .PP برای بررسی کلی این فراخوانی، "copy\-device\-to\-device" را ببینید. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .SS copy\-file\-to\-device .IX Subsection "copy-file-to-device" .Vb 1 \& copy\-file\-to\-device src dest [srcoffset:N] [destoffset:N] [size:N] [sparse:true|false] [append:true|false] .Ve .PP برای بررسی کلی این فراخوانی، "copy\-device\-to\-device" را ببینید. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .SS copy\-file\-to\-file .IX Subsection "copy-file-to-file" .Vb 1 \& copy\-file\-to\-file src dest [srcoffset:N] [destoffset:N] [size:N] [sparse:true|false] [append:true|false] .Ve .PP برای بررسی کلی این فراخوانی، "copy\-device\-to\-device" را ببینید. .PP این تابع، تابعی \fBنیست\fR که برای کپی فایل‌ها بخواهید. این تابع برای کپی بلوک‌ها درون فایل‌های موجود است. برای توابع عمومی کپی و انتقال فایل به "cp", "cp\-a" و "mv" مراجعه کنید. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .SS copy\-size .IX Subsection "copy-size" .Vb 1 \& copy\-size src dest size .Ve .PP این دستور دقیقاً \f(CW\*(C`size\*(C'\fR بایت را از یک دستگاه یا فایل مبدأ \f(CW\*(C`src\*(C'\fR به دستگاه یا فایل مقصد دیگری به نام \f(CW\*(C`dest\*(C'\fR کپی می‌کند. .PP توجه داشته باشید اگر مبدأ خیلی کوتاه باشد یا مقصد به اندازه کافی بزرگ نباشد، این عملیات با شکست مواجه خواهد شد. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "copy\-device\-to\-device" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ شدن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .SS cp .IX Subsection "cp" .Vb 1 \& cp src dest .Ve .PP این دستور فایلی را از \f(CW\*(C`src\*(C'\fR به \f(CW\*(C`dest\*(C'\fR کپی می‌کند که در آن \f(CW\*(C`dest\*(C'\fR یا نام فایل مقصد است یا دایرکتوری مقصد. .SS cp\-a .IX Subsection "cp-a" .Vb 1 \& cp\-a src dest .Ve .PP این دستور یک فایل یا دایرکتوری را از \f(CW\*(C`src\*(C'\fR به \f(CW\*(C`dest\*(C'\fR به صورت بازگشتی با استفاده از دستور \f(CW\*(C`cp \-a\*(C'\fR کپی می‌کند. .SS cp\-r .IX Subsection "cp-r" .Vb 1 \& cp\-r src dest .Ve .PP این دستور یک فایل یا دایرکتوری را از \f(CW\*(C`src\*(C'\fR به \f(CW\*(C`dest\*(C'\fR به صورت بازگشتی با استفاده از دستور \f(CW\*(C`cp \-rP\*(C'\fR کپی می‌کند. .PP بیشتر کاربران باید به جای آن از "cp\-a" استفاده کنند. این دستور زمانی مفید است که نمی‌خواهید مجوزها حفظ شوند، زیرا سیستم‌فایل مقصد از آن پشتیبانی نمی‌کند (عمدتاً هنگام نوشتن روی سیستم‌فایل‌های DOS FAT). .SS cpio\-out .IX Subsection "cpio-out" .Vb 1 \& cpio\-out directory (cpiofile|\-) [format:..] .Ve .PP این دستور محتویات \fIdirectory\fR را بسته‌بندی کرده و آن را در فایل محلی \f(CW\*(C`cpiofile\*(C'\fR دانلود می‌کند. .PP پارامتر اختیاری \f(CW\*(C`format\*(C'\fR می‌تواند برای انتخاب قالب استفاده شود. در حال حاضر تنها قالب‌های زیر مجاز هستند: .ie n .IP """newc""" 4 .el .IP \f(CWnewc\fR 4 .IX Item "newc" قالب قابل حمل جدید (SVR4). این قالب تصادفاً با قالب cpio\-گونه مورد استفاده هسته لینوکس برای initramfs سازگار است. .Sp این قالب پیش‌فرض است. .ie n .IP """crc""" 4 .el .IP \f(CWcrc\fR 4 .IX Item "crc" قالب قابل حمل جدید (SVR4) همراه با چکسام. .PP به جای نام فایل از \f(CW\*(C`\-\*(C'\fR برای خواندن/نوشتن از stdin/stdout استفاده کنید. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .SS cryptsetup\-close .IX Subsection "cryptsetup-close" .Vb 1 \& cryptsetup\-close device .Ve .PP این دستور دستگاه رمزگذاری‌شده‌ای را که پیش‌تر توسط "cryptsetup\-open" ایجاد شده است، می‌بندد. پارامتر \f(CW\*(C`device\*(C'\fR باید نام دستگاه نگاشت (یعنی \fI/dev/mapper/mapname\fR) باشد و \fIنه\fR نام دستگاه بلوکی زیرین. .PP این دستور به ویژگی \f(CW\*(C`luks\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS cryptsetup\-open .IX Subsection "cryptsetup-open" .Vb 1 \& cryptsetup\-open device mapname [readonly:true|false] [crypttype:..] [cipher:..] .Ve .PP این دستور یک دستگاه بلوکی را باز می‌کند که طبق استاندارد Linux Unified Key Setup (LUKS)، Windows BitLocker، یا برخی انواع دیگر رمزگذاری شده است. .PP \&\f(CW\*(C`device\*(C'\fR دستگاه یا پارتیشن بلوکی رمزگذاری‌شده است. .PP فراخواننده باید یکی از کلیدهای مرتبط با دستگاه بلوکی رمزگذاری‌شده را در پارامتر \f(CW\*(C`key\*(C'\fR ارائه دهد. .PP این کار یک دستگاه بلوکی جدید به نام \fI/dev/mapper/mapname\fR ایجاد می‌کند. خواندن و نوشتن در این دستگاه بلوکی به‌ترتیب از و به \f(CW\*(C`device\*(C'\fR زیرین رمزگشایی و رمزگذاری می‌شود. .PP \&\f(CW\*(C`mapname\*(C'\fR نمی‌تواند \f(CW"control"\fR باشد زیرا این نام توسط device\-mapper رزرو شده است. .PP اگر پارامتر اختیاری \f(CW\*(C`crypttype\*(C'\fR ارائه نشود، libguestfs تلاش می‌کند نوع صحیح را حدس بزند (برای مثال LUKS یا BitLocker). با این حال می‌توانید با مشخص کردن یکی از انواع زیر آن را لغو کنید: .ie n .IP """luks""" 4 .el .IP \f(CWluks\fR 4 .IX Item "luks" یک دستگاه لینوکسی LUKS. .ie n .IP """bitlk""" 4 .el .IP \f(CWbitlk\fR 4 .IX Item "bitlk" یک دستگاه Windows BitLocker. .PP پرچم اختیاری \f(CW\*(C`readonly\*(C'\fR اگر روی true تنظیم شود، یک نگاشت فقط‌خواندنی ایجاد می‌کند. .PP پارامتر اختیاری \f(CW\*(C`cipher\*(C'\fR امکان تعیین الگوریتم رمزنگاری (cipher) مورد استفاده را فراهم می‌کند. .PP اگر این دستگاه بلوکی حاوی گروه‌های حجم LVM باشد، فراخوانی "lvm\-scan" با پارامتر \f(CW\*(C`activate\*(C'\fR برابر با \f(CW\*(C`true\*(C'\fR آن‌ها را قابل مشاهده می‌کند. .PP برای فهرست کردن تمام دستگاه‌های device mapper از "list\-dm\-devices" استفاده کنید. .PP این دستور دارای یک یا چند پارامتر کلید یا عبارت عبور است. Guestfish این موارد را جداگانه درخواست می‌کند. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .PP این دستور به ویژگی \f(CW\*(C`luks\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS dd .IX Subsection "dd" .Vb 1 \& dd src dest .Ve .PP این دستور از یک دستگاه یا فایل منبع \f(CW\*(C`src\*(C'\fR در یک دستگاه یا فایل مقصد دیگر \f(CW\*(C`dest\*(C'\fR کپی می‌کند. معمولاً از این برای کپی کردن به یا از یک دستگاه یا پارتیشن استفاده می‌کنید، برای مثال برای کپی کردن یک فایل‌سیستم. .PP اگر مقصد یک دستگاه باشد، باید به‌اندازه فایل یا دستگاه منبع یا بزرگ‌تر از آن باشد، در غیر این صورت عملیات کپی با شکست مواجه می‌شود. این دستور نمی‌تواند کپی‌های جزئی انجام دهد ("copy\-device\-to\-device" را ببینید). .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به‌جای آن از فراخوانی "copy\-device\-to\-device" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ شدن آن‌ها نشان می‌دهد که در استفاده صحیح از این توابع مشکلاتی وجود دارد. .SS device\-index .IX Subsection "device-index" .Vb 1 \& device\-index device .Ve .PP این تابع نام یک دستگاه (مثلاً "/dev/sdb") را دریافت کرده و شاخص آن دستگاه را در فهرست دستگاه‌ها برمی‌گرداند. .PP شماره‌های شاخص از 0 شروع می‌شوند. دستگاه نام‌برده باید وجود داشته باشد، برای مثال به‌عنوان رشته‌ای که از "list\-devices" برگردانده شده است. .PP همچنین "list\-devices"، "part\-to\-dev" و "device\-name" را ببینید. .SS device\-name .IX Subsection "device-name" .Vb 1 \& device\-name index .Ve .PP این تابع شاخص یک دستگاه را دریافت کرده و نام دستگاه را برمی‌گرداند. برای مثال شاخص \f(CW0\fR رشته \f(CW\*(C`/dev/sda\*(C'\fR را برمی‌گرداند. .PP شاخص درایو باید قبلاً به هندل اضافه شده باشد. .PP همچنین "list\-devices"، "part\-to\-dev" و "device\-index" را ببینید. .SS df .IX Subsection "df" .Vb 1 \& df .Ve .PP این دستور برای گزارش فضای دیسک استفاده‌شده، دستور \fBdf\fR\|(1) را اجرا می‌کند. .PP این دستور بیشتر برای نشست‌های تعاملی مفید است. قرار \fIنیست\fR رشته خروجی را در برنامه‌ها تجزیه کنید. از برنامه‌ها از "statvfs" استفاده کنید. .SS df\-h .IX Subsection "df-h" .Vb 1 \& df\-h .Ve .PP این دستور برای گزارش فضای دیسک استفاده‌شده با فرمت خوانا برای انسان، دستور \f(CW\*(C`df \-h\*(C'\fR را اجرا می‌کند. .PP این دستور بیشتر برای نشست‌های تعاملی مفید است. قرار \fIنیست\fR رشته خروجی را در برنامه‌ها تجزیه کنید. از برنامه‌ها از "statvfs" استفاده کنید. .SS disk\-create .IX Subsection "disk-create" .Vb 1 \& disk\-create filename format size [backingfile:..] [backingformat:..] [preallocation:..] [compat:..] [clustersize:N] .Ve .PP یک تصویر دیسک خالی به نام \fIfilename\fR (یک فایل روی میزبان) با فرمت \f(CW\*(C`format\*(C'\fR (معمولاً \f(CW\*(C`raw\*(C'\fR یا \f(CW\*(C`qcow2\*(C'\fR) ایجاد می‌کند. اندازه آن \f(CW\*(C`size\*(C'\fR بایت است. .PP اگر با پارامتر اختیاری \f(CW\*(C`backingfile\*(C'\fR استفاده شود، یک اسنپ‌شات روی فایل پشتیبان (backing file) ایجاد می‌شود. در این حالت، \f(CW\*(C`size\*(C'\fR باید به‌صورت \f(CW\-1\fR ارسال شود. اندازه اسنپ‌شات همان اندازه فایل پشتیبان است که به‌طور خودکار شناسایی می‌شود. توصیه می‌شود برای توصیف فرمت \f(CW\*(C`backingfile\*(C'\fR، پارامتر \f(CW\*(C`backingformat\*(C'\fR را نیز ارسال کنید. .PP اگر \fIfilename\fR به یک دستگاه بلوکی اشاره کند، آن دستگاه فرمت می‌شود. مقدار \f(CW\*(C`size\*(C'\fR نادیده گرفته می‌شود زیرا دستگاه‌های بلوکی دارای اندازه ذاتی هستند. .PP سایر پارامترهای اختیاری عبارتند از: .ie n .IP """preallocation""" 4 .el .IP \f(CWpreallocation\fR 4 .IX Item "preallocation" اگر فرمت \f(CW\*(C`raw\*(C'\fR باشد، این می‌تواند \f(CW\*(C`off\*(C'\fR (یا \f(CW\*(C`sparse\*(C'\fR) یا \f(CW\*(C`full\*(C'\fR باشد تا به‌ترتیب یک فایل پراکنده (sparse) یا کاملاً تخصیص‌یافته ایجاد شود. مقدار پیش‌فرض \f(CW\*(C`off\*(C'\fR است. .Sp اگر فرمت \f(CW\*(C`qcow2\*(C'\fR باشد، این مقدار می‌تواند \f(CW\*(C`off\*(C'\fR (یا \f(CW\*(C`sparse\*(C'\fR)، \&\f(CW\*(C`metadata\*(C'\fR یا \f(CW\*(C`full\*(C'\fR باشد. پیش‌تخصیص متادیتا هنگام انجام نوشتن‌های فراوان می‌تواند سریع‌تر باشد، اما فضای بیشتری مصرف می‌کند. مقدار پیش‌فرض \f(CW\*(C`off\*(C'\fR است. .ie n .IP """compat""" 4 .el .IP \f(CWcompat\fR 4 .IX Item "compat" فقط برای \&\f(CW\*(C`qcow2\*(C'\fR: رشته \f(CW1.1\fR را ارسال کنید تا از فرمت پیشرفته qcow2 پشتیبانی‌شده در qemu ≥ 1.1 استفاده شود. .ie n .IP """clustersize""" 4 .el .IP \f(CWclustersize\fR 4 .IX Item "clustersize" فقط برای \&\f(CW\*(C`qcow2\*(C'\fR: تغییر اندازه کلاستر qcow2. مقدار پیش‌فرض 65536 (بایت) است و این تنظیم می‌تواند هر توانی از دو بین 512 و 2097152 باشد. .PP توجه داشته باشید که این فراخوانی دیسک جدید را به هندل اضافه نمی‌کند. ممکن است لازم باشد "add\-drive\-opts" را جداگانه فراخوانی کنید. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .SS disk\-format .IX Subsection "disk-format" .Vb 1 \& disk\-format filename .Ve .PP فرمت تصویر دیسک به نام \fIfilename\fR را شناسایی کرده و برمی‌گرداند. \&\fIfilename\fR می‌تواند یک دستگاه میزبان و غیره نیز باشد. اگر فرمت تصویر قابل شناسایی نباشد، مقدار \f(CW"unknown"\fR برگردانده می‌شود. .PP توجه داشته باشید که تشخیص فرمت دیسک در برخی شرایط ممکن است ناامن باشد. بخش "CVE\-2010\-3851" در \fBguestfs\fR\|(3) را ببینید. .PP همچنین ببینید: "DISK IMAGE FORMATS" در \fBguestfs\fR\|(3) .SS disk\-has\-backing\-file .IX Subsection "disk-has-backing-file" .Vb 1 \& disk\-has\-backing\-file filename .Ve .PP بررسی و بازگرداندن اینکه آیا تصویر دیسک \fIfilename\fR دارای فایل پشتیبان (backing file) است یا خیر. .PP توجه داشته باشید که تشخیص ویژگی‌های دیسک در برخی شرایط ممکن است ناامن باشد. بخش "CVE\-2010\-3851" در \fBguestfs\fR\|(3) را ببینید. .SS disk\-virtual\-size .IX Subsection "disk-virtual-size" .Vb 1 \& disk\-virtual\-size filename .Ve .PP اندازه مجازی تصویر دیسک به نام \fIfilename\fR را به بایت شناسایی کرده و برمی‌گرداند. .PP توجه داشته باشید که تشخیص ویژگی‌های دیسک در برخی شرایط ممکن است ناامن باشد. بخش "CVE\-2010\-3851" در \fBguestfs\fR\|(3) را ببینید. .SS dmesg .IX Subsection "dmesg" .Vb 1 \& dmesg .Ve .PP پیام‌های هسته (خروجی \fBdmesg\fR\|(1)) را از هسته مهمان برمی‌گرداند. این مورد گاهی برای عیب‌یابی پیشرفته مشکلات مفید است. .PP روش دیگر برای دریافت همین اطلاعات، فعال کردن پیام‌های پرجزئیات با "set\-verbose" یا تنظیم متغیر محیطی \f(CW\*(C`LIBGUESTFS_DEBUG=1\*(C'\fR پیش از اجرای برنامه است. .SS download .IX Subsection "download" .Vb 1 \& download remotefilename (filename|\-) .Ve .PP فایل \fIremotefilename\fR را دانلود کرده و آن را به‌عنوان \fIfilename\fR روی ماشین محلی ذخیره می‌کند. .PP \&\fIfilename\fR می‌تواند یک لوله نام‌گذاری‌شده (named pipe) نیز باشد. .PP همچنین "upload" و "cat" را ببینید. .PP برای خواندن/نوشتن از stdin/stdout از \f(CW\*(C`\-\*(C'\fR به‌جای نام فایل استفاده کنید. .SS download\-blocks .IX Subsection "download-blocks" .Vb 1 \& download\-blocks device start stop (filename|\-) [unallocated:true|false] .Ve .PP واحدهای داده را از آدرس \fIstart\fR تا \fIstop\fR از پارتیشن دیسک (مثلاً \fI/dev/sda1\fR) دانلود کرده و آن‌ها را به‌عنوان \fIfilename\fR روی ماشین محلی ذخیره می‌کند. .PP استفاده از این API روی فرمت‌های تصاویر دیسک پراکنده مانند QCOW، ممکن است منجر به دانلود فایل‌های حجیم پر از صفر روی میزبان شود. .PP اندازه یک واحد داده در پیاده‌سازی‌های مختلف فایل‌سیستم متفاوت است. در فایل‌سیستم‌های NTFS واحدهای داده کلاستر (cluster) نامیده می‌شوند در حالی که در فایل‌سیستم‌های ExtX فرگمنت (fragment) نام دارند. .PP اگر پرچم اختیاری \f(CW\*(C`unallocated\*(C'\fR برابر با true باشد (پیش‌فرض false است)، فقط بلوک‌های تخصیص‌نیافته استخراج می‌شوند. این برای شناسایی داده‌های پنهان یا بازیابی فایل‌های حذف‌شده‌ای که واحدهای داده آن‌ها هنوز رونویسی نشده‌اند، مفید است. .PP برای خواندن/نوشتن از stdin/stdout از \f(CW\*(C`\-\*(C'\fR به‌جای نام فایل استفاده کنید. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .PP این دستور به ویژگی \f(CW\*(C`sleuthkit\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS download\-inode .IX Subsection "download-inode" .Vb 1 \& download\-inode device inode (filename|\-) .Ve .PP یک فایل را با توجه به اینود (inode) آن از پارتیشن دیسک (مثلاً \fI/dev/sda1\fR) دانلود کرده و آن را به‌عنوان \fIfilename\fR روی ماشین محلی ذخیره می‌کند. .PP برای اجرای این دستور نیازی به مانت کردن دیسک نیست. .PP این دستور قادر به دانلود فایل‌های حذف‌شده یا غیرقابل دسترس است. .PP برای خواندن/نوشتن از stdin/stdout از \f(CW\*(C`\-\*(C'\fR به‌جای نام فایل استفاده کنید. .PP این دستور به ویژگی \f(CW\*(C`sleuthkit\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS download\-offset .IX Subsection "download-offset" .Vb 1 \& download\-offset remotefilename (filename|\-) offset size .Ve .PP فایل \fIremotefilename\fR را دانلود کرده و آن را به‌عنوان \fIfilename\fR روی ماشین محلی ذخیره می‌کند. .PP فایل \&\fIremotefilename\fR به میزان \f(CW\*(C`size\*(C'\fR بایت با شروع از \f(CW\*(C`offset\*(C'\fR خوانده می‌شود (این ناحیه باید داخل فایل یا دستگاه قرار داشته باشد). .PP توجه داشته باشید که برخلاف "pread"، هیچ محدودیتی در مقدار داده‌ای که می‌تواند با این فراخوانی دانلود شود وجود ندارد و این فراخوانی همیشه مقدار کامل را می‌خواند مگر اینکه خطایی رخ دهد. .PP همچنین "download" و "pread" را ببینید. .PP برای خواندن/نوشتن از stdin/stdout از \f(CW\*(C`\-\*(C'\fR به‌جای نام فایل استفاده کنید. .SS drop\-caches .IX Subsection "drop-caches" .Vb 1 \& drop\-caches whattodrop .Ve .PP این دستور به هسته مهمان دستور می‌دهد که حافظه نهان صفحات (page cache) و/یا حافظه نهان dentryها و اینودها را پاک کند. پارامتر \f(CW\*(C`whattodrop\*(C'\fR دقیقاً به هسته می‌گوید چه چیزی را پاک کند، ببینید https://linux\-mm.org/Drop_Caches .PP تنظیم \f(CW\*(C`whattodrop\*(C'\fR بر روی 3 باید همه‌چیز را پاک کند. .PP این دستور به‌طور خودکار پیش از عملیات تابع \fBsync\fR\|(2) را فراخوانی می‌کند تا بیشترین مقدار حافظه مهمان آزاد شود. .SS du .IX Subsection "du" .Vb 1 \& du path .Ve .PP این دستور برای تخمین میزان فضای استفاده‌شده فایل در \f(CW\*(C`path\*(C'\fR، دستور \f(CW\*(C`du \-s\*(C'\fR را اجرا می‌کند. .PP \&\f(CW\*(C`path\*(C'\fR می‌تواند یک فایل یا یک دایرکتوری باشد. اگر \f(CW\*(C`path\*(C'\fR یک دایرکتوری باشد، تخمین شامل محتویات دایرکتوری و تمام زیردایرکتوری‌ها (به‌صورت بازگشتی) می‌شود. .PP نتیجه، اندازه تخمینی به \fIکیلوبایت\fR (یعنی مضاربی از ۱۰۲۴ بایت) است. .SS e2fsck .IX Subsection "e2fsck" .Vb 1 \& e2fsck device [correct:true|false] [forceall:true|false] [forceno:true|false] .Ve .PP بررسی‌کننده فایل‌سیستم ext2/ext3 را روی \f(CW\*(C`device\*(C'\fR اجرا می‌کند. این دستور می‌تواند آرگومان‌های اختیاری زیر را دریافت کند: .ie n .IP """correct""" 4 .el .IP \f(CWcorrect\fR 4 .IX Item "correct" تعمیر خودکار فایل‌سیستم. این گزینه باعث می‌شود e2fsck هرگونه مشکل فایل‌سیستم را که بتوان بدون دخالت انسان به‌صورت ایمن برطرف کرد، خودکار اصلاح کند. .Sp این گزینه نمی‌تواند هم‌زمان با گزینه‌های \f(CW\*(C`forceall\*(C'\fR یا \f(CW\*(C`forceno\*(C'\fR مشخص شود. .ie n .IP """forceall""" 4 .el .IP \f(CWforceall\fR 4 .IX Item "forceall" فرض پاسخ «بله» به تمام پرسش‌ها؛ امکان استفاده از e2fsck را به‌صورت غیرتعاملی فراهم می‌کند. .Sp این گزینه نمی‌تواند هم‌زمان با گزینه‌های \f(CW\*(C`correct\*(C'\fR یا \f(CW\*(C`forceno\*(C'\fR مشخص شود. .ie n .IP """forceno""" 4 .el .IP \f(CWforceno\fR 4 .IX Item "forceno" باز کردن فایل‌سیستم به‌صورت فقط‌خواندنی و فرض پاسخ «خیر» به تمام پرسش‌ها؛ امکان استفاده از e2fsck را به‌صورت غیرتعاملی فراهم می‌کند. .Sp این گزینه نمی‌تواند هم‌زمان با گزینه‌های \f(CW\*(C`correct\*(C'\fR یا \f(CW\*(C`forceall\*(C'\fR مشخص شود. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .SS e2fsck\-f .IX Subsection "e2fsck-f" .Vb 1 \& e2fsck\-f device .Ve .PP دستور \f(CW\*(C`e2fsck \-p \-f device\*(C'\fR را اجرا می‌کند، یعنی بررسی‌کننده فایل‌سیستم ext2/ext3 را روی \f(CW\*(C`device\*(C'\fR به‌صورت غیرتعاملی (\fI\-p\fR) اجرا می‌کند، حتی اگر فایل‌سیستم سالم به نظر برسد (\fI\-f\fR). .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به‌جای آن از فراخوانی "e2fsck" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ شدن آن‌ها نشان می‌دهد که در استفاده صحیح از این توابع مشکلاتی وجود دارد. .SS echo\-daemon .IX Subsection "echo-daemon" .Vb 1 \& echo\-daemon \*(Aqwords ...\*(Aq .Ve .PP این دستور فهرست \f(CW\*(C`words\*(C'\fR ارسال‌شده را با قرار دادن یک فاصله میان آن‌ها ادغام کرده و رشته حاصل را برمی‌گرداند. .PP می‌توانید از این دستور برای آزمایش اتصال به دیمن استفاده کنید. .PP همچنین "ping\-daemon" را ببینید. .SS egrep .IX Subsection "egrep" .Vb 1 \& egrep regex path .Ve .PP برنامه خارجی \fBegrep\fR\|(1) را فراخوانی کرده و خطوط منطبق را برمی‌گرداند. .PP به‌دلیل پروتکل پیام، یک محدودیت انتقال بین ۲ تا ۴ مگابایت وجود دارد. بخش "PROTOCOL LIMITS" در \fBguestfs\fR\|(3) را ببینید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به‌جای آن از فراخوانی "grep" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ شدن آن‌ها نشان می‌دهد که در استفاده صحیح از این توابع مشکلاتی وجود دارد. .SS egrepi .IX Subsection "egrepi" .Vb 1 \& egrepi regex path .Ve .PP برنامه خارجی \f(CW\*(C`egrep \-i\*(C'\fR را فراخوانی کرده و خطوط منطبق را برمی‌گرداند. .PP به‌دلیل پروتکل پیام، یک محدودیت انتقال بین ۲ تا ۴ مگابایت وجود دارد. بخش "PROTOCOL LIMITS" در \fBguestfs\fR\|(3) را ببینید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به‌جای آن از فراخوانی "grep" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ شدن آن‌ها نشان می‌دهد که در استفاده صحیح از این توابع مشکلاتی وجود دارد. .SS equal .IX Subsection "equal" .Vb 1 \& equal file1 file2 .Ve .PP دو فایل \fIfile1\fR و \fIfile2\fR را مقایسه می‌کند و اگر محتوای آن‌ها کاملاً برابر باشد مقدار true و در غیر این صورت false برمی‌گرداند. .PP برای مقایسه از برنامه خارجی \fBcmp\fR\|(1) استفاده می‌شود. .SS exists .IX Subsection "exists" .Vb 1 \& exists path .Ve .PP اگر و تنها اگر یک فایل، دایرکتوری (یا هر چیز دیگری) با نام \f(CW\*(C`path\*(C'\fR داده‌شده وجود داشته باشد، مقدار \f(CW\*(C`true\*(C'\fR را برمی‌گرداند. .PP همچنین "is\-file"، "is\-dir" و "stat" را ببینید. .SS extlinux .IX Subsection "extlinux" .Vb 1 \& extlinux directory .Ve .PP بوت‌لودر SYSLINUX را روی دستگاه مانت‌شده در \fIdirectory\fR نصب می‌کند. برخلاف "syslinux" که نیازمند یک فایل‌سیستم FAT است، این دستور می‌تواند روی فایل‌سیستم‌های ext2/3/4 یا btrfs استفاده شود. .PP پارامتر \fIdirectory\fR می‌تواند یک نقطه مانت، یا یک دایرکتوری درون نقطه مانت باشد. .PP همچنین باید پارتیشن را به‌عنوان «فعال» ("part\-set\-bootable") علامت‌گذاری کنید و یک Master Boot Record (مثلاً با استفاده از "pwrite\-device") روی اولین سکتور کل دیسک نصب شده باشد. بسته SYSLINUX همراه با چند Master Boot Record مناسب ارائه می‌شود. برای اطلاعات بیشتر صفحه راهنمای \fBextlinux\fR\|(1) را ببینید. .PP پیکربندی اضافی را می‌توان با قرار دادن فایلی به نام \fIextlinux.conf\fR روی فایل‌سیستم در مسیر \fIdirectory\fR به SYSLINUX ارائه داد. برای اطلاعات بیشتر در مورد محتوای این فایل، \fBextlinux\fR\|(1) را ببینید. .PP همچنین "syslinux" را ببینید. .PP این دستور به ویژگی \f(CW\*(C`extlinux\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS f2fs\-expand .IX Subsection "f2fs-expand" .Vb 1 \& f2fs\-expand device .Ve .PP این دستور یک فایل‌سیستم f2fs را گسترش می‌دهد تا با اندازه دستگاه زیرین مطابقت پیدا کند. .PP این دستور به ویژگی \f(CW\*(C`f2fs\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS fallocate .IX Subsection "fallocate" .Vb 1 \& fallocate path len .Ve .PP این دستور فایلی (حاوی بایت‌های صفر) به نام \f(CW\*(C`path\*(C'\fR و با اندازه \f(CW\*(C`len\*(C'\fR بایت پیش‌تخصیص می‌دهد. اگر فایل از قبل وجود داشته باشد، رونویسی می‌شود. .PP این دستور را با دستور مخصوص guestfish یعنی \f(CW\*(C`alloc\*(C'\fR که فایلی را در میزبان تخصیص داده و آن را به‌عنوان دستگاه متصل می‌کند اشتباه نگیرید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به‌جای آن از فراخوانی "fallocate64" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ شدن آن‌ها نشان می‌دهد که در استفاده صحیح از این توابع مشکلاتی وجود دارد. .SS fallocate64 .IX Subsection "fallocate64" .Vb 1 \& fallocate64 path len .Ve .PP این دستور فایلی (حاوی بایت‌های صفر) به نام \f(CW\*(C`path\*(C'\fR و با اندازه \f(CW\*(C`len\*(C'\fR بایت پیش‌تخصیص می‌دهد. اگر فایل از قبل وجود داشته باشد، رونویسی می‌شود. .PP توجه داشته باشید که این فراخوانی بلوک‌های دیسک را برای فایل تخصیص می‌دهد. برای ایجاد یک فایل پراکنده (sparse) به‌جای آن از "truncate\-size" استفاده کنید. .PP فراخوانی منسوخ‌شده "fallocate" همین کار را انجام می‌دهد، اما به‌دلیل یک اشتباه سهوی، تنها اجازه می‌داد طول‌های ۳۰ بیتی مشخص شوند و حداکثر اندازه فایل‌های ایجادشده از طریق آن فراخوانی را به ۱ گیگابایت محدود می‌کرد. .PP این دستور را با دستورهای مخصوص guestfish یعنی \f(CW\*(C`alloc\*(C'\fR و \f(CW\*(C`sparse\*(C'\fR که فایلی را در میزبان ایجاد کرده و آن را به‌عنوان دستگاه متصل می‌کنند اشتباه نگیرید. .SS feature\-available .IX Subsection "feature-available" .Vb 1 \& feature\-available \*(Aqgroups ...\*(Aq .Ve .PP این دستور همانند "available" است، اما برخلاف آن فراخوانی که در صورت پیدا نشدن ویژگی استثنا پرتاب می‌کند، یک نتیجه بولی ساده true/false برمی‌گرداند. برای مستندات دیگر "available" را ببینید. .SS fgrep .IX Subsection "fgrep" .Vb 1 \& fgrep pattern path .Ve .PP برنامه خارجی \fBfgrep\fR\|(1) را فراخوانی کرده و خطوط منطبق را برمی‌گرداند. .PP به‌دلیل پروتکل پیام، یک محدودیت انتقال بین ۲ تا ۴ مگابایت وجود دارد. بخش "PROTOCOL LIMITS" در \fBguestfs\fR\|(3) را ببینید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به‌جای آن از فراخوانی "grep" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ شدن آن‌ها نشان می‌دهد که در استفاده صحیح از این توابع مشکلاتی وجود دارد. .SS fgrepi .IX Subsection "fgrepi" .Vb 1 \& fgrepi pattern path .Ve .PP برنامه خارجی \f(CW\*(C`fgrep \-i\*(C'\fR را فراخوانی کرده و خطوط منطبق را برمی‌گرداند. .PP به‌دلیل پروتکل پیام، یک محدودیت انتقال بین ۲ تا ۴ مگابایت وجود دارد. بخش "PROTOCOL LIMITS" در \fBguestfs\fR\|(3) را ببینید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به‌جای آن از فراخوانی "grep" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ شدن آن‌ها نشان می‌دهد که در استفاده صحیح از این توابع مشکلاتی وجود دارد. .SS file .IX Subsection "file" .Vb 1 \& file path .Ve .PP این فراخوانی از دستور استاندارد \fBfile\fR\|(1) برای تعیین نوع یا محتوای فایل استفاده می‌کند. .PP این فراخوانی همچنین به‌صورت شفاف درون انواع مختلف فایل‌های فشرده‌شده را بررسی می‌کند. .PP نام فایل در ابتدای خروجی اضافه نمی‌شود (مانند گزینه \fI\-b\fR در دستور file). .PP خروجی به خروجی دستور زیرین \fBfile\fR\|(1) بستگی دارد و ممکن است در آینده به‌گونه‌ای تغییر کند که خارج از کنترل ما باشد. به عبارت دیگر، خروجی توسط ABI تضمین نمی‌شود. .PP همچنین ببینید: \fBfile\fR\|(1)، "vfs\-type"، "lstat"، "is\-file"، "is\-blockdev" (و غیره)، "is\-zero". .SS file\-architecture .IX Subsection "file-architecture" .Vb 1 \& file\-architecture filename .Ve .PP معماری فایل باینری \fIfilename\fR را شناسایی کرده و در صورت شناخته شدن برمی‌گرداند. .PP معماری‌های تعریف‌شده فعلی عبارتند از: .IP """aarch64""" 4 .IX Item """aarch64""" معماری ۶۴ بیتی ARM. .IP """arm""" 4 .IX Item """arm""" معماری ۳۲ بیتی ARM. .IP """i386""" 4 .IX Item """i386""" این رشته برای تمام باینری‌های ۳۲ بیتی i386، i486، i586 و i686 صرف‌نظر از نیازمندی‌های دقیق پردازنده باینری بازگردانده می‌شود. .IP """ia64""" 4 .IX Item """ia64""" اینتل ایتانیوم (Intel Itanium). .IP """ppc""" 4 .IX Item """ppc""" معماری ۳۲ بیتی Power PC. .IP """ppc64""" 4 .IX Item """ppc64""" معماری ۶۴ بیتی Power PC (بزرگ‌پایان / big endian). .IP """ppc64le""" 4 .IX Item """ppc64le""" معماری ۶۴ بیتی Power PC (کوچک‌پایان / little endian). .IP """loongarch64""" 4 .IX Item """loongarch64""" معماری ۶۴ بیتی LoongArch64 (کوچک‌پایان / little endian). .IP """riscv32""" 4 .IX Item """riscv32""" .PD 0 .IP """riscv64""" 4 .IX Item """riscv64""" .IP """riscv128""" 4 .IX Item """riscv128""" .PD گونه‌های ۳۲، ۶۴ یا ۱۲۸ بیتی RISC\-V. .IP """s390""" 4 .IX Item """s390""" معماری ۳۱ بیتی IBM S/390. .IP """s390x""" 4 .IX Item """s390x""" معماری ۶۴ بیتی IBM S/390. .IP """sparc""" 4 .IX Item """sparc""" معماری ۳۲ بیتی SPARC. .IP """sparc64""" 4 .IX Item """sparc64""" معماری ۶۴ بیتی SPARC V9 و بالاتر. .IP """x86_64""" 4 .IX Item """x86_64""" معماری ۶۴ بیتی x86\-64. .PP ممکن است Libguestfs در آینده رشته‌های معماری دیگری را برگرداند. .PP این تابع حداقل روی انواع فایل‌های زیر کار می‌کند: .IP \(bu 4 بسیاری از انواع باینری‌های یونیکس و لینوکس .IP \(bu 4 بسیاری از انواع کتابخانه‌های اشتراکی یونیکس و لینوکس .IP \(bu 4 باینری‌های Win32 و Win64 ویندوز .IP \(bu 4 فایل‌های DLL ویندوز Win32 و Win64 .Sp باینری‌ها و DLLهای Win32 مقدار \f(CW\*(C`i386\*(C'\fR را برمی‌گردانند. .Sp باینری‌ها و DLLهای Win64 مقدار \f(CW\*(C`x86_64\*(C'\fR را برمی‌گردانند. .IP \(bu 4 ماژول‌های هسته لینوکس .IP \(bu 4 تصاویر initrd سبک جدید لینوکس .IP \(bu 4 برخی هسته‌های vmlinuz لینوکس غیر x86 .PP کارهایی که در حال حاضر \fIنمی‌تواند\fR انجام دهد: .IP \(bu 4 کتابخانه‌های ایستا (libfoo.a) .IP \(bu 4 تصاویر initrd سبک قدیمی لینوکس به‌عنوان فایل‌سیستم فشرده ext2 (در RHEL 3) .IP \(bu 4 هسته‌های vmlinuz لینوکس x86 .Sp تصاویر vmlinuz در x86 (فرمت bzImage) از ترکیبی از کدهای ۱۶ بیتی، ۳۲ بیتی و فشرده تشکیل شده‌اند و باز کردن آن‌ها بسیار دشوار است. اگر می‌خواهید معماری یک هسته را بیابید، به‌جای آن از معماری initrd یا ماژول(های) هسته مرتبط استفاده کنید. .SS filesize .IX Subsection "filesize" .Vb 1 \& filesize file .Ve .PP این دستور اندازه \fIfile\fR را به بایت برمی‌گرداند. .PP برای دریافت سایر مشخصات درباره یک فایل از "stat"، "lstat"، "is\-dir"، "is\-file" و غیره استفاده کنید. برای دریافت اندازه دستگاه‌های بلوکی از "blockdev\-getsize64" استفاده کنید. .SS filesystem\-available .IX Subsection "filesystem-available" .Vb 1 \& filesystem\-available filesystem .Ve .PP بررسی می‌کند که آیا libguestfs از فایل‌سیستم نام‌برده پشتیبانی می‌کند یا خیر. آرگومان \f(CW\*(C`filesystem\*(C'\fR یک نام فایل‌سیستم مانند \f(CW\*(C`ext3\*(C'\fR است. .PP پیش از استفاده از این دستور باید "launch" را فراخوانی کنید. .PP این دستور عمدتاً به‌عنوان یک آزمایش منفی کاربرد دارد. اگر این مقدار true برگرداند، به این معنی نیست که یک فایل‌سیستم خاص حتماً می‌تواند ایجاد یا مانت شود، زیرا فایل‌سیستم‌ها ممکن است به دلایل دیگری مانند نسخه جدیدتر فایل‌سیستم، داشتن ویژگی‌های ناسازگار، یا نداشتن ابزار مناسب mkfs.<\fIfs\fR> با شکست مواجه شوند. .PP همچنین "available"، "feature\-available" و "AVAILABILITY" در \fBguestfs\fR\|(3) را ببینید. .SS filesystem\-walk .IX Subsection "filesystem-walk" .Vb 1 \& filesystem\-walk device .Ve .PP پیمایش ساختارهای داخلی یک پارتیشن دیسک (مثلاً \fI/dev/sda1\fR) به‌منظور بازگرداندن فهرستی از تمام فایل‌ها و دایرکتوری‌های ذخیره‌شده در آن. .PP برای اجرای این دستور نیازی به مانت کردن پارتیشن دیسک نیست. .PP تمام مدخل‌های درون فایل‌سیستم بازگردانده می‌شوند. این تابع می‌تواند فایل‌های حذف‌شده یا غیرقابل دسترس را نیز فهرست کند. مدخل‌ها مرتب‌سازی \fIنشده‌اند\fR. .PP ساختار \f(CW\*(C`tsk_dirent\*(C'\fR شامل فیلدهای زیر است: .ie n .IP """tsk_inode""" 4 .el .IP \f(CWtsk_inode\fR 4 .IX Item "tsk_inode" شماره مرجع فایل‌سیستم برای گره (node). اگر گره حذف شده باشد ممکن است \f(CW0\fR باشد. .ie n .IP """tsk_type""" 4 .el .IP \f(CWtsk_type\fR 4 .IX Item "tsk_type" اطلاعات پایه نوع فایل. برای فهرست دقیق مقادیر، بخش زیر را ببینید. .ie n .IP """tsk_size""" 4 .el .IP \f(CWtsk_size\fR 4 .IX Item "tsk_size" اندازه فایل به بایت. اگر گره حذف شده باشد ممکن است \f(CW\-1\fR باشد. .ie n .IP """tsk_name""" 4 .el .IP \f(CWtsk_name\fR 4 .IX Item "tsk_name" مسیر فایل نسبت به دایرکتوری آن. .ie n .IP """tsk_flags""" 4 .el .IP \f(CWtsk_flags\fR 4 .IX Item "tsk_flags" فیلد بیتی حاوی اطلاعات اضافی در مورد مدخل. این فیلد شامل OR منطقی مقادیر زیر است: .RS 4 .IP 0x0001 4 .IX Item "0x0001" اگر روی \f(CW1\fR تنظیم شده باشد، فایل تخصیص یافته و درون فایل‌سیستم قابل مشاهده است. در غیر این صورت، فایل حذف شده است. تحت شرایط خاصی، تابع \f(CW\*(C`download_inode\*(C'\fR می‌تواند برای بازیابی فایل‌های حذف‌شده استفاده شود. .IP 0x0002 4 .IX Item "0x0002" فایل‌سیستم‌هایی مانند NTFS و Ext2 یا بالاتر، نام فایل را از ساختار متادیتا جدا می‌کنند. هنگامی که نام فایل در وضعیت تخصیص‌نیافته و ساختار متادیتا در وضعیت تخصیص‌یافته باشد، بیت روی \f(CW1\fR تنظیم می‌شود. این معمولاً نشان می‌دهد که متادیتا به یک فایل جدید تخصیص داده شده است. بنابراین اطلاعاتی مانند نوع فایل، اندازه فایل، برچسب‌های زمانی، تعداد پیوندها و مقصد پیوند نمادین ممکن است با مدخل اصلی حذف‌شده مطابقت نداشته باشد. .IP 0x0004 4 .IX Item "0x0004" هنگامی که فایل با استفاده از پشتیبانی بومی فشرده‌سازی فایل‌سیستم (NTFS) فشرده شده باشد، بیت روی \f(CW1\fR تنظیم می‌شود. این API قادر به تشخیص فشرده‌سازی در سطح برنامه کاربردی نیست. .RE .RS 4 .RE .ie n .IP """tsk_atime_sec""" 4 .el .IP \f(CWtsk_atime_sec\fR 4 .IX Item "tsk_atime_sec" .PD 0 .ie n .IP """tsk_atime_nsec""" 4 .el .IP \f(CWtsk_atime_nsec\fR 4 .IX Item "tsk_atime_nsec" .ie n .IP """tsk_mtime_sec""" 4 .el .IP \f(CWtsk_mtime_sec\fR 4 .IX Item "tsk_mtime_sec" .ie n .IP """tsk_mtime_nsec""" 4 .el .IP \f(CWtsk_mtime_nsec\fR 4 .IX Item "tsk_mtime_nsec" .ie n .IP """tsk_ctime_sec""" 4 .el .IP \f(CWtsk_ctime_sec\fR 4 .IX Item "tsk_ctime_sec" .ie n .IP """tsk_ctime_nsec""" 4 .el .IP \f(CWtsk_ctime_nsec\fR 4 .IX Item "tsk_ctime_nsec" .ie n .IP """tsk_crtime_sec""" 4 .el .IP \f(CWtsk_crtime_sec\fR 4 .IX Item "tsk_crtime_sec" .ie n .IP """tsk_crtime_nsec""" 4 .el .IP \f(CWtsk_crtime_nsec\fR 4 .IX Item "tsk_crtime_nsec" .PD به‌ترتیب زمان دسترسی، ویرایش، آخرین تغییر وضعیت و ایجاد در فرمت یونیکس به ثانیه و نانوثانیه. .ie n .IP """tsk_nlink""" 4 .el .IP \f(CWtsk_nlink\fR 4 .IX Item "tsk_nlink" تعداد نام‌های فایل اشاره‌کننده به این مدخل. .ie n .IP """tsk_link""" 4 .el .IP \f(CWtsk_link\fR 4 .IX Item "tsk_link" اگر مدخل یک پیوند نمادین (symlink) باشد، این فیلد شامل مسیر به فایل مقصد خواهد بود. .PP فیلد \f(CW\*(C`tsk_type\*(C'\fR شامل یکی از کاراکترهای زیر خواهد بود: .IP \*(Aqb\*(Aq 4 .IX Item "'b'" دستگاه ویژه بلوکی (Block special) .IP \*(Aqc\*(Aq 4 .IX Item "'c'" دستگاه ویژه نویسه‌ای (Char special) .IP \*(Aqd\*(Aq 4 .IX Item "'d'" دایرکتوری (Directory) .IP \*(Aqf\*(Aq 4 .IX Item "'f'" صف لوله‌ای FIFO (لوله نام‌گذاری‌شده) .IP \*(Aql\*(Aq 4 .IX Item "'l'" پیوند نمادین (Symbolic link) .IP \*(Aqr\*(Aq 4 .IX Item "'r'" فایل معمولی (Regular file) .IP \*(Aqs\*(Aq 4 .IX Item "'s'" سوکت (Socket) .IP \*(Aqh\*(Aq 4 .IX Item "'h'" اینود سایه / Shadow inode (سولاریس) .IP \*(Aqw\*(Aq 4 .IX Item "'w'" اینود وایت‌اوت / Whiteout inode (بی‌اس‌دی) .IP \*(Aqu\*(Aq 4 .IX Item "'u'" نوع فایل نامشخص .PP این دستور به ویژگی \f(CW\*(C`libtsk\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS fill .IX Subsection "fill" .Vb 1 \& fill c len path .Ve .PP این دستور یک فایل جدید به نام \f(CW\*(C`path\*(C'\fR ایجاد می‌کند. محتوای اولیه فایل شامل \f(CW\*(C`len\*(C'\fR بایت از \f(CW\*(C`c\*(C'\fR است، که در آن \f(CW\*(C`c\*(C'\fR باید عددی در محدوده \f(CW\*(C`[0..255]\*(C'\fR باشد. .PP برای پر کردن یک فایل با بایت‌های صفر (به‌صورت پراکنده / sparse)، استفاده از "truncate\-size" بسیار کارآمدتر است. برای ایجاد فایلی با الگویی از بایت‌های تکرارشونده از "fill\-pattern" استفاده کنید. .SS fill\-dir .IX Subsection "fill-dir" .Vb 1 \& fill\-dir dir nr .Ve .PP این تابع که برای آزمایش فایل‌سیستم‌ها کاربرد دارد، تعداد \f(CW\*(C`nr\*(C'\fR فایل خالی در دایرکتوری \f(CW\*(C`dir\*(C'\fR با نام‌های \f(CW00000000\fR تا \f(CW\*(C`nr\-1\*(C'\fR ایجاد می‌کند (یعنی هر نام فایل ۸ رقمی است که با صفر پر شده است). .SS fill\-pattern .IX Subsection "fill-pattern" .Vb 1 \& fill\-pattern pattern len path .Ve .PP این تابع مانند "fill" است، با این تفاوت که فایل جدیدی با طول \f(CW\*(C`len\*(C'\fR حاوی الگوی تکرارشونده بایت‌ها در \f(CW\*(C`pattern\*(C'\fR ایجاد می‌کند. در صورت لزوم الگو بریده می‌شود تا اطمینان حاصل شود که طول فایل دقیقاً \f(CW\*(C`len\*(C'\fR بایت است. .SS find .IX Subsection "find" .Vb 1 \& find directory .Ve .PP این دستور تمام فایل‌ها و دایرکتوری‌ها را به‌صورت بازگشتی با شروع از \fIdirectory\fR فهرست می‌کند. این دستور اساساً معادل اجرای دستور شل \f(CW\*(C`find directory \-print\*(C'\fR است، اما برخی پس‌پردازش‌ها روی خروجی انجام می‌شود که در زیر توضیح داده شده است. .PP این دستور فهرستی از رشته‌ها را \fIبدون هیچ پیشوندی\fR برمی‌گرداند. بنابراین اگر ساختار دایرکتوری به‌صورت زیر باشد: .PP .Vb 3 \& /tmp/a \& /tmp/b \& /tmp/c/d .Ve .PP آنگاه فهرست بازگردانده‌شده از "find" روی \fI/tmp\fR دارای ۴ عنصر خواهد بود: .PP .Vb 4 \& a \& b \& c \& c/d .Ve .PP اگر \fIdirectory\fR یک دایرکتوری نباشد، این دستور یک خطا برمی‌گرداند. .PP فهرست بازگردانده‌شده مرتب شده است. .SS find0 .IX Subsection "find0" .Vb 1 \& find0 directory (files|\-) .Ve .PP این دستور تمام فایل‌ها و دایرکتوری‌ها را به‌صورت بازگشتی با شروع از \fIdirectory\fR فهرست کرده و فهرست حاصل را در فایل خارجی به نام \fIfiles\fR قرار می‌دهد. .PP این دستور مانند "find" کار می‌کند، با استثناهای زیر: .IP \(bu 4 فهرست حاصل در یک فایل خارجی نوشته می‌شود. .IP \(bu 4 آیتم‌ها (نام فایل‌ها) در نتیجه با نویسه‌های \f(CW\*(C`\e0\*(C'\fR از یکدیگر جدا می‌شوند. گزینه \fI\-print0\fR در \fBfind\fR\|(1) را ببینید. .IP \(bu 4 فهرست نتیجه مرتب‌سازی نشده است. .PP برای خواندن/نوشتن از stdin/stdout از \f(CW\*(C`\-\*(C'\fR به‌جای نام فایل استفاده کنید. .SS find\-inode .IX Subsection "find-inode" .Vb 1 \& find\-inode device inode .Ve .PP تمام مدخل‌های مرتبط با اینود داده‌شده را جستجو می‌کند. .PP برای هر مدخل، یک ساختار \f(CW\*(C`tsk_dirent\*(C'\fR برگردانده می‌شود. برای اطلاعات بیشتر درباره ساختارهای \f(CW\*(C`tsk_dirent\*(C'\fR، بخش \f(CW\*(C`filesystem_walk\*(C'\fR را ببینید. .PP این دستور به ویژگی \f(CW\*(C`libtsk\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS findfs\-label .IX Subsection "findfs-label" .Vb 1 \& findfs\-label label .Ve .PP این دستور فایل‌سیستم‌ها را جستجو کرده و فایل‌سیستمی را که برچسب (label) داده‌شده را دارد برمی‌گرداند. اگر چنین فایل‌سیستمی یافت نشود، خطا برگردانده می‌شود. .PP برای یافتن برچسب یک فایل‌سیستم، از "vfs\-label" استفاده کنید. .SS findfs\-partlabel .IX Subsection "findfs-partlabel" .Vb 1 \& findfs\-partlabel label .Ve .PP این دستور پارتیشن‌ها را جستجو کرده و پارتیشنی را که برچسب داده‌شده را دارد برمی‌گرداند. اگر چنین پارتیشنی یافت نشود، خطا برگردانده می‌شود. .PP برای یافتن برچسب یک پارتیشن، از "blkid" (\f(CW\*(C`PART_ENTRY_NAME\*(C'\fR) استفاده کنید. .SS findfs\-partuuid .IX Subsection "findfs-partuuid" .Vb 1 \& findfs\-partuuid uuid .Ve .PP این دستور پارتیشن‌ها را جستجو کرده و پارتیشنی را که دارای UUID پارتیشن داده‌شده است برمی‌گرداند. در صورتی که چنین پارتیشنی یافت نشود، یک خطا برگردانده می‌شود. .PP برای یافتن UUID یک پارتیشن، از "blkid" (\f(CW\*(C`PART_ENTRY_UUID\*(C'\fR) استفاده کنید. .SS findfs\-uuid .IX Subsection "findfs-uuid" .Vb 1 \& findfs\-uuid uuid .Ve .PP این دستور سیستم‌های فایل را جستجو کرده و سیستم فایلی را که دارای UUID داده‌شده است برمی‌گرداند. در صورتی که چنین سیستم فایلی یافت نشود، یک خطا برگردانده می‌شود. .PP برای یافتن UUID یک سیستم فایل، از "vfs\-uuid" استفاده کنید. .SS fsck .IX Subsection "fsck" .Vb 1 \& fsck fstype device .Ve .PP این دستور ابزار بررسی سیستم فایل (fsck) را روی \f(CW\*(C`device\*(C'\fR که باید دارای نوع سیستم فایل \f(CW\*(C`fstype\*(C'\fR باشد اجرا می‌کند. .PP عدد صحیح برگردانده‌شده وضعیت خروجی است. برای مشاهده فهرست کدهای وضعیت \f(CW\*(C`fsck\*(C'\fR، به \fBfsck\fR\|(8) مراجعه کنید. .PP نکات: .IP \(bu 4 چندین کد وضعیت می‌توانند با یکدیگر جمع شوند. .IP \(bu 4 یک کد بازگشتی غیرصفر می‌تواند به معنای «موفقیت» باشد؛ برای نمونه اگر خطاهایی روی سیستم فایل اصلاح شده باشند. .IP \(bu 4 بررسی یا تعمیر حجم‌های NTFS (توسط linux\-ntfs) پشتیبانی نمی‌شود. .PP این دستور کاملاً معادل اجرای \f(CW\*(C`fsck \-a \-t fstype device\*(C'\fR است. .SS fstrim .IX Subsection "fstrim" .Vb 1 \& fstrim mountpoint [offset:N] [length:N] [minimumfreeextent:N] .Ve .PP فضای خالی موجود در سیستم فایل سوارشده در \f(CW\*(C`mountpoint\*(C'\fR را آزادسازی (trim) می‌کند. سیستم فایل باید به‌صورت خواندن\-نوشتن (read\-write) سوار شده باشد. .PP محتوای سیستم فایل تحت تأثیر قرار نمی‌گیرد، اما هر فضای خالی در سیستم فایل «آزادسازی» می‌شود، یعنی به دستگاه میزبان پس داده می‌شود؛ بدین ترتیب تصاویر دیسک خلوت‌تر (sparse) شده و امکان استفاده مجدد از فضای استفاده‌نشده در فایل‌های qcow2 فراهم می‌گردد و غیره. .PP این عملیات نیازمند پشتیبانی در libguestfs، سیستم فایل سوارشده، سیستم فایل میزبان، qemu و هسته میزبان است. اگر این پشتیبانی وجود نداشته باشد، ممکن است خطا دهد یا حتی به نظر برسد که اجرا شده اما هیچ کاری انجام ندهد. .PP در صورتی که درایور vfs هسته از آزادسازی پشتیبانی نکند، این فراخوانی با تنظیم errno روی \f(CW\*(C`ENOTSUP\*(C'\fR شکست خواهد خورد. در حال حاضر این حالت هنگام تلاش برای آزادسازی سیستم‌های فایل FAT رخ می‌دهد. .PP همچنین ببینید "zero\-free\-space". آن یک عملیات کمی متفاوت است که فضای خالی سیستم فایل را به صفر تبدیل می‌کند. فراخوانی "fstrim" به‌جای "zero\-free\-space" یا پس از فراخوانی آن مجاز است. .PP این دستور یک یا چند آرگومان اختیاری دارد. به "OPTIONAL ARGUMENTS" مراجعه کنید. .PP این دستور به ویژگی \f(CW\*(C`fstrim\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS get\-append .IX Subsection "get-append" .Vb 1 \& get\-append .Ve .PP گزینه‌های اضافی هسته را که به خط فرمان هسته اپلاینس libguestfs اضافه می‌شوند برمی‌گرداند. .PP اگر \f(CW\*(C`NULL\*(C'\fR باشد، هیچ گزینه‌ای اضافه نمی‌شود. .SS get\-attach\-method .IX Subsection "get-attach-method" .Vb 1 \& get\-attach\-method .Ve .PP بک‌اند فعلی را برمی‌گرداند. .PP به "set\-backend" و "BACKEND" در \fBguestfs\fR\|(3) مراجعه کنید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به‌جای آن از فراخوانی "get\-backend" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان می‌دهد که در استفاده صحیح از این توابع مشکلاتی وجود دارد. .SS get\-autosync .IX Subsection "get-autosync" .Vb 1 \& get\-autosync .Ve .PP پرچم همگام‌سازی خودکار (autosync) را دریافت می‌کند. .SS get\-backend .IX Subsection "get-backend" .Vb 1 \& get\-backend .Ve .PP بک‌اند فعلی را برمی‌گرداند. .PP این ویژگی هندل قبلاً «روش پیوست» (attach method) نامیده می‌شد. .PP به "set\-backend" و "BACKEND" در \fBguestfs\fR\|(3) مراجعه کنید. .SS get\-backend\-setting .IX Subsection "get-backend-setting" .Vb 1 \& get\-backend\-setting name .Ve .PP یک رشته تنظیمات بک‌اند را پیدا می‌کند که یا \f(CW"name"\fR است یا با \&\f(CW"name="\fR شروع می‌شود. اگر \f(CW"name"\fR باشد، رشته \&\f(CW"1"\fR را برمی‌گرداند. اگر \f(CW"name="\fR باشد، بخش بعد از علامت مساوی را برمی‌گرداند (که ممکن است یک رشته خالی باشد). .PP اگر چنین تنظیمی یافت نشود، این تابع یک خطا صادر می‌کند. در این حالت errno (ببینید "last\-errno") برابر با \f(CW\*(C`ESRCH\*(C'\fR خواهد بود. .PP به "BACKEND" در \fBguestfs\fR\|(3) و "BACKEND SETTINGS" در \fBguestfs\fR\|(3) مراجعه کنید. .SS get\-backend\-settings .IX Subsection "get-backend-settings" .Vb 1 \& get\-backend\-settings .Ve .PP تنظیمات فعلی بک‌اند را برمی‌گرداند. .PP این فراخوانی تمامی رشته‌های تنظیمات بک‌اند را برمی‌گرداند. اگر می‌خواهید یک تنظیم بک‌اند منفرد را بیابید، "get\-backend\-setting" را ببینید. .PP به "BACKEND" در \fBguestfs\fR\|(3) و "BACKEND SETTINGS" در \fBguestfs\fR\|(3) مراجعه کنید. .SS get\-cachedir .IX Subsection "get-cachedir" .Vb 1 \& get\-cachedir .Ve .PP دایرکتوری مورد استفاده توسط هندل را برای ذخیره حافظه پنهان اپلاینس دریافت می‌کند. .SS get\-direct .IX Subsection "get-direct" .Vb 1 \& get\-direct .Ve .PP پرچم حالت مستقیم اپلاینس (direct appliance mode) را برمی‌گرداند. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به‌جای آن از فراخوانی "internal\-get\-console\-socket" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان می‌دهد که در استفاده صحیح از این توابع مشکلاتی وجود دارد. .SS get\-e2attrs .IX Subsection "get-e2attrs" .Vb 1 \& get\-e2attrs file .Ve .PP ویژگی‌های فایل مرتبط با \fIfile\fR را برمی‌گرداند. .PP ویژگی‌ها مجموعه‌ای از بیت‌های مرتبط با هر inode هستند که بر رفتار فایل تأثیر می‌گذارند. ویژگی‌ها به‌صورت رشته‌ای از حروف (شرح داده‌شده در زیر) برگردانده می‌شوند. این رشته ممکن است خالی باشد، که نشان می‌دهد هیچ ویژگی فایلی برای این فایل تنظیم نشده است. .PP این ویژگی‌ها فقط زمانی وجود دارند که فایل روی یک سیستم فایل ext2/3/4 قرار داشته باشد. استفاده از این فراخوانی روی سایر انواع سیستم فایل منجر به خطا خواهد شد. .PP نویسه‌ها (ویژگی‌های فایل) در رشته برگردانده‌شده در حال حاضر عبارتند از: .IP \*(AqA\*(Aq 4 .IX Item "'A'" هنگام دسترسی به فایل، atime آن اصلاح نمی‌شود. .IP \*(Aqa\*(Aq 4 .IX Item "'a'" فایل فقط‌افزودنی (append\-only) است. .IP \*(Aqc\*(Aq 4 .IX Item "'c'" فایل روی دیسک فشرده شده است. .IP \*(AqD\*(Aq 4 .IX Item "'D'" (فقط دایرکتوری‌ها.) تغییرات این دایرکتوری به‌صورت همگام (synchronous) روی دیسک نوشته می‌شوند. .IP \*(Aqd\*(Aq 4 .IX Item "'d'" فایل کاندیدای پشتیبان‌گیری نیست (به \fBdump\fR\|(8) مراجعه کنید). .IP \*(AqE\*(Aq 4 .IX Item "'E'" فایل دارای خطاهای فشرده‌سازی است. .IP \*(Aqe\*(Aq 4 .IX Item "'e'" فایل از extentها استفاده می‌کند. .IP \*(Aqh\*(Aq 4 .IX Item "'h'" فایل بلوک‌های خود را به‌جای سکتورها در واحدهای اندازه بلوک سیستم فایل ذخیره می‌کند. .IP \*(AqI\*(Aq 4 .IX Item "'I'" (فقط دایرکتوری‌ها.) دایرکتوری از درخت‌های درهم‌سازی‌شده (hashed trees) استفاده می‌کند. .IP \*(Aqi\*(Aq 4 .IX Item "'i'" فایل تغییرناپذیر (immutable) است. نمی‌توان آن را تغییر داد، حذف کرد یا نام آن را تغییر داد. هیچ پیوندی نمی‌توان به این فایل ایجاد کرد. .IP \*(Aqj\*(Aq 4 .IX Item "'j'" فایل داده‌ژورنال‌شده (data\-journaled) است. .IP \*(Aqs\*(Aq 4 .IX Item "'s'" هنگامی که فایل حذف شود، تمام بلوک‌های آن صفر خواهند شد. .IP \*(AqS\*(Aq 4 .IX Item "'S'" تغییرات این فایل به‌صورت همگام روی دیسک نوشته می‌شوند. .IP \*(AqT\*(Aq 4 .IX Item "'T'" (فقط دایرکتوری‌ها.) این یک راهنمایی به تخصیص‌دهنده بلوک است که زیردایرکتوری‌های موجود در این دایرکتوری باید در میان بلوک‌ها پخش شوند. اگر وجود نداشته باشد، تخصیص‌دهنده بلوک تلاش خواهد کرد زیردایرکتوری‌ها را در کنار یکدیگر گروه‌بندی کند. .IP \*(Aqt\*(Aq 4 .IX Item "'t'" برای یک فایل، ادغام دنباله (tail\-merging) را غیرفعال می‌کند. (توسط پیاده‌سازی‌های بالادستی ext2 استفاده نمی‌شود.) .IP \*(Aqu\*(Aq 4 .IX Item "'u'" هنگامی که فایل حذف شود، بلوک‌های آن ذخیره خواهند شد و امکان بازیابی فایل (undelete) فراهم می‌شود. .IP \*(AqX\*(Aq 4 .IX Item "'X'" محتوای خام فایل فشرده‌شده قابل دسترسی است. .IP \*(AqZ\*(Aq 4 .IX Item "'Z'" فایل فشرده‌شده کثیف (dirty) است. .PP ویژگی‌های فایل بیشتری ممکن است بعداً به این فهرست اضافه شوند. همه ویژگی‌های فایل ممکن است برای همه انواع فایل‌ها تنظیم نشوند. برای اطلاعات دقیق، به صفحه راهنمای \fBchattr\fR\|(1) مراجعه کنید. .PP همچنین ببینید "set\-e2attrs". .PP این ویژگی‌ها را با ویژگی‌های گسترش‌یافته اشتباه نگیرید (ببینید "getxattr"). .SS get\-e2generation .IX Subsection "get-e2generation" .Vb 1 \& get\-e2generation file .Ve .PP نسل فایل (file generation) در ext2 را برای یک فایل برمی‌گرداند. نسل (که قبلاً «نسخه» نامیده می‌شد) یک عدد مرتبط با یک inode است. این مورد اغلب توسط سرورهای NFS استفاده می‌شود. .PP نسل تنها زمانی وجود دارد که فایل روی یک سیستم فایل ext2/3/4 قرار داشته باشد. استفاده از این فراخوانی روی سایر انواع سیستم فایل منجر به خطا خواهد شد. .PP ببینید "set\-e2generation". .SS get\-e2label .IX Subsection "get-e2label" .Vb 1 \& get\-e2label device .Ve .PP برچسب سیستم فایل ext2/3/4 را برای سیستم فایل روی \&\f(CW\*(C`device\*(C'\fR برمی‌گرداند. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به‌جای آن از فراخوانی "vfs\-label" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان می‌دهد که در استفاده صحیح از این توابع مشکلاتی وجود دارد. .SS get\-e2uuid .IX Subsection "get-e2uuid" .Vb 1 \& get\-e2uuid device .Ve .PP شناسه UUID سیستم فایل ext2/3/4 را برای سیستم فایل روی \&\f(CW\*(C`device\*(C'\fR برمی‌گرداند. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به‌جای آن از فراخوانی "vfs\-uuid" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان می‌دهد که در استفاده صحیح از این توابع مشکلاتی وجود دارد. .SS get\-hv .IX Subsection "get-hv" .Vb 1 \& get\-hv .Ve .PP باینری هایپروایزر فعلی را برمی‌گرداند. .PP اگر قبلاً تنظیم نشده باشد، نام باینری پیش‌فرض qemu را برمی‌گرداند. .PP برای برخی بک‌اندها، اگر این تابع قبل از راه‌اندازی فراخوانی شود ممکن است خطایی برگرداند، زیرا ممکن است دریافت هایپروایزر پیش‌فرض قبل از راه‌اندازی اپلاینس امکان‌پذیر نباشد. .SS get\-identifier .IX Subsection "get-identifier" .Vb 1 \& get\-identifier .Ve .PP شناسه هندل را دریافت می‌کند. ببینید "set\-identifier". .SS get\-libvirt\-requested\-credential\-challenge .IX Subsection "get-libvirt-requested-credential-challenge" .Vb 1 \& get\-libvirt\-requested\-credential\-challenge index .Ve .PP چالش (ارائه‌شده توسط libvirt) را برای \f(CW\*(C`index\*(C'\fRامین اعتبار درخواستی دریافت می‌کند. اگر libvirt چالشی ارائه نکرده باشد، این تابع رشته خالی \f(CW""\fR را برمی‌گرداند. .PP برای مستندات و کدهای نمونه، به "LIBVIRT AUTHENTICATION" در \fBguestfs\fR\|(3) مراجعه کنید. .SS get\-libvirt\-requested\-credential\-defresult .IX Subsection "get-libvirt-requested-credential-defresult" .Vb 1 \& get\-libvirt\-requested\-credential\-defresult index .Ve .PP نتیجه پیش‌فرض (ارائه‌شده توسط libvirt) را برای \f(CW\*(C`index\*(C'\fRامین اعتبار درخواستی دریافت می‌کند. اگر libvirt نتیجه پیش‌فرضی ارائه نکرده باشد، این تابع رشته خالی \f(CW""\fR را برمی‌گرداند. .PP برای مستندات و کدهای نمونه، به "LIBVIRT AUTHENTICATION" در \fBguestfs\fR\|(3) مراجعه کنید. .SS get\-libvirt\-requested\-credential\-prompt .IX Subsection "get-libvirt-requested-credential-prompt" .Vb 1 \& get\-libvirt\-requested\-credential\-prompt index .Ve .PP اعلان درخواست (ارائه‌شده توسط libvirt) را برای \f(CW\*(C`index\*(C'\fRامین اعتبار درخواستی دریافت می‌کند. اگر libvirt درخواستی ارائه نکرده باشد، این تابع رشته خالی \f(CW""\fR را برمی‌گرداند. .PP برای مستندات و کدهای نمونه، به "LIBVIRT AUTHENTICATION" در \fBguestfs\fR\|(3) مراجعه کنید. .SS get\-libvirt\-requested\-credentials .IX Subsection "get-libvirt-requested-credentials" .Vb 1 \& get\-libvirt\-requested\-credentials .Ve .PP این تابع فقط باید در طول callback رویداد برای رویدادهای از نوع \f(CW\*(C`GUESTFS_EVENT_LIBVIRT_AUTH\*(C'\fR فراخوانی شود. .PP فهرست اعتبارهای درخواست‌شده توسط libvirt را برمی‌گرداند. مقادیر ممکن زیرمجموعه‌ای از رشته‌های ارائه‌شده هنگام فراخوانی "set\-libvirt\-supported\-credentials" هستند. .PP برای مستندات و کدهای نمونه، به "LIBVIRT AUTHENTICATION" در \fBguestfs\fR\|(3) مراجعه کنید. .SS get\-memsize .IX Subsection "get-memsize" .Vb 1 \& get\-memsize .Ve .PP میزان حافظه بر حسب مگابایت تخصیص‌یافته به هایپروایزر را دریافت می‌کند. .PP اگر "set\-memsize" روی این هندل فراخوانی نشده باشد، و اگر \&\f(CW\*(C`LIBGUESTFS_MEMSIZE\*(C'\fR تنظیم نشده باشد، مقدار پیش‌فرض کامپایل‌شده برای memsize برگردانده می‌شود. .PP برای اطلاعات بیشتر در مورد معماری libguestfs، به \fBguestfs\fR\|(3) مراجعه کنید. .SS get\-network .IX Subsection "get-network" .Vb 1 \& get\-network .Ve .PP پرچم فعال بودن شبکه را برمی‌گرداند. .SS get\-path .IX Subsection "get-path" .Vb 1 \& get\-path .Ve .PP مسیر جستجوی فعلی را برمی‌گرداند. .PP این مقدار همیشه غیر\-NULL است. اگر قبلاً تنظیم نشده باشد، مسیر پیش‌فرض را برمی‌گرداند. .SS get\-pgroup .IX Subsection "get-pgroup" .Vb 1 \& get\-pgroup .Ve .PP پرچم گروه فرایند (process group) را برمی‌گرداند. .SS get\-pid .IX Subsection "get-pid" .SS pid .IX Subsection "pid" .Vb 1 \& get\-pid .Ve .PP شناسه فرایند (PID) هایپروایزر را برمی‌گرداند. اگر هیچ هایپروایزری در حال اجرا نباشد، یک خطا برمی‌گرداند. .PP این یک فراخوانی داخلی است که برای اشکال‌زدایی و آزمایش استفاده می‌شود. .SS get\-program .IX Subsection "get-program" .Vb 1 \& get\-program .Ve .PP نام برنامه را دریافت می‌کند. ببینید "set\-program". .SS get\-qemu .IX Subsection "get-qemu" .Vb 1 \& get\-qemu .Ve .PP باینری هایپروایزر فعلی (معمولاً qemu) را برمی‌گرداند. .PP این مقدار همیشه غیر\-NULL است. اگر قبلاً تنظیم نشده باشد، نام باینری پیش‌فرض qemu را برمی‌گرداند. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به‌جای آن از فراخوانی "get\-hv" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان می‌دهد که در استفاده صحیح از این توابع مشکلاتی وجود دارد. .SS get\-recovery\-proc .IX Subsection "get-recovery-proc" .Vb 1 \& get\-recovery\-proc .Ve .PP پرچم فعال بودن فرایند بازیابی را برمی‌گرداند. .SS get\-selinux .IX Subsection "get-selinux" .Vb 1 \& get\-selinux .Ve .PP تنظیمات فعلی پرچم selinux را که در زمان بوت به اپلاینس منتقل می‌شود برمی‌گرداند. ببینید "set\-selinux". .PP برای اطلاعات بیشتر در مورد معماری libguestfs، به \fBguestfs\fR\|(3) مراجعه کنید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به‌جای آن از فراخوانی "selinux\-relabel" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان می‌دهد که در استفاده صحیح از این توابع مشکلاتی وجود دارد. .SS get\-smp .IX Subsection "get-smp" .Vb 1 \& get\-smp .Ve .PP تعداد CPUهای مجازی اختصاص‌یافته به اپلاینس را برمی‌گرداند. .SS get\-sockdir .IX Subsection "get-sockdir" .Vb 1 \& get\-sockdir .Ve .PP دایرکتوری مورد استفاده توسط هندل برای ذخیره سوکت‌های موقت و فایل‌های PID را دریافت می‌کند. .PP این با "get\-tmpdir" متفاوت است، زیرا ما برای سوکت‌ها به مسیرهای کوتاه‌تری نیاز داریم (به دلیل بافرهای محدود نام فایل‌ها برای سوکت‌های UNIX)، و \&\f(CW"get\-tmpdir"\fR ممکن است برای آن‌ها بیش از حد طولانی باشد. علاوه بر این، سوکت‌ها و فایل‌های PID باید برای سرویس‌های پس‌زمینه‌ای که توسط libguestfs راه‌اندازی می‌شوند و ممکن است مجوز دسترسی به دایرکتوری موقت برگردانده‌شده توسط "get\-tmpdir" را نداشته باشند، قابل دسترسی باشند. .PP متغیر محیطی \f(CW\*(C`XDG_RUNTIME_DIR\*(C'\fR مقدار پیش‌فرض را کنترل می‌کند: اگر \f(CW\*(C`XDG_RUNTIME_DIR\*(C'\fR تنظیم شده باشد، آن مقدار پیش‌فرض است. در غیر این صورت \fI/tmp\fR پیش‌فرض خواهد بود. .SS get\-tmpdir .IX Subsection "get-tmpdir" .Vb 1 \& get\-tmpdir .Ve .PP دایرکتوری مورد استفاده توسط هندل برای ذخیره فایل‌های موقت را دریافت می‌کند. .SS get\-trace .IX Subsection "get-trace" .Vb 1 \& get\-trace .Ve .PP پرچم ردیابی دستور (command trace) را برمی‌گرداند. .SS get\-umask .IX Subsection "get-umask" .Vb 1 \& get\-umask .Ve .PP ماسک umask فعلی را برمی‌گرداند. به‌طور پیش‌فرض umask برابر با \f(CW022\fR است مگر اینکه با فراخوانی "umask" تنظیم شده باشد. .SS get\-verbose .IX Subsection "get-verbose" .Vb 1 \& get\-verbose .Ve .PP پرچم پیام‌های پرجزئیات (verbose messages) را برمی‌گرداند. .SS getcon .IX Subsection "getcon" .Vb 1 \& getcon .Ve .PP زمینه امنیتی SELinux مربوط به دیمن را دریافت می‌کند. .PP به مستندات مربوط به SELINUX در \fBguestfs\fR\|(3) و "setcon" مراجعه کنید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به‌جای آن از فراخوانی "selinux\-relabel" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان می‌دهد که در استفاده صحیح از این توابع مشکلاتی وجود دارد. .PP این دستور به ویژگی \f(CW\*(C`selinux\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS getxattr .IX Subsection "getxattr" .Vb 1 \& getxattr path name .Ve .PP یک ویژگی گسترش‌یافته منفرد را از فایل \f(CW\*(C`path\*(C'\fR با نام \f(CW\*(C`name\*(C'\fR دریافت می‌کند. این فراخوانی پیوندهای نمادین را دنبال می‌کند. اگر می‌خواهید یک ویژگی گسترش‌یافته را برای خود پیوند نمادین جستجو کنید، از "lgetxattr" استفاده کنید. .PP به‌طور معمول بهتر است همه ویژگی‌های گسترش‌یافته یک فایل را یک‌باره با فراخوانی "getxattrs" دریافت کنید. با این حال، برخی از پیاده‌سازی‌های سیستم فایل لینوکس دارای باگ هستند و روشی برای فهرست کردن ویژگی‌ها ارائه نمی‌دهند. برای این سیستم‌های فایل (به‌ویژه ntfs\-3g) باید نام ویژگی‌های گسترش‌یافته مورد نظر خود را از قبل بدانید و این تابع را فراخوانی کنید. .PP مقادیر ویژگی‌های گسترش‌یافته داده‌های باینری (blob) هستند. اگر هیچ ویژگی گسترش‌یافته‌ای با نام \f(CW\*(C`name\*(C'\fR وجود نداشته باشد، این تابع یک خطا برمی‌گرداند. .PP همچنین ببینید: "getxattrs"، "lgetxattr"، \fBattr\fR\|(5). .PP این دستور به ویژگی \f(CW\*(C`linuxxattrs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS getxattrs .IX Subsection "getxattrs" .Vb 1 \& getxattrs path .Ve .PP این فراخوانی ویژگی‌های گسترش‌یافته فایل یا دایرکتوری \&\f(CW\*(C`path\*(C'\fR را فهرست می‌کند. .PP در سطح فراخوانی سیستمی، این ترکیبی از فراخوانی‌های \&\fBlistxattr\fR\|(2) و \fBgetxattr\fR\|(2) است. .PP همچنین ببینید: "lgetxattrs"، \fBattr\fR\|(5). .PP این دستور به ویژگی \f(CW\*(C`linuxxattrs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS glob\-expand .IX Subsection "glob-expand" .SS glob\-expand\-opts .IX Subsection "glob-expand-opts" .Vb 1 \& glob\-expand pattern [directoryslash:true|false] .Ve .PP این دستور تمام مسیرهای منطبق بر \f(CW\*(C`pattern\*(C'\fR را بر اساس قوانین گسترش حروف عام (wildcard) که توسط شل استفاده می‌شود جستجو می‌کند. .PP اگر هیچ مسیری مطابقت نداشته باشد، یک فهرست خالی برمی‌گرداند (توجه: خطا نیست). .PP این فقط یک پوشش پیرامون تابع \fBglob\fR\|(3) در C با پرچم‌های \f(CW\*(C`GLOB_MARK|GLOB_BRACE\*(C'\fR است. برای جزئیات بیشتر به آن صفحه راهنما مراجعه کنید. .PP \&\f(CW\*(C`directoryslash\*(C'\fR مشخص می‌کند که آیا از پرچم \f(CW\*(C`GLOB_MARK\*(C'\fR برای \&\fBglob\fR\|(3) استفاده شود یا خیر، و مقدار پیش‌فرض آن true است. می‌توان آن را صراحتاً غیرفعال کرد تا هیچ اسلش پایانی در نام فایل‌های دایرکتوری‌ها برگردانده نشود. .PP توجه داشته باشید که هیچ دستور معادلی برای گسترش نام یک دستگاه (مانند \fI/dev/sd*\fR) وجود ندارد. به‌جای آن از توابع "list\-devices"، "list\-partitions" و غیره استفاده کنید. .PP این دستور یک یا چند آرگومان اختیاری دارد. به "OPTIONAL ARGUMENTS" مراجعه کنید. .SS grep .IX Subsection "grep" .SS grep\-opts .IX Subsection "grep-opts" .Vb 1 \& grep regex path [extended:true|false] [fixed:true|false] [insensitive:true|false] [compressed:true|false] .Ve .PP این برنامه خارجی \fBgrep\fR\|(1) را فراخوانی کرده و خطوط منطبق را برمی‌گرداند. .PP پرچم‌های اختیاری عبارتند از: .ie n .IP """extended""" 4 .el .IP \f(CWextended\fR 4 .IX Item "extended" استفاده از عبارات منظم گسترش‌یافته. این معادل استفاده از پرچم \fI\-E\fR است. .ie n .IP """fixed""" 4 .el .IP \f(CWfixed\fR 4 .IX Item "fixed" تطبیق ثابت (عدم استفاده از عبارات منظم). این معادل استفاده از پرچم \fI\-F\fR است. .ie n .IP """insensitive""" 4 .el .IP \f(CWinsensitive\fR 4 .IX Item "insensitive" تطبیق بدون حساسیت به حروف بزرگ و کوچک. این معادل استفاده از پرچم \fI\-i\fR است. .ie n .IP """compressed""" 4 .el .IP \f(CWcompressed\fR 4 .IX Item "compressed" استفاده از \fBzgrep\fR\|(1) به‌جای \fBgrep\fR\|(1). این به ورودی امکان می‌دهد که با compress یا gzip فشرده شده باشد. .PP این دستور یک یا چند آرگومان اختیاری دارد. به "OPTIONAL ARGUMENTS" مراجعه کنید. .PP به دلیل پروتکل پیام، یک محدودیت انتقال بین ۲ تا ۴ مگابایت وجود دارد. به "PROTOCOL LIMITS" در \fBguestfs\fR\|(3) مراجعه کنید. .SS grepi .IX Subsection "grepi" .Vb 1 \& grepi regex path .Ve .PP این برنامه خارجی \f(CW\*(C`grep \-i\*(C'\fR را فراخوانی کرده و خطوط منطبق را برمی‌گرداند. .PP به دلیل پروتکل پیام، یک محدودیت انتقال بین ۲ تا ۴ مگابایت وجود دارد. به "PROTOCOL LIMITS" در \fBguestfs\fR\|(3) مراجعه کنید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به‌جای آن از فراخوانی "grep" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان می‌دهد که در استفاده صحیح از این توابع مشکلاتی وجود دارد. .SS grub\-install .IX Subsection "grub-install" .Vb 1 \& grub\-install root device .Ve .PP این دستور GRUB 1 (گرند یونایفاید بوت‌لودر) را روی \&\f(CW\*(C`device\*(C'\fR با دایرکتوری ریشه \f(CW\*(C`root\*(C'\fR نصب می‌کند. .PP نکات: .IP \(bu 4 در حال حاضر روشی در API برای نصب grub2، که توسط اکثر مهمان‌های لینوکس مدرن استفاده می‌شود، وجود ندارد. امکان اجرای دستور grub2 از درون مهمان وجود دارد، هرچند هشدارهای موجود در "RUNNING COMMANDS" در \fBguestfs\fR\|(3) را ببینید. .IP \(bu 4 این از \fBgrub\-install\fR\|(8) از میزبان استفاده می‌کند. متأسفانه grub همیشه با خودش سازگار نیست، بنابراین این فقط در شرایط نسبتاً محدودی کار می‌کند. آزمایش دقیق با هر نسخه مهمان توصیه می‌شود. .IP \(bu 4 اگر grub\-install خطای "No suitable drive was found in the generated device map." را گزارش کند، ممکن است لازم باشد ابتدا یک فایل \fI/boot/grub/device.map\fR ایجاد کنید که حاوی نگاشت بین نام‌های دستگاه grub و نام‌های دستگاه لینوکس باشد. معمولاً ایجاد فایلی حاوی موارد زیر کافی است: .Sp .Vb 1 \& (hd0) /dev/vda .Ve .Sp که در آن \fI/dev/vda\fR با نام دستگاه نصب جایگزین می‌شود. .PP این دستور به ویژگی \f(CW\*(C`grub\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS head .IX Subsection "head" .Vb 1 \& head path .Ve .PP این دستور تا ۱۰ خط اول یک فایل را به‌صورت فهرستی از رشته‌ها برمی‌گرداند. .PP به دلیل پروتکل پیام، یک محدودیت انتقال بین ۲ تا ۴ مگابایت وجود دارد. به "PROTOCOL LIMITS" در \fBguestfs\fR\|(3) مراجعه کنید. .SS head\-n .IX Subsection "head-n" .Vb 1 \& head\-n nrlines path .Ve .PP اگر پارامتر \f(CW\*(C`nrlines\*(C'\fR یک عدد مثبت باشد، \f(CW\*(C`nrlines\*(C'\fR خط اول فایل \f(CW\*(C`path\*(C'\fR را برمی‌گرداند. .PP اگر پارامتر \f(CW\*(C`nrlines\*(C'\fR یک عدد منفی باشد، خطوط فایل \f(CW\*(C`path\*(C'\fR را به استثنای \f(CW\*(C`nrlines\*(C'\fR خط آخر برمی‌گرداند. .PP اگر پارامتر \f(CW\*(C`nrlines\*(C'\fR صفر باشد، یک فهرست خالی برمی‌گرداند. .PP به دلیل پروتکل پیام، یک محدودیت انتقال بین ۲ تا ۴ مگابایت وجود دارد. به "PROTOCOL LIMITS" در \fBguestfs\fR\|(3) مراجعه کنید. .SS hexdump .IX Subsection "hexdump" .Vb 1 \& hexdump path .Ve .PP این دستور \f(CW\*(C`hexdump \-C\*(C'\fR را روی \f(CW\*(C`path\*(C'\fR داده‌شده اجرا می‌کند. نتیجه، دامپ هگز استاندارد و خوانا برای انسان از فایل است. .PP به دلیل پروتکل پیام، یک محدودیت انتقال بین ۲ تا ۴ مگابایت وجود دارد. به "PROTOCOL LIMITS" در \fBguestfs\fR\|(3) مراجعه کنید. .SS hivex\-close .IX Subsection "hivex-close" .Vb 1 \& hivex\-close .Ve .PP هندل فعلی hivex را می‌بندد. .PP این یک پوشش پیرامون فراخوانی هم‌نام در \fBhivex\fR\|(3) است. .PP این دستور به ویژگی \f(CW\*(C`hivex\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS hivex\-commit .IX Subsection "hivex-commit" .Vb 1 \& hivex\-commit filename .Ve .PP تغییرات را در هایو (hive) ثبت (ذخیره) می‌کند. .PP اگر پارامتر اختیاری \fIfilename\fR برابر با null باشد، تغییرات در همان هایوی که باز شده بود بازنویسی می‌شوند. اگر null نباشد، تغییرات در نام فایل جایگزین داده‌شده نوشته شده و هایوی اصلی دست‌نخورده باقی می‌ماند. .PP این یک پوشش پیرامون فراخوانی هم‌نام در \fBhivex\fR\|(3) است. .PP این دستور به ویژگی \f(CW\*(C`hivex\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS hivex\-node\-add\-child .IX Subsection "hivex-node-add-child" .Vb 1 \& hivex\-node\-add\-child parent name .Ve .PP یک گره فرزند به \f(CW\*(C`parent\*(C'\fR با نام \f(CW\*(C`name\*(C'\fR اضافه می‌کند. .PP این یک پوشش پیرامون فراخوانی هم‌نام در \fBhivex\fR\|(3) است. .PP این دستور به ویژگی \f(CW\*(C`hivex\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS hivex\-node\-children .IX Subsection "hivex-node-children" .Vb 1 \& hivex\-node\-children nodeh .Ve .PP فهرست گره‌هایی را که زیرکلیدهای \f(CW\*(C`nodeh\*(C'\fR هستند برمی‌گرداند. .PP این یک پوشش پیرامون فراخوانی هم‌نام در \fBhivex\fR\|(3) است. .PP این دستور به ویژگی \f(CW\*(C`hivex\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS hivex\-node\-delete\-child .IX Subsection "hivex-node-delete-child" .Vb 1 \& hivex\-node\-delete\-child nodeh .Ve .PP گره \f(CW\*(C`nodeh\*(C'\fR را در صورت لزوم به‌صورت بازگشتی حذف می‌کند. .PP این یک پوشش پیرامون فراخوانی هم‌نام در \fBhivex\fR\|(3) است. .PP این دستور به ویژگی \f(CW\*(C`hivex\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS hivex\-node\-get\-child .IX Subsection "hivex-node-get-child" .Vb 1 \& hivex\-node\-get\-child nodeh name .Ve .PP فرزند \f(CW\*(C`nodeh\*(C'\fR را با نام \f(CW\*(C`name\*(C'\fR در صورت وجود برمی‌گرداند. این می‌تواند \f(CW0\fR را برگرداند که به معنی پیدا نشدن نام است. .PP این یک پوشش پیرامون فراخوانی هم‌نام در \fBhivex\fR\|(3) است. .PP این دستور به ویژگی \f(CW\*(C`hivex\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS hivex\-node\-get\-value .IX Subsection "hivex-node-get-value" .Vb 1 \& hivex\-node\-get\-value nodeh key .Ve .PP مقدار متصل به \f(CW\*(C`nodeh\*(C'\fR را که دارای نام \f(CW\*(C`key\*(C'\fR است در صورت وجود برمی‌گرداند. این می‌تواند \f(CW0\fR را برگرداند که به معنی پیدا نشدن کلید است. .PP این یک پوشش پیرامون فراخوانی هم‌نام در \fBhivex\fR\|(3) است. .PP این دستور به ویژگی \f(CW\*(C`hivex\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS hivex\-node\-name .IX Subsection "hivex-node-name" .Vb 1 \& hivex\-node\-name nodeh .Ve .PP نام \f(CW\*(C`nodeh\*(C'\fR را برمی‌گرداند. .PP این یک پوشش پیرامون فراخوانی هم‌نام در \fBhivex\fR\|(3) است. .PP این دستور به ویژگی \f(CW\*(C`hivex\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS hivex\-node\-parent .IX Subsection "hivex-node-parent" .Vb 1 \& hivex\-node\-parent nodeh .Ve .PP گره والد \f(CW\*(C`nodeh\*(C'\fR را برمی‌گرداند. .PP این یک پوشش پیرامون فراخوانی هم‌نام در \fBhivex\fR\|(3) است. .PP این دستور به ویژگی \f(CW\*(C`hivex\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS hivex\-node\-set\-value .IX Subsection "hivex-node-set-value" .Vb 1 \& hivex\-node\-set\-value nodeh key t val .Ve .PP یک مقدار منفرد را زیر گره \f(CW\*(C`nodeh\*(C'\fR تنظیم یا جایگزین می‌کند. \&\f(CW\*(C`key\*(C'\fR نام، \f(CW\*(C`t\*(C'\fR نوع، و \f(CW\*(C`val\*(C'\fR داده است. .PP این یک پوشش پیرامون فراخوانی هم‌نام در \fBhivex\fR\|(3) است. .PP این دستور به ویژگی \f(CW\*(C`hivex\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS hivex\-node\-values .IX Subsection "hivex-node-values" .Vb 1 \& hivex\-node\-values nodeh .Ve .PP آرایه‌ای از تاپل‌های (key, datatype, data) متصل به \f(CW\*(C`nodeh\*(C'\fR را برمی‌گرداند. .PP این یک پوشش پیرامون فراخوانی هم‌نام در \fBhivex\fR\|(3) است. .PP این دستور به ویژگی \f(CW\*(C`hivex\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS hivex\-open .IX Subsection "hivex-open" .Vb 1 \& hivex\-open filename [verbose:true|false] [debug:true|false] [write:true|false] [unsafe:true|false] .Ve .PP فایل هایو رجیستری ویندوز با نام \fIfilename\fR را باز می‌کند. اگر هرگونه هندل قبلی hivex مرتبط با این نشست guestfs وجود داشته باشد، بسته می‌شود. .PP این یک پوشش پیرامون فراخوانی هم‌نام در \fBhivex\fR\|(3) است. .PP این دستور یک یا چند آرگومان اختیاری دارد. به "OPTIONAL ARGUMENTS" مراجعه کنید. .PP این دستور به ویژگی \f(CW\*(C`hivex\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS hivex\-root .IX Subsection "hivex-root" .Vb 1 \& hivex\-root .Ve .PP گره ریشه هایو را برمی‌گرداند. .PP این یک پوشش پیرامون فراخوانی هم‌نام در \fBhivex\fR\|(3) است. .PP این دستور به ویژگی \f(CW\*(C`hivex\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS hivex\-value\-key .IX Subsection "hivex-value-key" .Vb 1 \& hivex\-value\-key valueh .Ve .PP فیلد کلید (نام) یک تاپل (key, datatype, data) را برمی‌گرداند. .PP این یک پوشش پیرامون فراخوانی هم‌نام در \fBhivex\fR\|(3) است. .PP این دستور به ویژگی \f(CW\*(C`hivex\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS hivex\-value\-string .IX Subsection "hivex-value-string" .Vb 1 \& hivex\-value\-string valueh .Ve .PP این تابع "hivex\-value\-value" را فراخوانی می‌کند (که فیلد داده را از یک تاپل مقدار hivex برمی‌گرداند). سپس فرض می‌کند که فیلد یک رشته UTF\-16LE است و نتیجه را به UTF\-8 تبدیل می‌کند (یا اگر این امکان‌پذیر نباشد، یک خطا برمی‌گرداند). .PP این برای خواندن رشته‌ها از رجیستری ویندوز مفید است. با این حال کاملاً بدون خطا نیست زیرا رجیستری به شدت دارای نوع‌بندی قوی نیست و فیلدها می‌توانند حاوی داده‌های دلخواه یا غیرمنتظره باشند. .PP این دستور به ویژگی \f(CW\*(C`hivex\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS hivex\-value\-type .IX Subsection "hivex-value-type" .Vb 1 \& hivex\-value\-type valueh .Ve .PP فیلد نوع داده را از یک تاپل (key, datatype, data) برمی‌گرداند. .PP این یک پوشش پیرامون فراخوانی هم‌نام در \fBhivex\fR\|(3) است. .PP این دستور به ویژگی \f(CW\*(C`hivex\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS hivex\-value\-utf8 .IX Subsection "hivex-value-utf8" .Vb 1 \& hivex\-value\-utf8 valueh .Ve .PP این تابع "hivex\-value\-value" را فراخوانی می‌کند (که فیلد داده را از یک تاپل مقدار hivex برمی‌گرداند). سپس فرض می‌کند که فیلد یک رشته UTF\-16LE است و نتیجه را به UTF\-8 تبدیل می‌کند (یا اگر این امکان‌پذیر نباشد، یک خطا برمی‌گرداند). .PP این برای خواندن رشته‌ها از رجیستری ویندوز مفید است. با این حال کاملاً بدون خطا نیست زیرا رجیستری به شدت دارای نوع‌بندی قوی نیست و فیلدها می‌توانند حاوی داده‌های دلخواه یا غیرمنتظره باشند. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به‌جای آن از فراخوانی "hivex\-value\-string" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان می‌دهد که در استفاده صحیح از این توابع مشکلاتی وجود دارد. .PP این دستور به ویژگی \f(CW\*(C`hivex\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS hivex\-value\-value .IX Subsection "hivex-value-value" .Vb 1 \& hivex\-value\-value valueh .Ve .PP فیلد داده یک تاپل (key, datatype, data) را برمی‌گرداند. .PP این یک پوشش پیرامون فراخوانی هم‌نام در \fBhivex\fR\|(3) است. .PP همچنین ببینید: "hivex\-value\-utf8". .PP این دستور به ویژگی \f(CW\*(C`hivex\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS initrd\-cat .IX Subsection "initrd-cat" .Vb 1 \& initrd\-cat initrdpath filename .Ve .PP این دستور فایل \fIfilename\fR را از فایل initrd با نام \&\fIinitrdpath\fR استخراج می‌کند. نام فایل باید \fIبدون\fR نویسه اولیه \fI/\fR داده شود. .PP برای مثال، در guestfish می‌توانید از دستور زیر برای بررسی اسکریپت بوت (که معمولاً \fI/init\fR نامیده می‌شود) موجود در یک ایمیج initrd یا initramfs لینوکس استفاده کنید: .PP .Vb 1 \& initrd\-cat /boot/initrd\-.img init .Ve .PP همچنین ببینید "initrd\-list". .PP به دلیل پروتکل پیام، یک محدودیت انتقال بین ۲ تا ۴ مگابایت وجود دارد. به "PROTOCOL LIMITS" در \fBguestfs\fR\|(3) مراجعه کنید. .SS initrd\-list .IX Subsection "initrd-list" .Vb 1 \& initrd\-list path .Ve .PP این دستور فایل‌های موجود در یک initrd را فهرست می‌کند. .PP فایل‌ها بدون هیچ کاراکتر ابتدایی \fI/\fR فهرست می‌شوند. فایل‌ها به همان ترتیبی که ظاهر می‌شوند (نه لزوماً بر اساس حروف الفبا) فهرست می‌گردند. نام دایرکتوری‌ها به عنوان موارد جداگانه فهرست می‌شوند. .PP هسته‌های قدیمی لینوکس (۲.۴ و قبل از آن) از یک فایل‌سیستم فشرده ext2 به عنوان initrd استفاده می‌کردند. ما \fIفقط\fR از قالب جدیدتر initramfs (فایل‌های cpio فشرده) پشتیبانی می‌کنیم. .SS inotify\-add\-watch .IX Subsection "inotify-add-watch" .Vb 1 \& inotify\-add\-watch path mask .Ve .PP مسیر \f(CW\*(C`path\*(C'\fR را برای رویدادهای فهرست‌شده در \f(CW\*(C`mask\*(C'\fR پایش کنید. .PP توجه داشته باشید که اگر \f(CW\*(C`path\*(C'\fR یک دایرکتوری باشد، رویدادهای درون آن دایرکتوری پایش می‌شوند، اما این کار به‌صورت بازگشتی (در زیردایرکتوری‌ها) رخ \fIنمی‌دهد\fR. .PP نکته برای فراخوان‌های غیر C یا غیر لینوکس: رویدادهای inotify توسط ABI هسته لینوکس تعریف شده‌اند و در \&\fI/usr/include/sys/inotify.h\fR فهرست شده‌اند. .PP این دستور به ویژگی \f(CW\*(C`inotify\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS inotify\-close .IX Subsection "inotify-close" .Vb 1 \& inotify\-close .Ve .PP این دستور هندل inotify را که قبلاً توسط inotify_init باز شده بود می‌بندد. این کار تمام پایش‌ها را حذف می‌کند، هر رویداد در انتظار را دور می‌ریزد و تمام منابع را آزاد می‌کند. .PP این دستور به ویژگی \f(CW\*(C`inotify\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS inotify\-files .IX Subsection "inotify-files" .Vb 1 \& inotify\-files .Ve .PP این تابع یک پوشش کمکی پیرامون "inotify\-read" است که فقط فهرستی از نام مسیرهای اشیایی را که لمس شده‌اند (تغییر یافته‌اند) برمی‌گرداند. نام مسیرهای بازگردانده‌شده مرتب‌شده و یکتا هستند. .PP این دستور به ویژگی \f(CW\*(C`inotify\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS inotify\-init .IX Subsection "inotify-init" .Vb 1 \& inotify\-init maxevents .Ve .PP این دستور یک هندل جدید inotify ایجاد می‌کند. زیرسیستم inotify را می‌توان برای اطلاع از رویدادهایی که برای اشیاء در فایل‌سیستم مهمان رخ می‌دهند استفاده کرد. .PP \&\f(CW\*(C`maxevents\*(C'\fR حداکثر تعداد رویدادهایی است که بین فراخوانی‌های "inotify\-read" یا "inotify\-files" در صف قرار می‌گیرند. اگر این مقدار به عنوان \f(CW0\fR ارسال شود، از پیش‌فرض هسته (یا مقدار تنظیم‌شده قبلی) استفاده می‌شود. برای لینوکس 2.6.29 مقدار پیش‌فرض ۱۶۳۸۴ رویداد بود. فراتر از این حد، هسته رویدادها را دور می‌ریزد، اما ثبت می‌کند که آن‌ها را با تنظیم پرچم \&\f(CW\*(C`IN_Q_OVERFLOW\*(C'\fR در فهرست ساختار بازگردانده‌شده دور ریخته است (ببینید "inotify\-read"). .PP پیش از اینکه هرگونه رویدادی تولید شود، باید پایش‌هایی را به فهرست پایش داخلی اضافه کنید. ببینید: "inotify\-add\-watch" و "inotify\-rm\-watch". .PP رویدادهای درون صف باید با فراخوانی دوره‌ای "inotify\-read" (یا "inotify\-files" که صرفاً یک پوشش کمکی پیرامون "inotify\-read" است) خوانده شوند. اگر رویدادها را به اندازه کافی نخوانید، خطر سرریز صف داخلی وجود دارد. .PP هندل باید پس از استفاده با فراخوانی "inotify\-close" بسته شود. این کار همچنین تمام پایش‌ها را به‌طور خودکار حذف می‌کند. .PP همچنین برای یک نمای کلی از رابط inotify همان‌گونه که توسط هسته لینوکس ارائه شده است، \fBinotify\fR\|(7) را ببینید که تقریباً همان چیزی است که ما از طریق libguestfs ارائه می‌دهیم. توجه داشته باشید که به ازای هر نمونه libguestfs یک هندل سراسری inotify وجود دارد. .PP این دستور به ویژگی \f(CW\*(C`inotify\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS inotify\-read .IX Subsection "inotify-read" .Vb 1 \& inotify\-read .Ve .PP صف کامل رویدادهایی را که از زمان فراخوانی خواندن قبلی رخ داده‌اند برمی‌گرداند. .PP اگر هیچ رویدادی رخ نداده باشد، این دستور یک فهرست خالی برمی‌گرداند. .PP \&\fIنکته\fR: برای اطمینان از اینکه تمام رویدادها خوانده شده‌اند، باید این تابع را مکرراً فراخوانی کنید تا زمانی که یک فهرست خالی برگرداند. دلیل این امر آن است که فراخوانی رویدادها را تا حداکثر اندازه پیام appliance-to-host می‌خواند و رویدادهای باقی‌مانده را در صف رها می‌کند. .PP این دستور به ویژگی \f(CW\*(C`inotify\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS inotify\-rm\-watch .IX Subsection "inotify-rm-watch" .Vb 1 \& inotify\-rm\-watch wd .Ve .PP یک پایش inotify تعریف‌شده قبلی را حذف می‌کند. ببینید "inotify\-add\-watch". .PP این دستور به ویژگی \f(CW\*(C`inotify\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS inspect\-get\-arch .IX Subsection "inspect-get-arch" .Vb 1 \& inspect\-get\-arch root .Ve .PP این دستور معماری سیستم‌عامل بازرسی‌شده را برمی‌گرداند. مقادیر بازگشتی ممکن در زیر "file\-architecture" فهرست شده‌اند. .PP اگر معماری قابل تشخیص نباشد، رشته \f(CW\*(C`unknown\*(C'\fR برگردانده می‌شود. .PP لطفاً برای جزئیات بیشتر "INSPECTION" در \fBguestfs\fR\|(3) را بخوانید. .SS inspect\-get\-build\-id .IX Subsection "inspect-get-build-id" .Vb 1 \& inspect\-get\-build\-id root .Ve .PP این دستور شناسه ساخت (Build ID) سیستم را برمی‌گرداند، یا اگر سیستم شناسه ساخت نداشته باشد، رشته \&\f(CW"unknown"\fR را برمی‌گرداند. .PP برای ویندوز، این دستور شماره ساخت را دریافت می‌کند. اگرچه به عنوان یک رشته برگردانده می‌شود، اما (تاکنون) همیشه یک عدد است. برای برخی از مقادیر ممکن، https://en.wikipedia.org/wiki/List_of_Microsoft_Windows_versions را ببینید. .PP برای لینوکس، این رشته \f(CW\*(C`BUILD_ID\*(C'\fR را از \&\fI/etc/os\-release\fR برمی‌گرداند، اگرچه این مورد اغلب استفاده نمی‌شود. .PP لطفاً برای جزئیات بیشتر "INSPECTION" در \fBguestfs\fR\|(3) را بخوانید. .SS inspect\-get\-distro .IX Subsection "inspect-get-distro" .Vb 1 \& inspect\-get\-distro root .Ve .PP این دستور توزیع (distribution) سیستم‌عامل بازرسی‌شده را برمی‌گرداند. .PP توزیع‌های تعریف‌شده در حال حاضر عبارتند از: .IP """alpinelinux""" 4 .IX Item """alpinelinux""" آلپاین لینوکس (Alpine Linux). .IP """altlinux""" 4 .IX Item """altlinux""" آلت لینوکس (ALT Linux). .IP """archlinux""" 4 .IX Item """archlinux""" آرچ لینوکس (Arch Linux). .IP """buildroot""" 4 .IX Item """buildroot""" توزیع مشتق‌شده از Buildroot، اما نه توزیعی که به‌طور خاص شناسایی کنیم. .IP """centos""" 4 .IX Item """centos""" سنت‌او‌اس (CentOS). .IP """circle""" 4 .IX Item """circle""" سیرکل لینوکس (Circle Linux). .IP """cirros""" 4 .IX Item """cirros""" سیروس (Cirros). .IP """coreos""" 4 .IX Item """coreos""" کوراو‌اس (CoreOS). .IP """debian""" 4 .IX Item """debian""" دبیان (Debian). .IP """fedora""" 4 .IX Item """fedora""" فدورا (Fedora). .IP """freebsd""" 4 .IX Item """freebsd""" فری‌بی‌اس‌دی (FreeBSD). .IP """freedos""" 4 .IX Item """freedos""" فری‌داس (FreeDOS). .IP """frugalware""" 4 .IX Item """frugalware""" فروگال‌ور (Frugalware). .IP """gentoo""" 4 .IX Item """gentoo""" جنتو (Gentoo). .IP """kalilinux""" 4 .IX Item """kalilinux""" کالی لینوکس (Kali Linux). .IP """kylin""" 4 .IX Item """kylin""" کایلین (Kylin). .IP """linuxmint""" 4 .IX Item """linuxmint""" لینوکس مینت (Linux Mint). .IP """mageia""" 4 .IX Item """mageia""" ماژیا (Mageia). .IP """mandriva""" 4 .IX Item """mandriva""" ماندریوا (Mandriva). .IP """meego""" 4 .IX Item """meego""" می‌گو (MeeGo). .IP """msdos""" 4 .IX Item """msdos""" مایکروسافت داس (Microsoft DOS). .IP """neokylin""" 4 .IX Item """neokylin""" نئوکایلین (NeoKylin). .IP """netbsd""" 4 .IX Item """netbsd""" نت‌بی‌اس‌دی (NetBSD). .IP """openbsd""" 4 .IX Item """openbsd""" اوپن‌بی‌اس‌دی (OpenBSD). .IP """openeuler""" 4 .IX Item """openeuler""" اوپن‌اویلر (openEuler). .IP """openmandriva""" 4 .IX Item """openmandriva""" اوپن‌ماندریوا (OpenMandriva Lx). .IP """opensuse""" 4 .IX Item """opensuse""" اوپن‌سوزه (OpenSUSE). .IP """oraclelinux""" 4 .IX Item """oraclelinux""" اوراکل لینوکس (Oracle Linux). .IP """pardus""" 4 .IX Item """pardus""" پاردوس (Pardus). .IP """pldlinux""" 4 .IX Item """pldlinux""" پی‌ال‌دی لینوکس (PLD Linux). .IP """redhat\-based""" 4 .IX Item """redhat-based""" یک توزیع مشتق‌شده از رد هت (Red Hat). .IP """rhel""" 4 .IX Item """rhel""" رد هت اینترپرایز لینوکس (Red Hat Enterprise Linux). .IP """rocky""" 4 .IX Item """rocky""" راکی لینوکس (Rocky Linux). .IP """scientificlinux""" 4 .IX Item """scientificlinux""" ساینتیفیک لینوکس (Scientific Linux). .IP """slackware""" 4 .IX Item """slackware""" اسلکور (Slackware). .IP """sles""" 4 .IX Item """sles""" سرور یا دسکتاپ سوزه لینوکس سازمانی (SuSE Linux Enterprise Server or Desktop). .IP """suse\-based""" 4 .IX Item """suse-based""" یک توزیع مشتق‌شده از اوپن‌سوزه. .IP """ttylinux""" 4 .IX Item """ttylinux""" تی‌تی‌وای‌لینوکس (ttylinux). .IP """ubuntu""" 4 .IX Item """ubuntu""" اوبونتو (Ubuntu). .IP """unknown""" 4 .IX Item """unknown""" توزیع قابل تشخیص نبود. .IP """voidlinux""" 4 .IX Item """voidlinux""" ووید لینوکس (Void Linux). .IP """windows""" 4 .IX Item """windows""" ویندوز توزیع ندارد. اگر نوع سیستم‌عامل ویندوز باشد، این رشته برگردانده می‌شود. .PP نسخه‌های بعدی libguestfs ممکن است رشته‌های دیگری را در اینجا برگردانند. فراخوان باید آماده رسیدگی به هر رشته‌ای باشد. .PP لطفاً برای جزئیات بیشتر "INSPECTION" در \fBguestfs\fR\|(3) را بخوانید. .SS inspect\-get\-drive\-mappings .IX Subsection "inspect-get-drive-mappings" .Vb 1 \& inspect\-get\-drive\-mappings root .Ve .PP این فراخوانی برای ویندوز که از سیستم ابتدایی اختصاص حروف درایو (مانند \fIC:\e\fR) به پارتیشن‌ها استفاده می‌کند، مفید است. این API بازرسی، رجیستری ویندوز را بررسی می‌کند تا بفهمد دیسک‌ها/پارتیشن‌ها چگونه به حروف درایو نگاشت شده‌اند، و یک جدول هش مانند مثال زیر برمی‌گرداند: .PP .Vb 3 \& C => /dev/vda2 \& E => /dev/vdb1 \& F => /dev/vdc1 .Ve .PP توجه داشته باشید که کلیدها حروف درایو هستند. برای ویندوز، کلید به حروف بزرگ و کوچک حساس نیست و فقط شامل حرف درایو است، بدون کاراکتر جداکننده دونقطه معمول. .PP در آینده ممکن است از سایر سیستم‌های عاملی که از حروف درایو استفاده می‌کردند نیز پشتیبانی کنیم، اما ممکن است کلیدهای آن‌ها به حروف بزرگ و کوچک حساس باشند و طولانی‌تر از ۱ کاراکتر باشند. برای مثال در OS\-9، هارد دیسک‌ها \f(CW\*(C`h0\*(C'\fR، \f(CW\*(C`h1\*(C'\fR و غیره نام‌گذاری می‌شدند. .PP برای مهمان‌های ویندوز، در حال حاضر فقط نگاشت‌های هارد دیسک بازگردانده می‌شوند. دیسک‌های قابل جابجایی (مثلاً DVD\-ROMها) نادیده گرفته می‌شوند. .PP برای مهمان‌هایی که از نگاشت درایو استفاده نمی‌کنند، یا اگر نگاشت‌های درایو قابل تشخیص نباشد، این دستور یک جدول هش خالی برمی‌گرداند. .PP لطفاً برای جزئیات بیشتر "INSPECTION" در \fBguestfs\fR\|(3) را بخوانید. همچنین ببینید "inspect\-get\-mountpoints" و "inspect\-get\-filesystems". .SS inspect\-get\-filesystems .IX Subsection "inspect-get-filesystems" .Vb 1 \& inspect\-get\-filesystems root .Ve .PP فهرستی از تمام فایل‌سیستم‌هایی را که فکر می‌کنیم با این سیستم‌عامل مرتبط هستند برمی‌گرداند. این شامل فایل‌سیستم ریشه، سایر فایل‌سیستم‌های معمولی و دستگاه‌های سوارنشده مانند پارتیشن‌های swap می‌شود. .PP در مورد یک ماشین مجازی چندبوت (multi\-boot)، ممکن است یک فایل‌سیستم بین سیستم‌های عامل به اشتراک گذاشته شود. .PP لطفاً برای جزئیات بیشتر "INSPECTION" در \fBguestfs\fR\|(3) را بخوانید. همچنین ببینید "inspect\-get\-mountpoints". .SS inspect\-get\-format .IX Subsection "inspect-get-format" .Vb 1 \& inspect\-get\-format root .Ve .PP قبل از libguestfs 1.38، پشتیبانی غیرقابل اعتمادی برای تشخیص CDهای نصب وجود داشت. این API مقادیر زیر را برمی‌گرداند: .ie n .IP """installed""" 4 .el .IP \f(CWinstalled\fR 4 .IX Item "installed" این یک سیستم‌عامل نصب‌شده است. .ie n .IP """installer""" 4 .el .IP \f(CWinstaller\fR 4 .IX Item "installer" ایمیج دیسک در حال بازرسی یک سیستم‌عامل نصب‌شده نیست، بلکه یک دیسک نصب \fIقابل بوت\fR، دیسک زنده (Live CD) یا مشابه آن است. .ie n .IP """unknown""" 4 .el .IP \f(CWunknown\fR 4 .IX Item "unknown" قالب این ایمیج دیسک ناشناخته است. .PP در libguestfs ≥ 1.38، این تابع فقط \f(CW\*(C`installed\*(C'\fR را برمی‌گرداند. برای تشخیص CDهای نصب مستقیماً از libosinfo استفاده کنید. .PP لطفاً برای جزئیات بیشتر "INSPECTION" در \fBguestfs\fR\|(3) را بخوانید. .PP \&\fIاین تابع منسوخ شده است.\fR جایگزینی وجود ندارد. برای اطلاعات بیشتر به مستندات API در \&\fBguestfs\fR\|(3) مراجعه کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ شدن آن‌ها نشان می‌دهد که در استفاده صحیح از این توابع مشکلاتی وجود دارد. .SS inspect\-get\-hostname .IX Subsection "inspect-get-hostname" .Vb 1 \& inspect\-get\-hostname root .Ve .PP این تابع نام میزبان (hostname) سیستم‌عامل را همان‌طور که با بازرسی فایل‌های پیکربندی مهمان یافت شده است برمی‌گرداند. .PP اگر نام میزبان قابل تشخیص نباشد، رشته \f(CW\*(C`unknown\*(C'\fR برگردانده می‌شود. .PP لطفاً برای جزئیات بیشتر "INSPECTION" در \fBguestfs\fR\|(3) را بخوانید. .SS inspect\-get\-icon .IX Subsection "inspect-get-icon" .Vb 1 \& inspect\-get\-icon root [favicon:true|false] [highquality:true|false] .Ve .PP این تابع آیکونی متناظر با سیستم‌عامل بازرسی‌شده را برمی‌گرداند. آیکون به عنوان یک بافر حاوی یک تصویر PNG (در صورت نیاز بازرمزگذاری‌شده به PNG) برگردانده می‌شود. .PP اگر دریافت آیکون ممکن نباشد، این تابع یک بافر با طول صفر (غیر NULL) برمی‌گرداند. \fIفراخوان‌ها باید این حالت را بررسی کنند\fR. .PP ابزار Libguestfs با جستجو برای فایلی به نام \&\fI/etc/favicon.png\fR یا \&\fIC:\eetc\efavicon.png\fR شروع می‌کند و در صورت داشتن قالب صحیح، محتویات این فایل برگردانده می‌شود. می‌توانید با ارسال مقدار بولی اختیاری \f(CW\*(C`favicon\*(C'\fR به عنوان false (پیش‌فرض true است)، فاوآیکون‌ها را غیرفعال کنید. .PP اگر یافتن فاوآیکون ناموفق باشد، در جاهای دیگر مهمان به دنبال یک آیکون مناسب می‌گردیم. .PP اگر مقدار بولی اختیاری \f(CW\*(C`highquality\*(C'\fR برابر true باشد، فقط آیکون‌های باکیفیت بالا برگردانده می‌شوند، که به معنای فقط آیکون‌های با وضوح بالا همراه با کانال آلفا است. پیش‌فرض (false) بازگرداندن هر آیکونی است که می‌توانیم، حتی اگر کیفیت پایینی داشته باشد. .PP نکات: .IP \(bu 4 برخلاف بیشتر فراخوانی‌های دیگر API بازرسی، دیسک‌های مهمان باید قبل از فراخوانی این دستور سوار (mount) شده باشند، زیرا باید اطلاعات را از فایل‌سیستم مهمان در طول فراخوانی بخواند. .IP \(bu 4 \&\fBامنیت:\fR داده‌های آیکون از مهمان غیرقابل اعتماد می‌آیند و باید با احتیاط با آن‌ها رفتار شود. فایل‌های PNG به داشتن اکسپلویت شناخته شده‌اند. اطمینان حاصل کنید که libpng (یا سایر کتابخانه‌های مربوطه) قبل از تلاش برای پردازش یا نمایش آیکون کاملاً به‌روز هستند. .IP \(bu 4 تصویر PNG بازگردانده‌شده می‌تواند هر اندازه‌ای داشته باشد. ممکن است مربع نباشد. Libguestfs تلاش می‌کند بزرگ‌ترین و باکیفیت‌ترین آیکون موجود را برگرداند. برنامه کاربردی باید آیکون را به اندازه مورد نیاز مقیاس‌بندی کند. .IP \(bu 4 استخراج آیکون‌ها از مهمان‌های ویندوز به برنامه خارجی \&\fBwrestool\fR\|(1) از بسته \f(CW\*(C`icoutils\*(C'\fR، و چندین برنامه (\fBbmptopnm\fR\|(1)، \fBpnmtopng\fR\|(1)، \fBpamcut\fR\|(1)) از بسته \f(CW\*(C`netpbm\*(C'\fR نیاز دارد. این‌ها باید جداگانه نصب شوند. .IP \(bu 4 آیکون‌های سیستم‌عامل معمولاً نشان‌های تجاری هستند. قبل از استفاده از نشان‌های تجاری در برنامه‌ها به دنبال مشاوره حقوقی باشید. .PP این دستور دارای یک یا چند آرگومان اختیاری است. ببینید "OPTIONAL ARGUMENTS". .SS inspect\-get\-major\-version .IX Subsection "inspect-get-major-version" .Vb 1 \& inspect\-get\-major\-version root .Ve .PP این دستور شماره نسخه اصلی (major version) سیستم‌عامل بازرسی‌شده را برمی‌گرداند. .PP ویندوز از یک طرح نسخه‌بندی منسجم استفاده می‌کند که در نام‌های عمومی محبوب مورداستفاده برای سیستم‌عامل منعکس \fIنشده\fR است. به‌ویژه سیستم‌عاملی که با نام "Windows 7" شناخته می‌شود، در واقع نسخه 6.1 است (یعنی major = 6 و minor = 1). می‌توانید با مراجعه به ویکی‌پدیا یا MSDN نسخه‌های واقعی مربوط به انتشار‌های ویندوز را بیابید. .PP اگر نسخه قابل تشخیص نباشد، \f(CW0\fR برگردانده می‌شود. .PP لطفاً برای جزئیات بیشتر "INSPECTION" در \fBguestfs\fR\|(3) را بخوانید. .SS inspect\-get\-minor\-version .IX Subsection "inspect-get-minor-version" .Vb 1 \& inspect\-get\-minor\-version root .Ve .PP این دستور شماره نسخه فرعی (minor version) سیستم‌عامل بازرسی‌شده را برمی‌گرداند. .PP اگر نسخه قابل تشخیص نباشد، \f(CW0\fR برگردانده می‌شود. .PP لطفاً برای جزئیات بیشتر "INSPECTION" در \fBguestfs\fR\|(3) را بخوانید. همچنین ببینید "inspect\-get\-major\-version". .SS inspect\-get\-mountpoints .IX Subsection "inspect-get-mountpoints" .Vb 1 \& inspect\-get\-mountpoints root .Ve .PP یک هش از جاهایی که فکر می‌کنیم فایل‌سیستم‌های مرتبط با این سیستم‌عامل باید در آنجا سوار شوند برمی‌گرداند. فراخوان‌ها باید توجه داشته باشند که این در بهترین حالت یک حدس آگاهانه است که از طریق خواندن فایل‌های پیکربندی مانند \fI/etc/fstab\fR انجام شده است. \fIبه‌ویژه توجه داشته باشید\fR که این ممکن است فایل‌سیستم‌هایی را برگرداند که وجود ندارند یا قابل سوار شدن نیستند و فراخوان‌ها باید آماده باشند تا در صورت تلاش برای سوار کردن آن‌ها، خرابی‌ها را مدیریت یا نادیده بگیرند. .PP هر عنصر در جدول هش بازگردانده‌شده کلیدی دارد که مسیر نقطه اتصال (مانند \fI/boot\fR) است و مقداری دارد که فایل‌سیستمی است که در آنجا سوار می‌شود (مانند \fI/dev/sda1\fR). .PP دستگاه‌های سوارنشده مانند دستگاه‌های swap در این فهرست بازگردانده \fIنمی‌شوند\fR. .PP برای سیستم‌های عاملی مانند ویندوز که هنوز از حروف درایو استفاده می‌کنند، این فراخوانی فقط ورودی اولین درایو "سوار شده روی" \fI/\fR را برمی‌گرداند. برای اطلاعات در مورد نگاشت حروف درایو به پارتیشن‌ها، "inspect\-get\-drive\-mappings" را ببینید. .PP لطفاً برای جزئیات بیشتر "INSPECTION" در \fBguestfs\fR\|(3) را بخوانید. همچنین ببینید "inspect\-get\-filesystems". .SS inspect\-get\-osinfo .IX Subsection "inspect-get-osinfo" .Vb 1 \& inspect\-get\-osinfo root .Ve .PP این تابع یک شناسه کوتاه احتمالی برای libosinfo متناظر با مهمان را برمی‌گرداند. .PP \&\fIنکته:\fR شناسه بازگردانده‌شده فقط یک حدس توسط libguestfs است، و هیچ چیز تضمین نمی‌کند که واقعاً در osinfo\-db وجود داشته باشد. .PP اگر هیچ شناسه‌ای قابل تشخیص نباشد، رشته \f(CW\*(C`unknown\*(C'\fR برگردانده می‌شود. .SS inspect\-get\-package\-format .IX Subsection "inspect-get-package-format" .Vb 1 \& inspect\-get\-package\-format root .Ve .PP این تابع و "inspect\-get\-package\-management" قالب بسته و ابزار مدیریت بسته‌ای را که توسط سیستم‌عامل بازرسی‌شده استفاده می‌شود، برمی‌گردانند. برای مثال برای فدورا این توابع \f(CW\*(C`rpm\*(C'\fR (قالب بسته)، و \&\f(CW\*(C`yum\*(C'\fR یا \f(CW\*(C`dnf\*(C'\fR (مدیریت بسته) را برمی‌گردانند. .PP اگر نتوانیم قالب بسته را تعیین کنیم \fIیا\fR اگر سیستم‌عامل سیستم بسته‌بندی واقعی نداشته باشد (مانند ویندوز)، این تابع رشته \f(CW\*(C`unknown\*(C'\fR را برمی‌گرداند. .PP رشته‌های ممکن عبارتند از: \&\f(CW\*(C`rpm\*(C'\fR، \f(CW\*(C`deb\*(C'\fR، \f(CW\*(C`ebuild\*(C'\fR، \f(CW\*(C`pisi\*(C'\fR، \f(CW\*(C`pacman\*(C'\fR، \f(CW\*(C`pkgsrc\*(C'\fR، \f(CW\*(C`apk\*(C'\fR، \&\f(CW\*(C`xbps\*(C'\fR. نسخه‌های بعدی libguestfs ممکن است رشته‌های دیگری را برگردانند. .PP لطفاً برای جزئیات بیشتر "INSPECTION" در \fBguestfs\fR\|(3) را بخوانید. .SS inspect\-get\-package\-management .IX Subsection "inspect-get-package-management" .Vb 1 \& inspect\-get\-package\-management root .Ve .PP "inspect\-get\-package\-format" و این تابع قالب بسته و ابزار مدیریت بسته استفاده‌شده توسط سیستم‌عامل بازرسی‌شده را برمی‌گردانند. برای مثال برای فدورا این توابع \f(CW\*(C`rpm\*(C'\fR (قالب بسته)، و \&\f(CW\*(C`yum\*(C'\fR یا \f(CW\*(C`dnf\*(C'\fR (مدیریت بسته) را برمی‌گردانند. .PP اگر نتوانیم ابزار مدیریت بسته را تعیین کنیم \fIیا\fR اگر سیستم‌عامل سیستم بسته‌بندی واقعی نداشته باشد (مانند ویندوز)، این تابع رشته \f(CW\*(C`unknown\*(C'\fR را برمی‌گرداند. .PP رشته‌های ممکن عبارتند از: \f(CW\*(C`yum\*(C'\fR، \f(CW\*(C`dnf\*(C'\fR، \f(CW\*(C`up2date\*(C'\fR، \&\f(CW\*(C`apt\*(C'\fR (برای تمام مشتقات دبیان)، \&\f(CW\*(C`portage\*(C'\fR، \f(CW\*(C`pisi\*(C'\fR، \f(CW\*(C`pacman\*(C'\fR، \f(CW\*(C`urpmi\*(C'\fR، \f(CW\*(C`zypper\*(C'\fR، \f(CW\*(C`apk\*(C'\fR، \f(CW\*(C`xbps\*(C'\fR. نسخه‌های بعدی libguestfs ممکن است رشته‌های دیگری را برگردانند. .PP لطفاً برای جزئیات بیشتر "INSPECTION" در \fBguestfs\fR\|(3) را بخوانید. .SS inspect\-get\-product\-name .IX Subsection "inspect-get-product-name" .Vb 1 \& inspect\-get\-product\-name root .Ve .PP نام محصول سیستم‌عامل بازرسی‌شده را برمی‌گرداند. نام محصول عموماً یک رشته آزاد است که می‌تواند به کاربر نمایش داده شود، اما نباید توسط برنامه‌ها پردازش شود. .PP اگر نام محصول قابل تشخیص نباشد، رشته \f(CW\*(C`unknown\*(C'\fR برگردانده می‌شود. .PP لطفاً برای جزئیات بیشتر "INSPECTION" در \fBguestfs\fR\|(3) را بخوانید. .SS inspect\-get\-product\-variant .IX Subsection "inspect-get-product-variant" .Vb 1 \& inspect\-get\-product\-variant root .Ve .PP گونه محصول (product variant) سیستم‌عامل بازرسی‌شده را برمی‌گرداند. .PP برای مهمان‌های ویندوز، این مقدار کلید رجیستری \&\f(CW\*(C`HKLM\eSoftware\eMicrosoft\eWindows NT\eCurrentVersion\*(C'\fR \&\f(CW\*(C`InstallationType\*(C'\fR را برمی‌گرداند که معمولاً رشته‌ای مانند \&\f(CW\*(C`Client\*(C'\fR یا \f(CW\*(C`Server\*(C'\fR است (مقادیر دیگر نیز ممکن است). از این مورد می‌توان برای تشخیص نسخه‌های مصرف‌کننده و سازمانی ویندوز که شماره نسخه یکسانی دارند استفاده کرد (برای مثال، Windows 7 و Windows 2008 Server هر دو نسخه 6.1 هستند، اما اولی \f(CW\*(C`Client\*(C'\fR و دومی \f(CW\*(C`Server\*(C'\fR است). .PP برای مهمان‌های لینوکس سازمانی، در آینده قصد داریم این مقدار گونه محصول مانند \f(CW\*(C`Desktop\*(C'\fR، \f(CW\*(C`Server\*(C'\fR و غیره را برگرداند. اما در حال حاضر این ویژگی پیاده‌سازی نشده است. .PP اگر گونه محصول قابل تشخیص نباشد، رشته \f(CW\*(C`unknown\*(C'\fR برگردانده می‌شود. .PP لطفاً برای جزئیات بیشتر "INSPECTION" در \fBguestfs\fR\|(3) را بخوانید. همچنین ببینید "inspect\-get\-product\-name" و "inspect\-get\-major\-version". .SS inspect\-get\-roots .IX Subsection "inspect-get-roots" .Vb 1 \& inspect\-get\-roots .Ve .PP این تابع روشی مناسب برای دریافت فهرست دستگاه‌های ریشه است، همان‌طور که از فراخوانی قبلی به "inspect\-os" بازگردانده شده بود، اما بدون تکرار مجدد کل فرآیند بازرسی. .PP اگر هیچ دستگاه ریشه‌ای یافت نشده باشد یا فراخوان "inspect\-os" را فراخوانی نکرده باشد، این تابع یک فهرست خالی برمی‌گرداند. .PP لطفاً برای جزئیات بیشتر "INSPECTION" در \fBguestfs\fR\|(3) را بخوانید. .SS inspect\-get\-type .IX Subsection "inspect-get-type" .Vb 1 \& inspect\-get\-type root .Ve .PP نوع سیستم‌عامل بازرسی‌شده را برمی‌گرداند. انواع تعریف‌شده در حال حاضر عبارتند از: .IP """linux""" 4 .IX Item """linux""" هر سیستم‌عامل مبتنی بر لینوکس. .IP """windows""" 4 .IX Item """windows""" هر سیستم‌عامل مایکروسافت ویندوز. .IP """freebsd""" 4 .IX Item """freebsd""" فری‌بی‌اس‌دی (FreeBSD). .IP """netbsd""" 4 .IX Item """netbsd""" نت‌بی‌اس‌دی (NetBSD). .IP """openbsd""" 4 .IX Item """openbsd""" اوپن‌بی‌اس‌دی (OpenBSD). .IP """hurd""" 4 .IX Item """hurd""" گنو/هرد (GNU/Hurd). .IP """dos""" 4 .IX Item """dos""" ام‌اس-داس (MS\-DOS)، فری‌داس (FreeDOS) و دیگران. .IP """minix""" 4 .IX Item """minix""" مینیکس (MINIX). .IP """unknown""" 4 .IX Item """unknown""" نوع سیستم‌عامل قابل تشخیص نبود. .PP نسخه‌های بعدی libguestfs ممکن است رشته‌های دیگری را در اینجا برگردانند. فراخوان باید آماده رسیدگی به هر رشته‌ای باشد. .PP لطفاً برای جزئیات بیشتر "INSPECTION" در \fBguestfs\fR\|(3) را بخوانید. .SS inspect\-get\-windows\-current\-control\-set .IX Subsection "inspect-get-windows-current-control-set" .Vb 1 \& inspect\-get\-windows\-current\-control\-set root .Ve .PP مقدار CurrentControlSet ویندوز مهمان بازرسی‌شده را برمی‌گرداند. CurrentControlSet نام کلید رجیستری مانند \f(CW\*(C`ControlSet001\*(C'\fR است. .PP این فراخوانی فرض می‌کند که مهمان ویندوز است و رجیستری از طریق بازرسی قابل بررسی بوده است. اگر این‌طور نباشد، یک خطا برگردانده می‌شود. .PP لطفاً برای جزئیات بیشتر "INSPECTION" در \fBguestfs\fR\|(3) را بخوانید. .SS inspect\-get\-windows\-group\-policy .IX Subsection "inspect-get-windows-group-policy" .Vb 1 \& inspect\-get\-windows\-group\-policy root .Ve .PP اگر مهمان ویندوز دارای خط‌مشی گروهی (group policy) باشد، مقدار true برمی‌گرداند. خط‌مشی گروهی می‌تواند با نصب درایور دستگاه تداخل داشته باشد و از کارکرد ویژگی‌های libguestfs مانند تزریق درایور جلوگیری کند. .PP توجه داشته باشید که وجود خط‌مشی گروهی فقط نشانه‌ای از این است که ممکن است مشکلی در نصب درایور وجود داشته باشد. از آنجا که خط‌مشی گروهی بسیار پیچیده است و جنبه‌های مختلف پیکربندی ویندوز را پوشش می‌دهد، و ما هیچ تلاشی برای تجزیه آن نمی‌کنیم، وجود خط‌مشی گروهی فقط باید یک هشدار ایجاد کند. .PP این فراخوانی فرض می‌کند که مهمان ویندوز است و رجیستری از طریق بازرسی قابل بررسی بوده است. اگر این‌طور نباشد، یک خطا برگردانده می‌شود. .PP لطفاً برای جزئیات بیشتر "INSPECTION" در \fBguestfs\fR\|(3) را بخوانید. .SS inspect\-get\-windows\-software\-hive .IX Subsection "inspect-get-windows-software-hive" .Vb 1 \& inspect\-get\-windows\-software\-hive root .Ve .PP مسیر هایو (فایل باینری رجیستری ویندوز) متناظر با HKLM\eSOFTWARE را برمی‌گرداند. .PP این فراخوانی فرض می‌کند که مهمان ویندوز است و مهمان یک فایل هایو نرم‌افزار با نام صحیح دارد. اگر این‌طور نباشد، یک خطا برگردانده می‌شود. این فراخوانی بررسی نمی‌کند که هایو یک هایو معتبر رجیستری ویندوز است یا خیر. .PP می‌توانید از "hivex\-open" برای خواندن یا نوشتن در هایو استفاده کنید. .PP لطفاً برای جزئیات بیشتر "INSPECTION" در \fBguestfs\fR\|(3) را بخوانید. .SS inspect\-get\-windows\-system\-hive .IX Subsection "inspect-get-windows-system-hive" .Vb 1 \& inspect\-get\-windows\-system\-hive root .Ve .PP مسیر هایو (فایل باینری رجیستری ویندوز) متناظر با HKLM\eSYSTEM را برمی‌گرداند. .PP این فراخوانی فرض می‌کند که مهمان ویندوز است و مهمان یک فایل هایو سیستم با نام صحیح دارد. اگر این‌طور نباشد، یک خطا برگردانده می‌شود. این فراخوانی بررسی نمی‌کند که هایو یک هایو معتبر رجیستری ویندوز است یا خیر. .PP می‌توانید از "hivex\-open" برای خواندن یا نوشتن در هایو استفاده کنید. .PP لطفاً برای جزئیات بیشتر "INSPECTION" در \fBguestfs\fR\|(3) را بخوانید. .SS inspect\-get\-windows\-systemroot .IX Subsection "inspect-get-windows-systemroot" .Vb 1 \& inspect\-get\-windows\-systemroot root .Ve .PP پوشه systemroot ویندوز مهمان بازرسی‌شده را برمی‌گرداند. پوشه systemroot یک مسیر دایرکتوری مانند \fI/WINDOWS\fR است. .PP این فراخوانی فرض می‌کند که مهمان ویندوز است و systemroot از طریق بازرسی قابل تعیین بوده است. اگر این‌طور نباشد، یک خطا برگردانده می‌شود. .PP لطفاً برای جزئیات بیشتر "INSPECTION" در \fBguestfs\fR\|(3) را بخوانید. .SS inspect\-is\-live .IX Subsection "inspect-is-live" .Vb 1 \& inspect\-is\-live root .Ve .PP این تابع منسوخ شده و همیشه \f(CW\*(C`false\*(C'\fR برمی‌گرداند. .PP لطفاً برای جزئیات بیشتر "INSPECTION" در \fBguestfs\fR\|(3) را بخوانید. .PP \&\fIاین تابع منسوخ شده است.\fR جایگزینی وجود ندارد. برای اطلاعات بیشتر به مستندات API در \&\fBguestfs\fR\|(3) مراجعه کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ شدن آن‌ها نشان می‌دهد که در استفاده صحیح از این توابع مشکلاتی وجود دارد. .SS inspect\-is\-multipart .IX Subsection "inspect-is-multipart" .Vb 1 \& inspect\-is\-multipart root .Ve .PP این تابع منسوخ شده و همیشه \f(CW\*(C`false\*(C'\fR برمی‌گرداند. .PP لطفاً برای جزئیات بیشتر "INSPECTION" در \fBguestfs\fR\|(3) را بخوانید. .PP \&\fIاین تابع منسوخ شده است.\fR جایگزینی وجود ندارد. برای اطلاعات بیشتر به مستندات API در \&\fBguestfs\fR\|(3) مراجعه کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ شدن آن‌ها نشان می‌دهد که در استفاده صحیح از این توابع مشکلاتی وجود دارد. .SS inspect\-is\-netinst .IX Subsection "inspect-is-netinst" .Vb 1 \& inspect\-is\-netinst root .Ve .PP این تابع منسوخ شده و همیشه \f(CW\*(C`false\*(C'\fR برمی‌گرداند. .PP لطفاً برای جزئیات بیشتر "INSPECTION" در \fBguestfs\fR\|(3) را بخوانید. .PP \&\fIاین تابع منسوخ شده است.\fR جایگزینی وجود ندارد. برای اطلاعات بیشتر به مستندات API در \&\fBguestfs\fR\|(3) مراجعه کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ شدن آن‌ها نشان می‌دهد که در استفاده صحیح از این توابع مشکلاتی وجود دارد. .SS inspect\-list\-applications .IX Subsection "inspect-list-applications" .Vb 1 \& inspect\-list\-applications root .Ve .PP فهرست برنامه‌های نصب‌شده در سیستم‌عامل را برمی‌گرداند. .PP \&\fIنکته:\fR این فراخوانی متفاوت از سایر بخش‌های API بازرسی کار می‌کند. شما باید قبل از فراخوانی این دستور، "inspect\-os" و سپس "inspect\-get\-mountpoints" را فراخوانی کرده و دیسک‌ها را سوار کنید. فهرست کردن برنامه‌ها عملیاتی به مراتب دشوارتر است که نیاز به دسترسی به کل فایل‌سیستم دارد. همچنین توجه داشته باشید که برخلاف سایر فراخوانی‌های "inspect\-get\-*" که فقط داده‌های کش‌شده در هندل libguestfs را برمی‌گردانند، این فراخوانی در واقع بخش‌هایی از فایل‌سیستم‌های سوارشده را در طول فراخوانی می‌خواند. .PP اگر کد بازرسی قادر به تعیین فهرست برنامه‌ها نباشد، یک فهرست خالی برمی‌گرداند. .PP ساختار برنامه شامل فیلدهای زیر است: .ie n .IP """app_name""" 4 .el .IP \f(CWapp_name\fR 4 .IX Item "app_name" نام برنامه. برای مهمان‌های لینوکس، این نام بسته است. .ie n .IP """app_display_name""" 4 .el .IP \f(CWapp_display_name\fR 4 .IX Item "app_display_name" نام نمایشی برنامه، که گاهی اوقات متناسب با زبان نصب سیستم‌عامل مهمان بومی‌سازی شده است. .Sp در صورت عدم دسترسی، این مقدار به صورت یک رشته خالی \f(CW""\fR برگردانده می‌شود. فراخوان‌هایی که نیاز به نمایش چیزی دارند می‌توانند به جای آن از \f(CW\*(C`app_name\*(C'\fR استفاده کنند. .ie n .IP """app_epoch""" 4 .el .IP \f(CWapp_epoch\fR 4 .IX Item "app_epoch" برای مدیران بسته‌ای که از epoch استفاده می‌کنند، این فیلد شامل epoch بسته است (یک عدد صحیح). در صورت عدم دسترسی، به صورت \f(CW0\fR برگردانده می‌شود. .ie n .IP """app_version""" 4 .el .IP \f(CWapp_version\fR 4 .IX Item "app_version" رشته نسخه برنامه یا بسته. در صورت عدم دسترسی، این مقدار به صورت یک رشته خالی \f(CW""\fR برگردانده می‌شود. .ie n .IP """app_release""" 4 .el .IP \f(CWapp_release\fR 4 .IX Item "app_release" رشته انتشار (release) برنامه یا بسته، برای مدیران بسته‌ای که از آن استفاده می‌کنند. در صورت عدم دسترسی، این مقدار به صورت یک رشته خالی \f(CW""\fR برگردانده می‌شود. .ie n .IP """app_install_path""" 4 .el .IP \f(CWapp_install_path\fR 4 .IX Item "app_install_path" مسیر نصب برنامه (در سیستم‌های عاملی مانند ویندوز که از مسیرهای نصب استفاده می‌کنند). این مسیر در قالبی است که توسط سیستم‌عامل مهمان استفاده می‌شود و یک مسیر libguestfs نیست. .Sp در صورت عدم دسترسی، این مقدار به صورت یک رشته خالی \f(CW""\fR برگردانده می‌شود. .ie n .IP """app_trans_path""" 4 .el .IP \f(CWapp_trans_path\fR 4 .IX Item "app_trans_path" مسیر نصب ترجمه‌شده به یک مسیر libguestfs. در صورت عدم دسترسی، این مقدار به صورت یک رشته خالی \f(CW""\fR برگردانده می‌شود. .ie n .IP """app_publisher""" 4 .el .IP \f(CWapp_publisher\fR 4 .IX Item "app_publisher" نام ناشر برنامه، برای مدیران بسته‌ای که از آن استفاده می‌کنند. در صورت عدم دسترسی، این مقدار به صورت یک رشته خالی \f(CW""\fR برگردانده می‌شود. .ie n .IP """app_url""" 4 .el .IP \f(CWapp_url\fR 4 .IX Item "app_url" نشانی وب (مثلاً URL بالادست) برنامه. در صورت عدم دسترسی، این مقدار به صورت یک رشته خالی \f(CW""\fR برگردانده می‌شود. .ie n .IP """app_source_package""" 4 .el .IP \f(CWapp_source_package\fR 4 .IX Item "app_source_package" برای سیستم‌های بسته‌بندی که از آن پشتیبانی می‌کنند، نام بسته منبع. در صورت عدم دسترسی، این مقدار به صورت یک رشته خالی \f(CW""\fR برگردانده می‌شود. .ie n .IP """app_summary""" 4 .el .IP \f(CWapp_summary\fR 4 .IX Item "app_summary" یک توضیح کوتاه (معمولاً یک‌خطی) از برنامه یا بسته. در صورت عدم دسترسی، این مقدار به صورت یک رشته خالی \f(CW""\fR برگردانده می‌شود. .ie n .IP """app_description""" 4 .el .IP \f(CWapp_description\fR 4 .IX Item "app_description" توضیحات طولانی‌تر از برنامه یا بسته. در صورت عدم دسترسی، این مقدار به صورت یک رشته خالی \f(CW""\fR برگردانده می‌شود. .PP لطفاً برای جزئیات بیشتر "INSPECTION" در \fBguestfs\fR\|(3) را بخوانید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "inspect\-list\-applications2" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ شدن آن‌ها نشان می‌دهد که در استفاده صحیح از این توابع مشکلاتی وجود دارد. .SS inspect\-list\-applications2 .IX Subsection "inspect-list-applications2" .Vb 1 \& inspect\-list\-applications2 root .Ve .PP فهرست برنامه‌های نصب‌شده در سیستم‌عامل را برمی‌گرداند. .PP \&\fIنکته:\fR این فراخوانی متفاوت از سایر بخش‌های API بازرسی کار می‌کند. شما باید قبل از فراخوانی این دستور، "inspect\-os" و سپس "inspect\-get\-mountpoints" را فراخوانی کرده و دیسک‌ها را سوار کنید. فهرست کردن برنامه‌ها عملیاتی به مراتب دشوارتر است که نیاز به دسترسی به کل فایل‌سیستم دارد. همچنین توجه داشته باشید که برخلاف سایر فراخوانی‌های "inspect\-get\-*" که فقط داده‌های کش‌شده در هندل libguestfs را برمی‌گردانند، این فراخوانی در واقع بخش‌هایی از فایل‌سیستم‌های سوارشده را در طول فراخوانی می‌خواند. .PP اگر کد بازرسی قادر به تعیین فهرست برنامه‌ها نباشد، یک فهرست خالی برمی‌گرداند. .PP ساختار برنامه شامل فیلدهای زیر است: .ie n .IP """app2_name""" 4 .el .IP \f(CWapp2_name\fR 4 .IX Item "app2_name" نام برنامه. برای مهمان‌های لینوکس، این نام بسته است. .ie n .IP """app2_display_name""" 4 .el .IP \f(CWapp2_display_name\fR 4 .IX Item "app2_display_name" نام نمایشی برنامه، که گاهی اوقات متناسب با زبان نصب سیستم‌عامل مهمان بومی‌سازی شده است. .Sp در صورت عدم دسترسی، این مقدار به صورت یک رشته خالی \f(CW""\fR برگردانده می‌شود. فراخوان‌هایی که نیاز به نمایش چیزی دارند می‌توانند به جای آن از \f(CW\*(C`app2_name\*(C'\fR استفاده کنند. .ie n .IP """app2_epoch""" 4 .el .IP \f(CWapp2_epoch\fR 4 .IX Item "app2_epoch" برای مدیران بسته‌ای که از epoch استفاده می‌کنند، این فیلد شامل epoch بسته است (یک عدد صحیح). در صورت عدم دسترسی، به صورت \f(CW0\fR برگردانده می‌شود. .ie n .IP """app2_version""" 4 .el .IP \f(CWapp2_version\fR 4 .IX Item "app2_version" رشته نسخه برنامه یا بسته. در صورت عدم دسترسی، این مقدار به صورت یک رشته خالی \f(CW""\fR برگردانده می‌شود. .ie n .IP """app2_release""" 4 .el .IP \f(CWapp2_release\fR 4 .IX Item "app2_release" رشته انتشار (release) برنامه یا بسته، برای مدیران بسته‌ای که از آن استفاده می‌کنند. در صورت عدم دسترسی، این مقدار به صورت یک رشته خالی \f(CW""\fR برگردانده می‌شود. .ie n .IP """app2_arch""" 4 .el .IP \f(CWapp2_arch\fR 4 .IX Item "app2_arch" رشته معماری برنامه یا بسته، برای مدیران بسته‌ای که از آن استفاده می‌کنند. در صورت عدم دسترسی، این مقدار به صورت یک رشته خالی \f(CW""\fR برگردانده می‌شود. .ie n .IP """app2_install_path""" 4 .el .IP \f(CWapp2_install_path\fR 4 .IX Item "app2_install_path" مسیر نصب برنامه (در سیستم‌های عاملی مانند ویندوز که از مسیرهای نصب استفاده می‌کنند). این مسیر در قالبی است که توسط سیستم‌عامل مهمان استفاده می‌شود و یک مسیر libguestfs نیست. .Sp در صورت عدم دسترسی، این مقدار به صورت یک رشته خالی \f(CW""\fR برگردانده می‌شود. .ie n .IP """app2_trans_path""" 4 .el .IP \f(CWapp2_trans_path\fR 4 .IX Item "app2_trans_path" مسیر نصب ترجمه‌شده به یک مسیر libguestfs. در صورت عدم دسترسی، این مقدار به صورت یک رشته خالی \f(CW""\fR برگردانده می‌شود. .ie n .IP """app2_publisher""" 4 .el .IP \f(CWapp2_publisher\fR 4 .IX Item "app2_publisher" نام ناشر برنامه، برای مدیران بسته‌ای که از آن استفاده می‌کنند. در صورت عدم دسترسی، این مقدار به صورت یک رشته خالی \f(CW""\fR برگردانده می‌شود. .ie n .IP """app2_url""" 4 .el .IP \f(CWapp2_url\fR 4 .IX Item "app2_url" نشانی وب (مثلاً URL بالادست) برنامه. در صورت عدم دسترسی، این مقدار به صورت یک رشته خالی \f(CW""\fR برگردانده می‌شود. .ie n .IP """app2_source_package""" 4 .el .IP \f(CWapp2_source_package\fR 4 .IX Item "app2_source_package" برای سیستم‌های بسته‌بندی که از آن پشتیبانی می‌کنند، نام بسته منبع. در صورت عدم دسترسی، این مقدار به صورت یک رشته خالی \f(CW""\fR برگردانده می‌شود. .ie n .IP """app2_summary""" 4 .el .IP \f(CWapp2_summary\fR 4 .IX Item "app2_summary" یک توضیح کوتاه (معمولاً یک‌خطی) از برنامه یا بسته. در صورت عدم دسترسی، این مقدار به صورت یک رشته خالی \f(CW""\fR برگردانده می‌شود. .ie n .IP """app2_description""" 4 .el .IP \f(CWapp2_description\fR 4 .IX Item "app2_description" توضیحات طولانی‌تر از برنامه یا بسته. در صورت عدم دسترسی، این مقدار به صورت یک رشته خالی \f(CW""\fR برگردانده می‌شود. .ie n .IP """app2_class""" 4 .el .IP \f(CWapp2_class\fR 4 .IX Item "app2_class" طبقه‌بندی یا کاربرد اصلی این برنامه. در حال حاضر تنها طبقه‌بندی تعریف‌شده \f(CW"antivirus"\fR برای نرم‌افزارهای ضدویروس ویندوز است. در صورت ناشناخته بودن، این مقدار به صورت یک رشته خالی \f(CW""\fR برگردانده می‌شود. .PP لطفاً برای جزئیات بیشتر "INSPECTION" در \fBguestfs\fR\|(3) را بخوانید. .SS inspect\-os .IX Subsection "inspect-os" .Vb 1 \& inspect\-os .Ve .PP این تابع از سایر توابع libguestfs و روش‌های اکتشافی (heuristics) خاصی برای بازرسی دیسک(ها) (معمولاً دیسک‌های متعلق به یک ماشین مجازی) جهت یافتن سیستم‌عامل‌ها استفاده می‌کند. .PP اگر هیچ سیستم‌عاملی پیدا نشود، فهرست بازگردانده‌شده خالی خواهد بود. .PP اگر یک سیستم‌عامل پیدا شود، این تابع فهرستی با یک عنصر بازمی‌گرداند که نام فایل‌سیستم ریشه (root) آن سیستم‌عامل است. همچنین امکان دارد این تابع فهرستی شامل بیش از یک عنصر بازگرداند که نشان‌دهنده یک ماشین مجازی با بوت دوگانه (dual\-boot) یا چندگانه (multi\-boot) است و هر عنصر آن فایل‌سیستم ریشه یکی از سیستم‌عامل‌ها خواهد بود. .PP می‌توانید رشته(های) ریشه بازگردانده‌شده را به سایر توابع "inspect\-get\-*" ارسال کنید تا اطلاعات بیشتری درباره هر سیستم‌عامل، مانند نام و نسخه، دریافت نمایید. .PP این تابع از سایر قابلیت‌های libguestfs مانند "mount\-ro" و "umount\-all" به منظور سوار کردن و پیاده کردن فایل‌سیستم‌ها و بررسی محتویات استفاده می‌کند. این تابع باید زمانی فراخوانی شود که در حال حاضر هیچ دیسکی سوار نشده باشد. این تابع همچنین ممکن است از Augeas استفاده کند، بنابراین هر هندل موجود Augeas بسته خواهد شد. .PP این تابع نمی‌تواند دیسک‌های رمزگذاری‌شده را رمزگشایی کند. در صورت رمزگذاری بودن دیسک، فراخواننده باید ابتدا این کار را (با ارائه کلیدهای لازم) انجام دهد. .PP لطفاً برای جزئیات بیشتر بخش "INSPECTION" در \fBguestfs\fR\|(3) را مطالعه کنید. .PP همچنین "list\-filesystems" را ببینید. .SS is\-blockdev .IX Subsection "is-blockdev" .SS is\-blockdev\-opts .IX Subsection "is-blockdev-opts" .Vb 1 \& is\-blockdev path [followsymlinks:true|false] .Ve .PP این دستور تنها در صورتی مقدار \f(CW\*(C`true\*(C'\fR را بازمی‌گرداند که یک دستگاه بلوکی (block device) با نام \f(CW\*(C`path\*(C'\fR داده‌شده وجود داشته باشد. .PP اگر فلگ اختیاری \f(CW\*(C`followsymlinks\*(C'\fR برابر با true باشد، آن‌گاه یک پیوند نمادین (یا زنجیره‌ای از پیوندهای نمادین) که به یک دستگاه بلوکی ختم شود نیز باعث می‌شود تابع مقدار true را بازگرداند. .PP این فراخوانی تنها فایل‌های درون فایل‌سیستم میهمان را بررسی می‌کند. پارتیشن‌ها و دستگاه‌های بلوکی Libguestfs (مانند \fI/dev/sda\fR) نمی‌توانند به عنوان پارامتر \f(CW\*(C`path\*(C'\fR در این فراخوانی استفاده شوند. .PP همچنین "stat" را ببینید. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .SS is\-chardev .IX Subsection "is-chardev" .SS is\-chardev\-opts .IX Subsection "is-chardev-opts" .Vb 1 \& is\-chardev path [followsymlinks:true|false] .Ve .PP این دستور تنها در صورتی مقدار \f(CW\*(C`true\*(C'\fR را بازمی‌گرداند که یک دستگاه نویسه‌ای (character device) با نام \f(CW\*(C`path\*(C'\fR داده‌شده وجود داشته باشد. .PP اگر فلگ اختیاری \f(CW\*(C`followsymlinks\*(C'\fR برابر با true باشد، آن‌گاه یک پیوند نمادین (یا زنجیره‌ای از پیوندهای نمادین) که به یک دستگاه نویسه‌ای ختم شود نیز باعث می‌شود تابع مقدار true را بازگرداند. .PP همچنین "stat" را ببینید. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .SS is\-config .IX Subsection "is-config" .Vb 1 \& is\-config .Ve .PP این دستور تنها در صورتی مقدار true را بازمی‌گرداند که این هندل در حال پیکربندی باشد (در وضعیت \f(CW\*(C`CONFIG\*(C'\fR). .PP برای اطلاعات بیشتر درباره وضعیت‌ها، \fBguestfs\fR\|(3) را ببینید. .SS is\-dir .IX Subsection "is-dir" .SS is\-dir\-opts .IX Subsection "is-dir-opts" .Vb 1 \& is\-dir path [followsymlinks:true|false] .Ve .PP این دستور تنها در صورتی مقدار \f(CW\*(C`true\*(C'\fR را بازمی‌گرداند که دایرکتوری‌ای با نام \f(CW\*(C`path\*(C'\fR داده‌شده وجود داشته باشد. توجه داشته باشید که برای اشیاء دیگر مانند فایل‌ها مقدار false را بازمی‌گرداند. .PP اگر فلگ اختیاری \f(CW\*(C`followsymlinks\*(C'\fR برابر با true باشد، آن‌گاه یک پیوند نمادین (یا زنجیره‌ای از پیوندهای نمادین) که به یک دایرکتوری ختم شود نیز باعث می‌شود تابع مقدار true را بازگرداند. .PP همچنین "stat" را ببینید. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .SS is\-fifo .IX Subsection "is-fifo" .SS is\-fifo\-opts .IX Subsection "is-fifo-opts" .Vb 1 \& is\-fifo path [followsymlinks:true|false] .Ve .PP این دستور تنها در صورتی مقدار \f(CW\*(C`true\*(C'\fR را بازمی‌گرداند که یک FIFO (لوله نام‌گذاری‌شده) با نام \f(CW\*(C`path\*(C'\fR داده‌شده وجود داشته باشد. .PP اگر فلگ اختیاری \f(CW\*(C`followsymlinks\*(C'\fR برابر با true باشد، آن‌گاه یک پیوند نمادین (یا زنجیره‌ای از پیوندهای نمادین) که به یک FIFO ختم شود نیز باعث می‌شود تابع مقدار true را بازگرداند. .PP همچنین "stat" را ببینید. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .SS is\-file .IX Subsection "is-file" .SS is\-file\-opts .IX Subsection "is-file-opts" .Vb 1 \& is\-file path [followsymlinks:true|false] .Ve .PP این دستور تنها در صورتی مقدار \f(CW\*(C`true\*(C'\fR را بازمی‌گرداند که یک فایل معمولی با نام \f(CW\*(C`path\*(C'\fR داده‌شده وجود داشته باشد. توجه داشته باشید که برای اشیاء دیگر مانند دایرکتوری‌ها مقدار false را بازمی‌گرداند. .PP اگر فلگ اختیاری \f(CW\*(C`followsymlinks\*(C'\fR برابر با true باشد، آن‌گاه یک پیوند نمادین (یا زنجیره‌ای از پیوندهای نمادین) که به یک فایل ختم شود نیز باعث می‌شود تابع مقدار true را بازگرداند. .PP همچنین "stat" را ببینید. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .SS is\-lv .IX Subsection "is-lv" .Vb 1 \& is\-lv mountable .Ve .PP این دستور بررسی می‌کند که آیا \f(CW\*(C`mountable\*(C'\fR یک حجم منطقی (logical volume) است یا خیر، و تنها در صورتی مقدار true را بازمی‌گرداند که چنین باشد. .SS is\-socket .IX Subsection "is-socket" .SS is\-socket\-opts .IX Subsection "is-socket-opts" .Vb 1 \& is\-socket path [followsymlinks:true|false] .Ve .PP این دستور تنها در صورتی مقدار \f(CW\*(C`true\*(C'\fR را بازمی‌گرداند که یک سوکت دامنه یونیکس (Unix domain socket) با نام \f(CW\*(C`path\*(C'\fR داده‌شده وجود داشته باشد. .PP اگر فلگ اختیاری \f(CW\*(C`followsymlinks\*(C'\fR برابر با true باشد، آن‌گاه یک پیوند نمادین (یا زنجیره‌ای از پیوندهای نمادین) که به یک سوکت ختم شود نیز باعث می‌شود تابع مقدار true را بازگرداند. .PP همچنین "stat" را ببینید. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .SS is\-symlink .IX Subsection "is-symlink" .Vb 1 \& is\-symlink path .Ve .PP این دستور تنها در صورتی مقدار \f(CW\*(C`true\*(C'\fR را بازمی‌گرداند که یک پیوند نمادین با نام \f(CW\*(C`path\*(C'\fR داده‌شده وجود داشته باشد. .PP همچنین "stat" را ببینید. .SS is\-whole\-device .IX Subsection "is-whole-device" .Vb 1 \& is\-whole\-device device .Ve .PP این دستور تنها در صورتی مقدار \f(CW\*(C`true\*(C'\fR را بازمی‌گرداند که \f(CW\*(C`device\*(C'\fR به یک دستگاه بلوکی کامل اشاره داشته باشد؛ یعنی پارتیشن یا دستگاه منطقی نباشد. .SS is\-zero .IX Subsection "is-zero" .Vb 1 \& is\-zero path .Ve .PP این دستور تنها در صورتی مقدار true را بازمی‌گرداند که فایل وجود داشته باشد و فایل خالی باشد یا تمام بایت‌های آن صفر باشد. .SS is\-zero\-device .IX Subsection "is-zero-device" .Vb 1 \& is\-zero\-device device .Ve .PP این دستور تنها در صورتی مقدار true را بازمی‌گرداند که دستگاه وجود داشته باشد و شامل تمام بایت‌های صفر باشد. .PP توجه داشته باشید که برای دستگاه‌های بزرگ اجرای این دستور ممکن است زمان زیادی ببرد. .SS isoinfo .IX Subsection "isoinfo" .Vb 1 \& isoinfo isofile .Ve .PP این دستور مشابه "isoinfo\-device" است با این تفاوت که برای فایل‌های ISO قرارگرفته درون یک فایل‌سیستم سوارشده دیگر کار می‌کند. توجه داشته باشید در حالت متداول که فایل ISO را به عنوان دستگاه libguestfs اضافه کرده‌اید، نباید این دستور را فراخوانی کنید؛ در عوض باید "isoinfo\-device" را فراخوانی نمایید. .SS isoinfo\-device .IX Subsection "isoinfo-device" .Vb 1 \& isoinfo\-device device .Ve .PP پارامتر \f(CW\*(C`device\*(C'\fR یک دستگاه ISO است. این دستور ساختاری از اطلاعات خوانده‌شده از توصیف‌گر حجم اصلی (primary volume descriptor - معادل ابربلوک در ISO) دستگاه را بازمی‌گرداند. .PP معمولاً برای تحلیل فایل‌های ISO استفاده از دستور \fBisoinfo\fR\|(1) با گزینه \fI\-d\fR روی میزبان به جای استفاده از libguestfs کارآمدتر است. .PP برای اطلاعات بیشتر درباره فیلدهای توصیف‌گر حجم اصلی، نشانی زیر را ببینید: https://wiki.osdev.org/ISO_9660#The_Primary_Volume_Descriptor .SS journal\-close .IX Subsection "journal-close" .Vb 1 \& journal\-close .Ve .PP هندل ژورنال را می‌بندد. .PP این دستور به قابلیت \f(CW\*(C`journal\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS journal\-get .IX Subsection "journal-get" .Vb 1 \& journal\-get .Ve .PP مدخل فعلی ژورنال را می‌خواند. این دستور تمام فیلدهای ژورنال را به صورت مجموعه‌ای از جفت‌های \f(CW\*(C`(attrname, attrval)\*(C'\fR بازمی‌گرداند. \f(CW\*(C`attrname\*(C'\fR نام فیلد (یک رشته) است. .PP مقدار \f(CW\*(C`attrval\*(C'\fR مقدار فیلد (یک باینری بلاب، اغلب ولی نه همیشه یک رشته) است. لطفاً توجه داشته باشید که \f(CW\*(C`attrval\*(C'\fR یک آرایه بایتی است، نه یک رشته C با پایان \e0. .PP طول داده ممکن است به آستانه داده محدود (کوتاه) شود (ببینید: "journal\-set\-data\-threshold" و "journal\-get\-data\-threshold"). .PP اگر آستانه داده را روی نامحدود (\f(CW0\fR) تنظیم کنید، آن‌گاه این فراخوانی می‌تواند مدخل ژورنال با هر اندازه‌ای را بخواند، یعنی توسط پروتکل libguestfs محدود نمی‌شود. .PP این دستور به قابلیت \f(CW\*(C`journal\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS journal\-get\-data\-threshold .IX Subsection "journal-get-data-threshold" .Vb 1 \& journal\-get\-data\-threshold .Ve .PP آستانه داده فعلی را برای خواندن مدخل‌های ژورنال دریافت می‌کند. این یک راهنمایی برای ژورنال است که هنگام خواندن فیلدهای داده می‌تواند آن‌ها را به این اندازه کوتاه کند (همچنین توجه داشته باشید که ممکن است آن‌ها را کوتاه نکند). اگر این تابع مقدار \f(CW0\fR را بازگرداند، آستانه نامحدود است. .PP همچنین "journal\-set\-data\-threshold" را ببینید. .PP این دستور به قابلیت \f(CW\*(C`journal\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS journal\-get\-realtime\-usec .IX Subsection "journal-get-realtime-usec" .Vb 1 \& journal\-get\-realtime\-usec .Ve .PP مهرزمانی بیدرنگ (ساعت واقعی) مدخل فعلی ژورنال را دریافت می‌کند. .PP این دستور به قابلیت \f(CW\*(C`journal\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS journal\-next .IX Subsection "journal-next" .Vb 1 \& journal\-next .Ve .PP به مدخل بعدی ژورنال می‌رود. پس از باز کردن هندل، قبل از این که بتوانید داده‌ها را بخوانید، باید حداقل یک بار این تابع را فراخوانی کنید. .PP مقدار بولی بازگردانده‌شده مشخص می‌کند که آیا رکوردهای بیشتری در ژورنال برای خواندن وجود دارد یا خیر. مقدار \f(CW\*(C`true\*(C'\fR به این معنی است که می‌توانید رکورد بعدی را بخوانید (مثلاً با استفاده از "journal\-get")، و \f(CW\*(C`false\*(C'\fR یعنی به انتهای ژورنال رسیده‌اید. .PP این دستور به قابلیت \f(CW\*(C`journal\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS journal\-open .IX Subsection "journal-open" .Vb 1 \& journal\-open directory .Ve .PP ژورنال systemd واقع در \fIdirectory\fR را باز می‌کند. هر هندل ژورنال که قبلاً باز شده باشد بسته می‌شود. .PP محتویات ژورنال را می‌توان با استفاده از "journal\-next" و "journal\-get" خواند. .PP پس از پایان استفاده از ژورنال، باید با فراخوانی "journal\-close" هندل را ببندید. .PP این دستور به قابلیت \f(CW\*(C`journal\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS journal\-set\-data\-threshold .IX Subsection "journal-set-data-threshold" .Vb 1 \& journal\-set\-data\-threshold threshold .Ve .PP آستانه داده را برای خواندن مدخل‌های ژورنال تنظیم می‌کند. این یک راهنمایی برای ژورنال است که هنگام خواندن فیلدهای داده می‌تواند آن‌ها را به این اندازه کوتاه کند (همچنین توجه داشته باشید که ممکن است آن‌ها را کوتاه نکند). اگر این مقدار را روی \f(CW0\fR تنظیم کنید، آستانه نامحدود خواهد بود. .PP همچنین "journal\-get\-data\-threshold" را ببینید. .PP این دستور به قابلیت \f(CW\*(C`journal\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS journal\-skip .IX Subsection "journal-skip" .Vb 1 \& journal\-skip skip .Ve .PP در ژورنال به جلو (\f(CW\*(C`skip ≥ 0\*(C'\fR) یا به عقب (\f(CW\*(C`skip < 0\*(C'\fR) پرش می‌کند. .PP تعداد مدخل‌هایی که واقعاً پرش شده‌اند بازگردانده می‌شود (توجه کنید \f(CW\*(C`rskip\ ≥\ 0\*(C'\fR). اگر این مقدار با قدر مطلق پارامتر پرش (\f(CW\*(C`|skip|\*(C'\fR) که ارسال کرده‌اید برابر نباشد، به این معنی است که به انتهای ژورنال یا ابتدای آن رسیده‌اید. .PP این دستور به قابلیت \f(CW\*(C`journal\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS kill\-subprocess .IX Subsection "kill-subprocess" .Vb 1 \& kill\-subprocess .Ve .PP هایپروایزر را متوقف می‌کند (می‌کشد). .PP این دستور را فراخوانی نکنید. در عوض "shutdown" را ببینید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "shutdown" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .SS launch .IX Subsection "launch" .SS run .IX Subsection "run" .Vb 1 \& launch .Ve .PP باید این دستور را پس از پیکربندی هندل (مثلاً افزودن درایوها) اما قبل از انجام هرگونه عملیاتی فراخوانی کنید. .PP دستور "launch" را دو بار روی یک هندل یکسان فراخوانی نکنید. اگرچه این کار (به دلایل تاریخی) خطایی تولید نمی‌کند، رفتار دقیق هنگام انجام این کار به خوبی تعریف نشده است. ایجاد هندل‌ها هزینه بسیار کمی دارد، بنابراین برای هر بار راه‌اندازی یک هندل جدید ایجاد کنید. .SS lchown .IX Subsection "lchown" .Vb 1 \& lchown owner group path .Ve .PP مالک فایل را به \f(CW\*(C`owner\*(C'\fR و گروه آن را به \f(CW\*(C`group\*(C'\fR تغییر می‌دهد. این دستور مانند "chown" عمل می‌کند، اما اگر \f(CW\*(C`path\*(C'\fR یک پیوند نمادین باشد، خود پیوند تغییر می‌کند نه هدف پیوند. .PP تنها uid و gid عددی پشتیبانی می‌شوند. اگر می‌خواهید از نام‌ها استفاده کنید، باید خودتان فایل گذرواژه را پیدا و تجزیه کنید (پشتیبانی Augeas این کار را نسبتاً آسان می‌کند). .SS ldmtool\-create\-all .IX Subsection "ldmtool-create-all" .Vb 1 \& ldmtool\-create\-all .Ve .PP این تابع تمام دستگاه‌های بلوکی را برای یافتن حجم‌ها و پارتیشن‌های دیسک پویا (dynamic disk) ویندوز پویش می‌کند و برای هر موردی که یافت شود دستگاه‌هایی ایجاد می‌نماید. .PP برای بازگرداندن تمام دستگاه‌ها، "list\-ldm\-volumes" و "list\-ldm\-partitions" را فراخوانی کنید. .PP توجه داشته باشید که معمولاً \fBنیازی نیست\fR این دستور را به صراحت فراخوانی کنید، زیرا این کار به طور خودکار در زمان "launch" انجام می‌شود. .PP این دستور به قابلیت \f(CW\*(C`ldm\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS ldmtool\-diskgroup\-disks .IX Subsection "ldmtool-diskgroup-disks" .Vb 1 \& ldmtool\-diskgroup\-disks diskgroup .Ve .PP دیسک‌های موجود در یک گروه دیسک پویای ویندوز را بازمی‌گرداند. پارامتر \f(CW\*(C`diskgroup\*(C'\fR باید GUID یک گروه دیسک باشد، یعنی یک عنصر از فهرستی که توسط "ldmtool\-scan" بازگردانده شده است. .PP این دستور به قابلیت \f(CW\*(C`ldm\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS ldmtool\-diskgroup\-name .IX Subsection "ldmtool-diskgroup-name" .Vb 1 \& ldmtool\-diskgroup\-name diskgroup .Ve .PP نام یک گروه دیسک پویای ویندوز را بازمی‌گرداند. پارامتر \f(CW\*(C`diskgroup\*(C'\fR باید GUID یک گروه دیسک باشد، یعنی یک عنصر از فهرستی که توسط "ldmtool\-scan" بازگردانده شده است. .PP این دستور به قابلیت \f(CW\*(C`ldm\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS ldmtool\-diskgroup\-volumes .IX Subsection "ldmtool-diskgroup-volumes" .Vb 1 \& ldmtool\-diskgroup\-volumes diskgroup .Ve .PP حجم‌های موجود در یک گروه دیسک پویای ویندوز را بازمی‌گرداند. پارامتر \f(CW\*(C`diskgroup\*(C'\fR باید GUID یک گروه دیسک باشد، یعنی یک عنصر از فهرستی که توسط "ldmtool\-scan" بازگردانده شده است. .PP این دستور به قابلیت \f(CW\*(C`ldm\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS ldmtool\-remove\-all .IX Subsection "ldmtool-remove-all" .Vb 1 \& ldmtool\-remove\-all .Ve .PP این دستور در اصل نقطه مقابل "ldmtool\-create\-all" است. این دستور نگاشت‌های device mapper را برای تمام حجم‌های دیسک پویای ویندوز حذف می‌کند. .PP این دستور به قابلیت \f(CW\*(C`ldm\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS ldmtool\-scan .IX Subsection "ldmtool-scan" .Vb 1 \& ldmtool\-scan .Ve .PP این تابع دیسک‌های پویای ویندوز را پویش می‌کند. این تابع فهرستی از شناسه‌ها (GUIDها) را برای تمام گروه‌های دیسکِ پیدا شده بازمی‌گرداند. این شناسه‌ها را می‌توان به سایر توابع "ldmtool\-*" ارسال کرد. .PP این تابع تمام دستگاه‌های بلوکی را پویش می‌کند. برای پویش زیرمجموعه‌ای از دستگاه‌های بلوکی، به جای آن "ldmtool\-scan\-devices" را فراخوانی کنید. .PP این دستور به قابلیت \f(CW\*(C`ldm\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS ldmtool\-scan\-devices .IX Subsection "ldmtool-scan-devices" .Vb 1 \& ldmtool\-scan\-devices \*(Aqdevices ...\*(Aq .Ve .PP این تابع دیسک‌های پویای ویندوز را پویش می‌کند. این تابع فهرستی از شناسه‌ها (GUIDها) را برای تمام گروه‌های دیسکِ پیدا شده بازمی‌گرداند. این شناسه‌ها را می‌توان به سایر توابع "ldmtool\-*" ارسال کرد. .PP پارامتر \f(CW\*(C`devices\*(C'\fR فهرستی از دستگاه‌های بلوکی است که پویش می‌شوند. اگر این فهرست خالی باشد، تمام دستگاه‌های بلوکی پویش می‌شوند. .PP این دستور به قابلیت \f(CW\*(C`ldm\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS ldmtool\-volume\-hint .IX Subsection "ldmtool-volume-hint" .Vb 1 \& ldmtool\-volume\-hint diskgroup volume .Ve .PP فیلد hint حجم با نام \f(CW\*(C`volume\*(C'\fR را در گروه دیسک با GUID \f(CW\*(C`diskgroup\*(C'\fR بازمی‌گرداند. این فیلد ممکن است تعریف نشده باشد، که در این صورت رشته خالی بازگردانده می‌شود. فیلد hint اغلب، هرچند نه همیشه، نام یک درایو ویندوز است، مانند \f(CW\*(C`E:\*(C'\fR. .PP این دستور به قابلیت \f(CW\*(C`ldm\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS ldmtool\-volume\-partitions .IX Subsection "ldmtool-volume-partitions" .Vb 1 \& ldmtool\-volume\-partitions diskgroup volume .Ve .PP فهرست پارتیشن‌های موجود در حجم با نام \f(CW\*(C`volume\*(C'\fR در گروه دیسک با GUID \f(CW\*(C`diskgroup\*(C'\fR را بازمی‌گرداند. .PP این دستور به قابلیت \f(CW\*(C`ldm\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS ldmtool\-volume\-type .IX Subsection "ldmtool-volume-type" .Vb 1 \& ldmtool\-volume\-type diskgroup volume .Ve .PP نوع حجم با نام \f(CW\*(C`volume\*(C'\fR را در گروه دیسک با GUID \f(CW\*(C`diskgroup\*(C'\fR بازمی‌گرداند. .PP انواع ممکن حجم که می‌توانند در اینجا بازگردانده شوند عبارتند از: \&\f(CW\*(C`simple\*(C'\fR، \f(CW\*(C`spanned\*(C'\fR، \f(CW\*(C`striped\*(C'\fR، \f(CW\*(C`mirrored\*(C'\fR، \f(CW\*(C`raid5\*(C'\fR. انواع دیگری نیز ممکن است بازگردانده شوند. .PP این دستور به قابلیت \f(CW\*(C`ldm\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS lgetxattr .IX Subsection "lgetxattr" .Vb 1 \& lgetxattr path name .Ve .PP یک صفت گسترش‌یافته منفرد با نام \f(CW\*(C`name\*(C'\fR را از فایل \f(CW\*(C`path\*(C'\fR دریافت می‌کند. اگر \f(CW\*(C`path\*(C'\fR یک پیوند نمادین باشد، این فراخوانی صفت گسترش‌یافته را از خود پیوند نمادین بازمی‌گرداند. .PP معمولاً بهتر است همه صفت‌های گسترش‌یافته یک فایل را به یک‌باره با فراخوانی "getxattrs" دریافت کنید. با این حال برخی پیاده‌سازی‌های فایل‌سیستم لینوکس دارای اشکال هستند و راهی برای فهرست کردن صفت‌ها ارائه نمی‌دهند. برای این فایل‌سیستم‌ها (به ویژه ntfs\-3g) باید نام‌های صفت‌های گسترش‌یافته مورد نظر خود را از قبل بدانید و این تابع را فراخوانی کنید. .PP مقادیر صفت‌های گسترش‌یافته بلاب‌هایی از داده‌های باینری هستند. اگر صفت گسترش‌یافته‌ای با نام \f(CW\*(C`name\*(C'\fR وجود نداشته باشد، این تابع خطا بازمی‌گرداند. .PP همچنین ببینید: "lgetxattrs"، "getxattr"، \fBattr\fR\|(5). .PP این دستور به قابلیت \f(CW\*(C`linuxxattrs\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS lgetxattrs .IX Subsection "lgetxattrs" .Vb 1 \& lgetxattrs path .Ve .PP این دستور مشابه "getxattrs" است، اما اگر \f(CW\*(C`path\*(C'\fR یک پیوند نمادین باشد، صفت‌های گسترش‌یافته خودِ پیوند را بازمی‌گرداند. .PP این دستور به قابلیت \f(CW\*(C`linuxxattrs\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS list\-9p .IX Subsection "list-9p" .Vb 1 \& list\-9p .Ve .PP این فراخوانی هیچ کاری انجام نمی‌دهد و یک خطا بازمی‌گرداند. .PP \&\fIاین تابع منسوخ شده است.\fR هیچ جایگزینی وجود ندارد. برای اطلاعات بیشتر به مستندات API در \fBguestfs\fR\|(3) مراجعه کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .SS list\-devices .IX Subsection "list-devices" .Vb 1 \& list\-devices .Ve .PP تمام دستگاه‌های بلوکی را فهرست می‌کند. .PP نام‌های کامل دستگاه‌های بلوکی بازگردانده می‌شوند، مانند \fI/dev/sda\fR. .PP همچنین "list\-filesystems" را ببینید. .SS list\-disk\-labels .IX Subsection "list-disk-labels" .Vb 1 \& list\-disk\-labels .Ve .PP اگر درایوها را با استفاده از پارامتر اختیاری \f(CW\*(C`label\*(C'\fR در "add\-drive\-opts" اضافه کنید، می‌توانید از این فراخوانی برای نگاشت میان برچسب‌های دیسک و نام‌های خام دستگاه‌های بلوکی و پارتیشن‌ها (مانند \fI/dev/sda\fR و \fI/dev/sda1\fR) استفاده کنید. .PP این دستور یک جدول درهم‌سازی (hashtable) بازمی‌گرداند که کلیدهای آن برچسب‌های دیسک (\fIبدون\fR پیشوند \fI/dev/disk/guestfs\fR) و مقادیر آن نام‌های خام و کامل دستگاه‌های بلوکی و پارتیشن‌ها هستند (مانند \fI/dev/sda\fR و \fI/dev/sda1\fR). .SS list\-dm\-devices .IX Subsection "list-dm-devices" .Vb 1 \& list\-dm\-devices .Ve .PP تمام دستگاه‌های device mapper را فهرست می‌کند. .PP فهرست بازگردانده‌شده شامل دستگاه‌های \fI/dev/mapper/*\fR است، مانند مواردی که با فراخوانی قبلی "luks\-open" ایجاد شده‌اند. .PP دستگاه‌های device mapper که مربوط به حجم‌های منطقی هستند در این فهرست بازگردانده \fIنمی‌شوند\fR. اگر می‌خواهید حجم‌های منطقی را فهرست کنید، "lvs" را فراخوانی نمایید. .SS list\-filesystems .IX Subsection "list-filesystems" .Vb 1 \& list\-filesystems .Ve .PP این دستور بازرسی به دنبال فایل‌سیستم‌ها روی پارتیشن‌ها، دستگاه‌های بلوکی و حجم‌های منطقی می‌گردد و فهرستی از رشته‌های \f(CW\*(C`mountables\*(C'\fR حاوی فایل‌سیستم‌ها و نوع آن‌ها بازمی‌گرداند. .PP مقدار بازگردانده‌شده یک هش است که کلیدهای آن دستگاه‌های حاوی فایل‌سیستم و مقادیر آن نوع فایل‌سیستم‌ها هستند. برای مثال: .PP .Vb 4 \& "/dev/sda1" => "ntfs" \& "/dev/sda2" => "ext2" \& "/dev/vg_guest/lv_root" => "ext4" \& "/dev/vg_guest/lv_swap" => "swap" .Ve .PP کلید لزوماً یک دستگاه بلوکی نیست؛ همچنین می‌تواند یک رشته مبهم ‘قابل سوار شدن’ (mountable) باشد که می‌توان آن را به "mount" ارسال کرد. .PP مقدار می‌تواند مقدار ویژه "unknown" را داشته باشد، به این معنی که محتوای دستگاه نامشخص یا خالی است. "swap" به معنی پارتیشن سواپ لینوکس است. .PP در libguestfs ≤ 1.36 این دستور سایر دستورات libguestfs را اجرا می‌کرد، که ممکن بود شامل "mount" و "umount" باشد، بنابراین باید این دستور را بلافاصله پس از راه‌اندازی و تنها زمانی که هیچ چیز دیگری سوار نشده بود استفاده می‌کردید. این محدودیت در libguestfs ≥ 1.38 برداشته شده است. .PP همه فایل‌سیستم‌های بازگردانده‌شده قابل سوار شدن نخواهند بود. به ویژه پارتیشن‌های سواپ در این فهرست بازگردانده می‌شوند. همچنین این دستور بررسی نمی‌کند که آیا هر فایل‌سیستم پیدا شده معتبر و قابل سوار شدن است یا خیر، و برخی فایل‌سیستم‌ها ممکن است قابل سوار شدن باشند اما به گزینه‌های خاصی نیاز داشته باشند. ممکن است فایل‌سیستم‌ها همگی متعلق به یک سیستم‌عامل منطقی واحد نباشند (از "inspect\-os" برای جستجوی سیستم‌عامل‌ها استفاده کنید). .SS list\-ldm\-partitions .IX Subsection "list-ldm-partitions" .Vb 1 \& list\-ldm\-partitions .Ve .PP این تابع تمام پارتیشن‌های دیسک پویای ویندوز را که در زمان راه‌اندازی پیدا شده‌اند بازمی‌گرداند. این دستور فهرستی از نام دستگاه‌ها را بازمی‌گرداند. .PP این دستور به قابلیت \f(CW\*(C`ldm\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS list\-ldm\-volumes .IX Subsection "list-ldm-volumes" .Vb 1 \& list\-ldm\-volumes .Ve .PP این تابع تمام حجم‌های دیسک پویای ویندوز را که در زمان راه‌اندازی پیدا شده‌اند بازمی‌گرداند. این دستور فهرستی از نام دستگاه‌ها را بازمی‌گرداند. .PP این دستور به قابلیت \f(CW\*(C`ldm\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS list\-md\-devices .IX Subsection "list-md-devices" .Vb 1 \& list\-md\-devices .Ve .PP تمام دستگاه‌های md لینوکس را فهرست می‌کند. .SS list\-partitions .IX Subsection "list-partitions" .Vb 1 \& list\-partitions .Ve .PP تمام پارتیشن‌های شناسایی‌شده روی تمام دستگاه‌های بلوکی را فهرست می‌کند. .PP نام‌های کامل دستگاه‌های پارتیشن بازگردانده می‌شوند، مانند \fI/dev/sda1\fR. .PP این دستور حجم‌های منطقی را بازنمی‌گرداند. برای آن منظور باید "lvs" را فراخوانی کنید. .PP همچنین "list\-filesystems" را ببینید. .SS ll .IX Subsection "ll" .Vb 1 \& ll directory .Ve .PP فایل‌های موجود در \fIdirectory\fR را (نسبت به دایرکتوری ریشه، مسیر کاری فعلی وجود ندارد) در قالب \f(CW\*(C`ls \-la\*(C'\fR فهرست می‌کند. .PP این دستور بیشتر برای نشست‌های تعاملی مفید است. قرار \fIنیست\fR رشته خروجی را تجزیه کنید. .SS llz .IX Subsection "llz" .Vb 1 \& llz directory .Ve .PP فایل‌های موجود در \fIdirectory\fR را در قالب \f(CW\*(C`ls \-laZ\*(C'\fR فهرست می‌کند. .PP این دستور بیشتر برای نشست‌های تعاملی مفید است. قرار \fIنیست\fR رشته خروجی را تجزیه کنید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "lgetxattrs" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .SS ln .IX Subsection "ln" .Vb 1 \& ln target linkname .Ve .PP این دستور یک پیوند سخت ایجاد می‌کند. .SS ln\-f .IX Subsection "ln-f" .Vb 1 \& ln\-f target linkname .Ve .PP این دستور یک پیوند سخت ایجاد می‌کند، و در صورتی که پیوند \f(CW\*(C`linkname\*(C'\fR از قبل وجود داشته باشد آن را حذف می‌نماید. .SS ln\-s .IX Subsection "ln-s" .Vb 1 \& ln\-s target linkname .Ve .PP این دستور با استفاده از دستور \f(CW\*(C`ln \-s\*(C'\fR یک پیوند نمادین ایجاد می‌کند. .SS ln\-sf .IX Subsection "ln-sf" .Vb 1 \& ln\-sf target linkname .Ve .PP این دستور با استفاده از دستور \f(CW\*(C`ln \-sf\*(C'\fR یک پیوند نمادین ایجاد می‌کند. گزینه \fI\-f\fR در صورتی که پیوند (\f(CW\*(C`linkname\*(C'\fR) از قبل وجود داشته باشد آن را حذف می‌نماید. .SS lremovexattr .IX Subsection "lremovexattr" .Vb 1 \& lremovexattr xattr path .Ve .PP این دستور مشابه "removexattr" است، اما اگر \f(CW\*(C`path\*(C'\fR یک پیوند نمادین باشد، صفت گسترش‌یافته خودِ پیوند را حذف می‌کند. .PP این دستور به قابلیت \f(CW\*(C`linuxxattrs\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS ls .IX Subsection "ls" .Vb 1 \& ls directory .Ve .PP فایل‌های موجود در \fIdirectory\fR را (نسبت به دایرکتوری ریشه، مسیر کاری فعلی وجود ندارد) فهرست می‌کند. مدخل‌های \f(CW\*(C`.\*(C'\fR و \f(CW\*(C`..\*(C'\fR بازگردانده نمی‌شوند، اما فایل‌های پنهان نشان داده می‌شوند. .SS ls0 .IX Subsection "ls0" .Vb 1 \& ls0 dir (filenames|\-) .Ve .PP این دستور تخصصی برای دریافت فهرستی از نام فایل‌ها در دایرکتوری \f(CW\*(C`dir\*(C'\fR استفاده می‌شود. فهرست نام فایل‌ها در فایل محلی \fIfilenames\fR (روی میزبان) نوشته می‌شود. .PP در فایل خروجی، نام فایل‌ها با نویسه‌های \f(CW\*(C`\e0\*(C'\fR از یکدیگر جدا می‌شوند. .PP مدخل‌های \f(CW\*(C`.\*(C'\fR و \f(CW\*(C`..\*(C'\fR بازگردانده نمی‌شوند. نام فایل‌ها مرتب‌سازی نمی‌شوند. .PP برای خواندن/نوشتن از ورودی استاندارد/خروجی استاندارد، به جای نام فایل از \f(CW\*(C`\-\*(C'\fR استفاده کنید. .SS lsetxattr .IX Subsection "lsetxattr" .Vb 1 \& lsetxattr xattr val vallen path .Ve .PP این دستور مشابه "setxattr" است، اما اگر \f(CW\*(C`path\*(C'\fR یک پیوند نمادین باشد، یک صفت گسترش‌یافته روی خودِ پیوند تنظیم می‌کند. .PP این دستور به قابلیت \f(CW\*(C`linuxxattrs\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS lstat .IX Subsection "lstat" .Vb 1 \& lstat path .Ve .PP اطلاعات فایل را برای \f(CW\*(C`path\*(C'\fR داده‌شده بازمی‌گرداند. .PP این دستور مشابه "stat" است به جز این که اگر \f(CW\*(C`path\*(C'\fR یک پیوند نمادین باشد، وضعیت خودِ پیوند گرفته می‌شود، نه فایلی که به آن اشاره دارد. .PP این دستور معادل فراخوانی سیستمی \fBlstat\fR\|(2) است. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "lstatns" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .SS lstatlist .IX Subsection "lstatlist" .Vb 1 \& lstatlist path \*(Aqnames ...\*(Aq .Ve .PP این فراخوانی به شما امکان می‌دهد عملیات "lstat" را روی چندین فایل انجام دهید، که در آن همه فایل‌ها در دایرکتوری \f(CW\*(C`path\*(C'\fR قرار دارند. \f(CW\*(C`names\*(C'\fR فهرست فایل‌های این دایرکتوری است. .PP در بازگشت فهرستی از ساختارهای stat دریافت می‌کنید که تناظر یک‌به‌یک با فهرست \f(CW\*(C`names\*(C'\fR دارند. اگر نامی وجود نداشته باشد یا نتوان وضعیت lstat آن را گرفت، فیلد \f(CW\*(C`st_ino\*(C'\fR آن ساختار روی \f(CW\-1\fR تنظیم می‌شود. .PP این فراخوانی برای برنامه‌هایی در نظر گرفته شده است که می‌خواهند بدون انجام رفت‌وبرگشت‌های متعدد، محتویات یک دایرکتوری را به طور کارآمد فهرست کنند. همچنین "lxattrlist" را برای یک فراخوانی مشابه و کارآمد جهت دریافت صفت‌های گسترش‌یافته ببینید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "lstatnslist" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .SS lstatns .IX Subsection "lstatns" .Vb 1 \& lstatns path .Ve .PP اطلاعات فایل را برای \f(CW\*(C`path\*(C'\fR داده‌شده بازمی‌گرداند. .PP این دستور مشابه "statns" است به جز این که اگر \f(CW\*(C`path\*(C'\fR یک پیوند نمادین باشد، وضعیت خودِ پیوند گرفته می‌شود، نه فایلی که به آن اشاره دارد. .PP این دستور معادل فراخوانی سیستمی \fBlstat\fR\|(2) است. .SS lstatnslist .IX Subsection "lstatnslist" .Vb 1 \& lstatnslist path \*(Aqnames ...\*(Aq .Ve .PP این فراخوانی به شما امکان می‌دهد عملیات "lstatns" را روی چندین فایل انجام دهید، که در آن همه فایل‌ها در دایرکتوری \f(CW\*(C`path\*(C'\fR قرار دارند. \f(CW\*(C`names\*(C'\fR فهرست فایل‌های این دایرکتوری است. .PP در بازگشت فهرستی از ساختارهای stat دریافت می‌کنید که تناظر یک‌به‌یک با فهرست \f(CW\*(C`names\*(C'\fR دارند. اگر نامی وجود نداشته باشد یا نتوان وضعیت lstat آن را گرفت، فیلد \f(CW\*(C`st_ino\*(C'\fR آن ساختار روی \f(CW\-1\fR تنظیم می‌شود. .PP این فراخوانی برای برنامه‌هایی در نظر گرفته شده است که می‌خواهند بدون انجام رفت‌وبرگشت‌های متعدد، محتویات یک دایرکتوری را به طور کارآمد فهرست کنند. همچنین "lxattrlist" را برای یک فراخوانی مشابه و کارآمد جهت دریافت صفت‌های گسترش‌یافته ببینید. .SS luks\-add\-key .IX Subsection "luks-add-key" .Vb 1 \& luks\-add\-key device keyslot .Ve .PP این دستور یک کلید جدید را روی دستگاه LUKS با نام \f(CW\*(C`device\*(C'\fR اضافه می‌کند. \f(CW\*(C`key\*(C'\fR هر کلید موجودی است و برای دسترسی به دستگاه استفاده می‌شود. \f(CW\*(C`newkey\*(C'\fR کلید جدید برای افزودن است. \f(CW\*(C`keyslot\*(C'\fR اسلات کلیدی است که جایگزین خواهد شد. .PP توجه داشته باشید که اگر \f(CW\*(C`keyslot\*(C'\fR از قبل حاوی کلید باشد، این دستور شکست خواهد خورد. برای حذف آن کلید باید ابتدا از "luks\-kill\-slot" استفاده کنید. .PP این دستور یک یا چند پارامتر کلید یا عبارت عبور (passphrase) دارد. Guestfish این موارد را به طور جداگانه درخواست خواهد کرد. .PP این دستور به قابلیت \f(CW\*(C`luks\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS luks\-close .IX Subsection "luks-close" .Vb 1 \& luks\-close device .Ve .PP این دستور یک دستگاه LUKS را که قبلاً توسط "luks\-open" یا "luks\-open\-ro" ایجاد شده است می‌بندد. پارامتر \f(CW\*(C`device\*(C'\fR باید نام دستگاه نگاشت LUKS (یعنی \fI/dev/mapper/mapname\fR) باشد و \fIنه\fR نام دستگاه بلوکی زیرین. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "cryptsetup\-close" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .PP این دستور به قابلیت \f(CW\*(C`luks\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS luks\-format .IX Subsection "luks-format" .Vb 1 \& luks\-format device keyslot .Ve .PP این دستور داده‌های موجود روی \f(CW\*(C`device\*(C'\fR را پاک کرده و دستگاه را به عنوان یک دستگاه رمزگذاری‌شده LUKS فرمت می‌کند. \f(CW\*(C`key\*(C'\fR کلید اولیه است که به اسلات کلید \f(CW\*(C`keyslot\*(C'\fR افزوده می‌شود. (LUKS از ۸ اسلات کلید، با شماره‌های ۰ تا ۷ پشتیبانی می‌کند). .PP این دستور یک یا چند پارامتر کلید یا عبارت عبور دارد. Guestfish این موارد را به طور جداگانه درخواست خواهد کرد. .PP این دستور به قابلیت \f(CW\*(C`luks\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS luks\-format\-cipher .IX Subsection "luks-format-cipher" .Vb 1 \& luks\-format\-cipher device keyslot cipher .Ve .PP این دستور مشابه "luks\-format" است اما به شما امکان می‌دهد نوع \f(CW\*(C`cipher\*(C'\fR مورد استفاده را نیز تنظیم کنید. .PP این دستور یک یا چند پارامتر کلید یا عبارت عبور دارد. Guestfish این موارد را به طور جداگانه درخواست خواهد کرد. .PP این دستور به قابلیت \f(CW\*(C`luks\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS luks\-kill\-slot .IX Subsection "luks-kill-slot" .Vb 1 \& luks\-kill\-slot device keyslot .Ve .PP این دستور کلید موجود در اسلات کلید \f(CW\*(C`keyslot\*(C'\fR را از دستگاه LUKS رمزگذاری‌شده \f(CW\*(C`device\*(C'\fR حذف می‌کند. \f(CW\*(C`key\*(C'\fR باید یکی از کلیدهای \fIدیگر\fR باشد. .PP این دستور یک یا چند پارامتر کلید یا عبارت عبور دارد. Guestfish این موارد را به طور جداگانه درخواست خواهد کرد. .PP این دستور به قابلیت \f(CW\*(C`luks\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS luks\-open .IX Subsection "luks-open" .Vb 1 \& luks\-open device mapname .Ve .PP این دستور یک دستگاه بلوکی را که طبق استاندارد راه‌اندازی کلید یکپارچه لینوکس (LUKS) رمزگذاری شده است باز می‌کند. .PP پارامتر \f(CW\*(C`device\*(C'\fR دستگاه بلوکی یا پارتیشن رمزگذاری‌شده است. .PP فراخواننده باید یکی از کلیدهای مرتبط با دستگاه بلوکی LUKS را در پارامتر \f(CW\*(C`key\*(C'\fR ارائه دهد. .PP این کار یک دستگاه بلوکی جدید به نام \fI/dev/mapper/mapname\fR ایجاد می‌کند. خواندن و نوشتن در این دستگاه بلوکی به ترتیب از دستگاه زیرین \f(CW\*(C`device\*(C'\fR رمزگشایی و در آن رمزگذاری می‌شود. .PP اگر این دستگاه بلوکی حاوی گروه‌های حجم LVM باشد، فراخوانی "lvm\-scan" با پارامتر \f(CW\*(C`activate\*(C'\fR برابر با \f(CW\*(C`true\*(C'\fR آن‌ها را نمایان خواهد کرد. .PP از "list\-dm\-devices" برای فهرست کردن تمام دستگاه‌های device mapper استفاده کنید. .PP این دستور یک یا چند پارامتر کلید یا عبارت عبور دارد. Guestfish این موارد را به طور جداگانه درخواست خواهد کرد. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "cryptsetup\-open" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .PP این دستور به قابلیت \f(CW\*(C`luks\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS luks\-open\-ro .IX Subsection "luks-open-ro" .Vb 1 \& luks\-open\-ro device mapname .Ve .PP این دستور مشابه "luks\-open" است، با این تفاوت که یک نگاشت فقط‌خواندنی ایجاد می‌شود. .PP این دستور یک یا چند پارامتر کلید یا عبارت عبور دارد. Guestfish این موارد را به صورت جداگانه درخواست خواهد کرد. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "cryptsetup\-open" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آنها نشان می‌دهد که مشکلاتی در استفاده صحیح از این توابع وجود دارد. .PP این دستور به ویژگی \f(CW\*(C`luks\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS luks\-uuid .IX Subsection "luks-uuid" .Vb 1 \& luks\-uuid device .Ve .PP این دستور UUID دستگاه LUKS با نام \f(CW\*(C`device\*(C'\fR را برمی‌گرداند. .PP این دستور به ویژگی \f(CW\*(C`luks\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS lvcreate .IX Subsection "lvcreate" .Vb 1 \& lvcreate logvol volgroup mbytes .Ve .PP یک حجم منطقی LVM به نام \f(CW\*(C`logvol\*(C'\fR بر روی گروه حجم \f(CW\*(C`volgroup\*(C'\fR، با اندازه \f(CW\*(C`mbytes\*(C'\fR مگابایت ایجاد می‌کند. .PP این دستور به ویژگی \f(CW\*(C`lvm2\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS lvcreate\-free .IX Subsection "lvcreate-free" .Vb 1 \& lvcreate\-free logvol volgroup percent .Ve .PP یک حجم منطقی LVM به نام \fI/dev/volgroup/logvol\fR ایجاد می‌کند که تقریباً از \f(CW\*(C`percent\*(C'\fR درصد فضای آزاد باقی‌مانده در گروه حجم استفاده می‌کند. کاربردی‌ترین حالت زمانی است که \f(CW\*(C`percent\*(C'\fR برابر با \f(CW100\fR باشد که در این صورت بزرگ‌ترین LV ممکن را ایجاد می‌کند. .PP این دستور به ویژگی \f(CW\*(C`lvm2\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS lvm\-canonical\-lv\-name .IX Subsection "lvm-canonical-lv-name" .Vb 1 \& lvm\-canonical\-lv\-name lvname .Ve .PP طرح‌های نام‌گذاری جایگزین برای LVها را به نام متعارف (canonical) تبدیل می‌کند. برای مثال، \fI/dev/mapper/VG\-LV\fR به \fI/dev/VG/LV\fR تبدیل می‌شود. .PP اگر پارامتر \f(CW\*(C`lvname\*(C'\fR به یک حجم منطقی اشاره نکند، این دستور خطا بازمی‌گرداند. در این حالت errno برابر با \f(CW\*(C`EINVAL\*(C'\fR تنظیم خواهد شد. .PP همچنین ببینید "is\-lv", "canonical\-device\-name". .SS lvm\-clear\-filter .IX Subsection "lvm-clear-filter" .Vb 1 \& lvm\-clear\-filter .Ve .PP اثر دستور "lvm\-set\-filter" را خنثی می‌کند. LVM قادر خواهد بود تمام دستگاه‌های بلوکی را مشاهده کند. .PP این دستور همچنین حافظه نهان (cache) مربوط به LVM را پاکسازی کرده و یک اسکن گروه حجم انجام می‌دهد. .SS lvm\-remove\-all .IX Subsection "lvm-remove-all" .Vb 1 \& lvm\-remove\-all .Ve .PP این دستور تمام حجم‌های منطقی، گروه‌های حجم و حجم‌های فیزیکی LVM را حذف می‌کند. .PP این دستور به ویژگی \f(CW\*(C`lvm2\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS lvm\-scan .IX Subsection "lvm-scan" .Vb 1 \& lvm\-scan true|false .Ve .PP تمام دستگاه‌های بلوکی را اسکن کرده و فهرست حجم‌های فیزیکی، گروه‌های حجم و حجم‌های منطقی LVM را بازسازی می‌کند. .PP اگر پارامتر \f(CW\*(C`activate\*(C'\fR برابر با \f(CW\*(C`true\*(C'\fR باشد، گروه‌های حجم و حجم‌های منطقی جدیدِ یافت‌شده فعال می‌شوند؛ یعنی دستگاه‌های LV به صورت \fI/dev/VG/LV\fR قابل مشاهده خواهند بود. .PP هنگامی که یک هندل libguestfs راه‌اندازی می‌شود، دستگاه‌های موجود را اسکن می‌کند، بنابراین معمولاً نیازی به استفاده از این API ندارید. با این حال زمانی که دستگاه جدیدی اضافه کرده‌اید یا دستگاهی را حذف نموده‌اید (مانند زمانی که از API "luks\-open" استفاده می‌شود) کاربردی خواهد بود. .SS lvm\-set\-filter .IX Subsection "lvm-set-filter" .Vb 1 \& lvm\-set\-filter \*(Aqdevices ...\*(Aq .Ve .PP فیلتر دستگاه LVM را طوری تنظیم می‌کند که LVM فقط بتواند دستگاه‌های بلوکی موجود در فهرست \f(CW\*(C`devices\*(C'\fR را «ببیند» و تمام دستگاه‌های بلوکی متصل دیگر را نادیده بگیرد. .PP در مواردی که ایمیج(های) دیسک حاوی PVها یا VGهای تکراری باشند، این دستور مفید است تا LVM نسخه‌های تکراری را نادیده بگیرد، در غیر این صورت LVM ممکن است دچار سردرگمی شود. همچنین توجه داشته باشید که دو نوع تکرار امکان‌پذیر است: یا PV/VGهای کلون‌شده که دارای UUIDهای یکسان هستند؛ یا VGهایی که کلون نشده‌اند اما اتفاقاً نام یکسانی دارند. در حالت عادی نمی‌توانید این وضعیت را ایجاد کنید، اما در خارج از LVM امکان‌پذیر است، مثلاً از طریق کلون کردن ایمیج‌های دیسک یا دستکاری بیت‌ها در متادیتای LVM. .PP این دستور همچنین حافظه نهان (cache) مربوط به LVM را پاکسازی کرده و یک اسکن گروه حجم انجام می‌دهد. .PP می‌توانید کل دستگاه‌های بلوکی یا پارتیشن‌های منفرد را فیلتر کنید. .PP اگر هر کدام از VGها در حال حاضر در حال استفاده باشد (مثلاً حاوی یک سیستم‌فایل سوارشده باشد)، نمی‌توانید از این دستور استفاده کنید، حتی اگر آن VG را فیلتر نکرده باشید. .PP این دستور به ویژگی \f(CW\*(C`lvm2\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS lvremove .IX Subsection "lvremove" .Vb 1 \& lvremove device .Ve .PP یک حجم منطقی LVM به نام \f(CW\*(C`device\*(C'\fR را حذف می‌کند، که در آن \f(CW\*(C`device\*(C'\fR مسیر منتهی به LV است، مانند \fI/dev/VG/LV\fR. .PP همچنین می‌توانید با مشخص کردن نام VG مانند \fI/dev/VG\fR، تمام LVهای موجود در یک گروه حجم را حذف کنید. .PP این دستور به ویژگی \f(CW\*(C`lvm2\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS lvrename .IX Subsection "lvrename" .Vb 1 \& lvrename logvol newlogvol .Ve .PP نام حجم منطقی \f(CW\*(C`logvol\*(C'\fR را به نام جدید \f(CW\*(C`newlogvol\*(C'\fR تغییر می‌دهد. .SS lvresize .IX Subsection "lvresize" .Vb 1 \& lvresize device mbytes .Ve .PP اندازه یک حجم منطقی LVM موجود را به \f(CW\*(C`mbytes\*(C'\fR تغییر می‌دهد (گسترش یا کاهش). هنگام کاهش اندازه، داده‌های بخش حذف‌شده از بین خواهند رفت. .PP این دستور به ویژگی \f(CW\*(C`lvm2\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS lvresize\-free .IX Subsection "lvresize-free" .Vb 1 \& lvresize\-free lv percent .Ve .PP یک حجم منطقی موجود \f(CW\*(C`lv\*(C'\fR را گسترش می‌دهد تا \f(CW\*(C`percent\*(C'\fR درصد از فضای آزاد باقی‌مانده در گروه حجم را پر کند. معمولاً این تابع را با مقدار ۱۰۰ فراخوانی می‌کنید که حجم منطقی را تا حد ممکن با استفاده از تمام فضای آزاد باقی‌مانده در گروه حجم گسترش می‌دهد. .PP این دستور به ویژگی \f(CW\*(C`lvm2\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS lvs .IX Subsection "lvs" .Vb 1 \& lvs .Ve .PP تمام حجم‌های منطقی شناسایی‌شده را فهرست می‌کند. این دستور معادل دستور \fBlvs\fR\|(8) است. .PP این دستور فهرستی از نام دستگاه‌های حجم منطقی (مثلاً \fI/dev/VolGroup00/LogVol00\fR) را بازمی‌گرداند. .PP همچنین ببینید "lvs\-full", "list\-filesystems". .PP این دستور به ویژگی \f(CW\*(C`lvm2\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS lvs\-full .IX Subsection "lvs-full" .Vb 1 \& lvs\-full .Ve .PP تمام حجم‌های منطقی شناسایی‌شده را فهرست می‌کند. این دستور معادل دستور \fBlvs\fR\|(8) است. نسخه "full" شامل تمام فیلدها است. .PP این دستور به ویژگی \f(CW\*(C`lvm2\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS lvuuid .IX Subsection "lvuuid" .Vb 1 \& lvuuid device .Ve .PP این دستور UUID مربوط به LV دستگاه LVM با نام \f(CW\*(C`device\*(C'\fR را بازمی‌گرداند. .SS lxattrlist .IX Subsection "lxattrlist" .Vb 1 \& lxattrlist path \*(Aqnames ...\*(Aq .Ve .PP این فراخوانی به شما امکان می‌دهد صفت‌های گسترش‌یافته (extended attributes) چندین فایل را دریافت کنید، که در آن تمام فایل‌ها در دایرکتوری \f(CW\*(C`path\*(C'\fR قرار دارند. \f(CW\*(C`names\*(C'\fR فهرستی از فایل‌های این دایرکتوری است. .PP در خروجی، یک فهرست تخت از ساختارهای xattr دریافت می‌کنید که باید به صورت ترتیبی تفسیر شوند. اولین ساختار xattr همیشه دارای \f(CW\*(C`attrname\*(C'\fR با طول صفر است. مقدار \f(CW\*(C`attrval\*(C'\fR در این ساختار دارای طول صفر است تا نشان دهد در اجرای "lgetxattr" برای این فایل خطایی رخ داده است، \fIیا\fR یک رشته C است که یک عدد ده‌دهی را نشان می‌دهد (تعداد صفت‌های بعدی برای این فایل، که می‌تواند \f(CW"0"\fR باشد). سپس پس از اولین ساختار xattr، صفر یا چند صفت برای اولین فایل نام‌برده قرار دارد. این روند برای فایل‌های دوم و بعدی تکرار می‌شود. .PP این فراخوانی برای برنامه‌هایی در نظر گرفته شده است که می‌خواهند بدون رفت‌وبرگشت‌های متعدد، محتوای یک دایرکتوری را به طور کارآمد فهرست کنند. همچنین برای دریافت آمارهای استاندارد به صورت کارآمد، "lstatlist" را ببینید. .PP این دستور به ویژگی \f(CW\*(C`linuxxattrs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS max\-disks .IX Subsection "max-disks" .Vb 1 \& max\-disks .Ve .PP حداکثر تعداد دیسک‌هایی را که می‌توان به یک هندل اضافه کرد (مثلاً توسط "add\-drive\-opts" و فراخوانی‌های مشابه) بازمی‌گرداند. .PP این تابع در libguestfs 1.19.7 اضافه شد. در نسخه‌های قبلی libguestfs این محدودیت ۲۵ بود. .PP برای اطلاعات بیشتر در این زمینه، بخش "MAXIMUM NUMBER OF DISKS" در \fBguestfs\fR\|(3) را ببینید. .SS md\-create .IX Subsection "md-create" .Vb 1 \& md\-create name \*(Aqdevices ...\*(Aq [missingbitmap:N] [nrdevices:N] [spare:N] [chunk:N] [level:..] .Ve .PP یک دستگاه md (RAID) لینوکس با نام \f(CW\*(C`name\*(C'\fR بر روی دستگاه‌های موجود در فهرست \f(CW\*(C`devices\*(C'\fR ایجاد می‌کند. .PP پارامترهای اختیاری عبارتند از: .ie n .IP """missingbitmap""" 4 .el .IP \f(CWmissingbitmap\fR 4 .IX Item "missingbitmap" یک نقشه بیتی (bitmap) از دستگاه‌های مفقود. اگر بیتی تنظیم شده باشد به این معنی است که یک دستگاه مفقود به آرایه اضافه می‌شود. کم‌ارزش‌ترین بیت مربوط به اولین دستگاه در آرایه است. .Sp به عنوان مثال: .Sp اگر \f(CW\*(C`devices = ["/dev/sda"]\*(C'\fR و \f(CW\*(C`missingbitmap = 0x1\*(C'\fR باشد، آرایه حاصل \f(CW\*(C`[, "/dev/sda"]\*(C'\fR خواهد بود. .Sp اگر \f(CW\*(C`devices = ["/dev/sda"]\*(C'\fR و \f(CW\*(C`missingbitmap = 0x2\*(C'\fR باشد، آرایه حاصل \f(CW\*(C`["/dev/sda", ]\*(C'\fR خواهد بود. .Sp مقدار پیش‌فرض \f(CW0\fR است (هیچ دستگاه مفقودی وجود ندارد). .Sp طول \f(CW\*(C`devices\*(C'\fR + تعداد بیت‌های تنظیم‌شده در \f(CW\*(C`missingbitmap\*(C'\fR باید برابر با \f(CW\*(C`nrdevices\*(C'\fR + \f(CW\*(C`spare\*(C'\fR باشد. .ie n .IP """nrdevices""" 4 .el .IP \f(CWnrdevices\fR 4 .IX Item "nrdevices" تعداد دستگاه‌های فعال RAID. .Sp در صورت تنظیم نشدن، مقدار پیش‌فرض برابر با طول \f(CW\*(C`devices\*(C'\fR به علاوه تعداد بیت‌های تنظیم‌شده در \f(CW\*(C`missingbitmap\*(C'\fR خواهد بود. .ie n .IP """spare""" 4 .el .IP \f(CWspare\fR 4 .IX Item "spare" تعداد دستگاه‌های یدکی (spare). .Sp در صورت تنظیم نشدن، مقدار پیش‌فرض \f(CW0\fR است. .ie n .IP """chunk""" 4 .el .IP \f(CWchunk\fR 4 .IX Item "chunk" اندازه چانک (قطعه) به بایت. .Sp هنگامی که \f(CW\*(C`level\*(C'\fR برابر با \f(CW\*(C`raid1\*(C'\fR باشد (که پیش‌فرض است؛ زیر را ببینید)، پارامتر \f(CW\*(C`chunk\*(C'\fR کاربردی ندارد و نباید مشخص شود. .ie n .IP """level""" 4 .el .IP \f(CWlevel\fR 4 .IX Item "level" سطح RAID، که می‌تواند یکی از موارد زیر باشد: \&\f(CW\*(C`linear\*(C'\fR, \f(CW\*(C`raid0\*(C'\fR, \f(CW0\fR, \f(CW\*(C`stripe\*(C'\fR, \f(CW\*(C`raid1\*(C'\fR, \f(CW1\fR, \f(CW\*(C`mirror\*(C'\fR, \&\f(CW\*(C`raid4\*(C'\fR, \f(CW4\fR, \f(CW\*(C`raid5\*(C'\fR, \f(CW5\fR, \f(CW\*(C`raid6\*(C'\fR, \f(CW6\fR, \f(CW\*(C`raid10\*(C'\fR, \f(CW10\fR. برخی از این موارد مترادف هستند و ممکن است در آینده سطوح بیشتری اضافه شود. .Sp در صورت تنظیم نشدن، مقدار پیش‌فرض \f(CW\*(C`raid1\*(C'\fR است. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .PP این دستور به ویژگی \f(CW\*(C`mdadm\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS md\-detail .IX Subsection "md-detail" .Vb 1 \& md\-detail md .Ve .PP این دستور خروجی \f(CW\*(C`mdadm \-DY \*(C'\fR را ارائه می‌دهد. فیلدهای زیر معمولاً در هش بازگردانده‌شده وجود دارند. فیلدهای دیگر نیز ممکن است موجود باشند. .ie n .IP """level""" 4 .el .IP \f(CWlevel\fR 4 .IX Item "level" سطح raid مربوط به دستگاه MD. .ie n .IP """devices""" 4 .el .IP \f(CWdevices\fR 4 .IX Item "devices" تعداد دستگاه‌های زیربنایی در دستگاه MD. .ie n .IP """metadata""" 4 .el .IP \f(CWmetadata\fR 4 .IX Item "metadata" نسخه متادیتای استفاده‌شده. .ie n .IP """uuid""" 4 .el .IP \f(CWuuid\fR 4 .IX Item "uuid" شناسه یکتای (UUID) دستگاه MD. .ie n .IP """name""" 4 .el .IP \f(CWname\fR 4 .IX Item "name" نام دستگاه MD. .PP این دستور به ویژگی \f(CW\*(C`mdadm\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS md\-stat .IX Subsection "md-stat" .Vb 1 \& md\-stat md .Ve .PP این فراخوانی فهرستی از دستگاه‌های زیربنایی سازنده دستگاه تک‌آرایه نرم‌افزاری RAID با نام \f(CW\*(C`md\*(C'\fR را بازمی‌گرداند. .PP برای دریافت فهرستی از دستگاه‌های نرم‌افزاری RAID، دستور "list\-md\-devices" را فراخوانی کنید. .PP هر ساختار بازگردانده‌شده مربوط به یک دستگاه به همراه اطلاعات وضعیت تکمیلی است: .ie n .IP """mdstat_device""" 4 .el .IP \f(CWmdstat_device\fR 4 .IX Item "mdstat_device" نام دستگاه زیربنایی. .ie n .IP """mdstat_index""" 4 .el .IP \f(CWmdstat_index\fR 4 .IX Item "mdstat_index" اندیس این دستگاه در درون آرایه. .ie n .IP """mdstat_flags""" 4 .el .IP \f(CWmdstat_flags\fR 4 .IX Item "mdstat_flags" پرچم‌های مرتبط با این دستگاه. این یک رشته است که (بدون ترتیب خاصی) شامل صفر یا چند مورد از پرچم‌های زیر است: .RS 4 .ie n .IP """W""" 4 .el .IP \f(CWW\fR 4 .IX Item "W" اغلب‌نوشتنی (write\-mostly) .ie n .IP """F""" 4 .el .IP \f(CWF\fR 4 .IX Item "F" دستگاه معیوب است (faulty) .ie n .IP """S""" 4 .el .IP \f(CWS\fR 4 .IX Item "S" دستگاه یک یدکی RAID است (spare) .ie n .IP """R""" 4 .el .IP \f(CWR\fR 4 .IX Item "R" جایگزین (replacement) .RE .RS 4 .RE .PP این دستور به ویژگی \f(CW\*(C`mdadm\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS md\-stop .IX Subsection "md-stop" .Vb 1 \& md\-stop md .Ve .PP این دستور آرایه MD به نام \f(CW\*(C`md\*(C'\fR را غیرفعال می‌کند. دستگاه متوقف می‌شود، اما نابود یا صفر نمی‌شود. .PP این دستور به ویژگی \f(CW\*(C`mdadm\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS mkdir .IX Subsection "mkdir" .Vb 1 \& mkdir path .Ve .PP دایرکتوری جدیدی با نام \f(CW\*(C`path\*(C'\fR ایجاد می‌کند. .SS mkdir\-mode .IX Subsection "mkdir-mode" .Vb 1 \& mkdir\-mode path mode .Ve .PP این دستور یک دایرکتوری ایجاد کرده و مجوزهای اولیه آن را برابر با \f(CW\*(C`mode\*(C'\fR تنظیم می‌کند. .PP برای سیستم‌فایل‌های متداول لینوکس، مجوزی که در عمل تنظیم می‌شود برابر با \f(CW\*(C`mode & ~umask & 01777\*(C'\fR خواهد بود. سیستم‌فایل‌های غیربومی لینوکس ممکن است مجوز را به روش‌های دیگری تفسیر کنند. .PP همچنین ببینید "mkdir", "umask". .SS mkdir\-p .IX Subsection "mkdir-p" .Vb 1 \& mkdir\-p path .Ve .PP دایرکتوری به نام \f(CW\*(C`path\*(C'\fR ایجاد می‌کند و در صورت لزوم هرگونه دایرکتوری والد را نیز می‌سازد. این کار شبیه دستور پوسته \f(CW\*(C`mkdir \-p\*(C'\fR است. .SS mkdtemp .IX Subsection "mkdtemp" .Vb 1 \& mkdtemp tmpl .Ve .PP این دستور یک دایرکتوری موقت ایجاد می‌کند. پارامتر \f(CW\*(C`tmpl\*(C'\fR باید یک مسیر کامل برای نام دایرکتوری موقت باشد که شش کاراکتر پایانی آن "XXXXXX" است. .PP به عنوان مثال: "/tmp/myprogXXXXXX" یا "/Temp/myprogXXXXXX" که مورد دوم برای سیستم‌فایل‌های ویندوز مناسب است. .PP نام دایرکتوری موقت ایجادشده بازگردانده می‌شود. .PP دایرکتوری موقت با مجوز 0700 ایجاد شده و مالک آن root است. .PP فراخواننده مسئول حذف دایرکتوری موقت و محتویات آن پس از استفاده است. .PP همچنین ببینید: \fBmkdtemp\fR\|(3). .SS mke2fs .IX Subsection "mke2fs" .Vb 1 \& mke2fs device [blockscount:N] [blocksize:N] [fragsize:N] [blockspergroup:N] [numberofgroups:N] [bytesperinode:N] [inodesize:N] [journalsize:N] [numberofinodes:N] [stridesize:N] [stripewidth:N] [maxonlineresize:N] [reservedblockspercentage:N] [mmpupdateinterval:N] [journaldevice:..] [label:..] [lastmounteddir:..] [creatoros:..] [fstype:..] [usagetype:..] [uuid:..] [forcecreate:true|false] [writesbandgrouponly:true|false] [lazyitableinit:true|false] [lazyjournalinit:true|false] [testfs:true|false] [discard:true|false] [quotatype:true|false] [extent:true|false] [filetype:true|false] [flexbg:true|false] [hasjournal:true|false] [journaldev:true|false] [largefile:true|false] [quota:true|false] [resizeinode:true|false] [sparsesuper:true|false] [uninitbg:true|false] .Ve .PP دستور \f(CW\*(C`mke2fs\*(C'\fR برای ایجاد سیستم‌فایل ext2، ext3 یا ext4 بر روی \&\f(CW\*(C`device\*(C'\fR استفاده می‌شود. .PP پارامتر اختیاری \f(CW\*(C`blockscount\*(C'\fR اندازه سیستم‌فایل را بر حسب بلوک مشخص می‌کند. در صورت حذف، پیش‌فرض اندازه \f(CW\*(C`device\*(C'\fR خواهد بود. توجه داشته باشید اگر سیستم‌فایل برای داشتن ژورنال بیش از حد کوچک باشد، \f(CW\*(C`mke2fs\*(C'\fR بدون اعلان خطا به جای آن یک سیستم‌فایل ext2 ایجاد خواهد کرد. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .SS mke2fs\-J .IX Subsection "mke2fs-J" .Vb 1 \& mke2fs\-J fstype blocksize device journal .Ve .PP یک سیستم‌فایل ext2/3/4 بر روی \f(CW\*(C`device\*(C'\fR با ژورنال خارجی روی \f(CW\*(C`journal\*(C'\fR ایجاد می‌کند. این دستور معادل دستور زیر است: .PP .Vb 1 \& mke2fs \-t fstype \-b blocksize \-J device= .Ve .PP همچنین ببینید "mke2journal". .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "mke2fs" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آنها نشان می‌دهد که مشکلاتی در استفاده صحیح از این توابع وجود دارد. .SS mke2fs\-JL .IX Subsection "mke2fs-JL" .Vb 1 \& mke2fs\-JL fstype blocksize device label .Ve .PP یک سیستم‌فایل ext2/3/4 بر روی \f(CW\*(C`device\*(C'\fR با یک ژورنال خارجی بر روی ژورنال با برچسب \&\f(CW\*(C`label\*(C'\fR ایجاد می‌کند. .PP همچنین ببینید "mke2journal\-L". .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "mke2fs" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آنها نشان می‌دهد که مشکلاتی در استفاده صحیح از این توابع وجود دارد. .SS mke2fs\-JU .IX Subsection "mke2fs-JU" .Vb 1 \& mke2fs\-JU fstype blocksize device uuid .Ve .PP یک سیستم‌فایل ext2/3/4 بر روی \f(CW\*(C`device\*(C'\fR با یک ژورنال خارجی بر روی ژورنال با UUID برابر با \f(CW\*(C`uuid\*(C'\fR ایجاد می‌کند. .PP همچنین ببینید "mke2journal\-U". .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "mke2fs" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آنها نشان می‌دهد که مشکلاتی در استفاده صحیح از این توابع وجود دارد. .PP این دستور به ویژگی \f(CW\*(C`linuxfsuuid\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS mke2journal .IX Subsection "mke2journal" .Vb 1 \& mke2journal blocksize device .Ve .PP یک ژورنال خارجی ext2 بر روی \f(CW\*(C`device\*(C'\fR ایجاد می‌کند. این دستور معادل دستور زیر است: .PP .Vb 1 \& mke2fs \-O journal_dev \-b blocksize device .Ve .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "mke2fs" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آنها نشان می‌دهد که مشکلاتی در استفاده صحیح از این توابع وجود دارد. .SS mke2journal\-L .IX Subsection "mke2journal-L" .Vb 1 \& mke2journal\-L blocksize label device .Ve .PP یک ژورنال خارجی ext2 بر روی \f(CW\*(C`device\*(C'\fR با برچسب \f(CW\*(C`label\*(C'\fR ایجاد می‌کند. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "mke2fs" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آنها نشان می‌دهد که مشکلاتی در استفاده صحیح از این توابع وجود دارد. .SS mke2journal\-U .IX Subsection "mke2journal-U" .Vb 1 \& mke2journal\-U blocksize uuid device .Ve .PP یک ژورنال خارجی ext2 بر روی \f(CW\*(C`device\*(C'\fR با UUID برابر با \f(CW\*(C`uuid\*(C'\fR ایجاد می‌کند. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "mke2fs" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آنها نشان می‌دهد که مشکلاتی در استفاده صحیح از این توابع وجود دارد. .PP این دستور به ویژگی \f(CW\*(C`linuxfsuuid\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS mkfifo .IX Subsection "mkfifo" .Vb 1 \& mkfifo mode path .Ve .PP این فراخوانی یک FIFO (پایپ نام‌گذاری‌شده) به نام \f(CW\*(C`path\*(C'\fR با حالت \f(CW\*(C`mode\*(C'\fR ایجاد می‌کند. این صرفاً یک پوشش راحت پیرامون "mknod" است. .PP برخلاف "mknod"، پارامتر \f(CW\*(C`mode\*(C'\fR \fBباید\fR فقط شامل بیت‌های مجوزها باشد. .PP حالت تنظیم‌شده در عمل تحت تأثیر umask قرار می‌گیرد. .PP این دستور به ویژگی \f(CW\*(C`mknod\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS mkfs .IX Subsection "mkfs" .SS mkfs\-opts .IX Subsection "mkfs-opts" .Vb 1 \& mkfs fstype device [blocksize:N] [features:..] [inode:N] [sectorsize:N] [label:..] .Ve .PP این تابع یک سیستم‌فایل بر روی \f(CW\*(C`device\*(C'\fR ایجاد می‌کند. نوع سیستم‌فایل برابر با \f(CW\*(C`fstype\*(C'\fR است، به عنوان مثال \f(CW\*(C`ext3\*(C'\fR. .PP آرگومان‌های اختیاری عبارتند از: .ie n .IP """blocksize""" 4 .el .IP \f(CWblocksize\fR 4 .IX Item "blocksize" اندازه بلوک سیستم‌فایل. اندازه‌های بلوک پشتیبانی‌شده به نوع سیستم‌فایل بستگی دارد، اما معمولاً برای سیستم‌فایل‌های ext2/3 لینوکس \f(CW1024\fR، \&\f(CW2048\fR یا \f(CW4096\fR هستند. .Sp برای VFAT و NTFS پارامتر \f(CW\*(C`blocksize\*(C'\fR به عنوان اندازه کلاستر درخواست‌شده در نظر گرفته می‌شود. .Sp برای اندازه‌های بلوک UFS، لطفاً \fBmkfs.ufs\fR\|(8) را ببینید. .ie n .IP """features""" 4 .el .IP \f(CWfeatures\fR 4 .IX Item "features" این گزینه پارامتر \fI\-O\fR را به برنامه خارجی mkfs منتقل می‌کند. .Sp برای برخی از انواع سیستم‌فایل، این امکان را می‌دهد تا ویژگی‌های اضافی سیستم‌فایل انتخاب شوند. برای جزئیات بیشتر به \fBmke2fs\fR\|(8) و \&\fBmkfs.ufs\fR\|(8) مراجعه کنید. .Sp نمی‌توانید از این پارامتر اختیاری با نوع سیستم‌فایل \f(CW\*(C`gfs\*(C'\fR یا \&\f(CW\*(C`gfs2\*(C'\fR استفاده کنید. .ie n .IP """inode""" 4 .el .IP \f(CWinode\fR 4 .IX Item "inode" این گزینه پارامتر \fI\-I\fR را به برنامه خارجی \fBmke2fs\fR\|(8) منتقل می‌کند که اندازه inode را تعیین می‌کند (در حال حاضر فقط برای سیستم‌فایل‌های ext2/3/4). .ie n .IP """sectorsize""" 4 .el .IP \f(CWsectorsize\fR 4 .IX Item "sectorsize" این گزینه پارامتر \fI\-S\fR را به برنامه خارجی \fBmkfs.ufs\fR\|(8) منتقل می‌کند، که اندازه سکتور را برای سیستم‌فایل ufs تنظیم می‌کند. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .SS mkfs\-b .IX Subsection "mkfs-b" .Vb 1 \& mkfs\-b fstype blocksize device .Ve .PP این فراخوانی مشابه "mkfs" است، اما به شما امکان می‌دهد اندازه بلوک سیستم‌فایل حاصل را کنترل کنید. اندازه‌های بلوک پشتیبانی‌شده به نوع سیستم‌فایل بستگی دارد، اما معمولاً فقط \f(CW1024\fR، \f(CW2048\fR یا \f(CW4096\fR هستند. .PP برای VFAT و NTFS پارامتر \f(CW\*(C`blocksize\*(C'\fR به عنوان اندازه کلاستر درخواست‌شده در نظر گرفته می‌شود. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "mkfs" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آنها نشان می‌دهد که مشکلاتی در استفاده صحیح از این توابع وجود دارد. .SS mkfs\-btrfs .IX Subsection "mkfs-btrfs" .Vb 1 \& mkfs\-btrfs \*(Aqdevices ...\*(Aq [allocstart:N] [bytecount:N] [datatype:..] [leafsize:N] [label:..] [metadata:..] [nodesize:N] [sectorsize:N] .Ve .PP یک سیستم‌فایل btrfs ایجاد می‌کند و امکان تنظیم تمام موارد قابل پیکربندی را فراهم می‌سازد. برای اطلاعات بیشتر در مورد آرگومان‌های اختیاری، \fBmkfs.btrfs\fR\|(8) را ببینید. .PP از آنجا که سیستم‌فایل‌های btrfs می‌توانند چندین دستگاه را پوشش دهند، این تابع یک فهرست غیرخالی از دستگاه‌ها را می‌گیرد. .PP برای ایجاد سیستم‌فایل‌های عمومی، از "mkfs" استفاده کنید. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .PP این دستور به ویژگی \f(CW\*(C`btrfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS mklost\-and\-found .IX Subsection "mklost-and-found" .Vb 1 \& mklost\-and\-found mountpoint .Ve .PP دایرکتوری \f(CW\*(C`lost+found\*(C'\fR را می‌سازد که معمولاً در دایرکتوری ریشه یک سیستم‌فایل ext2/3/4 قرار دارد. \f(CW\*(C`mountpoint\*(C'\fR دایرکتوری‌ای است که در زیر آن سعی در ایجاد دایرکتوری \f(CW\*(C`lost+found\*(C'\fR داریم. .SS mkmountpoint .IX Subsection "mkmountpoint" .Vb 1 \& mkmountpoint exemptpath .Ve .PP توابع "mkmountpoint" و "rmmountpoint" فراخوانی‌های تخصصی هستند که می‌توان از آنها برای ایجاد نقطه سوارشدن (نقطه مانت) اضافی قبل از سوار کردن اولین سیستم‌فایل استفاده کرد. .PP این فراخوانی‌ها \fIفقط\fR در برخی شرایط بسیار محدود ضروری هستند، عمدتاً در حالتی که می‌خواهید ترکیبی از سیستم‌فایل‌های غیرمرتبط و/یا فقط‌خواندنی را با هم سوار کنید. .PP به عنوان مثال، دیسک‌های زنده (Live CD) اغلب حاوی یک ساختار تودرتو (شبیه عروسک ماتریوشکا) از سیستم‌فایل‌ها هستند: یک لایه بیرونی ISO، با یک ایمیج squashfs در داخل آن، و یک ایمیج ext2/3 در داخل آن. می‌توانید این مورد را به صورت زیر در guestfish استخراج کنید: .PP .Vb 8 \& add\-ro Fedora\-11\-i686\-Live.iso \& run \& mkmountpoint /cd \& mkmountpoint /sqsh \& mkmountpoint /ext3fs \& mount /dev/sda /cd \& mount\-loop /cd/LiveOS/squashfs.img /sqsh \& mount\-loop /sqsh/LiveOS/ext3fs.img /ext3fs .Ve .PP سیستم‌فایل داخلی اکنون زیر نقطه مانت /ext3fs باز شده است. .PP تابع "mkmountpoint" با "umount\-all" سازگار نیست. اگر سعی کنید این فراخوانی‌ها را ترکیب کنید ممکن است با خطاهای غیرمنتظره مواجه شوید. امن‌ترین راه این است که پس از استفاده، سیستم‌فایل‌ها را به صورت دستی پیاده کرده و نقاط مانت را حذف کنید. .PP دستور "umount\-all" سیستم‌فایل‌ها را با مرتب‌سازی مسیرها از طولانی‌ترین به کوتاه‌ترین پیاده می‌کند، بنابراین برای اینکه این مورد برای نقاط مانت دستی کار کند، باید اطمینان حاصل کنید که داخلی‌ترین نقاط مانت دارای طولانی‌ترین مسیرها باشند، همان‌طور که در کد نمونه بالا نشان داده شده است. .PP برای جزئیات بیشتر به https://bugzilla.redhat.com/show_bug.cgi?id=599503 مراجعه کنید. .PP همگام‌سازی خودکار (Autosync) [بخش "set\-autosync" را ببینید؛ این قابلیت به طور پیش‌فرض روی هندل‌ها فعال است] می‌تواند باعث فراخوانی "umount\-all" در هنگام بسته شدن هندل شود که این امر نیز می‌تواند این مشکلات را ایجاد کند. .SS mknod .IX Subsection "mknod" .Vb 1 \& mknod mode devmajor devminor path .Ve .PP این فراخوانی دستگاه‌های ویژه بلوکی یا کاراکتری، یا پایپ‌های نام‌گذاری‌شده (FIFOs) را ایجاد می‌کند. .PP پارامتر \f(CW\*(C`mode\*(C'\fR باید حالت مورد نظر باشد که از ثابت‌های استاندارد استفاده می‌کند. \&\f(CW\*(C`devmajor\*(C'\fR و \f(CW\*(C`devminor\*(C'\fR شماره‌های اصلی و فرعی دستگاه هستند که فقط هنگام ایجاد دستگاه‌های ویژه بلوکی و کاراکتری استفاده می‌شوند. .PP توجه داشته باشید که درست مانند \fBmknod\fR\|(2)، مقدار mode باید به صورت بیتی با S_IFBLK، S_IFCHR، S_IFIFO یا S_IFSOCK با OR ترکیب شده باشد (در غیر این صورت این فراخوانی صرفاً یک فایل معمولی ایجاد می‌کند). این ثابت‌ها در فایل‌های هدر استاندارد لینوکس موجود هستند، یا می‌توانید از "mknod\-b"، "mknod\-c" یا "mkfifo" استفاده کنید که پوشش‌هایی پیرامون این دستور هستند و ثابت مناسب را به صورت بیتی با OR برای شما اعمال می‌کنند. .PP حالت تنظیم‌شده در عمل تحت تأثیر umask قرار می‌گیرد. .PP این دستور به ویژگی \f(CW\*(C`mknod\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS mknod\-b .IX Subsection "mknod-b" .Vb 1 \& mknod\-b mode devmajor devminor path .Ve .PP این فراخوانی یک گره دستگاه بلوکی به نام \f(CW\*(C`path\*(C'\fR با حالت \f(CW\*(C`mode\*(C'\fR و شماره‌های اصلی/فرعی دستگاه \f(CW\*(C`devmajor\*(C'\fR و \f(CW\*(C`devminor\*(C'\fR ایجاد می‌کند. این صرفاً یک پوشش راحت پیرامون "mknod" است. .PP برخلاف "mknod"، پارامتر \f(CW\*(C`mode\*(C'\fR \fBباید\fR فقط شامل بیت‌های مجوزها باشد. .PP حالت تنظیم‌شده در عمل تحت تأثیر umask قرار می‌گیرد. .PP این دستور به ویژگی \f(CW\*(C`mknod\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS mknod\-c .IX Subsection "mknod-c" .Vb 1 \& mknod\-c mode devmajor devminor path .Ve .PP این فراخوانی یک گره دستگاه کاراکتری به نام \f(CW\*(C`path\*(C'\fR با حالت \f(CW\*(C`mode\*(C'\fR و شماره‌های اصلی/فرعی دستگاه \f(CW\*(C`devmajor\*(C'\fR و \f(CW\*(C`devminor\*(C'\fR ایجاد می‌کند. این صرفاً یک پوشش راحت پیرامون "mknod" است. .PP برخلاف "mknod"، پارامتر \f(CW\*(C`mode\*(C'\fR \fBباید\fR فقط شامل بیت‌های مجوزها باشد. .PP حالت تنظیم‌شده در عمل تحت تأثیر umask قرار می‌گیرد. .PP این دستور به ویژگی \f(CW\*(C`mknod\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS mksquashfs .IX Subsection "mksquashfs" .Vb 1 \& mksquashfs path (filename|\-) [compress:..] [excludes:..] .Ve .PP یک سیستم‌فایل squashfs برای \f(CW\*(C`path\*(C'\fR مشخص‌شده ایجاد می‌کند. .PP فلگ اختیاری \f(CW\*(C`compress\*(C'\fR فشرده‌سازی را کنترل می‌کند. در صورت مشخص نشدن، خروجی با استفاده از \f(CW\*(C`gzip\*(C'\fR فشرده می‌شود. در غیر این صورت می‌توان یکی از رشته‌های زیر را برای انتخاب نوع فشرده‌سازی squashfs مشخص کرد: \&\f(CW\*(C`gzip\*(C'\fR, \f(CW\*(C`lzma\*(C'\fR, \f(CW\*(C`lzo\*(C'\fR, \f(CW\*(C`lz4\*(C'\fR, \f(CW\*(C`xz\*(C'\fR. .PP سایر آرگومان‌های اختیاری عبارتند از: .ie n .IP """excludes""" 4 .el .IP \f(CWexcludes\fR 4 .IX Item "excludes" فهرستی از الگوهای جانشین (wildcards). فایل‌هایی که با هر یک از الگوهای جانشین مطابقت داشته باشند مستثنی می‌شوند. .PP لطفاً توجه داشته باشید که این API ممکن است هنگام استفاده برای فشرده‌سازی دایرکتوری‌های حاوی فایل‌های بزرگ، مانند مواردی که squashfs حاصل بیش از ۳ گیگابایت حجم پیدا کند، با شکست مواجه شود. .PP به جای نام فایل از \f(CW\*(C`\-\*(C'\fR استفاده کنید تا از stdin/stdout بخوانید/بنویسید. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .PP این دستور به ویژگی \f(CW\*(C`squashfs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS mkswap .IX Subsection "mkswap" .SS mkswap\-opts .IX Subsection "mkswap-opts" .Vb 1 \& mkswap device [label:..] [uuid:..] .Ve .PP یک پارتیشن swap لینوکس بر روی \f(CW\*(C`device\*(C'\fR ایجاد می‌کند. .PP آرگومان‌های اختیاری \f(CW\*(C`label\*(C'\fR و \f(CW\*(C`uuid\*(C'\fR به شما امکان می‌دهند برچسب و/یا UUID پارتیشن swap جدید را تنظیم کنید. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .SS mkswap\-L .IX Subsection "mkswap-L" .Vb 1 \& mkswap\-L label device .Ve .PP یک پارتیشن swap بر روی \f(CW\*(C`device\*(C'\fR با برچسب \f(CW\*(C`label\*(C'\fR ایجاد می‌کند. .PP توجه داشته باشید که نمی‌توانید برچسب swap را به یک دستگاه بلوکی (مثلاً \fI/dev/sda\fR) اختصاص دهید، بلکه فقط به یک پارتیشن امکان‌پذیر است. به نظر می‌رسد این یکی از محدودیت‌های هسته یا ابزارهای swap باشد. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "mkswap" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آنها نشان می‌دهد که مشکلاتی در استفاده صحیح از این توابع وجود دارد. .SS mkswap\-U .IX Subsection "mkswap-U" .Vb 1 \& mkswap\-U uuid device .Ve .PP یک پارتیشن swap بر روی \f(CW\*(C`device\*(C'\fR با شناسه یکتای \f(CW\*(C`uuid\*(C'\fR ایجاد می‌کند. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "mkswap" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آنها نشان می‌دهد که مشکلاتی در استفاده صحیح از این توابع وجود دارد. .PP این دستور به ویژگی \f(CW\*(C`linuxfsuuid\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS mkswap\-file .IX Subsection "mkswap-file" .Vb 1 \& mkswap\-file path .Ve .PP یک فایل swap ایجاد می‌کند. .PP این دستور صرفاً امضای فایل swap را در یک فایل موجود می‌نویسد. برای ایجاد خود فایل، از دستوری مانند "fallocate" استفاده کنید. .SS mktemp .IX Subsection "mktemp" .Vb 1 \& mktemp tmpl [suffix:..] .Ve .PP این دستور یک فایل موقت ایجاد می‌کند. پارامتر \f(CW\*(C`tmpl\*(C'\fR باید یک مسیر کامل برای نام دایرکتوری موقت باشد که شش کاراکتر پایانی آن "XXXXXX" است. .PP به عنوان مثال: "/tmp/myprogXXXXXX" یا "/Temp/myprogXXXXXX" که مورد دوم برای سیستم‌فایل‌های ویندوز مناسب است. .PP نام فایل موقت ایجادشده بازگردانده می‌شود. .PP فایل موقت با مجوز 0600 ایجاد شده و مالک آن root است. .PP فراخواننده مسئول حذف فایل موقت پس از استفاده است. .PP اگر پارامتر اختیاری \f(CW\*(C`suffix\*(C'\fR داده شود، پسوند (مثلاً \f(CW\*(C`.txt\*(C'\fR) به انتهای نام موقت اضافه می‌شود. .PP همچنین ببینید: "mkdtemp". .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .SS modprobe .IX Subsection "modprobe" .Vb 1 \& modprobe modulename .Ve .PP یک ماژول هسته را در اپلاینس بارگذاری می‌کند. .PP این دستور به ویژگی \f(CW\*(C`linuxmodules\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS mount .IX Subsection "mount" .Vb 1 \& mount mountable mountpoint .Ve .PP یک دیسک مهمان را در موقعیتی از سیستم‌فایل سوار می‌کند. دستگاه‌های بلوکی همان‌طور که به مهمان اضافه شده‌اند، \fI/dev/sda\fR، \fI/dev/sdb\fR و غیره نام‌گذاری می‌شوند. اگر آن دستگاه‌های بلوکی حاوی پارتیشن باشند، نام‌های معمول را خواهند داشت (مثلاً \fI/dev/sda1\fR). همچنین نام‌های سبک LVM به صورت \fI/dev/VG/LV\fR یا رشته‌های قابل‌سوارشدن (mountable) بازگردانده‌شده توسط "list\-filesystems" یا "inspect\-get\-mountpoints" می‌توانند استفاده شوند. .PP قوانین همانند \fBmount\fR\|(2) هستند: یک سیستم‌فایل ابتدا باید روی \fI/\fR سوار شود قبل از اینکه سیستم‌فایل‌های دیگر بتوانند سوار شوند. سایر سیستم‌فایل‌ها فقط می‌توانند روی دایرکتوری‌هایی سوار شوند که از قبل وجود دارند. .PP سیستم‌فایل سوارشده، در صورتی که دسترسی کافی روی دستگاه زیربنایی داشته باشیم، قابل نوشتن است. .PP قبل از libguestfs 1.13.16، این فراخوانی به صورت ضمنی گزینه‌های \f(CW\*(C`sync\*(C'\fR و \f(CW\*(C`noatime\*(C'\fR را اضافه می‌کرد. گزینه \f(CW\*(C`sync\*(C'\fR سرعت نوشتن را به شدت کاهش می‌داد و مشکلات زیادی برای کاربران ایجاد می‌کرد. اگر برنامه شما ممکن است نیاز به کار با نسخه‌های قدیمی‌تر libguestfs داشته باشد، به جای آن از "mount\-options" استفاده کنید (در صورتی که هیچ گزینه‌ای نمی‌خواهید، از یک رشته خالی برای پارامتر اول استفاده کنید). .SS mount\-9p .IX Subsection "mount-9p" .Vb 1 \& mount\-9p mounttag mountpoint [options:..] .Ve .PP این فراخوانی هیچ کاری انجام نمی‌دهد و یک خطا برمی‌گرداند. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .PP \&\fIاین تابع منسوخ شده است.\fR هیچ جایگزینی وجود ندارد. برای اطلاعات بیشتر به مستندات API در \fBguestfs\fR\|(3) مراجعه کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آنها نشان می‌دهد که مشکلاتی در استفاده صحیح از این توابع وجود دارد. .SS mount\-local .IX Subsection "mount-local" .Vb 1 \& mount\-local localmountpoint [readonly:true|false] [options:..] [cachetimeout:N] [debugcalls:true|false] .Ve .PP این فراخوانی سیستم‌فایل قابل‌دسترس با libguestfs را به یک نقطه مانت محلی (دایرکتوری) به نام \f(CW\*(C`localmountpoint\*(C'\fR صادر می‌کند. خواندن و نوشتن‌های معمولی در فایل‌ها و دایرکتوری‌های زیر \f(CW\*(C`localmountpoint\*(C'\fR از طریق libguestfs هدایت می‌شوند. .PP اگر فلگ اختیاری \f(CW\*(C`readonly\*(C'\fR روی true تنظیم شود، نوشتن در سیستم‌فایل خطای \f(CW\*(C`EROFS\*(C'\fR برمی‌گرداند. .PP مقدار \f(CW\*(C`options\*(C'\fR فهرستی از گزینه‌های مانت است که با کاما از هم جدا شده‌اند. برای برخی از گزینه‌های کاربردی \fBguestmount\fR\|(1) را ببینید. .PP مقدار \f(CW\*(C`cachetimeout\*(C'\fR زمان انقضا (به ثانیه) را برای ورودی‌های کش‌شده دایرکتوری تعیین می‌کند. مقدار پیش‌فرض ۶۰ ثانیه است. برای اطلاعات بیشتر \&\fBguestmount\fR\|(1) را ببینید. .PP اگر \f(CW\*(C`debugcalls\*(C'\fR روی true تنظیم شود، اطلاعات اشکال‌زدایی اضافی برای هر فراخوانی FUSE تولید می‌شود. .PP هنگامی که "mount\-local" برمی‌گردد، سیستم‌فایل آماده است اما درخواست‌ها را پردازش نمی‌کند (دسترسی به آن مسدود خواهد شد). باید "mount\-local\-run" را فراخوانی کنید تا حلقه اصلی اجرا شود. .PP برای مستندات کامل بخش "MOUNT LOCAL" در \fBguestfs\fR\|(3) را ببینید. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "OPTIONAL ARGUMENTS" را ببینید. .SS mount\-local\-run .IX Subsection "mount-local-run" .Vb 1 \& mount\-local\-run .Ve .PP اجرای حلقه اصلی که فراخوانی‌های هسته را به فراخوانی‌های libguestfs ترجمه می‌کند. .PP این دستور باید تنها پس از بازگشت موفقیت‌آمیز "mount\-local" فراخوانی شود. این فراخوانی تا زمانی که سیستم فایل آن‌مانت (unmount) نشود بازنخواهد گشت. .PP \&\fBتوجه\fR داشته باشید که نباید \fInot\fR فراخوانی‌های همزمان libguestfs را روی همان هندل از رشته (thread) دیگری انجام دهید. .PP می‌توانید این تابع را از رشته‌ای متفاوت از رشته‌ای که "mount\-local" را فراخوانی کرده اجرا کنید، مشروط به رعایت قوانین معمول برای رشته‌ها و libguestfs (بخش "MULTIPLE HANDLES AND MULTIPLE THREADS" در \fBguestfs\fR\|(3) را ببینید). .PP برای مستندات کامل به "MOUNT LOCAL" در \fBguestfs\fR\|(3) مراجعه کنید. .SS mount\-loop .IX Subsection "mount-loop" .Vb 1 \& mount\-loop file mountpoint .Ve .PP این دستور به شما امکان می‌دهد \fIfile\fR (تصویر یک سیستم فایل درون یک فایل) را روی یک نقطه اتصال (mount point) سوار کنید. این دستور کاملاً معادل دستور \f(CW\*(C`mount \-o loop file mountpoint\*(C'\fR است. .SS mount\-options .IX Subsection "mount-options" .Vb 1 \& mount\-options options mountable mountpoint .Ve .PP این دستور مانند دستور "mount" است، اما به شما امکان می‌دهد گزینه‌های مانت را همانند فلگ \fI\-o\fR در \&\fBmount\fR\|(8) تنظیم کنید. .PP اگر پارامتر \f(CW\*(C`options\*(C'\fR یک رشته خالی باشد، هیچ گزینه‌ای ارسال نمی‌شود (تمام گزینه‌ها به مقادیر پیش‌فرضی که سیستم فایل استفاده می‌کند بازمی‌گردند). .SS mount\-ro .IX Subsection "mount-ro" .Vb 1 \& mount\-ro mountable mountpoint .Ve .PP این دستور مانند دستور "mount" است، اما سیستم فایل را با فلگ فقط‌خواندنی (\fI\-o ro\fR) مانت می‌کند. .SS mount\-vfs .IX Subsection "mount-vfs" .Vb 1 \& mount\-vfs options vfstype mountable mountpoint .Ve .PP این دستور مانند دستور "mount" است، اما به شما امکان می‌دهد هم گزینه‌های مانت و هم نوع vfstype را همانند فلگ‌های \fI\-o\fR و \fI\-t\fR در \fBmount\fR\|(8) مشخص کنید. .SS mountable\-device .IX Subsection "mountable-device" .Vb 1 \& mountable\-device mountable .Ve .PP نام دستگاه یک موجودیت قابل اتصال (mountable) را برمی‌گرداند. در موارد بسیار زیادی، mountable همان نام دستگاه است. .PP اما این موضوع برای زیرحجم‌های (subvolumes) btrfs صدق نمی‌کند؛ جایی که mountable ترکیبی از نام دستگاه و مسیر زیرحجم است (همچنین برای استخراج مسیر زیرحجم از mountable، در صورت وجود، به "mountable\-subvolume" مراجعه کنید). .SS mountable\-subvolume .IX Subsection "mountable-subvolume" .Vb 1 \& mountable\-subvolume mountable .Ve .PP مسیر زیرحجم (subvolume) یک mountable را برمی‌گرداند. موجودیت‌های قابل اتصال زیرحجم‌های Btrfs ترکیبی از نام دستگاه و مسیر زیرحجم هستند (همچنین برای استخراج دستگاه از mountable به "mountable\-device" مراجعه کنید). .PP اگر mountable نشان‌دهنده یک زیرحجم btrfs نباشد، این تابع با شکست مواجه شده و \f(CW\*(C`errno\*(C'\fR روی \f(CW\*(C`EINVAL\*(C'\fR تنظیم می‌شود. .SS mountpoints .IX Subsection "mountpoints" .Vb 1 \& mountpoints .Ve .PP این فراخوانی شبیه به "mounts" است. آن فراخوانی فهرستی از دستگاه‌ها را برمی‌گرداند. این یکی یک جدول هش (مپ) از نام دستگاه به دایرکتوری‌ای که دستگاه در آن مانت شده است را برمی‌گرداند. .SS mounts .IX Subsection "mounts" .Vb 1 \& mounts .Ve .PP این دستور فهرستی از سیستم‌های فایل متصل‌شده فعلی را برمی‌گرداند. این دستور فهرستی از دستگاه‌ها (مانند \fI/dev/sda1\fR و \fI/dev/VG/LV\fR) را بازمی‌گرداند. .PP برخی از مانت‌های داخلی نمایش داده نمی‌شوند. .PP همچنین ببینید: "mountpoints" .SS mv .IX Subsection "mv" .Vb 1 \& mv src dest .Ve .PP این دستور فایلی را از \f(CW\*(C`src\*(C'\fR به \f(CW\*(C`dest\*(C'\fR منتقل می‌کند که در آن \f(CW\*(C`dest\*(C'\fR می‌تواند نام فایل مقصد یا دایرکتوری مقصد باشد. .PP همچنین ببینید: "rename". .SS nr\-devices .IX Subsection "nr-devices" .Vb 1 \& nr\-devices .Ve .PP تعداد کل دستگاه‌های بلاکی (block devices) اضافه شده را برمی‌گرداند. این تعداد برابر با تعداد دستگاه‌هایی است که در صورت فراخوانی "list\-devices" بازگردانده می‌شدند. .PP برای اطلاع از حداکثر تعداد دستگاه‌هایی که می‌توان اضافه کرد، "max\-disks" را فراخوانی کنید. .SS ntfs\-3g\-probe .IX Subsection "ntfs-3g-probe" .Vb 1 \& ntfs\-3g\-probe true|false device .Ve .PP این دستور، دستور \fBntfs\-3g.probe\fR\|(8) را اجرا می‌کند که قابلیت مانت شدن یک \f(CW\*(C`device\*(C'\fR از نوع NTFS را بررسی می‌کند. (همه حجم‌های NTFS نمی‌توانند به‌صورت خواندنی\-نوشتنی مانت شوند و برخی اصلاً قابل مانت نیستند). .PP \&\f(CW\*(C`rw\*(C'\fR یک فلگ بولی است. اگر می‌خواهید بررسی کنید که آیا حجم به‌صورت خواندنی\-نوشتنی قابل مانت است آن را true قرار دهید. اگر می‌خواهید قابلیت مانت فقط‌خواندنی را بررسی کنید آن را false بگذارید. .PP مقدار بازگشتی یک عدد صحیح است که در صورت موفقیت‌آمیز بودن عملیات برابر با \f(CW0\fR خواهد بود، یا مقداری غیرصفر خواهد بود که در صفحه راهنمای \&\fBntfs\-3g.probe\fR\|(8) مستند شده است. .PP این دستور به ویژگی \f(CW\*(C`ntfs3g\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS ntfs\-chmod .IX Subsection "ntfs-chmod" .Vb 1 \& ntfs\-chmod device mode path [recursive:true|false] .Ve .PP تغییر مجوزهای فایل در یک سیستم فایل NTFS با استفاده از یک ماسک مجوز به سبک chmod، با استفاده از \fBntfssecaudit\fR\|(8). فقط حالت‌های عددی پشتیبانی می‌شوند. .PP \&\fINote\fR: هنگام استفاده از این دستور از طریق guestfish، مقدار \f(CW\*(C`mode\*(C'\fR به طور پیش‌فرض در مبنای ۱۰ (decimal) در نظر گرفته می‌شود، مگر اینکه پیشوند \&\f(CW0\fR را برای مبنای ۸ (octal) قرار دهید؛ یعنی از \f(CW0700\fR استفاده کنید نه \f(CW700\fR. .PP پارامتر \f(CW\*(C`device\*(C'\fR دستگاه پارتیشن NTFS است (مانند \f(CW\*(C`/dev/sda5\*(C'\fR). این دستگاه باید آن‌مانت باشد. پارامتر \f(CW\*(C`mode\*(C'\fR حالت مجوزها است (مانند \f(CW0744\fR). پارامتر \f(CW\*(C`path\*(C'\fR مسیر فایل یا دایرکتوری در سیستم فایل است. اگر فلگ اختیاری \f(CW\*(C`recursive\*(C'\fR تنظیم شده باشد، مجوزهای دایرکتوری به‌صورت بازگشتی اعمال می‌شوند. .PP این دستور یک یا چند آرگومان اختیاری دارد. به "OPTIONAL ARGUMENTS" مراجعه کنید. .PP این دستور به ویژگی \f(CW\*(C`ntfs3g\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS ntfscat\-i .IX Subsection "ntfscat-i" .Vb 1 \& ntfscat\-i device inode (filename|\-) .Ve .PP دانلود یک فایل از طریق اینود (inode) آن از یک سیستم فایل NTFS و ذخیره آن با نام \&\fIfilename\fR روی ماشین محلی. .PP این دستور امکان دانلود برخی فایل‌های غیرقابل دسترس مانند فایل‌های درون پوشه \f(CW$Extend\fR را فراهم می‌کند. .PP سیستم فایلی که فایل از آن استخراج می‌شود باید آن‌مانت باشد، در غیر این صورت فراخوانی ناموفق خواهد بود. .PP برای خواندن/نوشتن از stdin/stdout به جای نام فایل از \f(CW\*(C`\-\*(C'\fR استفاده کنید. .SS ntfsclone\-in .IX Subsection "ntfsclone-in" .Vb 1 \& ntfsclone\-in (backupfile|\-) device .Ve .PP بازیابی \f(CW\*(C`backupfile\*(C'\fR (از فراخوانی قبلی "ntfsclone\-out") روی \f(CW\*(C`device\*(C'\fR، که باعث رونویسی هرگونه محتوای موجود روی این دستگاه می‌شود. .PP برای خواندن/نوشتن از stdin/stdout به جای نام فایل از \f(CW\*(C`\-\*(C'\fR استفاده کنید. .PP این دستور به ویژگی \f(CW\*(C`ntfs3g\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS ntfsclone\-out .IX Subsection "ntfsclone-out" .Vb 1 \& ntfsclone\-out device (backupfile|\-) [metadataonly:true|false] [rescue:true|false] [ignorefscheck:true|false] [preservetimestamps:true|false] [force:true|false] .Ve .PP جریان دادن (Stream) سیستم فایل NTFS از \f(CW\*(C`device\*(C'\fR به فایل محلی \&\f(CW\*(C`backupfile\*(C'\fR. قالب مورد استفاده برای فایل پشتیبان، یک فرمت ویژه است که توسط ابزار \fBntfsclone\fR\|(8) استفاده می‌شود. .PP اگر فلگ اختیاری \f(CW\*(C`metadataonly\*(C'\fR برابر با true باشد، \fIتنها\fR متادیتا ذخیره می‌شود و تمام داده‌های کاربر از دست می‌روند (این برای عیب‌یابی برخی مشکلات سیستم فایل کاربرد دارد). .PP فلگ‌های اختیاری \f(CW\*(C`rescue\*(C'\fR، \f(CW\*(C`ignorefscheck\*(C'\fR، \f(CW\*(C`preservetimestamps\*(C'\fR و \f(CW\*(C`force\*(C'\fR معانی دقیقی دارند که در صفحه راهنمای \&\fBntfsclone\fR\|(8) به تفصیل شرح داده شده‌اند. .PP برای بازیابی مجدد فایل روی یک دستگاه libguestfs، از "ntfsclone\-in" استفاده کنید. .PP برای خواندن/نوشتن از stdin/stdout به جای نام فایل از \f(CW\*(C`\-\*(C'\fR استفاده کنید. .PP این دستور یک یا چند آرگومان اختیاری دارد. به "OPTIONAL ARGUMENTS" مراجعه کنید. .PP این دستور به ویژگی \f(CW\*(C`ntfs3g\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS ntfsfix .IX Subsection "ntfsfix" .Vb 1 \& ntfsfix device [clearbadsectors:true|false] .Ve .PP این دستور برخی از ناسازگاری‌های اساسی NTFS را تعمیر می‌کند، فایل ژورنال NTFS را ریست می‌نماید، و یک بررسی یکپارچگی NTFS را برای اولین راه‌اندازی ویندوز زمان‌بندی می‌کند. .PP این دستور معادل \f(CW\*(C`chkdsk\*(C'\fR ویندوز \fInot\fR نیست. این دستور سیستم فایل را برای یافتن ناسازگاری‌ها اسکن \fInot\fR نمی‌کند. .PP فلگ اختیاری \f(CW\*(C`clearbadsectors\*(C'\fR فهرست سکتورهای خراب (bad sectors) را پاک می‌کند. این مورد پس از شبیه‌سازی دیسکی با سکتورهای خراب روی یک دیسک جدید مفید است. .PP این دستور یک یا چند آرگومان اختیاری دارد. به "OPTIONAL ARGUMENTS" مراجعه کنید. .PP این دستور به ویژگی \f(CW\*(C`ntfs3g\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS ntfsresize .IX Subsection "ntfsresize" .SS ntfsresize\-opts .IX Subsection "ntfsresize-opts" .Vb 1 \& ntfsresize device [size:N] [force:true|false] .Ve .PP این دستور اندازه یک سیستم فایل NTFS را تغییر می‌دهد و آن را به اندازه دستگاه زیرین گسترش داده یا کوچک می‌کند. .PP پارامترهای اختیاری عبارتند از: .ie n .IP """size""" 4 .el .IP \f(CWsize\fR 4 .IX Item "size" اندازه جدید سیستم فایل (به بایت). در صورت حذف، اندازه سیستم فایل طوری تغییر می‌کند که متناسب با نگه‌دارنده (مانند پارتیشن) باشد. .ie n .IP """force""" 4 .el .IP \f(CWforce\fR 4 .IX Item "force" اگر این گزینه true باشد، تغییر اندازه سیستم فایل اجبار می‌شود، حتی اگر سیستم فایل طوری علامت‌گذاری شده باشد که نیاز به بررسی یکپارچگی داشته باشد. .Sp پس از عملیات تغییر اندازه، سیستم فایل همیشه طوری علامت‌گذاری می‌شود که نیاز به بررسی یکپارچگی داشته باشد (برای ایمنی). برای انجام این بررسی و پاک کردن این وضعیت، باید سیستم را با ویندوز بوت کنید. اگر گزینه \f(CW\*(C`force\*(C'\fR را تنظیم \fIdon\*(Aqt\fR نکنید، فراخوانی مکرر "ntfsresize" روی یک سیستم فایل واحد بدون بوت شدن به ویندوز در بین هر تغییر اندازه امکان‌پذیر نخواهد بود. .PP همچنین \fBntfsresize\fR\|(8) را ببینید. .PP این دستور یک یا چند آرگومان اختیاری دارد. به "OPTIONAL ARGUMENTS" مراجعه کنید. .PP این دستور به ویژگی \f(CW\*(C`ntfsprogs\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS ntfsresize\-size .IX Subsection "ntfsresize-size" .Vb 1 \& ntfsresize\-size device size .Ve .PP این دستور همانند "ntfsresize" است به جز اینکه به شما اجازه می‌دهد اندازه جدید (به بایت) را به صراحت مشخص کنید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "ntfsresize" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ شدن آنها نشان می‌دهد که مشکلاتی در استفاده صحیح از این توابع وجود دارد. .PP این دستور به ویژگی \f(CW\*(C`ntfsprogs\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS parse\-environment .IX Subsection "parse-environment" .Vb 1 \& parse\-environment .Ve .PP محیط برنامه (Environment) را تجزیه کرده و فلگ‌ها را متناسب با آن در هندل تنظیم می‌کند. برای مثال اگر \f(CW\*(C`LIBGUESTFS_DEBUG=1\*(C'\fR باشد، فلگ ‘verbose’ در هندل تنظیم می‌شود. .PP \&\fIبیشتر برنامه‌ها نیازی به فراخوانی این دستور ندارند\fR. این کار هنگام فراخوانی "create" به طور ضمنی انجام می‌شود. .PP برای فهرستی از متغیرهای محیطی که می‌توانند بر هندل‌های libguestfs تأثیر بگذارند، به "ENVIRONMENT VARIABLES" در \fBguestfs\fR\|(3) مراجعه کنید. همچنین "guestfs_create_flags" در \fBguestfs\fR\|(3) و "parse\-environment\-list" را ببینید. .SS parse\-environment\-list .IX Subsection "parse-environment-list" .Vb 1 \& parse\-environment\-list \*(Aqenvironment ...\*(Aq .Ve .PP فهرست رشته‌ها را در آرگومان \f(CW\*(C`environment\*(C'\fR تجزیه کرده و فلگ‌ها را متناسب با آن در هندل تنظیم می‌کند. برای مثال اگر \f(CW\*(C`LIBGUESTFS_DEBUG=1\*(C'\fR رشته‌ای در این فهرست باشد، فلگ ‘verbose’ در هندل تنظیم می‌شود. .PP این دستور مانند "parse\-environment" است به جز اینکه فهرستی صریح از رشته‌ها را به جای محیط خود برنامه تجزیه می‌کند. .SS part\-add .IX Subsection "part-add" .Vb 1 \& part\-add device prlogex startsect endsect .Ve .PP این دستور یک پارتیشن به \f(CW\*(C`device\*(C'\fR اضافه می‌کند. اگر جدول پارتیشن روی دستگاه وجود ندارد، ابتدا "part\-init" را فراخوانی کنید. .PP پارامتر \f(CW\*(C`prlogex\*(C'\fR نوع پارتیشن است. به طور معمول در اینجا باید \f(CW\*(C`p\*(C'\fR یا \f(CW\*(C`primary\*(C'\fR را ارسال کنید، اما جداول پارتیشن MBR از انواع پارتیشن \f(CW\*(C`l\*(C'\fR (یا \f(CW\*(C`logical\*(C'\fR) و \f(CW\*(C`e\*(C'\fR (یا \f(CW\*(C`extended\*(C'\fR) نیز پشتیبانی می‌کنند. .PP \&\f(CW\*(C`startsect\*(C'\fR و \f(CW\*(C`endsect\*(C'\fR شروع و پایان پارتیشن بر حسب \fIسکتور\fR هستند. مقدار \f(CW\*(C`endsect\*(C'\fR می‌تواند منفی باشد که به معنای شمارش معکوس از انتهای دیسک است (\f(CW\-1\fR آخرین سکتور است). .PP ایجاد پارتیشنی که کل دیسک را پوشش دهد چندان ساده نیست. برای انجام این کار از "part\-disk" استفاده کنید. .SS part\-del .IX Subsection "part-del" .Vb 1 \& part\-del device partnum .Ve .PP این دستور پارتیشن با شماره \f(CW\*(C`partnum\*(C'\fR را روی \f(CW\*(C`device\*(C'\fR حذف می‌کند. .PP توجه داشته باشید که در مورد پارتیشن‌بندی MBR، حذف یک پارتیشن extended تمام پارتیشن‌های logical درون آن را نیز حذف می‌کند. .SS part\-disk .IX Subsection "part-disk" .Vb 1 \& part\-disk device parttype .Ve .PP این دستور صرفاً ترکیبی از "part\-init" و سپس "part\-add" برای ایجاد یک پارتیشن primary واحد است که کل دیسک را می‌پوشاند. .PP \&\f(CW\*(C`parttype\*(C'\fR نوع جدول پارتیشن است، معمولاً \f(CW\*(C`mbr\*(C'\fR یا \f(CW\*(C`gpt\*(C'\fR، اما مقادیر ممکن دیگر در "part\-init" شرح داده شده‌اند. .SS part\-expand\-gpt .IX Subsection "part-expand-gpt" .Vb 1 \& part\-expand\-gpt device .Ve .PP ساختارهای داده پشتیبان GPT (یا backup GPT) را به انتهای دیسک منتقل می‌کند. این مورد در زمان گسترش درجا (in-place) تصویر دیسک مفید است زیرا فضای دیسک پس از هدر پشتیبان GPT قابل استفاده نیست. این دستور معادل \f(CW\*(C`sgdisk \-e\*(C'\fR است. .PP همچنین \fBsgdisk\fR\|(8) را ببینید. .PP این دستور به ویژگی \f(CW\*(C`gdisk\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS part\-get\-bootable .IX Subsection "part-get-bootable" .Vb 1 \& part\-get\-bootable device partnum .Ve .PP اگر پارتیشن \f(CW\*(C`partnum\*(C'\fR روی \f(CW\*(C`device\*(C'\fR دارای فلگ bootable فعال باشد، مقدار true برمی‌گرداند. .PP همچنین ببینید: "part\-set\-bootable". .SS part\-get\-disk\-guid .IX Subsection "part-get-disk-guid" .Vb 1 \& part\-get\-disk\-guid device .Ve .PP شناسه دیسک (GUID) یک \f(CW\*(C`device\*(C'\fR با پارتیشن‌بندی GPT را برمی‌گرداند. رفتار برای انواع دیگر پارتیشن نامشخص (undefined) است. .SS part\-get\-gpt\-attributes .IX Subsection "part-get-gpt-attributes" .Vb 1 \& part\-get\-gpt\-attributes device partnum .Ve .PP فلگ‌های ویژگی پارتیشن GPT با شماره \f(CW\*(C`partnum\*(C'\fR را برمی‌گرداند. برای پارتیشن‌های MBR خطا برگردانده می‌شود. .SS part\-get\-gpt\-guid .IX Subsection "part-get-gpt-guid" .Vb 1 \& part\-get\-gpt\-guid device partnum .Ve .PP شناسه GUID پارتیشن GPT شماره \f(CW\*(C`partnum\*(C'\fR را برمی‌گرداند. .SS part\-get\-gpt\-type .IX Subsection "part-get-gpt-type" .Vb 1 \& part\-get\-gpt\-type device partnum .Ve .PP شناسه نوع (type GUID) پارتیشن GPT شماره \f(CW\*(C`partnum\*(C'\fR را برمی‌گرداند. .SS part\-get\-mbr\-id .IX Subsection "part-get-mbr-id" .Vb 1 \& part\-get\-mbr\-id device partnum .Ve .PP بایت نوع MBR (که با نام بایت ID نیز شناخته می‌شود) را از پارتیشن شماره \f(CW\*(C`partnum\*(C'\fR برمی‌گرداند. .PP توجه داشته باشید که فقط پارتیشن‌های MBR (سبک قدیمی DOS) دارای بایت نوع هستند. برای سایر انواع جدول پارتیشن نتایج نامشخص دریافت خواهید کرد ("part\-get\-parttype" را ببینید). .SS part\-get\-mbr\-part\-type .IX Subsection "part-get-mbr-part-type" .Vb 1 \& part\-get\-mbr\-part\-type device partnum .Ve .PP نوع پارتیشن یک پارتیشن MBR با شماره \f(CW\*(C`partnum\*(C'\fR روی دستگاه \f(CW\*(C`device\*(C'\fR را برمی‌گرداند. .PP مقادیر بازگشتی \f(CW\*(C`primary\*(C'\fR، \f(CW\*(C`logical\*(C'\fR، یا \f(CW\*(C`extended\*(C'\fR هستند. .SS part\-get\-name .IX Subsection "part-get-name" .Vb 1 \& part\-get\-name device partnum .Ve .PP نام پارتیشن شماره \f(CW\*(C`partnum\*(C'\fR روی دستگاه \f(CW\*(C`device\*(C'\fR را دریافت می‌کند. توجه داشته باشید که شماره‌گذاری پارتیشن‌ها از ۱ شروع می‌شود. .PP نام پارتیشن فقط در انواع خاصی از جدول پارتیشن قابل خواندن است. این ویژگی روی پارتیشن‌های \f(CW\*(C`gpt\*(C'\fR کار می‌کند اما روی \f(CW\*(C`mbr\*(C'\fR کار نمی‌کند. .SS part\-get\-parttype .IX Subsection "part-get-parttype" .Vb 1 \& part\-get\-parttype device .Ve .PP این دستور جدول پارتیشن روی \f(CW\*(C`device\*(C'\fR را بررسی کرده و نوع (فرمت) جدول پارتیشن در حال استفاده را برمی‌گرداند. .PP مقادیر بازگشتی متداول عبارتند از: \f(CW\*(C`msdos\*(C'\fR (جدول پارتیشن MBR سبک DOS/Windows)، \&\f(CW\*(C`gpt\*(C'\fR (جدول پارتیشن سبک GPT/EFI). مقادیر دیگری نیز امکان‌پذیر هستند، هرچند غیرمعمول. برای فهرست کامل به "part\-init" مراجعه کنید. .SS part\-init .IX Subsection "part-init" .Vb 1 \& part\-init device parttype .Ve .PP یک جدول پارتیشن خالی از یکی از انواع فهرست‌شده در زیر روی \f(CW\*(C`device\*(C'\fR ایجاد می‌کند. معمولاً \f(CW\*(C`parttype\*(C'\fR باید \f(CW\*(C`msdos\*(C'\fR یا \f(CW\*(C`gpt\*(C'\fR (برای دیسک‌های بزرگ) باشد. .PP در ابتدا هیچ پارتیشنی وجود ندارد. در ادامه، باید برای هر پارتیشن مورد نیاز "part\-add" را فراخوانی کنید. .PP مقادیر مجاز برای \f(CW\*(C`parttype\*(C'\fR عبارتند از: .ie n .IP """efi""" 4 .el .IP \f(CWefi\fR 4 .IX Item "efi" .PD 0 .ie n .IP """gpt""" 4 .el .IP \f(CWgpt\fR 4 .IX Item "gpt" .PD جدول پارتیشن Intel EFI / GPT. .Sp این گزینه برای پارتیشن‌های بزرگتر یا مساوی ۲ ترابایت که از لینوکس و سیستم‌های Mac OS X مبتنی بر اینتل در دسترس خواهند بود، توصیه می‌شود. همچنین دارای سازگاری محدود رو به عقب با فرمت \f(CW\*(C`mbr\*(C'\fR است. .ie n .IP """mbr""" 4 .el .IP \f(CWmbr\fR 4 .IX Item "mbr" .PD 0 .ie n .IP """msdos""" 4 .el .IP \f(CWmsdos\fR 4 .IX Item "msdos" .PD فرمت استاندارد "Master Boot Record" (MBR) در PC که توسط MS\-DOS و ویندوز استفاده می‌شود. این نوع پارتیشن \fBonly\fR فقط برای اندازه‌های دستگاه تا ۲ ترابایت کار می‌کند. برای دیسک‌های بزرگ استفاده از \f(CW\*(C`gpt\*(C'\fR توصیه می‌شود. .PP انواع دیگر جدول پارتیشن که ممکن است کار کنند اما پشتیبانی نمی‌شوند شامل موارد زیر هستند: .ie n .IP """aix""" 4 .el .IP \f(CWaix\fR 4 .IX Item "aix" برچسب‌های دیسک AIX. .ie n .IP """amiga""" 4 .el .IP \f(CWamiga\fR 4 .IX Item "amiga" .PD 0 .ie n .IP """rdb""" 4 .el .IP \f(CWrdb\fR 4 .IX Item "rdb" .PD فرمت "Rigid Disk Block" آمیگا. .ie n .IP """bsd""" 4 .el .IP \f(CWbsd\fR 4 .IX Item "bsd" برچسب‌های دیسک BSD. .ie n .IP """dasd""" 4 .el .IP \f(CWdasd\fR 4 .IX Item "dasd" فرمت DASD، استفاده‌شده در مِین‌فریم‌های IBM. .ie n .IP """dvh""" 4 .el .IP \f(CWdvh\fR 4 .IX Item "dvh" حجم‌های MIPS/SGI. .ie n .IP """mac""" 4 .el .IP \f(CWmac\fR 4 .IX Item "mac" فرمت پارتیشن قدیمی مک. مک‌های مدرن از \f(CW\*(C`gpt\*(C'\fR استفاده می‌کنند. .ie n .IP """pc98""" 4 .el .IP \f(CWpc98\fR 4 .IX Item "pc98" فرمت NEC PC\-98، ظاهراً رایج در ژاپن. .ie n .IP """sun""" 4 .el .IP \f(CWsun\fR 4 .IX Item "sun" برچسب‌های دیسک Sun. .SS part\-list .IX Subsection "part-list" .Vb 1 \& part\-list device .Ve .PP این دستور جدول پارتیشن روی \f(CW\*(C`device\*(C'\fR را تجزیه کرده و فهرست پارتیشن‌های یافت‌شده را برمی‌گرداند. .PP فیلدهای ساختار بازگردانده‌شده عبارتند از: .ie n .IP """part_num""" 4 .el .IP \f(CWpart_num\fR 4 .IX Item "part_num" شماره پارتیشن، با شمارش از ۱. .ie n .IP """part_start""" 4 .el .IP \f(CWpart_start\fR 4 .IX Item "part_start" شروع پارتیشن \fIبه بایت\fR. برای دریافت سکتورها باید آن را بر اندازه سکتور دستگاه تقسیم کنید؛ "blockdev\-getss" را ببینید. .ie n .IP """part_end""" 4 .el .IP \f(CWpart_end\fR 4 .IX Item "part_end" پایان پارتیشن به بایت. .ie n .IP """part_size""" 4 .el .IP \f(CWpart_size\fR 4 .IX Item "part_size" اندازه پارتیشن به بایت. .SS part\-resize .IX Subsection "part-resize" .Vb 1 \& part\-resize device partnum endsect .Ve .PP این دستور اندازه پارتیشن شماره \f(CW\*(C`partnum\*(C'\fR روی \f(CW\*(C`device\*(C'\fR را با جابجا کردن موقعیت پایان تغییر می‌دهد. .PP توجه داشته باشید که این دستور هیچ سیستم فایلی موجود در پارتیشن را تغییر نمی‌دهد. اگر می‌خواهید این کار را انجام دهید، باید از دستورات تغییر اندازه سیستم فایل مانند "resize2fs" استفاده کنید. .PP هنگام بزرگ کردن پارتیشن، می‌خواهید بعد از آن سیستم فایل را گسترش دهید، اما هنگام کوچک کردن، باید سیستم فایل را قبل از پارتیشن کوچک کنید. .SS part\-set\-bootable .IX Subsection "part-set-bootable" .Vb 1 \& part\-set\-bootable device partnum true|false .Ve .PP این دستور فلگ قابلیت بوت (bootable) را روی پارتیشن شماره \f(CW\*(C`partnum\*(C'\fR روی دستگاه \f(CW\*(C`device\*(C'\fR تنظیم می‌کند. توجه داشته باشید که شماره‌گذاری پارتیشن‌ها از ۱ شروع می‌شود. .PP فلگ bootable توسط برخی از سیستم‌های عامل (به‌ویژه ویندوز) برای تشخیص پارتیشنی که باید از آن بوت شوند استفاده می‌شود. این موضوع به هیچ وجه یک استاندارد جهانی نیست. .SS part\-set\-disk\-guid .IX Subsection "part-set-disk-guid" .Vb 1 \& part\-set\-disk\-guid device guid .Ve .PP شناسه دیسک (GUID) یک \f(CW\*(C`device\*(C'\fR با پارتیشن‌بندی GPT را روی \f(CW\*(C`guid\*(C'\fR تنظیم می‌کند. اگر جدول پارتیشن \f(CW\*(C`device\*(C'\fR از نوع GPT نباشد، یا اگر \f(CW\*(C`guid\*(C'\fR یک GUID معتبر نباشد، خطا برمی‌گرداند. .SS part\-set\-disk\-guid\-random .IX Subsection "part-set-disk-guid-random" .Vb 1 \& part\-set\-disk\-guid\-random device .Ve .PP شناسه دیسک (GUID) یک \f(CW\*(C`device\*(C'\fR با پارتیشن‌بندی GPT را به یک مقدار تولیدشده به صورت تصادفی تنظیم می‌کند. اگر جدول پارتیشن \f(CW\*(C`device\*(C'\fR از نوع GPT نباشد خطا برمی‌گرداند. .SS part\-set\-gpt\-attributes .IX Subsection "part-set-gpt-attributes" .Vb 1 \& part\-set\-gpt\-attributes device partnum attributes .Ve .PP فلگ‌های ویژگی پارتیشن GPT شماره \f(CW\*(C`partnum\*(C'\fR را روی \f(CW\*(C`attributes\*(C'\fR تنظیم می‌کند. اگر جدول پارتیشن \f(CW\*(C`device\*(C'\fR از نوع GPT نباشد، خطا برمی‌گرداند. .PP برای فهرستی مفید از ویژگی‌های پارتیشن به https://en.wikipedia.org/wiki/GUID_Partition_Table#Partition_entries مراجعه کنید. .SS part\-set\-gpt\-guid .IX Subsection "part-set-gpt-guid" .Vb 1 \& part\-set\-gpt\-guid device partnum guid .Ve .PP شناسه GUID پارتیشن GPT شماره \f(CW\*(C`partnum\*(C'\fR را روی \f(CW\*(C`guid\*(C'\fR تنظیم می‌کند. اگر جدول پارتیشن \f(CW\*(C`device\*(C'\fR از نوع GPT نباشد یا اگر \f(CW\*(C`guid\*(C'\fR یک GUID معتبر نباشد، خطا برمی‌گرداند. .SS part\-set\-gpt\-type .IX Subsection "part-set-gpt-type" .Vb 1 \& part\-set\-gpt\-type device partnum guid .Ve .PP شناسه نوع (type GUID) پارتیشن GPT شماره \f(CW\*(C`partnum\*(C'\fR را روی \f(CW\*(C`guid\*(C'\fR تنظیم می‌کند. اگر جدول پارتیشن \f(CW\*(C`device\*(C'\fR از نوع GPT نباشد، یا اگر \f(CW\*(C`guid\*(C'\fR یک GUID معتبر نباشد، خطا برمی‌گرداند. .PP برای فهرستی مفید از GUIDهای نوع به https://en.wikipedia.org/wiki/GUID_Partition_Table#Partition_type_GUIDs مراجعه کنید. .SS part\-set\-mbr\-id .IX Subsection "part-set-mbr-id" .Vb 1 \& part\-set\-mbr\-id device partnum idbyte .Ve .PP بایت نوع MBR (که با نام بایت ID نیز شناخته می‌شود) پارتیشن شماره \f(CW\*(C`partnum\*(C'\fR را روی \f(CW\*(C`idbyte\*(C'\fR تنظیم می‌کند. توجه داشته باشید که بایت‌های نوع ذکرشده در بیشتر مستندات در واقع اعداد هگزادسیمال هستند، اما معمولاً بدون هیچ "0x" ابتدایی ذکر می‌شوند که ممکن است گیج‌کننده باشد. .PP توجه داشته باشید که فقط پارتیشن‌های MBR (سبک قدیمی DOS) دارای بایت نوع هستند. برای سایر انواع جدول پارتیشن نتایج نامشخص دریافت خواهید کرد ("part\-get\-parttype" را ببینید). .SS part\-set\-name .IX Subsection "part-set-name" .Vb 1 \& part\-set\-name device partnum name .Ve .PP نام پارتیشن شماره \f(CW\*(C`partnum\*(C'\fR روی دستگاه \f(CW\*(C`device\*(C'\fR را تنظیم می‌کند. توجه داشته باشید که شماره‌گذاری پارتیشن‌ها از ۱ شروع می‌شود. .PP نام پارتیشن فقط در انواع خاصی از جدول پارتیشن قابل تنظیم است. این قابلیت روی پارتیشن‌های \f(CW\*(C`gpt\*(C'\fR کار می‌کند اما روی \f(CW\*(C`mbr\*(C'\fR کار نمی‌کند. .SS part\-to\-dev .IX Subsection "part-to-dev" .Vb 1 \& part\-to\-dev partition .Ve .PP این تابع نام یک پارتیشن (مانند "/dev/sdb1") را گرفته و شماره پارتیشن را حذف می‌کند و نام دستگاه را برمی‌گرداند (مانند "/dev/sdb"). .PP پارتیشن نام‌برده‌شده باید وجود داشته باشد، به عنوان مثال به صورت یک رشته بازگردانده‌شده از "list\-partitions". .PP همچنین ببینید: "part\-to\-partnum"، "device\-index". .SS part\-to\-partnum .IX Subsection "part-to-partnum" .Vb 1 \& part\-to\-partnum partition .Ve .PP این تابع نام یک پارتیشن (مانند "/dev/sdb1") را گرفته و شماره پارتیشن را برمی‌گرداند (مانند \f(CW1\fR). .PP پارتیشن نام‌برده‌شده باید وجود داشته باشد، به عنوان مثال به صورت یک رشته بازگردانده‌شده از "list\-partitions". .PP همچنین ببینید: "part\-to\-dev". .SS ping\-daemon .IX Subsection "ping-daemon" .Vb 1 \& ping\-daemon .Ve .PP این یک پروب آزمایشی به دیمن guestfs است که در داخل appliance لیب‌گست‌اف‌اس (libguestfs) در حال اجراست. فراخوانی این تابع بررسی می‌کند که آیا دیمن به پیام پینگ پاسخ می‌دهد یا خیر، بدون اینکه به هر نحو دیگری بر دیمن یا دستگاه(های) بلاکی متصل تأثیر بگذارد. .SS pread .IX Subsection "pread" .Vb 1 \& pread path count offset .Ve .PP این دستور به شما امکان می‌دهد بخشی از یک فایل را بخوانید. این دستور \f(CW\*(C`count\*(C'\fR بایت از فایل را با شروع از آفست \f(CW\*(C`offset\*(C'\fR از فایل \f(CW\*(C`path\*(C'\fR می‌خواند. .PP این تابع ممکن است بایت‌های کمتری نسبت به مقدار درخواستی بخواند. برای جزئیات بیشتر فراخوانی سیستمی \fBpread\fR\|(2) را ببینید. .PP همچنین ببینید: "pwrite"، "pread\-device". .PP به دلیل پروتکل پیام‌رسانی، محدودیت انتقالی در حدود ۲ تا ۴ مگابایت وجود دارد. به "PROTOCOL LIMITS" در \fBguestfs\fR\|(3) مراجعه کنید. .SS pread\-device .IX Subsection "pread-device" .Vb 1 \& pread\-device device count offset .Ve .PP این دستور به شما امکان می‌دهد بخشی از یک دستگاه بلاکی را بخوانید. این دستور \f(CW\*(C`count\*(C'\fR بایت از \f(CW\*(C`device\*(C'\fR را با شروع از آفست \f(CW\*(C`offset\*(C'\fR می‌خواند. .PP این تابع ممکن است بایت‌های کمتری نسبت به مقدار درخواستی بخواند. برای جزئیات بیشتر فراخوانی سیستمی \fBpread\fR\|(2) را ببینید. .PP همچنین ببینید: "pread". .PP به دلیل پروتکل پیام‌رسانی، محدودیت انتقالی در حدود ۲ تا ۴ مگابایت وجود دارد. به "PROTOCOL LIMITS" در \fBguestfs\fR\|(3) مراجعه کنید. .SS pvchange\-uuid .IX Subsection "pvchange-uuid" .Vb 1 \& pvchange\-uuid device .Ve .PP تولید یک UUID تصادفی جدید برای حجم فیزیکی (PV) \f(CW\*(C`device\*(C'\fR. .PP این دستور به ویژگی \f(CW\*(C`lvm2\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS pvchange\-uuid\-all .IX Subsection "pvchange-uuid-all" .Vb 1 \& pvchange\-uuid\-all .Ve .PP تولید UUIDهای تصادفی جدید برای تمام حجم‌های فیزیکی. .PP این دستور به ویژگی \f(CW\*(C`lvm2\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS pvcreate .IX Subsection "pvcreate" .Vb 1 \& pvcreate device .Ve .PP یک حجم فیزیکی LVM (یا Physical Volume) روی \f(CW\*(C`device\*(C'\fR نام‌برده ایجاد می‌کند، جایی که \f(CW\*(C`device\*(C'\fR معمولاً باید نام یک پارتیشن مانند \&\fI/dev/sda1\fR باشد. .PP این دستور به ویژگی \f(CW\*(C`lvm2\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS pvremove .IX Subsection "pvremove" .Vb 1 \& pvremove device .Ve .PP یک حجم فیزیکی \f(CW\*(C`device\*(C'\fR را پاک می‌کند تا LVM دیگر آن را شناسایی نکند. .PP پیاده‌سازی این دستور از دستور \fBpvremove\fR\|(8) استفاده می‌کند که از پاک کردن حجم‌های فیزیکی حاوی هرگونه گروه حجم (volume group) امتناع می‌ورزد، بنابراین ابتدا باید آن‌ها را حذف کنید. .PP این دستور به ویژگی \f(CW\*(C`lvm2\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS pvresize .IX Subsection "pvresize" .Vb 1 \& pvresize device .Ve .PP تغییر اندازه (گسترش یا کوچک کردن) یک حجم فیزیکی LVM موجود برای مطابقت با اندازه جدید دستگاه زیرین. .PP این دستور به ویژگی \f(CW\*(C`lvm2\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS pvresize\-size .IX Subsection "pvresize-size" .Vb 1 \& pvresize\-size device size .Ve .PP این دستور همانند "pvresize" است به جز اینکه به شما اجازه می‌دهد اندازه جدید (به بایت) را به صراحت مشخص کنید. .PP این دستور به ویژگی \f(CW\*(C`lvm2\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS pvs .IX Subsection "pvs" .Vb 1 \& pvs .Ve .PP فهرست کردن تمام حجم‌های فیزیکی شناسایی‌شده. این دستور معادل دستور \fBpvs\fR\|(8) است. .PP این تابع فهرستی از نام دستگاه‌هایی که حاوی حجم‌های فیزیکی هستند را برمی‌گرداند (مانند \fI/dev/sda2\fR). .PP همچنین ببینید: "pvs\-full". .PP این دستور به ویژگی \f(CW\*(C`lvm2\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS pvs\-full .IX Subsection "pvs-full" .Vb 1 \& pvs\-full .Ve .PP فهرست کردن تمام حجم‌های فیزیکی شناسایی‌شده. این دستور معادل دستور \fBpvs\fR\|(8) است. نسخه "full" شامل تمام فیلدها است. .PP این دستور به ویژگی \f(CW\*(C`lvm2\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS pvuuid .IX Subsection "pvuuid" .Vb 1 \& pvuuid device .Ve .PP این دستور شناسه UUID مربوط به PV از نوع LVM را روی \f(CW\*(C`device\*(C'\fR برمی‌گرداند. .SS pwrite .IX Subsection "pwrite" .Vb 1 \& pwrite path content offset .Ve .PP این دستور در بخشی از یک فایل می‌نویسد. بافر داده \f(CW\*(C`content\*(C'\fR را در فایل \f(CW\*(C`path\*(C'\fR با شروع از آفست \f(CW\*(C`offset\*(C'\fR می‌نویسد. .PP این دستور فراخوانی سیستمی \fBpwrite\fR\|(2) را پیاده‌سازی می‌کند و مانند آن فراخوانی سیستمی، ممکن است تمام داده‌های درخواستی را ننویسد. مقدار بازگشتی تعداد بایت‌هایی است که واقعاً در فایل نوشته شده‌اند. این مقدار حتی می‌تواند ۰ باشد، هرچند نوشتن‌های ناقص برای فایل‌های معمولی در شرایط عادی نامحتمل است. .PP همچنین ببینید: "pread"، "pwrite\-device". .PP به دلیل پروتکل پیام‌رسانی، محدودیت انتقالی در حدود ۲ تا ۴ مگابایت وجود دارد. به "PROTOCOL LIMITS" در \fBguestfs\fR\|(3) مراجعه کنید. .SS pwrite\-device .IX Subsection "pwrite-device" .Vb 1 \& pwrite\-device device content offset .Ve .PP این دستور روی بخشی از یک دستگاه می‌نویسد. بافر داده \f(CW\*(C`content\*(C'\fR را در \f(CW\*(C`device\*(C'\fR با شروع از آفست \f(CW\*(C`offset\*(C'\fR می‌نویسد. .PP این دستور فراخوانی سیستمی \fBpwrite\fR\|(2) را پیاده‌سازی می‌کند و مانند آن فراخوانی سیستمی، ممکن است تمام داده‌های درخواستی را ننویسد (اگرچه نوشتن‌های ناقص روی دستگاه‌های دیسک و پارتیشن‌ها در هسته‌های استاندارد لینوکس احتمالاً غیرممکن است). .PP همچنین ببینید: "pwrite". .PP به دلیل پروتکل پیام‌رسانی، محدودیت انتقالی در حدود ۲ تا ۴ مگابایت وجود دارد. به "PROTOCOL LIMITS" در \fBguestfs\fR\|(3) مراجعه کنید. .SS read\-file .IX Subsection "read-file" .Vb 1 \& read\-file path .Ve .PP این فراخوانی محتویات فایل \f(CW\*(C`path\*(C'\fR را به عنوان یک بافر برمی‌گرداند. .PP برخلاف "cat"، این تابع می‌تواند فایل‌های حاوی کاراکترهای NUL اسکی تعبیه‌شده را به درستی مدیریت کند. .SS read\-lines .IX Subsection "read-lines" .Vb 1 \& read\-lines path .Ve .PP محتویات فایل به نام \f(CW\*(C`path\*(C'\fR را برمی‌گرداند. .PP محتویات فایل به صورت فهرستی از خطوط برگردانده می‌شوند. توالی کاراکترهای انتهایی \f(CW\*(C`LF\*(C'\fR و \f(CW\*(C`CRLF\*(C'\fR برگردانده \fInot\fR نمی‌شوند. .PP توجه داشته باشید که این تابع نمی‌تواند فایل‌های باینری را به درستی مدیریت کند (به طور خاص، فایل‌های حاوی کاراکتر \f(CW\*(C`\e0\*(C'\fR که به عنوان پایان رشته در نظر گرفته می‌شود). برای این‌گونه فایل‌ها باید از تابع "read\-file" استفاده کنید و خودتان بافر را به خطوط تقسیم کنید. .SS readdir .IX Subsection "readdir" .Vb 1 \& readdir dir .Ve .PP فهرستی از ورودی‌های دایرکتوری در دایرکتوری \f(CW\*(C`dir\*(C'\fR را برمی‌گرداند. .PP تمام ورودی‌های موجود در دایرکتوری، از جمله \f(CW\*(C`.\*(C'\fR و \&\f(CW\*(C`..\*(C'\fR برگردانده می‌شوند. ورودی‌ها مرتب‌سازی \fInot\fR نشده‌اند، بلکه به همان ترتیبی که در سیستم فایل زیرین قرار دارند برگردانده می‌شوند. .PP همچنین این فراخوانی اطلاعات پایه‌ای نوع فایل را درباره هر فایل برمی‌گرداند. فیلد \f(CW\*(C`ftyp\*(C'\fR شامل یکی از کاراکترهای زیر خواهد بود: .IP \*(Aqb\*(Aq 4 .IX Item "'b'" دستگاه بلاکی (Block special) .IP \*(Aqc\*(Aq 4 .IX Item "'c'" دستگاه کاراکتری (Char special) .IP \*(Aqd\*(Aq 4 .IX Item "'d'" دایرکتوری .IP \*(Aqf\*(Aq 4 .IX Item "'f'" صف FIFO (پایپ نام‌گذاری‌شده) .IP \*(Aql\*(Aq 4 .IX Item "'l'" پیوند نمادین (Symbolic link) .IP \*(Aqr\*(Aq 4 .IX Item "'r'" فایل معمولی (Regular file) .IP \*(Aqs\*(Aq 4 .IX Item "'s'" سوکت (Socket) .IP \*(Aqu\*(Aq 4 .IX Item "'u'" نوع فایل ناشناخته .IP \*(Aq?\*(Aq 4 .IX Item "'?'" فراخوانی \fBreaddir\fR\|(3) یک فیلد \f(CW\*(C`d_type\*(C'\fR با مقدار غیرمنتظره برگردانده است .PP این تابع در درجه اول برای استفاده برنامه‌ها در نظر گرفته شده است. برای دریافت یک فهرست ساده از نام‌ها از "ls" استفاده کنید. برای دریافت یک دایرکتوری قابل چاپ و خوانا برای انسان، از "ll" استفاده کنید. .SS readlink .IX Subsection "readlink" .Vb 1 \& readlink path .Ve .PP این دستور هدف یک پیوند نمادین (symbolic link) را می‌خواند. .SS readlinklist .IX Subsection "readlinklist" .Vb 1 \& readlinklist path \*(Aqnames ...\*(Aq .Ve .PP این فراخوانی به شما امکان می‌دهد عملیات \f(CW\*(C`readlink\*(C'\fR را روی چندین فایل انجام دهید، که در آن تمام فایل‌ها در دایرکتوری \f(CW\*(C`path\*(C'\fR قرار دارند. \&\f(CW\*(C`names\*(C'\fR فهرست فایل‌های این دایرکتوری است. .PP در خروجی، فهرستی از رشته‌ها دریافت می‌کنید که مطابقت یک‌به‌یک با فهرست \f(CW\*(C`names\*(C'\fR دارد. هر رشته مقدار پیوند نمادین است. .PP اگر عملیات \fBreadlink\fR\|(2) روی هر نامی شکست بخورد، رشته نتیجه مربوطه یک رشته خالی \f(CW""\fR خواهد بود. با این حال، کل عملیات حتی در صورت وجود خطاهای \fBreadlink\fR\|(2) تکمیل می‌شود، بنابراین می‌توانید این تابع را با نام‌هایی فراخوانی کنید که مطمئن نیستید آیا قبلاً پیوند نمادین بوده‌اند یا خیر (البته با کارایی اندکی کمتر). .PP این فراخوانی برای برنامه‌هایی در نظر گرفته شده است که می‌خواهند بدون رفت‌وبرگشت‌های متعدد، محتویات یک دایرکتوری را به طور بهینه فهرست کنند..SS realpath .IX Subsection "realpath" .Vb 1 \& realpath path .Ve .PP مسیر نام کامل و استانداردشده (canonicalized) مربوط به \f(CW\*(C`path\*(C'\fR را بازمی‌گرداند. مسیر بازگردانده‌شده فاقد اجزای مسیر \f(CW\*(C`.\*(C'\fR، \f(CW\*(C`..\*(C'\fR یا پیوندهای نمادین است. .SS remount .IX Subsection "remount" .Vb 1 \& remount mountpoint [rw:true|false] .Ve .PP این فراخوانی به شما امکان می‌دهد فلگ \f(CW\*(C`rw\*(C'\fR (فقط‌خواندنی/خواندنی\-نوشتنی) را روی یک سیستم‌فایل از پیش سوارشده در \f(CW\*(C`mountpoint\*(C'\fR تغییر دهید، و یک سیستم‌فایل فقط‌خواندنی را به خواندنی\-نوشتنی یا برعکس تبدیل کنید. .PP توجه داشته باشید که در حال حاضر باید پارامتر "اختیاری" \f(CW\*(C`rw\*(C'\fR را مشخص کنید. در آینده ممکن است اجازه تغییر سایر فلگ‌ها نیز داده شود. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "آرگومان‌های اختیاری" را ببینید. .SS remove\-drive .IX Subsection "remove-drive" .Vb 1 \& remove\-drive label .Ve .PP این فراخوانی هیچ کاری انجام نمی‌دهد و یک خطا برمی‌گرداند. .PP \&\fIاین تابع منسوخ شده است.\fR هیچ جایگزینی وجود ندارد. برای اطلاعات بیشتر به مستندات API در \&\fBguestfs\fR\|(3) مراجعه کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .SS removexattr .IX Subsection "removexattr" .Vb 1 \& removexattr xattr path .Ve .PP این فراخوانی صفت گسترش‌یافته با نام \f(CW\*(C`xattr\*(C'\fR را از فایل \f(CW\*(C`path\*(C'\fR حذف می‌کند. .PP همچنین ببینید: "lremovexattr"، \fBattr\fR\|(5). .PP این دستور به ویژگی \f(CW\*(C`linuxxattrs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS rename .IX Subsection "rename" .Vb 1 \& rename oldpath newpath .Ve .PP تغییر نام یک فایل به مکانی جدید در همان سیستم‌فایل. این معادل فراخوانی سیستمی \fBrename\fR\|(2) در لینوکس است. در بیشتر موارد بهتر است به جای آن از "mv" استفاده کنید. .SS resize2fs .IX Subsection "resize2fs" .Vb 1 \& resize2fs device .Ve .PP این دستور اندازه یک سیستم‌فایل ext2، ext3 یا ext4 را متناسب با اندازه دستگاه زیرین تغییر می‌دهد. .PP همچنین بخش "خطاهای RESIZE2FS" در \fBguestfs\fR\|(3) را ببینید. .SS resize2fs\-M .IX Subsection "resize2fs-M" .Vb 1 \& resize2fs\-M device .Ve .PP این دستور مشابه "resize2fs" است، با این تفاوت که اندازه سیستم‌فایل به حداقل اندازه ممکن کاهش می‌یابد. عملکرد این دستور مانند گزینه \fI\-M\fR در دستور \fBresize2fs\fR\|(8) است. .PP برای به‌دست آوردن اندازه حاصل از سیستم‌فایل، باید "tune2fs\-l" را فراخوانی کرده و مقادیر \f(CW\*(C`Block size\*(C'\fR و \f(CW\*(C`Block count\*(C'\fR را بخوانید. حاصل‌ضرب این دو عدد، اندازه سیستم‌فایل مینیمال را به بایت نشان می‌دهد. .PP همچنین بخش "خطاهای RESIZE2FS" در \fBguestfs\fR\|(3) را ببینید. .SS resize2fs\-size .IX Subsection "resize2fs-size" .Vb 1 \& resize2fs\-size device size .Ve .PP این دستور مشابه "resize2fs" است با این تفاوت که به شما امکان می‌دهد اندازه جدید (به بایت) را به طور صریح مشخص کنید. .PP همچنین بخش "خطاهای RESIZE2FS" در \fBguestfs\fR\|(3) را ببینید. .SS rm .IX Subsection "rm" .Vb 1 \& rm path .Ve .PP فایل تکی \f(CW\*(C`path\*(C'\fR را حذف می‌کند. .SS rm\-f .IX Subsection "rm-f" .Vb 1 \& rm\-f path .Ve .PP فایل \f(CW\*(C`path\*(C'\fR را حذف می‌کند. .PP اگر فایل وجود نداشته باشد، از آن خطا صرف‌نظر می‌شود. (سایر خطاها مانند خطاهای I/O یا مسیرهای نامعتبر نادیده گرفته نمی‌شوند). .PP این فراخوانی نمی‌تواند دایرکتوری‌ها را حذف کند. از "rmdir" برای حذف دایرکتوری خالی، یا از "rm\-rf" برای حذف بازگشتی دایرکتوری‌ها استفاده کنید. .SS rm\-rf .IX Subsection "rm-rf" .Vb 1 \& rm\-rf path .Ve .PP فایل یا دایرکتوری \f(CW\*(C`path\*(C'\fR را حذف می‌کند، و در صورتی که دایرکتوری باشد محتویات آن را به صورت بازگشتی پاک می‌کند. این دستور شبیه به دستور پوسته \f(CW\*(C`rm \-rf\*(C'\fR است. .SS rmdir .IX Subsection "rmdir" .Vb 1 \& rmdir path .Ve .PP دایرکتوری تکی \f(CW\*(C`path\*(C'\fR را حذف می‌کند. .SS rmmountpoint .IX Subsection "rmmountpoint" .Vb 1 \& rmmountpoint exemptpath .Ve .PP این فراخوانی نقطه اتصالی را که قبلاً با "mkmountpoint" ایجاد شده بود حذف می‌کند. برای جزئیات کامل "mkmountpoint" را ببینید. .SS rsync .IX Subsection "rsync" .Vb 1 \& rsync src dest [archive:true|false] [deletedest:true|false] .Ve .PP این فراخوانی می‌تواند برای کپی یا همگام‌سازی دو دایرکتوری تحت یک هندل libguestfs یکسان استفاده شود. این دستور از برنامه \fBrsync\fR\|(1) استفاده می‌کند که از یک الگوریتم سریع برای جلوگیری از کپی‌های غیرضروری فایل‌ها بهره می‌برد. .PP مقادیر \f(CW\*(C`src\*(C'\fR و \f(CW\*(C`dest\*(C'\fR دایرکتوری‌های مبدأ و مقصد هستند. فایل‌ها از \f(CW\*(C`src\*(C'\fR به \f(CW\*(C`dest\*(C'\fR کپی می‌شوند. .PP آرگومان‌های اختیاری عبارتند از: .ie n .IP """archive""" 4 .el .IP \f(CWarchive\fR 4 .IX Item "archive" حالت بایگانی (archive) را فعال می‌کند. این معادل ارسال فلگ \&\fI\-\-archive\fR به \f(CW\*(C`rsync\*(C'\fR است. .ie n .IP """deletedest""" 4 .el .IP \f(CWdeletedest\fR 4 .IX Item "deletedest" فایل‌هایی را در مقصد که در مبدأ وجود ندارند حذف می‌کند. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "آرگومان‌های اختیاری" را ببینید. .PP این دستور به ویژگی \f(CW\*(C`rsync\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS rsync\-in .IX Subsection "rsync-in" .Vb 1 \& rsync\-in remote dest [archive:true|false] [deletedest:true|false] .Ve .PP این فراخوانی می‌تواند برای کپی یا همگام‌سازی سیستم‌فایل روی میزبان یا روی یک رایانه دوردست با سیستم‌فایل درون libguestfs استفاده شود. این دستور از برنامه \fBrsync\fR\|(1) استفاده می‌کند که الگوریتم سریعی برای جلوگیری از کپی غیرضروری فایل‌ها دارد. .PP این فراخوانی تنها در صورتی کار می‌کند که شبکه فعال باشد. "set\-network" یا گزینه \fI\-\-network\fR در ابزارهای مختلف مانند \fBguestfish\fR\|(1) را ببینید. .PP فایل‌ها از سرور و دایرکتوری دوردست مشخص‌شده توسط \f(CW\*(C`remote\*(C'\fR به دایرکتوری مقصد \f(CW\*(C`dest\*(C'\fR کپی می‌شوند. .PP قالب رشته سرور دوردست توسط \fBrsync\fR\|(1) تعریف می‌شود. توجه داشته باشید که هیچ راهی برای ارائه گذرواژه یا عبارت عبور وجود ندارد، بنابراین مقصد باید طوری تنظیم شده باشد که نیازی به گذرواژه نداشته باشد. .PP آرگومان‌های اختیاری همانند آرگومان‌های "rsync" هستند. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "آرگومان‌های اختیاری" را ببینید. .PP این دستور به ویژگی \f(CW\*(C`rsync\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS rsync\-out .IX Subsection "rsync-out" .Vb 1 \& rsync\-out src remote [archive:true|false] [deletedest:true|false] .Ve .PP این فراخوانی می‌تواند برای کپی یا همگام‌سازی سیستم‌فایل درون libguestfs با یک سیستم‌فایل روی میزبان یا یک رایانه دوردست استفاده شود. این دستور از برنامه \fBrsync\fR\|(1) استفاده می‌کند که از الگوریتمی سریع برای جلوگیری از کپی‌های غیرضروری فایل‌ها بهره می‌برد. .PP این فراخوانی تنها در صورتی کار می‌کند که شبکه فعال باشد. "set\-network" یا گزینه \fI\-\-network\fR در ابزارهای گوناگون مانند \fBguestfish\fR\|(1) را ببینید. .PP فایل‌ها از دایرکتوری مبدأ \f(CW\*(C`src\*(C'\fR به سرور و دایرکتوری دوردست مشخص‌شده توسط \f(CW\*(C`remote\*(C'\fR کپی می‌شوند. .PP قالب رشته سرور دوردست توسط \fBrsync\fR\|(1) تعریف می‌شود. توجه داشته باشید که روشی برای وارد کردن گذرواژه یا عبارت عبور وجود ندارد، بنابراین مقصد باید به گونه‌ای پیکربندی شود که نیازی به آن نباشد. .PP آرگومان‌های اختیاری همانند آرگومان‌های "rsync" هستند. .PP تطبیق الگو (Globbing) روی پارامتر \f(CW\*(C`src\*(C'\fR اعمال نمی‌شود. در برنامه‌هایی که مستقیماً از API استفاده می‌کنند، باید خودتان نویسه‌های عام (wildcards) را گسترش دهید (بخش "glob\-expand" را ببینید). در guestfish می‌توانید از دستور \f(CW\*(C`glob\*(C'\fR استفاده کنید (بخش "glob" را ببینید)، برای نمونه: .PP .Vb 1 \& > glob rsync\-out /* rsync://remote/ .Ve .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "آرگومان‌های اختیاری" را ببینید. .PP این دستور به ویژگی \f(CW\*(C`rsync\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS scrub\-device .IX Subsection "scrub-device" .Vb 1 \& scrub\-device device .Ve .PP این دستور الگوهایی را روی \f(CW\*(C`device\*(C'\fR می‌نویسد تا بازیابی داده‌ها بسیار دشوارتر شود. .PP این یک رابط برای برنامه \fBscrub\fR\|(1) است. برای جزئیات بیشتر به صفحه راهنمای آن برنامه مراجعه کنید. .PP این دستور به ویژگی \f(CW\*(C`scrub\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS scrub\-file .IX Subsection "scrub-file" .Vb 1 \& scrub\-file file .Ve .PP این دستور الگوهایی را روی یک فایل می‌نویسد تا بازیابی داده‌ها دشوارتر شود. .PP فایل پس از پاک‌سازی امن (scrubbing) \fIحذف می‌شود\fR. .PP این یک رابط برای برنامه \fBscrub\fR\|(1) است. برای جزئیات بیشتر به صفحه راهنمای آن مراجعه کنید. .PP این دستور به ویژگی \f(CW\*(C`scrub\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS scrub\-freespace .IX Subsection "scrub-freespace" .Vb 1 \& scrub\-freespace dir .Ve .PP این دستور دایرکتوری \f(CW\*(C`dir\*(C'\fR را ایجاد کرده و سپس آن را با فایل‌ها پر می‌کند تا سیستم‌فایل پر شود، و فایل‌ها را مانند "scrub\-file" پاک‌سازی امن کرده و آن‌ها را حذف می‌کند. هدف این است که تمام فضای خالی روی پارتیشن حاوی \f(CW\*(C`dir\*(C'\fR پاک‌سازی امن شود. .PP این یک رابط برای برنامه \fBscrub\fR\|(1) است. برای جزئیات بیشتر به صفحه راهنمای آن برنامه مراجعه کنید. .PP این دستور به ویژگی \f(CW\*(C`scrub\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS selinux\-relabel .IX Subsection "selinux-relabel" .Vb 1 \& selinux\-relabel specfile path [force:true|false] .Ve .PP برچسب‌گذاری مجدد SELinux روی بخش‌هایی از سیستم‌فایل. .PP پارامتر \f(CW\*(C`specfile\*(C'\fR فایل مشخصات خط‌مشی (policy spec file) مورد استفاده را کنترل می‌کند. شما باید \f(CW\*(C`/etc/selinux/config\*(C'\fR را برای یافتن خط‌مشی صحیح SELinux تجزیه کنید و سپس فایل مشخصات را ارسال نمایید، معمولاً: \&\f(CW\*(C`/etc/selinux/\*(C'\fR + \fIselinuxtype\fR + \f(CW\*(C`/contexts/files/file_contexts\*(C'\fR. .PP پارامتر الزامی \f(CW\*(C`path\*(C'\fR دایرکتوری سطح بالایی است که برچسب‌گذاری مجدد از آنجا آغاز می‌شود. معمولاً باید \f(CW\*(C`path\*(C'\fR را برابر \f(CW\*(C`/\*(C'\fR قرار دهید تا کل سیستم‌فایل مهمان مجدداً برچسب‌گذاری شود. .PP مقدار بولی اختیاری \f(CW\*(C`force\*(C'\fR کنترل می‌کند که آیا زمینه امنیتی برای فایل‌های سفارشی‌سازی‌پذیر بازنشانی شود یا خیر، و همچنین مشخص می‌کند که بخش‌های کاربر، نقش و محدوده زمینه فایل تغییر کنند یا خیر. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "آرگومان‌های اختیاری" را ببینید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "setfiles" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده درست از این توابع است. .PP این دستور به ویژگی \f(CW\*(C`selinuxrelabel\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS set\-append .IX Subsection "set-append" .SS append .IX Subsection "append" .Vb 1 \& set\-append append .Ve .PP این تابع برای افزودن گزینه‌های اضافی به خط فرمان هسته اپلاینس libguestfs استفاده می‌شود. .PP مقدار پیش‌فرض \f(CW\*(C`NULL\*(C'\fR است مگر اینکه با تنظیم متغیر محیطی \&\f(CW\*(C`LIBGUESTFS_APPEND\*(C'\fR لغو شود. .PP تنظیم \f(CW\*(C`append\*(C'\fR روی \f(CW\*(C`NULL\*(C'\fR به این معنی است که \fIهیچ\fR گزینه اضافی ارسال نمی‌شود (libguestfs همیشه چند گزینه مخصوص به خود را اضافه می‌کند). .SS set\-attach\-method .IX Subsection "set-attach-method" .SS attach\-method .IX Subsection "attach-method" .Vb 1 \& set\-attach\-method backend .Ve .PP روشی را تعیین می‌کند که libguestfs برای اتصال به دیمن بک‌اند guestfsd استفاده می‌کند. .PP بخش "بک‌اند" در \fBguestfs\fR\|(3) را ببینید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "set\-backend" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .SS set\-autosync .IX Subsection "set-autosync" .SS autosync .IX Subsection "autosync" .Vb 1 \& set\-autosync true|false .Ve .PP اگر \f(CW\*(C`autosync\*(C'\fR برابر با true باشد، همگام‌سازی خودکار را فعال می‌کند. Libguestfs نهایت تلاش خود را خواهد کرد تا هنگام بسته شدن هندل (و همچنین اگر برنامه بدون بستن هندل‌ها خارج شود)، سیستم‌فایل‌ها سازگار و همگام شوند. .PP این ویژگی به صورت پیش‌فرض فعال است (از libguestfs 1.5.24 به بعد، قبلاً به طور پیش‌فرض غیرفعال بود). .SS set\-backend .IX Subsection "set-backend" .SS backend .IX Subsection "backend" .Vb 1 \& set\-backend backend .Ve .PP روشی را تعیین می‌کند که libguestfs برای اتصال به دیمن بک‌اند guestfsd استفاده می‌کند. .PP این ویژگی هندل قبلاً "attach method" نامیده می‌شد. .PP بخش "بک‌اند" در \fBguestfs\fR\|(3) را ببینید. .SS set\-backend\-setting .IX Subsection "set-backend-setting" .Vb 1 \& set\-backend\-setting name val .Ve .PP رشته \f(CW"name=value"\fR را به فهرست رشته‌های تنظیمات بک‌اند اضافه می‌کند. با این حال اگر از قبل رشته‌ای مطابق با \f(CW"name"\fR وجود داشته باشد یا با \f(CW"name="\fR شروع شود، آن تنظیم جایگزین می‌گردد. .PP بخش‌های "بک‌اند" در \fBguestfs\fR\|(3) و "تنظیمات بک‌اند" در \fBguestfs\fR\|(3) را ببینید. .SS set\-backend\-settings .IX Subsection "set-backend-settings" .Vb 1 \& set\-backend\-settings \*(Aqsettings ...\*(Aq .Ve .PP فهرستی از صفر یا چند تنظیم را تعیین می‌کند که به بک‌اند جاری ارسال می‌شوند. هر تنظیم رشته‌ای است که به روش خاص همان بک‌اند تفسیر می‌شود، یا در صورت عدم پشتیبانی توسط بک‌اند نادیده گرفته می‌شود. .PP مقدار پیش‌فرض یک فهرست خالی است، مگر اینکه متغیر محیطی \f(CW\*(C`LIBGUESTFS_BACKEND_SETTINGS\*(C'\fR هنگام ایجاد هندل تنظیم شده باشد. این متغیر محیطی شامل فهرستی از تنظیمات است که با دونقطه (:) از هم جدا شده‌اند. .PP این فراخوانی تمام تنظیمات بک‌اند را جایگزین می‌کند. اگر می‌خواهید یک تنظیم منفرد بک‌اند را تغییر دهید، "set\-backend\-setting" را ببینید. اگر می‌خواهید یک تنظیم بک‌اند را پاک کنید، "clear\-backend\-setting" را ببینید. .PP بخش‌های "بک‌اند" در \fBguestfs\fR\|(3) و "تنظیمات بک‌اند" در \fBguestfs\fR\|(3) را ببینید. .SS set\-cachedir .IX Subsection "set-cachedir" .SS cachedir .IX Subsection "cachedir" .Vb 1 \& set\-cachedir cachedir .Ve .PP دایرکتوری مورد استفاده توسط هندل برای ذخیره حافظه پنهان (cache) اپلاینس را هنگام استفاده از اپلاینس supermin تعیین می‌کند. اپلاینس بین تمامی هندل‌هایی که شناسه کاربری مؤثر (effective user ID) یکسانی دارند، کش شده و به اشتراک گذاشته می‌شود. .PP متغیرهای محیطی \f(CW\*(C`LIBGUESTFS_CACHEDIR\*(C'\fR و \f(CW\*(C`TMPDIR\*(C'\fR مقدار پیش‌فرض را کنترل می‌کنند: اگر \f(CW\*(C`LIBGUESTFS_CACHEDIR\*(C'\fR تنظیم شده باشد، همان مقدار پیش‌فرض است. در غیر این صورت اگر \f(CW\*(C`TMPDIR\*(C'\fR تنظیم شده باشد، آن مقدار پیش‌فرض خواهد بود. در غیر این صورت \fI/var/tmp\fR مقدار پیش‌فرض است. .SS set\-direct .IX Subsection "set-direct" .SS direct .IX Subsection "direct" .Vb 1 \& set\-direct true|false .Ve .PP اگر فلگ حالت مستقیم اپلاینس (direct appliance mode) فعال باشد، پس از راه‌اندازی اپلاینس، stdin و stdout مستقیماً به اپلاینس منتقل می‌شوند. .PP یکی از پیامدهای این امر این است که پیام‌های لاگ توسط کتابخانه دریافت نشده و توسط "set\-log\-message\-callback" مدیریت نمی‌شوند، بلکه مستقیماً به stdout می‌روند. .PP احتمالاً نیازی به استفاده از این مورد نخواهید داشت مگر اینکه بدانید دقیقاً چه کاری انجام می‌دهید. .PP مقدار پیش‌فرض غیرفعال است. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "internal\-get\-console\-socket" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده درست از این توابع است. .SS set\-e2attrs .IX Subsection "set-e2attrs" .Vb 1 \& set\-e2attrs file attrs [clear:true|false] .Ve .PP این تابع صفت‌های فایل \f(CW\*(C`attrs\*(C'\fR مرتبط با اینود \fIfile\fR را تنظیم یا پاک می‌کند. .PP \&\f(CW\*(C`attrs\*(C'\fR رشته‌ای از نویسه‌ها است که صفت‌های فایل را نشان می‌دهند. برای فهرستی از صفت‌های ممکن به "get\-e2attrs" مراجعه کنید. همه صفت‌ها قابل تغییر نیستند. .PP اگر مقدار بولی اختیاری \f(CW\*(C`clear\*(C'\fR وجود نداشته باشد یا false باشد، صفت‌های ذکر شده در \f(CW\*(C`attrs\*(C'\fR در اینود تنظیم می‌شوند. .PP اگر \f(CW\*(C`clear\*(C'\fR برابر با true باشد، صفت‌های ذکر شده در \f(CW\*(C`attrs\*(C'\fR در اینود پاک می‌شوند. .PP در هر دو حالت، سایر صفت‌هایی که در رشته \f(CW\*(C`attrs\*(C'\fR وجود ندارند بدون تغییر باقی می‌مانند. .PP این صفت‌ها فقط زمانی وجود دارند که فایل روی یک سیستم‌فایل ext2/3/4 قرار داشته باشد. استفاده از این فراخوانی روی انواع دیگر سیستم‌فایل منجر به خطا خواهد شد. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "آرگومان‌های اختیاری" را ببینید. .SS set\-e2generation .IX Subsection "set-e2generation" .Vb 1 \& set\-e2generation file generation .Ve .PP این دستور نسل فایل (generation) را در سیستم‌فایل ext2 برای یک فایل تنظیم می‌کند. .PP بخش "get\-e2generation" را ببینید. .SS set\-e2label .IX Subsection "set-e2label" .Vb 1 \& set\-e2label device label .Ve .PP برچسب سیستم‌فایل ext2/3/4 را روی \f(CW\*(C`device\*(C'\fR به \f(CW\*(C`label\*(C'\fR تنظیم می‌کند. برچسب‌های سیستم‌فایل به ۱۶ نویسه محدود هستند. .PP می‌توانید از "tune2fs\-l" یا "get\-e2label" برای بازگرداندن برچسب موجود روی یک سیستم‌فایل استفاده کنید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "set\-label" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده درست از این توابع است. .SS set\-e2uuid .IX Subsection "set-e2uuid" .Vb 1 \& set\-e2uuid device uuid .Ve .PP شناسه UUID سیستم‌فایل ext2/3/4 را روی \f(CW\*(C`device\*(C'\fR به \f(CW\*(C`uuid\*(C'\fR تنظیم می‌کند. قالب UUID و گزینه‌های جایگزین مانند \f(CW\*(C`clear\*(C'\fR، \f(CW\*(C`random\*(C'\fR و \f(CW\*(C`time\*(C'\fR در صفحه راهنمای \&\fBtune2fs\fR\|(8) توضیح داده شده‌اند. .PP می‌توانید از "vfs\-uuid" برای بازگرداندن UUID موجود یک سیستم‌فایل استفاده کنید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "set\-uuid" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .SS set\-hv .IX Subsection "set-hv" .SS hv .IX Subsection "hv" .Vb 1 \& set\-hv hv .Ve .PP فایل اجرایی باینری هایپروایزری را که استفاده خواهیم کرد تعیین می‌کند. هایپروایزر به بک‌اند بستگی دارد، اما معمولاً محل هایپروایزر qemu/KVM است. .PP همچنین می‌توانید با تنظیم متغیر محیطی \f(CW\*(C`LIBGUESTFS_HV\*(C'\fR این مقدار را لغو و بازنویسی کنید. .PP توجه داشته باشید که باید این تابع را در اولین زمان ممکن پس از ایجاد هندل فراخوانی کنید. دلیل این امر این است که برخی عملیات‌های پیش از راه‌اندازی به آزمایش ویژگی‌های qemu (با اجرای \f(CW\*(C`qemu \-help\*(C'\fR) بستگی دارند. اگر باینری qemu تغییر کند، ویژگی‌ها مجدداً آزمایش نمی‌شوند و ممکن است نتایج متناقضی مشاهده کنید. استفاده از متغیر محیطی \f(CW\*(C`LIBGUESTFS_HV\*(C'\fR از همه امن‌تر است، زیرا باینری qemu را همزمان با ایجاد هندل انتخاب می‌کند. .SS set\-identifier .IX Subsection "set-identifier" .SS identifier .IX Subsection "identifier" .Vb 1 \& set\-identifier identifier .Ve .PP این یک رشته اطلاعاتی است که فراخواننده می‌تواند به صورت اختیاری در هندل تنظیم کند. این رشته در مکان‌های مختلف چاپ می‌شود و اجازه می‌دهد تا هندل جاری در خروجی‌های اشکال‌زدایی شناسایی شود. .PP یک مکان مهم زمانی است که قابلیت ردگیری (tracing) فعال باشد. اگر رشته شناسه یک رشته خالی نباشد، پیام‌های ردگیری از این حالت: .PP .Vb 2 \& libguestfs: trace: get_tmpdir \& libguestfs: trace: get_tmpdir = "/tmp" .Ve .PP به این حالت تغییر می‌یابند: .PP .Vb 2 \& libguestfs: trace: ID: get_tmpdir \& libguestfs: trace: ID: get_tmpdir = "/tmp" .Ve .PP که در آن \f(CW\*(C`ID\*(C'\fR رشته شناسه‌ای است که توسط این فراخوانی تنظیم شده است. .PP شناسه باید فقط شامل نویسه‌های اسکی الفبایی\-عددی، زیرخط و علامت منفی باشد. مقدار پیش‌فرض رشته خالی است. .PP همچنین ببینید: "set\-program"، "set\-trace"، "get\-identifier". .SS set\-label .IX Subsection "set-label" .Vb 1 \& set\-label mountable label .Ve .PP برچسب سیستم‌فایل را روی \f(CW\*(C`mountable\*(C'\fR به \f(CW\*(C`label\*(C'\fR تنظیم می‌کند. .PP تنها برخی از انواع سیستم‌فایل از برچسب‌ها پشتیبانی می‌کنند، و libguestfs فقط از تنظیم برچسب روی زیرمجموعه‌ای از این موارد پشتیبانی می‌کند. .IP "ext2, ext3, ext4" 4 .IX Item "ext2, ext3, ext4" برچسب‌ها به ۱۶ بایت محدود هستند. .IP NTFS 4 .IX Item "NTFS" برچسب‌ها به ۱۲۸ نویسه یونیکد محدود هستند. .IP XFS 4 .IX Item "XFS" برچسب به ۱۲ بایت محدود است. سیستم‌فایل نباید هنگام تنظیم برچسب سوار (mounted) باشد. .IP btrfs 4 .IX Item "btrfs" برچسب به ۲۵۵ بایت محدود است و برخی نویسه‌ها مجاز نیستند. تنظیم برچسب روی یک زیرحجم (subvolume) btrfs، برچسب را روی سیستم‌فایل والد آن تنظیم می‌کند. سیستم‌فایل نباید هنگام تنظیم برچسب سوار باشد. .IP fat 4 .IX Item "fat" برچسب به ۱۱ بایت محدود است. .IP swap 4 .IX Item "swap" برچسب به ۱۶ بایت محدود است. .PP اگر هیچ پشتیبانی برای تغییر برچسب نوع سیستم‌فایل مشخص‌شده وجود نداشته باشد، set_label با شکست مواجه شده و errno را روی ENOTSUP تنظیم می‌کند. .PP برای خواندن برچسب روی یک سیستم‌فایل، "vfs\-label" را فراخوانی کنید. .SS set\-libvirt\-requested\-credential .IX Subsection "set-libvirt-requested-credential" .Vb 1 \& set\-libvirt\-requested\-credential index cred .Ve .PP پس از درخواست اعتبارنامه \f(CW\*(C`index\*(C'\fR\-اُم از کاربر، این تابع را فراخوانی کنید تا پاسخ را به libvirt بازگرداند. .PP برای مستندات و نمونه کد، بخش "احراز هویت LIBVIRT" در \fBguestfs\fR\|(3) را ببینید. .SS set\-libvirt\-supported\-credentials .IX Subsection "set-libvirt-supported-credentials" .Vb 1 \& set\-libvirt\-supported\-credentials \*(Aqcreds ...\*(Aq .Ve .PP این تابع را پیش از تنظیم یک گرداننده رویداد (event handler) برای \&\f(CW\*(C`GUESTFS_EVENT_LIBVIRT_AUTH\*(C'\fR فراخوانی کنید تا فهرستی از انواع اعتبارنامه‌هایی را که برنامه نحوه پردازش آن‌ها را می‌داند ارائه دهد. .PP فهرست \f(CW\*(C`creds\*(C'\fR باید یک فهرست غیرخالی از رشته‌ها باشد. رشته‌های ممکن عبارتند از: .ie n .IP """username""" 4 .el .IP \f(CWusername\fR 4 .IX Item "username" .PD 0 .ie n .IP """authname""" 4 .el .IP \f(CWauthname\fR 4 .IX Item "authname" .ie n .IP """language""" 4 .el .IP \f(CWlanguage\fR 4 .IX Item "language" .ie n .IP """cnonce""" 4 .el .IP \f(CWcnonce\fR 4 .IX Item "cnonce" .ie n .IP """passphrase""" 4 .el .IP \f(CWpassphrase\fR 4 .IX Item "passphrase" .ie n .IP """echoprompt""" 4 .el .IP \f(CWechoprompt\fR 4 .IX Item "echoprompt" .ie n .IP """noechoprompt""" 4 .el .IP \f(CWnoechoprompt\fR 4 .IX Item "noechoprompt" .ie n .IP """realm""" 4 .el .IP \f(CWrealm\fR 4 .IX Item "realm" .ie n .IP """external""" 4 .el .IP \f(CWexternal\fR 4 .IX Item "external" .PD .PP برای آگاهی از مفهوم این انواع اعتبارنامه، به مستندات libvirt مراجعه کنید. .PP برای مستندات و نمونه کد، بخش "احراز هویت LIBVIRT" در \fBguestfs\fR\|(3) را ببینید. .SS set\-memsize .IX Subsection "set-memsize" .SS memsize .IX Subsection "memsize" .Vb 1 \& set\-memsize memsize .Ve .PP این دستور مقدار حافظه اختصاص‌یافته به هایپروایزر را بر حسب مگابایت تنظیم می‌کند. این مورد تنها در صورتی اثرگذار است که پیش از "launch" فراخوانی شود. .PP همچنین می‌توانید این مقدار را با تنظیم متغیر محیطی \f(CW\*(C`LIBGUESTFS_MEMSIZE\*(C'\fR پیش از ایجاد هندل تغییر دهید. .PP برای اطلاعات بیشتر در مورد معماری libguestfs، به \fBguestfs\fR\|(3) مراجعه کنید. .SS set\-network .IX Subsection "set-network" .SS network .IX Subsection "network" .Vb 1 \& set\-network true|false .Ve .PP اگر \f(CW\*(C`network\*(C'\fR برابر با true باشد، شبکه در اپلاینس libguestfs فعال می‌شود. مقدار پیش‌فرض false است. .PP این گزینه بر دسترسی دستورات به شبکه تأثیر می‌گذارد (بخش "اجرای دستورات" در \fBguestfs\fR\|(3) را ببینید). .PP شما باید این تابع را پیش از فراخوانی "launch" اجرا کنید، در غیر این صورت هیچ اثری نخواهد داشت. .SS set\-path .IX Subsection "set-path" .SS path .IX Subsection "path" .Vb 1 \& set\-path searchpath .Ve .PP مسیری را که libguestfs برای جستجوی kernel و initrd.img استفاده می‌کند تنظیم می‌کند. .PP مقدار پیش‌فرض \f(CW\*(C`$libdir/guestfs\*(C'\fR است مگر اینکه با تنظیم متغیر محیطی \&\f(CW\*(C`LIBGUESTFS_PATH\*(C'\fR لغو شود. .PP تنظیم \f(CW\*(C`path\*(C'\fR روی \f(CW\*(C`NULL\*(C'\fR مسیر پیش‌فرض را بازیابی می‌کند. .SS set\-pgroup .IX Subsection "set-pgroup" .SS pgroup .IX Subsection "pgroup" .Vb 1 \& set\-pgroup true|false .Ve .PP اگر \f(CW\*(C`pgroup\*(C'\fR برابر با true باشد، فرآیندهای فرزند در گروه فرآیندی اختصاصی خود قرار می‌گیرند. .PP نتیجه عملی این امر این است که سیگنال‌هایی مانند \f(CW\*(C`SIGINT\*(C'\fR (ناشی از فشردن \f(CW\*(C`^C\*(C'\fR توسط کاربر) توسط فرآیند فرزند دریافت نخواهند شد. .PP مقدار پیش‌فرض این فلگ false است، زیرا معمولاً تمایل دارید \f(CW\*(C`^C\*(C'\fR زیرفرآیند را متوقف کند. Guestfish هنگام استفاده تعاملی این فلگ را روی true تنظیم می‌کند تا \f(CW\*(C`^C\*(C'\fR بتواند دستورات طولانی را به طور مناسب لغو کند (بخش "user\-cancel" را ببینید). .SS set\-program .IX Subsection "set-program" .SS program .IX Subsection "program" .Vb 1 \& set\-program program .Ve .PP نام برنامه را تنظیم می‌کند. این یک رشته اطلاعاتی است که برنامه اصلی می‌تواند به صورت اختیاری در هندل تنظیم کند. .PP هنگامی که هندل ایجاد می‌شود، نام برنامه در هندل روی نام پایه (basename) برگرفته از \f(CW\*(C`argv[0]\*(C'\fR تنظیم می‌شود. نام برنامه هرگز نمی‌تواند \f(CW\*(C`NULL\*(C'\fR باشد. .SS set\-qemu .IX Subsection "set-qemu" .SS qemu .IX Subsection "qemu" .Vb 1 \& set\-qemu hv .Ve .PP باینری هایپروایزر (معمولاً qemu) را که استفاده خواهیم کرد تنظیم می‌کند. .PP همچنین می‌توانید با تنظیم متغیر محیطی \f(CW\*(C`LIBGUESTFS_HV\*(C'\fR این مقدار را لغو و بازنویسی کنید. .PP تنظیم \f(CW\*(C`hv\*(C'\fR روی \f(CW\*(C`NULL\*(C'\fR باینری پیش‌فرض qemu را بازیابی می‌کند. .PP توجه داشته باشید که باید این تابع را در اولین زمان ممکن پس از ایجاد هندل فراخوانی کنید. زیرا برخی از عملیات‌های پیش از راه‌اندازی به آزمایش ویژگی‌های qemu (با اجرای \f(CW\*(C`qemu \-help\*(C'\fR) وابسته هستند. اگر باینری qemu تغییر کند، این ویژگی‌ها مجدداً بررسی نمی‌شوند و در نتیجه ممکن است نتایج ناسازگاری مشاهده کنید. استفاده از متغیر محیطی \f(CW\*(C`LIBGUESTFS_HV\*(C'\fR امن‌ترین روش است چرا که باینری qemu را دقیقاً همزمان با ساخت هندل تعیین می‌کند. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "set\-hv" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .SS set\-recovery\-proc .IX Subsection "set-recovery-proc" .SS recovery\-proc .IX Subsection "recovery-proc" .Vb 1 \& set\-recovery\-proc true|false .Ve .PP اگر این تابع با پارامتر \f(CW\*(C`false\*(C'\fR فراخوانی شود، "launch" فرآیند بازیابی (recovery process) ایجاد نمی‌کند. هدف فرآیند بازیابی، متوقف کردن فرآیندهای هایپروایزر سرکش در مواردی است که برنامه اصلی به طور ناگهانی خاتمه می‌یابد. .PP این مورد تنها زمانی اثر دارد که پیش از "launch" فراخوانی شود، و مقدار پیش‌فرض آن true است. .PP تقریباً تنها زمانی که ممکن است بخواهید این مورد را غیرفعال کنید، هنگامی است که فرآیند اصلی خود را در پس‌زمینه فورک کند ("دیمن" شود). در این حالت، فرآیند بازیابی تصور می‌کند که برنامه اصلی ناپدید شده و بنابراین هایپروایزر را متوقف می‌کند که چندان مطلوب نیست. .SS set\-selinux .IX Subsection "set-selinux" .SS selinux .IX Subsection "selinux" .Vb 1 \& set\-selinux true|false .Ve .PP این تابع فلگ selinux را که هنگام بوت به اپلاینس ارسال می‌شود تنظیم می‌کند. مقدار پیش‌فرض \f(CW\*(C`selinux=0\*(C'\fR (غیرفعال) است. .PP توجه داشته باشید که در صورت فعال بودن SELinux، این ابزار همیشه در حالت مداراگر یا Permissive قرار دارد (\f(CW\*(C`enforcing=0\*(C'\fR). .PP برای اطلاعات بیشتر در مورد معماری libguestfs، به \fBguestfs\fR\|(3) مراجعه کنید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "selinux\-relabel" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .SS set\-smp .IX Subsection "set-smp" .SS smp .IX Subsection "smp" .Vb 1 \& set\-smp smp .Ve .PP تعداد پردازنده‌های مجازی اختصاص‌یافته به اپلاینس را تغییر می‌دهد. مقدار پیش‌فرض \f(CW1\fR است. افزایش این مقدار ممکن است کارایی را بهبود بخشد، اگرچه اغلب اثری ندارد. .PP این تابع باید پیش از "launch" فراخوانی شود. .SS set\-tmpdir .IX Subsection "set-tmpdir" .SS tmpdir .IX Subsection "tmpdir" .Vb 1 \& set\-tmpdir tmpdir .Ve .PP دایرکتوری مورد استفاده توسط هندل را برای ذخیره فایل‌های موقت تعیین می‌کند. .PP متغیرهای محیطی \f(CW\*(C`LIBGUESTFS_TMPDIR\*(C'\fR و \f(CW\*(C`TMPDIR\*(C'\fR مقدار پیش‌فرض را کنترل می‌کنند: اگر \f(CW\*(C`LIBGUESTFS_TMPDIR\*(C'\fR تنظیم شده باشد، همان مقدار پیش‌فرض است. در غیر این صورت اگر \f(CW\*(C`TMPDIR\*(C'\fR تنظیم شده باشد، آن مقدار پیش‌فرض است. در غیر این صورت \fI/tmp\fR پیش‌فرض خواهد بود. .SS set\-trace .IX Subsection "set-trace" .SS trace .IX Subsection "trace" .Vb 1 \& set\-trace true|false .Ve .PP اگر فلگ ردگیری دستورات روی 1 تنظیم شود، فراخوانی‌ها، پارامترها و مقادیر بازگشتی libguestfs ردگیری می‌شوند. .PP اگر می‌خواهید فراخوانی‌های C API به libguestfs (و سایر کتابخانه‌ها) را ردگیری کنید، احتمالاً روش بهتر استفاده از دستور خارجی \fBltrace\fR\|(1) است. .PP ردگیری دستورات غیرفعال است مگر اینکه متغیر محیطی \&\f(CW\*(C`LIBGUESTFS_TRACE\*(C'\fR تعریف شده و روی \f(CW1\fR تنظیم شده باشد. .PP پیام‌های ردگیری معمولاً به \f(CW\*(C`stderr\*(C'\fR فرستاده می‌شوند، مگر اینکه یک کال‌بک ثبت کنید تا آن‌ها را به جای دیگری ارسال کند (به "set\-event\-callback" مراجعه کنید). .SS set\-uuid .IX Subsection "set-uuid" .Vb 1 \& set\-uuid device uuid .Ve .PP شناسه UUID سیستم‌فایل را روی \f(CW\*(C`device\*(C'\fR به \f(CW\*(C`uuid\*(C'\fR تنظیم می‌کند. اگر این عملیات ناموفق باشد و مقدار errno برابر با ENOTSUP گردد، بدین معنی است که هیچ پشتیبانی برای تغییر UUID برای نوع سیستم‌فایل مشخص‌شده وجود ندارد. .PP تنها برخی از انواع سیستم‌فایل از تنظیم UUID پشتیبانی می‌کنند. .PP برای خواندن UUID روی یک سیستم‌فایل، "vfs\-uuid" را فراخوانی کنید. .SS set\-uuid\-random .IX Subsection "set-uuid-random" .Vb 1 \& set\-uuid\-random device .Ve .PP شناسه UUID سیستم‌فایل را روی \f(CW\*(C`device\*(C'\fR به یک UUID تصادفی تنظیم می‌کند. اگر این عملیات ناموفق باشد و مقدار errno برابر با ENOTSUP گردد، بدین معنی است که هیچ پشتیبانی برای تغییر UUID برای نوع سیستم‌فایل مشخص‌شده وجود ندارد. .PP تنها برخی از انواع سیستم‌فایل از تنظیم UUID پشتیبانی می‌کنند. .PP برای خواندن UUID روی یک سیستم‌فایل، "vfs\-uuid" را فراخوانی کنید. .SS set\-verbose .IX Subsection "set-verbose" .SS verbose .IX Subsection "verbose" .Vb 1 \& set\-verbose true|false .Ve .PP اگر \f(CW\*(C`verbose\*(C'\fR برابر با true باشد، پیام‌های با جزئیات کامل (verbose) فعال می‌شوند. .PP پیام‌های با جزئیات کامل غیرفعال هستند مگر اینکه متغیر محیطی \&\f(CW\*(C`LIBGUESTFS_DEBUG\*(C'\fR تعریف شده و روی \f(CW1\fR تنظیم شده باشد. .PP پیام‌های با جزئیات کامل معمولاً به \f(CW\*(C`stderr\*(C'\fR ارسال می‌شوند، مگر اینکه یک کال‌بک برای ارسال آن‌ها به مکانی دیگر ثبت کنید (به "set\-event\-callback" مراجعه کنید). .SS setcon .IX Subsection "setcon" .Vb 1 \& setcon context .Ve .PP این دستور زمینه امنیتی SELinux دیمن را به رشته \f(CW\*(C`context\*(C'\fR تنظیم می‌کند. .PP مستندات مربوط به SELINUX را در \fBguestfs\fR\|(3) ببینید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "selinux\-relabel" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .PP این دستور به ویژگی \f(CW\*(C`selinux\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS setfiles .IX Subsection "setfiles" .Vb 1 \& setfiles specfile \*(Aqpaths ...\*(Aq [force:true|false] .Ve .PP این دستور ابزار \f(CW\*(C`setfiles\*(C'\fR در SELinux را اجرا می‌کند که یک ابزار سطح پایین برای برچسب‌گذاری مجدد بخش‌هایی از سیستم‌فایل است. .PP پارامتر \f(CW\*(C`specfile\*(C'\fR فایل مشخصات خط‌مشی مورد استفاده را کنترل می‌کند. شما باید \f(CW\*(C`/etc/selinux/config\*(C'\fR را برای یافتن خط‌مشی درست SELinux تجزیه کنید و سپس فایل مشخصات را ارسال نمایید، معمولاً: \&\f(CW\*(C`/etc/selinux/\*(C'\fR + \fIselinuxtype\fR + \f(CW\*(C`/contexts/files/file_contexts\*(C'\fR. .PP پارامتر الزامی \f(CW\*(C`paths\*(C'\fR فهرستی از دایرکتوری‌های سطح بالا است که برچسب‌گذاری مجدد از آنجا آغاز می‌شود. \f(CW\*(C`setfiles\*(C'\fR فقط تا مرزهای سیستم‌فایل برچسب‌گذاری مجدد انجام می‌دهد؛ بنابراین برای نمونه، ارسال \f(CW"/"\fR کل سیستم‌فایل ریشه را مجدداً برچسب‌گذاری می‌کند، اما سیستم‌فایل‌های سوارشده دیگر را برچسب‌گذاری نمی‌کند. اگر فهرست خالی باشد، setfiles فراخوانی نمی‌شود. .PP مقدار بولی اختیاری \f(CW\*(C`force\*(C'\fR کنترل می‌کند که آیا زمینه برای فایل‌های سفارشی‌سازی‌پذیر بازنشانی شود، و همچنین بخش‌های کاربر، نقش و محدوده زمینه فایل تغییر کنند یا خیر. .PP این دستور یک یا چند آرگومان اختیاری دارد. بخش "آرگومان‌های اختیاری" را ببینید. .PP این دستور به ویژگی \f(CW\*(C`selinuxrelabel\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS setxattr .IX Subsection "setxattr" .Vb 1 \& setxattr xattr val vallen path .Ve .PP این فراخوانی صفت گسترش‌یافته با نام \f(CW\*(C`xattr\*(C'\fR را برای فایل \f(CW\*(C`path\*(C'\fR به مقدار \f(CW\*(C`val\*(C'\fR (با طول \f(CW\*(C`vallen\*(C'\fR) تنظیم می‌کند. این مقدار داده‌های دلخواه ۸ بیتی است. .PP همچنین ببینید: "lsetxattr"، \fBattr\fR\|(5). .PP این دستور به ویژگی \f(CW\*(C`linuxxattrs\*(C'\fR وابسته است. همچنین ببینید "feature\-available". .SS sfdisk .IX Subsection "sfdisk" .Vb 1 \& sfdisk device cyls heads sectors \*(Aqlines ...\*(Aq .Ve .PP این یک رابط مستقیم برای برنامه \fBsfdisk\fR\|(8) جهت ایجاد پارتیشن‌ها روی دستگاه‌های بلوکی است. .PP \&\f(CW\*(C`device\*(C'\fR باید یک دستگاه بلوکی باشد، برای نمونه \fI/dev/sda\fR. .PP \&\f(CW\*(C`cyls\*(C'\fR، \f(CW\*(C`heads\*(C'\fR و \f(CW\*(C`sectors\*(C'\fR تعداد سیلندرها، هدها و سکتورها روی دستگاه هستند که مستقیماً به \fBsfdisk\fR\|(8) به عنوان پارامترهای \fI\-C\fR، \fI\-H\fR و \fI\-S\fR ارسال می‌شوند. اگر برای هر یک از این مقادیر \f(CW0\fR ارسال کنید، پارامتر مربوطه نادیده گرفته می‌شود. معمولاً برای دیسک‌های "بزرگ"، می‌توانید به سادگی \f(CW0\fR ارسال کنید، اما برای دیسک‌های کوچک (در اندازه فلاپی)، \fBsfdisk\fR\|(8) (یا بهتر بگوییم هسته) نمی‌تواند هندسه صحیح را به دست آورد و لازم است آن را مشخص کنید. .PP \&\f(CW\*(C`lines\*(C'\fR فهرستی از خطوط است که به \fBsfdisk\fR\|(8) داده می‌شود. برای اطلاعات بیشتر به صفحه راهنمای \fBsfdisk\fR\|(8) مراجعه کنید. .PP برای ایجاد یک پارتیشن منفرد که کل دیسک را اشغال کند، باید \f(CW\*(C`lines\*(C'\fR را به عنوان یک فهرست تک‌عضوی ارسال کنید که تک‌عضو آن رشته \f(CW\*(C`,\*(C'\fR (ویرگول) باشد. .PP همچنین ببینید: "sfdisk\-l"، "sfdisk\-N"، "part\-init" .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "part\-add" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .SS sfdiskM .IX Subsection "sfdiskM" .Vb 1 \& sfdiskM device \*(Aqlines ...\*(Aq .Ve .PP این یک رابط کاربری ساده‌شده برای دستور "sfdisk" است، که در آن اندازه پارتیشن‌ها فقط بر حسب مگابایت تعیین می‌شوند (گرد شده به نزدیک‌ترین سیلندر) و نیازی به تعیین پارامترهای cyls، heads و sectors که به هر حال به ندرت استفاده می‌شدند ندارید. .PP همچنین ببینید: "sfdisk"، صفحه راهنمای \fBsfdisk\fR\|(8) و "part\-disk" .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "part\-add" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ شدن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .SS sfdisk\-N .IX Subsection "sfdisk-N" .Vb 1 \& sfdisk\-N device partnum cyls heads sectors line .Ve .PP این گزینه \fBsfdisk\fR\|(8) را برای اصلاح فقط یک پارتیشن منفرد \f(CW\*(C`n\*(C'\fR اجرا می‌کند (توجه: شمارش \f(CW\*(C`n\*(C'\fR از ۱ آغاز می‌شود). .PP برای سایر پارامترها، "sfdisk" را ببینید. معمولاً باید مقدار \f(CW0\fR را برای پارامترهای cyls/heads/sectors ارسال کنید. .PP همچنین ببینید: "part\-add" .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "part\-add" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ شدن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .SS sfdisk\-disk\-geometry .IX Subsection "sfdisk-disk-geometry" .Vb 1 \& sfdisk\-disk\-geometry device .Ve .PP این دستور ساختار هندسی دیسک (geometry) مربوط به \f(CW\*(C`device\*(C'\fR را که از جدول پارتیشن خوانده شده است، نمایش می‌دهد. به‌ویژه در حالتی که اندازه دستگاه بلوکی زیرین تغییر یافته باشد، این مقدار می‌تواند با برداشت هسته از ساختار هندسی متفاوت باشد ("sfdisk\-kernel\-geometry" را ببینید). .PP نتیجه در قالب خوانا برای انسان است و برای پارس کردن خودکار طراحی نشده است. .SS sfdisk\-kernel\-geometry .IX Subsection "sfdisk-kernel-geometry" .Vb 1 \& sfdisk\-kernel\-geometry device .Ve .PP این دستور برداشت هسته از ساختار هندسی \f(CW\*(C`device\*(C'\fR را نمایش می‌دهد. .PP نتیجه در قالب خوانا برای انسان است و برای پارس کردن خودکار طراحی نشده است. .SS sfdisk\-l .IX Subsection "sfdisk-l" .Vb 1 \& sfdisk\-l device .Ve .PP این دستور جدول پارتیشن روی \f(CW\*(C`device\*(C'\fR را در قالب خروجی خوانا برای انسان دستور \fBsfdisk\fR\|(8) نمایش می‌دهد. برای پارس کردن خودکار در نظر گرفته نشده است. .PP همچنین ببینید: "part\-list" .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "part\-list" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ شدن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .SS sh .IX Subsection "sh" .Vb 1 \& sh command .Ve .PP این فراخوانی دستوری را از فایل‌سیستم مهمان از طریق \fI/bin/sh\fR مهمان اجرا می‌کند. .PP این مانند "command" است، اما دستور را به این شکل ارسال می‌کند: .PP .Vb 1 \& /bin/sh \-c "command" .Ve .PP بسته به پوسته سیستم مهمان، این کار معمولاً منجر به بسط دادن الگوهای جانشین (wildcards)، ارزیابی عبارات پوسته و مواردی از این دست می‌شود. .PP تمام شرایط و هشدارهای ذکر شده درباره "command" برای این فراخوانی نیز صدق می‌کنند. .SS sh\-lines .IX Subsection "sh-lines" .Vb 1 \& sh\-lines command .Ve .PP این دستور همانند "sh" عمل می‌کند، اما نتیجه را به صورت فهرستی از خطوط تفکیک می‌کند. .PP همچنین ببینید: "command\-lines" .SS sh\-out .IX Subsection "sh-out" .Vb 1 \& sh\-out command (output|\-) .Ve .PP این دستور همانند "sh" عمل می‌کند، اما خروجی را به صورت جریانی (stream) بازمی‌گرداند و حالتی را مدیریت می‌کند که در آن خروجی دستور از محدودیت پروتکل بزرگ‌تر است. .PP همچنین ببینید: "command\-out" .PP به جای نام فایل از \f(CW\*(C`\-\*(C'\fR برای خواندن/نوشتن از ورودی استاندارد (stdin) / خروجی استاندارد (stdout) استفاده کنید. .SS shutdown .IX Subsection "shutdown" .Vb 1 \& shutdown .Ve .PP این دستور برعکس "launch" عمل می‌کند. این فراخوانی فرآیند(های) پس‌زمینه را به صورت مرتب خاموش می‌کند. اگر فلگ autosync تنظیم شده باشد (که به طور پیش‌فرض فعال است)، ایمیج دیسک همگام‌سازی می‌شود. .PP اگر زیرفرآیند با خطا خارج شود، این تابع یک خطا بازمی‌گرداند که \fIنباید\fR نادیده گرفته شود (ممکن است نشان‌دهنده این باشد که ایمیج دیسک نتوانسته به درستی نوشته شود). .PP فراخوانی چندباره این دستور ایمن است. فراخوانی‌های اضافی نادیده گرفته می‌شوند. .PP این فراخوانی هندل را نمی‌بندد یا آزاد نمی‌کند. پس از آن همچنان باید "close" را فراخوانی کنید. .PP اگر این کار را صریحاً انجام ندهید، "close" آن را فراخوانی خواهد کرد، اما توجه داشته باشید که در این صورت هرگونه خطا نادیده گرفته می‌شود. .SS sleep .IX Subsection "sleep" .Vb 1 \& sleep secs .Ve .PP به مدت \f(CW\*(C`secs\*(C'\fR ثانیه متوقف می‌شود (به خواب می‌رود). .SS stat .IX Subsection "stat" .Vb 1 \& stat path .Ve .PP اطلاعات فایل را برای \f(CW\*(C`path\*(C'\fR داده‌شده بازمی‌گرداند. .PP این همانند فراخوانی سیستمی \fBstat\fR\|(2) است. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "statns" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ شدن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .SS statns .IX Subsection "statns" .Vb 1 \& statns path .Ve .PP اطلاعات فایل را برای \f(CW\*(C`path\*(C'\fR داده‌شده بازمی‌گرداند. .PP این همانند فراخوانی سیستمی \fBstat\fR\|(2) است. .SS statvfs .IX Subsection "statvfs" .Vb 1 \& statvfs path .Ve .PP آمار فایل‌سیستم را برای هر فایل‌سیستم مونت‌شده بازمی‌گرداند. \&\f(CW\*(C`path\*(C'\fR باید یک فایل یا دایرکتوری در فایل‌سیستم مونت‌شده باشد (معمولاً نقطه مونت است، اما لزومی ندارد). .PP این همانند فراخوانی سیستمی \fBstatvfs\fR\|(2) است. .SS strings .IX Subsection "strings" .Vb 1 \& strings path .Ve .PP این دستور \fBstrings\fR\|(1) را روی یک فایل اجرا می‌کند و فهرستی از رشته‌های قابل چاپِ یافت‌شده را بازمی‌گرداند. .PP دستور \f(CW\*(C`strings\*(C'\fR در گذشته در پارس کردن فایل‌های غیرقابل‌اعتماد مشکلاتی داشته است. این موارد در نسخه فعلی libguestfs کاهش یافته‌اند، اما "CVE\-2014\-8484" را در \fBguestfs\fR\|(3) ببینید. .PP به دلیل پروتکل پیام، یک محدودیت انتقال داده بین ۲ تا ۴ مگابایت وجود دارد. "PROTOCOL LIMITS" را در \fBguestfs\fR\|(3) ببینید. .SS strings\-e .IX Subsection "strings-e" .Vb 1 \& strings\-e encoding path .Ve .PP این شبیه به دستور "strings" است، اما به شما امکان می‌دهد انکودینگ رشته‌هایی را که در فایل مبدأ \f(CW\*(C`path\*(C'\fR جستجو می‌شوند مشخص کنید. .PP انکودینگ‌های مجاز عبارتند از: .IP s 4 .IX Item "s" نویسه‌های تک‌بایتی ۷-بیتی مانند ASCII و بخش‌های سازگار با ASCII در ISO\-8859\-X (این همان چیزی است که "strings" استفاده می‌کند). .IP S 4 .IX Item "S" نویسه‌های تک‌بایتی ۸-بیتی. .IP b 4 .IX Item "b" رشته‌های ۱۶-بیتی big endian مانند آن‌هایی که در UTF\-16BE یا UCS\-2BE انکود شده‌اند. .IP "l (حرف کوچک L)" 4 .IX Item "l (lower case letter L)" رشته‌های ۱۶-بیتی little endian مانند UTF\-16LE و UCS\-2LE. این گزینه برای بررسی فایل‌های باینری در مهمان‌های ویندوز مفید است. .IP B 4 .IX Item "B" رشته‌های ۳۲-بیتی big endian مانند UCS\-4BE. .IP L 4 .IX Item "L" رشته‌های ۳۲-بیتی little endian مانند UCS\-4LE. .PP رشته‌های بازگردانده شده به UTF\-8 تبدیل می‌شوند. .PP دستور \f(CW\*(C`strings\*(C'\fR در گذشته در پارس کردن فایل‌های غیرقابل‌اعتماد مشکلاتی داشته است. این موارد در نسخه فعلی libguestfs کاهش یافته‌اند، اما "CVE\-2014\-8484" را در \fBguestfs\fR\|(3) ببینید. .PP به دلیل پروتکل پیام، یک محدودیت انتقال داده بین ۲ تا ۴ مگابایت وجود دارد. "PROTOCOL LIMITS" را در \fBguestfs\fR\|(3) ببینید. .SS swapoff\-device .IX Subsection "swapoff-device" .Vb 1 \& swapoff\-device device .Ve .PP این دستور دستگاه یا پارتیشن سواپ به نام \f(CW\*(C`device\*(C'\fR را در اپلاینس libguestfs غیرفعال می‌کند. "swapon\-device" را ببینید. .SS swapoff\-file .IX Subsection "swapoff-file" .Vb 1 \& swapoff\-file file .Ve .PP این دستور سواپ روی فایل را در اپلاینس libguestfs غیرفعال می‌کند. .SS swapoff\-label .IX Subsection "swapoff-label" .Vb 1 \& swapoff\-label label .Ve .PP این دستور سواپ را روی پارتیشن سواپ برچسب‌دار در اپلاینس libguestfs غیرفعال می‌کند. .SS swapoff\-uuid .IX Subsection "swapoff-uuid" .Vb 1 \& swapoff\-uuid uuid .Ve .PP این دستور پارتیشن سواپ با UUID داده‌شده را در اپلاینس libguestfs غیرفعال می‌کند. .PP این دستور به ویژگی \f(CW\*(C`linuxfsuuid\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS swapon\-device .IX Subsection "swapon-device" .Vb 1 \& swapon\-device device .Ve .PP این دستور به اپلاینس libguestfs امکان می‌دهد از دستگاه یا پارتیشن سواپ به نام \f(CW\*(C`device\*(C'\fR استفاده کند. حافظه افزایش‌یافته برای تمامی دستورات، برای مثال دستوراتی که با استفاده از "command" یا "sh" اجرا می‌شوند، در دسترس قرار می‌گیرد. .PP توجه داشته باشید که نباید از پارتیشن‌های سواپ موجود در مهمان استفاده کنید مگر اینکه بدانید چه کاری انجام می‌دهید. این پارتیشن‌ها ممکن است حاوی اطلاعات هایبرنیشن یا سایر اطلاعاتی باشند که مهمان نمی‌خواهد آن‌ها را از بین ببرید. همچنین با این کار خطر افشای اطلاعات میزبان به مهمان وجود دارد. در عوض، یک دستگاه میزبان جدید به مهمان متصل کرده و سواپ را روی آن فعال کنید. .SS swapon\-file .IX Subsection "swapon-file" .Vb 1 \& swapon\-file file .Ve .PP این دستور سواپ روی یک فایل را فعال می‌کند. برای سایر نکات "swapon\-device" را ببینید. .SS swapon\-label .IX Subsection "swapon-label" .Vb 1 \& swapon\-label label .Ve .PP این دستور سواپ را روی یک پارتیشن سواپ برچسب‌دار فعال می‌کند. برای سایر نکات "swapon\-device" را ببینید. .SS swapon\-uuid .IX Subsection "swapon-uuid" .Vb 1 \& swapon\-uuid uuid .Ve .PP این دستور سواپ را روی یک پارتیشن سواپ با UUID داده‌شده فعال می‌کند. برای سایر نکات "swapon\-device" را ببینید. .PP این دستور به ویژگی \f(CW\*(C`linuxfsuuid\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS sync .IX Subsection "sync" .Vb 1 \& sync .Ve .PP این دستور دیسک را همگام‌سازی می‌کند، به‌طوری‌که تمامی داده‌های نوشته‌شده روی ایمیج دیسک زیرین تخلیه و ثبت (flush) می‌شوند. .PP اگر یک ایمیج دیسک را تغییر داده‌اید، باید همیشه قبل از بستن هندل این دستور را فراخوانی کنید. .SS syslinux .IX Subsection "syslinux" .Vb 1 \& syslinux device [directory:..] .Ve .PP بوت‌لودر SYSLINUX را روی \f(CW\*(C`device\*(C'\fR نصب می‌کند. .PP پارامتر device باید یا یک دیسک کامل با فرمت فایل‌سیستم FAT یا یک پارتیشن با فرمت فایل‌سیستم FAT باشد. در حالت دوم، پارتیشن باید به عنوان "فعال" ("part\-set\-bootable") علامت‌گذاری شود و یک Master Boot Record باید (مثلاً با استفاده از "pwrite\-device") روی اولین سکتور کل دیسک نصب گردد. بسته SYSLINUX همراه با چندین Master Boot Record مناسب ارائه می‌شود. برای اطلاعات بیشتر صفحه راهنمای \fBsyslinux\fR\|(1) را ببینید. .PP آرگومان‌های اختیاری عبارتند از: .IP \fIdirectory\fR 4 .IX Item "directory" نصب SYSLINUX در زیرپوشه نام‌گذاری‌شده به جای دایرکتوری ریشه فایل‌سیستم FAT. .PP پیکربندی اضافی را می‌توان با قرار دادن فایلی به نام \fIsyslinux.cfg\fR روی فایل‌سیستم FAT، چه در دایرکتوری ریشه و چه در \fIdirectory\fR در صورت استفاده از آن آرگومان اختیاری، به SYSLINUX ارائه کرد. برای اطلاعات بیشتر در مورد محتوای این فایل، \fBsyslinux\fR\|(1) را ببینید. .PP همچنین "extlinux" را ببینید. .PP این دستور یک یا چند آرگومان اختیاری دارد. "OPTIONAL ARGUMENTS" را ببینید. .PP این دستور به ویژگی \f(CW\*(C`syslinux\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS tail .IX Subsection "tail" .Vb 1 \& tail path .Ve .PP این دستور تا ۱۰ خط پایانی یک فایل را به صورت فهرستی از رشته‌ها بازمی‌گرداند. .PP به دلیل محدودیت پروتکل پیام، حد انتقال داده بین ۲ تا ۴ مگابایت وجود دارد. "PROTOCOL LIMITS" را در \fBguestfs\fR\|(3) ببینید. .SS tail\-n .IX Subsection "tail-n" .Vb 1 \& tail\-n nrlines path .Ve .PP اگر پارامتر \f(CW\*(C`nrlines\*(C'\fR عددی مثبت باشد، \f(CW\*(C`nrlines\*(C'\fR خط پایانی فایل \f(CW\*(C`path\*(C'\fR را بازمی‌گرداند. .PP اگر پارامتر \f(CW\*(C`nrlines\*(C'\fR عددی منفی باشد، خطوطی از فایل \f(CW\*(C`path\*(C'\fR را بازمی‌گرداند که از خط \f(CW\*(C`\-nrlines\*(C'\fRام شروع می‌شوند. .PP اگر پارامتر \f(CW\*(C`nrlines\*(C'\fR صفر باشد، یک فهرست خالی بازمی‌گرداند. .PP به دلیل پروتکل پیام، یک محدودیت انتقال داده بین ۲ تا ۴ مگابایت وجود دارد. "PROTOCOL LIMITS" را در \fBguestfs\fR\|(3) ببینید. .SS tar\-in .IX Subsection "tar-in" .SS tar\-in\-opts .IX Subsection "tar-in-opts" .Vb 1 \& tar\-in (tarfile|\-) directory [compress:..] [xattrs:true|false] [selinux:true|false] [acls:true|false] [keepdirlink:true|false] .Ve .PP این دستور فایل محلی \f(CW\*(C`tarfile\*(C'\fR را در \fIdirectory\fR آپلود و استخراج می‌کند. .PP فلگ اختیاری \f(CW\*(C`compress\*(C'\fR نحوه فشرده‌سازی را کنترل می‌کند. اگر ارائه نشود، ورودی باید یک فایل tar غیرفشرده باشد. در غیر این صورت یکی از رشته‌های زیر را می‌توان برای انتخاب نوع فشرده‌سازی فایل ورودی تعیین کرد: \f(CW\*(C`compress\*(C'\fR، \f(CW\*(C`gzip\*(C'\fR، \f(CW\*(C`bzip2\*(C'\fR، \f(CW\*(C`xz\*(C'\fR، \f(CW\*(C`lzop\*(C'\fR، \f(CW\*(C`lzma\*(C'\fR، \f(CW\*(C`zstd\*(C'\fR. (توجه داشته باشید که همه بیلد‌های libguestfs از تمامی این انواع فشرده‌سازی پشتیبانی نمی‌کنند). .PP سایر آرگومان‌های اختیاری عبارتند از: .ie n .IP """xattrs""" 4 .el .IP \f(CWxattrs\fR 4 .IX Item "xattrs" اگر روی true تنظیم شود، ویژگی‌های توسعه‌یافته (extended attributes) از فایل tar بازیابی می‌شوند. .ie n .IP """selinux""" 4 .el .IP \f(CWselinux\fR 4 .IX Item "selinux" اگر روی true تنظیم شود، زمینه‌های SELinux از فایل tar بازیابی می‌شوند. .ie n .IP """acls""" 4 .el .IP \f(CWacls\fR 4 .IX Item "acls" اگر روی true تنظیم شود، لیست‌های کنترل دسترسی پازیکس (POSIX ACLs) از فایل tar بازیابی می‌شوند. .ie n .IP """keepdirlink""" 4 .el .IP \f(CWkeepdirlink\fR 4 .IX Item "keepdirlink" اگر روی true تنظیم شود، پیوندهای نمادین موجود به دایرکتوری‌ها هنگام استخراج از فایل tar دنبال می‌شوند. این برای سیستم‌های usrmerge که در آن‌ها \fI/lib\fR یک پیوند نمادین به \fI/usr/lib\fR است اهمیت دارد. .PP به جای نام فایل از \f(CW\*(C`\-\*(C'\fR برای خواندن/نوشتن از ورودی استاندارد (stdin) / خروجی استاندارد (stdout) استفاده کنید. .PP این دستور یک یا چند آرگومان اختیاری دارد. "OPTIONAL ARGUMENTS" را ببینید. .SS tar\-out .IX Subsection "tar-out" .SS tar\-out\-opts .IX Subsection "tar-out-opts" .Vb 1 \& tar\-out directory (tarfile|\-) [compress:..] [numericowner:true|false] [excludes:..] [xattrs:true|false] [selinux:true|false] [acls:true|false] .Ve .PP این دستور محتویات \fIdirectory\fR را بسته‌بندی کرده و آن را در فایل محلی \f(CW\*(C`tarfile\*(C'\fR دانلود می‌کند. .PP فلگ اختیاری \f(CW\*(C`compress\*(C'\fR نحوه فشرده‌سازی را کنترل می‌کند. اگر ارائه نشود، خروجی یک فایل tar فشرده‌نشده خواهد بود. در غیر این صورت یکی از رشته‌های زیر را می‌توان برای تعیین نوع فشرده‌سازی فایل خروجی مشخص کرد: \f(CW\*(C`compress\*(C'\fR، \f(CW\*(C`gzip\*(C'\fR، \f(CW\*(C`bzip2\*(C'\fR، \f(CW\*(C`xz\*(C'\fR، \f(CW\*(C`lzop\*(C'\fR، \f(CW\*(C`lzma\*(C'\fR، \f(CW\*(C`zstd\*(C'\fR. (توجه داشته باشید که همه بیلد‌های libguestfs از تمامی این انواع فشرده‌سازی پشتیبانی نمی‌کنند). .PP سایر آرگومان‌های اختیاری عبارتند از: .ie n .IP """excludes""" 4 .el .IP \f(CWexcludes\fR 4 .IX Item "excludes" فهرستی از الگوهای جانشین (wildcards). فایل‌ها در صورت تطابق با هر یک از الگوها مستثنی می‌شوند. .ie n .IP """numericowner""" 4 .el .IP \f(CWnumericowner\fR 4 .IX Item "numericowner" اگر روی true تنظیم شود، فایل tar خروجی به جای نام‌های کاربر/گروه، حاوی شناسه‌های عددی UID/GID خواهد بود. .ie n .IP """xattrs""" 4 .el .IP \f(CWxattrs\fR 4 .IX Item "xattrs" اگر روی true تنظیم شود، ویژگی‌های توسعه‌یافته در فایل tar خروجی ذخیره می‌شوند. .ie n .IP """selinux""" 4 .el .IP \f(CWselinux\fR 4 .IX Item "selinux" اگر روی true تنظیم شود، زمینه‌های SELinux در فایل tar خروجی ذخیره می‌شوند. .ie n .IP """acls""" 4 .el .IP \f(CWacls\fR 4 .IX Item "acls" اگر روی true تنظیم شود، لیست‌های کنترل دسترسی پازیکس (POSIX ACLs) در فایل tar خروجی ذخیره می‌شوند. .PP به جای نام فایل از \f(CW\*(C`\-\*(C'\fR برای خواندن/نوشتن از ورودی استاندارد (stdin) / خروجی استاندارد (stdout) استفاده کنید. .PP این دستور یک یا چند آرگومان اختیاری دارد. "OPTIONAL ARGUMENTS" را ببینید. .SS tgz\-in .IX Subsection "tgz-in" .Vb 1 \& tgz\-in (tarball|\-) directory .Ve .PP این دستور فایل محلی \f(CW\*(C`tarball\*(C'\fR (یک فایل tar \fIفشرده‌شده با gzip\fR) را در \fIdirectory\fR آپلود و استخراج می‌کند. .PP به جای نام فایل از \f(CW\*(C`\-\*(C'\fR برای خواندن/نوشتن از ورودی استاندارد (stdin) / خروجی استاندارد (stdout) استفاده کنید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "tar\-in" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ شدن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .SS tgz\-out .IX Subsection "tgz-out" .Vb 1 \& tgz\-out directory (tarball|\-) .Ve .PP این دستور محتویات \fIdirectory\fR را بسته‌بندی کرده و در فایل محلی \f(CW\*(C`tarball\*(C'\fR دانلود می‌کند. .PP به جای نام فایل از \f(CW\*(C`\-\*(C'\fR برای خواندن/نوشتن از ورودی استاندارد (stdin) / خروجی استاندارد (stdout) استفاده کنید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "tar\-out" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ شدن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .SS touch .IX Subsection "touch" .Vb 1 \& touch path .Ve .PP دستور Touch همانند دستور \fBtouch\fR\|(1) عمل می‌کند. می‌توان از آن برای به‌روزرسانی برچسب‌های زمانی یک فایل استفاده کرد یا در صورتی که فایل وجود نداشته باشد، یک فایل جدید با طول صفر ایجاد نمود. .PP این دستور فقط روی فایل‌های عادی کار می‌کند و روی سایر انواع فایل‌ها مانند دایرکتوری‌ها، پیوندهای نمادین، فایل‌های ویژه بلوکی و غیره ناموفق خواهد بود. .SS truncate .IX Subsection "truncate" .Vb 1 \& truncate path .Ve .PP این دستور حجم \f(CW\*(C`path\*(C'\fR را به یک فایل با طول صفر تقلیل می‌دهد. فایل باید از قبل وجود داشته باشد. .SS truncate\-size .IX Subsection "truncate-size" .Vb 1 \& truncate\-size path size .Ve .PP این دستور حجم \f(CW\*(C`path\*(C'\fR را به اندازه \f(CW\*(C`size\*(C'\fR بایت تغییر می‌دهد. فایل باید از قبل وجود داشته باشد. .PP اگر اندازه فعلی فایل کمتر از \f(CW\*(C`size\*(C'\fR باشد، فایل با بایت‌های صفر تا اندازه مورد نیاز گسترش می‌یابد. این کار یک فایل پراکنده (sparse file) ایجاد می‌کند (یعنی بلوک‌های دیسک تا زمانی که در فایل ننویسید به آن اختصاص داده نمی‌شوند). برای ایجاد یک فایل غیرپراکنده از صفرها، به جای آن از "fallocate64" استفاده کنید. .SS tune2fs .IX Subsection "tune2fs" .Vb 1 \& tune2fs device [force:true|false] [maxmountcount:N] [mountcount:N] [errorbehavior:..] [group:N] [intervalbetweenchecks:N] [reservedblockspercentage:N] [lastmounteddirectory:..] [reservedblockscount:N] [user:N] .Ve .PP این فراخوانی به شما امکان می‌دهد پارامترهای مختلف فایل‌سیستم را در یک فایل‌سیستم ext2/ext3/ext4 به نام \f(CW\*(C`device\*(C'\fR تنظیم کنید. .PP پارامترهای اختیاری عبارتند از: .ie n .IP """force""" 4 .el .IP \f(CWforce\fR 4 .IX Item "force" اجبار tune2fs برای تکمیل عملیات حتی در مواجهه با خطاها. این همانند گزینه \f(CW\*(C`\-f\*(C'\fR در \fBtune2fs\fR\|(8) است. .ie n .IP """maxmountcount""" 4 .el .IP \f(CWmaxmountcount\fR 4 .IX Item "maxmountcount" تنظیم تعداد دفعات مونت که پس از آن فایل‌سیستم توسط \fBe2fsck\fR\|(8) بررسی می‌شود. اگر این مقدار \f(CW0\fR باشد، تعداد دفعات مونت نادیده گرفته می‌شود. این همانند گزینه \f(CW\*(C`\-c\*(C'\fR در \fBtune2fs\fR\|(8) است. .ie n .IP """mountcount""" 4 .el .IP \f(CWmountcount\fR 4 .IX Item "mountcount" تنظیم تعداد دفعاتی که فایل‌سیستم مونت شده است. این همانند گزینه \f(CW\*(C`\-C\*(C'\fR در \fBtune2fs\fR\|(8) است. .ie n .IP """errorbehavior""" 4 .el .IP \f(CWerrorbehavior\fR 4 .IX Item "errorbehavior" تغییر رفتار کد هسته هنگام شناسایی خطاها. مقادیر ممکن در حال حاضر عبارتند از: \f(CW\*(C`continue\*(C'\fR، \f(CW\*(C`remount\-ro\*(C'\fR، \f(CW\*(C`panic\*(C'\fR. در عمل این گزینه‌ها تفاوت چندانی ایجاد نمی‌کنند، به‌ویژه برای خطاهای نوشتن. .Sp این همانند گزینه \f(CW\*(C`\-e\*(C'\fR در \fBtune2fs\fR\|(8) است. .ie n .IP """group""" 4 .el .IP \f(CWgroup\fR 4 .IX Item "group" تنظیم گروهی که می‌تواند از بلوک‌های رزروشده فایل‌سیستم استفاده کند. این همانند گزینه \f(CW\*(C`\-g\*(C'\fR در \fBtune2fs\fR\|(8) است به جز اینکه فقط می‌تواند به صورت یک عدد مشخص شود. .ie n .IP """intervalbetweenchecks""" 4 .el .IP \f(CWintervalbetweenchecks\fR 4 .IX Item "intervalbetweenchecks" تنظیم حداکثر زمان بین دو بررسی فایل‌سیستم (بر حسب ثانیه). اگر گزینه به صورت \f(CW0\fR ارسال شود، بررسی وابسته به زمان غیرفعال می‌شود. .Sp این همانند گزینه \f(CW\*(C`\-i\*(C'\fR در \fBtune2fs\fR\|(8) است. .ie n .IP """reservedblockspercentage""" 4 .el .IP \f(CWreservedblockspercentage\fR 4 .IX Item "reservedblockspercentage" تنظیم درصد فایل‌سیستم که فقط توسط فرآیندهای ممتاز (دارای دسترسی ویژه) قابل تخصیص است. این همانند گزینه \f(CW\*(C`\-m\*(C'\fR در \fBtune2fs\fR\|(8) است. .ie n .IP """lastmounteddirectory""" 4 .el .IP \f(CWlastmounteddirectory\fR 4 .IX Item "lastmounteddirectory" تنظیم آخرین دایرکتوری مونت‌شده. این همانند گزینه \f(CW\*(C`\-M\*(C'\fR در \fBtune2fs\fR\|(8) است. .ie n .IP """reservedblockscount"" تعداد بلوک‌های رزروشده فایل‌سیستم را تنظیم می‌کند. این همانند گزینه \f(CW\-r\fR در \fBtune2fs\fR\|(8) است." 4 .el .IP "\f(CWreservedblockscount\fR تعداد بلوک‌های رزروشده فایل‌سیستم را تنظیم می‌کند. این همانند گزینه \f(CW\-r\fR در \fBtune2fs\fR\|(8) است." 4 .IX Item "reservedblockscount Set the number of reserved filesystem blocks. This is the same as the tune2fs -r option." .PD 0 .ie n .IP """user""" 4 .el .IP \f(CWuser\fR 4 .IX Item "user" .PD تنظیم کاربری که می‌تواند از بلوک‌های رزروشده فایل‌سیستم استفاده کند. این همانند گزینه \f(CW\*(C`\-u\*(C'\fR در \fBtune2fs\fR\|(8) است به جز اینکه فقط می‌تواند به صورت یک عدد مشخص شود. .PP برای دریافت مقادیر فعلی پارامترهای فایل‌سیستم، "tune2fs\-l" را ببینید. برای جزئیات دقیق نحوه کار tune2fs، صفحه راهنمای \fBtune2fs\fR\|(8) را ببینید. .PP این دستور یک یا چند آرگومان اختیاری دارد. "OPTIONAL ARGUMENTS" را ببینید. .SS tune2fs\-l .IX Subsection "tune2fs-l" .Vb 1 \& tune2fs\-l device .Ve .PP این دستور محتویات سوپربلاک فایل‌سیستم ext2، ext3 یا ext4 را روی \f(CW\*(C`device\*(C'\fR بازمی‌گرداند. .PP این همانند اجرای \f(CW\*(C`tune2fs \-l device\*(C'\fR است. برای جزئیات بیشتر صفحه راهنمای \fBtune2fs\fR\|(8) را ببینید. فهرست فیلدهای بازگردانده شده به‌طور دقیق تعریف نشده است و به نسخه \f(CW\*(C`tune2fs\*(C'\fR که libguestfs با آن کامپایل شده و خود فایل‌سیستم بستگی دارد. .SS txz\-in .IX Subsection "txz-in" .Vb 1 \& txz\-in (tarball|\-) directory .Ve .PP این دستور فایل محلی \f(CW\*(C`tarball\*(C'\fR (یک فایل tar \fIفشرده‌شده با xz\fR) را در \fIdirectory\fR آپلود و استخراج می‌کند. .PP به جای نام فایل از \f(CW\*(C`\-\*(C'\fR برای خواندن/نوشتن از ورودی استاندارد (stdin) / خروجی استاندارد (stdout) استفاده کنید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "tar\-in" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ شدن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .PP این دستور به ویژگی \f(CW\*(C`xz\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS txz\-out .IX Subsection "txz-out" .Vb 1 \& txz\-out directory (tarball|\-) .Ve .PP این دستور محتویات \fIdirectory\fR را بسته‌بندی کرده و در فایل محلی \f(CW\*(C`tarball\*(C'\fR دانلود می‌کند (به عنوان یک آرشیو tar فشرده‌شده با xz). .PP به جای نام فایل از \f(CW\*(C`\-\*(C'\fR برای خواندن/نوشتن از ورودی استاندارد (stdin) / خروجی استاندارد (stdout) استفاده کنید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "tar\-out" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ شدن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .PP این دستور به ویژگی \f(CW\*(C`xz\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS umask .IX Subsection "umask" .Vb 1 \& umask mask .Ve .PP این تابع ماسک مورد استفاده برای ایجاد فایل‌ها و گره‌های دستگاه جدید را روی \f(CW\*(C`mask & 0777\*(C'\fR تنظیم می‌کند. .PP مقادیر معمول umask شامل \f(CW022\fR است که فایل‌های جدید را با مجوزهایی مانند "\-rw\-r\-\-r\-\-" یا "\-rwxr\-xr\-x" ایجاد می‌کند، و \f(CW002\fR که فایل‌های جدید را با مجوزهایی مانند "\-rw\-rw\-r\-\-" یا "\-rwxrwxr\-x" می‌سازد. .PP مقدار پیش‌فرض umask برابر \f(CW022\fR است. این نکته مهم است زیرا به این معنی است که دایرکتوری‌ها و گره‌های دستگاه با حالت \f(CW0644\fR یا \f(CW0755\fR ایجاد خواهند شد، حتی اگر شما \f(CW0777\fR را تعیین کرده باشید. .PP همچنین ببینید: "get\-umask"، \fBumask\fR\|(2)، "mknod"، "mkdir". .PP این فراخوانی umask قبلی را بازمی‌گرداند. .SS umount .IX Subsection "umount" .SS unmount .IX Subsection "unmount" .SS umount\-opts .IX Subsection "umount-opts" .Vb 1 \& umount pathordevice [force:true|false] [lazyunmount:true|false] .Ve .PP این دستور فایل‌سیستم داده‌شده را آن‌مونت (unmount) می‌کند. فایل‌سیستم را می‌توان از طریق نقطه مونت (مسیر) یا دستگاهی که شامل فایل‌سیستم است مشخص کرد. .PP این دستور یک یا چند آرگومان اختیاری دارد. "OPTIONAL ARGUMENTS" را ببینید. .SS umount\-all .IX Subsection "umount-all" .SS unmount\-all .IX Subsection "unmount-all" .Vb 1 \& umount\-all .Ve .PP این دستور تمامی فایل‌سیستم‌های مونت‌شده را آن‌مونت می‌کند. .PP برخی از مونت‌های داخلی توسط این فراخوانی آن‌مونت نمی‌شوند. .SS umount\-local .IX Subsection "umount-local" .Vb 1 \& umount\-local [retry:true|false] .Ve .PP اگر libguestfs در حال اکسپورت فایل‌سیستم روی یک نقطه مونت محلی باشد، این دستور آن را آن‌مونت می‌کند. .PP برای مستندات کامل "MOUNT LOCAL" را در \fBguestfs\fR\|(3) ببینید. .PP این دستور یک یا چند آرگومان اختیاری دارد. "OPTIONAL ARGUMENTS" را ببینید. .SS upload .IX Subsection "upload" .Vb 1 \& upload (filename|\-) remotefilename .Ve .PP فایل محلی \fIfilename\fR را در \fIremotefilename\fR روی فایل‌سیستم آپلود می‌کند. .PP \&\fIfilename\fR همچنین می‌تواند یک پایپ نام‌گذاری‌شده (named pipe) باشد. .PP همچنین "download" را ببینید. .PP به جای نام فایل از \f(CW\*(C`\-\*(C'\fR برای خواندن/نوشتن از ورودی استاندارد (stdin) / خروجی استاندارد (stdout) استفاده کنید. .SS upload\-offset .IX Subsection "upload-offset" .Vb 1 \& upload\-offset (filename|\-) remotefilename offset .Ve .PP فایل محلی \fIfilename\fR را در \fIremotefilename\fR روی فایل‌سیستم آپلود می‌کند. .PP \&\fIremotefilename\fR با شروع از بایت \f(CW\*(C`offset\*(C'\fR مشخص‌شده بازنویسی می‌شود. هدف بازنویسی بخش‌هایی از فایل‌ها یا دستگاه‌های موجود است، اگرچه اگر یک فایل ناموجود مشخص شود، با یک "روزنه" (hole) قبل از \f(CW\*(C`offset\*(C'\fR ایجاد می‌شود. اندازه داده‌های نوشته‌شده به صورت ضمنی برابر با اندازه فایل مبدأ \fIfilename\fR است. .PP توجه داشته باشید که برخلاف "pwrite"، هیچ محدودیتی برای مقدار داده‌ای که می‌توان با این فراخوانی آپلود کرد وجود ندارد، و این فراخوانی همیشه کل مقدار را می‌نویسد مگر اینکه خطایی رخ دهد. .PP همچنین "upload" و "pwrite" را ببینید. .PP به جای نام فایل از \f(CW\*(C`\-\*(C'\fR برای خواندن/نوشتن از ورودی استاندارد (stdin) / خروجی استاندارد (stdout) استفاده کنید. .SS user\-cancel .IX Subsection "user-cancel" .Vb 1 \& user\-cancel .Ve .PP این تابع عملیات بارگذاری (upload) یا بارگیری (download) فعلی را لغو می‌کند. .PP برخلاف بیشتر فراخوانی‌های دیگر libguestfs، این تابع ایمن در برابر سیگنال (signal safe) و ایمن در برابر رشته‌ها (thread safe) است. می‌توانید آن را از یک گرداننده سیگنال (signal handler) یا از رشته‌ای دیگر بدون نیاز به هیچ‌گونه قفل‌گذاری فراخوانی کنید. .PP انتقال در حال انجام (در صورت وجود) اندکی پس از آن متوقف شده و خطایی بازخواهد گرداند. مقدار errno ("guestfs_last_errno" را ببینید) روی \f(CW\*(C`EINTR\*(C'\fR تنظیم می‌شود، بنابراین می‌توانید این مقدار را بررسی کنید تا متوجه شوید آیا عملیات لغو شده یا به دلیل خطای دیگری شکست خورده است. .PP هیچ عملیات پاک‌سازی انجام نمی‌شود: برای مثال، اگر فایلی در حال آپلود بوده است، پس از لغو ممکن است یک فایل آپلود‌شده به صورت ناقص باقی بماند. تمیزکاری در صورت لزوم بر عهده فراخواننده است. .PP دو مکان متداول وجود دارد که ممکن است "user\-cancel" را در آن‌ها فراخوانی کنید: .PP در یک برنامه متنی تعاملی، ممکن است آن را از یک گرداننده سیگنال \f(CW\*(C`SIGINT\*(C'\fR فراخوانی کنید تا فشردن \f(CW\*(C`^C\*(C'\fR عملیات فعلی را لغو کند. (همچنین باید "set\-pgroup" را فراخوانی کنید تا فرآیندهای فرزند سیگنال \f(CW\*(C`^C\*(C'\fR را دریافت نکنند). .PP در یک برنامه گرافیکی، زمانی که رشته اصلی در حال نمایش یک نوار پیشرفت با دکمه لغو است، دکمه لغو را طوری تنظیم کنید که این تابع را فراخوانی کند. .SS utimens .IX Subsection "utimens" .Vb 1 \& utimens path atsecs atnsecs mtsecs mtnsecs .Ve .PP این دستور برچسب‌های زمانی یک فایل را با دقت نانوثانیه تنظیم می‌کند. .PP \&\f(CW\*(C`atsecs\*(C'\fR و \f(CW\*(C`atnsecs\*(C'\fR زمان آخرین دسترسی (atime) بر حسب ثانیه و نانوثانیه از زمان مبدأ (epoch) هستند. .PP \&\f(CW\*(C`mtsecs\*(C'\fR و \f(CW\*(C`mtnsecs\*(C'\fR زمان آخرین تغییر (mtime) بر حسب ثانیه و نانوثانیه از زمان مبدأ (epoch) هستند. .PP اگر فیلد \f(CW*nsecs\fR حاوی مقدار ویژه \f(CW\-1\fR باشد، برچسب زمانی متناظر روی زمان فعلی تنظیم می‌شود. (فیلد \f(CW*secs\fR در این حالت نادیده گرفته می‌شود). .PP اگر فیلد \f(CW*nsecs\fR حاوی مقدار ویژه \f(CW\-2\fR باشد، برچسب زمانی متناظر بدون تغییر باقی می‌ماند. (فیلد \f(CW*secs\fR در این حالت نادیده گرفته می‌شود). .SS utsname .IX Subsection "utsname" .Vb 1 \& utsname .Ve .PP این دستور نسخه هسته اپلاینس را در صورت در دسترس بودن بازمی‌گرداند. این اطلاعات فقط برای اشکال‌زدایی مفید است. هیچ چیزی در ساختار بازگردانده شده توسط API تعریف نشده است. .SS version .IX Subsection "version" .Vb 1 \& version .Ve .PP شماره نسخه libguestfs را که برنامه به آن لینک شده است بازمی‌گرداند. .PP توجه داشته باشید که به دلیل پیوند پویا (dynamic linking)، این لزوماً نسخه libguestfs نیست که برنامه را با آن کامپایل کرده‌اید. می‌توانید برنامه را کامپایل کرده و سپس در زمان اجرا به صورت پویا به یک کتابخانه کاملاً متفاوت \fIlibguestfs.so\fR پیوند دهید. .PP این فراخوانی در نسخه \f(CW1.0.58\fR اضافه شد. در نسخه‌های قبلی libguestfs راهی برای دریافت شماره نسخه وجود نداشت. از کد C می‌توانید از توابع پیوند‌دهنده پویا استفاده کنید تا دریابید آیا این نماد وجود دارد یا خیر (اگر وجود نداشته باشد، نسخه قبلی است). .PP این فراخوانی یک ساختار با چهار عنصر بازمی‌گرداند. سه عنصر اول (\f(CW\*(C`major\*(C'\fR، \f(CW\*(C`minor\*(C'\fR و \f(CW\*(C`release\*(C'\fR) عدد هستند و با سه‌گانه نسخه معمول مطابقت دارند. عنصر چهارم (\f(CW\*(C`extra\*(C'\fR) یک رشته است و معمولاً خالی است، اما ممکن است برای اطلاعات مخصوص توزیع استفاده شود. .PP برای ساخت رشته نسخه اصلی: \&\f(CW\*(C`$major.$minor.$release$extra\*(C'\fR .PP همچنین ببینید: "LIBGUESTFS VERSION NUMBERS" در \fBguestfs\fR\|(3). .PP \&\fIنکته:\fR از این فراخوانی برای آزمایش در دسترس بودن قابلیت‌ها استفاده نکنید. در توزیع‌های سازمانی، قابلیت‌ها را از نسخه‌های جدیدتر به نسخه‌های قدیمی‌تر بک‌پورت (backport) می‌کنیم که این روش را به روشی غیرقابل‌اعتماد برای بررسی قابلیت‌ها تبدیل می‌کند. به جای آن از "available" یا "feature\-available" استفاده کنید. .SS vfs\-label .IX Subsection "vfs-label" .Vb 1 \& vfs\-label mountable .Ve .PP برچسب فایل‌سیستم را روی \f(CW\*(C`mountable\*(C'\fR بازمی‌گرداند. .PP اگر فایل‌سیستم بدون برچسب باشد، این دستور رشته خالی بازمی‌گرداند. .PP برای یافتن فایل‌سیستم بر اساس برچسب، از "findfs\-label" استفاده کنید. .SS vfs\-minimum\-size .IX Subsection "vfs-minimum-size" .Vb 1 \& vfs\-minimum\-size mountable .Ve .PP حداقل اندازه فایل‌سیستم را بر حسب بایت دریافت می‌کند. این حداقل اندازه ممکن برای کوچک کردن (shrinking) فایل‌سیستم است. .PP اگر دریافت حداقل اندازه فایل‌سیستم مشخص‌شده پشتیبانی نشود، این دستور ناموفق خواهد بود و errno را روی ENOTSUP تنظیم می‌کند. .PP همچنین ببینید: \fBntfsresize\fR\|(8)، \fBresize2fs\fR\|(8)، \fBbtrfs\fR\|(8)، \fBxfs_info\fR\|(8). .SS vfs\-type .IX Subsection "vfs-type" .Vb 1 \& vfs\-type mountable .Ve .PP این دستور نوع فایل‌سیستم متناظر با فایل‌سیستم روی \f(CW\*(C`mountable\*(C'\fR را دریافت می‌کند. .PP برای اکثر فایل‌سیستم‌ها، نتیجه نام ماژول VFS لینوکس است که اگر فایل‌سیستم را بدون تعیین نوع فایل‌سیستم مونت می‌کردید، برای مونت کردن آن استفاده می‌شد. برای مثال رشته‌ای مانند \f(CW\*(C`ext3\*(C'\fR یا \f(CW\*(C`ntfs\*(C'\fR. .SS vfs\-uuid .IX Subsection "vfs-uuid" .SS get\-uuid .IX Subsection "get-uuid" .Vb 1 \& vfs\-uuid mountable .Ve .PP این دستور UUID فایل‌سیستم را روی \f(CW\*(C`mountable\*(C'\fR بازمی‌گرداند. .PP اگر فایل‌سیستم UUID نداشته باشد، این دستور رشته خالی بازمی‌گرداند. .PP برای یافتن فایل‌سیستم بر اساس UUID، از "findfs\-uuid" استفاده کنید. .SS vg\-activate .IX Subsection "vg-activate" .Vb 1 \& vg\-activate true|false \*(Aqvolgroups ...\*(Aq .Ve .PP این دستور تمامی حجم‌های منطقی در گروه‌های حجم فهرست‌شده \f(CW\*(C`volgroups\*(C'\fR را فعال یا (اگر \f(CW\*(C`activate\*(C'\fR مقدار false داشته باشد) غیرفعال می‌کند. .PP این دستور همانند اجرای \f(CW\*(C`vgchange \-a y|n volgroups...\*(C'\fR است. .PP توجه داشته باشید که اگر \f(CW\*(C`volgroups\*(C'\fR یک فهرست خالی باشد، آنگاه \fBتمامی\fR گروه‌های حجم فعال یا غیرفعال می‌شوند. .PP این دستور به ویژگی \f(CW\*(C`lvm2\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS vg\-activate\-all .IX Subsection "vg-activate-all" .Vb 1 \& vg\-activate\-all true|false .Ve .PP این دستور تمامی حجم‌های منطقی را در همه گروه‌های حجم فعال یا (اگر \f(CW\*(C`activate\*(C'\fR مقدار false داشته باشد) غیرفعال می‌کند. .PP این دستور همانند اجرای \f(CW\*(C`vgchange \-a y|n\*(C'\fR است. .PP این دستور به ویژگی \f(CW\*(C`lvm2\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS vgchange\-uuid .IX Subsection "vgchange-uuid" .Vb 1 \& vgchange\-uuid vg .Ve .PP یک UUID تصادفی جدید برای گروه حجم \f(CW\*(C`vg\*(C'\fR تولید می‌کند. .PP این دستور به ویژگی \f(CW\*(C`lvm2\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS vgchange\-uuid\-all .IX Subsection "vgchange-uuid-all" .Vb 1 \& vgchange\-uuid\-all .Ve .PP تولید UUIDهای تصادفی جدید برای تمامی گروه‌های حجم. .PP این دستور به ویژگی \f(CW\*(C`lvm2\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS vgcreate .IX Subsection "vgcreate" .Vb 1 \& vgcreate volgroup \*(Aqphysvols ...\*(Aq .Ve .PP یک گروه حجم LVM به نام \f(CW\*(C`volgroup\*(C'\fR از فهرست غیرخالی حجم‌های فیزیکی \f(CW\*(C`physvols\*(C'\fR ایجاد می‌کند. .PP این دستور به ویژگی \f(CW\*(C`lvm2\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS vglvuuids .IX Subsection "vglvuuids" .Vb 1 \& vglvuuids vgname .Ve .PP با داشتن یک VG به نام \f(CW\*(C`vgname\*(C'\fR، این دستور UUIDهای تمام حجم‌های منطقی ایجاد شده در این گروه حجم را بازمی‌گرداند. .PP می‌توانید از این دستور به همراه فراخوانی‌های "lvs" و "lvuuid" برای مرتبط کردن حجم‌های منطقی و گروه‌های حجم استفاده کنید. .PP همچنین "vgpvuuids" را ببینید. .SS vgmeta .IX Subsection "vgmeta" .Vb 1 \& vgmeta vgname .Ve .PP \&\f(CW\*(C`vgname\*(C'\fR یک گروه حجم LVM است. این دستور گروه حجم را بررسی کرده و فراداده (متادیتا) آن را بازمی‌گرداند. .PP توجه داشته باشید که فراداده یک ساختار داخلی مورد استفاده LVM است که در هر زمان ممکن است تغییر کند و صرفاً جهت اطلاع ارائه می‌شود. .PP این دستور به ویژگی \f(CW\*(C`lvm2\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS vgpvuuids .IX Subsection "vgpvuuids" .Vb 1 \& vgpvuuids vgname .Ve .PP با دریافت یک VG به نام \f(CW\*(C`vgname\*(C'\fR، این دستور شناسه یکتای سراسری (UUID) تمام حجم‌های فیزیکی که این گروه حجم روی آن‌ها قرار دارد را بازمی‌گرداند. .PP می‌توانید از این دستور در کنار فراخوانی‌های "pvs" و "pvuuid" برای مرتبط ساختن حجم‌های فیزیکی و گروه‌های حجم استفاده کنید. .PP همچنین "vglvuuids" را ببینید. .SS vgremove .IX Subsection "vgremove" .Vb 1 \& vgremove vgname .Ve .PP حذف یک گروه حجم LVM به نام \f(CW\*(C`vgname\*(C'\fR (برای مثال \f(CW\*(C`VG\*(C'\fR). .PP این دستور همچنین تمام حجم‌های منطقی موجود در گروه حجم (در صورت وجود) را به‌صورت اجباری حذف می‌کند. .PP این دستور به ویژگی \f(CW\*(C`lvm2\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS vgrename .IX Subsection "vgrename" .Vb 1 \& vgrename volgroup newvolgroup .Ve .PP تغییر نام گروه حجم \f(CW\*(C`volgroup\*(C'\fR به نام جدید \f(CW\*(C`newvolgroup\*(C'\fR. .SS vgs .IX Subsection "vgs" .Vb 1 \& vgs .Ve .PP فهرست کردن تمام گروه‌های حجم شناسایی‌شده. این معادل دستور \fBvgs\fR\|(8) است. .PP این دستور فهرستی از نام گروه‌های حجم شناسایی‌شده را بازمی‌گرداند (مانند \f(CW\*(C`VolGroup00\*(C'\fR). .PP همچنین "vgs\-full" را ببینید. .PP این دستور به ویژگی \f(CW\*(C`lvm2\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS vgs\-full .IX Subsection "vgs-full" .Vb 1 \& vgs\-full .Ve .PP فهرست کردن تمام گروه‌های حجم شناسایی‌شده. این معادل دستور \fBvgs\fR\|(8) است. نسخه "full" شامل تمام فیلدها می‌شود. .PP این دستور به ویژگی \f(CW\*(C`lvm2\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS vgscan .IX Subsection "vgscan" .Vb 1 \& vgscan .Ve .PP پویش مجدد تمام دستگاه‌های بلوکی و بازسازی فهرست حجم‌های فیزیکی، گروه‌های حجم و حجم‌های منطقی LVM. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "lvm\-scan" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .SS vguuid .IX Subsection "vguuid" .Vb 1 \& vguuid vgname .Ve .PP این دستور UUID مربوط به VG نام‌برده \f(CW\*(C`vgname\*(C'\fR در LVM را بازمی‌گرداند. .SS wc\-c .IX Subsection "wc-c" .Vb 1 \& wc\-c path .Ve .PP این دستور با استفاده از دستور خارجی \f(CW\*(C`wc \-c\*(C'\fR، نویسه‌های موجود در یک فایل را می‌شمارد. .SS wc\-l .IX Subsection "wc-l" .Vb 1 \& wc\-l path .Ve .PP این دستور با استفاده از دستور خارجی \f(CW\*(C`wc \-l\*(C'\fR، خطوط موجود در یک فایل را می‌شمارد. .SS wc\-w .IX Subsection "wc-w" .Vb 1 \& wc\-w path .Ve .PP این دستور با استفاده از دستور خارجی \f(CW\*(C`wc \-w\*(C'\fR، کلمات موجود در یک فایل را می‌شمارد. .SS wipefs .IX Subsection "wipefs" .Vb 1 \& wipefs device .Ve .PP این دستور امضاهای سیستم‌فایل یا RAID را از \f(CW\*(C`device\*(C'\fR مشخص‌شده پاک می‌کند تا سیستم‌فایل برای libblkid نامرئی شود. .PP این کار خود سیستم‌فایل یا سایر داده‌ها را از \f(CW\*(C`device\*(C'\fR پاک نمی‌کند. .PP این دستور را با "zero" مقایسه کنید که چند بلوک ابتدایی دستگاه را صفر می‌کند. .PP این دستور به ویژگی \f(CW\*(C`wipefs\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS write .IX Subsection "write" .Vb 1 \& write path content .Ve .PP این فراخوانی فایلی به نام \f(CW\*(C`path\*(C'\fR ایجاد می‌کند. محتوای فایل، رشته \f(CW\*(C`content\*(C'\fR است (که می‌تواند شامل هر داده ۸ بیتی باشد). .PP همچنین "write\-append" را ببینید. .SS write\-append .IX Subsection "write-append" .Vb 1 \& write\-append path content .Ve .PP این فراخوانی رشته \f(CW\*(C`content\*(C'\fR را به انتهای فایل \f(CW\*(C`path\*(C'\fR پیوست می‌کند. اگر \f(CW\*(C`path\*(C'\fR وجود نداشته باشد، یک فایل جدید ایجاد می‌شود. .PP همچنین "write" را ببینید. .SS write\-file .IX Subsection "write-file" .Vb 1 \& write\-file path content size .Ve .PP این فراخوانی فایلی به نام \f(CW\*(C`path\*(C'\fR ایجاد می‌کند. محتوای فایل، رشته \f(CW\*(C`content\*(C'\fR (که می‌تواند شامل هر داده ۸ بیتی باشد) با طول \f(CW\*(C`size\*(C'\fR است. .PP به‌عنوان یک حالت خاص، اگر \f(CW\*(C`size\*(C'\fR برابر با \f(CW0\fR باشد، طول با استفاده از \f(CW\*(C`strlen\*(C'\fR محاسبه می‌شود (بنابراین در این حالت محتوا نمی‌تواند حاوی بایت‌های تهی NUL اسکی باشد). .PP \&\fIنکته:\fR به دلیل یک باگ، نوشتن محتوای حاوی کاراکترهای NUL اسکی کار \fIنمی‌کند\fR، حتی اگر طول مشخص شده باشد. .PP به دلیل پروتکل پیام‌رسانی، محدودیت انتقال بین ۲ تا ۴ مگابایت وجود دارد. بخش "PROTOCOL LIMITS" در \fBguestfs\fR\|(3) را ببینید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "write" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .SS xfs\-admin .IX Subsection "xfs-admin" .Vb 1 \& xfs\-admin device [extunwritten:true|false] [imgfile:true|false] [v2log:true|false] [projid32bit:true|false] [lazycounter:true|false] [label:..] [uuid:..] .Ve .PP تغییر پارامترهای سیستم‌فایل XFS روی \f(CW\*(C`device\*(C'\fR. .PP دستگاه‌های متصل‌شده (mount) را نمی‌توان ویرایش کرد. مدیران سیستم پیش از اینکه این فراخوانی بتواند پارامترها را تغییر دهد، باید سیستم‌فایل را جدا (unmount) کنند. .PP برخی از پارامترهای یک سیستم‌فایل متصل‌شده را می‌توان با استفاده از فراخوانی‌های "xfs\-info" و "xfs\-growfs" بررسی و ویرایش کرد. .PP از نسخه ۵ سیستم‌فایل XFS به بعد، دیگر امکان تغییر تنظیم lazy\-counters وجود ندارد (یعنی پارامتر \f(CW\*(C`lazycounter\*(C'\fR هیچ تاثیری ندارد). .PP این دستور دارای یک یا چند آرگومان اختیاری است. بخش "آرگومان‌های اختیاری (OPTIONAL ARGUMENTS)" را ببینید. .PP این دستور به ویژگی \f(CW\*(C`xfs\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS xfs\-growfs .IX Subsection "xfs-growfs" .Vb 1 \& xfs\-growfs path [datasec:true|false] [logsec:true|false] [rtsec:true|false] [datasize:N] [logsize:N] [rtsize:N] [rtextsize:N] [maxpct:N] .Ve .PP افزایش اندازه سیستم‌فایل XFS متصل‌شده در \f(CW\*(C`path\*(C'\fR. .PP این دستور دارای یک یا چند آرگومان اختیاری است. بخش "آرگومان‌های اختیاری (OPTIONAL ARGUMENTS)" را ببینید. .PP این دستور به ویژگی \f(CW\*(C`xfs\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS xfs\-info .IX Subsection "xfs-info" .Vb 1 \& xfs\-info pathordevice .Ve .PP \&\f(CW\*(C`pathordevice\*(C'\fR یک سیستم‌فایل XFS متصل‌شده یا دستگاهی حاوی سیستم‌فایل XFS است. این دستور فراداده‌های متفرقه مربوط به سیستم‌فایل XFS را بازمی‌گرداند. .PP ساختار بازگردانده‌شده شامل فراداده‌های گوناگون است. فیلدهای ناموجود به‌صورت \f(CW\-1\fR (برای فیلدهای عددی) یا رشته خالی بازگردانده می‌شوند. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "xfs\-info2" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .PP این دستور به ویژگی \f(CW\*(C`xfs\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS xfs\-info2 .IX Subsection "xfs-info2" .Vb 1 \& xfs\-info2 pathordevice .Ve .PP \&\f(CW\*(C`pathordevice\*(C'\fR یک سیستم‌فایل XFS متصل‌شده یا دستگاهی حاوی سیستم‌فایل XFS است. این دستور فراداده‌های گوناگون درباره سیستم‌فایل XFS را بازمی‌گرداند. .PP خروجی، یک جدول هش برگرفته از خروجی \fBxfs_info\fR\|(8) است و به‌طور کلی به شکل زیر است: .PP .Vb 12 \& meta\-data: /dev/sda1 \& meta\-data.isize: 512 \& meta\-data.agcount: 4 \& meta\-data.agsize: 65528 blks \& meta\-data.sectsz: 512 \& meta\-data.attr: 2 \& meta\-data.projid32bit: 1 \& meta\-data.crc: 1 \& [...] \& data.bsize: 4096 \& data.blocks: 262112 \& [...] .Ve .PP اطلاعات بیشتر را می‌توانید با مطالعه \fBxfs_info\fR\|(8) بیابید. .PP این دستور به ویژگی \f(CW\*(C`xfs\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS xfs\-repair .IX Subsection "xfs-repair" .Vb 1 \& xfs\-repair device [forcelogzero:true|false] [nomodify:true|false] [noprefetch:true|false] [forcegeometry:true|false] [maxmem:N] [ihashsize:N] [bhashsize:N] [agstride:N] [logdev:..] [rtdev:..] .Ve .PP ترمیم سیستم‌فایل XFS خراب یا آسیب‌دیده روی \f(CW\*(C`device\*(C'\fR. .PP سیستم‌فایل با استفاده از آرگومان \f(CW\*(C`device\*(C'\fR مشخص می‌شود که باید نام دستگاه پارتیشن یا حجم حاوی سیستم‌فایل باشد. اگر نام یک دستگاه بلوکی داده شود، \f(CW\*(C`xfs_repair\*(C'\fR تلاش می‌کند تا دستگاه خام مرتبط با دستگاه بلوکی مشخص‌شده را پیدا کرده و به جای آن از دستگاه خام استفاده کند. .PP در هر صورت، سیستم‌فایلی که قرار است ترمیم شود باید جدا (unmount) باشد؛ در غیر این صورت سیستم‌فایل حاصل ممکن است ناپایدار یا خراب شود. .PP وضعیت بازگردانده‌شده نشان می‌دهد که آیا خرابی سیستم‌فایل شناسایی شد (مقدار \f(CW1\fR) یا شناسایی نشد (مقدار \f(CW0\fR). .PP این دستور دارای یک یا چند آرگومان اختیاری است. بخش "آرگومان‌های اختیاری (OPTIONAL ARGUMENTS)" را ببینید. .PP این دستور به ویژگی \f(CW\*(C`xfs\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS yara\-destroy .IX Subsection "yara-destroy" .Vb 1 \& yara\-destroy .Ve .PP نابود کردن قوانین Yara بارگذاری‌شده قبلی به منظور آزادسازی منابع libguestfs. .PP این دستور به ویژگی \f(CW\*(C`libyara\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS yara\-load .IX Subsection "yara-load" .Vb 1 \& yara\-load (filename|\-) .Ve .PP بارگذاری مجموعه‌ای از قوانین Yara از فایل محلی \fIfilename\fR. .PP قوانین Yara امکان دسته‌بندی فایل‌ها را بر اساس الگوهای متنی یا دودویی درون محتوای آن‌ها فراهم می‌کنند. بخش "yara\-scan" را ببینید تا نحوه پویش فایل‌ها با قوانین بارگذاری‌شده را مشاهده کنید. .PP قوانین می‌توانند در قالب دودویی باشند (همانند زمانی که با دستور yarac کامپایل می‌شوند) یا در قالب کد منبع باشند. در حالت دوم، قوانین ابتدا کامپایل شده و سپس بارگذاری می‌شوند. .PP قوانین در قالب کد منبع نمی‌توانند شامل فایل‌های خارجی باشند. در چنین مواردی توصیه می‌شود ابتدا آن‌ها را کامپایل کنید. .PP قوانین بارگذاری‌شده قبلی از بین خواهند رفت. .PP برای خواندن/نوشتن از ورودی استاندارد (stdin) یا خروجی استاندارد (stdout)، از \f(CW\*(C`\-\*(C'\fR به جای نام فایل استفاده کنید. .PP این دستور به ویژگی \f(CW\*(C`libyara\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS yara\-scan .IX Subsection "yara-scan" .Vb 1 \& yara\-scan path .Ve .PP پویش یک فایل با قوانین Yara که قبلاً بارگذاری شده‌اند. .PP به ازای هر قانون منطبق، یک ساختار \f(CW\*(C`yara_detection\*(C'\fR بازگردانده می‌شود. .PP ساختار \f(CW\*(C`yara_detection\*(C'\fR شامل فیلدهای زیر است: .ie n .IP """yara_name""" 4 .el .IP \f(CWyara_name\fR 4 .IX Item "yara_name" مسیر فایلی که با یک قانون Yara مطابقت داشته است. .ie n .IP """yara_rule""" 4 .el .IP \f(CWyara_rule\fR 4 .IX Item "yara_rule" شناسه قانون Yara که با فایل داده‌شده مطابقت داشته است. .PP این دستور به ویژگی \f(CW\*(C`libyara\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS zegrep .IX Subsection "zegrep" .Vb 1 \& zegrep regex path .Ve .PP این فراخوانی برنامه خارجی \f(CW\*(C`zegrep\*(C'\fR را اجرا کرده و خطوط منطبق را بازمی‌گرداند. .PP به دلیل پروتکل پیام‌رسانی، یک محدودیت انتقال بین ۲ تا ۴ مگابایت وجود دارد. بخش "PROTOCOL LIMITS" در \fBguestfs\fR\|(3) را ببینید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "grep" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .SS zegrepi .IX Subsection "zegrepi" .Vb 1 \& zegrepi regex path .Ve .PP این فراخوانی برنامه خارجی \f(CW\*(C`zegrep \-i\*(C'\fR را اجرا کرده و خطوط منطبق را بازمی‌گرداند. .PP به دلیل پروتکل پیام‌رسانی، یک محدودیت انتقال بین ۲ تا ۴ مگابایت وجود دارد. بخش "PROTOCOL LIMITS" در \fBguestfs\fR\|(3) را ببینید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "grep" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .SS zero .IX Subsection "zero" .Vb 1 \& zero device .Ve .PP این دستور روی چند بلوک اول \f(CW\*(C`device\*(C'\fR بایت‌های صفر می‌نویسد. .PP تعداد بلوک‌هایی که صفر می‌شوند مشخص نشده است (اما برای پاک‌سازی ایمن دستگاه \fIکافی نیست\fR). این مقدار باید برای حذف جدول‌های پارتیشن، ابربلوک‌های سیستم‌فایل و موارد مشابه کافی باشد. .PP اگر بلوک‌ها از قبل صفر باشند، این دستور از نوشتن صفرها خودداری می‌کند. این امر از نامنقطع (non-sparse) شدن یا رشد غیرضروری دستگاه زیربنایی جلوگیری می‌کند. .PP همچنین ببینید: "zero\-device", "scrub\-device", "is\-zero\-device". .SS zero\-device .IX Subsection "zero-device" .Vb 1 \& zero\-device device .Ve .PP این دستور روی تمام فضای \f(CW\*(C`device\*(C'\fR بایت‌های صفر می‌نویسد. این دستور را با "zero" مقایسه کنید که فقط چند بلوک اول دستگاه را صفر می‌کند. .PP اگر بلوک‌ها از قبل صفر باشند، این دستور از نوشتن صفرها خودداری می‌کند. این امر از غیرتنک شدن (non-sparse) یا رشد غیرضروری دستگاه زیربنایی جلوگیری می‌کند. .SS zero\-free\-space .IX Subsection "zero-free-space" .Vb 1 \& zero\-free\-space directory .Ve .PP صفر کردن فضای خالی در سیستم‌فایل متصل‌شده در \fIdirectory\fR. سیستم‌فایل باید به‌صورت خواندن-نوشتن متصل شده باشد. .PP محتوای سیستم‌فایل تحت تأثیر قرار نمی‌گیرد، اما تمام فضای خالی موجود در سیستم‌فایل صفر می‌شود. .PP فضای خالی "trim" نمی‌شود. بسته به نیاز خود، ممکن است بخواهید فراخوانی "fstrim" را به عنوان جایگزین این دستور یا پس از فراخوانی آن اجرا کنید. .SS zerofree .IX Subsection "zerofree" .Vb 1 \& zerofree device .Ve .PP این دستور برنامه \fIzerofree\fR را روی \f(CW\*(C`device\*(C'\fR اجرا می‌کند. این برنامه ادعا می‌کند که اینودها و بلوک‌های دیسک استفاده‌نشده در یک سیستم‌فایل ext2/3 را صفر می‌کند و در نتیجه فشرده‌سازی سیستم‌فایل را موثرتر می‌سازد. .PP اگر سیستم‌فایل متصل (mount) شده باشد، \fBنباید\fR این برنامه را اجرا کنید. .PP این احتمال وجود دارد که استفاده از این برنامه به سیستم‌فایل یا داده‌های موجود در آن آسیب برساند. .PP این دستور به ویژگی \f(CW\*(C`zerofree\*(C'\fR وابسته است. همچنین "feature\-available" را ببینید. .SS zfgrep .IX Subsection "zfgrep" .Vb 1 \& zfgrep pattern path .Ve .PP این فراخوانی برنامه خارجی \f(CW\*(C`zfgrep\*(C'\fR را اجرا کرده و خطوط منطبق را بازمی‌گرداند. .PP به دلیل پروتکل پیام‌رسانی، یک محدودیت انتقال بین ۲ تا ۴ مگابایت وجود دارد. بخش "PROTOCOL LIMITS" در \fBguestfs\fR\|(3) را ببینید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "grep" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .SS zfgrepi .IX Subsection "zfgrepi" .Vb 1 \& zfgrepi pattern path .Ve .PP این فراخوانی برنامه خارجی \f(CW\*(C`zfgrep \-i\*(C'\fR را اجرا کرده و خطوط منطبق را بازمی‌گرداند. .PP به دلیل پروتکل پیام‌رسانی، یک محدودیت انتقال بین ۲ تا ۴ مگابایت وجود دارد. بخش "PROTOCOL LIMITS" در \fBguestfs\fR\|(3) را ببینید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "grep" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .SS zfile .IX Subsection "zfile" .Vb 1 \& zfile meth path .Ve .PP این دستور ابتدا \f(CW\*(C`path\*(C'\fR را با استفاده از \f(CW\*(C`meth\*(C'\fR از حالت فشرده خارج کرده و سپس \fBfile\fR\|(1) را اجرا می‌کند. .PP \&\f(CW\*(C`meth\*(C'\fR باید یکی از مقادیر \f(CW\*(C`gzip\*(C'\fR، \f(CW\*(C`compress\*(C'\fR یا \f(CW\*(C`bzip2\*(C'\fR باشد. .PP از نسخه 1.0.63 به بعد، به جای آن از "file" استفاده کنید که اکنون می‌تواند فایل‌های فشرده را پردازش کند. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "file" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .SS zgrep .IX Subsection "zgrep" .Vb 1 \& zgrep regex path .Ve .PP این فراخوانی برنامه خارجی \fBzgrep\fR\|(1) را اجرا کرده و خطوط منطبق را بازمی‌گرداند. .PP به دلیل پروتکل پیام‌رسانی، یک محدودیت انتقال بین ۲ تا ۴ مگابایت وجود دارد. بخش "PROTOCOL LIMITS" در \fBguestfs\fR\|(3) را ببینید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "grep" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .SS zgrepi .IX Subsection "zgrepi" .Vb 1 \& zgrepi regex path .Ve .PP این فراخوانی برنامه خارجی \f(CW\*(C`zgrep \-i\*(C'\fR را اجرا کرده و خطوط منطبق را بازمی‌گرداند. .PP به دلیل پروتکل پیام‌رسانی، یک محدودیت انتقال بین ۲ تا ۴ مگابایت وجود دارد. بخش "PROTOCOL LIMITS" در \fBguestfs\fR\|(3) را ببینید. .PP \&\fIاین تابع منسوخ شده است.\fR در کدهای جدید، به جای آن از فراخوانی "grep" استفاده کنید. .PP توابع منسوخ‌شده از API حذف نخواهند شد، اما منسوخ بودن آن‌ها نشان‌دهنده وجود مشکلاتی در استفاده صحیح از این توابع است. .SH "وضعیت خروج (EXIT STATUS)" .IX Header "EXIT STATUS" دستور guestfish در صورتی که دستورات بدون خطا کامل شوند، مقدار 0 و در صورت بروز خطا مقدار 1 را بازمی‌گرداند. .SH "متغیرهای محیطی (ENVIRONMENT VARIABLES)" .IX Header "ENVIRONMENT VARIABLES" .IP EDITOR 4 .IX Item "EDITOR" دستور \f(CW\*(C`edit\*(C'\fR از \f(CW$EDITOR\fR به عنوان ویرایشگر استفاده می‌کند. در صورت عدم تنظیم، از \f(CW\*(C`vi\*(C'\fR استفاده می‌شود. .IP GUESTFISH_DISPLAY_IMAGE 4 .IX Item "GUESTFISH_DISPLAY_IMAGE" دستور \f(CW\*(C`display\*(C'\fR از \f(CW$GUESTFISH_DISPLAY_IMAGE\fR برای نمایش تصاویر استفاده می‌کند. در صورت عدم تنظیم، از \fBdisplay\fR\|(1) استفاده می‌شود. .IP GUESTFISH_INIT 4 .IX Item "GUESTFISH_INIT" هنگام شروع به کار guestfish چاپ می‌شود. بخش "اعلان ورودی (PROMPT)" را ببینید. .IP GUESTFISH_OUTPUT 4 .IX Item "GUESTFISH_OUTPUT" قبل از خروجی guestfish چاپ می‌شود. بخش "اعلان ورودی (PROMPT)" را ببینید. .IP GUESTFISH_PID 4 .IX Item "GUESTFISH_PID" همراه با گزینه \fI\-\-remote\fR برای مشخص کردن فرآیند راه‌دور guestfish جهت کنترل استفاده می‌شود. بخش "کنترل از راه دور guestfish از طریق سوکت (REMOTE CONTROL GUESTFISH OVER A SOCKET)" را ببینید. .IP GUESTFISH_PS1 4 .IX Item "GUESTFISH_PS1" تنظیم اعلان ورودی دستور (پرامپت). بخش "اعلان ورودی (PROMPT)" را ببینید. .IP GUESTFISH_RESTORE 4 .IX Item "GUESTFISH_RESTORE" پیش از خروج guestfish چاپ می‌شود. بخش "اعلان ورودی (PROMPT)" را ببینید. .IP HEXEDITOR 4 .IX Item "HEXEDITOR" دستور "hexedit" از \f(CW$HEXEDITOR\fR به عنوان ویرایشگر هگز خارجی استفاده می‌کند. در صورت عدم تعیین، از برنامه خارجی \fBhexedit\fR\|(1) استفاده می‌شود. .IP HOME 4 .IX Item "HOME" در صورت کامپایل با پشتیبانی از GNU readline، فایل‌های مختلفی در دایرکتوری خانگی می‌توانند استفاده شوند. بخش "فایل‌ها (FILES)" را ببینید. .IP LIBGUESTFS_APPEND 4 .IX Item "LIBGUESTFS_APPEND" ارسال گزینه‌های اضافی به هسته (کرنل) مهمان. .IP LIBGUESTFS_ATTACH_METHOD 4 .IX Item "LIBGUESTFS_ATTACH_METHOD" روش قدیمی برای تنظیم \f(CW\*(C`LIBGUESTFS_BACKEND\*(C'\fR است. .IP LIBGUESTFS_BACKEND 4 .IX Item "LIBGUESTFS_BACKEND" انتخاب روش پیش‌فرض برای ایجاد ابزار کاربردی (appliance). بخش "guestfs_set_backend" در \fBguestfs\fR\|(3) را ببینید. .IP LIBGUESTFS_BACKEND_SETTINGS 4 .IX Item "LIBGUESTFS_BACKEND_SETTINGS" فهرستی از تنظیمات مختص بک‌اند که با دونقطه جدا شده‌اند. بخش‌های "BACKEND" در \fBguestfs\fR\|(3) و "BACKEND SETTINGS" در \fBguestfs\fR\|(3) را ببینید. .IP LIBGUESTFS_CACHEDIR 4 .IX Item "LIBGUESTFS_CACHEDIR" مسیری که libguestfs در هنگام استفاده از یک ابزار supermin، اپلاینس خود را در آن کش می‌کند. اپلاینس کش شده و بین تمام دستگیره‌هایی که شناسه کاربر موثر (effective user ID) یکسان دارند به اشتراک گذاشته می‌شود. .Sp اگر \f(CW\*(C`LIBGUESTFS_CACHEDIR\*(C'\fR تنظیم نشده باشد، از \f(CW\*(C`TMPDIR\*(C'\fR استفاده می‌شود. اگر \f(CW\*(C`TMPDIR\*(C'\fR نیز تنظیم نشده باشد، از \fI/var/tmp\fR استفاده خواهد شد. .Sp همچنین "LIBGUESTFS_TMPDIR" و "set\-cachedir" را ببینید. .IP LIBGUESTFS_DEBUG 4 .IX Item "LIBGUESTFS_DEBUG" برای فعال‌سازی پیام‌های مشروح، \f(CW\*(C`LIBGUESTFS_DEBUG=1\*(C'\fR را تنظیم کنید. این کار اثری مشابه استفاده از گزینه \fB\-v\fR دارد. .IP LIBGUESTFS_HV 4 .IX Item "LIBGUESTFS_HV" تنظیم باینری هایپروایزر پیش‌فرض (معمولاً qemu) که libguestfs از آن استفاده می‌کند. در صورت عدم تنظیم، از qemu شناسایی‌شده در زمان کامپایل توسط اسکریپت پیکربندی استفاده می‌شود. .IP LIBGUESTFS_MEMSIZE 4 .IX Item "LIBGUESTFS_MEMSIZE" تنظیم حافظه اختصاص‌یافته به فرآیند qemu بر حسب مگابایت. برای مثال: .Sp .Vb 1 \& LIBGUESTFS_MEMSIZE=700 .Ve .IP LIBGUESTFS_PATH 4 .IX Item "LIBGUESTFS_PATH" تنظیم مسیری که guestfish برای جستجوی هسته و initrd.img از آن استفاده می‌کند. توضیحات مربوط به مسیرها در \fBguestfs\fR\|(3) را ببینید. .IP LIBGUESTFS_QEMU 4 .IX Item "LIBGUESTFS_QEMU" روش قدیمی برای تنظیم \f(CW\*(C`LIBGUESTFS_HV\*(C'\fR است. .IP LIBGUESTFS_TMPDIR 4 .IX Item "LIBGUESTFS_TMPDIR" مسیری که libguestfs فایل‌های موقت مورد استفاده توسط هر هندل را در آن ذخیره می‌کند. .Sp اگر \f(CW\*(C`LIBGUESTFS_TMPDIR\*(C'\fR تنظیم نشده باشد، از \f(CW\*(C`TMPDIR\*(C'\fR استفاده می‌شود. اگر \f(CW\*(C`TMPDIR\*(C'\fR نیز تنظیم نشده باشد، از \fI/tmp\fR استفاده می‌شود. .Sp همچنین "LIBGUESTFS_CACHEDIR" و "set\-tmpdir" را ببینید. .IP LIBGUESTFS_TRACE 4 .IX Item "LIBGUESTFS_TRACE" تنظیم \f(CW\*(C`LIBGUESTFS_TRACE=1\*(C'\fR برای فعال‌سازی ردگیری دستورات. .IP PAGER 4 .IX Item "PAGER" دستور \f(CW\*(C`more\*(C'\fR از \f(CW$PAGER\fR به عنوان صفحه‌بند استفاده می‌کند. در صورت عدم تنظیم، از \f(CW\*(C`more\*(C'\fR استفاده می‌شود. .IP PATH 4 .IX Item "PATH" ابزارهای Libguestfs و guestfish ممکن است برخی برنامه‌های خارجی را اجرا کنند و متکی بر تنظیم \f(CW$PATH\fR روی یک مقدار منطقی هستند. در صورت استفاده از بک‌اند libvirt، تا زمانی که \f(CW$PATH\fR حاوی مسیر qemu/KVM نباشد، libvirt اصلاً کار نخواهد کرد. .IP SUPERMIN_KERNEL 4 .IX Item "SUPERMIN_KERNEL" .PD 0 .IP SUPERMIN_KERNEL_VERSION 4 .IX Item "SUPERMIN_KERNEL_VERSION" .IP SUPERMIN_MODULES 4 .IX Item "SUPERMIN_MODULES" .PD این سه متغیر محیطی امکان انتخاب هسته‌ای را که libguestfs در ابزار کاربردی استفاده می‌کند، فراهم می‌سازند. اگر \f(CW$SUPERMIN_KERNEL\fR تنظیم نشده باشد، جدیدترین هسته میزبان انتخاب می‌شود. برای اطلاعات بیشتر درباره انتخاب هسته، \fBsupermin\fR\|(1) را ببینید. .IP TMPDIR 4 .IX Item "TMPDIR" بخش‌های "LIBGUESTFS_CACHEDIR" و "LIBGUESTFS_TMPDIR" را ببینید. .IP XDG_RUNTIME_DIR 4 .IX Item "XDG_RUNTIME_DIR" این دایرکتوری نشان‌دهنده دایرکتوری مختص کاربر برای ذخیره فایل‌های زمان اجرای غیرضروری است. .Sp در صورت تنظیم، برای ذخیره سوکت‌های موقت و فایل‌های PID استفاده می‌شود. در غیر این صورت از \fI/tmp\fR استفاده خواهد شد. .Sp همچنین "get\-sockdir" و http://www.freedesktop.org/wiki/Specifications/basedir\-spec را ببینید. .SH "فایل‌ها (FILES)" .IX Header "FILES" .ie n .IP $XDG_CONFIG_HOME/libguestfs/libguestfs\-tools.conf 4 .el .IP \f(CW$XDG_CONFIG_HOME\fR/libguestfs/libguestfs\-tools.conf 4 .IX Item "$XDG_CONFIG_HOME/libguestfs/libguestfs-tools.conf" .PD 0 .ie n .IP $HOME/.libguestfs\-tools.rc 4 .el .IP \f(CW$HOME\fR/.libguestfs\-tools.rc 4 .IX Item "$HOME/.libguestfs-tools.rc" .ie n .IP $XDG_CONFIG_DIRS/libguestfs/libguestfs\-tools.conf 4 .el .IP \f(CW$XDG_CONFIG_DIRS\fR/libguestfs/libguestfs\-tools.conf 4 .IX Item "$XDG_CONFIG_DIRS/libguestfs/libguestfs-tools.conf" .IP /etc/libguestfs\-tools.conf 4 .IX Item "/etc/libguestfs-tools.conf" .PD این فایل پیکربندی حالت پیش‌فرض فقط‌خواندنی یا خواندن-نوشتن (\fI\-\-ro\fR یا \fI\-\-rw\fR) را کنترل می‌کند. .Sp \&\fBlibguestfs\-tools.conf\fR\|(5) را ببینید. .ie n .IP $HOME/.guestfish 4 .el .IP \f(CW$HOME\fR/.guestfish 4 .IX Item "$HOME/.guestfish" در صورت کامپایل با پشتیبانی از GNU readline، تاریخچه دستورات در این فایل ذخیره می‌شود. .ie n .IP $HOME/.inputrc 4 .el .IP \f(CW$HOME\fR/.inputrc 4 .IX Item "$HOME/.inputrc" .PD 0 .IP /etc/inputrc 4 .IX Item "/etc/inputrc" .PD در صورت کامپایل با پشتیبانی از GNU readline، این فایل‌ها می‌توانند برای پیکربندی readline استفاده شوند. برای اطلاعات بیشتر لطفاً بخش "INITIALIZATION FILE" در \fBreadline\fR\|(3) را ببینید. .Sp برای نوشتن قوانینی که فقط برای guestfish اعمال شوند، از ساختار زیر استفاده کنید: .Sp .Vb 3 \& $if guestfish \& ... \& $endif .Ve .Sp متغیرهایی که می‌توانید در inputrc تنظیم کنید و رفتار guestfish را به شیوه‌های مفید تغییر می‌دهند شامل موارد زیر هستند: .RS 4 .IP "completion\-ignore\-case (پیش‌فرض: on)" 4 .IX Item "completion-ignore-case (default: on)" به‌طور پیش‌فرض، guestfish هنگام تکمیل با کلید Tab برای مسیرهای روی دیسک، بزرگی و کوچکی حروف را نادیده می‌گیرد. از دستور زیر استفاده کنید: .Sp .Vb 1 \& set completion\-ignore\-case off .Ve .Sp تا guestfish نسبت به بزرگی و کوچکی حروف حساس شود. .RE .RS 4 .RE .IP test1.img 4 .IX Item "test1.img" .PD 0 .IP "test2.img (و غیره)" 4 .IX Item "test2.img (etc)" .PD هنگام استفاده از گزینه \fI\-N\fR یا \fI\-\-new\fR، دیسک یا سیستم‌فایل آماده در فایل \fItest1.img\fR در دایرکتوری جاری ایجاد می‌شود. استفاده دوم از \fI\-N\fR از نام \fItest2.img\fR استفاده خواهد کرد و به همین ترتیب. هر فایل موجود با همین نام رونویسی خواهد شد. با استفاده از پیشوند \f(CW\*(C`filename=\*(C'\fR می‌توانید نام فایل متفاوتی را مشخص کنید. .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" \&\fBguestfs\fR\|(3), http://libguestfs.org, \&\fBvirt\-alignment\-scan\fR\|(1), \&\fBvirt\-builder\fR\|(1), \&\fBvirt\-builder\-repository\fR\|(1), \&\fBvirt\-cat\fR\|(1), \&\fBvirt\-copy\-in\fR\|(1), \&\fBvirt\-copy\-out\fR\|(1), \&\fBvirt\-customize\fR\|(1), \&\fBvirt\-df\fR\|(1), \&\fBvirt\-diff\fR\|(1), \&\fBvirt\-edit\fR\|(1), \&\fBvirt\-filesystems\fR\|(1), \&\fBvirt\-inspector\fR\|(1), \&\fBvirt\-list\-filesystems\fR\|(1), \&\fBvirt\-list\-partitions\fR\|(1), \&\fBvirt\-log\fR\|(1), \&\fBvirt\-ls\fR\|(1), \&\fBvirt\-make\-fs\fR\|(1), \&\fBvirt\-p2v\fR\|(1), \&\fBvirt\-rescue\fR\|(1), \&\fBvirt\-resize\fR\|(1), \&\fBvirt\-sparsify\fR\|(1), \&\fBvirt\-sysprep\fR\|(1), \&\fBvirt\-tail\fR\|(1), \&\fBvirt\-tar\fR\|(1), \&\fBvirt\-tar\-in\fR\|(1), \&\fBvirt\-tar\-out\fR\|(1), \&\fBvirt\-v2v\fR\|(1), \&\fBvirt\-win\-reg\fR\|(1), \&\fBlibguestfs\-tools.conf\fR\|(5), \&\fBdisplay\fR\|(1), \&\fBhexedit\fR\|(1), \&\fBsupermin\fR\|(1). .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) 2009\-2025 Red Hat Inc. .SH "مجوز (LICENSE)" .IX Header "LICENSE" این برنامه یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط «مجوز عمومی همگانی گنو» (GNU GPL) منتشرشده توسط «بنیاد نرم‌افزارهای آزاد»، چه نسخه ۲ این مجوز یا (به انتخاب خودتان) هر نسخه بعدی دیگری، بازتوزیع کرده یا تغییر دهید. .PP این برنامه به این امید توزیع شده است که مفید واقع شود، اما \fBبدون هرگونه ضمانت\fR؛ حتی بدون ضمانت ضمنی \fBقابلیت فروش\fR یا \fBتناسب با یک هدف خاص\fR. برای جزئیات بیشتر «مجوز عمومی همگانی گنو» را ببینید. .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 در گزارش اشکال.