SYSTEMD-VMSPAWN(1) systemd-vmspawn SYSTEMD-VMSPAWN(1)

systemd-vmspawn - راه‌اندازی یک سیستم‌عامل در یک ماشین مجازی

systemd-vmspawn [OPTIONS...] [ARGS...]

systemd-vmspawn می‌تواند برای راه‌اندازی یک ماشین مجازی از روی تصویر دیسک سیستم‌عامل استفاده شود. این ابزار از جهات بسیاری شبیه به systemd-nspawn(1) است، اما به جای استفاده از فضاهای نام (namespaces)، یک ماشین مجازی کامل را راه‌اندازی می‌کند.

توصیف‌کننده‌های فایل (File descriptors) برای /dev/kvm و /dev/vhost-vsock می‌توانند از طریق رابط بومی ارسال سوکت systemd به systemd-vmspawn ارسال شوند (برای جزئیات درباره پروتکل دقیق استفاده‌شده و ترتیبی که توصیف‌کننده‌های فایل ارسال می‌شوند، sd_listen_fds(3) را ببینید)؛ این توصیف‌کننده‌های فایل باید به ترتیب با نام‌های "kvm" و "vhost-vsock" ارسال شوند.

نکته: در توزیع‌های مشتق‌شده از اوبونتو/دبیان، systemd-vmspawn برای استفاده از گزینه‌های VSOCK نیازمند عضویت کاربر در گروه "kvm" است.

آرگومان‌های اضافی به عنوان آرگومان‌های اضافه خط فرمان هسته با استفاده از SMBIOS ارسال می‌شوند.

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

-q, --quiet

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

افزوده‌شده در نسخه 256.

--system, --user

مشخص می‌کند که آیا با مدیر کاربری تعامل شود یا مدیر سیستمی، و اینکه در نمونه machined کاربری ثبت شود یا نمونه machined سیستمی. در صورت مشخص نشدن، هنگام اجرا به عنوان root از مدیر سیستمی و نمونه machined سیستمی استفاده می‌شود، در غیر این صورت از مدیر کاربری و نمونه machined کاربری استفاده خواهد شد.

افزوده‌شده در نسخه 260.

-D, --directory=

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

باید یکی از گزینه‌های --directory= یا --image= مشخص شود. در صورت مشخص نشدن هیچ‌کدام، --directory=. فرض می‌شود.

نکته: در صورت مانت کردن دایرکتوری‌ای که متعلق به کاربر root نیست، ممکن است برای نگاشت به فضای نام subuid کاربر به --private-users= نیاز داشته باشید. نمونه‌ای از نحوه استفاده از /etc/subuid برای این منظور در ادامه آمده است.

افزوده‌شده در نسخه 256.

-x, --ephemeral

در صورت مشخص شدن، ماشین مجازی با یک رونوشت موقت (snapshot) از سیستم فایل خود اجرا می‌شود که بلافاصله پس از پایان کار ماشین مجازی حذف خواهد شد. در حال حاضر تنها با --image= کار می‌کند. توجه داشته باشید که --ephemeral با --extra-drive= کار نخواهد کرد.

افزوده‌شده در نسخه 260.

-i, --image=

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

افزوده‌شده در نسخه 255.

--image-format=FORMAT

قالب تصویر دیسک ارسال‌شده به --image= را مشخص می‌کند. یکی از مقادیر "raw" یا "qcow2" را می‌پذیرد. مقدار پیش‌فرض "raw" است. توجه داشته باشید که "qcow2" تنها برای فایل‌های معمولی پشتیبانی می‌شود، نه دستگاه‌های بلوکی.

افزوده‌شده در نسخه 260.

--image-disk-type=TYPE

نوع دیسک مورد استفاده برای دیسک ریشه ارسال‌شده به --image= را مشخص می‌کند. درایوهای اضافی اضافه‌شده از طریق --extra-drive= این نوع دیسک را به ارث می‌برند مگر اینکه با یک پیشوند نوع دیسک صریح لغو شوند. یکی از مقادیر "virtio-blk"، "virtio-scsi"، "nvme" یا "scsi-cd" را می‌پذیرد. مقدار پیش‌فرض "virtio-blk" است. هنگامی که "scsi-cd" مشخص شود، دیسک به عنوان یک درایو CD-ROM فقط‌خواندنی متصل می‌شود.

افزوده‌شده در نسخه 261.

--discard-disk=BOOL

کنترل می‌کند که آیا qemu درخواست‌های دورریز (discard) از ماشین مجازی را پردازش کند یا خیر. این امر از مصرف بیش از حد نیاز فضای دیسک توسط ماشین‌های مجازی طولانی‌مدت جلوگیری می‌کند. این گزینه به طور پیش‌فرض فعال است.

افزوده‌شده در نسخه 256.

--grow-image=BYTES, -G BYTES

در صورتی که فایل تصویر مشخص‌شده با --image= کوچک‌تر باشد، اندازه آن را به مقدار مشخص‌شده بر حسب بایت افزایش می‌دهد. اگر هیچ فایل تصویری استفاده نشود یا اندازه فایل تصویر از قبل برابر یا بزرگ‌تر از مقدار درخواستی باشد، هیچ عملیاتی انجام نمی‌دهد. اندازه مشخص‌شده پسوندهای معمول K، M، G (بر مبنای 1024) را می‌پذیرد. مقادیر مشخص‌شده به مضارب 4096 به بالا گرد می‌شوند.

افزوده‌شده در نسخه 258.

--cpus=CPUS

تعداد پردازنده‌ها (CPU) برای راه‌اندازی ماشین مجازی. مقدار پیش‌فرض 1 است.

افزوده‌شده در نسخه 255.

--ram=BYTES[:MAXBYTES[:SLOTS]]

میزان حافظه برای راه‌اندازی ماشین مجازی. مقدار پیش‌فرض 2G است. اگر حداکثر اندازه بعد از دونقطه مشخص شود، اتصال گرم حافظه (memory hotplug) با حد بالای تعیین‌شده فعال می‌شود. تعداد اسلات‌های اتصال گرم را می‌توان به صورت اختیاری پس از دونقطه دوم مشخص کرد که مقدار پیش‌فرض آن 1 است.

افزوده‌شده در نسخه 255.

--kvm=BOOL

کنترل می‌کند که آیا شتاب‌دهی KVM فعال شود یا خیر. اگر مشخص نشود یا روی auto تنظیم شود، پشتیبانی از KVM به طور خودکار شناسایی خواهد شد. اگر true باشد، وجود KVM الزامی است. اگر false باشد، KVM غیرفعال می‌شود.

افزوده‌شده در نسخه 255.

--vsock=BOOL

کنترل می‌کند که آیا یک سوکت VSOCK برای مهمان تخصیص داده شود یا خیر. اگر مشخص نشود یا روی auto تنظیم شود، پشتیبانی از شبکه VSOCK به طور خودکار شناسایی خواهد شد. اگر true باشد، وجود VSOCK الزامی است. اگر false باشد، شبکه VSOCK غیرفعال می‌شود.

افزوده‌شده در نسخه 255.

--vsock-cid=CID

شناسه CID مشخص را برای استفاده مهمان تنظیم می‌کند. مقادیر معتبر CID در محدوده 3 تا 4294967294 (0xFFFF_FFFE) هستند. مقادیر CID خارج از این محدوده رزرو شده‌اند. به طور پیش‌فرض، vmspawn تلاش می‌کند یک CID برای مهمان از روی نام ماشین مشتق کند، و در صورتی که این CID اشغال شده باشد به یک CID تصادفی بازمی‌گردد.

افزوده‌شده در نسخه 255.

--tpm=BOOL

کنترل می‌کند که آیا یک دستگاه TPM برای مهمان از طریق swtpm(8) ارائه شود یا خیر. اگر مشخص نشود یا روی auto تنظیم شود، vmspawn وجود باینری swtpm را به طور خودکار بررسی می‌کند. اگر yes باشد، پشتیبانی از swtpm الزامی است. اگر no باشد، TPM غیرفعال می‌شود.

افزوده‌شده در نسخه 256.

--tpm-state=PATH|auto|off

محل قرارگیری وضعیت TPM را در صورت فعال بودن پشتیبانی از TPM پیکربندی می‌کند (به --tpm= در بالا مراجعه کنید). این گزینه یک مسیر مطلق سیستم فایل به یک دایرکتوری را می‌پذیرد تا وضعیت به طور پایدار در آن قرار گیرد. اگر دایرکتوری وجود نداشته باشد بر حسب نیاز ایجاد می‌شود. اگر روی رشته ویژه "auto" تنظیم شود، یک مسیر پایدار به طور خودکار از مسیر تصویر یا مسیر دایرکتوری VM با افزودن پسوند ".tpmstate" مشتق می‌شود. اگر روی رشته ویژه "off" تنظیم شود، وضعیت TPM تنها به صورت گذرا نگهداری می‌شود و هنگام خاموش شدن VM پاک می‌گردد. این حالت برای VMهایی که کلیدهای رمزنگاری دیسک را به TPM قفل می‌کنند مناسب نیست، زیرا این کلیدها با هر بار راه‌اندازی مجدد از دست خواهند رفت. مقدار پیش‌فرض "auto" است.

اگر --ephemeral مشخص شده باشد، "auto" مانند "off" رفتار می‌کند.

افزوده‌شده در نسخه 258.

--efi-nvram-template=PATH

یک مسیر مطلق، یا یک مسیر نسبی که با ./ شروع می‌شود را می‌پذیرد. مسیر یک فایل قالب EFI NVRAM را برای کپی و استفاده به عنوان وضعیت اولیه NVRAM متغیرهای EFI مشخص می‌کند. در صورت مشخص نشدن، قالب پیش‌فرض NVRAM از تعریف سفت‌افزار کپی و استفاده می‌شود.

افزوده‌شده در نسخه 261.

--efi-nvram-state=PATH|auto|off

محل قرارگیری وضعیت NVRAM متغیرهای EFI را پیکربندی می‌کند. این گزینه یک مسیر مطلق سیستم فایل به یک فایل معمولی را می‌پذیرد تا وضعیت به طور پایدار در آن قرار گیرد. اگر فایل وجود نداشته باشد بر حسب نیاز ایجاد می‌شود. اگر روی رشته ویژه "auto" تنظیم شود، یک مسیر پایدار به طور خودکار از مسیر تصویر یا دایرکتوری VM با افزودن پسوند ".efinvramstate" مشتق می‌شود. اگر روی رشته ویژه "off" تنظیم شود، وضعیت NVRAM متغیرهای EFI تنها به صورت گذرا نگهداری شده و هنگام خاموش شدن VM پاک می‌شود. مقدار پیش‌فرض "auto" است.

اگر --ephemeral مشخص شده باشد، "auto" مانند "off" رفتار می‌کند.

افزوده‌شده در نسخه 261.

--secure-boot=BOOL

تنظیم می‌کند که آیا جستجو برای سفت‌افزاری که از راه‌اندازی امن (Secure Boot) پشتیبانی می‌کند انجام شود یا خیر. یک مقدار بولی یا "auto" را می‌پذیرد. تنظیم این گزینه روی yes معادل --firmware-features=secure-boot است و تنظیم آن روی no معادل --firmware-features=~secure-boot می‌باشد. تنظیم این گزینه روی "auto" ویژگی "secure-boot" را از هر دو فهرست ویژگی‌های گنجانده‌شده و مستثنی‌شده حذف می‌کند.

افزوده‌شده در نسخه 255.

--firmware=PATH

انتخاب می‌کند که کدام سفت‌افزار در VM استفاده شود. یکی از مقادیر "auto"، "uefi"، "bios"، "none"، یک مسیر مطلق، یا یک مسیر نسبی که با ./ شروع می‌شود را می‌پذیرد. مقدار پیش‌فرض "auto" است که سفت‌افزار UEFI را انتخاب می‌کند مگر اینکه --linux= یک تصویر هسته غیر PE را مشخص کند، که در این صورت "none" انتخاب می‌شود. "uefi" سفت‌افزار OVMF را بارگذاری می‌کند (برای انتخاب یک مورد خاص، از مسیری به فایل تعریف سفت‌افزار JSON استفاده کنید). "bios" از بارگذاری OVMF صرف‌نظر کرده و به QEMU اجازه می‌دهد از BIOS داخلی خود استفاده کند (مانند SeaBIOS روی x86). "none" بارگذاری سفت‌افزار را به طور کامل غیرفعال می‌کند و برای بوت مستقیم هسته نیازمند مشخص شدن --linux= است. بوت کردن یک UKI نیازمند "uefi" است. اگر رشته ویژه "list" مشخص شود، تمام فایل‌های تعریف سفت‌افزار کشف‌شده فهرست می‌شوند. اگر رشته ویژه "describe" مشخص شود، سفت‌افزار UEFI که (با در نظر گرفتن --firmware-features=) انتخاب می‌شد چاپ شده و برنامه خارج می‌شود. اگر یک رشته خالی مشخص شود، این گزینه به مقدار پیش‌فرض خود بازنشانی می‌شود.

افزوده‌شده در نسخه 256.

--firmware-features=FEATURE[,FEATURE...]

فهرستی از رشته‌های ویژگی‌های سفت‌افزار جداشده با کاما را می‌پذیرد. این گزینه را می‌توان چندین بار مشخص کرد، که در این صورت فهرست‌های ویژگی‌ها با یکدیگر ترکیب می‌شوند. در صورت مشخص شدن، تنها تعاریف سفت‌افزاری که تمام ویژگی‌های مورد نیاز را داشته باشند در طول کشف خودکار سفت‌افزار در نظر گرفته خواهند شد. ویژگی‌هایی که با پیشوند "~" مشخص شوند مستثنی هستند: سفت‌افزاری که چنین ویژگی‌ای داشته باشد نادیده گرفته خواهد شد. اگر یک ویژگی هم در فهرست موارد گنجانده‌شده و هم در موارد مستثنی‌شده ظاهر شود، اولویت با گنجاندن است. به طور پیش‌فرض، سفت‌افزارهایی که دارای ویژگی "enrolled-keys" باشند مستثنی می‌شوند. اگر یک رشته خالی ارسال شود، هر دو فهرست ویژگی‌های گنجانده‌شده و مستثنی‌شده بازنشانی می‌شوند. اگر رشته ویژه "list" مشخص شود، تمامی ویژگی‌های سفت‌افزار موجود فهرست می‌شوند.

افزوده‌شده در نسخه 261.

--coco=

هشدار: این ویژگی آزمایشی است و احتمالاً در نسخه‌های آینده systemd تغییر خواهد کرد (یا به شکل فعلی خود حذف خواهد شد).

پیکربندی می‌کند که آیا مهمان به عنوان یک ماشین مجازی محرمانه (Confidential VM) اجرا شود یا خیر. یکی از مقادیر "no" یا "sev-snp" را می‌پذیرد. مقدار پیش‌فرض "no" است.

"sev-snp" قابلیت AMD SEV-SNP را فعال می‌کند. این به KVM روی میزبان x86_64 با سخت‌افزار و سفت‌افزار دارای قابلیت SNP نیاز دارد. --firmware= باید به یک تصویر خام OVMF ساخته‌شده با SNP به صورت .fd اشاره کند؛ تفکیک استاندارد pflash + NVRAM تحت SNP پشتیبانی نمی‌شود، بنابراین سفت‌افزار از طریق -bios دستور QEMU بارگذاری می‌شود و راه‌اندازی امن (Secure Boot) در دسترس نیست. اعتبارنامه‌های SMBIOS ارسال‌شده از طریق --set-credential= یا --load-credential= رد می‌شوند زیرا خارج از اندازه‌گیری راه‌اندازی (launch measurement) SNP قرار دارند. بوت مستقیم هسته از طریق --linux= الزامی است تا هسته، initrd و خط فرمان در اندازه‌گیری راه‌اندازی هش شوند ("kernel-hashes=on")؛ بوت کردن هسته از روی تصویر دیسک از طریق سفت‌افزار، آن را خارج از اندازه‌گیری باقی می‌گذارد. یک vTPM، در صورت اتصال از طریق --tpm=، باید توسط مهمان به عنوان غیرقابل‌اعتماد در نظر گرفته شود.

افزوده‌شده در نسخه 261.

-n, --network-tap

یک دستگاه TAP برای برقراری ارتباط شبکه‌ای با ماشین مجازی ایجاد می‌کند.

نکته: استفاده از شبکه TAP نیازمند دسترسی root است. علاوه بر این، systemd-networkd(8) باید روی میزبان در حال اجرا و به درستی پیکربندی شده باشد تا رابط میزبان را آماده‌سازی کند. فایل ".network" مربوطه را می‌توان در /usr/lib/systemd/network/80-vm-vt.network یافت.

افزوده‌شده در نسخه 255.

--network-user-mode

استفاده از شبکه در حالت کاربری.

افزوده‌شده در نسخه 255.

--linux=PATH

تصویر هسته لینوکس را برای بوت مستقیم هسته تنظیم می‌کند. اگر یک تصویر از نوع دایرکتوری استفاده شود و --linux= حذف شده باشد، vmspawn با فرض اینکه XBOOTLDR در /boot و ESP در /efi قرار دارند، ورودی‌های بوت‌لودر را مطابق با مشخصات بوت‌لودر UAPI.1[1] جستجو خواهد کرد. اگر هیچ هسته‌ای در تصویر نصب نشده باشد، بوت تصویر با شکست مواجه می‌شود.

افزوده‌شده در نسخه 256.

--initrd=PATH

initrd مورد استفاده برای بوت مستقیم هسته را تنظیم می‌کند. اگر --linux= ارائه‌شده یک ورودی نوع ۲ از مشخصات بوت‌لودر UAPI.1[1] باشد، این آرگومان لازم نیست. اگر هیچ initrdای در تصویر نصب نشده باشد، بوت تصویر با شکست مواجه می‌شود.

--initrd= می‌تواند چندین بار مشخص شود و vmspawn آن‌ها را با یکدیگر ادغام خواهد کرد.

افزوده‌شده در نسخه 256.

--smbios11=STRING, -s STRING

رشته مشخص‌شده را به عنوان رشته سازنده SMBIOS Type #11 به ماشین مجازی ارسال می‌کند. این قابلیت برای پارامتربندی ماشین مجازی فراخوانی‌شده به روش‌های مختلف مفید است. برای جزئیات، smbios-type-11(7) را ببینید.

افزوده‌شده در نسخه 258.

--notify-ready=

پشتیبانی از اعلان‌ها از فرآیند init ماشین مجازی به systemd-vmspawn را پیکربندی می‌کند. اگر true باشد، systemd-vmspawn تنها زمانی ماشین را آماده در نظر می‌گیرد که پیام "READY=1" را از فرآیند init در ماشین مجازی دریافت کرده باشد. اگر false باشد، systemd-vmspawn بلافاصله پس از ایجاد، ماشین را آماده تلقی می‌کند. در هر دو حالت، systemd-vmspawn پس از آماده شدن ماشین مجازی راه‌اندازی‌شده، اعلان آمادگی خود را به مدیر خود ارسال می‌کند. برای جزئیات بیشتر درباره اعلان‌ها، sd_notify(3) را ببینید.

مقدار پیش‌فرض true است. (توجه داشته باشید که این برعکس گزینه هم‌نام در systemd-nspawn(1) است که مقدار پیش‌فرض آن false می‌باشد.)

افزوده‌شده در نسخه 258.

-M, --machine=

نام ماشین را برای این ماشین مجازی تنظیم می‌کند. این نام می‌تواند برای شناسایی این ماشین مجازی در طول زمان اجرای آن استفاده شود (برای مثال در ابزارهایی مانند machinectl(1) و موارد مشابه).

افزوده‌شده در نسخه 255.

--uuid=

شناسه یکتای عمومی (UUID) مشخص‌شده را برای ماشین مجازی تنظیم می‌کند. سیستم init در صورتی که فایل /etc/machine-id هنوز تنظیم نشده باشد، آن را از این مقدار مقداردهی اولیه خواهد کرد. توجه داشته باشید که این گزینه تنها در صورتی اثرگذار است که /etc/machine-id در ماشین مجازی پر نشده باشد.

افزوده‌شده در نسخه 256.

-S, --slice=

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

افزوده‌شده در نسخه 258.

--property=

یک مشخصه واحد را روی واحد اسکوپ که برای ماشین ثبت می‌شود تنظیم می‌کند. این گزینه تنها در صورتی اعمال می‌شود که ماشین در واحد اسکوپ خود اجرا شود، یعنی اگر --keep-unit استفاده نشده باشد. مقداردهی ویژگی‌های واحد را با همان قالب systemctl set-property می‌پذیرد. این ویژگی برای تنظیم محدودیت‌های حافظه و موارد مشابه برای ماشین مجازی مفید است.

افزوده‌شده در نسخه 258.

--register=

کنترل می‌کند که آیا ماشین مجازی در systemd-machined(8) ثبت شود یا خیر. یک آرگومان بولی یا "auto" را می‌پذیرد و مقدار پیش‌فرض آن "auto" است. این امر تضمین می‌کند که ماشین مجازی از طریق machinectl(1) قابل دسترسی باشد. هنگامی که روی "auto" تنظیم شود، ثبت‌نام تلاش می‌شود اما از خطاها صرف‌نظر می‌گردد.

افزوده‌شده در نسخه 256.

--private-users=UID_SHIFT[:UID_RANGE]

فضای نام کاربری را تحت --directory= کنترل می‌کند. در صورت فعال بودن، به virtiofsd(1) دستور داده می‌شود که شناسه‌های کاربر و گروه (UID و GID) را نگاشت کند. این کار شامل نگاشت UID/GIDهای خصوصی استفاده‌شده در ماشین مجازی (با شروع از کاربر ریشه 0 ماشین مجازی به بالا) به محدوده‌ای از UID/GIDها در میزبان است که برای مقاصد دیگر استفاده نمی‌شوند (معمولاً در محدوده بالاتر از UID/GID 65536 میزبان).

اگر یک یا دو عدد جداشده با دونقطه مشخص شوند، فضای نام کاربری فعال می‌شود. UID_SHIFT نخستین UID/GID میزبان را برای نگاشت مشخص می‌کند، UID_RANGE اختیاری است و تعداد UID/GIDهای میزبان را برای انتساب به ماشین مجازی مشخص می‌نماید. اگر UID_RANGE حذف شود، ۶۵۵۳۶ مقدار UID/GID اختصاص داده می‌شود.

هنگام استفاده از فضاهای نام کاربر، محدوده GID اختصاص‌یافته به هر ماشین مجازی همیشه دقیقاً برابر با محدوده UID انتخاب می‌شود.

افزوده‌شده در نسخه 256.

--bind=PATH, --bind-ro=PATH

مانت کردن یک دایرکتوری از میزبان به داخل ماشین مجازی. یکی از این موارد را می‌پذیرد: یک آرگومان مسیر — که در این صورت مسیر مشخص‌شده از میزبان به همان مسیر در داخل ماشین مجازی مانت می‌شود، یا یک جفت مسیر جداشده با دونقطه — که در این صورت مسیر نخست منبع در میزبان و مسیر دوم مقصد در ماشین مجازی است. اگر مسیر منبع مطلق نباشد، نسبت به دایرکتوری کاری جاری حل می‌شود. گزینه --bind-ro= نقاط مانت bind فقط‌خواندنی ایجاد می‌کند. گریزهای بک‌اسلش تفسیر می‌شوند، بنابراین می‌توان از "\:" برای گنجاندن دونقطه در هر یک از مسیرها استفاده کرد. این گزینه را می‌توان چندین بار برای ایجاد چندین نقطه مانت bind مستقل مشخص نمود.

افزوده‌شده در نسخه 256.

--extra-drive=[FORMAT:][DISKTYPE:]PATH

یک تصویر دیسک یا دستگاه بلوکی روی میزبان را دریافت کرده و آن را به عنوان یک درایو دیگر در اختیار ماشین مجازی قرار می‌دهد. به صورت اختیاری، قالب تصویر و/یا نوع دیسک را می‌توان با پیشوند کردن مقادیر آن‌ها قبل از مسیر و با جداسازی توسط دونقطه مشخص کرد. پیشوندهای قالب و نوع دیسک می‌توانند به هر ترتیبی ظاهر شوند. قالب به طور پیش‌فرض "raw" است و نوع دیسک به طور پیش‌فرض برابر با مقدار --image-disk-type= (که خود به طور پیش‌فرض "virtio-blk" است) می‌باشد. توجه داشته باشید که "qcow2" تنها برای فایل‌های معمولی پشتیبانی می‌شود، نه دستگاه‌های بلوکی.

افزوده‌شده در نسخه 256.

--bind-volume=PROVIDER:VOLUME[:CONFIG][:K=V,...]

یک حجم ذخیره‌سازی را از یک ارائه‌دهنده storagectl(1) دریافت کرده و آن را به ماشین مجازی متصل می‌کند. PROVIDER نام ارائه‌دهنده است (معمولاً "block" یا "fs"). VOLUME نام حجمی است که به متد Acquire() ارائه‌دهنده ارسال می‌شود. CONFIG نوع دستگاه مهمان را انتخاب می‌کند و یکی از مقادیر "virtio-blk"، "virtio-scsi"، "nvme" یا "scsi-cd" را می‌پذیرد. در صورت خالی بودن یا حذف شدن، به طور پیش‌فرض "virtio-blk" است.

فهرست انتهایی K=V جداشده با کاما پارامترهایی را به io.systemd.StorageProvider.Acquire() ارسال می‌کند: template=، create= (یکی از "any"، "new"، "open")، read-only= (یا ro=؛ یک مقدار بولی یا "auto" را می‌پذیرد)، size= / create-size= (اندازه برای حجم‌های ایجادشده)، request-as= (یکی از "blk"، "reg"، "dir"؛ "dir" توسط vmspawn رد می‌شود).

هر حجم متصل‌شده با نام "PROVIDER:VOLUME" شناسایی می‌شود. حجم‌های متصل‌شده در زمان راه‌اندازی از طریق این گزینه نمی‌توانند در زمان اجرا از طریق machinectl unbind-volume جدا شوند؛ تنها حجم‌های اضافه‌شده در زمان اجرا از طریق machinectl bind-volume قابل حذف هستند.

ارائه‌دهنده در مسیر /run/systemd/io.systemd.StorageProvider/ برای حالت سیستمی (یا $XDG_RUNTIME_DIR/systemd/io.systemd.StorageProvider/ برای حالت کاربری) جستجو می‌شود، که با محدوده زمان اجرای انتخاب‌شده از طریق --user / --system مطابقت دارد.

افزوده‌شده در نسخه 261.

--bind-user=

دایرکتوری خانگی کاربر مشخص‌شده در میزبان را به درون ماشین مجازی متصل (bind) می‌کند. نام یک کاربر موجود در میزبان را به عنوان آرگومان می‌پذیرد. می‌تواند چندین بار برای متصل کردن چندین کاربر به ماشین مجازی استفاده شود. این کار دو عمل را انجام می‌دهد:
1.دایرکتوری خانگی کاربر از میزبان در مسیر /run/vmhost/home/ با استفاده از virtiofs در دسترس قرار می‌گیرد. ترجمه شناسه virtiofsd برای نگاشت UID/GID کاربر میزبان به UID/GID اختصاص‌یافته به آن در ماشین مجازی استفاده می‌شود.
2.رکوردهای کاربری و گروهی JSON که کاربر نگاشت‌شده را توصیف می‌کنند تولید شده و با استفاده از اعتبارنامه‌های "userdb.transient.*" به داخل ماشین مجازی منتقل می‌شوند. آن‌ها شامل یک بازنمایی کمینه‌شده از رکورد کاربری میزبان هستند که با UID/GID و مسیر دایرکتوری خانگی اختصاص‌یافته به کاربر در ماشین مجازی تطبیق داده شده است. ماژول nss-systemd(8) در glibc NSS این رکوردها را از آنجا دریافت کرده و در پایگاه‌های داده کاربر/گروه ماشین مجازی در دسترس قرار می‌دهد.

ترکیب دو عملیات فوق این امکان را تضمین می‌کند که ورود به ماشین مجازی با استفاده از همان اطلاعات حساب کاربری در میزبان امکان‌پذیر باشد. کاربر تنها به صورت گذرا و تا زمانی که ماشین مجازی در حال اجرا است نگاشت می‌شود، و خود نگاشت منجر به تغییرات دائمی در ماشین مجازی نمی‌شود (به جز احتمالاً پیام‌های لاگ تولیدشده در هنگام ورود و موارد مشابه). به ویژه توجه داشته باشید که انتساب UID/GID در ماشین مجازی به صورت دائمی انجام نمی‌شود. اگر کاربر به صورت گذرا نگاشت شده باشد، بهتر است اجازه اعمال تغییرات دائمی در ماشین مجازی به وی داده نشود. اگر کاربر فایل‌ها یا دایرکتوری‌هایی متعلق به خود به جا بگذارد و آن UID/GIDها در فراخوانی‌های بعدی ماشین مجازی (احتمالاً با نگاشت --bind-user= متفاوت) بازاستفاده شوند، آن فایل‌ها و دایرکتوری‌ها برای کاربر "جدید" در دسترس خواهند بود.

نگاشت رکورد کاربر/گروه تنها در صورتی کار می‌کند که ماشین مجازی شامل systemd نسخه 258 یا جدیدتر باشد و nss-systemd به درستی در nsswitch.conf پیکربندی شده باشد. برای جزئیات، nss-systemd(8) را ببینید.

توجه داشته باشید که رکورد کاربری منتقل‌شده از میزبان به ماشین مجازی شامل هش رمز عبور یونیکس کاربر خواهد بود تا ورود بدون مشکل در ماشین مجازی امکان‌پذیر باشد. بنابراین اگر ماشین مجازی نسبت به میزبان کمتر مورد اعتماد است، استفاده از یک تابع هش رمز عبور یونیکس قوی (مانند yescrypt یا مشابه آن، با پیشوند هش "$y$") اهمیت دارد.

افزوده‌شده در نسخه 259.

--bind-user-shell=

هنگامی که همراه با --bind-user= استفاده شود، پوسته مشخص‌شده را در رکوردهای کاربری کاربران متصل‌شده به ماشین مجازی می‌گنجاند. یک مقدار بولی یا یک مسیر مطلق را می‌پذیرد.
•اگر false باشد (پیش‌فرض)، هیچ پوسته‌ای در رکوردهای کاربری برای کاربران متصل‌شده به ماشین مجازی ارسال نمی‌شود. این امر باعث می‌شود کاربران متصل‌شده از پوسته پیش‌فرض ماشین مجازی استفاده کنند.
•اگر true باشد، پوسته‌های مشخص‌شده توسط رکوردهای کاربری میزبان در رکوردهای کاربری تمامی کاربران متصل‌شده به ماشین مجازی گنجانده می‌شوند.
•اگر یک مسیر مطلق ارسال شود، آن مسیر را به عنوان پوسته برای رکوردهای کاربری تمامی کاربران متصل‌شده به ماشین مجازی تنظیم می‌کند.

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

این عملیات تنها در ترکیب با --bind-user= پشتیبانی می‌شود.

افزوده‌شده در نسخه 259.

--bind-user-group=NAME

هنگامی که همراه با --bind-user= استفاده شود، گروه مشخص‌شده را به عنوان یک گروه کمکی در رکوردهای کاربری کاربران متصل‌شده به ماشین مجازی می‌گنجاند. نام یک گروه را می‌پذیرد.

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

این عملیات تنها در ترکیب با --bind-user= پشتیبانی می‌شود.

افزوده‌شده در نسخه 259.

--forward-journal=FILE|DIR

هدایت ژورنال ماشین مجازی به میزبان. در حال حاضر از systemd-journal-remote(8) برای دریافت مدخل‌های ژورنال هدایت‌شده از VM مهمان استفاده می‌شود. این گزینه مشخص می‌کند که این ژورنال در کجای میزبان ذخیره شود و دارای همان معنایی است که برای -o/--output در systemd-journal-remote(8) توصیف شده است.

افزوده‌شده در نسخه 256.

--forward-journal-max-use=BYTES, --forward-journal-keep-free=BYTES, --forward-journal-max-file-size=BYTES, --forward-journal-max-files=N

این گزینه‌ها تنظیمات متناظر در systemd-journal-remote(8) را هنگام هدایت مدخل‌های ژورنال از VM پیکربندی می‌کنند. برای توضیحات این تنظیمات، journal-remote.conf(5) را ببینید.

افزوده‌شده در نسخه 261.

--pass-ssh-key=BOOL

به طور پیش‌فرض، یک کلید SSH برای مجاز ساختن systemd-vmspawn به باز کردن یک اتصال D-Bus به گذرگاه systemd ماشین مجازی ایجاد می‌شود. تنظیم این گزینه روی "no" تولید کلید SSH را غیرفعال می‌کند.

کلیدهای تولیدشده گذرا هستند؛ به این معنا که تنها برای فراخوانی جاری systemd-vmspawn معتبر هستند و معمولاً ذخیره دائمی نمی‌شوند.

افزوده‌شده در نسخه 256.

--ssh-key-type=TYPE

نوع کلید SSH تولیدی را پیکربندی می‌کند؛ برای اطلاعات بیشتر ssh-keygen(1) را ببینید.

به طور پیش‌فرض کلیدهای "ed25519" تولید می‌شوند، با این حال اگر ماشین مجازی نسخه بسیار قدیمی‌ای از sshd(8) داشته باشد، کلیدهای "rsa" نیز می‌توانند مفید باشند.

افزوده‌شده در نسخه 256.

--console=MODE

نحوه راه‌اندازی کنسول ماشین مجازی را پیکربندی می‌کند. یکی از مقادیر "interactive"، "read-only"، "native"، "gui" یا "headless" را می‌پذیرد. مقدار پیش‌فرض "interactive" است. "interactive" یک رابط ترمینال تعاملی به ماشین مجازی ارائه می‌دهد. "read-only" مشابه است، اما اکیداً فقط‌خواندنی است، یعنی هیچ ورودی از کاربر را نمی‌پذیرد. "native" نیز یک رابط مبتنی بر TTY ارائه می‌دهد، اما از پیاده‌سازی بومی qemu استفاده می‌کند (که به معنای در دسترس بودن مانیتور qemu است). "gui" رابط گرافیکی کاربر در qemu را نمایش می‌دهد. "headless" ماشین مجازی را بدون هیچ‌گونه کنسولی اجرا می‌کند، که برای استفاده خودکار یا اسکریپت‌شده مفید است.

افزوده‌شده در نسخه 256.

--console-transport=TRANSPORT

پروتکل انتقال مورد استفاده برای کنسول ماشین مجازی را پیکربندی می‌کند. یکی از مقادیر "virtio" یا "serial" را می‌پذیرد. مقدار پیش‌فرض "virtio" است. "virtio" از یک دستگاه virtio-serial استفاده می‌کند که به صورت /dev/hvc0 در ماشین مجازی ظاهر می‌شود. "serial" از یک درگاه سریال معمولی استفاده می‌کند که به صورت /dev/ttyS0 (یا /dev/ttyAMA0 در معماری ARM) در ماشین مجازی ظاهر می‌شود. این گزینه تنها در حالت‌های --console=interactive، --console=read-only و --console=native اثرگذار است.

افزوده‌شده در نسخه 261.

--background=COLOR

رنگ پس‌زمینه ترمینال را تا زمانی که ماشین مجازی در حال اجرا است به رنگ ANSI مشخص‌شده تغییر می‌دهد. رنگ مشخص‌شده باید یک رنگ پس‌زمینه بر اساس ANSI X3.64 SGR باشد، یعنی رشته‌هایی مانند "40"، "41"، ...، "47"، "48;2;..."، "48;5;...". برای جزئیات، کدهای فرار ANSI (ویکی‌پدیا)[2] را ببینید. برای غیرفعال کردن رنگ‌آمیزی یک رشته خالی اختصاص دهید. این گزینه تنها در حالت‌های --console=interactive و --console=read-only اثرگذار است.

افزوده‌شده در نسخه 256.

--load-credential=ID:PATH, --set-credential=ID:VALUE

ارسال یک اعتبارنامه به ماشین مجازی. این دو گزینه متناظر با تنظیمات LoadCredential= و SetCredential= در فایل‌های واحد هستند. برای جزئیات درباره این مفاهیم و همچنین نحوه نگارش آرگومان‌های این گزینه‌ها، systemd.exec(5) را ببینید.

به منظور گنجاندن داده‌های باینری در داده‌های اعتبارنامه برای --set-credential=، از گریز به سبک زبان C استفاده کنید (یعنی "\n" برای گنجاندن خط جدید، یا "\x00" برای گنجاندن یک بایت NUL). توجه داشته باشید که پوسته فراخواننده ممکن است یک بار گریززدایی را اعمال کند، بنابراین ممکن است به دو بار گریز دادن نیاز باشد!

اعتبارنامه‌ها ترجیحاً از طریق رشته‌های SMBIOS Type 11 یا فایل‌های fw_cfg در QEMU به ماشین مجازی منتقل می‌شوند. اگر هیچ‌یک از این سازوکارها در دسترس نباشد، اعتبارنامه‌ها در خط فرمان هسته با استفاده از systemd.set_credential_binary= ارسال می‌شوند که یک کانال محرمانه نیست. در این حالت از این روش برای ارسال اطلاعات محرمانه به ماشین مجازی استفاده نکنید.

افزوده‌شده در نسخه 255.

--no-pager

خروجی را به یک صفحه‌بند لوله‌کشی نمی‌کند.

-h, --help

یک متن راهنمای کوتاه را چاپ کرده و خارج می‌شود.

--version

یک رشته کوتاه نسخه برنامه را چاپ کرده و خارج می‌شود.

--no-ask-password

برای عملیات دارای دسترسی ویژه از کاربر درخواست احراز هویت نمی‌کند.

$SYSTEMD_LOG_LEVEL

حداکثر سطح لاگ پیام‌های منتشرشده (پیام‌های با سطح لاگ بالاتر، یعنی کم‌اهمیت‌تر، متوقف خواهند شد). فهرستی از مقادیر جداشده با کاما را می‌پذیرد. یک مقدار می‌تواند یکی از موارد زیر (به ترتیب کاهش اهمیت) باشد: emerg، alert، crit، err، warning، notice، info، debug، یا یک عدد صحیح در محدوده 0...7. برای اطلاعات بیشتر syslog(3) را ببینید. هر مقدار می‌تواند به صورت اختیاری با یکی از پیشوندهای console، syslog، kmsg یا journal همراه با یک دونقطه مشخص شود تا حداکثر سطح لاگ را برای آن مقصد خاص لاگ تنظیم کند (به عنوان مثال SYSTEMD_LOG_LEVEL=debug,console:info مشخص می‌کند که لاگ در سطح debug ثبت شود مگر در هنگام ارسال لاگ به کنسول که باید در سطح info باشد). توجه داشته باشید که حداکثر سطح لاگ سراسری بر هر حداکثر سطح لاگ اختصاصی مقصد اولویت دارد.

$SYSTEMD_LOG_COLOR

یک مقدار بولی. اگر true باشد، پیام‌های نوشته‌شده در tty بر اساس اولویت رنگ‌آمیزی می‌شوند.

این تنظیم تنها زمانی مفید است که پیام‌ها مستقیماً در ترمینال نوشته شوند، زیرا journalctl(1) و سایر ابزارهایی که لاگ‌ها را نمایش می‌دهند، پیام‌ها را خود بر اساس سطح لاگ رنگ‌آمیزی می‌کنند.

$SYSTEMD_LOG_TIME

یک مقدار بولی. اگر true باشد، پیام‌های لاگ کنسول با یک برچسب زمانی پیشوندگذاری می‌شوند.

این تنظیم تنها زمانی مفید است که پیام‌ها مستقیماً در ترمینال یا یک فایل نوشته شوند، زیرا journalctl(1) و سایر ابزارهایی که لاگ‌ها را نمایش می‌دهند، خود برچسب‌های زمانی را بر اساس فراداده‌های مدخل پیوست می‌کنند.

$SYSTEMD_LOG_LOCATION

یک مقدار بولی. اگر true باشد، پیام‌ها با نام فایل و شماره خط در کد منبع که پیام از آن سرچشمه می‌گیرد، پیشوندگذاری می‌شوند.

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

$SYSTEMD_LOG_TID

یک مقدار بولی. اگر true باشد، پیام‌ها با شناسه عددی رشته (TID) جاری پیشوندگذاری می‌شوند.

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

$SYSTEMD_LOG_TARGET

مقصد پیام‌های لاگ. یکی از موارد console (ثبت در tty متصل‌شده)، console-prefixed (ثبت در tty متصل‌شده اما با پیشوندهایی که سطح لاگ و "facility" را کدگذاری می‌کنند، syslog(3) را ببینید)، kmsg (ثبت در بافر حلقوی لاگ هسته)، journal (ثبت در ژورنال)، journal-or-kmsg (ثبت در ژورنال در صورت موجود بودن، و در غیر این صورت در kmsg)، auto (تعیین خودکار مقصد لاگ مناسب، حالت پیش‌فرض)، null (غیرفعال کردن خروجی لاگ).

$SYSTEMD_LOG_RATELIMIT_KMSG

کنترل می‌کند که آیا نرخ ارسال پیام به kmsg محدود شود یا خیر. یک مقدار بولی را می‌پذیرد. مقدار پیش‌فرض "true" است. در صورت غیرفعال بودن، systemd نرخ پیام‌های نوشته‌شده در kmsg را محدود نخواهد کرد.

$SYSTEMD_PAGER, $PAGER

صفحه‌بندی که هنگام مشخص نشدن --no-pager استفاده می‌شود. در صورت تنظیم بودن $SYSTEMD_PAGER از آن استفاده می‌شود؛ در غیر این صورت $PAGER استفاده می‌گردد. اگر نه $SYSTEMD_PAGER و نه $PAGER تنظیم نشده باشند، مجموعه‌ای از پیاده‌سازی‌های شناخته‌شده صفحه‌بند به نوبت آزمایش می‌شوند، از جمله less(1) و more(1)، تا زمانی که یکی یافت شود. اگر هیچ پیاده‌سازی صفحه‌بندی کشف نشود، هیچ صفحه‌بندی فراخوانی نخواهد شد. تنظیم این متغیرهای محیطی روی یک رشته خالی یا مقدار "cat" معادل ارسال --no-pager است.

نکته: اگر $SYSTEMD_PAGERSECURE تنظیم نشده باشد، $SYSTEMD_PAGER و $PAGER تنها می‌توانند برای غیرفعال کردن صفحه‌بند (با "cat" یا "") استفاده شوند، و در غیر این صورت نادیده گرفته می‌شوند.

$SYSTEMD_LESS

بازنویسی گزینه‌های ارسال‌شده به less (به طور پیش‌فرض "FRSXMK").

کاربران ممکن است به ویژه تمایل داشته باشند دو گزینه را تغییر دهند:

K

این گزینه به صفحه‌بند دستور می‌دهد که با فشردن Ctrl+C بلافاصله خارج شود. برای اجازه دادن به less جهت مدیریت Ctrl+C توسط خود برای بازگشت به خط فرمان صفحه‌بند، این گزینه را حذف کنید.

اگر مقدار $SYSTEMD_LESS شامل "K" نباشد و صفحه‌بند فراخوانی‌شده less باشد، Ctrl+C توسط برنامه اجرایی نادیده گرفته می‌شود و باید توسط صفحه‌بند مدیریت گردد.

X

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

توجه داشته باشید که تنظیم متغیر محیطی معمولی $LESS هیچ تاثیری بر فراخوانی‌های less توسط ابزارهای systemd ندارد.

برای بحث بیشتر less(1) را ببینید.

$SYSTEMD_LESSCHARSET

بازنویسی مجموعه نویسه ارسال‌شده به less (به طور پیش‌فرض "utf-8"، اگر ترمینال فراخواننده سازگار با UTF-8 تشخیص داده شود).

توجه داشته باشید که تنظیم متغیر محیطی معمولی $LESSCHARSET هیچ تاثیری بر فراخوانی‌های less توسط ابزارهای systemd ندارد.

$SYSTEMD_PAGERSECURE

دستورات رایج صفحه‌بند مانند less(1)، علاوه بر «صفحه‌بندی»، یعنی پیمایش در خروجی، از باز کردن یا نوشتن در فایل‌های دیگر و اجرای دستورات دلخواه پوسته پشتیبانی می‌کنند. هنگامی که دستورات با امتیازات بالا، مثلاً تحت sudo(8) یا pkexec(1) فراخوانی می‌شوند، صفحه‌بند به یک مرز امنیتی تبدیل می‌شود. باید دقت شود که تنها برنامه‌های با قابلیت‌های کاملاً محدود به عنوان صفحه‌بند استفاده شوند و ویژگی‌های تعاملی ناخواسته مانند باز کردن یا ایجاد فایل‌های جدید یا راه‌اندازی زیرفرآیندها مجاز نباشند. «حالت امن» (secure mode) برای صفحه‌بند ممکن است همان‌طور که در زیر توضیح داده شده فعال شود، اگر صفحه‌بند از آن پشتیبانی کند (بیشتر صفحه‌بندها به گونه‌ای نوشته نشده‌اند که این موضوع را در نظر بگیرند). توصیه می‌شود در هنگام اجازه دادن به کاربران غیرقابل‌اعتماد برای اجرای دستورات با دسترسی‌های بالا، یا «حالت امن» را صراحتاً فعال کنید یا صفحه‌بند را با استفاده از --no-pager یا PAGER=cat به طور کامل غیرفعال نمایید.

این گزینه یک آرگومان بولی می‌پذیرد. در صورت تنظیم روی true، «حالت امن» صفحه‌بند فعال می‌شود. در «حالت امن»، LESSSECURE=1 هنگام فراخوانی صفحه‌بند تنظیم خواهد شد که به صفحه‌بند دستور می‌دهد دستوراتی را که فایل‌های جدید باز می‌کنند یا ایجاد می‌نمایند یا زیرفرآیندهای جدیدی را آغاز می‌کنند غیرفعال کند. در حال حاضر تنها less(1) شناخته شده است که این متغیر را درک کرده و «حالت امن» را پیاده‌سازی می‌کند.

در صورت تنظیم روی false، هیچ محدودیتی بر روی صفحه‌بند اعمال نمی‌شود. تنظیم SYSTEMD_PAGERSECURE=0 یا حذف نکردن آن از محیط به ارث رسیده ممکن است به کاربر اجازه دهد دستورات دلخواه را فراخوانی کند.

هنگامی که $SYSTEMD_PAGERSECURE تنظیم نشده باشد، ابزارهای systemd تلاش می‌کنند به طور خودکار تشخیص دهند که آیا «حالت امن» باید فعال شود و آیا صفحه‌بند از آن پشتیبانی می‌کند یا خیر. در صورتی که UID موثر با مالک نشست ورود یکسان نباشد ( geteuid(2) و sd_pid_get_owner_uid(3) را ببینید)، یا هنگام اجرا تحت sudo(8) یا ابزارهای مشابه (که در آن‌ها $SUDO_UID تنظیم شده است [3])، «حالت امن» فعال می‌شود. در این موارد، SYSTEMD_PAGERSECURE=1 تنظیم خواهد شد و صفحه‌بندهایی که شناخته نشده‌اند «حالت امن» را پیاده‌سازی کنند اصلاً استفاده نخواهند شد. توجه داشته باشید که این تشخیص خودکار تنها رایج‌ترین سازوکارها را برای ارتقای امتیاز پوشش می‌دهد و به عنوان یک تسهیل در نظر گرفته شده است. توصیه می‌شود که صراحتاً $SYSTEMD_PAGERSECURE را تنظیم کرده یا صفحه‌بند را غیرفعال کنید.

توجه داشته باشید که اگر قرار است متغیرهای $SYSTEMD_PAGER یا $PAGER به جز برای غیرفعال کردن صفحه‌بند رعایت شوند، $SYSTEMD_PAGERSECURE نیز باید تنظیم شده باشد.

$SYSTEMD_COLORS

یک آرگومان بولی یا یک مقدار خاص را می‌پذیرد. به طور پیش‌فرض (تنظیم‌نشده)، systemd و ابزارهای وابسته در صورت امکان از رنگ‌ها در خروجی خود استفاده خواهند کرد. اگر $COLORTERM روی "truecolor" یا "24bit" تنظیم شده باشد، رنگ‌های ۲۴ بیتی فعال می‌شوند، در غیر این صورت ۲۵۶ رنگ فعال خواهد شد، مگر اینکه $NO_COLOR یا $TERM نشان دهد که رنگ‌ها غیرفعال هستند.

true

همانند حالت تنظیم‌نشده است، با این تفاوت که $NO_COLOR نادیده گرفته می‌شود.

false

خروجی تک‌رنگ خواهد بود.

"16", "256", "24bit"

به ترتیب همیشه از ۱۶ رنگ پایه ANSI، ۲۵۶ رنگ یا رنگ ۲۴ بیتی استفاده می‌کند.

"auto-16", "auto-256", "auto-24bit"

از تعداد رنگ‌های داده‌شده با توجه به $TERM و آنچه کنسول به آن متصل است استفاده می‌کند.

$SYSTEMD_URLIFY

مقدار باید یک بولی باشد. کنترل می‌کند که آیا پیوندهای قابل کلیک در خروجی برای شبیه‌سازهای ترمینالی که از این قابلیت پشتیبانی می‌کنند تولید شود یا خیر. این گزینه را می‌توان برای بازنویسی تصمیمی که systemd بر اساس $TERM و سایر شرایط می‌گیرد مشخص کرد.

مثال ۱. اجرای یک تصویر ماشین مجازی Arch Linux تولیدشده توسط mkosi

$ mkosi -d arch -p systemd -p linux --autologin -o image.raw -f build
$ systemd-vmspawn --image=image.raw

مثال ۲. وارد کردن و اجرای یک تصویر Fedora 44 Cloud با استفاده از importctl

$ curl -L \
       -O https://download.fedoraproject.org/pub/fedora/linux/releases/44/Cloud/x86_64/images/Fedora-Cloud-Base-Generic-44-1.7.x86_64.qcow2 \
       -O https://download.fedoraproject.org/pub/fedora/linux/releases/44/Cloud/x86_64/images/Fedora-Cloud-44-1.7-x86_64-CHECKSUM \
       -O https://fedoraproject.org/fedora.gpg
$ gpgv --keyring ./fedora.gpg Fedora-Cloud-44-1.7-x86_64-CHECKSUM
$ sha256sum -c Fedora-Cloud-44-1.7-x86_64-CHECKSUM
# importctl import-raw -m Fedora-Cloud-Base-Generic-44-1.7.x86_64.qcow2 fedora-44-cloud
# systemd-vmspawn -M fedora-44-cloud

مثال ۳. ساخت و اجرای تصویر سیستمی systemd و هدایت ژورنال ماشین مجازی به یک فایل محلی

$ mkosi build
$ systemd-vmspawn \
    -D mkosi.output/system \
    --private-users $(grep $(whoami) /etc/subuid | cut -d: -f2) \
    --linux mkosi.output/system.efi \
    --forward-journal=vm.journal \
    enforcing=0

نکته: این مثال همچنین از یک آرگومان خط فرمان هسته برای اطمینان از راه‌اندازی نشدن SELinux در حالت اجباری (enforcing) استفاده می‌کند.

مثال ۴. اتصال SSH به یک ماشین مجازی در حال اجرا با استفاده از systemd-ssh-proxy

$ mkosi build
$ my_vsock_cid=3735928559
$ systemd-vmspawn \
    -D mkosi.output/system \
    --private-users $(grep $(whoami) /etc/subuid | cut -d: -f2) \
    --linux mkosi.output/system.efi \
    --vsock-cid $my_vsock_cid \
    enforcing=0
$ ssh root@vsock/$my_vsock_cid -i /run/user/$UID/systemd/vmspawn/machine-*-system-ed25519

در صورت وقوع خطا، مقدار errno به کد بازگشتی منتقل می‌شود. اگر EXIT_STATUS توسط تصویر در حال اجرا ارائه شود، همان مقدار بازگردانده می‌شود. در غیر این صورت، EXIT_SUCCESS بازگردانده خواهد شد.

systemd(1), mkosi(1), machinectl(1), importctl(1), مشخصات بوت‌لودر UAPI.1[1]

1.
مشخصات بوت‌لودر UAPI.1
2.
کدهای فرار ANSI (ویکی‌پدیا)
3.
توصیه می‌شود که ابزارهای دیگر در صورت لزوم $SUDO_UID را تنظیم و بررسی کنند، و با آن به عنوان یک رابط رایج رفتار نمایند.
systemd 261.2