virt-install(1) Virtualization Support virt-install(1)

virt-install - راه‌اندازی و ایجاد ماشین‌های مجازی جدید

virt-install [OPTION]...

virt-install یک ابزار خط فرمانی برای ساخت ماشین‌های مهمان جدید KVM، Xen یا کانتینرهای لینوکس با استفاده از کتابخانه مدیریت هایپروایزر libvirt است. برای شروع سریع، بخش مثال‌ها (EXAMPLES) را در انتهای این سند مشاهده کنید.

ابزار virt-install از نصب گرافیکی با استفاده از (به عنوان مثال) VNC یا SPICE و همچنین نصب در حالت متنی از طریق کنسول سریال پشتیبانی می‌کند. ماشین مهمان را می‌توان به گونه‌ای پیکربندی کرد که از یک یا چند دیسک مجازی، رابط شبکه، دستگاه صوتی، و دستگاه‌های فیزیکی USB یا PCI و موارد دیگر استفاده کند.

رسانه نصب می‌تواند یک دیسک محلی ISO یا CDROM، یا یک درخت نصب توزیع (install tree) میزبانی‌شده از راه دور بر بستر HTTP، FTP یا در یک دایرکتوری محلی باشد. در حالت درخت نصب، virt-install فایل‌های حداقلی لازم برای آغاز فرایند نصب را دریافت کرده و به مهمان اجازه می‌دهد باقی توزیع سیستم‌عامل را در صورت نیاز دریافت کند. راه‌اندازی از طریق بوت شبکه (PXE) و وارد کردن (import) یک ایمیج دیسک موجود (و در نتیجه رد کردن مرحله نصب) نیز پشتیبانی می‌شوند.

با مشخص کردن آرگومان‌های مناسب در خط فرمان، virt-install قادر است کاملاً بدون نظارت (unattended) اجرا شود، به طوری که ماشین مهمان نیز فرایند راه‌اندازی خودکار ('kickstarting') را انجام دهد. این قابلیت امکان خودکارسازی آسان نصب ماشین‌های مهمان را فراهم می‌کند. این کار می‌تواند به صورت دستی یا بسیار ساده‌تر با گزینه --unattended انجام شود.

بسیاری از آرگومان‌ها دارای زیرگزینه‌هایی هستند که به صورت opt1=foo,opt2=bar و غیره مشخص می‌شوند. برای دیدن فهرست کاملی از زیرگزینه‌های مرتبط با هر آرگومان، --option=? را امتحان کنید؛ برای مثال: virt-install --disk=?

بیشتر گزینه‌ها اجباری نیستند. اگر یک مقدار مناسب برای --osinfo مشخص یا شناسایی شود، تمام مقادیر پیش‌فرض تعیین شده و در خروجی ترمینال گزارش می‌شوند. در غیر این صورت، حداقل گزینه‌های مورد نیاز عبارتند از --memory، فضای ذخیره‌سازی مهمان (--disk یا --filesystem)، و انتخاب یک روش نصب.

نحو (Syntax): --connect URI

اتصال به یک هایپروایزر غیرپیش‌فرض. اگر این گزینه مشخص نشود، libvirt تلاش خواهد کرد مناسب‌ترین مورد پیش‌فرض را انتخاب کند.

برخی از گزینه‌های معتبر در اینجا عبارتند از:

برای ایجاد مهمان‌های KVM و QEMU جهت اجرا توسط نمونه libvirtd در سطح سیستم. این حالت پیش‌فرضی است که virt-manager استفاده می‌کند و خواسته اغلب کاربران KVM است.
برای ایجاد مهمان‌های KVM و QEMU برای libvirtd که تحت کاربر عادی اجرا می‌شود.
برای اتصال به Xen.
برای ایجاد کانتینرهای لینوکس.

پارامترهای پیکربندی عمومی که برای همه انواع نصب‌های مهمان اعمال می‌شوند.

نحو: -n, --name NAME

نام نمونه ماشین مجازی مهمان جدید. این نام باید در میان تمام مهمان‌های شناخته‌شده برای هایپروایزر در این اتصال، از جمله مواردی که در حال حاضر فعال نیستند، یکتا باشد. برای تعریف مجدد یک مهمان موجود، قبل از اجرای virt-install از ابزار virsh(1) برای خاموش کردن آن ('virsh shutdown') و حذف آن ('virsh undefine') استفاده کنید.

نحو: --memory OPTIONS

حافظه‌ای که باید به مهمان تخصیص داده شود، بر حسب مبی‌بایت (MiB). این گزینه جایگزین گزینه منسوخ‌شده -r/--ram است. زیرگزینه‌هایی مانند 'memory'، 'currentMemory'، 'maxMemory' و 'maxMemory.slots' در دسترس هستند که همگی به مقادیر هم‌نام خود در XML نگاشت می‌شوند.

برای سازگاری با گذشته، مقدار 'memory' به عنصر <currentMemory> و maxmemory به عنصر <memory> نگاشت می‌شود.

برای پیکربندی ماژول‌های حافظه‌ای که می‌توانند در حین کار جدا شوند (hotunplug)، توضیحات --memdev را ببینید.

برای مشاهده فهرستی از تمامی زیرگزینه‌های موجود، از --memory=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#memory-allocation

نحو: --memorybacking OPTIONS

این گزینه بر نحوه پشتیبانی شدن صفحات حافظه مجازی توسط صفحات میزبان تأثیر می‌گذارد.

برای مشاهده فهرستی از تمامی زیرگزینه‌های موجود، از --memorybacking=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#memory-backing

نحو: --arch ARCH

درخواست یک معماری پردازنده غیربومی (non-native) برای ماشین مجازی مهمان. در صورت تعیین نشدن، از معماری پردازنده میزبان در مهمان استفاده خواهد شد.

نحو: --machine MACHINE

نوع ماشینی که باید شبیه‌سازی شود. معمولاً برای Xen یا KVM نیازی به تعیین این گزینه نیست، اما برای انتخاب نوع ماشین در معماری‌های نامتعارف‌تر مفید است.

نحو: --metadata OPT=VAL,[...]

تعیین مقادیر فراداده برای مهمان. گزینه‌های ممکن شامل name، uuid، title و description هستند. این گزینه جایگزین گزینه‌های منسوخ‌شده -u/--uuid و --description است.

برای مشاهده فهرستی از تمامی زیرگزینه‌های موجود، از --metadata=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#general-metadata

نحو: --events OPT=VAL,[...]

تعیین مقادیر رویدادها برای مهمان. گزینه‌های ممکن شامل on_poweroff، on_reboot و on_crash هستند.

برای مشاهده فهرستی از تمامی زیرگزینه‌های موجود، از --events=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#events-configuration

نحو: --resource OPT=VAL,[...]

تعیین افراز منابع (resource partitioning) برای مهمان.

برای مشاهده فهرستی از تمامی زیرگزینه‌های موجود، از --resource=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#resource-partitioning

نحو: --sysinfo OPT=VAL,[...]

پیکربندی مقادیر sysinfo/SMBIOS که در دسترس سیستم‌عامل ماشین مجازی قرار می‌گیرند. مثال‌ها:

نوع ویژه‌ای که اطلاعات SMBIOS میزبان را در ماشین مجازی در دسترس قرار می‌دهد.
نوع ویژه‌ای که در آن هایپروایزر اطلاعات SMBIOS را برای ماشین مجازی تولید می‌کند.
نوع پیش‌فرض smbios است و به کاربران اجازه می‌دهد اطلاعات SMBIOS را به‌صورت دستی مشخص کنند.

برای مشاهده فهرستی از تمامی زیرگزینه‌های موجود، از --sysinfo=? استفاده کنید.

جزئیات کامل در https://libvirt.org/formatdomain.html#operating-system-booting و https://libvirt.org/formatdomain.html#smbios-system-information برای عنصر XML با نام smbios..SS --xml

ساختار: --xml ARGS

اعمال ویرایش‌های مستقیم بر روی XML تولیدشده با استفاده از نحو XPath. برای نمونه:

virt-install --xml ./@foo=bar --xml ./newelement/subelement=1

این کار XML تولیدشده را طوری تغییر می‌دهد که شامل موارد زیر باشد:

<domain foo='bar' ...>
  ...
  <newelement>
    <subelement>1</subelement>
  </newelement>
</domain>

گزینه --xml دارای ۴ زیرگزینه است:

رفتار پیش‌فرض در صورتی که هیچ زیرگزینهٔ صریحی تنظیم نشده باشد. از ساختار XPATH=VALUE استفاده می‌کند مگر اینکه با xpath.value جفت شود. برای چگونگی تفسیر مقدار به بخش زیر مراجعه کنید.
xpath.set فقط به عنوان رشته XPath تفسیر می‌شود و از xpath.value به عنوان مقدار تنظیمی استفاده خواهد شد. این گزینه می‌تواند به دور زدن مشکلاتی که ممکن است در صورت وجود علامت مساوی '=' در رشته رخ دهد کمک کند.

اگر مقدار خالی باشد، به عنوان لغو مقداردهی آن گره خاص در نظر گرفته می‌شود.

گره را به عنوان یک عنصر خالی ایجاد می‌کند. برای عناصر بولی مانند <readonly/> لازم است.
کل گره مشخص‌شده توسط xpath و تمام فرزندان آن را حذف می‌کند.

مشابه گزینه --xml، اکثر گزینه‌های سطح بالا دارای زیرگزینه‌های xpath.* هستند. برای مثال، --disk xpath1.set=./@foo=bar,xpath2.create=./newelement تغییراتی در XML به این شکل ایجاد می‌کند:

<disk foo="bar">
  <newelements/>
</disk>

این قابلیت برای تنظیم گزینه‌های XML به ازای هر دستگاه مفید است، در شرایطی که virt-install هنوز از آن گزینه‌ها پشتیبانی نمی‌کند.

ساختار: --qemu-commandline ARGS

ارسال مستقیم گزینه‌ها به شبیه‌ساز qemu. فقط برای درایور qemu در libvirt کار می‌کند. این گزینه می‌تواند یک رشته از آرگومان‌ها را دریافت کند، برای مثال:

--qemu-commandline="-display gtk,gl=on"

متغیرهای محیطی با استفاده از 'env' مشخص می‌شوند، برای مثال:

--qemu-commandline=env=DISPLAY=:0.1

جزئیات کامل درباره این قابلیت libvirt: https://libvirt.org/drvqemu.html#pass-through-of-arbitrary-qemu-commands.SS --vcpus

ساختار: --vcpus OPTIONS

تعداد پردازنده‌های مجازی برای پیکربندی در سیستم‌عامل مهمان. اگر 'maxvcpus' مشخص شده باشد، مهمان قادر خواهد بود در حین اجرا تا سقف MAX پردازنده مجازی را به‌صورت اتصال گرم (hotplug) اضافه کند، اما با VCPUS راه‌اندازی خواهد شد.

مکان‌نگاری پردازنده (CPU topology) را می‌توان علاوه بر این با sockets، dies، cores و threads مشخص کرد. اگر مقادیر ذکر نشوند، موارد باقی‌مانده به‌طور خودکار با اولویت دادن به cores نسبت به sockets و سپس threads پر خواهند شد. اولویت با هسته‌ها (cores) است زیرا این امر با ویژگی‌های تراشه‌های سخت‌افزاری مدرن در دنیای واقعی مطابقت دارد و بنابراین با آنچه سیستم‌عامل مهمان انتظار مواجهه با آن را دارد سازگارتر است.

گزینه 'cpuset' مشخص می‌کند که مهمان می‌تواند از کدام پردازنده‌های فیزیکی استفاده کند. CPUSET فهرستی از اعداد است که با کاما از هم جدا شده‌اند، و همچنین می‌توان آن را در قالب بازه‌ها یا مشخص کردن پردازنده‌هایی جهت مستثنی کردن تعیین نمود. مثال:

0,2,3,5     : استفاده از پردازنده‌های 0، 2، 3 و 5
1-5,^3,8    : استفاده از پردازنده‌های 1، 2، 4، 5 و 8

اگر مقدار 'auto' ارسال شود، virt-install تلاش می‌کند در صورت دردسترس بودن، با استفاده از داده‌های NUMA به‌طور خودکار یک سنجاق کردن بهینه پردازنده (cpu pinning) را تعیین کند.

برای مشاهده فهرستی از تمامی زیرگزینه‌های دردسترس از --vcpus=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#cpu-allocation

ساختار: --numatune OPTIONS

تنظیم خط‌مشی NUMA برای فرایند دامنه (domain process). نمونه‌های فراخوانی

--numatune 1,2,3,4-7
--numatune 1-3,5,memory.mode=preferred

گره‌های numa را برای تخصیص حافظه از آن‌ها مشخص می‌کند. این گزینه دارای ساختاری مشابه با گزینه --vcpus cpuset= است. حالت (mode) می‌تواند یکی از مقادیر 'interleave'، 'preferred' یا 'strict' (پیش‌فرض) باشد. برای کسب اطلاعات درباره هر حالت، 'man 8 numactl' را ببینید.

برای مشاهده فهرستی از تمامی زیرگزینه‌های دردسترس از --numatune=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#numa-node-tuning

ساختار: --memtune OPTIONS

تنظیم خط‌مشی حافظه برای فرایند دامنه (domain process). نمونه‌های فراخوانی

--memtune 1000
--memtune hard_limit=100,soft_limit=60,swap_hard_limit=150,min_guarantee=80

برای مشاهده فهرستی از تمامی زیرگزینه‌های دردسترس از --memtune=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#memory-tuning

ساختار: --blkiotune OPTIONS

تنظیم خط‌مشی blkio برای فرایند دامنه (domain process). نمونه‌های فراخوانی

--blkiotune 100
--blkiotune weight=100,device.path=/dev/sdc,device.weight=200

برای مشاهده فهرستی از تمامی زیرگزینه‌های دردسترس از --blkiotune=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#block-i-o-tuning.SS --cpu

نحو: --cpu MODEL[,+feature][,-feature][,match=MATCH][,vendor=VENDOR],...

پیکربندی مدل CPU و ویژگی‌های پردازنده‌ای که به مهمان ارائه می‌شوند. تنها مقدار الزامی MODEL است که یک مدل معتبر CPU شناخته‌شده برای libvirt می‌باشد.

مقادیر خط‌مشی ویژگی در libvirt عبارتند از force، require، optional، disable، یا forbid، یا با شکل خلاصه '+feature' و '-feature' که به ترتیب معادل 'force=feature' و 'disable=feature' هستند.

اگر مدل دقیق CPU مشخص شود، virt-install به‌طور خودکار ویژگی‌های CPU موجود روی میزبان را کپی می‌کند تا آسیب‌پذیری‌های امنیتی اخیر کانال جانبی اجرای حدسی (speculative execution) پردازنده و Microarchitectural Store Buffer Data را کاهش دهد. با این حال، این امر تأثیراتی بر کارایی خواهد داشت و مهاجرت به میزبان‌های فاقد وصله‌های امنیتی را با مشکل مواجه می‌کند. برای کنترل این رفتار، پارامتر secure وجود دارد. مقادیر ممکن on و off هستند که on پیش‌فرض است. اکیداً توصیه می‌شود این گزینه را فعال نگه دارید و اطمینان حاصل کنید که روی تمام میزبان‌های مجازی‌سازی، microcode، کرنل و نرم‌افزار مجازی‌سازی کاملاً به‌روز نصب شده باشد.

چند مثال:

ارائه مدل CPU core2duo، فعال‌سازی اجباری x2apic، اما عدم ارائه vmx
ارائه پیکربندی CPUهای میزبان به مهمان. این کار مهمان را قادر می‌سازد تا از بسیاری از ویژگی‌های پردازنده‌های میزبان بهره‌مند شود (کارایی بهتر)، اما در صورت مهاجرت مهمان به میزبانی بدون CPU یکسان ممکن است مشکلاتی ایجاد کند.
نمونه‌ای از تعیین دو سلول NUMA. این کار ساختار XML زیر را تولید خواهد کرد:
<cpu>
  <numa>
    <cell cpus="0-3" memory="1234"/>
    <cell cpus="4-7" memory="5678"/>
  </numa>
</cpu>
نمونه‌ای از انتقال مستقیم (pass-through) اطلاعات حافظه پنهان (cache) پردازنده میزبان.
ارائه پرویژگی‌ترین CPU ممکن. هنگام اجرای مهمان با معماری متفاوت (foreign architecture)، برای نمونه مهمان riscv64 روی میزبان x86_64 مفید است. هنگام استفاده از KVM برای اجرای مهمانی با معماری یکسان توصیه نمی‌شود.

برای دیدن فهرستی از تمام زیرگزینه‌های در دسترس، از --cpu=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#cpu-model-and-topology

نحو: --cputune OPTIONS

تنظیم دقیق پارامترهای CPU برای مهمان.

پیکربندی این‌که VCPU دامنه به کدام‌یک از پردازنده‌های فیزیکی میزبان سنجاق (pin) شود. نمونه فراخوانی

--cputune vcpupin0.vcpu=0,vcpupin0.cpuset=0-3,vcpupin1.vcpu=1,vcpupin1.cpuset=4-7

برای مشاهده فهرستی از تمامی زیرگزینه‌های موجود، از --cputune=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#cpu-tuning

نحو: --security, --seclabel type=TYPE[,label=LABEL][,relabel=yes|no],...

پیکربندی تنظیمات seclabel دامنه. مقدار type می‌تواند 'static' یا 'dynamic' باشد. پیکربندی 'static' نیازمند یک LABEL امنیتی است. مشخص کردن LABEL بدون TYPE بیانگر پیکربندی ایستا (static) است.

برای دیدن فهرستی از تمام زیرگزینه‌های موجود، از --security=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#security-label.SS --keywrap

ساختار: --keywrap OPTIONS

تعیین XML عنصر <keywrap> دامنه، که برای عملیات مدیریت کلید رمزنگاری S390 استفاده می‌شود.

از --keywrap=? برای مشاهده فهرست همه زیرگزینه‌های موجود استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#key-wrap

ساختار: --iothreads OPTIONS

تعیین XML عنصر <iothreads> و/یا <iothreadids> دامنه. برای نمونه، جهت پیکربندی <iothreads>4</iothreads>، از --iothreads 4 استفاده کنید.

از --iothreads=? برای مشاهده فهرست همه زیرگزینه‌های موجود استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#iothreads-allocation

ساختار: --features FEAT=on|off,...

فعال (on) یا غیرفعال (off) کردن عناصر در XML بخش <features> مهمان. نمونه‌ها شامل ویژگی‌های acpi، apic، eoi، privnet و hyperv هستند. چند مثال:

فعال‌سازی APIC PV EOI
فعال‌سازی VAPIC برای hyperv، اما غیرفعال‌سازی spinlocks
اجازه دادن به پنهان‌سازی امضای ناظر KVM از سیستم مهمان
آگاه‌سازی مهمان از اینکه میزبان از قفل‌های اسپین فرامجازی (paravirtual spinlocks) پشتیبانی می‌کند؛ برای مثال با نمایان‌سازی سازوکار pvticketlocks.
این مورد فقط برای معماری‌های ARM کاربرد دارد. مقادیر مجاز "host" یا شماره نسخه هستند.
این حالت مدیریت سیستم (System Management Mode یا SMM) ناظر را فعال می‌کند. ممکن است برخی سفت‌افزارهای UEFI به وجود این ویژگی نیاز داشته باشند. (QEMU فقط با نوع ماشین q35 از SMM پشتیبانی می‌کند.)

از --features=? برای مشاهده فهرست همه زیرگزینه‌های موجود استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#hypervisor-features

ساختار: --clock offset=OFFSET,TIMER_OPT=VAL,...

پیکربندی XML بخش <clock> مهمان. برخی از گزینه‌های پشتیبانی‌شده:

تنظیم آفست ساعت، مانند 'utc' یا 'localtime'
غیرفعال‌سازی یک تایمر بولی (boolean). در اینجا TIMER می‌تواند hpet، kvmclock و غیره باشد.
تنظیم مقدار tickpolicy برای یک تایمر. TIMER در اینجا می‌تواند rtc، pit و غیره باشد. مقدار VAL می‌تواند catchup، delay و غیره باشد. برای تمام مقادیر به مستندات libvirt مراجعه کنید.

از --clock=? برای مشاهده فهرست همه زیرگزینه‌های موجود استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#time-keeping

ساختار: --pm OPTIONS

پیکربندی ویژگی‌های مدیریت توان (power management) مهمان. مثال:

--pm suspend_to_memi.enabled=on,suspend_to_disk.enabled=off

از --pm=? برای مشاهده فهرست همه زیرگزینه‌های موجود استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#power-management.SS --launchSecurity

ساختار: --launchSecurity TYPE[,OPTS]

فعال‌سازی امنیت راه‌اندازی برای ماشین مهمان، مانند AMD SEV. مثال‌های فراخوانی:

# این دستور از خط‌مشی پیش‌فرض 0x03 استفاده خواهد کرد
# هیچ dhCert ارائه نشده است، بنابراین داده‌ای با سفت‌افزار SEV تبادل نمی‌شود
--launchSecurity sev
# خط‌مشی صریح 0x01 - اشکال‌زدایی را غیرفعال کرده و اشتراک کلید مهمان را مجاز می‌کند
--launchSecurity sev,policy=0x01
# ارائه blob نشست دریافت‌شده از سفت‌افزار SEV
# ارائه dhCert برای باز کردن یک کانال ارتباطی امن با سفت‌افزار SEV
--launchSecurity sev,session=BASE64SESSIONSTRING,dhCert=BASE64DHCERTSTRING

فناوری SEV پیامدهای بیشتری در استفاده از دستگاه‌های virtio دارد، بنابراین برای مشاهده فراخوانی کامل virt-install با --launchSecurity، به بخش «مثال‌ها (EXAMPLES)» مراجعه کنید.

برای مشاهده فهرستی از همه زیرگزینه‌های در دسترس، از --launchSecurity=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#launch-security

ساختار: --cdrom PATH

فایل ISO یا دستگاه CDROM برای استفاده به‌عنوان رسانه نصب ماشین مجازی. پس از نصب، دستگاه CDROM مجازی متصل به ماشین مجازی باقی خواهد ماند، اما رسانه ISO یا مسیر میزبان خارج (eject) می‌شود.

ساختار: -l, --location OPTIONS

منبع نصب درخت توزیع. ابزار virt-install می‌تواند برخی از درخت‌های توزیع را شناسایی کرده و یک جفت kernel/initrd قابل راه‌اندازی را برای آغاز نصب واکشی کند.

گزینه --location مواردی مانند --extra-args را برای آرگومان‌های هسته و همچنین استفاده از --initrd-inject امکان‌پذیر می‌کند. اگر می‌خواهید از این گزینه‌ها همراه با رسانه CDROM استفاده کنید، می‌توانید فایل ISO را نیز به --location ارسال کنید؛ این روش برای برخی از رسانه‌های CDROM (و نه همه آن‌ها) کار می‌کند.

مقدار LOCATION می‌تواند یکی از شکل‌های زیر را داشته باشد:

https://host/path
مکان یک سرور HTTP حاوی ایمیج توزیع قابل نصب.
<ftp://host/path>
مکان یک سرور FTP حاوی ایمیج توزیع قابل نصب.
استخراج مستقیم فایل‌ها از مسیر ISO.
مسیر یک دایرکتوری محلی حاوی ایمیج توزیع قابل نصب. توجه داشته باشید که این دایرکتوری پس از راه‌اندازی اولیه توسط مهمان قابل دسترسی نخواهد بود، بنابراین نصاب سیستم‌عامل برای دسترسی به ادامه رسانه نصب به روش دیگری نیاز خواهد داشت.

چند نمونه URL مختص توزیع‌ها:

علاوه بر این، --location می‌تواند زیرگزینه‌های 'kernel' و 'initrd' را بپذیرد. این‌ها مسیرهایی نسبی به URL یا ISO مکان مشخص‌شده هستند که امکان انتخاب فایل‌های خاص را برای kernel/initrd در درخت نصب فراهم می‌کنند. این ویژگی زمانی مفید است که virt-install/libosinfo نداند هسته را در --location مشخص‌شده کجا پیدا کند.

برای مثال، اگر فایل ISO ناشناخته‌ای برای libosinfo به نام my-unknown.iso دارید که هسته آن در 'kernel/fookernel' و initrd آن در 'kernel/fooinitrd' قرار دارد، می‌توانید این کار را با دستور زیر انجام دهید:

--location my-unknown.iso,kernel=kernel/fookernel,initrd=kernel/fooinitrd

نصب از طریق PXE. این گزینه صرفاً به ماشین مجازی می‌گوید که برای اولین بوت از طریق شبکه راه‌اندازی شود.

صرف‌نظر کردن از فرایند نصب سیستم‌عامل، و ساخت یک مهمان بر پایه یک ایمیج دیسک موجود. دستگاهی که برای بوت استفاده می‌شود، اولین دستگاه مشخص‌شده از طریق --disk یا --filesystem است.

سینتکس: -x, --extra-args KERNELARGS

آرگومان‌های اضافی خط فرمان کرنل برای ارسال به نصاب هنگام انجام نصب مهمان از --location. یک کاربرد رایج، مشخص کردن یک فایل kickstart انکوندا برای نصب‌های خودکار است، مانند: --extra-args "ks=https://myserver/my.ks"

سینتکس: --initrd-inject PATH

افزودن PATH به ریشه initrd دریافت‌شده با --location. این گزینه می‌تواند برای اجرای یک نصب خودکار بدون نیاز به میزبانی فایل kickstart روی شبکه استفاده شود: --initrd-inject=/path/to/my.ks --extra-args "ks=file:/my.ks"

این یک نقطه ورود گسترده‌تر برای انواع مختلف عملیات‌های نصب است. این دستور چندین زیرآرگومان دارد، مشابه --disk و گزینه‌های نظیر آن. این گزینه منحصراً برای عملیات‌های نصب ماشین مجازی بوده و اساساً اولین بوت را پیکربندی می‌کند.

ساده‌ترین روش استفاده، مثلاً برای نصب fedora29 بدین صورت است:

--install fedora29

و virt-install نشانی URL مربوط به --location را از libosinfo دریافت کرده و مقادیر پیش‌فرض را از آنجا مقداردهی می‌کند.

زیرگزینه‌های موجود:

این همان گزینه نصب سیستم‌عامل است که در بالا توضیح داده شد. روش صریح برای مشخص کردن آن --install os=fedora29 است. در صورتی که گزینه‌ای مشخص نشود، os= مقدار پیش‌فرض خواهد بود.
مشخص کردن یک جفت kernel و initrd برای استفاده به عنوان رسانه نصب. این فایل‌ها قبل از بوت کردن ماشین مجازی در یک مکان موقت کپی می‌شوند، بنابراین می‌توان آن‌ها را با --initrd-inject ترکیب کرد و رسانه مبدأ شما دست‌نخورده باقی می‌ماند. در صورت نیاز، رسانه به یک اتصال راه دور بارگذاری خواهد شد.

نمونه استفاده با مسیرهای فایل‌سیستم محلی: --install kernel=/path/to/kernel,initrd=/path/to/initrd

نمونه استفاده با مسیرهای شبکه. ابتدا kernel/initrd به‌صورت محلی دانلود شده و سپس به عنوان مسیرهای فایل‌سیستم محلی به ماشین مجازی ارسال می‌شوند: --install kernel=https://127.0.0.1/tree/kernel,initrd=https://127.0.0.1/tree/initrd

توجه داشته باشید، این موارد صرفاً برای بوت در زمان نصب هستند. اگر می‌خواهید کرنل مورد استفاده برای بوت دائمی ماشین مجازی را تنظیم کنید، از گزینه --boot استفاده کنید.

مشخص کردن آرگومان‌های کرنل در زمان نصب (XML مربوط به <cmdline> در libvirt). این موارد را می‌توان با گزینه‌هایی نظیر kernel/initrd یا رسانه --location ترکیب کرد. به‌طور پیش‌فرض، kernel_args دقیقاً مانند --extra-args عمل می‌کند و به آرگومان‌هایی که virt-install به‌طور پیش‌فرض برای بیشتر نصب‌های --location تنظیم می‌کند، الحاق (append) خواهد شد. اگر می‌خواهید مقدار پیش‌فرض virt-install را لغو و بازنویسی کنید، علاوه بر این kernel_args_overwrite=yes را مشخص نمایید.
دستگاه بوت برای مرحله نصب (hd، cdrom، floppy، network) را مشخص می‌کند. این گزینه با XML مربوط به <os><boot dev=X> در libvirt نگاشت می‌شود.

اگر می‌خواهید از یک cdrom یا شبکه نصب کنید، احتمالاً ساده‌تر است و سازگاری بهتری با نسخه‌های پیشین دارد که صرفاً از --cdrom یا --pxe استفاده کنید، اما این گزینه در صورت نیاز کنترل دقیق‌تری را روی فرایند نصب فراهم می‌کند.

به virt-install اعلام می‌کند که در عمل هیچ نصبی در حال انجام نیست و شما فقط می‌خواهید ماشین مجازی را ایجاد کنید. گزینه --import صرفاً یک نام مستعار برای این مورد است، همانند مشخص کردن --boot بدون هیچ گزینه نصب دیگری. گزینه منسوخ‌شده --live نیز معادل '--cdrom $ISO --install no_install=yes' است.

نصب مجدد یک VM موجود. DOMAIN می‌تواند نام، UUID یا شماره ID یک VM باشد. virt-install پرونده XML دامنه را از libvirt دریافت کرده، تغییرات پیکربندی نصبِ مشخص‌شده را اعمال می‌کند، VM را برای فرایند نصب بوت کرده و سپس تقریباً به همان XML اولیه بازمی‌گرداند.

تنها گزینه‌های مرتبط با نصب پردازش می‌شوند؛ تمام گزینه‌های دیگرِ پیکربندی VM مانند --name، --disk و غیره به‌طور کامل نادیده گرفته می‌شوند.

اگر --reinstall به همراه --cdrom استفاده شود، در صورت در دسترس بودن یک CDROM متصل به VM، از همان استفاده خواهد شد؛ در غیر این صورت یک دستگاه CDROM دائمی اضافه می‌شود.

نحو: --unattended [OPTIONS]

انجام یک نصب بدون نظارت (unattended) با استفاده از پشتیبانی اسکریپت نصب در libosinfo. این قابلیت در اصل پایگاه‌داده‌ای از اسکریپت‌های نصب خودکار برای توزیع‌های گوناگون است: Red Hat kickstarts، اسکریپت‌نویسی نصاب Debian، نصب‌های بدون نظارت Windows، و احتمالاً موارد دیگر. ساده‌ترین روش فراخوانی، ترکیب آن با --install است، مانند:

--install fedora29 --unattended

یک نصب Windows بدین صورت خواهد بود:

--cdrom /path/to/my/windows.iso --unattended

زیرگزینه‌ها عبارت‌اند از:

انتخاب اینکه از کدام نمایه (profile) بدون نظارت libosinfo استفاده شود. بیشتر توزیع‌ها دارای نمایه‌های 'desktop' و 'jeos' هستند. در صورت عدم تعیین، virt-install به‌طور پیش‌فرض از 'desktop' استفاده خواهد کرد.
فایلی که برای تنظیم گذرواژه admin/root سیستم‌عامل VM استفاده می‌شود. این گزینه می‌تواند به‌صورت "admin-password-file=/path/to/password-file" یا به‌صورت "admin-password-file=/dev/fd/n" استفاده شود که n توصیف‌گر فایل (file descriptor) پرونده گذرواژه است. توجه داشته باشید که فقط خط اول فایل، شامل هرگونه نویسه فاصله (whitespace) و بدون احتساب خط جدید (new-line) در نظر گرفته خواهد شد.
نام کاربری برای ورود به VM. در صورت عدم تعیین، virt-install به‌طور پیش‌فرض از نام کاربری فعلی میزبان شما استفاده می‌کند. توجه داشته باشید که هنگام اجرای virt-install به‌عنوان "root"، تعیین این گزینه الزامی است.
فایلی که برای تنظیم گذرواژه کاربر VM استفاده می‌شود. این گزینه می‌تواند به‌صورت "user-password-file=/path/to/password-file" یا به‌صورت "user-password-file=/dev/fd/n" استفاده شود که n توصیف‌گر فایل پرونده گذرواژه است. نام کاربری، یا همان user-login مشخص‌شده است یا نام کاربری فعلی میزبان شما. توجه داشته باشید که فقط خط اول فایل، شامل هرگونه نویسه فاصله و بدون احتساب خط جدید در نظر گرفته خواهد شد.
تنظیم یک کلید محصول (product key) ویندوز

ارسال متادیتای cloud-init به VM. یک فایل ISO از نوع NoCloud مربوط به cloud-init تولید شده و به‌عنوان یک دستگاه CDROM به VM متصل می‌شود. این دستگاه تنها برای بوت اول متصل می‌گردد. این گزینه به‌ویژه برای ایمیج‌های ابری توزیع‌ها که به‌طور پیش‌فرض حساب‌های کاربری ورود آن‌ها قفل است مفید است؛ --cloud-init راهکاری برای مقداردهی اولیه این حساب‌های کاربری مانند تنظیم گذرواژه root فراهم می‌کند.

ساده‌ترین حالت فراخوانی صرفاً استفاده ساده از --cloud-init بدون هیچ زیرگزینه‌ای است؛ این حالت معادل --cloud-init root-password-generate=on,disable=on می‌باشد. برای آگاهی از نحوه کار، توضیحات آن زیرگزینه‌ها را ببینید.

از --cloud-init=? برای دیدن فهرست تمام زیرگزینه‌های در دسترس استفاده کنید.

زیرگزینه‌ها عبارت‌اند از:

تولید یک گذرواژه root جدید برای VM. در صورت استفاده، virt-install گذرواژه تولیدشده را در کنسول چاپ کرده و ۱۰ ثانیه مکث می‌کند تا به کاربر فرصت مشاهده و رونوشت برداشتن از آن را بدهد.
غیرفعال‌سازی cloud-init در VM برای بوت‌های بعدی. بدون این گزینه، ممکن است cloud-init در هر بار بوت، احراز هویت را بازنشانی کند.
فایلی که برای تنظیم گذرواژه root در VM استفاده می‌شود. این گزینه می‌تواند به‌صورت "root-password-file=/path/to/password-file" یا به‌صورت "root-password-file=/dev/fd/n" استفاده شود که n توصیف‌گر فایل پرونده گذرواژه است. توجه داشته باشید که فقط خط اول فایل، شامل هرگونه نویسه فاصله و بدون احتساب خط جدید در نظر گرفته خواهد شد.
مشخص کردن یک فایل meta-data مربوط به cloud-init برای افزودن مستقیم به iso. سایر گزینه‌های پیکربندی meta-data در خط فرمان --cloud-init نادیده گرفته می‌شوند. می‌تواند مسیر یک فایل محلی یا URL باشد.
مشخص کردن یک فایل user-data مربوط به cloud-init برای افزودن مستقیم به iso. سایر گزینه‌های پیکربندی user-data در خط فرمان --cloud-init نادیده گرفته می‌شوند. می‌تواند مسیر یک فایل محلی یا URL باشد.
مشخص کردن یک کلید عمومی برای تزریق به مهمان، جهت فراهم کردن دسترسی ssh به حساب کاربری root. مثال: root-ssh-key=/home/user/.ssh/id_rsa.pub
مشخص کردن یک کلید عمومی برای تزریق به مهمان، جهت فراهم کردن دسترسی ssh به حساب کاربری پیش‌فرض cloud-init. نام این حساب در هر ایمیج ابری توزیع‌ها متفاوت است. برخی از موارد متداول در اینجا مستند شده‌اند: https://docs.openstack.org/image-guide/obtain-images.html
مشخص کردن یک فایل network-config مربوط به cloud-init برای افزودن مستقیم به iso. می‌تواند مسیر یک فایل محلی یا URL باشد.

نحو: --boot BOOTOPTS

به‌صورت اختیاری پیکربندی راه‌اندازی ماشین مجازی پس از نصب را مشخص می‌کند. این گزینه امکان تعیین ترتیب دستگاه‌های راه‌اندازی، راه‌اندازی دائمی از kernel/initrd همراه با آرگومان‌های اختیاری هسته، و فعال‌سازی منوی راه‌اندازی BIOS را فراهم می‌کند (نیازمند libvirt نسخهٔ 0.8.3 یا بالاتر است).

گزینهٔ --boot می‌تواند علاوه بر سایر گزینه‌های نصب (مانند --location، --cdrom و غیره) یا به‌تنهایی مشخص شود. در حالت اخیر، رفتار آن مشابه گزینهٔ نصب --import است: هیچ مرحلهٔ «نصبی» وجود ندارد، مهمان فقط همان‌طور که مشخص شده ایجاد و راه‌اندازی می‌شود.

چند مثال:

اولویت دستگاه‌های راه‌اندازی را به ترتیب نخست cdrom، نخستین فلاپی، نخستین دیسک سخت و راه‌اندازی شبکهٔ PXE تعیین می‌کند. نکته: مهمان‌های s390x تنها از یک دستگاه راه‌اندازی پشتیبانی می‌کنند، بنابراین همه‌چیز به جز نوع دستگاه اول نادیده گرفته خواهد شد.
کاری می‌کند که مهمان به‌طور دائم از یک جفت kernel/initrd محلی، همراه با گزینه‌های هستهٔ مشخص‌شده راه‌اندازی شود.
کاری می‌کند که مهمان به‌طور دائم از یک جفت kernel/initrd محلی همراه با یک باینری درخت دستگاه (DTB) خارجی راه‌اندازی شود. DTB می‌تواند برای برخی پیکربندی‌های غیر x86 مانند ARM یا PPC لازم باشد.
استفاده از BIOSPATH به‌عنوان BIOS ماشین مجازی.
فعال‌سازی منوی راه‌اندازی bios، و فعال‌سازی ارسال خروجی متنی bios از طریق کنسول سریال.
مسیر به باینری‌ای که مهمان کانتینری آن را به‌عنوان init اجرا خواهد کرد. اگر یک --filesystem ریشه مشخص شده باشد، virt-install به‌طور پیش‌فرض از /sbin/init استفاده خواهد کرد، در غیر این صورت مقدار پیش‌فرض /bin/sh خواهد بود.
ماشین مجازی را برای راه‌اندازی از UEFI پیکربندی می‌کند. برای این‌که virt-install پارامترهای صحیح UEFI را تشخیص دهد، libvirt باید باینری‌های شناخته‌شدهٔ UEFI را از طریق XML مربوط به domcapabilities اعلان کند، بنابراین این قابلیت احتمالاً تنها در صورت استفاده از بسته‌های توزیع به‌درستی پیکربندی‌شده کار خواهد کرد. این روش، راه‌اندازی توصیه‌شدهٔ UEFI است.
در صورتی که ماشین مجازی معمولاً به‌طور پیش‌فرض از UEFI استفاده می‌کند، از آن استفاده نشود.
ماشین مجازی را برای راه‌اندازی از UEFI با فعال بودن پشتیبانی از Secure Boot پیکربندی می‌کند. تنها سیستم‌عامل‌های امضاشده قادر به راه‌اندازی با این پیکربندی خواهند بود.
ماشین مجازی را برای راه‌اندازی از UEFI با غیرفعال بودن پشتیبانی از Secure Boot پیکربندی می‌کند. این پیکربندی امکان اجرای هر دو نوع سیستم‌عامل‌های امضاشده و امضانشده را فراهم می‌سازد.

اطلاعات بیشتر دربارهٔ قابلیت‌های سفت‌افزاری secure-boot و enrolled-keys و نحوهٔ استفاده از آن‌ها برای اثرگذاری بر انتخاب سفت‌افزار در نشانی زیر در دسترس است: https://libvirt.org/kbase/secureboot.html

مشخص می‌کند که ماشین مجازی از باینری سفارشی OVMF به‌عنوان سفت‌افزار راه‌اندازی، نگاشته‌شده به‌صورت تراشهٔ فلش مجازی، استفاده کند. علاوه بر این، از libvirt درخواست می‌کند تا varstore اختصاصی UEFI ماشین مجازی را از الگوی varstore سفارشی "/.../OVMF_VARS.fd" ایجاد کند. این راه‌اندازی توصیه نمی‌شود، و تنها باید زمانی استفاده شود که --boot uefi از باینری‌های UEFI شما اطلاعی نداشته باشد.

برای مشاهدهٔ فهرستی از تمام زیرگزینه‌های موجود از --boot=? استفاده کنید. جزئیات کامل در: https://libvirt.org/formatdomain.html#operating-system-booting

نحو: --idmap OPTIONS

اگر در پیکربندی مهمان یک نگاشت UID یا GID تعریف شده باشد، فضای نام 'user' برای اعمال آن‌ها فعال خواهد شد. یک نگاشت مناسب پیکربندی‌شده برای UID/GID، پیش‌نیازی برای ایمن‌سازی کانتینرها در صورت نبود محدودسازی sVirt است.

می‌توان --idmap را برای فعال‌سازی فضای نام کاربر برای کانتینرهای LXC مشخص کرد. مثال:

--idmap uid.start=0,uid.target=1000,uid.count=10,gid.start=0,gid.target=1000,gid.count=10

برای دیدن فهرستی از تمام زیرگزینه‌های موجود از --idmap=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#container-boot.SH "گزینه‌های سیستم‌عامل مهمان (GUEST OS OPTIONS)"

نحو: --osinfo [OSNAME|OPT1=VAL1,...]

پیکربندی مهمان را برای یک سیستم‌عامل خاص بهینه‌سازی می‌کند. در بیشتر موارد، یک سیستم‌عامل باید مشخص شده یا از طریق رسانهٔ نصب تشخیص داده شود تا ویژگی‌های حیاتی برای کارایی مانند virtio فعال شوند.

ساده‌ترین شیوهٔ استفاده --osinfo OSNAME یا --os-variant OSNAME است، برای نمونه --osinfo fedora32. زیرگزینه‌های پشتیبانی‌شده عبارتند از:

نام یا شناسهٔ کوتاه (short-id) سیستم‌عامل از libosinfo. مثال‌ها: fedora32، win10
شناسهٔ کامل libosinfo به سبک URL. برای نمونه، name=win10 همانند id=http://microsoft.com/win/10 است.
اینکه آیا virt-install باید برای تشخیص سیستم‌عامل از رسانهٔ نصب مشخص‌شده تلاش کند یا خیر. در حال حاضر تشخیص فقط برای نصب‌های از طریق URL و CDROM انجام می‌شود و ۱۰۰٪ قابل‌اطمینان نیست.
اگر on باشد، در صورتی که هیچ مقداری برای سیستم‌عامل تنظیم یا تشخیص داده نشود، virt-install با خطا متوقف می‌شود.

چند مثال کاربردی:

این به virt-install می‌گوید که برای تشخیص از رسانهٔ نصب تلاش کند، اما اگر موفق نشد صراحتاً با شکست متوقف شود. این کار تضمین می‌کند که فراخوانی‌های virt-install شما به یک پیکربندی با کارایی ضعیف عقب‌نشینی نکنند.
تلاش برای تشخیص سیستم‌عامل از رسانهٔ نصب، اما در صورت عدم موفقیت، استفاده از OSNAME به عنوان جایگزین پشتیبان (fallback).

اگر هر مقدار دستی برای --osinfo مشخص شود، حالت پیش‌فرض این است که تمام تنظیمات دیگر خاموش یا تعیین‌نشده باشند.

به‌طور پیش‌فرض، virt-install همیشه --osinfo detect=on را برای رسانه‌های نصب مناسب امتحان می‌کند. اگر هیچ سیستم‌عاملی تشخیص داده نشود، در اغلب موارد متداول با خطا متوقف خواهد شد. این خطای مهلک در سال ۲۰۲۲ افزوده شد. می‌توانید با استفاده از مثال جایگزین بالا یا با غیرفعال کردن گزینهٔ require این مشکل را دور بزنید. اگر فقط می‌خواهید هرچه سریع‌تر به رفتار قدیمی غیرمهلک بازگردید، متغیر محیطی VIRTINSTALL_OSINFO_DISABLE_REQUIRE=1 را تنظیم کنید.

برای دریافت فهرست گونه‌های پذیرفته‌شدهٔ سیستم‌عامل، از دستور virt-install --osinfo list استفاده کنید. برای خروجی‌های بیشتر osinfo-query os را ببینید.

نکته: --osinfo و --os-variant نام‌های مستعار یکدیگر هستند. --osinfo شیوهٔ نام‌گذاری ترجیحی به سبک جدید است.

نحو: --disk OPTIONS

رسانه‌ای را برای استفاده به عنوان فضای ذخیره‌سازی مهمان، همراه با گزینه‌های گوناگون مشخص می‌کند. قالب کلی یک رشتهٔ دیسک به این صورت است:

--disk opt1=val1,opt2=val2,...

ساده‌ترین فراخوانی برای ایجاد یک تصویر دیسک جدید ۱۰ گیگابایتی و دستگاه دیسک مرتبط:

--disk size=10

دستور virt-install یک نام مسیر ایجاد می‌کند و آن را در مکان پیش‌فرض تصاویر هایپروایزر قرار می‌دهد. برای مشخص کردن رسانه، دستور می‌تواند به این صورت باشد:

--disk /some/storage/path[,opt1=val1]...

یا صراحتاً یکی از آرگومان‌های زیر را مشخص کند:

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

مشخص کردن یک مسیر ناموجود به معنی تلاش برای ایجاد فضای ذخیره‌سازی جدید است و نیاز به تعیین مقدار 'size' خواهد داشت. حتی برای میزبان‌های دوردست، virt-install تلاش می‌کند از APIهای ذخیره‌سازی libvirt برای ایجاد خودکار مسیر داده‌شده استفاده کند.

اگر هایپروایزر پشتیبانی کند، path می‌تواند یک URL شبکه نیز باشد، مانند https://example.com/some-disk.img . برای مسیرهای شبکه، هایپروایزر مستقیماً به فضای ذخیره‌سازی دسترسی پیدا می‌کند و هیچ چیزی به صورت محلی بارگیری نمی‌شود.

نام یک pool ذخیره‌سازی موجود در libvirt برای ایجاد فضای ذخیره‌سازی جدید روی آن. نیازمند مشخص کردن مقدار 'size' است.
یک حجم (volume) ذخیره‌سازی موجود در libvirt برای استفاده. این مورد به صورت 'poolname/volname' مشخص می‌شود.

گزینه‌هایی که هنگام ایجاد فضای ذخیره‌سازی اعمال می‌شوند:

اندازه (به GiB) برای استفاده در صورت ایجاد فضای ذخیره‌سازی جدید
اینکه آیا از تخصیص کامل فضای ذخیره‌سازی جدید صرف‌نظر شود یا خیر. مقدار آن 'yes' یا 'no' است. پیش‌فرض 'yes' است (تخصیص کامل انجام ندهد)، مگر اینکه توسط نوع فضای ذخیره‌سازی زیربنایی پشتیبانی نشود.

زمان اولیه‌ای که صرف تخصیص کامل دیسک مجازی مهمان می‌شود (sparse=no)، معمولاً با زمان سریع‌تر نصب در داخل مهمان جبران خواهد شد. بنابراین استفاده از این گزینه برای تضمین کارایی بالا به طور مداوم و جلوگیری از خطاهای ورودی/خروجی (I/O) در مهمان در صورت پر شدن سامانه پرونده میزبان توصیه می‌شود.

قالب تصویر دیسک. برای حجم‌های فایلی، این مقدار می‌تواند 'raw'، 'qcow2'، 'vmdk' و غیره باشد. انواع قالب‌های ممکن را در https://libvirt.org/storage.html ببینید. این مقدار اغلب به مقدار driver_type نیز نگاشت می‌شود.

اگر هنگام ایجاد تصاویر فایلی مشخص نشود، پیش‌فرض آن 'qcow2' خواهد بود.

در صورت ایجاد فضای ذخیره‌سازی، این قالبِ تصویر جدید خواهد بود. اگر از یک تصویر موجود استفاده شود، این گزینه بر تشخیص خودکار قالب توسط libvirt اولویت می‌یابد.

مسیر دیسکی که به عنوان backing store برای تصویر تازه ایجادشده استفاده می‌شود.
قالب تصویر دیسک مربوط به backing_store

چند مثال از زیرگزینه‌های پیکربندی دستگاه:

نوع دستگاه دیسک. مقادیر نمونه عبارتند از 'cdrom'، 'disk'، 'lun' یا 'floppy'. پیش‌فرض 'disk' است.
نصب مهمان با چند دیسک برای بوت شدن صحیح پس از نصب به این پارامتر نیاز خواهد داشت. پارامتر boot.order مقادیر 1,2,3,... را می‌پذیرد. دستگاه‌های با مقدار کمتر اولویت بالاتری دارند. این گزینه برای سایر انواع دستگاه‌های با قابلیت بوت نیز اعمال می‌شود.
نوع گذرگاه (bus) دیسک. مقادیر نمونه عبارتند از 'ide'، 'sata'، 'scsi'، 'usb'، 'virtio' یا 'xen'. پیش‌فرض به هایپروایزر بستگی دارد، زیرا همهٔ هایپروایزرها از همهٔ انواع گذرگاه پشتیبانی نمی‌کنند.
تنظیم درایو به عنوان فقط‌خواندنی (مقادیر 'on' یا 'off' را می‌پذیرد)
تنظیم درایو به عنوان اشتراک‌گذاری‌پذیر (مقادیر 'on' یا 'off' را می‌پذیرد)
حالت حافظهٔ موقت (cache) که باید استفاده شود. pagecache میزبان حافظهٔ موقت را تأمین می‌کند. مقدار cache می‌تواند 'none'، 'writethrough'، 'directsync'، 'unsafe' یا 'writeback' باشد. حالت 'writethrough' کَش‌کردن خواندن را فراهم می‌کند. 'writeback' کَش‌کردن خواندن و نوشتن را فراهم می‌سازد. 'directsync' حافظهٔ pagecache میزبان را دور می‌زند. 'unsafe' ممکن است همهٔ محتوا را کَش کرده و درخواست‌های flush مهمان را نادیده بگیرد..TP driver.discard مشخص می‌کند که آیا درخواست‌های discard (شناخته‌شده با عنوان "trim" یا "unmap") نادیده گرفته شوند یا به سیستم‌فایل ارسال گردند. مقدار می‌تواند "unmap" (اجازه به ارسال درخواست discard) یا "ignore" (نادیده گرفتن درخواست discard) باشد. از نسخهٔ 1.0.6 به بعد (تنها برای QEMU و KVM).
نام درایوری که هایپروایزر باید هنگام دسترسی به فضای ذخیره‌سازی مشخص‌شده استفاده کند. معمولاً نیازی به تنظیم توسط کاربر ندارد.
قالب/نوع درایوری که هایپروایزر باید هنگام دسترسی به فضای ذخیره‌سازی مشخص‌شده استفاده کند. معمولاً نیازی به تنظیم توسط کاربر ندارد.
بک‌اند ورودی/خروجی (IO) دیسک. می‌تواند یکی از مقادیر "threads"، "native" یا "io_uring" باشد.
نحوهٔ واکنش سیستم‌عامل مهمان هنگام مواجهه با خطای نوشتن. می‌تواند یکی از مقادیر "stop"، "ignore" یا "enospace" باشد.
شماره سریال دستگاه دیسک شبیه‌سازی‌شده. این مقدار در سیستم‌های مهمان لینوکسی برای تنظیم پیوندهای نمادین /dev/disk/by-id استفاده می‌شود. یک نمونه شماره سریال می‌تواند این باشد: WD-WMAP9A966149
تعیین می‌کند که در صورت عدم دسترسی به فایل منبع، چه رفتاری با دیسک صورت گیرد.
رفتار پیش‌فرض دیسک را در حین ایجاد اسنپ‌شات‌های دیسک تعیین می‌کند.

برای مشاهدهٔ برخی کاربردها، بخش مثال‌ها را ببینید. این گزینه جایگزین گزینه‌های منسوخ‌شدهٔ -f/--file، -s/--file-size، --nonsparse و --nodisks است.

برای دیدن فهرستی از تمامی زیرگزینه‌های در دسترس، از --disk=? استفاده کنید. جزئیات کامل در: https://libvirt.org/formatdomain.html#hard-drives-floppy-disks-cdroms

دایرکتوری مشخصی از سیستم میزبان را برای اشتراک‌گذاری در سیستم مهمان معین می‌کند. ساده‌ترین حالت فراخوانی عبارت است از:

--filesystem /source/on/host,/target/point/in/guest

این حالت برای نسخه‌های اخیر QEMU و سیستم‌عامل‌های مهمان لینوکسی یا کانتینرهای LXC کار خواهد کرد. در QEMU، نقطهٔ هدف صرفاً یک راهنمای اتصال (mount hint) در sysfs است و به‌صورت خودکار متصل (mount) نخواهد شد.

چند نمونه از زیرگزینه‌ها:

نوع دایرکتوری منبع. مقادیر معتبر عبارتند از 'mount' (پیش‌فرض) یا 'template' برای الگوهای OpenVZ.
حالت دسترسی به دایرکتوری منبع از سیستم‌عامل مهمان. تنها همراه با QEMU و type=mount استفاده می‌شود. حالت‌های معتبر عبارتند از 'mapped' (پیش‌فرض)، 'passthrough' یا 'squash'. برای اطلاعات بیشتر، مستندات libvirt domain XML را ببینید.
دایرکتوری روی میزبان جهت اشتراک‌گذاری.
محل اتصال (mount) برای استفاده در مهمان.

برای مشاهدهٔ فهرستی از تمامی زیرگزینه‌های در دسترس از --filesystem=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#filesystems

ساختار: -w, --network OPTIONS

اتصال سیستم مهمان به شبکهٔ میزبان. نمونه‌هایی برای مشخص کردن نوع شبکه:

اتصال به یک دستگاه پل (bridge) در میزبان با نام BRIDGE. اگر میزبان پیکربندی شبکهٔ ایستا دارد و مهمان به اتصال کامل ورودی و خروجی به/از شبکهٔ محلی (LAN) نیاز دارد، از این گزینه استفاده کنید. همچنین اگر قرار است مهاجرت زنده (live migration) برای این مهمان به کار رود، از این گزینه استفاده کنید.
اتصال به یک شبکهٔ مجازی در میزبان به نام NAME. شبکه‌های مجازی را می‌توان با استفاده از ابزار خط فرمان virsh فهرست، ایجاد یا حذف کرد. در یک نصب پیش‌فرض و تغییرنیافته از libvirt، معمولاً یک شبکهٔ مجازی با نام default وجود دارد. اگر میزبان دارای شبکهٔ پویا است (مانند NetworkManager) یا از شبکهٔ بی‌سیم استفاده می‌کند، از یک شبکهٔ مجازی استفاده نمایید. ترافیک مهمان از طریق هر اتصالی که فعال باشد به شبکهٔ محلی (LAN) اصطلاحاً NAT خواهد شد.
اتصال مستقیم به رابط کاربری میزبان IFACE با استفاده از macvtap.
اتصال به LAN با استفاده از SLIRP. تنها زمانی از این گزینه استفاده کنید که مهمان QEMU را به‌عنوان یک کاربر بدون امتیاز اجرا می‌کنید. این حالت شکل بسیار محدودی از NAT را فراهم می‌کند.
به virt-install اعلام می‌کند که هیچ رابط شبکهٔ پیش‌فرضی اضافه نکند.

اگر --network نادیده گرفته شود، یک کارت شبکه (NIC) واحد در مهمان ایجاد خواهد شد. اگر دستگاه bridge در میزبان همراه با یک رابط فیزیکی متصل وجود داشته باشد، از آن برای برقراری ارتباط استفاده می‌شود. در غیر این صورت، از شبکهٔ مجازی موسوم به default استفاده خواهد شد. این گزینه را می‌توان چندین بار برای پیکربندی بیش از یک کارت شبکه مشخص کرد.

چند نمونه از زیرگزینه‌ها:

مدل دستگاه شبکه آن‌طور که توسط سیستم مهمان دیده می‌شود. مقدار می‌تواند هر مدل کارت شبکه‌ای باشد که توسط هایپروایزر پشتیبانی می‌شود، مانند: 'e1000'، 'rtl8139'، 'virtio' و...
آدرس MAC ثابت برای مهمان؛ در صورتی که این پارامتر نادیده گرفته شود یا مقدار RANDOM تعیین گردد، یک آدرس مناسب به‌صورت تصادفی تولید خواهد شد. در ماشین‌های مجازی Xen الزامی است که ۳ جفت نخست آدرس MAC توالی '00:16:3e' باشد، در حالی که در ماشین‌های مجازی QEMU یا KVM باید '52:54:00' باشد.
کنترل فایروال و پالایش شبکه در libvirt. مقدار می‌تواند هر nwfilter تعریف‌شده توسط زیرفرمان‌های 'nwfilter' در virsh باشد. فیلترهای موجود را می‌توان با اجرای دستور 'virsh nwfilter-list' فهرست کرد، مانند: 'clean-traffic'، 'no-mac-spoofing' و...
گزینه‌های virtualport.*
پیکربندی نمایهٔ درگاه مجازی دستگاه (virtual port profile). این گزینه برای پیکربندی‌های 802.Qbg، 802.Qbh، midonet و openvswitch به کار می‌رود.

برای مشاهدهٔ فهرستی از تمامی زیرگزینه‌های در دسترس از --network=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#network-interfaces

این گزینه جایگزین گزینه‌های منسوخ‌شدهٔ -m/--mac، -b/--bridge و --nonetworks است.

دستگاه nodedev ارجاع‌شده را به‌عنوان منبع برای type=hostdev استفاده می‌کند، همان‌طور که در اینجا شرح داده شده است: https://libvirt.org/formatdomain.html#pci-passthrough

برای آگاهی از ساختار HOSTDEV، مستندات --hostdev را ببینید.

گزینه‌ای ساده‌تر برای مشخص کردن فوروارد پورت (port forwarding) در شبکه‌های --network passt. ساختار آن تقریباً با ساختار podman run -p یکسان است. HOSTPORT می‌تواند به‌صورت یک محدوده مانند 7000-8000 نمایش داده شود، اما GUESTPORT فقط می‌تواند یک پورت منفرد باشد. اگر GUESTPORT ارائه نشود، پورت‌های میزبان و مهمان یکسان فرض می‌شوند.

مثال‌ها:

--network passt,portForward=8080:80 \
--network passt,portForward0=7000-8000/udp,portForward1=127.0.0.1:2222:22 \

اگر هیچ گزینهٔ گرافیکی مشخص نشده باشد، در صورتی که متغیر محیطی DISPLAY تنظیم شده باشد، virt-install تلاش می‌کند گرافیک مناسب را انتخاب کند، در غیر این صورت از '--graphics none' استفاده می‌شود.

نحو: --graphics TYPE,opt1=arg1,opt2=arg2,...

پیکربندی نمایش گرافیکی را مشخص می‌کند. این گزینه هیچ سخت‌افزار مجازی‌ای را پیکربندی نمی‌کند، بلکه تنها نحوهٔ دسترسی به نمایشگر گرافیکی مهمان را معین می‌سازد. به طور معمول کاربر نیازی به مشخص کردن این گزینه ندارد؛ virt-install تلاش می‌کند تا یک پیش‌فرض کارآمد را انتخاب کرده و یک اتصال مناسب برقرار کند.

قالب کلی یک رشتهٔ گرافیکی به صورت زیر است:

--graphics TYPE,opt1=arg1,opt2=arg2,...

برای نمونه:

--graphics vnc,password=foobar

برخی از مقادیر پشتیبانی‌شده برای TYPE:

یک کنسول مجازی در مهمان راه‌اندازی کرده و آن را به عنوان یک کارساز VNC در میزبان صادر می‌کند. مگر اینکه پارامتر port نیز ارائه شده باشد، کارساز VNC روی نخستین شمارهٔ درگاه آزاد از 5900 به بالا اجرا خواهد شد. نمایشگر واقعی VNC تخصیص‌یافته را می‌توان با استفاده از دستور vncdisplay در virsh به دست آورد (یا می‌توان از virt-viewer(1) استفاده کرد که این جزئیات را برای استفاده مدیریت می‌کند).
کنسول مهمان را با استفاده از پروتکل Spice صادر می‌کند. پروتکل Spice قابلیت‌های پیشرفته‌ای مانند جریان دادهٔ صوتی و دستگاه‌های USB و همچنین عملکرد گرافیکی بهبودیافته را فراهم می‌کند.

استفاده از نوع گرافیکی spice به گونه‌ای عمل می‌کند که گویی این آرگومان‌ها داده شده‌اند:

--video qxl --channel spicevmc
هیچ کنسول گرافیکی برای مهمان تخصیص داده نخواهد شد. مهمان‌ها به احتمال زیاد نیاز خواهند داشت که یک کنسول متنی روی نخستین درگاه سریال پیکربندی داشته باشند (این کار می‌تواند از طریق گزینهٔ --extra-args انجام شود). از دستور 'virsh console NAME' می‌توان برای اتصال به دستگاه سریال استفاده کرد.

برخی از زیرگزینه‌های پشتیبانی‌شده:

درخواست یک شماره درگاه دائمی و با تخصیص ایستا برای کنسول مهمان. این زیرگزینه توسط 'vnc' و 'spice' استفاده می‌شود.
مشخص کردن tlsPort مربوط به spice.
درخواست یک درگاه WebSocket مربوط به VNC برای کنسول مهمان.

اگر -1 مشخص شود، درگاه WebSocket به صورت خودکار تخصیص می‌یابد.

این زیرگزینه توسط 'vnc' و 'spice' استفاده می‌شود.

نشانی برای گوش فرا دادن به اتصالات VNC/Spice. مقدار پیش‌فرض معمولاً 127.0.0.1 (تنها localhost) است، اما برخی از ناظران مجازی‌سازی اجازه می‌دهند این مورد به صورت سراسری تغییر کند (برای نمونه، مقدار پیش‌فرض راه‌انداز qemu در /etc/libvirt/qemu.conf قابل تغییر است). برای مجاز کردن دسترسی از ماشین‌های دیگر، از 0.0.0.0 استفاده کنید.

از 'none' استفاده کنید تا مشخص شود کارساز نمایش نباید روی هیچ درگاهی گوش فرا دهد. کارساز نمایش تنها به صورت محلی از طریق سوکت یونیکس libvirt در دسترس خواهد بود (برای نمونه، virt-viewer با --attach).

از 'socket' استفاده کنید تا ماشین مجازی روی یک مسیر سوکت یونیکس ایجادشده توسط libvirt در سیستم‌فایل میزبان گوش فرا دهد.

این زیرگزینه توسط 'vnc' و 'spice' استفاده می‌شود.

درخواست گذرواژه برای کنسول، که در زمان اتصال الزامی است. مراقب باشید، این اطلاعات ممکن است در فایل‌های گزارش virt-install ثبت شوند، بنابراین از یک گذرواژهٔ مهم استفاده نکنید. این زیرگزینه توسط 'vnc' و 'spice' استفاده می‌شود.
مشخص می‌کند که آیا از رندرینگ شتاب‌یافتهٔ OpenGL استفاده شود یا خیر. مقدار آن 'yes' یا 'no' است. این زیرگزینه توسط 'spice' استفاده می‌شود.
مسیر گره رندر DRM مورد استفاده. این زیرگزینه زمانی به کار می‌رود که 'gl' فعال باشد.

برای دیدن فهرستی از تمامی زیرگزینه‌های در دسترس، از --graphics=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#graphical-framebuffers

این گزینه گزینه‌های زیر را منسوخ می‌کند: --vnc, --vncport, --vnclisten, -k/--keymap, --sdl, --nographics.SS --autoconsole

نحو: --autoconsole OPTIONS

پیکربندی کنسول تعاملی‌ای که virt-install برای ماشین مجازی اجرا می‌کند. این گزینه اجباری نیست؛ رفتار پیش‌فرض تطبیقی بوده و به نحوه پیکربندی ماشین مجازی بستگی دارد. اما می‌توانید از این گزینه برای تغییر دادن انتخاب پیش‌فرض استفاده کنید.

استفاده از virt-viewer(1) گرافیکی به‌عنوان کنسول تعاملی
استفاده از حالت متنی virsh console به‌عنوان کنسول تعاملی.
این گزینه معادل --noautoconsole است
عدم تلاش خودکار برای اتصال به کنسول مهمان. معادل --autoconsole none است

توجه داشته باشید در صورت مشخص کردن این گزینه، virt-install به‌سرعت خارج می‌شود. اگر دستور شما خواستار نصب چندمرحله‌ای باشد، مانند --cdrom یا --location، پس از تکمیل فاز نصب، ماشین مجازی خاموش خواهد شد، صرف‌نظر از اینکه بازراه‌اندازی در ماشین مجازی درخواست شده باشد یا خیر. اگر می‌خواهید ماشین مجازی بازراه‌اندازی شود، virt-install باید در حال اجرا باقی بماند. می‌توانید از '--wait' برای زنده نگه داشتن virt-install حتی با مشخص کردن --noautoconsole استفاده کنید.

گزینه‌هایی برای لغو و جایگزینی انتخاب‌های پیش‌فرض نوع مجازی‌سازی.

درخواست استفاده از مجازی‌سازی کامل (full virtualization)، در صورتی که هر دو نوع شبه‌مجازی‌سازی (para) و مجازی‌سازی کامل روی میزبان موجود باشند. این پارامتر ممکن است هنگام اتصال به یک هایپروایزر Xen بر روی ماشینی که فاقد پشتیبانی از مجازی‌سازی سخت‌افزاری است در دسترس نباشد. در صورت اتصال به یک هایپروایزر مبتنی بر QEMU، این پارامتر به‌طور ضمنی اعمال می‌شود.

این مهمان باید یک مهمان شبه‌مجازی‌شده (paravirtualized) باشد. اگر میزبان از هر دو نوع شبه‌مجازی‌سازی و مجازی‌سازی کامل پشتیبانی کند و نه این پارامتر و نه --hvm مشخص نشده باشند، این حالت فرض خواهد شد.

این مهمان باید مهمانی از نوع کانتینر باشد. این گزینه تنها در صورتی لازم است که هایپروایزر از انواع دیگر مهمان نیز پشتیبانی کند (به عنوان مثال، این گزینه رفتار پیش‌فرض برای LXC و OpenVZ است، اما برای جامعیت ارائه شده است).

هایپروایزری که نصب بر روی آن انجام می‌شود. گزینه‌های نمونه عبارتند از kvm، qemu، یا xen. گزینه‌های موجود از طریق 'virsh capabilities' در تگ‌های <domain> فهرست شده‌اند.

این گزینه جایگزین و منسوخ‌کننده گزینه --accelerate است که اکنون رفتار پیش‌فرض محسوب می‌شود. برای نصب یک مهمان QEMU خام (ساده)، از '--virt-type qemu' استفاده کنید.

تمام دستگاه‌ها دارای مجموعه‌ای از گزینه‌های address.* برای پیکربندی مشخصات آدرس دستگاه بر روی کنترل‌کننده والد یا گذرگاه (bus) خود هستند. برای جزئیات به https://libvirt.org/formatdomain.html#device-addresses مراجعه کنید.

نحو: --controller OPTIONS

اتصال یک دستگاه کنترل‌کننده به مهمان.

چند نمونه از نحوه فراخوانی:

افزودن پیکربندی کامل یک کنترل‌کننده USB2
افزودن یک کنترل‌کننده USB3
غیرفعال کردن کامل USB
افزودن یک کنترل‌کننده VirtIO SCSI
کنترل تعداد دستگاه‌های کنترل‌کننده پیش‌فرض pcie-root-port که به‌طور پیش‌فرض به ماشین مجازی جدید افزوده می‌شوند، در صورتی که ماشین مجازی به‌طور پیش‌فرض از PCIe استفاده کند.

از --controller=? برای مشاهده فهرستی از تمام زیرگزینه‌های موجود استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#controllers.SS --input

ساختار: --input OPTIONS

یک دستگاه ورودی را به سیستم‌مهمان متصل می‌کند. نمونه انواع دستگاه‌های ورودی mouse، tablet یا keyboard هستند.

از --input=? برای دیدن فهرست همه زیرگزینه‌های موجود استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#input-devices

ساختار: --hostdev, --host-device OPTIONS

یک دستگاه فیزیکی میزبان را به سیستم‌مهمان متصل می‌کند. چند نمونه مقدار برای HOSTDEV:

نام دستگاه گره از طریق libvirt، همان‌طور که توسط 'virsh nodedev-list' نمایش داده می‌شود
دستگاه USB بر اساس گذرگاه (bus) و دستگاه (device) (از طریق lsusb).
دستگاه USB بر اساس سازنده (vendor) و شناسه محصول (product) (از طریق lsusb).
دستگاه PCI (از طریق lspci).
دستگاه شبکه (در کانتینر LXC).
دستگاه نویسه‌ای (در کانتینر LXC).
دستگاه بلوکی (در کانتینر LXC).

از --hostdev=? برای دیدن فهرست همه زیرگزینه‌های موجود استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#host-device-assignment

ساختار: --sound MODEL

یک دستگاه صوتی مجازی را به سیستم‌مهمان متصل می‌کند. MODEL مدل کارت صدای شبیه‌سازی‌شده را مشخص می‌کند. مقادیر ممکن ich6، ich9، ac97، es1370، sb16، pcspk یا default هستند. مقدار 'default' تلاش می‌کند بهترین مدلی را که سیستم‌عامل مشخص‌شده پشتیبانی می‌کند انتخاب نماید.

این گزینه جایگزین گزینه قدیمی --soundhw شده و آن را منسوخ می‌کند. از --sound=? برای دیدن فهرست همه زیرگزینه‌های موجود استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#sound-devices

پیکربندی خروجی صوتی میزبان برای سخت‌افزار --sound در سیستم‌مهمان.

از --audio=? برای دیدن فهرست همه زیرگزینه‌های موجود استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#audio-backends

ساختار: --watchdog MODEL[,action=ACTION]

یک دستگاه سخت‌افزاری watchdog (تایمر نگهبان) مجازی را به سیستم‌مهمان متصل می‌کند. این قابلیت به یک دیمن و راه‌انداز دستگاه درون سیستم‌مهمان نیاز دارد. زمانی که به نظر برسد ماشین مجازی متوقف یا قفل شده است، watchdog سیگنالی ارسال می‌کند. ACTION مشخص می‌کند که libvirt هنگام فعال شدن watchdog چه واکنشی نشان دهد. مقادیر عبارتند از:

راه‌اندازی مجدد اجباری سیستم‌مهمان (پیش‌فرض)
خاموش کردن اجباری سیستم‌مهمان
مکث در اجرای سیستم‌مهمان
هیچ کاری انجام نده
خاموش کردن عادی سیستم‌مهمان (توصیه نمی‌شود، زیرا یک سیستم‌مهمانِ قفل‌شده احتمالاً به درخواست خاموش شدن عادی پاسخ نخواهد داد)

پارامتر MODEL مدل دستگاه شبیه‌سازی‌شده است: i6300esb (پیش‌فرض) یا ib700. چند نمونه:

استفاده از تنظیمات توصیه‌شده
استفاده از i6300esb با اقدام 'poweroff'

از --watchdog=? برای دیدن فهرست همه زیرگزینه‌های موجود استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#watchdog-devices.SS --serial

نحو: --serial OPTIONS

یک دستگاه سریال را با گزینه‌های گوناگون جهت اتصال به ماشین مهمان مشخص می‌کند. قالب کلی یک رشته سریال به صورت زیر است:

--serial type,opt1=val1,opt2=val2,...

دستگاه‌های --serial و --parallel همگی دارای گزینه‌های یکسانی هستند، مگر اینکه خلاف آن قید شده باشد. برخی از انواع بازهدایت دستگاه نویسه‌ای (character device) عبارتند از:

ترمینال مجازی (Pseudo TTY). شناسه pty اختصاص‌یافته در توضیحات XML مهمانِ در حال اجرا فهرست خواهد شد.
دستگاه میزبان. برای دستگاه‌های سریال، این مقدار می‌تواند /dev/ttyS0 باشد. برای دستگاه‌های موازی، می‌تواند /dev/parport0 باشد.
نوشتن خروجی در FILENAME.
کنسول شبکه TCP. مقدار MODE می‌تواند 'bind' (انتظار برای اتصالات روی HOST:PORT) یا 'connect' (ارسال خروجی به HOST:PORT) باشد، حالت پیش‌فرض 'bind' است. مقدار پیش‌فرض HOST برابر با '127.0.0.1' است، اما تعیین PORT الزامی است. مقدار PROTOCOL می‌تواند 'raw' یا 'telnet' باشد (پیش‌فرض 'raw'). در صورت استفاده از 'telnet'، درگاه مانند یک کارگزار یا کلاینت telnet رفتار می‌کند. چند مثال:

انتظار برای اتصال روی هر نشانی، درگاه 4567:

--serial tcp,host=0.0.0.0:4567

اتصال به localhost، درگاه 1234:

--serial tcp,host=:1234,source.mode=connect

انتظار برای اتصال telnet روی localhost، درگاه 2222. کاربر می‌تواند سپس با اجرای دستور 'telnet localhost 2222' به صورت تعاملی به این کنسول متصل شود:

--serial tcp,host=:2222,source.mode=bind,source.protocol=telnet

کنسول شبکه UDP. مقدار HOST:PORT مقصدی است که خروجی به آن فرستاده می‌شود (پیش‌فرض HOST برابر با '127.0.0.1' است، PORT الزامی است). مقدار BIND_HOST:BIND_PORT نشانی محلی اختیاری برای مقید شدن (bind) است (پیش‌فرض BIND_HOST برابر با 127.0.0.1 است، اما تنها زمانی تنظیم می‌شود که BIND_PORT مشخص شده باشد). چند مثال:

ارسال خروجی به درگاه پیش‌فرض syslog (ممکن است نیاز به ویرایش متناسب فایل /etc/rsyslog.conf باشد):

--serial udp,host=:514

ارسال خروجی به میزبان راه دور 192.168.10.20، درگاه 4444 (این خروجی را می‌توان در میزبان راه دور با استفاده از دستور 'nc -u -l 4444' خواند):

--serial udp,host=192.168.10.20:4444

سوکت یونیکس، unix(7) را ببینید. گزینه MODE رفتار و پیش‌فرض‌های مشابهی با --serial tcp,mode=MODE دارد.

از --serial=? برای مشاهده فهرستی از تمام زیرگزینه‌های در دسترس استفاده کنید. جزئیات کامل در: https://libvirt.org/formatdomain.html#consoles-serial-parallel-channel-devices

نحو: --parallel OPTIONS

یک دستگاه موازی (parallel) را مشخص می‌کند. قالب و گزینه‌ها تا حد زیادی با serial یکسان هستند.

از --parallel=? برای مشاهده فهرستی از تمام زیرگزینه‌های در دسترس استفاده کنید. جزئیات کامل در: https://libvirt.org/formatdomain.html#parallel-port.SS --channel

دستگاه کانال ارتباطی را برای اتصال ماشین میهمان و میزبان مشخص می‌کند. این گزینه از گزینه‌های مشابه --serial و --parallel برای مشخص کردن انتهای میزبان/منبع (host/source) کانال استفاده می‌کند. گزینه‌های اضافی 'target' برای مشخص کردن نحوه دیده‌شدن کانال توسط ماشین میهمان به کار می‌روند.

برخی از انواع تغییر مسیر دستگاه نویسه‌ای عبارتند از:

کانال ارتباطی با استفاده از پشته شبکه حالت کاربر QEMU. میهمان می‌تواند با استفاده از ترکیب مشخص‌شده HOST:PORT به کانال متصل شود.
کانال ارتباطی با استفاده از سریال virtio (نیازمند نسخه 2.6.34 یا بالاتر در میزبان و میهمان). هر نمونه از یک خط virtio --channel در میهمان به صورت /dev/vport0p1، /dev/vport0p2 و غیره در دسترس قرار می‌گیرد. NAME فراداده‌ای اختیاری است و می‌تواند هر رشته‌ای باشد، مانند org.linux-kvm.virtioport1. در صورت تعیین، در میهمان در مسیر /sys/class/virtio-ports/vport0p1/NAME در دسترس خواهد بود.
کانال ارتباطی برای عامل spice در QEMU، با استفاده از سریال virtio (نیازمند نسخه 2.6.34 یا بالاتر در میزبان و میهمان). NAME فراداده‌ای اختیاری است و می‌تواند هر رشته‌ای باشد، مانند مقدار پیش‌فرض com.redhat.spice.0 که نحوه دیده‌شدن کانال توسط میهمان را مشخص می‌کند.
کانال ارتباطی برای عامل vd در QEMU، با استفاده از سریال virtio (نیازمند نسخه 2.6.34 یا بالاتر در میزبان و میهمان). این قابلیت کپی/پیست را با میهمانان VNC امکان‌پذیر می‌کند. توجه داشته باشید که یکپارچه‌سازی تخته‌گیره (clipboard) میهمان از طریق spice-vdagent پیاده‌سازی شده است که حتی زمانی که میهمان از گرافیک spice استفاده نمی‌کند نیز باید در حال اجرا باشد. NAME فراداده‌ای اختیاری است که نحوه دیده‌شدن کانال توسط میهمان را مشخص می‌کند، و باید روی مقدار پیش‌فرض com.redhat.spice.0 باقی بماند مگر اینکه بدانید چه می‌کنید.

برای دیدن فهرستی از تمام زیرگزینه‌های موجود از --channel=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#channel

یک کنسول متنی را بین میهمان و میزبان متصل می‌کند. ترکیب‌های خاصی از میهمان و ناظر ماشین مجازی (hypervisor) می‌توانند به طور خودکار یک getty را در میهمان تنظیم کنند، به طوری که ورود متنی بدون نیاز به پیکربندی اولیه فراهم شود (target_type=xen برای میهمانان شبه‌مجازی‌سازی xen، و احتمالاً target_type=virtio در آینده).

مثال:

اتصال یک کنسول virtio به میهمان که به یک PTY روی میزبان تغییر مسیر داده می‌شود. برای میهمانان پشتیبانی‌شده، این مورد /dev/hvc0 را در میهمان در دسترس قرار می‌دهد. برای اطلاعات بیشتر https://fedoraproject.org/wiki/Features/VirtioSerial را ببینید. کنسول virtio نیازمند libvirt نسخه 0.8.3 یا بالاتر است.

برای دیدن فهرستی از تمام زیرگزینه‌های موجود از --console=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#console

نحو: --video OPTIONS

مشخص می‌کند کدام مدل دستگاه ویدیو به میهمان متصل خواهد شد. مقادیر معتبر برای VIDEO وابسته به هایپروایزر است، اما برخی گزینه‌ها برای kvmهای اخیر عبارتند از cirrus، vga، qxl، virtio، یا vmvga (vmware). برای دیدن فهرستی از تمام زیرگزینه‌های موجود از --video=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#video-devices

نحو: --smartcard MODE[,OPTIONS]

پیکربندی یک دستگاه کارت هوشمند (smartcard) مجازی.

نمونه مقادیر MODE عبارتند از host، host-certificates، یا passthrough. زیرگزینه‌های نمونه عبارتند از:

نوع دستگاه نویسه‌ای برای اتصال روی میزبان. این گزینه فقط برای حالت passthrough کاربرد دارد.

یک نمونه فراخوانی:

استفاده از کانال smartcard یک دستگاه گرافیکی SPICE برای انتقال اطلاعات کارت هوشمند به میهمان

برای دیدن فهرستی از تمام زیرگزینه‌های موجود از --smartcard=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#smartcard-devices.SS --redirdev

نحو: --redirdev BUS[,OPTIONS]

افزودن یک دستگاه تغییرمسیریافته (redirected). نمونه‌هایی از گزینه‌های فرعی:

نوع تغییرمسیر؛ مقادیر پشتیبانی‌شده در حال حاضر شامل tcp یا spicevmc هستند.
جزئیات اتصال سرور TCP، در قالب 'server:port'.

نمونه‌های فراخوانی:

افزودن یک دستگاه USB تغییرمسیریافته که توسط سرور TCP روی 'localhost' در درگاه ۴۰۰۰ ارائه می‌شود.
افزودن یک دستگاه USB تغییرمسیریافته از طریق کانال اختصاصی Spice.

برای مشاهده فهرستی از همه گزینه‌های فرعی موجود، از --redirdev=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#redirected-devices

نحو: --memballoon MODEL[,OPTIONS]

اتصال یک دستگاه بالون حافظه (memballoon) مجازی به سیستم‌عامل مهمان. اگر نیاز است دستگاه memballoon به‌طور صریح غیرفعال شود، از MODEL='none' استفاده می‌شود.

آرگومان MODEL نوع دستگاه memballoon ارائه‌شده است. این مقدار می‌تواند 'virtio'، 'xen' یا 'none' باشد. چند مثال:

ایجاد صریح یک دستگاه memballoon از نوع 'virtio'
غیرفعال کردن دستگاه memballoon

برای مشاهده فهرستی از همه گزینه‌های فرعی موجود، از --memballoon=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#memory-balloon-device

نحو: --tpm TYPE[,OPTIONS]

پیکربندی یک دستگاه TPM مجازی. مثال‌ها:

گزینه‌ای آسان برای ارسال مستقیم (passthrough) دستگاه TPM میزبان.
درخواست یک دستگاه TPM شبیه‌سازی‌شده (emulated).
درخواست از virt-install برای اعمال یک مقدار پیش‌فرض نوین و توصیه‌شده.
درخواست از virt-install برای غیرفعال کردن دستگاه TPM.

برای مشاهده فهرستی از همه گزینه‌های فرعی موجود، از --tpm=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#tpm-device

نحو: --rng TYPE[,OPTIONS]

پیکربندی یک دستگاه مجازی تولید اعداد تصادفی (RNG).

نمونه‌هایی از مقادیر TYPE شامل random، egd یا builtin است.

نمونه‌های فراخوانی:

استفاده از دستگاه /dev/urandom برای دریافت داده‌های آنتروپی؛ این حالت به‌طور ضمنی از مدل "random" استفاده می‌کند.
استفاده از دستگاه RNG داخلی (builtin) برای دریافت داده‌های آنتروپی.
اتصال به localhost در درگاه TCP شماره ۸۰۰۰ برای دریافت داده‌های آنتروپی.

برای مشاهده فهرستی از همه گزینه‌های فرعی موجود، از --rng=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#random-number-generator-device.SS --panic

شیوه نگارش: --panic MODEL[,OPTS]

متصل کردن یک دستگاه اعلان وحشت (panic notifier) به مهمان. برای تنظیمات توصیه‌شده، استفاده کنید از: --panic default

برای دیدن فهرستی از تمام زیرگزینه‌های در دسترس، از --panic=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#panic-device

شیوه نگارش: --shmem NAME[,OPTS]

متصل کردن یک دستگاه حافظه مشترک به مهمان. نام نباید شامل / باشد و نباید مختص به دایرکتوری‌های . یا .. باشد.

برای دیدن فهرستی از تمام زیرگزینه‌های در دسترس، از --shmem=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#shared-memory-device

شیوه نگارش: --memdev OPTS

افزودن یک ماژول حافظه به مهمان با امکان جداسازی در حالت فعال (hotunplug). برای افزودن یک memdev لازم است hotplugmemory و NUMA را برای مهمان پیکربندی کنید.

برای دیدن فهرستی از تمام زیرگزینه‌های در دسترس، از --memdev=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#memory-devices

شیوه نگارش: --vsock OPTS

پیکربندی یک رابط vsock میزبان/مهمان. یک پیکربندی معمول چنین است:

--vsock cid.auto=yes

برای دیدن فهرستی از تمام زیرگزینه‌های در دسترس، از --vsock=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#vsock

شیوه نگارش: --iommu MODEL[,OPTS]

افزودن یک دستگاه IOMMU به مهمان.

برای دیدن فهرستی از تمام گزینه‌های در دسترس، از --iommu=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#iommu-devices

شیوه نگارش: --pstore OPT=VAL,[...]

افزودن یک دستگاه pstore به مهمان جهت ذخیره لاگ‌های oops/panic پیش از فروپاشی (crash).

برای دیدن فهرستی از تمام گزینه‌های در دسترس، از --pstore=? استفاده کنید. جزئیات کامل در https://libvirt.org/formatdomain.html#pstore

نمایش پیام راهنما و خروج

نمایش شماره نسخه برنامه و خروج

تنظیم پرچم شروع خودکار (autostart) برای یک دامنه. این کار باعث می‌شود دامنه هنگام راه‌اندازی (boot) سیستم میزبان اجرا شود.

اگر خواهان یک ماشین مجازی (VM) گذرای libvirt هستید، از --import یا --boot و --transient استفاده کنید. این ماشین‌های مجازی فقط تا زمانی وجود دارند که دامنه خاموش شود یا سرور میزبان بازراه‌اندازی گردد. libvirt پس از هر یک از این رویدادها، پیکربندی XML ماشین مجازی را فراموش می‌کند. توجه داشته باشید که دیسک‌های ماشین مجازی حذف نخواهند شد. ببینید: https://wiki.libvirt.org/page/VM_lifecycle#Transient_guest_domains_vs_Persistent_guest_domains

هنگامی که از پنجره کنسول ماشین مجازی خارج شوید، ماشین مجازی تخریب (خاموش‌کردن اجباری) می‌شود. اگر این گزینه را با --transient ترکیب کنید، باعث می‌شود دستور virt-install عملکردی مشابه qemu داشته باشد، جایی که با بسته شدن پنجره کنسول توسط کاربر، ماشین مجازی خاموش می‌شود..SS --print-xml

قالب دستوری: --print-xml [STEP]

چاپ XML تولیدشده برای ماشین مهمان، به جای تعریف کردن آن. به‌طور پیش‌فرض این گزینه ساخت فضای ذخیره‌سازی را انجام خواهد داد (می‌توان با --dry-run آن را غیرفعال کرد). این گزینه مستلزم --quiet است.

اگر فرایند نصب ماشین مجازی چند مرحله‌ای باشد، به‌طور پیش‌فرض تمام XMLهای تولیدشده چاپ خواهند شد. اگر می‌خواهید یک مرحلهٔ خاص چاپ شود، از --print-xml 2 (برای XML مرحلهٔ دوم) استفاده کنید.

جلوگیری از راه‌اندازی مجدد خودکار دامنه (domain) پس از اتمام فرایند نصب.

قالب دستوری: --wait WAIT

پیکربندی نحوهٔ انتظار virt-install برای تکمیل فرایند نصب. بدون این گزینه، virt-install منتظر بسته شدن کنسول می‌ماند (که لزوماً نشان‌دهندهٔ خاموش شدن ماشین مهمان نیست)، یا در صورت استفاده از --noautoconsole، صرفاً نصب را آغاز کرده و خارج می‌شود.

استفاده از '--wait' به‌تنهایی یا هر مقدار منفی باعث می‌شود virt-install به‌صورت نامحدود منتظر بماند. هر عدد مثبت نشان‌دهندهٔ تعداد دقیقه‌هایی است که virt-install منتظر خواهد ماند. در صورت پایان مهلت زمانی، virt-install صرفاً خارج شده و ماشین مجازی را در وضعیت فعلی خود رها می‌کند.

مراحل ساخت ماشین مهمان را به پیش می‌برد، اما هیچ دستگاه ذخیره‌سازی ایجاد نمی‌کند، پیکربندی دستگاه‌های میزبان را تغییر نمی‌دهد و مهمان را واقعاً به libvirt معرفی نمی‌کند. virt-install ممکن است همچنان رسانهٔ نصب را دریافت کند، چرا که این کار برای تشخیص صحیح سیستم‌عامل جهت نصب الزامی است.

فعال یا غیرفعال کردن برخی بررسی‌های اعتبارسنجی. به عنوان نمونه می‌توان به هشدار دربارهٔ استفاده از دیسکی که پیش‌تر به ماشین مجازی دیگری اختصاص یافته است (--check path_in_use=on|off)، یا هشدار دربارهٔ احتمال اتمام فضا در حین تخصیص دیسک (--check disk_size=on|off) اشاره کرد. بیشتر بررسی‌ها به‌طور پیش‌فرض انجام می‌شوند.

فقط پیام‌های خطای مهلک را چاپ می‌کند.

چاپ اطلاعات اشکال‌زدایی در ترمینال هنگام اجرای فرایند نصب. اطلاعات اشکال‌زدایی حتی در صورت حذف این پارامتر نیز در ~/.cache/virt-manager/virt-install.log ذخیره می‌شوند.

ساده‌ترین فراخوانی برای نصب تعاملی یک ماشین مجازی Fedora 29 KVM با مقادیر پیش‌فرض توصیه‌شده. برنامهٔ virt-viewer(1) برای تعامل گرافیکی با فرایند نصب ماشین مجازی اجرا خواهد شد

# sudo virt-install --install fedora29

مشابه نمونهٔ قبل، اما با استفاده از قابلیت نصب خودکار در libosinfo، که نصب fedora29 را به‌صورت خودکار و بدون دخالت کاربر انجام می‌دهد:

# sudo virt-install --install fedora29 --unattended

نصب یک ماشین مجازی Windows 10 با استفاده از ۴۰ گیبی‌بایت فضای ذخیره‌سازی در مکان پیش‌فرض و ۴۰۹۶ مبی‌بایت رم، و اطمینان از اتصال به نمونهٔ سیستمی libvirtd:

# virt-install \
   --connect qemu:///system \
   --name my-win10-vm \
   --memory 4096 \
   --disk size=40 \
   --osinfo win10 \
   --cdrom /path/to/my/win10.iso

نصب یک ماشین KVM با CentOS 7 از یک URL، با پیش‌فرض‌های توصیه‌شدهٔ دستگاه‌ها و فضای ذخیره‌سازی پیش‌فرض مورد نیاز، اما با درخواست صریح گرافیک VNC به جای SPICE پیش‌فرض، و ۸ پردازندهٔ مجازی و ۸۱۹۲ مبی‌بایت حافظه:

# virt-install \
    --connect qemu:///system \
    --memory 8192 \
    --vcpus 8 \
    --graphics vnc \
    --osinfo centos7.0 \
    --location http://mirror.centos.org/centos-7/7/os/x86_64

ساخت یک ماشین مجازی بر پایهٔ یک ایمیج دیسک debian9 موجود:

# virt-install \
    --import \
    --memory 512 \
    --disk /home/user/VMs/my-debian9.img \
    --osinfo debian9

راه‌اندازی یک ماشین مجازی سریال QEMU ARM که نیازمند تعیین دستی هسته (کرنل) است.

# virt-install \
    --name armtest \
    --memory 1024 \
    --arch armv7l --machine vexpress-a9 \
    --disk /home/user/VMs/myarmdisk.img \
    --boot kernel=/tmp/my-arm-kernel,initrd=/tmp/my-arm-initrd,dtb=/tmp/my-arm-dtb,kernel_args="console=ttyAMA0 rw root=/dev/mmcblk0p3" \
    --graphics none

راه‌اندازی یک ماشین مجازی با امنیت راه‌اندازی SEV با ۴ گیگابایت RAM، ۴ گیگابایت + ۲۵۶ مبی‌بایت برای hard_limit، همراه با چند دستگاه virtio:

نکته: پرچم IOMMU باید با driver.iommu برای دستگاه‌های virtio فعال شود. استفاده از --memtune در حال حاضر به دلیل محدودیت‌های SEV الزامی است؛ برای توضیحات دقیق به مستندات libvirt مراجعه کنید.

# virt-install \
    --name foo \
    --memory 4096 \
    --boot uefi \
    --machine q35 \
    --memtune hard_limit=4563402 \
    --disk size=15,target.bus=scsi \
    --import \
    --controller type=scsi,model=virtio-scsi,driver.iommu=on \
    --controller type=virtio-serial,driver.iommu=on \
    --network network=default,model=virtio,driver.iommu=on \
    --rng /dev/random,driver.iommu=on \
    --memballoon driver.iommu=on \
    --launchSecurity sev

لطفاً به https://virt-manager.org/bugs مراجعه کنید.

حق نشر (C) متعلق به Red Hat, Inc و مشارکت‌کنندگان مختلف است. این یک نرم‌افزار آزاد است. شما می‌توانید رونوشت‌های آن را تحت شرایط GNU General Public License https://www.gnu.org/licenses/gpl.html بازتوزیع کنید. تا حدی که قانون اجازه می‌دهد، هیچ ضمانتی وجود ندارد.

virsh(1)، virt-clone(1)، virt-manager(1)، وب‌سایت پروژه https://virt-manager.org