.\" Man page generated from reStructuredText .\" by the Docutils 0.23 manpage writer. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "QEMU-IMG" "1" "Aug 28, 2026" "11.1.1" "QEMU" .SH "نام (NAME)" qemu-img \- ابزار مدیریت ایمیج‌های دیسک QEMU .SH "خلاصه دستور (SYNOPSIS)" .sp \fBqemu\-img\fP [\fIstandard options\fP] \fIcommand\fP [\fIcommand options\fP] .SH "توضیحات (DESCRIPTION)" .sp دستور qemu\-img به شما امکان می‌دهد ایمیج‌ها را به صورت آفلاین ایجاد، تبدیل و اصلاح کنید. این ابزار می‌تواند تمام قالب‌های ایمیج پشتیبانی‌شده توسط QEMU را مدیریت کند. .sp \fBهشدار:\fP هرگز از qemu\-img برای تغییر ایمیج‌هایی که توسط یک ماشین مجازی در حال اجرا یا هر فرایند دیگری در حال استفاده هستند استفاده نکنید؛ این کار ممکن است ایمیج را تخریب کند. همچنین آگاه باشید که بررسی و پرس‌وجوی وضعیّت ایمیجی که توسط فرایند دیگری در حال تغییر است، ممکن است با وضعیّت ناهمگام مواجه شود. .SH "گزینه‌ها (OPTIONS)" .sp گزینه‌های استاندارد: .INDENT 0.0 .TP .B \-h, \-\-help نمایش این راهنما و خروج .UNINDENT .INDENT 0.0 .TP .B \-V, \-\-version نمایش اطلاعات نسخه و خروج .UNINDENT .INDENT 0.0 .TP .B \-T, \-\-trace [[enable=]PATTERN][,events=FILE][,file=FILE] مشخص کردن گزینه‌های ردگیری (tracing). .sp \fB[enable=]PATTERN\fP .INDENT 7.0 .INDENT 3.5 فعال‌سازی فوری رویدادهای منطبق با \fIPATTERN\fP (نام رویداد یا یک الگوی globbing). این گزینه تنها در صورتی در دسترس است که QEMU با یکی از backendهای ردگیری \fBsimple\fP، \fBlog\fP یا \fBftrace\fP کامپایل شده باشد. برای تعیین چندین رویداد یا الگو، گزینهٔ \fB\-trace\fP را چندین بار مشخص کنید. .sp برای چاپ فهرستی از نام‌های نقاط ردگیری (trace points) از \fB\-trace help\fP استفاده کنید. .UNINDENT .UNINDENT .sp \fBevents=FILE\fP .INDENT 7.0 .INDENT 3.5 فعال‌سازی فوری رویدادهای فهرست‌شده در \fIFILE\fP\&. این فایل باید در هر خط شامل یک نام رویداد (همان‌طور که در فایل \fBtrace\-events\-all\fP فهرست شده است) باشد؛ الگوهای globbing نیز پذیرفته می‌شوند. این گزینه تنها در صورتی در دسترس است که QEMU با یکی از backendهای ردگیری \fBsimple\fP، \fBlog\fP یا \fBftrace\fP کامپایل شده باشد. .UNINDENT .UNINDENT .sp \fBfile=FILE\fP .INDENT 7.0 .INDENT 3.5 ثبت ردگیری‌های خروجی در \fIFILE\fP\&. این گزینه تنها در صورتی در دسترس است که QEMU با backend ردگیری \fBsimple\fP کامپایل شده باشد. .UNINDENT .UNINDENT .UNINDENT .sp دستورهای زیر پشتیبانی می‌شوند: .INDENT 0.0 .TP .B amend [\-\-object OBJECTDEF] [\-\-image\-opts] [\-p] [\-q] [\-f FMT] [\-t CACHE] [\-\-force] \-o OPTIONS FILENAME .UNINDENT .INDENT 0.0 .TP .B bench [\-c COUNT] [\-d DEPTH] [\-f FMT] [\-\-flush\-interval=FLUSH_INTERVAL] [\-i AIO] [\-n] [\-\-no\-drain] [\-o OFFSET] [\-\-pattern=PATTERN] [\-q] [\-s BUFFER_SIZE] [\-S STEP_SIZE] [\-t CACHE] [\-w] [\-U] FILENAME .UNINDENT .INDENT 0.0 .TP .B bitmap (\-\-merge SOURCE | \-\-add | \-\-remove | \-\-clear | \-\-enable | \-\-disable)... [\-b SOURCE_FILE [\-F SOURCE_FMT]] [\-g GRANULARITY] [\-\-object OBJECTDEF] [\-\-image\-opts | \-f FMT] FILENAME BITMAP .UNINDENT .INDENT 0.0 .TP .B check [\-\-object OBJECTDEF] [\-\-image\-opts] [\-q] [\-f FMT] [\-\-output=OFMT] [\-r [leaks | all]] [\-T SRC_CACHE] [\-U] FILENAME .UNINDENT .INDENT 0.0 .TP .B commit [\-\-object OBJECTDEF] [\-\-image\-opts] [\-q] [\-f FMT] [\-t CACHE] [\-b BASE] [\-r RATE_LIMIT] [\-d] [\-p] FILENAME .UNINDENT .INDENT 0.0 .TP .B compare [\-\-object OBJECTDEF] [\-\-image\-opts] [\-f FMT] [\-F FMT] [\-T SRC_CACHE] [\-p] [\-q] [\-s] [\-U] FILENAME1 FILENAME2 .UNINDENT .INDENT 0.0 .TP .B convert [\-\-object OBJECTDEF] [\-\-image\-opts] [\-\-target\-image\-opts] [\-\-target\-is\-zero] [\-\-bitmaps] [\-U] [\-C] [\-c] [\-p] [\-q] [\-n] [\-f FMT] [\-t CACHE] [\-T SRC_CACHE] [\-O OUTPUT_FMT] [\-B BACKING_FILE [\-F BACKING_FMT]] [\-o OPTIONS] [\-l SNAPSHOT_PARAM] [\-S SPARSE_SIZE] [\-r RATE_LIMIT] [\-m NUM_COROUTINES] [\-W] [\-\-salvage] FILENAME [FILENAME2 [...]] OUTPUT_FILENAME .UNINDENT .INDENT 0.0 .TP .B create [\-\-object OBJECTDEF] [\-q] [\-f FMT] [\-b BACKING_FILE [\-F BACKING_FMT]] [\-u] [\-o OPTIONS] FILENAME [SIZE] .UNINDENT .INDENT 0.0 .TP .B dd [\-\-image\-opts] [\-U] [\-f FMT] [\-O OUTPUT_FMT] [bs=BLOCK_SIZE] [count=BLOCKS] [skip=BLOCKS] if=INPUT of=OUTPUT .UNINDENT .INDENT 0.0 .TP .B info [\-\-object OBJECTDEF] [\-\-image\-opts] [\-f FMT] [\-\-output=OFMT] [\-\-backing\-chain] [\-\-limits] [\-t CACHE] [\-U] FILENAME .UNINDENT .INDENT 0.0 .TP .B map [\-\-object OBJECTDEF] [\-\-image\-opts] [\-f FMT] [\-\-start\-offset=OFFSET] [\-\-max\-length=LEN] [\-\-output=OFMT] [\-U] FILENAME .UNINDENT .INDENT 0.0 .TP .B measure [\-\-output=OFMT] [\-O OUTPUT_FMT] [\-o OPTIONS] [\-\-size N | [\-\-object OBJECTDEF] [\-\-image\-opts] [\-f FMT] [\-l SNAPSHOT_PARAM] FILENAME] .UNINDENT .INDENT 0.0 .TP .B snapshot [\-\-object OBJECTDEF] [\-f FMT | \-\-image\-opts] [\-U] [\-q] [\-l | \-a SNAPSHOT | \-c SNAPSHOT | \-d SNAPSHOT] FILENAME .UNINDENT .INDENT 0.0 .TP .B rebase [\-\-object OBJECTDEF] [\-\-image\-opts] [\-U] [\-q] [\-f FMT] [\-t CACHE] [\-T SRC_CACHE] [\-p] [\-u] [\-c] \-b BACKING_FILE [\-F BACKING_FMT] FILENAME .UNINDENT .INDENT 0.0 .TP .B resize [\-\-object OBJECTDEF] [\-\-image\-opts] [\-f FMT] [\-\-preallocation=PREALLOC] [\-q] [\-\-shrink] FILENAME [+ | \-]SIZE .UNINDENT .sp پارامترهای دستور: .sp \fIFILENAME\fP نام فایل یک ایمیج دیسک است. .sp \fIFMT\fP قالب ایمیج دیسک است. در اکثر موارد به طور خودکار حدس زده می‌شود. برای شرح قالب‌های دیسک پشتیبانی‌شده، بخش زیر را ببینید. .sp \fISIZE\fP اندازهٔ ایمیج دیسک بر حسب بایت است. پسوندهای اختیاری \fBk\fP یا \fBK\fP (کیلوبایت، ۱۰۲۴)، \fBM\fP (مگابایت، 1024k)، \fBG\fP (گیگابایت، 1024M) و T (ترابایت، 1024G) پشتیبانی می‌شوند. \fBb\fP نادیده گرفته می‌شود. .sp \fIOUTPUT_FILENAME\fP نام فایل ایمیج دیسک مقصد است. .sp \fIOUTPUT_FMT\fP قالب مقصد است. .sp \fIOPTIONS\fP فهرستی از گزینه‌های مختص قالب است که با کاما از هم جدا شده‌اند و در ساختار name=value می‌باشند. برای مرور اجمالی گزینه‌های پشتیبانی‌شده توسط قالب مورد استفاده، از \fB\-o help\fP استفاده کنید یا برای جزئیات به توضیحات قالب در زیر مراجعه نمایید. .sp \fISNAPSHOT_PARAM\fP پارامتر مورد استفاده برای اسنپ‌شات داخلی است، ساختار آن به صورت \(aqsnapshot.id=[ID],snapshot.name=[NAME]\(aq یا \(aq[ID_OR_NAME]\(aq می‌باشد. .INDENT 0.0.TP .B \-\-object OBJECTDEF تعریف یک شیء قابل ایجاد توسط کاربر در QEMU است. برای شرح ویژگی‌های شیء به صفحه راهنمای \fBqemu(1)\fP مراجعه کنید. رایج‌ترین نوع شیء، یک \fBsecret\fP است که برای ارائه گذرواژه‌ها و/یا کلیدهای رمزنگاری استفاده می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-image\-opts مشخص می‌کند که پارامتر مبدأ \fIFILENAME\fP باید به‌صورت یک رشته کامل از گزینه‌ها تفسیر شود، نه صرفاً یک نام فایل ساده. این پارامتر با پارامتر \fI\-f\fP ناسازگار است. .UNINDENT .INDENT 0.0 .TP .B \-\-target\-image\-opts مشخص می‌کند که پارامتر(های) OUTPUT_FILENAME باید به‌صورت یک رشته کامل از گزینه‌ها تفسیر شوند، نه صرفاً یک نام فایل ساده. این پارامتر با پارامترهای \fI\-O\fP ناسازگار است. در حال حاضر استفاده هم‌زمان از پارامتر \fI\-n\fP برای صرف‌نظر از ایجاد ایمیج الزامی است. این محدودیت ممکن است در نسخه‌های بعدی برداشته شود. .UNINDENT .INDENT 0.0 .TP .B \-\-force\-share (\-U) در صورت تعیین شدن، \fBqemu\-img\fP ایمیج را در حالت اشتراکی باز می‌کند و به سایر فرایندهای QEMU اجازه می‌دهد تا آن را در حالت نوشتن باز کنند. به عنوان مثال، این گزینه می‌تواند برای دریافت اطلاعات ایمیج (با زیردستور \(aqinfo\(aq) زمانی که ایمیج توسط یک مهمانِ در حال اجرا استفاده می‌شود، به کار رود. توجه داشته باشید که این کار ممکن است به دلیل تغییرات هم‌زمان فراداده و غیره، نتایج متناقضی ایجاد کند. این گزینه تنها هنگام باز کردن ایمیج‌ها در حالت فقط‌خواندنی مجاز است. .UNINDENT .INDENT 0.0 .TP .B \-\-backing\-chain اطلاعات مربوط به فایل‌های پشتیبان را در یک زنجیره ایمیج دیسک برمی‌شمارد. برای توضیحات بیشتر به بخش زیر مراجعه کنید. .UNINDENT .INDENT 0.0 .TP .B \-c مشخص می‌کند که ایمیج مقصد باید فشرده‌سازی شود (تنها برای qcow/qcow2 و vmdk با زیرقالب streamOptimized). .sp برای qcow2، الگوریتم فشرده‌سازی را می‌توان با گزینه \fB\-o compression_type=...\fP مشخص کرد (زیر را ببینید). .UNINDENT .INDENT 0.0 .TP .B \-h همراه با دستور یا بدون آن، راهنما را نشان می‌دهد و قالب‌های پشتیبانی‌شده را فهرست می‌کند. .UNINDENT .INDENT 0.0 .TP .B \-p نمایش نوار پیشرفت (تنها در دستورهای compare، convert و rebase). اگر گزینه \fI\-p\fP برای دستوری که از آن پشتیبانی می‌کند استفاده نشود، پیشرفت زمانی گزارش می‌شود که فرایند یک سیگنال \fBSIGUSR1\fP یا \fBSIGINFO\fP دریافت کند. .UNINDENT .INDENT 0.0 .TP .B \-q حالت بی‌صدا \- هیچ خروجی‌ای چاپ نمی‌شود (به‌جز خطاها). در صورتی که هر دو گزینه \fI\-q\fP و \fI\-p\fP هم‌زمان استفاده شوند، نوار پیشرفتی وجود نخواهد داشت. .UNINDENT .INDENT 0.0 .TP .B \-S SIZE تعداد بایت‌های متوالی را مشخص می‌کند که باید تنها شامل صفر باشند تا \fBqemu\-img\fP در حین تبدیل یک ایمیج خلوت (sparse) ایجاد کند. این مقدار به نزدیک‌ترین ۵۱۲ بایت به سمت پایین گرد می‌شود. می‌توانید از پسوندهای اندازه رایج مانند \fBk\fP برای کیلوبایت استفاده کنید. .UNINDENT .INDENT 0.0 .TP .B \-t CACHE حالت حافظه موقت (cache) را که باید با فایل (مقصد) استفاده شود، مشخص می‌کند. برای مقادیر مجاز، مستندات گزینه \fB\-drive cache=...\fP در شبیه‌ساز را ببینید. .UNINDENT .INDENT 0.0 .TP .B \-T SRC_CACHE حالت حافظه موقت (cache) را که باید با فایل(های) مبدأ استفاده شود، مشخص می‌کند. برای مقادیر مجاز، مستندات گزینه \fB\-drive cache=...\fP در شبیه‌ساز را ببینید. .UNINDENT .sp پارامترهای زیردستور compare: .INDENT 0.0 .TP .B \-f قالب ایمیج اول .UNINDENT .INDENT 0.0 .TP .B \-F قالب ایمیج دوم .UNINDENT .INDENT 0.0 .TP .B \-s حالت سخت‌گیرانه \- شکست در صورت تفاوت در اندازه ایمیج یا تخصیص سکتور .UNINDENT .sp پارامترهای زیردستور convert: .INDENT 0.0 .TP .B \-\-bitmaps همچنین تمام نگاشت‌های بیتی پایا (persistent bitmaps) از بالاترین لایه مبدأ کپی شوند .UNINDENT .INDENT 0.0 .TP .B \-n صرف‌نظر از ایجاد حجم مقصد .UNINDENT .INDENT 0.0 .TP .B \-m تعداد کوروتین‌های موازی برای فرایند تبدیل .UNINDENT .INDENT 0.0 .TP .B \-W اجازه به نوشتن‌های نامرتب در مقصد. این گزینه کارایی را بهبود می‌بخشد، اما تنها برای دستگاه‌های از پیش تخصیص‌یافته مانند دستگاه‌های میزبان یا سایر دستگاه‌های بلوکی خام توصیه می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-C تلاش برای استفاده از برون‌سپاری کپی (copy offloading) جهت انتقال داده‌ها از ایمیج مبدأ به مقصد. این گزینه در صورت دوردست بودن داده‌ها، مانند زیرساخت‌های NFS یا iSCSI، ممکن است کارایی را بهبود بخشد، اما سکتورهای صفر را به‌طور خودکار به ایمیج خلوت تبدیل نمی‌کند و بسته به پشتیبانی میزبان از دریافت اطلاعات تخصیص، ممکن است منجر به یک ایمیج مقصد کاملاً تخصیص‌یافته شود. .UNINDENT .INDENT 0.0 .TP .B \-r محدودیت نرخ برای فرایند تبدیل .UNINDENT .INDENT 0.0 .TP .B \-\-salvage تلاش برای نادیده گرفتن خطاهای I/O هنگام خواندن. خطاها همچنان چاپ خواهند شد، مگر اینکه در حالت بی‌صدا (\fB\-q\fP) باشد. نواحی غیرقابل خواندن از مبدأ، به عنوان بخش‌های حاوی صفر در نظر گرفته می‌شوند. .UNINDENT .INDENT 0.0 .TP .B \-\-target\-is\-zero فرض را بر این می‌گذارد که خواندن ایمیج مقصد همیشه صفر بازمی‌گرداند. این پارامتر با یک ایمیج مقصد که فایل پشتیبان دارد ناسازگار است. همچنین استفاده از پارامتر \fB\-n\fP برای صرف‌نظر از ایجاد ایمیج الزامی است. .UNINDENT .sp پارامترهای زیردستور dd: .INDENT 0.0 .TP .B bs=BLOCK_SIZE اندازه بلوک را تعیین می‌کند .UNINDENT .INDENT 0.0 .TP .B count=BLOCKS تعداد بلوک‌های ورودی را برای کپی مشخص می‌کند .UNINDENT .INDENT 0.0 .TP .B if=INPUT فایل ورودی را مشخص می‌کند .UNINDENT .INDENT 0.0 .TP .B of=OUTPUT فایل خروجی را مشخص می‌کند .UNINDENT .INDENT 0.0.TP .B skip=BLOCKS تعداد بلوک‌های ورودی که باید نادیده گرفته شوند را تعیین می‌کند .UNINDENT .sp پارامترهای زیردستور snapshot: .INDENT 0.0 .TP .B snapshot نام snapshot برای ایجاد، اعمال یا حذف است .UNINDENT .INDENT 0.0 .TP .B \-a اعمال یک snapshot (بازگردانی دیسک به وضعیت ذخیره‌شده) .UNINDENT .INDENT 0.0 .TP .B \-c ایجاد یک snapshot .UNINDENT .INDENT 0.0 .TP .B \-d حذف یک snapshot .UNINDENT .INDENT 0.0 .TP .B \-l فهرست کردن تمام snapshotهای موجود در ایمیج داده‌شده (عملیات پیش‌فرض) .UNINDENT .sp شرح دستور: .INDENT 0.0 .TP .B amend [\-\-object OBJECTDEF] [\-\-image\-opts] [\-p] [\-q] [\-f FMT] [\-t CACHE] [\-\-force] \-o OPTIONS FILENAME گزینه‌های مخصوص فرمت ایمیج (\fIOPTIONS\fP) را برای فایل ایمیج \fIFILENAME\fP\& اصلاح می‌کند. تمام فرمت‌های فایل از این عملیات پشتیبانی نمی‌کنند. .sp مجموعه گزینه‌هایی که می‌توان اصلاح کرد به فرمت ایمیج بستگی دارد، اما توجه داشته باشید که اصلاح رابطه زنجیره پشتیبان (backing chain) در عوض باید با \fBqemu\-img rebase\fP انجام شود. .sp گزینه \-\-force امکان انجام برخی عملیات‌های ناامن را می‌دهد. در حال حاضر برای \-f luks، امکان پاک کردن آخرین کلید رمزنگاری و رونویسی روی یک کلید رمزنگاری فعال را فراهم می‌کند. .UNINDENT .INDENT 0.0 .TP .B bench [\-c COUNT] [\-d DEPTH] [\-f FMT] [\-\-flush\-interval=FLUSH_INTERVAL] [\-i AIO] [\-n] [\-\-no\-drain] [\-o OFFSET] [\-\-pattern=PATTERN] [\-q] [\-s BUFFER_SIZE] [\-S STEP_SIZE] [\-t CACHE] [\-w] [\-U] FILENAME یک بنچمارک ورودی/خروجی (I/O) ترتیبی ساده روی ایمیج مشخص‌شده اجرا می‌کند. اگر \fB\-w\fP مشخص شده باشد، یک آزمون نوشتن انجام می‌شود، در غیر این صورت یک آزمون خواندن انجام می‌گیرد. .sp در مجموع تعداد \fICOUNT\fP درخواست I/O انجام می‌شود که اندازه هر کدام \fIBUFFER_SIZE\fP بایت بوده و با \fIDEPTH\fP درخواست به صورت موازی اجرا می‌شوند. اولین درخواست از موقعیت تعیین‌شده با \fIOFFSET\fP شروع می‌شود، و هر درخواست بعدی موقعیت فعلی را به اندازه \fISTEP_SIZE\fP افزایش می‌دهد. اگر \fISTEP_SIZE\fP داده نشود، از \fIBUFFER_SIZE\fP به عنوان مقدار آن استفاده می‌شود. .sp اگر \fIFLUSH_INTERVAL\fP برای یک آزمون نوشتن مشخص شده باشد، هر زمان که تعداد درخواست‌های باقی‌مانده مضربی از \fIFLUSH_INTERVAL\fP باشد، صف درخواست تخلیه شده و قبل از انجام نوشتن‌های جدید، یک دستور flush صادر می‌شود. علاوه بر این، اگر \fB\-\-no\-drain\fP مشخص شده باشد، یک flush بدون تخلیه اولیه صف درخواست صادر می‌گردد. .sp اگر \fB\-i\fP مشخص شود، گزینه \fIAIO\fP می‌تواند برای تعیین backendهای مختلف AIO استفاده شود: \fBthreads\fP، \fBnative\fP یا \fBio_uring\fP\&. .sp اگر \fB\-n\fP مشخص شده باشد، در صورت امکان از backend بومی AIO استفاده می‌شود. در لینوکس، این گزینه تنها در صورتی کار می‌کند که \fB\-t none\fP یا \fB\-t directsync\fP نیز مشخص شده باشد. .sp برای آزمون‌های نوشتن، به طور پیش‌فرض یک بافر پر شده از صفر نوشته می‌شود. این رفتار می‌تواند با یک بایت الگو که توسط \fIPATTERN\fP مشخص می‌شود لغو گردد. .UNINDENT .INDENT 0.0 .TP .B bitmap (\-\-merge SOURCE | \-\-add | \-\-remove | \-\-remove\-all | \-\-clear | \-\-enable | \-\-disable)... [\-b SOURCE_FILE [\-F SOURCE_FMT]] [\-g GRANULARITY] [\-\-object OBJECTDEF] [\-\-image\-opts | \-f FMT] FILENAME [BITMAP] یک یا چند تغییر روی بیت‌مپ‌های مانا (persistent bitmaps) در ایمیج دیسک \fIFILENAME\fP انجام می‌دهد. بیشتر عملیات‌ها نیاز دارند که \fIBITMAP\fP مشخص شود؛ \fB\-\-remove\-all\fP روی تمام بیت‌مپ‌ها عمل کرده و \fIBITMAP\fP را نمی‌پذیرد. تغییرات مختلف عبارتند از: .sp \fB\-\-add\fP برای ایجاد \fIBITMAP\fP، فعال‌شده برای ثبت ویرایش‌های آینده. .sp \fB\-\-remove\fP برای حذف \fIBITMAP\fP\&. .sp \fB\-\-remove\-all\fP برای حذف تمام بیت‌مپ‌ها. .sp \fB\-\-clear\fP برای پاک‌سازی \fIBITMAP\fP\&. .sp \fB\-\-enable\fP برای تغییر \fIBITMAP\fP جهت شروع ثبت ویرایش‌های آینده. .sp \fB\-\-disable\fP برای تغییر \fIBITMAP\fP جهت توقف ثبت ویرایش‌های آینده. .sp \fB\-\-merge\fP برای ادغام محتویات بیت‌مپ \fISOURCE\fP در \fIBITMAP\fP\&. .sp گزینه‌های اضافی شامل \fB\-g\fP است که یک \fIGRANULARITY\fP غیرپیش‌فرض را برای \fB\-\-add\fP تنظیم می‌کند، و \fB\-b\fP و \fB\-F\fP که یک فایل مبدا جایگزین را برای تمام بیت‌مپ‌های \fISOURCE\fP استفاده‌شده توسط \fB\-\-merge\fP انتخاب می‌کنند. .sp برای مشاهده اینکه چه بیت‌مپ‌هایی در یک ایمیج موجود هستند، از \fBqemu\-img info\fP استفاده کنید. .UNINDENT .INDENT 0.0 .TP .B check [\-\-object OBJECTDEF] [\-\-image\-opts] [\-q] [\-f FMT] [\-\-output=OFMT] [\-r [leaks | all]] [\-T SRC_CACHE] [\-U] FILENAME یک بررسی سازگاری روی ایمیج دیسک \fIFILENAME\fP انجام می‌دهد. این دستور می‌تواند خروجی را در قالب \fIOFMT\fP که یا \fBhuman\fP یا \fBjson\fP است تولید کند. خروجی JSON شیئی از نوع QAPI با عنوان \fBImageCheck\fP است. .sp اگر \fB\-r\fP مشخص شود، qemu\-img تلاش می‌کند هرگونه ناسازگاری یافت‌شده در طول بررسی را تعمیر کند. گزینه \fB\-r leaks\fP فقط نشت‌های کلاستر را تعمیر می‌کند، در حالی که \fB\-r all\fP تمام انواع خطاها را اصلاح می‌کند، هرچند با ریسک بالاتر انتخاب اصلاح اشتباه یا پنهان کردن خرابی‌هایی که قبلاً رخ داده است. .sp تنها فرمت‌های \fBqcow2\fP، \fBqed\fP، \fBparallels\fP، \fBvhdx\fP، \fBvmdk\fP و \fBvdi\fP از بررسی سازگاری پشتیبانی می‌کنند. .sp در صورتی که ایمیج هیچ ناسازگاری نداشته باشد، check با مقدار \fB0\fP خارج می‌شود. سایر کدهای خروج نشان‌دهنده نوع ناسازگاری یافت‌شده هستند یا اینکه خطای دیگری رخ داده است. جدول زیر تمام کدهای خروج زیردستور check را خلاصه می‌کند: .INDENT 7.0 .TP .B 0 بررسی کامل شد، ایمیج (اکنون) سازگار است .TP .B 1 بررسی به دلیل خطاهای داخلی کامل نشد .TP .B 2 بررسی کامل شد، ایمیج خراب است .TP .B 3 بررسی کامل شد، ایمیج کلاسترهای نشت‌کرده دارد، اما خراب نیست .TP .B 63 بررسی‌ها توسط فرمت ایمیج پشتیبانی نمی‌شوند .UNINDENT .sp اگر \fB\-r\fP مشخص شده باشد، کدهای خروجی که وضعیت ایمیج را نشان می‌دهند به وضعیت پس از (تلاش برای) تعمیر آن اشاره دارند. به این معنا که یک اجرای موفق \fB\-r all\fP صرف‌نظر از وضعیت قبلی ایمیج، کد خروج 0 را تولید خواهد کرد. .UNINDENT .INDENT 0.0 .TP .B commit [\-\-object OBJECTDEF] [\-\-image\-opts] [\-q] [\-f FMT] [\-t CACHE] [\-b BASE] [\-r RATE_LIMIT] [\-d] [\-p] FILENAME تغییرات ثبت‌شده در \fIFILENAME\fP را در ایمیج پایه یا فایل پشتیبان آن اعمال (commit) می‌کند. اگر فایل پشتیبان کوچک‌تر از snapshot باشد، اندازه فایل پشتیبان تغییر داده می‌شود تا هم‌اندازه snapshot شود. اگر snapshot کوچک‌تر از فایل پشتیبان باشد، فایل پشتیبان کوتاه (truncate) نخواهد شد. اگر می‌خواهید اندازه فایل پشتیبان با snapshot کوچک‌تر مطابقت داشته باشد، پس از انجام موفقیت‌آمیز عملیات commit می‌توانید با اطمینان خودتان آن را truncate کنید. .sp ایمیج \fIFILENAME\fP پس از موفقیت‌آمیز بودن عملیات خالی می‌شود. اگر بعداً به \fIFILENAME\fP نیازی ندارید و قصد رها کردن آن را دارید، می‌توانید با مشخص کردن پرچم \fB\-d\fP از خالی کردن \fIFILENAME\fP صرف‌نظر کنید. .sp اگر زنجیره پشتیبان فایل ایمیج داده‌شده \fIFILENAME\fP بیش از یک لایه داشته باشد، فایل پشتیبانی که تغییرات در آن اعمال خواهند شد می‌تواند به صورت \fIBASE\fP مشخص شود (که باید بخشی از زنجیره پشتیبان \fIFILENAME\fP باشد). اگر \fIBASE\fP مشخص نشود، فایل پشتیبان مستقیم ایمیج بالایی (که همان \fIFILENAME\fP است) استفاده خواهد شد. توجه داشته باشید که پس از عملیات commit، تمام ایمیج‌های بین \fIBASE\fP و ایمیج بالایی نامعتبر خواهند شد و ممکن است هنگام خواندن داده‌های نامعتبر بازگردانند. به همین دلیل، \fB\-b\fP متضمن \fB\-d\fP است (به طوری که ایمیج بالایی معتبر باقی بماند). .sp حد نرخ برای فرآیند commit توسط \fB\-r\fP مشخص می‌شود. .UNINDENT .INDENT 0.0 .TP .B compare [\-\-object OBJECTDEF] [\-\-image\-opts] [\-f FMT] [\-F FMT] [\-T SRC_CACHE] [\-p] [\-q] [\-s] [\-U] FILENAME1 FILENAME2 بررسی می‌کند که آیا دو ایمیج محتوای یکسانی دارند یا خیر. می‌توانید ایمیج‌هایی با قالب یا تنظیمات متفاوت را با یکدیگر مقایسه کنید. .sp فرمت ایمیج‌ها به طور خودکار شناسایی می‌شود مگر اینکه آن را با گزینه \fB\-f\fP (استفاده‌شده برای \fIFILENAME1\fP) و/یا \fB\-F\fP (استفاده‌شده برای \fIFILENAME2\fP) مشخص کنید. .sp به طور پیش‌فرض، ایمیج‌هایی با اندازه‌های متفاوت یکسان در نظر گرفته می‌شوند در صورتی که ایمیج بزرگ‌تر در ناحیه پس از انتهای ایمیج دیگر، فقط شامل بخش‌های تخصیص‌نیافته و/یا صفر شده باشد. علاوه بر این، اگر هر بخشی در یک ایمیج تخصیص نیافته باشد و در ایمیج دوم فقط حاوی بایت‌های صفر باشد، برابر ارزیابی می‌شود. می‌توانید با مشخص کردن گزینه \fB\-s\fP از حالت سخت‌گیرانه (Strict mode) استفاده کنید. هنگامی که compare در حالت سخت‌گیرانه اجرا می‌شود، در صورتی که اندازه ایمیج‌ها متفاوت باشد یا بخشی در یک ایمیج تخصیص یافته و در دیگری تخصیص نیافته باشد، با شکست مواجه می‌شود..sp به‌طور پیش‌فرض، compare یک پیام نتیجه چاپ می‌کند. این پیام اطلاعاتی مبنی بر یکسان بودن هر دو تصویر یا موقعیت اولین بایت متفاوت را نمایش می‌دهد. علاوه بر این، در صورتی که از حالت Strict استفاده شود، پیام نتیجه می‌تواند تفاوت در اندازه تصویر را نیز گزارش کند. .sp دستور compare در صورت یکسان بودن تصاویر با \fB0\fP و در صورت وجود تفاوت با \fB1\fP خارج می‌شود. سایر کدهای خروج نشان‌دهنده وقوع خطا در حین اجرا هستند و خروجی خطای استاندارد باید شامل یک پیام خطا باشد. جدول زیر تمام کدهای خروج زیردستور compare را خلاصه می‌کند: .INDENT 7.0 .TP .B 0 تصاویر یکسان هستند (یا راهنمای درخواستی چاپ شده است) .TP .B 1 تصاویر با یکدیگر تفاوت دارند .TP .B 2 خطا در باز کردن تصویر .TP .B 3 خطا در بررسی تخصیص سکتور .TP .B 4 خطا در خواندن داده‌ها .UNINDENT .UNINDENT .INDENT 0.0 .TP .B convert [\-\-object OBJECTDEF] [\-\-image\-opts] [\-\-target\-image\-opts] [\-\-target\-is\-zero] [\-\-bitmaps [\-\-skip\-broken\-bitmaps]] [\-U] [\-C] [\-c] [\-p] [\-q] [\-n] [\-f FMT] [\-t CACHE] [\-T SRC_CACHE] [\-O OUTPUT_FMT] [\-b BACKING_FILE [\-F BACKING_FMT]] [\-o OPTIONS] [\-l SNAPSHOT_PARAM] [\-S SPARSE_SIZE] [\-r RATE_LIMIT] [\-m NUM_COROUTINES] [\-W] FILENAME [FILENAME2 [...]] OUTPUT_FILENAME تصویر دیسک \fIFILENAME\fP یا اسنپ‌شات \fISNAPSHOT_PARAM\fP را با استفاده از قالب \fIOUTPUT_FMT\fP به تصویر دیسک \fIOUTPUT_FILENAME\fP تبدیل می‌کند. این تصویر می‌تواند به‌صورت اختیاری فشرده شود (گزینه \fB\-c\fP) یا از هر گزینه ویژه قالب مانند رمزنگاری (گزینه \fB\-o\fP) استفاده کند. .sp تنها قالب‌های \fBqcow\fP و \fBqcow2\fP از فشرده‌سازی پشتیبانی می‌کنند. فشرده‌سازی فقط‌خواندنی است؛ به این معنی که اگر یک سکتور فشرده بازنویسی شود، به‌صورت داده‌های غیرفشرده بازنویسی خواهد شد. .sp تبدیل تصویر همچنین برای دستیابی به تصویری با اندازه کوچک‌تر هنگام استفاده از قالب‌های با قابلیت رشد مانند \fBqcow\fP مفید است: سکتورهای خالی شناسایی شده و از تصویر مقصد حذف می‌شوند. .sp مقدار \fISPARSE_SIZE\fP تعداد بایت‌های متوالی (پیش‌فرض 4k) را نشان می‌دهد که باید فقط حاوی صفر باشند تا \fBqemu\-img\fP در حین تبدیل، یک تصویر تنک (sparse) بسازد. اگر \fISPARSE_SIZE\fP برابر با 0 باشد، مبدأ برای سکتورهای تخصیص‌نیافته یا صفر پویش نخواهد شد و تصویر مقصد همیشه به‌طور کامل تخصیص می‌یابد. .sp می‌توانید از گزینه \fIBACKING_FILE\fP استفاده کنید تا تصویر خروجی حتماً به‌عنوان یک تصویر رونوشت در زمان نوشتن (copy-on-write) از تصویر پایه مشخص‌شده ساخته شود؛ \fIBACKING_FILE\fP باید محتوایی مشابه با تصویر پایه ورودی داشته باشد، اگرچه مسیر، قالب تصویر (مشخص‌شده با \fIBACKING_FMT\fP) و غیره ممکن است متفاوت باشند. .sp اگر یک نام مسیر نسبی مشخص شود، فایل پشتیبان نسبت به دایرکتوری حاوی \fIOUTPUT_FILENAME\fP جستجو می‌شود. .sp اگر گزینه \fB\-n\fP مشخص شود، از ایجاد حجم مقصد صرف‌نظر خواهد شد. این گزینه برای قالب‌هایی مانند \fBrbd\fP در صورتی که حجم مقصد از پیش با گزینه‌های خاصی که از طریق \fBqemu\-img\fP قابل ارائه نیستند ایجاد شده باشد، مفید است. .sp نوشتن خارج از نوبت می‌تواند با \fB\-W\fP برای بهبود کارایی فعال شود. این کار فقط برای دستگاه‌های از پیش تخصیص‌یافته مانند دستگاه‌های میزبان یا سایر دستگاه‌های بلوکی خام توصیه می‌شود. نوشتن خارج از نوبت در ترکیب با ایجاد تصاویر فشرده کار نمی‌کند. .sp مقدار \fINUM_COROUTINES\fP مشخص می‌کند که چه تعداد کوروتین (coroutine) در حین فرایند تبدیل به‌طور موازی کار کنند (پیش‌فرض 8 است). .sp استفاده از \fB\-\-bitmaps\fP درخواست می‌کند که هر بیت‌مپ مانایی که در نسخه اصلی وجود دارد نیز به مقصد کپی شود. اگر هر یک از بیت‌مپ‌ها در مبدأ ناهمخوان باشد، فرایند تبدیل با شکست مواجه می‌شود مگر اینکه \fB\-\-skip\-broken\-bitmaps\fP نیز برای کپی کردن تنها بیت‌مپ‌های همخوان مشخص شده باشد. .UNINDENT .INDENT 0.0 .TP .B create [\-f FMT] [\-o FMT_OPTS] [\-b BACKING_FILE [\-B BACKING_FMT]] [\-u] [\-q] [\-\-object OBJDEF] FILE [SIZE] تصویر دیسک جدید \fIFILE\fP را با اندازه \fISIZE\fP و در قالب \fIFMT\fP ایجاد می‌کند. بسته به قالب فایل، می‌توانید یک یا چند گزینه \fIFMT_OPTS\fP اضافه کنید که قابلیت‌های بیشتری از این قالب را فعال می‌کنند. .sp اگر گزینه \fIBACKING_FILE\fP مشخص شود، تصویر فقط تفاوت‌ها را نسبت به \fIBACKING_FILE\fP ثبت خواهد کرد. در این حالت نیازی به تعیین اندازه نیست. \fIBACKING_FILE\fP هرگز تغییر نخواهد کرد مگر اینکه از دستور مانیتور \fBcommit\fP (یا \fBqemu\-img commit\fP) استفاده کنید. .sp اگر یک نام مسیر نسبی مشخص شود، فایل پشتیبان نسبت به دایرکتوری حاوی \fIFILE\fP جستجو می‌شود. .sp توجه داشته باشید که فایل پشتیبانِ داده‌شده برای بررسی معتبر بودن باز خواهد شد. از گزینه \fB\-u\fP برای فعال کردن حالت ناامن فایل پشتیبان استفاده کنید؛ بدین معنی که تصویر حتی در صورت عدم امکان باز شدن فایل پشتیبان مربوطه ایجاد خواهد شد. هنگامی که بخواهید از تصویری که بدین شیوه ایجاد شده استفاده کنید، باید یک فایل پشتیبان منطبق ساخته شود یا از گزینه‌های اضافی برای معتبر ساختن مشخصات فایل پشتیبان استفاده گردد. .sp اندازه را می‌توان با استفاده از گزینه \fISIZE\fP به همراه \fB\-o\fP نیز مشخص کرد؛ در این حالت نیازی به تعیین جداگانه آن نیست. .UNINDENT .INDENT 0.0 .TP .B dd [\-\-image\-opts] [\-U] [\-f FMT] [\-O OUTPUT_FMT] [bs=BLOCK_SIZE] [count=BLOCKS] [skip=BLOCKS] if=INPUT of=OUTPUT دستور dd از فایل \fIINPUT\fP به فایل \fIOUTPUT\fP کپی کرده و آن را از قالب \fIFMT\fP به قالب \fIOUTPUT_FMT\fP تبدیل می‌کند. .sp داده‌ها به‌طور پیش‌فرض با استفاده از بلوک‌های ۵۱۲ بایتی خوانده و نوشته می‌شوند، اما می‌توان با تعیین \fIBLOCK_SIZE\fP آن را تغییر داد. اگر count=\fIBLOCKS\fP مشخص شود، dd پس از خواندن \fIBLOCKS\fP بلوک ورودی، خواندن ورودی را متوقف می‌کند. .sp نحو اندازه شبیه به نحو اندازه در \fBdd(1)\fP است. .UNINDENT .INDENT 0.0 .TP .B info [\-\-object OBJECTDEF] [\-\-image\-opts] [\-f FMT] [\-\-output=OFMT] [\-\-backing\-chain] [\-\-limits] [\-t CACHE] [\-U] FILENAME اطلاعاتی درباره تصویر دیسک \fIFILENAME\fP ارائه می‌دهد. به‌طور خاص از آن برای دانستن اندازه رزروشده روی دیسک که می‌تواند با اندازه نمایش‌داده‌شده متفاوت باشد، استفاده کنید. اگر اسنپ‌شات‌های ماشین مجازی در تصویر دیسک ذخیره شده باشند، آن‌ها نیز نمایش داده می‌شوند. .sp اگر یک تصویر دیسک دارای زنجیره‌ای از فایل‌های پشتیبان باشد، اطلاعات مربوط به هر تصویر دیسک در زنجیره را می‌توان با استفاده از گزینه \fB\-\-backing\-chain\fP به‌طور بازگشتی برشمرد. .sp برای مثال، اگر زنجیره‌ای از تصاویر مانند زیر داشته باشید: .INDENT 7.0 .INDENT 3.5 .sp .EX base.qcow2 <\- snap1.qcow2 <\- snap2.qcow2 .EE .UNINDENT .UNINDENT .sp برای برشمردن اطلاعات مربوط به هر تصویر دیسک در زنجیره بالا، با شروع از بالا به سمت پایه، دستور زیر را اجرا کنید: .INDENT 7.0 .INDENT 3.5 .sp .EX qemu\-img info \-\-backing\-chain snap2.qcow2 .EE .UNINDENT .UNINDENT .sp این دستور می‌تواند خروجی را در قالب \fIOFMT\fP تولید کند که یا \fBhuman\fP است یا \fBjson\fP\&. خروجی JSON یک شیء از نوع QAPI با عنوان \fBImageInfo\fP است؛ به همراه \fB\-\-backing\-chain\fP، این خروجی آرایه‌ای از اشیاء \fBImageInfo\fP خواهد بود. .sp گزینه \fB\-\-output=human\fP اطلاعات زیر را گزارش می‌دهد (برای هر تصویر در زنجیره): .INDENT 7.0 .TP .B \fIimage\fP نام فایل تصویر .TP .B \fIfile format\fP قالب تصویر .TP .B \fIvirtual size\fP اندازه دیسک مهمان .TP .B \fIdisk size\fP میزان فضایی که فایل تصویر در سیستم‌فایل میزبان اشغال می‌کند (اگر این اطلاعات در دسترس نباشد، برای نمونه به دلیل نبود سیستم‌فایل، ممکن است به عنوان 0 نمایش داده شود) .TP .B \fIcluster_size\fP اندازه کلاستر قالب تصویر، در صورت کاربرد .TP .B \fIencrypted\fP اینکه آیا تصویر رمزنگاری شده است یا خیر (فقط در صورت رمزنگاری بودن نمایش داده می‌شود) .TP .B \fIcleanly shut down\fP اگر تصویر dirty باشد و در نوبت بعدی باز شدن در qemu نیاز به تعمیر خودکار داشته باشد، این مورد به‌صورت \fBno\fP نشان داده می‌شود. .TP .B \fIbacking file\fP نام فایل پشتیبان، در صورت وجود .TP .B \fIbacking file format\fP قالب فایل پشتیبان، در صورتی که تصویر آن را تحمیل کند.TP .B \fISnapshot list\fP فهرستی از تمام اسنپ‌شات‌های داخلی. .TP .B \fIFormat specific information\fP اطلاعات بیشتر که ساختار آن به قالب تصویر بستگی دارد. این بخش یک نمایش متنی از شیء متناظر QAPI از نوع \fBImageInfoSpecific*\fP است (برای نمونه \fBImageInfoSpecificQCow2\fP برای تصویرهای qcow2). .TP .B \fIBlock limits\fP محدودیت‌های بلوکی ورودی/خروجی (I/O) که QEMU برای تصویر شناسایی کرده است. این اطلاعات تنها در صورتی نمایش داده می‌شود که گزینهٔ \fB\-\-limits\fP مشخص شده باشد. .UNINDENT .UNINDENT .INDENT 0.0 .TP .B map [\-\-object OBJECTDEF] [\-\-image\-opts] [\-f FMT] [\-\-start\-offset=OFFSET] [\-\-max\-length=LEN] [\-\-output=OFMT] [\-U] FILENAME متادادهٔ تصویر \fIFILENAME\fP و زنجیرهٔ فایل‌های پشتیبان آن را تخلیه (dump) می‌کند. به‌ویژه، این دستور وضعیت تخصیص هر سکتور از \fIFILENAME\fP را همراه با بالاترین فایلی در زنجیرهٔ فایل پشتیبان که آن را تخصیص داده است، استخراج می‌کند. .sp دو قالب خروجی امکان‌پذیر است. قالب پیش‌فرض (\fBhuman\fP) تنها ناحیه‌هایی از فایل را تخلیه می‌کند که مشخص شده غیرصفر هستند. بخش‌هایی از فایل که مشخصاً صفر هستند به‌طور کامل نادیده گرفته می‌شوند، و همین‌طور بخش‌هایی که در سراسر زنجیره تخصیص نیافته‌اند. خروجی \fBqemu\-img\fP فایلی را مشخص می‌کند که داده‌ها از آن قابل خواندن هستند، به همراه آفست آن در فایل. هر خط شامل چهار فیلد خواهد بود که سه تای نخست، اعدادی در مبنای شانزده (هگزادسیمال) هستند. برای نمونه، نخستین خط از: .INDENT 7.0 .INDENT 3.5 .sp .EX Offset Length Mapped to File 0 0x20000 0x50000 /tmp/overlay.qcow2 0x100000 0x10000 0x95380000 /tmp/backing.qcow2 .EE .UNINDENT .UNINDENT .sp بدین معناست که 0x20000 (131072) بایت با شروع از آفست 0 در تصویر، در مسیر /tmp/overlay.qcow2 (باز شده با قالب \fBraw\fP) با شروع از آفست 0x50000 (327680) در دسترس است. داده‌هایی که فشرده، رمزگذاری‌شده، یا به هر شکل دیگری در قالب raw در دسترس نباشند، در صورت استفاده از قالب \fBhuman\fP با خطا مواجه می‌شوند. توجه داشته باشید که نام فایل‌ها می‌تواند حاوی خط جدید (newline) باشد، بنابراین تجزیهٔ این قالب خروجی در اسکریپت‌ها ایمن نیست. .sp قالب جایگزین \fBjson\fP، آرایه‌ای از دیکشنری‌ها در قالب JSON را بازمی‌گرداند. این قالب حاوی اطلاعات مشابهی در فیلدهای \fBstart\fP، \fBlength\fP و \fBoffset\fP خواهد بود؛ همچنین اطلاعات دقیق‌تر دیگری را نیز در بر می‌گیرد: .INDENT 7.0 .IP \(bu 2 فیلد بولی \fBdata\fP: مقدار true اگر سکتورها حاوی داده‌های واقعی باشند، مقدار false اگر سکتورها تخصیص نیافته باشند یا به‌صورت کلاسترهای بهینه‌شدهٔ تمام‌صفر (all\-zero) ذخیره شده باشند .IP \(bu 2 فیلد بولی \fBzero\fP: مقدار true اگر مشخص باشد که خواندن داده‌ها صفر برمی‌گرداند .IP \(bu 2 فیلد بولی \fBpresent\fP: مقدار true اگر داده‌ها به زنجیرهٔ پشتیبان تعلق داشته باشند، مقدار false اگر rebase کردن زنجیرهٔ پشتیبان روی فایلی در عمق بیشتر سبب خوانده شدن داده‌ها از آن فایل عمیق‌تر شود؛ .IP \(bu 2 فیلد عدد صحیح \fBdepth\fP: عمقی در زنجیرهٔ پشتیبان که داده در آن شناسایی شده است؛ برای نمونه، عمق 2 به فایل پشتیبانِ فایل پشتیبانِ \fIFILENAME\fP اشاره دارد. .UNINDENT .sp در قالب JSON، فیلد \fBoffset\fP اختیاری است؛ در مواردی که قالب \fBhuman\fP مدخل را حذف کند یا با خطا خارج شود، این فیلد وجود ندارد. اگر \fBdata\fP برابر با false و فیلد \fBoffset\fP موجود باشد، سکتورهای متناظر در فایل هنوز استفاده نشده‌اند، اما از پیش تخصیص یافته‌اند (preallocated). .sp برای اطلاعات بیشتر، به \fBinclude/block/block.h\fP در کد منبع QEMU مراجعه کنید. .UNINDENT .INDENT 0.0 .TP .B measure [\-\-output=OFMT] [\-O OUTPUT_FMT] [\-o OPTIONS] [\-\-size N | [\-\-object OBJECTDEF] [\-\-image\-opts] [\-f FMT] [\-l SNAPSHOT_PARAM] FILENAME] حجم فایل مورد نیاز برای یک تصویر جدید را محاسبه می‌کند. این اطلاعات را می‌توان برای اندازه‌گیری مناسب حجم‌های منطقی (logical volumes) یا SAN LUNها برای تصویری که درون آن‌ها قرار خواهد گرفت، به کار برد. مقادیر گزارش‌شده تضمین می‌کنند که برای جا دادن تصویر به اندازهٔ کافی بزرگ باشند. دستور می‌تواند در قالب \fIOFMT\fP خروجی دهد که یا \fBhuman\fP است یا \fBjson\fP\&. خروجی JSON شیئی از نوع QAPI با نام \fBBlockMeasureInfo\fP است. .sp اگر اندازهٔ \fIN\fP داده شود، مانند این عمل می‌کند که یک فایل تصویر خالی جدید با \fBqemu\-img create\fP ایجاد شده باشد. اگر \fIFILENAME\fP مشخص شود، مانند تبدیل یک فایل تصویر موجود با \fBqemu\-img convert\fP عمل می‌کند. قالب فایل جدید با \fIOUTPUT_FMT\fP مشخص شده و قالب فایل موجود با \fIFMT\fP تعیین می‌شود. .sp یک اسنپ‌شات در تصویر موجود را می‌توان با استفاده از \fISNAPSHOT_PARAM\fP تعیین کرد. .sp فیلدهای زیر گزارش می‌شوند: .INDENT 7.0 .INDENT 3.5 .sp .EX required size: 524288 fully allocated size: 1074069504 bitmaps size: 0 .EE .UNINDENT .UNINDENT .sp فیلد \fBrequired size\fP حجم فایل تصویر جدید است. در صورتی که قالب تصویر از نمایش فشرده (compact representation) پشتیبانی کند، ممکن است از اندازهٔ دیسک مجازی کوچک‌تر باشد. .sp فیلد \fBfully allocated size\fP حجم فایل تصویر جدید در حالتی است که داده‌ها در تمامی سکتورها نوشته شده باشند. این مقدار، بیشینه اندازه‌ای است که فایل تصویر می‌تواند اشغال کند، به‌جز اسنپ‌شات‌های داخلی، bitmapهای dirty، داده‌های vmstate، و سایر ویژگی‌های پیشرفتهٔ قالب تصویر. .sp فیلد \fBbitmaps size\fP اندازهٔ اضافیِ لازم برای کپی کردن bitmapها از تصویر مبدأ، علاوه بر داده‌های قابل مشاهده برای سیستم مهمان (guest\-visible) است؛ این خط اگر مبدأ یا مقصد فاقد پشتیبانی از bitmap باشند حذف می‌شود، یا اگر bitmapها پشتیبانی شوند اما چیزی برای کپی وجود نداشته باشد، برابر با 0 خواهد بود. .UNINDENT .INDENT 0.0 .TP .B snapshot [\-\-object OBJECTDEF] [\-f FMT | \-\-image\-opts] [\-U] [\-q] [\-l | \-a SNAPSHOT | \-c SNAPSHOT | \-d SNAPSHOT] FILENAME فهرست کردن، اعمال، ایجاد یا حذف اسنپ‌شات‌ها در تصویر \fIFILENAME\fP\&. .UNINDENT .INDENT 0.0 .TP .B rebase [\-\-object OBJECTDEF] [\-\-image\-opts] [\-U] [\-q] [\-f FMT] [\-t CACHE] [\-T SRC_CACHE] [\-p] [\-u] [\-c] \-b BACKING_FILE [\-B BACKING_FMT] FILENAME فایل پشتیبان (backing file) یک تصویر را تغییر می‌دهد. تنها قالب‌های \fBqcow2\fP و \fBqed\fP از تغییر فایل پشتیبان پشتیبانی می‌کنند. .sp فایل پشتیبان به \fIBACKING_FILE\fP تغییر می‌یابد و (در صورتی که قالب تصویرِ \fIFILENAME\fP از این قابلیت پشتیبانی کند) قالب فایل پشتیبان به \fIBACKING_FMT\fP تغییر داده می‌شود. اگر \fIBACKING_FILE\fP به‌صورت \(dq\(dq (رشتهٔ خالی) مشخص شود، تصویر روی هیچ فایل پشتیبانی rebase می‌شود (یعنی مستقل از هرگونه فایل پشتیبان وجود خواهد داشت). .sp اگر یک نام مسیر نسبی داده شود، فایل پشتیبان نسبت به دایرکتوری حاوی \fIFILENAME\fP جستجو می‌شود. .sp آرگومان \fICACHE\fP حالت کَش مورد استفاده برای \fIFILENAME\fP را مشخص می‌کند، در حالی که \fISRC_CACHE\fP حالت کَش برای خواندن فایل‌های پشتیبان را تعیین می‌کند. .sp دو حالت متمایز وجود دارد که \fBrebase\fP می‌تواند در آن‌ها کار کند: .INDENT 7.0 .TP .B حالت امن (Safe mode) این حالت پیش‌فرض است و عملیات واقعی rebase را انجام می‌دهد. فایل پشتیبان جدید ممکن است با فایل قدیمی متفاوت باشد و \fBqemu\-img rebase\fP اطمینان حاصل می‌کند که محتوای قابل مشاهده برای مهمان (guest\-visible) در \fIFILENAME\fP بدون تغییر بماند. .sp برای دستیابی به این مقصود، هر کلاستری که بین \fIBACKING_FILE\fP و فایل پشتیبان قدیمیِ \fIFILENAME\fP تفاوت داشته باشد، پیش از تغییر واقعی فایل پشتیبان، در \fIFILENAME\fP ادغام (merge) می‌شود. با تعیین گزینهٔ \fB\-c\fP، کلاسترهایی که ادغام می‌شوند (و نه تمام تصویر \fIFILENAME\fP) هنگام نوشتن فشرده خواهند شد. .sp توجه داشته باشید که حالت امن عملیاتی پرهزینه و سنگین است که با تبدیل یک تصویر برابری می‌کند. این حالت تنها در صورتی کار می‌کند که فایل پشتیبان قدیمی هنوز وجود داشته باشد. .TP .B حالت ناامن (Unsafe mode) در صورتی که گزینهٔ \fB\-u\fP مشخص شده باشد، ابزار \fBqemu\-img\fP از حالت ناامن استفاده می‌کند. در این حالت، تنها نام و قالب فایل پشتیبانِ \fIFILENAME\fP بدون هیچ‌گونه بررسی محتویات فایل تغییر داده می‌شود. کاربر باید مراقب باشد که فایل پشتیبان جدید را به‌درستی مشخص کند، در غیر این صورت محتوای قابل مشاهده برای مهمان در تصویر خراب خواهد شد. .sp این حالت برای تغییر نام دادن یا جابه‌جایی فایل پشتیبان به مکانی دیگر سودمند است. این حالت را می‌توان بدون دسترسی به فایل پشتیبان قدیمی نیز به کار برد، بدین معنا که می‌توانید از آن برای اصلاح تصویری استفاده کنید که فایل پشتیبان آن قبلاً جابه‌جا یا تغییر نام داده شده است. .UNINDENT .sp می‌توانید از \fBrebase\fP برای انجام عملیات تفاضل (\(dqdiff\(dq) روی دو تصویر دیسک استفاده کنید. این قابلیت می‌تواند هنگامی مفید باشد که یک ماشین مهمان را کپی یا شبیه‌سازی (clone) کرده‌اید و می‌خواهید به یک تصویر کم‌حجم (thin image) مبتنی بر یک قالب یا تصویر پایه بازگردید..sp فرض کنید \fBbase.img\fP از طریق کپی کردن به عنوان \fBmodified.img\fP کلون شده است، و سیستم‌عامل مهمان \fBmodified.img\fP اجرا شده به طوری که اکنون تغییراتی نسبت به \fBbase.img\fP\& ایجاد شده است. برای ساخت یک ایمیج کم‌حجم (thin) به نام \fBdiff.qcow2\fP که تنها شامل تفاوت‌ها باشد، دستورات زیر را اجرا کنید: .INDENT 7.0 .INDENT 3.5 .sp .EX qemu\-img create \-f qcow2 \-b modified.img diff.qcow2 qemu\-img rebase \-b base.img diff.qcow2 .EE .UNINDENT .UNINDENT .sp در این نقطه، می‌توان \fBmodified.img\fP را دور انداخت، زیرا \fBbase.img + diff.qcow2\fP حاوی همان اطلاعات است. .UNINDENT .INDENT 0.0 .TP .B resize [\-\-object OBJECTDEF] [\-\-image\-opts] [\-f FMT] [\-\-preallocation=PREALLOC] [\-q] [\-\-shrink] FILENAME [+ | \-]SIZE تغییر اندازه ایمیج دیسک به گونه‌ای که گویی با \fISIZE\fP\& ساخته شده است. .sp پیش از استفاده از این دستور برای کوچک کردن (shrink) یک ایمیج دیسک، شما باید حتماً از ابزارهای سیستم فایل و پارتیشن‌بندی در داخل ماشین مجازی برای کاهش متناسب اندازه سیستم‌های فایل و پارتیشن‌های تخصیص‌یافته استفاده کنید. عدم انجام این کار منجر به از دست رفتن داده‌ها خواهد شد! .sp هنگام کوچک کردن ایمیج‌ها، گزینه \fB\-\-shrink\fP باید ارائه شود. این به \fBqemu\-img\fP اطلاع می‌دهد که کاربر از بین رفتن داده‌های فراتر از انتهای برش‌خورده‌ی ایمیج را تأیید می‌کند. .sp پس از استفاده از این دستور برای افزایش اندازه یک ایمیج دیسک، باید از ابزارهای سیستم فایل و پارتیشن‌بندی درون ماشین مجازی استفاده کنید تا واقعاً شروع به استفاده از فضای جدید روی دستگاه نمایید. .sp هنگام افزایش اندازه یک ایمیج، گزینه \fB\-\-preallocation\fP می‌تواند برای مشخص کردن نحوه تخصیص ناحیه اضافی ایمیج روی میزبان استفاده شود. برای آگاهی از مقادیر مجاز، به توضیحات قالب در بخش نکات (NOTES) مراجعه کنید. استفاده از این گزینه ممکن است منجر به تخصیص فضایی کمی بیشتر از مقدار لازم شود. .UNINDENT .SH "نکات (NOTES)" .sp قالب‌های فایل ایمیج پشتیبانی‌شده: .sp \fBraw\fP .INDENT 0.0 .INDENT 3.5 قالب ایمیج دیسک خام (raw) (پیش‌فرض). این قالب این مزیت را دارد که ساده است و به‌راحتی به سایر شبیه‌سازها صادر می‌شود. اگر سیستم فایل شما از حفره‌ها یا \fIholes\fP پشتیبانی کند (برای مثال در ext2 یا ext3 در لینوکس یا NTFS در ویندوز)، تنها سکتورهای نوشته‌شده فضا را اشغال می‌کنند. برای اطلاع از اندازه واقعی استفاده‌شده توسط ایمیج از \fBqemu\-img info\fP یا در یونیکس/لینوکس از \fBls \-ls\fP استفاده کنید. .sp گزینه‌های پشتیبانی‌شده: .INDENT 0.0 .TP .B \fBpreallocation\fP حالت پیش‌تخصیص (مقادیر مجاز: \fBoff\fP، \fBfalloc\fP، \fBfull\fP). حالت \fBfalloc\fP با فراخوانی \fBposix_fallocate()\fP\& برای ایمیج فضا پیش‌تخصیص می‌دهد. حالت \fBfull\fP با نوشتن داده‌ها روی ذخیره‌ساز زیرین، فضا را برای ایمیج پیش‌تخصیص می‌دهد. بسته به محل ذخیره‌سازی، این داده‌ها ممکن است صفر باشند یا نباشند. .UNINDENT .UNINDENT .UNINDENT .sp \fBqcow2\fP .INDENT 0.0 .INDENT 3.5 قالب ایمیج QEMU، همه‌کاره‌ترین قالب. از آن برای داشتن ایمیج‌های کوچک‌تر (مفید در صورتی که سیستم فایل شما از حفره‌ها پشتیبانی نمی‌کند، برای مثال در ویندوز)، رمزنگاری اختیاری AES، فشرده‌سازی مبتنی بر zlib یا zstd و پشتیبانی از چندین اسنپ‌شات ماشین مجازی استفاده کنید. .sp گزینه‌های پشتیبانی‌شده: .INDENT 0.0 .TP .B \fBcompat\fP نسخه qcow2 مورد استفاده را تعیین می‌کند. \fBcompat=0.10\fP از قالب سنتی ایمیج استفاده می‌کند که توسط هر نسخه QEMU از 0.10 به بعد قابل خواندن است. \fBcompat=1.1\fP افزونه‌های قالب ایمیج را فعال می‌کند که تنها QEMU 1.1 و نسخه‌های جدیدتر آن را درک می‌کنند (این مقدار پیش‌فرض است). از جمله موارد دیگر، این شامل کلاسترهای صفر است که امکان copy\-on\-read بهینه را برای ایمیج‌های تنک فراهم می‌کند. .TP .B \fBbacking_file\fP نام فایل ایمیج پایه (زیردستور \fBcreate\fP را ببینید) .TP .B \fBbacking_fmt\fP قالب ایمیج مربوط به ایمیج پایه .TP .B \fBcompression_type\fP این گزینه مشخص می‌کند که کدام الگوریتم فشرده‌سازی برای کلاسترهای فشرده‌شده روی ایمیج استفاده شود. توجه داشته باشید که تنظیم این گزینه هنوز باعث نمی‌شود که ایمیج واقعاً نوشتن‌های فشرده‌شده دریافت کند. این گزینه بیشتر به همراه گزینه \fB\-c\fP در \fBqemu\-img convert\fP استفاده می‌شود، اما می‌تواند با درایور فیلتر \fBcompress\fP یا کارهای بلاک پشتیبان‌گیری با فشرده‌سازی فعال نیز استفاده شود. .sp مقادیر معتبر عبارتند از \fBzlib\fP و \fBzstd\fP\&. برای ایمیج‌هایی که از \fBcompat=0.10\fP استفاده می‌کنند، تنها فشرده‌سازی \fBzlib\fP در دسترس است. .TP .B \fBencryption\fP اگر این گزینه روی \fBon\fP تنظیم شود، ایمیج با الگوریتم 128 بیتی AES\-CBC رمزنگاری می‌شود. .sp استفاده از رمزنگاری در ایمیج‌های qcow و qcow2 طبق استانداردهای نوین رمزنگاری ناقص در نظر گرفته می‌شود و از چندین نقص طراحی رنج می‌برد: .INDENT 7.0 .IP \(bu 2 رمز AES\-CBC با بردارهای مقداردهی اولیه (IV) قابل پیش‌بینی بر اساس شماره سکتور استفاده می‌شود. این امر آن را در برابر حملات متن ساده انتخابی (chosen plaintext attacks) آسیب‌پذیر می‌کند که می‌تواند وجود داده‌های رمزگذاری‌شده را فاش سازد. .IP \(bu 2 عبارت عبور کاربر مستقیماً به عنوان کلید رمزنگاری استفاده می‌شود. یک عبارت عبور ضعیف یا کوتاه، امنیت رمزنگاری را به خطر می‌اندازد. .IP \(bu 2 در صورت لو رفتن یا به خطر افتادن عبارت عبور، هیچ راهی برای تغییر آن جهت محافظت از داده‌ها در ایمیج‌های qcow وجود ندارد. فایل‌ها باید کلون شوند و از یک عبارت عبور رمزنگاری متفاوت در فایل جدید استفاده شود. سپس فایل اصلی باید با برنامه‌ای مانند shred به‌صورت امن پاک شود، هرچند که حتی این روش هم با بسیاری از فناوری‌های ذخیره‌سازی مدرن ناکارآمد است. .IP \(bu 2 بردارهای مقداردهی اولیه مورد استفاده برای رمزنگاری سکتورها، به جای سکتور فیزیکی میزبان، بر اساس شماره سکتور مجازی مهمان هستند. هنگامی که یک ایمیج دیسک دارای چندین اسنپ‌شات داخلی باشد، این بدان معناست که داده‌ها در چندین سکتور فیزیکی با همان بردار مقداردهی اولیه رمزنگاری می‌شوند. با حالت CBC، این موضوع در صورتی که مهاجم بتواند چندین سکتور رمزنگاری‌شده با IV یکسان و برخی داده‌های قابل پیش‌بینی را جمع‌آوری کند، احتمال حملات واترمارکینگ (watermarking attacks) را فراهم می‌کند. داشتن چندین ایمیج qcow2 با همان عبارت عبور نیز این نقطه ضعف را آشکار می‌کند زیرا عبارت عبور مستقیماً به عنوان کلید استفاده می‌شود. .UNINDENT .sp بنابراین اکیداً توصیه می‌شود از رمزنگاری qcow / qcow2 استفاده نشود. به کاربران توصیه می‌شود از فناوری‌های رمزنگاری جایگزین مانند سیستم dm\-crypt / LUKS در لینوکس استفاده کنند. .TP .B \fBcluster_size\fP اندازه کلاستر qcow2 را تغییر می‌دهد (باید بین 512 و 2M باشد). اندازه‌های کلاستر کوچک‌تر می‌توانند حجم فایل ایمیج را بهینه‌تر کنند، در حالی که اندازه‌های کلاستر بزرگ‌تر عموماً عملکرد بهتری ارائه می‌دهند. .TP .B \fBpreallocation\fP حالت پیش‌تخصیص (مقادیر مجاز: \fBoff\fP، \fBmetadata\fP، \fBfalloc\fP، \fBfull\fP). ایمیجی با فراداده‌های پیش‌تخصیص‌یافته در ابتدا بزرگ‌تر است، اما می‌تواند در زمانی که ایمیج نیاز به رشد دارد عملکرد را بهبود بخشد. پیش‌تخصیص‌های \fBfalloc\fP و \fBfull\fP شبیه همان گزینه‌ها در قالب \fBraw\fP هستند، اما فراداده‌ها را نیز تنظیم می‌کنند. .TP .B \fBlazy_refcounts\fP اگر این گزینه روی \fBon\fP تنظیم شود، به‌روزرسانی‌های شمارش ارجاع با هدف اجتناب از I/O فراداده و بهبود عملکرد به تعویق می‌افتد. این ویژگی به‌ویژه با \fBcache=writethrough\fP که به‌روزرسانی‌های فراداده را دسته‌ای انجام نمی‌دهد قابل توجه است. بده‌بستان این است که پس از فروپاشی (crash) میزبان، جدول‌های شمارش ارجاع باید بازسازی شوند؛ یعنی در باز شدن بعدی، یک \fBqemu\-img check \-r all\fP (به‌صورت خودکار) مورد نیاز است که ممکن است مدتی طول بکشد. .sp این گزینه تنها در صورتی فعال می‌شود که \fBcompat=1.1\fP مشخص شده باشد. .TP .B \fBnocow\fP اگر این گزینه روی \fBon\fP تنظیم شود، COW را برای فایل غیرفعال می‌کند. این ویژگی تنها در btrfs معتبر است و روی سایر سیستم‌های فایل تأثیری ندارد. .sp سامانه فایل Btrfs هنگام میزبانی یک فایل ایمیج ماشین مجازی عملکرد پایینی دارد، و این موضوع زمانی که مهمان درون ماشین مجازی نیز از btrfs به عنوان سیستم فایل استفاده می‌کند تشدید می‌شود. خاموش کردن COW راهی برای کاهش این افت عملکرد است. به‌طور کلی دو روش برای خاموش کردن COW در btrfs وجود دارد: .INDENT 7.0 .IP \(bu 2 غیرفعال کردن آن با مانت کردن از طریق nodatacow؛ در این صورت تمامی فایل‌های تازه‌ساخته‌شده به‌صورت NOCOW خواهند بود .IP \(bu 2 برای یک فایل خالی، صفت فایلی NOCOW اضافه شود. این همان کاری است که این گزینه انجام می‌دهد. .UNINDENT.sp نکته: این گزینه فقط برای فایل‌های جدید یا خالی معتبر است. اگر فایلی از پیش موجود باشد که COW بوده و در حال حاضر دارای بلوک‌های داده است، نمی‌توان با تنظیم \fBnocow=on\fP\& آن را به NOCOW تغییر داد. می‌توان دستور \fBlsattr filename\fP را اجرا کرد تا بررسی شود آیا پرچم NOCOW تنظیم شده است یا خیر (حرف بزرگ \(aqC\(aq پرچم NOCOW است). .TP .B \fBdata_file\fP نام فایلی که تمام داده‌های مهمان در آن ذخیره خواهد شد. در صورت استفاده از این گزینه، فایل qcow2 فقط حاوی فراداده‌های تصویر خواهد بود. .sp نکته: اگر نام فایل ارائه‌شده از قبل وجود داشته باشد، هنگام استفاده از این گزینه با \fBqemu\-img create\fP داده‌ها از دست خواهند رفت؛ زیرا \fBqemu\-img\fP فایل داده را از ابتدا ایجاد کرده و محتوای اصلی فایل را بازنویسی می‌کند. برای صرفاً به‌روزرسانی ارجاع جهت اشاره به فایل از پیش موجود، از \fBqemu\-img amend\fP\& استفاده کنید. .TP .B \fBdata_file_raw\fP اگر این گزینه روی \fBon\fP تنظیم شود، QEMU همیشه فایل داده خارجی را به‌عنوان یک تصویر خام (raw) مستقل و فقط‌خواندنی، سازگار نگه می‌دارد. .sp این کار با ارسال تمامی دسترسی‌های نوشتنِ فایل qcow2 به فایل داده raw، شامل آفست‌های آن‌ها انجام می‌شود. بنابراین، داده‌ای که روی گره qcow2 (یعنی برای سیستم مهمان) در یک آفست مشخص قابل مشاهده است، در همان آفست در فایل داده raw نیز قابل مشاهده خواهد بود. این امر منجر به یک تصویر raw فقط‌خواندنی می‌شود. نوشتن‌هایی که فراداده qcow2 را دور می‌زنند ممکن است باعث خرابی فراداده qcow2 شوند؛ زیرا این نوشتن‌های خارج از باند (out\-of\-band) ممکن است به ناهماهنگ شدن فراداده با تصویر raw منجر شوند. .sp اگر این گزینه روی \fBoff\fP باشد، QEMU از فایل داده برای ذخیره داده‌ها به شیوه‌ای دلخواه استفاده خواهد کرد. محتوای فایل بدون فراداده qcow2 همراه آن معنایی نخواهد داشت. مکانی که داده در آن نوشته می‌شود، ارتباطی با آفست آن از دید مهمان نخواهد داشت، و برخی نوشتن‌ها (به‌ویژه نوشتن صفرها) ممکن است اصلاً به فایل داده هدایت نشوند، بلکه صرفاً با اصلاح فراداده qcow2 مدیریت شوند. .sp این گزینه تنها در صورتی می‌تواند فعال شود که \fBdata_file\fP تنظیم شده باشد. .UNINDENT .UNINDENT .UNINDENT .sp \fBسایر\fP .INDENT 0.0 .INDENT 3.5 همچنین QEMU برای سازگاری با نسخه‌های قدیمی‌تر QEMU یا سایر هایپروایزرها، از قالب‌های فایل تصویر متنوع دیگری نیز پشتیبانی می‌کند؛ از جمله VMDK، VDI، VHD (vpc)، VHDX، qcow1 و QED. برای مشاهده فهرست کامل قالب‌های پشتیبانی‌شده به \fBqemu\-img \-\-help\fP\& مراجعه کنید. برای توضیحات دقیق‌تر درباره این قالب‌ها، به مستندات مرجع درایورهای بلوکی (block drivers) در QEMU مراجعه کنید. .sp هدف اصلی درایورهای بلوکی برای این قالب‌ها، تبدیل تصویر است. برای اجرای ماشین‌های مجازی، توصیه می‌شود جهت دستیابی به عملکرد خوب، تصاویر دیسک به raw یا qcow2 تبدیل شوند. .UNINDENT .UNINDENT .SH "نویسندگان (AUTHORS)" Fabrice Bellard .SH "کپی‌رایت و تکثیر (COPYRIGHT)" 2026, The QEMU Project Developers .\" End of generated man page.