virt-drivers(1) پشتیبانی از مجازی‌سازی virt-drivers(1)

virt-drivers - راهنما و درایورهای پشتیبانی‌شده در ماشین مجازی

virt-drivers [--options] -d domname
virt-drivers [--options] -a disk.img

این ابزار می‌تواند بوت‌لودر، هسته و درایورهای درون برخی سیستم‌های مهمان را تنها از روی ایمیج دیسک تشخیص دهد. به عنوان مثال، می‌تواند تشخیص دهد که آیا یک ایمیج دیسک برای بوت به BIOS یا UEFI نیاز دارد، و آیا از virtio پشتیبانی می‌کند یا به دستگاه‌های شبیه‌سازی‌شده کُندتر نیاز دارد.

به‌طور معمول باید متادیتای هایپروایزر (مانند libvirt XML یا OVF) را در کنار ایمیج‌های دیسک توزیع کنید تا نحوه بوت آن‌ها را به هایپروایزر مشخص کند. این ابزار زمانی استفاده می‌شود که این متادیتا ارائه نشده باشد. با ارائه‌دهنده ایمیج دیسک همکاری کنید تا متادیتای مناسب را در اختیارتان قرار دهد.

خروجی یک سند XML است. در بالاترین سطح، سیستم‌عامل‌های یافت‌شده را فهرست می‌کند (مشابه virt-inspector(1)):

<operatingsystems>
  <operatingsystem>
    <root>/dev/sda2</root>
    <name>linux</name>
    <arch>x86_64</arch>
    <distro>fedora</distro>
    ...
  </operatingsystem>
  <operatingsystem>
    <root>/dev/sdb1</root>
    ...
  </operatingsystem>
</operatingsystems>

عنصر <firmware> سفت‌افزاری (فریم‌ور) را که برای بوت سیستم مهمان لازم است فهرست می‌کند. برای UEFI، علاوه بر این پارتیشن سیستمی EFI (یا «ESP») را نیز نمایش می‌دهد. سیستم‌های مهمان ممکن است از چندین فریم‌ور بوت پشتیبانی کنند. برای مثال، این مهمان شناسایی شده که از بوت UEFI استفاده می‌کند و ESP مربوط به UEFI اولین پارتیشن از دیسک اول است:

<operatingsystems>
  <firmware type='uefi'>/dev/sda1</firmware>
  <operatingsystem>
    ...

عنصر <bootloader> بوت‌لودر یافت‌شده در مهمان لینوکس را نشان می‌دهد. در صورت مشخص بودن، ممکن است حاوی اطلاعاتی درباره هسته‌های لینوکس ارائه‌شده باشد. برای مثال:

<operatingsystems>
  <firmware type='bios'/>
  <operatingsystem>
    <root>/dev/sda2</root>
    <name>linux</name>
    ...
    <bootloader type='grub2' config='/boot/grub2/grub.cfg'>
      <kernel>
        <name>kernel</name>
        <version>6.1.0-0.rc6.46.fc38.x86_64</version>
        <vmlinuz>/boot/vmlinuz-6.1.0-0.rc6.46.fc38.x86_64</vmlinuz>
        <modules>
          ...
        </modules>
        <supports_virtio_blk/>
        <supports_virtio_net/>
        ...
      </kernel>
    </bootloader>
</operatingsystems>

معمولاً فیلدهای بسیار بیشتری برای سیستم‌های مهمان لینوکس در دسترس است، از جمله فهرست کاملی از ماژول‌های هسته و اطلاعات مربوط به پشتیبانی از virtio. برای یک مثال کامل ببینید: https://github.com/libguestfs/guestfs-tools/tree/master/drivers

عنصر <drivers> اطلاعات مربوط به درایورهای یافت‌شده در مهمان‌های ویندوز را فهرست می‌کند:

<operatingsystems>
  <firmware type='bios'/>
  <operatingsystem>
    <root>/dev/sda2</root>
    <name>windows</name>
    ...
    <drivers>
      <driver>
        <name>scsidev</name>
        <pci vendor='1077' device='1216' subsystem='8471101E'/>
        <pci vendor='1077' device='1216' subsystem='8493101E'/>
      </driver>
      ...
    </drivers>
</operatingsystems>

نام درایور (مانند "scsidev") با فایل .INF درایور ویندوز (مانند scsidev.inf) مطابقت دارد. فهرست دستگاه‌های PCI، USB و غیره، دستگاه‌های منطبقی هستند که باعث بارگذاری این درایور هنگام بوت می‌شوند.

نمایش راهنما.
افزودن file که باید یک ایمیج دیسک از یک ماشین مجازی باشد.

قالب ایمیج دیسک به‌طور خودکار تشخیص داده می‌شود. برای نادیده‌گرفتن این حالت و اجبار به یک قالب خاص، از گزینه --format استفاده کنید.

افزودن یک دیسک از راه دور. قالب URI با guestfish سازگار است. بخش "ADDING REMOTE STORAGE" را در guestfish(1) ببینید.
این پارامتر اندازه سکتور ایمیج دیسک اضافه‌شده با گزینه -a را تنظیم می‌کند و برای مهمان libvirt اضافه‌شده با گزینه -d نادیده گرفته می‌شود. همچنین بخش "guestfs_add_drive_opts" را در guestfs(3) ببینید.
استفاده از توالی‌های رنگی ANSI برای رنگ‌آمیزی پیام‌ها. این حالت پیش‌فرض هنگام ارسال خروجی به tty است. اگر خروجی برنامه به یک فایل هدایت شود، توالی‌های رنگی ANSI غیرفعال می‌شوند مگر اینکه از این گزینه استفاده کنید.
در صورت استفاده از libvirt، به URI داده‌شده متصل می‌شود. در صورت حذف، به هایپروایزر پیش‌فرض libvirt متصل می‌شویم.

اگر دستگاه‌های بلوکی مهمان را مستقیماً مشخص کنید (-a)، دیگر از libvirt استفاده نخواهد شد.

افزودن تمام دیسک‌ها از مهمان مشخص‌شده در libvirt. می‌توان از UUID دامنه به جای نام استفاده کرد.
هنگام درخواست کلیدها و عبارات عبور، virt-drivers معمولاً نمایش کاراکترها را خاموش می‌کند تا نتوانید آنچه تایپ می‌کنید را ببینید. اگر نگران حملات تمپست (Tempest) نیستید و شخص دیگری در اتاق حضور ندارد، می‌توانید این فلگ را مشخص کنید تا ورودی تایپ‌شده را مشاهده کنید.
حالت پیش‌فرض برای گزینه -a تشخیص خودکار قالب ایمیج دیسک است. استفاده از این گزینه، قالب دیسک را برای گزینه -a در خط فرمان اجبار می‌کند.

اگر ایمیج‌های دیسک مهمان با قالب خام (raw) غیرقابل اعتماد دارید، باید از این گزینه برای مشخص کردن قالب دیسک استفاده کنید. این کار از بروز مشکلات امنیتی احتمالی با سیستم‌های مهمان مخرب جلوگیری می‌کند (CVE-2010-3851).

مشخص کردن یک کلید برای LUKS، جهت بازگشایی خودکار دستگاه LUKS هنگام استفاده از بازرسی.
"NAME" نام دستگاه در libguestfs است (مانند "/dev/sda1"). "UUID" شناسه یکتای دستگاه است. "all" یعنی امتحان کردن کلید روی تمام دستگاه‌های رمزگذاری‌شده.

استفاده از "KEY_STRING" مشخص‌شده به عنوان عبارت عبور.

خواندن عبارت عبور از FILENAME.
تلاش برای قفل‌گشایی بدون عبارت عبور برای دستگاه از طریق Clevis روی شبکه. لطفاً برای اطلاعات بیشتر درباره رمزگذاری دیسک وابسته به شبکه (NBDE)، به بخش "ENCRYPTED DISKS" در guestfs(3) مراجعه کنید.

توجه داشته باشید که در صورت وجود هرگونه گزینه‌ای از این دست در خط فرمان، شبکه کاربری QEMU به‌طور خودکار برای اپلاینس libguestfs فعال خواهد شد.

خواندن پارامترهای کلید یا عبارت عبور از stdin. حالت پیش‌فرض تلاش برای خواندن عبارات عبور از کاربر با باز کردن /dev/tty است.

اگر چندین دستگاه رمزگذاری‌شده وجود داشته باشد، ممکن است لازم باشد چندین کلید را در stdin وارد کنید، هر کدام در یک خط.

عدم چاپ پیام‌های معمول پیشرفت.
فعال‌سازی پیام‌های پرجزئیات برای اشکال‌زدایی.
نمایش شماره نسخه و خروج.
شکستن خودکار خطوط پیام‌های خطا، هشدار و اطلاعاتی. این حالت پیش‌فرض هنگام ارسال خروجی به tty است. اگر خروجی برنامه به یک فایل هدایت شود، شکستن خطوط غیرفعال می‌شود مگر اینکه از این گزینه استفاده کنید.
فعال‌سازی ردیابی فراخوانی‌های API در libguestfs.

برای مشاهده سایر متغیرهای محیطی که بر تمام برنامه‌های libguestfs تأثیر می‌گذارند، به بخش "ENVIRONMENT VARIABLES" در guestfs(3) مراجعه کنید.

این برنامه در صورت موفقیت مقدار 0 و در صورت بروز خطا مقداری غیر از صفر را برمی‌گرداند.

guestfs(3), guestfish(1), guestmount(1), virt-get-kernel(1), virt-inspector(1), virt-v2v(1), http://libguestfs.org

Richard W.M. Jones http://people.redhat.com/~rjones

Copyright (C) 2009-2025 Red Hat Inc.

این برنامه یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط «پروانه عمومی همگانی گنو» (GNU GPL) که توسط بنیاد نرم‌افزارهای آزاد منتشر شده است، چه نسخه 2 پروانه و چه (به انتخاب خودتان) هر نسخه بالاتر دیگری، بازتوزیع کرده یا تغییر دهید.

این برنامه با این امید توزیع شده است که مفید واقع شود، اما بدون هرگونه ضمانت؛ حتی بدون ضمانت ضمنی قابل فروش بودن یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر به «پروانه عمومی همگانی گنو» مراجعه کنید.

شما باید همراه با این برنامه یک نسخه از «پروانه عمومی همگانی گنو» را دریافت کرده باشید؛ در غیر این صورت، به بنیاد نرم‌افزارهای آزاد به نشانی زیر بنویسید:

Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

برای دریافت فهرستی از اشکالات ثبت‌شده برای libguestfs، از این پیوند استفاده کنید: https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools

برای گزارش یک اشکال جدید در libguestfs، از این پیوند استفاده کنید: https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools

هنگام گزارش اشکال، لطفاً موارد زیر را ارائه دهید:

  • نسخه libguestfs.
  • محلی که libguestfs را از آن دریافت کرده‌اید (مانند توزیع لینوکس، کامپایل از کد منبع و غیره).
  • اشکال را به‌دقت شرح دهید و روشی برای بازتولید آن ارائه کنید.
  • دستور libguestfs-test-tool(1) را اجرا کرده و خروجی کامل و دست‌نخورده آن را در گزارش اشکال الصاق نمایید.
2026-07-11 guestfs-tools-1.56.0