'\" t .TH "SYSTEMD\-VMSPAWN" "1" "" "systemd 261.2" "systemd-vmspawn" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" systemd-vmspawn \- راه‌اندازی یک سیستم‌عامل در یک ماشین مجازی .SH "خلاصه دستور (SYNOPSIS)" .HP \w'\fBsystemd\-vmspawn\fR\ 'u \fBsystemd\-vmspawn\fR [OPTIONS...] [ARGS...] .SH "توضیحات (DESCRIPTION)" .PP \fBsystemd\-vmspawn\fR می‌تواند برای راه‌اندازی یک ماشین مجازی از روی تصویر دیسک سیستم‌عامل استفاده شود\&. این ابزار از جهات بسیاری شبیه به \fBsystemd-nspawn\fR(1) است، اما به جای استفاده از فضاهای نام (namespaces)، یک ماشین مجازی کامل را راه‌اندازی می‌کند\&. .PP توصیف‌کننده‌های فایل (File descriptors) برای /dev/kvm و /dev/vhost\-vsock می‌توانند از طریق رابط بومی ارسال سوکت systemd به \fBsystemd\-vmspawn\fR ارسال شوند (برای جزئیات درباره پروتکل دقیق استفاده‌شده و ترتیبی که توصیف‌کننده‌های فایل ارسال می‌شوند، \fBsd_listen_fds\fR(3) را ببینید)؛ این توصیف‌کننده‌های فایل باید به ترتیب با نام‌های "kvm" و "vhost\-vsock" ارسال شوند\&. .PP نکته: در توزیع‌های مشتق‌شده از اوبونتو/دبیان، \fBsystemd\-vmspawn\fR برای استفاده از گزینه‌های VSOCK نیازمند عضویت کاربر در گروه "kvm" است\&. .SH "گزینه‌ها (OPTIONS)" .PP آرگومان‌های اضافی به عنوان آرگومان‌های اضافه خط فرمان هسته با استفاده از SMBIOS ارسال می‌شوند\&. .PP گزینه‌های زیر پشتیبانی می‌شوند: .PP \fB\-q\fR, \fB\-\-quiet\fR .RS 4 هرگونه خروجی وضعیت تولیدشده توسط خود ابزار را غیرفعال می‌کند\&. در صورت استفاده از این سوئیچ، تنها خروجی vmspawn همان خروجی کنسول سیستم‌عامل ماشین مجازی خواهد بود\&. .sp افزوده‌شده در نسخه 256\&. .RE .PP \fB\-\-system\fR, \fB\-\-user\fR .RS 4 مشخص می‌کند که آیا با مدیر کاربری تعامل شود یا مدیر سیستمی، و اینکه در نمونه machined کاربری ثبت شود یا نمونه machined سیستمی\&. در صورت مشخص نشدن، هنگام اجرا به عنوان root از مدیر سیستمی و نمونه machined سیستمی استفاده می‌شود، در غیر این صورت از مدیر کاربری و نمونه machined کاربری استفاده خواهد شد\&. .sp افزوده‌شده در نسخه 260\&. .RE .SS "گزینه‌های تصویر (Image Options)" .PP \fB\-D\fR, \fB\-\-directory=\fR .RS 4 دایرکتوری مورد استفاده به عنوان ریشه سیستم فایل برای ماشین مجازی\&. .sp باید یکی از گزینه‌های \fB\-\-directory=\fR یا \fB\-\-image=\fR مشخص شود\&. در صورت مشخص نشدن هیچ‌کدام، \fB\-\-directory=\&.\fR فرض می‌شود\&. .sp نکته: در صورت مانت کردن دایرکتوری‌ای که متعلق به کاربر root نیست، ممکن است برای نگاشت به فضای نام subuid کاربر به \fB\-\-private\-users=\fR نیاز داشته باشید\&. نمونه‌ای از نحوه استفاده از \fB/etc/subuid\fR برای این منظور در ادامه آمده است\&. .sp افزوده‌شده در نسخه 256\&. .RE .PP \fB\-x\fR, \fB\-\-ephemeral\fR .RS 4 در صورت مشخص شدن، ماشین مجازی با یک رونوشت موقت (snapshot) از سیستم فایل خود اجرا می‌شود که بلافاصله پس از پایان کار ماشین مجازی حذف خواهد شد\&. در حال حاضر تنها با \fB\-\-image=\fR کار می‌کند\&. توجه داشته باشید که \fB\-\-ephemeral\fR با \fB\-\-extra\-drive=\fR کار نخواهد کرد\&. .sp افزوده‌شده در نسخه 260\&. .RE .PP \fB\-i\fR, \fB\-\-image=\fR .RS 4 تصویر دیسک سیستم فایل ریشه (یا گره دستگاه) برای ماشین مجازی\&. .sp افزوده‌شده در نسخه 255\&. .RE .PP \fB\-\-image\-format=\fR\fB\fIFORMAT\fR\fR .RS 4 قالب تصویر دیسک ارسال‌شده به \fB\-\-image=\fR را مشخص می‌کند\&. یکی از مقادیر "raw" یا "qcow2" را می‌پذیرد\&. مقدار پیش‌فرض "raw" است\&. توجه داشته باشید که "qcow2" تنها برای فایل‌های معمولی پشتیبانی می‌شود، نه دستگاه‌های بلوکی\&. .sp افزوده‌شده در نسخه 260\&. .RE .PP \fB\-\-image\-disk\-type=\fR\fB\fITYPE\fR\fR .RS 4 نوع دیسک مورد استفاده برای دیسک ریشه ارسال‌شده به \fB\-\-image=\fR را مشخص می‌کند\&. درایوهای اضافی اضافه‌شده از طریق \fB\-\-extra\-drive=\fR این نوع دیسک را به ارث می‌برند مگر اینکه با یک پیشوند نوع دیسک صریح لغو شوند\&. یکی از مقادیر "virtio\-blk"، "virtio\-scsi"، "nvme" یا "scsi\-cd" را می‌پذیرد\&. مقدار پیش‌فرض "virtio\-blk" است\&. هنگامی که "scsi\-cd" مشخص شود، دیسک به عنوان یک درایو CD\-ROM فقط‌خواندنی متصل می‌شود\&. .sp افزوده‌شده در نسخه 261\&. .RE .PP \fB\-\-discard\-disk=\fR\fB\fIBOOL\fR\fR .RS 4 کنترل می‌کند که آیا qemu درخواست‌های دورریز (discard) از ماشین مجازی را پردازش کند یا خیر\&. این امر از مصرف بیش از حد نیاز فضای دیسک توسط ماشین‌های مجازی طولانی‌مدت جلوگیری می‌کند\&. این گزینه به طور پیش‌فرض فعال است\&. .sp افزوده‌شده در نسخه 256\&. .RE .PP \fB\-\-grow\-image=\fR\fB\fIBYTES\fR\fR, \fB\-G \fR\fB\fIBYTES\fR\fR .RS 4 در صورتی که فایل تصویر مشخص‌شده با \fB\-\-image=\fR کوچک‌تر باشد، اندازه آن را به مقدار مشخص‌شده بر حسب بایت افزایش می‌دهد\&. اگر هیچ فایل تصویری استفاده نشود یا اندازه فایل تصویر از قبل برابر یا بزرگ‌تر از مقدار درخواستی باشد، هیچ عملیاتی انجام نمی‌دهد\&. اندازه مشخص‌شده پسوندهای معمول K، M، G (بر مبنای 1024) را می‌پذیرد\&. مقادیر مشخص‌شده به مضارب 4096 به بالا گرد می‌شوند\&. .sp افزوده‌شده در نسخه 258\&. .RE .SS "پیکربندی میزبان (Host Configuration)" .PP \fB\-\-cpus=\fR\fB\fICPUS\fR\fR .RS 4 تعداد پردازنده‌ها (CPU) برای راه‌اندازی ماشین مجازی\&. مقدار پیش‌فرض 1 است\&. .sp افزوده‌شده در نسخه 255\&. .RE .PP \fB\-\-ram=\fR\fB\fIBYTES\fR\fR\fB[:\fR\fB\fIMAXBYTES\fR\fR\fB[:\fR\fB\fISLOTS\fR\fR\fB]]\fR .RS 4 میزان حافظه برای راه‌اندازی ماشین مجازی\&. مقدار پیش‌فرض 2G است\&. اگر حداکثر اندازه بعد از دونقطه مشخص شود، اتصال گرم حافظه (memory hotplug) با حد بالای تعیین‌شده فعال می‌شود\&. تعداد اسلات‌های اتصال گرم را می‌توان به صورت اختیاری پس از دونقطه دوم مشخص کرد که مقدار پیش‌فرض آن 1 است\&. .sp افزوده‌شده در نسخه 255\&. .RE .PP \fB\-\-kvm=\fR\fB\fIBOOL\fR\fR .RS 4 کنترل می‌کند که آیا شتاب‌دهی KVM فعال شود یا خیر\&. اگر مشخص نشود یا روی \fBauto\fR تنظیم شود، پشتیبانی از KVM به طور خودکار شناسایی خواهد شد\&. اگر true باشد، وجود KVM الزامی است\&. اگر false باشد، KVM غیرفعال می‌شود\&. .sp افزوده‌شده در نسخه 255\&. .RE .PP \fB\-\-vsock=\fR\fB\fIBOOL\fR\fR .RS 4 کنترل می‌کند که آیا یک سوکت VSOCK برای مهمان تخصیص داده شود یا خیر\&. اگر مشخص نشود یا روی \fBauto\fR تنظیم شود، پشتیبانی از شبکه VSOCK به طور خودکار شناسایی خواهد شد\&. اگر true باشد، وجود VSOCK الزامی است\&. اگر false باشد، شبکه VSOCK غیرفعال می‌شود\&. .sp افزوده‌شده در نسخه 255\&. .RE .PP \fB\-\-vsock\-cid=\fR\fB\fICID\fR\fR .RS 4 شناسه CID مشخص را برای استفاده مهمان تنظیم می‌کند\&. مقادیر معتبر CID در محدوده \fB3\fR تا \fB4294967294\fR (\fB0xFFFF_FFFE\fR) هستند\&. مقادیر CID خارج از این محدوده رزرو شده‌اند\&. به طور پیش‌فرض، vmspawn تلاش می‌کند یک CID برای مهمان از روی نام ماشین مشتق کند، و در صورتی که این CID اشغال شده باشد به یک CID تصادفی بازمی‌گردد\&. .sp افزوده‌شده در نسخه 255\&. .RE .PP \fB\-\-tpm=\fR\fB\fIBOOL\fR\fR .RS 4 کنترل می‌کند که آیا یک دستگاه TPM برای مهمان از طریق \fBswtpm\fR(8) ارائه شود یا خیر\&. اگر مشخص نشود یا روی \fBauto\fR تنظیم شود، vmspawn وجود باینری swtpm را به طور خودکار بررسی می‌کند\&. اگر yes باشد، پشتیبانی از swtpm الزامی است\&. اگر no باشد، TPM غیرفعال می‌شود\&. .sp افزوده‌شده در نسخه 256\&. .RE .PP \fB\-\-tpm\-state=\fR\fB\fIPATH\fR\fR\fB|auto|off\fR .RS 4 محل قرارگیری وضعیت TPM را در صورت فعال بودن پشتیبانی از TPM پیکربندی می‌کند (به \fB\-\-tpm=\fR در بالا مراجعه کنید)\&. این گزینه یک مسیر مطلق سیستم فایل به یک دایرکتوری را می‌پذیرد تا وضعیت به طور پایدار در آن قرار گیرد\&. اگر دایرکتوری وجود نداشته باشد بر حسب نیاز ایجاد می‌شود\&. اگر روی رشته ویژه "auto" تنظیم شود، یک مسیر پایدار به طور خودکار از مسیر تصویر یا مسیر دایرکتوری VM با افزودن پسوند "\&.tpmstate" مشتق می‌شود\&. اگر روی رشته ویژه "off" تنظیم شود، وضعیت TPM تنها به صورت گذرا نگهداری می‌شود و هنگام خاموش شدن VM پاک می‌گردد\&. این حالت برای VMهایی که کلیدهای رمزنگاری دیسک را به TPM قفل می‌کنند مناسب نیست، زیرا این کلیدها با هر بار راه‌اندازی مجدد از دست خواهند رفت\&. مقدار پیش‌فرض "auto" است\&. .sp اگر \fB\-\-ephemeral\fR مشخص شده باشد، "auto" مانند "off" رفتار می‌کند\&. .sp افزوده‌شده در نسخه 258\&. .RE .PP \fB\-\-efi\-nvram\-template=\fR\fB\fIPATH\fR\fR .RS 4 یک مسیر مطلق، یا یک مسیر نسبی که با \&./ شروع می‌شود را می‌پذیرد\&. مسیر یک فایل قالب EFI NVRAM را برای کپی و استفاده به عنوان وضعیت اولیه NVRAM متغیرهای EFI مشخص می‌کند\&. در صورت مشخص نشدن، قالب پیش‌فرض NVRAM از تعریف سفت‌افزار کپی و استفاده می‌شود\&. .sp افزوده‌شده در نسخه 261\&. .RE .PP \fB\-\-efi\-nvram\-state=\fR\fB\fIPATH\fR\fR\fB|auto|off\fR .RS 4 محل قرارگیری وضعیت NVRAM متغیرهای EFI را پیکربندی می‌کند\&. این گزینه یک مسیر مطلق سیستم فایل به یک فایل معمولی را می‌پذیرد تا وضعیت به طور پایدار در آن قرار گیرد\&. اگر فایل وجود نداشته باشد بر حسب نیاز ایجاد می‌شود\&. اگر روی رشته ویژه "auto" تنظیم شود، یک مسیر پایدار به طور خودکار از مسیر تصویر یا دایرکتوری VM با افزودن پسوند "\&.efinvramstate" مشتق می‌شود\&. اگر روی رشته ویژه "off" تنظیم شود، وضعیت NVRAM متغیرهای EFI تنها به صورت گذرا نگهداری شده و هنگام خاموش شدن VM پاک می‌شود\&. مقدار پیش‌فرض "auto" است\&. .sp اگر \fB\-\-ephemeral\fR مشخص شده باشد، "auto" مانند "off" رفتار می‌کند\&. .sp افزوده‌شده در نسخه 261\&. .RE .PP \fB\-\-secure\-boot=\fR\fB\fIBOOL\fR\fR .RS 4 تنظیم می‌کند که آیا جستجو برای سفت‌افزاری که از راه‌اندازی امن (Secure Boot) پشتیبانی می‌کند انجام شود یا خیر\&. یک مقدار بولی یا "auto" را می‌پذیرد\&. تنظیم این گزینه روی yes معادل \fB\-\-firmware\-features=secure\-boot\fR است و تنظیم آن روی no معادل \fB\-\-firmware\-features=~secure\-boot\fR می‌باشد\&. تنظیم این گزینه روی "auto" ویژگی "secure\-boot" را از هر دو فهرست ویژگی‌های گنجانده‌شده و مستثنی‌شده حذف می‌کند\&. .sp افزوده‌شده در نسخه 255\&. .RE .PP \fB\-\-firmware=\fR\fB\fIPATH\fR\fR .RS 4 انتخاب می‌کند که کدام سفت‌افزار در VM استفاده شود\&. یکی از مقادیر "auto"، "uefi"، "bios"، "none"، یک مسیر مطلق، یا یک مسیر نسبی که با \&./ شروع می‌شود را می‌پذیرد\&. مقدار پیش‌فرض "auto" است که سفت‌افزار UEFI را انتخاب می‌کند مگر اینکه \fB\-\-linux=\fR یک تصویر هسته غیر PE را مشخص کند، که در این صورت "none" انتخاب می‌شود\&. "uefi" سفت‌افزار OVMF را بارگذاری می‌کند (برای انتخاب یک مورد خاص، از مسیری به فایل تعریف سفت‌افزار JSON استفاده کنید)\&. "bios" از بارگذاری OVMF صرف‌نظر کرده و به QEMU اجازه می‌دهد از BIOS داخلی خود استفاده کند (مانند SeaBIOS روی x86)\&. "none" بارگذاری سفت‌افزار را به طور کامل غیرفعال می‌کند و برای بوت مستقیم هسته نیازمند مشخص شدن \fB\-\-linux=\fR است\&. بوت کردن یک UKI نیازمند "uefi" است\&. اگر رشته ویژه "list" مشخص شود، تمام فایل‌های تعریف سفت‌افزار کشف‌شده فهرست می‌شوند\&. اگر رشته ویژه "describe" مشخص شود، سفت‌افزار UEFI که (با در نظر گرفتن \fB\-\-firmware\-features=\fR) انتخاب می‌شد چاپ شده و برنامه خارج می‌شود\&. اگر یک رشته خالی مشخص شود، این گزینه به مقدار پیش‌فرض خود بازنشانی می‌شود\&. .sp افزوده‌شده در نسخه 256\&. .RE .PP \fB\-\-firmware\-features=\fR\fB\fIFEATURE\fR\fR\fB[,\fR\fB\fIFEATURE\fR\fR\fB\&.\&.\&.]\fR .RS 4 فهرستی از رشته‌های ویژگی‌های سفت‌افزار جداشده با کاما را می‌پذیرد\&. این گزینه را می‌توان چندین بار مشخص کرد، که در این صورت فهرست‌های ویژگی‌ها با یکدیگر ترکیب می‌شوند\&. در صورت مشخص شدن، تنها تعاریف سفت‌افزاری که تمام ویژگی‌های مورد نیاز را داشته باشند در طول کشف خودکار سفت‌افزار در نظر گرفته خواهند شد\&. ویژگی‌هایی که با پیشوند "~" مشخص شوند مستثنی هستند: سفت‌افزاری که چنین ویژگی‌ای داشته باشد نادیده گرفته خواهد شد\&. اگر یک ویژگی هم در فهرست موارد گنجانده‌شده و هم در موارد مستثنی‌شده ظاهر شود، اولویت با گنجاندن است\&. به طور پیش‌فرض، سفت‌افزارهایی که دارای ویژگی "enrolled\-keys" باشند مستثنی می‌شوند\&. اگر یک رشته خالی ارسال شود، هر دو فهرست ویژگی‌های گنجانده‌شده و مستثنی‌شده بازنشانی می‌شوند\&. اگر رشته ویژه "list" مشخص شود، تمامی ویژگی‌های سفت‌افزار موجود فهرست می‌شوند\&. .sp افزوده‌شده در نسخه 261\&. .RE .PP \fB\-\-coco=\fR .RS 4 هشدار: این ویژگی آزمایشی است و احتمالاً در نسخه‌های آینده systemd تغییر خواهد کرد (یا به شکل فعلی خود حذف خواهد شد)\&. .sp پیکربندی می‌کند که آیا مهمان به عنوان یک ماشین مجازی محرمانه (Confidential VM) اجرا شود یا خیر\&. یکی از مقادیر "no" یا "sev\-snp" را می‌پذیرد\&. مقدار پیش‌فرض "no" است\&. .sp "sev\-snp" قابلیت AMD SEV\-SNP را فعال می‌کند\&. این به KVM روی میزبان x86_64 با سخت‌افزار و سفت‌افزار دارای قابلیت SNP نیاز دارد\&. \fB\-\-firmware=\fR باید به یک تصویر خام OVMF ساخته‌شده با SNP به صورت \&.fd اشاره کند؛ تفکیک استاندارد pflash + NVRAM تحت SNP پشتیبانی نمی‌شود، بنابراین سفت‌افزار از طریق \fB\-bios\fR دستور QEMU بارگذاری می‌شود و راه‌اندازی امن (Secure Boot) در دسترس نیست\&. اعتبارنامه‌های SMBIOS ارسال‌شده از طریق \fB\-\-set\-credential=\fR یا \fB\-\-load\-credential=\fR رد می‌شوند زیرا خارج از اندازه‌گیری راه‌اندازی (launch measurement) SNP قرار دارند\&. بوت مستقیم هسته از طریق \fB\-\-linux=\fR الزامی است تا هسته، initrd و خط فرمان در اندازه‌گیری راه‌اندازی هش شوند ("kernel\-hashes=on")؛ بوت کردن هسته از روی تصویر دیسک از طریق سفت‌افزار، آن را خارج از اندازه‌گیری باقی می‌گذارد\&. یک vTPM، در صورت اتصال از طریق \fB\-\-tpm=\fR، باید توسط مهمان به عنوان غیرقابل‌اعتماد در نظر گرفته شود\&. .sp افزوده‌شده در نسخه 261\&. .RE .SS "گزینه‌های شبکه (Networking Options)" .PP \fB\-n\fR, \fB\-\-network\-tap\fR .RS 4 یک دستگاه TAP برای برقراری ارتباط شبکه‌ای با ماشین مجازی ایجاد می‌کند\&. .sp نکته: استفاده از شبکه TAP نیازمند دسترسی root است\&. علاوه بر این، \fBsystemd-networkd\fR(8) باید روی میزبان در حال اجرا و به درستی پیکربندی شده باشد تا رابط میزبان را آماده‌سازی کند\&. فایل "\&.network" مربوطه را می‌توان در /usr/lib/systemd/network/80\-vm\-vt\&.network یافت\&. .sp افزوده‌شده در نسخه 255\&. .RE .PP \fB\-\-network\-user\-mode\fR .RS 4 استفاده از شبکه در حالت کاربری\&. .sp افزوده‌شده در نسخه 255\&. .RE .SS "گزینه‌های اجرا (Execution Options)" .PP \fB\-\-linux=\fR\fB\fIPATH\fR\fR .RS 4 تصویر هسته لینوکس را برای بوت مستقیم هسته تنظیم می‌کند\&. اگر یک تصویر از نوع دایرکتوری استفاده شود و \fB\-\-linux=\fR حذف شده باشد، vmspawn با فرض اینکه XBOOTLDR در /boot و ESP در /efi قرار دارند، ورودی‌های بوت‌لودر را مطابق با \m[blue]\fBمشخصات بوت‌لودر UAPI\&.1\fR\m[]\&\s-2\u[1]\d\s+2 جستجو خواهد کرد\&. اگر هیچ هسته‌ای در تصویر نصب نشده باشد، بوت تصویر با شکست مواجه می‌شود\&. .sp افزوده‌شده در نسخه 256\&. .RE .PP \fB\-\-initrd=\fR\fB\fIPATH\fR\fR .RS 4 initrd مورد استفاده برای بوت مستقیم هسته را تنظیم می‌کند\&. اگر \fB\-\-linux=\fR ارائه‌شده یک ورودی نوع ۲ از \m[blue]\fBمشخصات بوت‌لودر UAPI\&.1\fR\m[]\&\s-2\u[1]\d\s+2 باشد، این آرگومان لازم نیست\&. اگر هیچ initrdای در تصویر نصب نشده باشد، بوت تصویر با شکست مواجه می‌شود\&. .sp \fB\-\-initrd=\fR می‌تواند چندین بار مشخص شود و vmspawn آن‌ها را با یکدیگر ادغام خواهد کرد\&. .sp افزوده‌شده در نسخه 256\&. .RE .PP \fB\-\-smbios11=\fR\fB\fISTRING\fR\fR, \fB\-s \fR\fB\fISTRING\fR\fR .RS 4 رشته مشخص‌شده را به عنوان رشته سازنده SMBIOS Type #11 به ماشین مجازی ارسال می‌کند\&. این قابلیت برای پارامتربندی ماشین مجازی فراخوانی‌شده به روش‌های مختلف مفید است\&. برای جزئیات، \fBsmbios-type-11\fR(7) را ببینید\&. .sp افزوده‌شده در نسخه 258\&. .RE .PP \fB\-\-notify\-ready=\fR .RS 4 پشتیبانی از اعلان‌ها از فرآیند init ماشین مجازی به \fBsystemd\-vmspawn\fR را پیکربندی می‌کند\&. اگر true باشد، \fBsystemd\-vmspawn\fR تنها زمانی ماشین را آماده در نظر می‌گیرد که پیام "READY=1" را از فرآیند init در ماشین مجازی دریافت کرده باشد\&. اگر false باشد، \fBsystemd\-vmspawn\fR بلافاصله پس از ایجاد، ماشین را آماده تلقی می‌کند\&. در هر دو حالت، \fBsystemd\-vmspawn\fR پس از آماده شدن ماشین مجازی راه‌اندازی‌شده، اعلان آمادگی خود را به مدیر خود ارسال می‌کند\&. برای جزئیات بیشتر درباره اعلان‌ها، \fBsd_notify\fR(3) را ببینید\&. .sp مقدار پیش‌فرض true است\&. (توجه داشته باشید که این برعکس گزینه هم‌نام در \fBsystemd-nspawn\fR(1) است که مقدار پیش‌فرض آن false می‌باشد\&.) .sp افزوده‌شده در نسخه 258\&. .RE .SS "گزینه‌های هویت سیستم (System Identity Options)" .PP \fB\-M\fR, \fB\-\-machine=\fR .RS 4 نام ماشین را برای این ماشین مجازی تنظیم می‌کند\&. این نام می‌تواند برای شناسایی این ماشین مجازی در طول زمان اجرای آن استفاده شود (برای مثال در ابزارهایی مانند \fBmachinectl\fR(1) و موارد مشابه)\&. .sp افزوده‌شده در نسخه 255\&. .RE .PP \fB\-\-uuid=\fR .RS 4 شناسه یکتای عمومی (UUID) مشخص‌شده را برای ماشین مجازی تنظیم می‌کند\&. سیستم init در صورتی که فایل /etc/machine\-id هنوز تنظیم نشده باشد، آن را از این مقدار مقداردهی اولیه خواهد کرد\&. توجه داشته باشید که این گزینه تنها در صورتی اثرگذار است که /etc/machine\-id در ماشین مجازی پر نشده باشد\&. .sp افزوده‌شده در نسخه 256\&. .RE .SS "گزینه‌های مشخصه (Property Options)" .PP \fB\-S\fR, \fB\-\-slice=\fR .RS 4 ماشین مجازی را به جای برش پیش‌فرض machine\&.slice، به بخشی از برش (slice) مشخص‌شده تبدیل می‌کند\&. این گزینه تنها در صورتی اعمال می‌شود که ماشین در واحد اسکوپ خود اجرا شود، یعنی اگر \fB\-\-keep\-unit\fR استفاده نشده باشد\&. .sp افزوده‌شده در نسخه 258\&. .RE .PP \fB\-\-property=\fR .RS 4 یک مشخصه واحد را روی واحد اسکوپ که برای ماشین ثبت می‌شود تنظیم می‌کند\&. این گزینه تنها در صورتی اعمال می‌شود که ماشین در واحد اسکوپ خود اجرا شود، یعنی اگر \fB\-\-keep\-unit\fR استفاده نشده باشد\&. مقداردهی ویژگی‌های واحد را با همان قالب \fBsystemctl set\-property\fR می‌پذیرد\&. این ویژگی برای تنظیم محدودیت‌های حافظه و موارد مشابه برای ماشین مجازی مفید است\&. .sp افزوده‌شده در نسخه 258\&. .RE .PP \fB\-\-register=\fR .RS 4 کنترل می‌کند که آیا ماشین مجازی در \fBsystemd-machined\fR(8) ثبت شود یا خیر\&. یک آرگومان بولی یا "auto" را می‌پذیرد و مقدار پیش‌فرض آن "auto" است\&. این امر تضمین می‌کند که ماشین مجازی از طریق \fBmachinectl\fR(1) قابل دسترسی باشد\&. هنگامی که روی "auto" تنظیم شود، ثبت‌نام تلاش می‌شود اما از خطاها صرف‌نظر می‌گردد\&. .sp افزوده‌شده در نسخه 256\&. .RE .SS "گزینه‌های فضای نام کاربر (User Namespacing Options)" .PP \fB\-\-private\-users=\fR\fB\fIUID_SHIFT[:UID_RANGE]\fR\fR .RS 4 فضای نام کاربری را تحت \fB\-\-directory=\fR کنترل می‌کند\&. در صورت فعال بودن، به \fBvirtiofsd\fR(1) دستور داده می‌شود که شناسه‌های کاربر و گروه (UID و GID) را نگاشت کند\&. این کار شامل نگاشت UID/GIDهای خصوصی استفاده‌شده در ماشین مجازی (با شروع از کاربر ریشه 0 ماشین مجازی به بالا) به محدوده‌ای از UID/GIDها در میزبان است که برای مقاصد دیگر استفاده نمی‌شوند (معمولاً در محدوده بالاتر از UID/GID 65536 میزبان)\&. .sp اگر یک یا دو عدد جداشده با دونقطه مشخص شوند، فضای نام کاربری فعال می‌شود\&. \fIUID_SHIFT\fR نخستین UID/GID میزبان را برای نگاشت مشخص می‌کند، \fIUID_RANGE\fR اختیاری است و تعداد UID/GIDهای میزبان را برای انتساب به ماشین مجازی مشخص می‌نماید\&. اگر \fIUID_RANGE\fR حذف شود، ۶۵۵۳۶ مقدار UID/GID اختصاص داده می‌شود\&. .sp هنگام استفاده از فضاهای نام کاربر، محدوده GID اختصاص‌یافته به هر ماشین مجازی همیشه دقیقاً برابر با محدوده UID انتخاب می‌شود\&. .sp افزوده‌شده در نسخه 256\&. .RE .SS "گزینه‌های مانت (Mount Options)" .PP \fB\-\-bind=\fR\fB\fIPATH\fR\fR, \fB\-\-bind\-ro=\fR\fB\fIPATH\fR\fR .RS 4 مانت کردن یک دایرکتوری از میزبان به داخل ماشین مجازی\&. یکی از این موارد را می‌پذیرد: یک آرگومان مسیر\ \&\(em که در این صورت مسیر مشخص‌شده از میزبان به همان مسیر در داخل ماشین مجازی مانت می‌شود، یا یک جفت مسیر جداشده با دونقطه\ \&\(em که در این صورت مسیر نخست منبع در میزبان و مسیر دوم مقصد در ماشین مجازی است\&. اگر مسیر منبع مطلق نباشد، نسبت به دایرکتوری کاری جاری حل می‌شود\&. گزینه \fB\-\-bind\-ro=\fR نقاط مانت bind فقط‌خواندنی ایجاد می‌کند\&. گریزهای بک‌اسلش تفسیر می‌شوند، بنابراین می‌توان از "\e:" برای گنجاندن دونقطه در هر یک از مسیرها استفاده کرد\&. این گزینه را می‌توان چندین بار برای ایجاد چندین نقطه مانت bind مستقل مشخص نمود\&. .sp افزوده‌شده در نسخه 256\&. .RE .PP \fB\-\-extra\-drive=[\fR\fB\fIFORMAT\fR\fR\fB:][\fR\fB\fIDISKTYPE\fR\fR\fB:]\fR\fB\fIPATH\fR\fR .RS 4 یک تصویر دیسک یا دستگاه بلوکی روی میزبان را دریافت کرده و آن را به عنوان یک درایو دیگر در اختیار ماشین مجازی قرار می‌دهد\&. به صورت اختیاری، قالب تصویر و/یا نوع دیسک را می‌توان با پیشوند کردن مقادیر آن‌ها قبل از مسیر و با جداسازی توسط دونقطه مشخص کرد\&. پیشوندهای قالب و نوع دیسک می‌توانند به هر ترتیبی ظاهر شوند\&. قالب به طور پیش‌فرض "raw" است و نوع دیسک به طور پیش‌فرض برابر با مقدار \fB\-\-image\-disk\-type=\fR (که خود به طور پیش‌فرض "virtio\-blk" است) می‌باشد\&. توجه داشته باشید که "qcow2" تنها برای فایل‌های معمولی پشتیبانی می‌شود، نه دستگاه‌های بلوکی\&. .sp افزوده‌شده در نسخه 256\&. .RE .PP \fB\-\-bind\-volume=\fR\fB\fIPROVIDER\fR\fR\fB:\fR\fB\fIVOLUME\fR\fR\fB[:\fR\fB\fICONFIG\fR\fR\fB][:\fR\fB\fIK=V\fR\fR\fB,\&...]\fR .RS 4 یک حجم ذخیره‌سازی را از یک ارائه‌دهنده \fBstoragectl\fR(1) دریافت کرده و آن را به ماشین مجازی متصل می‌کند\&. \fIPROVIDER\fR نام ارائه‌دهنده است (معمولاً "block" یا "fs")\&. \fIVOLUME\fR نام حجمی است که به متد \fBAcquire()\fR ارائه‌دهنده ارسال می‌شود\&. \fICONFIG\fR نوع دستگاه مهمان را انتخاب می‌کند و یکی از مقادیر "virtio\-blk"، "virtio\-scsi"، "nvme" یا "scsi\-cd" را می‌پذیرد\&. در صورت خالی بودن یا حذف شدن، به طور پیش‌فرض "virtio\-blk" است\&. .sp فهرست انتهایی \fIK=V\fR جداشده با کاما پارامترهایی را به \fBio\&.systemd\&.StorageProvider\&.Acquire()\fR ارسال می‌کند: \fItemplate=\fR، \fIcreate=\fR (یکی از "any"، "new"، "open")، \fIread\-only=\fR (یا \fIro=\fR؛ یک مقدار بولی یا "auto" را می‌پذیرد)، \fIsize=\fR / \fIcreate\-size=\fR (اندازه برای حجم‌های ایجادشده)، \fIrequest\-as=\fR (یکی از "blk"، "reg"، "dir"؛ "dir" توسط vmspawn رد می‌شود)\&. .sp هر حجم متصل‌شده با نام "\fIPROVIDER\fR:\fIVOLUME\fR" شناسایی می‌شود\&. حجم‌های متصل‌شده در زمان راه‌اندازی از طریق این گزینه نمی‌توانند در زمان اجرا از طریق \fBmachinectl unbind\-volume\fR جدا شوند؛ تنها حجم‌های اضافه‌شده در زمان اجرا از طریق \fBmachinectl bind\-volume\fR قابل حذف هستند\&. .sp ارائه‌دهنده در مسیر /run/systemd/io\&.systemd\&.StorageProvider/ برای حالت سیستمی (یا $XDG_RUNTIME_DIR/systemd/io\&.systemd\&.StorageProvider/ برای حالت کاربری) جستجو می‌شود، که با محدوده زمان اجرای انتخاب‌شده از طریق \fB\-\-user\fR / \fB\-\-system\fR مطابقت دارد\&. .sp افزوده‌شده در نسخه 261\&. .RE .PP \fB\-\-bind\-user=\fR .RS 4 دایرکتوری خانگی کاربر مشخص‌شده در میزبان را به درون ماشین مجازی متصل (bind) می‌کند\&. نام یک کاربر موجود در میزبان را به عنوان آرگومان می‌پذیرد\&. می‌تواند چندین بار برای متصل کردن چندین کاربر به ماشین مجازی استفاده شود\&. این کار دو عمل را انجام می‌دهد: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} دایرکتوری خانگی کاربر از میزبان در مسیر /run/vmhost/home/ با استفاده از virtiofs در دسترس قرار می‌گیرد\&. ترجمه شناسه virtiofsd برای نگاشت UID/GID کاربر میزبان به UID/GID اختصاص‌یافته به آن در ماشین مجازی استفاده می‌شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} رکوردهای کاربری و گروهی JSON که کاربر نگاشت‌شده را توصیف می‌کنند تولید شده و با استفاده از اعتبارنامه‌های "userdb\&.transient\&.*" به داخل ماشین مجازی منتقل می‌شوند\&. آن‌ها شامل یک بازنمایی کمینه‌شده از رکورد کاربری میزبان هستند که با UID/GID و مسیر دایرکتوری خانگی اختصاص‌یافته به کاربر در ماشین مجازی تطبیق داده شده است\&. ماژول \fBnss-systemd\fR(8) در glibc NSS این رکوردها را از آنجا دریافت کرده و در پایگاه‌های داده کاربر/گروه ماشین مجازی در دسترس قرار می‌دهد\&. .RE .sp ترکیب دو عملیات فوق این امکان را تضمین می‌کند که ورود به ماشین مجازی با استفاده از همان اطلاعات حساب کاربری در میزبان امکان‌پذیر باشد\&. کاربر تنها به صورت گذرا و تا زمانی که ماشین مجازی در حال اجرا است نگاشت می‌شود، و خود نگاشت منجر به تغییرات دائمی در ماشین مجازی نمی‌شود (به جز احتمالاً پیام‌های لاگ تولیدشده در هنگام ورود و موارد مشابه)\&. به ویژه توجه داشته باشید که انتساب UID/GID در ماشین مجازی به صورت دائمی انجام نمی‌شود\&. اگر کاربر به صورت گذرا نگاشت شده باشد، بهتر است اجازه اعمال تغییرات دائمی در ماشین مجازی به وی داده نشود\&. اگر کاربر فایل‌ها یا دایرکتوری‌هایی متعلق به خود به جا بگذارد و آن UID/GIDها در فراخوانی‌های بعدی ماشین مجازی (احتمالاً با نگاشت \fB\-\-bind\-user=\fR متفاوت) بازاستفاده شوند، آن فایل‌ها و دایرکتوری‌ها برای کاربر "جدید" در دسترس خواهند بود\&. .sp نگاشت رکورد کاربر/گروه تنها در صورتی کار می‌کند که ماشین مجازی شامل systemd نسخه 258 یا جدیدتر باشد و \fBnss\-systemd\fR به درستی در nsswitch\&.conf پیکربندی شده باشد\&. برای جزئیات، \fBnss-systemd\fR(8) را ببینید\&. .sp توجه داشته باشید که رکورد کاربری منتقل‌شده از میزبان به ماشین مجازی شامل هش رمز عبور یونیکس کاربر خواهد بود تا ورود بدون مشکل در ماشین مجازی امکان‌پذیر باشد\&. بنابراین اگر ماشین مجازی نسبت به میزبان کمتر مورد اعتماد است، استفاده از یک تابع هش رمز عبور یونیکس قوی (مانند yescrypt یا مشابه آن، با پیشوند هش "$y$") اهمیت دارد\&. .sp افزوده‌شده در نسخه 259\&. .RE .PP \fB\-\-bind\-user\-shell=\fR .RS 4 هنگامی که همراه با \fB\-\-bind\-user=\fR استفاده شود، پوسته مشخص‌شده را در رکوردهای کاربری کاربران متصل‌شده به ماشین مجازی می‌گنجاند\&. یک مقدار بولی یا یک مسیر مطلق را می‌پذیرد\&. .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} اگر false باشد (پیش‌فرض)، هیچ پوسته‌ای در رکوردهای کاربری برای کاربران متصل‌شده به ماشین مجازی ارسال نمی‌شود\&. این امر باعث می‌شود کاربران متصل‌شده از پوسته پیش‌فرض ماشین مجازی استفاده کنند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} اگر true باشد، پوسته‌های مشخص‌شده توسط رکوردهای کاربری میزبان در رکوردهای کاربری تمامی کاربران متصل‌شده به ماشین مجازی گنجانده می‌شوند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} اگر یک مسیر مطلق ارسال شود، آن مسیر را به عنوان پوسته برای رکوردهای کاربری تمامی کاربران متصل‌شده به ماشین مجازی تنظیم می‌کند\&. .RE .sp نکته: این گزینه وجود پوسته‌های مشخص‌شده در ماشین مجازی را بررسی نخواهد کرد\&. .sp این عملیات تنها در ترکیب با \fB\-\-bind\-user=\fR پشتیبانی می‌شود\&. .sp افزوده‌شده در نسخه 259\&. .RE .PP \fB\-\-bind\-user\-group=\fR\fB\fINAME\fR\fR .RS 4 هنگامی که همراه با \fB\-\-bind\-user=\fR استفاده شود، گروه مشخص‌شده را به عنوان یک گروه کمکی در رکوردهای کاربری کاربران متصل‌شده به ماشین مجازی می‌گنجاند\&. نام یک گروه را می‌پذیرد\&. .sp نکته: این گزینه وجود گروه‌های مشخص‌شده در ماشین مجازی را بررسی نخواهد کرد\&. .sp این عملیات تنها در ترکیب با \fB\-\-bind\-user=\fR پشتیبانی می‌شود\&. .sp افزوده‌شده در نسخه 259\&. .RE .SS "گزینه‌های گزارش‌گیری (Logging Options)" .PP \fB\-\-forward\-journal=\fR\fB\fIFILE|DIR\fR\fR .RS 4 هدایت ژورنال ماشین مجازی به میزبان\&. در حال حاضر از \fBsystemd-journal-remote\fR(8) برای دریافت مدخل‌های ژورنال هدایت‌شده از VM مهمان استفاده می‌شود\&. این گزینه مشخص می‌کند که این ژورنال در کجای میزبان ذخیره شود و دارای همان معنایی است که برای \fB\-o\fR/\fB\-\-output\fR در \fBsystemd-journal-remote\fR(8) توصیف شده است\&. .sp افزوده‌شده در نسخه 256\&. .RE .PP \fB\-\-forward\-journal\-max\-use=\fR\fB\fIBYTES\fR\fR, \fB\-\-forward\-journal\-keep\-free=\fR\fB\fIBYTES\fR\fR, \fB\-\-forward\-journal\-max\-file\-size=\fR\fB\fIBYTES\fR\fR, \fB\-\-forward\-journal\-max\-files=\fR\fB\fIN\fR\fR .RS 4 این گزینه‌ها تنظیمات متناظر در \fBsystemd-journal-remote\fR(8) را هنگام هدایت مدخل‌های ژورنال از VM پیکربندی می‌کنند\&. برای توضیحات این تنظیمات، \fBjournal-remote.conf\fR(5) را ببینید\&. .sp افزوده‌شده در نسخه 261\&. .RE .SS "گزینه‌های SSH (SSH Options)" .PP \fB\-\-pass\-ssh\-key=\fR\fB\fIBOOL\fR\fR .RS 4 به طور پیش‌فرض، یک کلید SSH برای مجاز ساختن \fBsystemd\-vmspawn\fR به باز کردن یک اتصال D\-Bus به گذرگاه systemd ماشین مجازی ایجاد می‌شود\&. تنظیم این گزینه روی "no" تولید کلید SSH را غیرفعال می‌کند\&. .sp کلیدهای تولیدشده گذرا هستند؛ به این معنا که تنها برای فراخوانی جاری \fBsystemd\-vmspawn\fR معتبر هستند و معمولاً ذخیره دائمی نمی‌شوند\&. .sp افزوده‌شده در نسخه 256\&. .RE .PP \fB\-\-ssh\-key\-type=\fR\fB\fITYPE\fR\fR .RS 4 نوع کلید SSH تولیدی را پیکربندی می‌کند؛ برای اطلاعات بیشتر \fBssh-keygen\fR(1) را ببینید\&. .sp به طور پیش‌فرض کلیدهای "ed25519" تولید می‌شوند، با این حال اگر ماشین مجازی نسخه بسیار قدیمی‌ای از \fBsshd\fR(8) داشته باشد، کلیدهای "rsa" نیز می‌توانند مفید باشند\&. .sp افزوده‌شده در نسخه 256\&. .RE .SS "گزینه‌های ورودی/خروجی (Input/Output Options)" .PP \fB\-\-console=\fR\fB\fIMODE\fR\fR .RS 4 نحوه راه‌اندازی کنسول ماشین مجازی را پیکربندی می‌کند\&. یکی از مقادیر "interactive"، "read\-only"، "native"، "gui" یا "headless" را می‌پذیرد\&. مقدار پیش‌فرض "interactive" است\&. "interactive" یک رابط ترمینال تعاملی به ماشین مجازی ارائه می‌دهد\&. "read\-only" مشابه است، اما اکیداً فقط‌خواندنی است، یعنی هیچ ورودی از کاربر را نمی‌پذیرد\&. "native" نیز یک رابط مبتنی بر TTY ارائه می‌دهد، اما از پیاده‌سازی بومی qemu استفاده می‌کند (که به معنای در دسترس بودن مانیتور qemu است)\&. "gui" رابط گرافیکی کاربر در qemu را نمایش می‌دهد\&. "headless" ماشین مجازی را بدون هیچ‌گونه کنسولی اجرا می‌کند، که برای استفاده خودکار یا اسکریپت‌شده مفید است\&. .sp افزوده‌شده در نسخه 256\&. .RE .PP \fB\-\-console\-transport=\fR\fB\fITRANSPORT\fR\fR .RS 4 پروتکل انتقال مورد استفاده برای کنسول ماشین مجازی را پیکربندی می‌کند\&. یکی از مقادیر "virtio" یا "serial" را می‌پذیرد\&. مقدار پیش‌فرض "virtio" است\&. "virtio" از یک دستگاه virtio\-serial استفاده می‌کند که به صورت /dev/hvc0 در ماشین مجازی ظاهر می‌شود\&. "serial" از یک درگاه سریال معمولی استفاده می‌کند که به صورت /dev/ttyS0 (یا /dev/ttyAMA0 در معماری ARM) در ماشین مجازی ظاهر می‌شود\&. این گزینه تنها در حالت‌های \fB\-\-console=interactive\fR، \fB\-\-console=read\-only\fR و \fB\-\-console=native\fR اثرگذار است\&. .sp افزوده‌شده در نسخه 261\&. .RE .PP \fB\-\-background=\fR\fB\fICOLOR\fR\fR .RS 4 رنگ پس‌زمینه ترمینال را تا زمانی که ماشین مجازی در حال اجرا است به رنگ ANSI مشخص‌شده تغییر می‌دهد\&. رنگ مشخص‌شده باید یک رنگ پس‌زمینه بر اساس ANSI X3\&.64 SGR باشد، یعنی رشته‌هایی مانند "40"، "41"، \&...، "47"، "48;2;\&..."، "48;5;\&..."\&. برای جزئیات، \m[blue]\fBکدهای فرار ANSI (ویکی‌پدیا)\fR\m[]\&\s-2\u[2]\d\s+2 را ببینید\&. برای غیرفعال کردن رنگ‌آمیزی یک رشته خالی اختصاص دهید\&. این گزینه تنها در حالت‌های \fB\-\-console=interactive\fR و \fB\-\-console=read\-only\fR اثرگذار است\&. .sp افزوده‌شده در نسخه 256\&. .RE .SS "اعتبارنامه‌ها (Credentials)" .PP \fB\-\-load\-credential=\fR\fB\fIID\fR\fR\fB:\fR\fB\fIPATH\fR\fR, \fB\-\-set\-credential=\fR\fB\fIID\fR\fR\fB:\fR\fB\fIVALUE\fR\fR .RS 4 ارسال یک اعتبارنامه به ماشین مجازی\&. این دو گزینه متناظر با تنظیمات \fILoadCredential=\fR و \fISetCredential=\fR در فایل‌های واحد هستند\&. برای جزئیات درباره این مفاهیم و همچنین نحوه نگارش آرگومان‌های این گزینه‌ها، \fBsystemd.exec\fR(5) را ببینید\&. .sp به منظور گنجاندن داده‌های باینری در داده‌های اعتبارنامه برای \fB\-\-set\-credential=\fR، از گریز به سبک زبان C استفاده کنید (یعنی "\en" برای گنجاندن خط جدید، یا "\ex00" برای گنجاندن یک بایت \fBNUL\fR)\&. توجه داشته باشید که پوسته فراخواننده ممکن است یک بار گریززدایی را اعمال کند، بنابراین ممکن است به دو بار گریز دادن نیاز باشد! .sp اعتبارنامه‌ها ترجیحاً از طریق رشته‌های SMBIOS Type 11 یا فایل‌های fw_cfg در QEMU به ماشین مجازی منتقل می‌شوند\&. اگر هیچ‌یک از این سازوکارها در دسترس نباشد، اعتبارنامه‌ها در خط فرمان هسته با استفاده از \fIsystemd\&.set_credential_binary=\fR ارسال می‌شوند که یک کانال محرمانه نیست\&. در این حالت از این روش برای ارسال اطلاعات محرمانه به ماشین مجازی استفاده نکنید\&. .sp افزوده‌شده در نسخه 255\&. .RE .SS "سایر گزینه‌ها (Other)" .PP \fB\-\-no\-pager\fR .RS 4 خروجی را به یک صفحه‌بند لوله‌کشی نمی‌کند\&. .RE .PP \fB\-h\fR, \fB\-\-help\fR .RS 4 یک متن راهنمای کوتاه را چاپ کرده و خارج می‌شود\&. .RE .PP \fB\-\-version\fR .RS 4 یک رشته کوتاه نسخه برنامه را چاپ کرده و خارج می‌شود\&. .RE .PP \fB\-\-no\-ask\-password\fR .RS 4 برای عملیات دارای دسترسی ویژه از کاربر درخواست احراز هویت نمی‌کند\&. .RE .SH "محیط (ENVIRONMENT)" .PP \fI$SYSTEMD_LOG_LEVEL\fR .RS 4 حداکثر سطح لاگ پیام‌های منتشرشده (پیام‌های با سطح لاگ بالاتر، یعنی کم‌اهمیت‌تر، متوقف خواهند شد)\&. فهرستی از مقادیر جداشده با کاما را می‌پذیرد\&. یک مقدار می‌تواند یکی از موارد زیر (به ترتیب کاهش اهمیت) باشد: \fBemerg\fR، \fBalert\fR، \fBcrit\fR، \fBerr\fR، \fBwarning\fR، \fBnotice\fR، \fBinfo\fR، \fBdebug\fR، یا یک عدد صحیح در محدوده 0\&...7\&. برای اطلاعات بیشتر \fBsyslog\fR(3) را ببینید\&. هر مقدار می‌تواند به صورت اختیاری با یکی از پیشوندهای \fBconsole\fR، \fBsyslog\fR، \fBkmsg\fR یا \fBjournal\fR همراه با یک دونقطه مشخص شود تا حداکثر سطح لاگ را برای آن مقصد خاص لاگ تنظیم کند (به عنوان مثال \fBSYSTEMD_LOG_LEVEL=debug,console:info\fR مشخص می‌کند که لاگ در سطح debug ثبت شود مگر در هنگام ارسال لاگ به کنسول که باید در سطح info باشد)\&. توجه داشته باشید که حداکثر سطح لاگ سراسری بر هر حداکثر سطح لاگ اختصاصی مقصد اولویت دارد\&. .RE .PP \fI$SYSTEMD_LOG_COLOR\fR .RS 4 یک مقدار بولی\&. اگر true باشد، پیام‌های نوشته‌شده در tty بر اساس اولویت رنگ‌آمیزی می‌شوند\&. .sp این تنظیم تنها زمانی مفید است که پیام‌ها مستقیماً در ترمینال نوشته شوند، زیرا \fBjournalctl\fR(1) و سایر ابزارهایی که لاگ‌ها را نمایش می‌دهند، پیام‌ها را خود بر اساس سطح لاگ رنگ‌آمیزی می‌کنند\&. .RE .PP \fI$SYSTEMD_LOG_TIME\fR .RS 4 یک مقدار بولی\&. اگر true باشد، پیام‌های لاگ کنسول با یک برچسب زمانی پیشوندگذاری می‌شوند\&. .sp این تنظیم تنها زمانی مفید است که پیام‌ها مستقیماً در ترمینال یا یک فایل نوشته شوند، زیرا \fBjournalctl\fR(1) و سایر ابزارهایی که لاگ‌ها را نمایش می‌دهند، خود برچسب‌های زمانی را بر اساس فراداده‌های مدخل پیوست می‌کنند\&. .RE .PP \fI$SYSTEMD_LOG_LOCATION\fR .RS 4 یک مقدار بولی\&. اگر true باشد، پیام‌ها با نام فایل و شماره خط در کد منبع که پیام از آن سرچشمه می‌گیرد، پیشوندگذاری می‌شوند\&. .sp توجه داشته باشید که محل لاگ در هر صورت اغلب به عنوان فراداده به مدخل‌های ژورنال پیوست می‌شود\&. با این حال، گنجاندن مستقیم آن در متن پیام می‌تواند در هنگام اشکال‌زدایی برنامه‌ها سودمند باشد\&. .RE .PP \fI$SYSTEMD_LOG_TID\fR .RS 4 یک مقدار بولی\&. اگر true باشد، پیام‌ها با شناسه عددی رشته (TID) جاری پیشوندگذاری می‌شوند\&. .sp توجه داشته باشید که این اطلاعات در هر صورت به عنوان فراداده به مدخل‌های ژورنال پیوست می‌شود\&. با این حال، گنجاندن مستقیم آن در متن پیام می‌تواند در هنگام اشکال‌زدایی برنامه‌ها سودمند باشد\&. .RE .PP \fI$SYSTEMD_LOG_TARGET\fR .RS 4 مقصد پیام‌های لاگ\&. یکی از موارد \fBconsole\fR (ثبت در tty متصل‌شده)، \fBconsole\-prefixed\fR (ثبت در tty متصل‌شده اما با پیشوندهایی که سطح لاگ و "facility" را کدگذاری می‌کنند، \fBsyslog\fR(3) را ببینید)، \fBkmsg\fR (ثبت در بافر حلقوی لاگ هسته)، \fBjournal\fR (ثبت در ژورنال)، \fBjournal\-or\-kmsg\fR (ثبت در ژورنال در صورت موجود بودن، و در غیر این صورت در kmsg)، \fBauto\fR (تعیین خودکار مقصد لاگ مناسب، حالت پیش‌فرض)، \fBnull\fR (غیرفعال کردن خروجی لاگ)\&. .RE .PP \fI$SYSTEMD_LOG_RATELIMIT_KMSG\fR .RS 4 کنترل می‌کند که آیا نرخ ارسال پیام به kmsg محدود شود یا خیر\&. یک مقدار بولی را می‌پذیرد\&. مقدار پیش‌فرض "true" است\&. در صورت غیرفعال بودن، systemd نرخ پیام‌های نوشته‌شده در kmsg را محدود نخواهد کرد\&. .RE .PP \fI$SYSTEMD_PAGER\fR, \fI$PAGER\fR .RS 4 صفحه‌بندی که هنگام مشخص نشدن \fB\-\-no\-pager\fR استفاده می‌شود\&. در صورت تنظیم بودن \fI$SYSTEMD_PAGER\fR از آن استفاده می‌شود؛ در غیر این صورت \fI$PAGER\fR استفاده می‌گردد\&. اگر نه \fI$SYSTEMD_PAGER\fR و نه \fI$PAGER\fR تنظیم نشده باشند، مجموعه‌ای از پیاده‌سازی‌های شناخته‌شده صفحه‌بند به نوبت آزمایش می‌شوند، از جمله \fBless\fR(1) و \fBmore\fR(1)، تا زمانی که یکی یافت شود\&. اگر هیچ پیاده‌سازی صفحه‌بندی کشف نشود، هیچ صفحه‌بندی فراخوانی نخواهد شد\&. تنظیم این متغیرهای محیطی روی یک رشته خالی یا مقدار "cat" معادل ارسال \fB\-\-no\-pager\fR است\&. .sp نکته: اگر \fI$SYSTEMD_PAGERSECURE\fR تنظیم نشده باشد، \fI$SYSTEMD_PAGER\fR و \fI$PAGER\fR تنها می‌توانند برای غیرفعال کردن صفحه‌بند (با "cat" یا "") استفاده شوند، و در غیر این صورت نادیده گرفته می‌شوند\&. .RE .PP \fI$SYSTEMD_LESS\fR .RS 4 بازنویسی گزینه‌های ارسال‌شده به \fBless\fR (به طور پیش‌فرض "FRSXMK")\&. .sp کاربران ممکن است به ویژه تمایل داشته باشند دو گزینه را تغییر دهند: .PP \fBK\fR .RS 4 این گزینه به صفحه‌بند دستور می‌دهد که با فشردن Ctrl+C بلافاصله خارج شود\&. برای اجازه دادن به \fBless\fR جهت مدیریت Ctrl+C توسط خود برای بازگشت به خط فرمان صفحه‌بند، این گزینه را حذف کنید\&. .sp اگر مقدار \fI$SYSTEMD_LESS\fR شامل "K" نباشد و صفحه‌بند فراخوانی‌شده \fBless\fR باشد، Ctrl+C توسط برنامه اجرایی نادیده گرفته می‌شود و باید توسط صفحه‌بند مدیریت گردد\&. .RE .PP \fBX\fR .RS 4 این گزینه به صفحه‌بند دستور می‌دهد رشته‌های مقداردهی اولیه و لغو مقداردهی اولیه termcap را به ترمینال ارسال نکند\&. این گزینه به طور پیش‌فرض تنظیم شده است تا خروجی دستور حتی پس از خروج از صفحه‌بند در ترمینال قابل مشاهده باقی بماند\&. با این وجود، این کار مانع از عملکرد برخی از قابلیت‌های صفحه‌بند می‌شود، به ویژه خروجی صفحه‌بندی‌شده را نمی‌توان با ماوس پیمایش کرد\&. .RE .sp توجه داشته باشید که تنظیم متغیر محیطی معمولی \fI$LESS\fR هیچ تاثیری بر فراخوانی‌های \fBless\fR توسط ابزارهای systemd ندارد\&. .sp برای بحث بیشتر \fBless\fR(1) را ببینید\&. .RE .PP \fI$SYSTEMD_LESSCHARSET\fR .RS 4 بازنویسی مجموعه نویسه ارسال‌شده به \fBless\fR (به طور پیش‌فرض "utf\-8"، اگر ترمینال فراخواننده سازگار با UTF\-8 تشخیص داده شود)\&. .sp توجه داشته باشید که تنظیم متغیر محیطی معمولی \fI$LESSCHARSET\fR هیچ تاثیری بر فراخوانی‌های \fBless\fR توسط ابزارهای systemd ندارد\&. .RE .PP \fI$SYSTEMD_PAGERSECURE\fR .RS 4 دستورات رایج صفحه‌بند مانند \fBless\fR(1)، علاوه بر «صفحه‌بندی»، یعنی پیمایش در خروجی، از باز کردن یا نوشتن در فایل‌های دیگر و اجرای دستورات دلخواه پوسته پشتیبانی می‌کنند\&. هنگامی که دستورات با امتیازات بالا، مثلاً تحت \fBsudo\fR(8) یا \fBpkexec\fR(1) فراخوانی می‌شوند، صفحه‌بند به یک مرز امنیتی تبدیل می‌شود\&. باید دقت شود که تنها برنامه‌های با قابلیت‌های کاملاً محدود به عنوان صفحه‌بند استفاده شوند و ویژگی‌های تعاملی ناخواسته مانند باز کردن یا ایجاد فایل‌های جدید یا راه‌اندازی زیرفرآیندها مجاز نباشند\&. «حالت امن» (secure mode) برای صفحه‌بند ممکن است همان‌طور که در زیر توضیح داده شده فعال شود، \fIاگر صفحه‌بند از آن پشتیبانی کند\fR (بیشتر صفحه‌بندها به گونه‌ای نوشته نشده‌اند که این موضوع را در نظر بگیرند)\&. توصیه می‌شود در هنگام اجازه دادن به کاربران غیرقابل‌اعتماد برای اجرای دستورات با دسترسی‌های بالا، یا «حالت امن» را صراحتاً فعال کنید یا صفحه‌بند را با استفاده از \fB\-\-no\-pager\fR یا \fIPAGER=cat\fR به طور کامل غیرفعال نمایید\&. .sp این گزینه یک آرگومان بولی می‌پذیرد\&. در صورت تنظیم روی true، «حالت امن» صفحه‌بند فعال می‌شود\&. در «حالت امن»، \fBLESSSECURE=1\fR هنگام فراخوانی صفحه‌بند تنظیم خواهد شد که به صفحه‌بند دستور می‌دهد دستوراتی را که فایل‌های جدید باز می‌کنند یا ایجاد می‌نمایند یا زیرفرآیندهای جدیدی را آغاز می‌کنند غیرفعال کند\&. در حال حاضر تنها \fBless\fR(1) شناخته شده است که این متغیر را درک کرده و «حالت امن» را پیاده‌سازی می‌کند\&. .sp در صورت تنظیم روی false، هیچ محدودیتی بر روی صفحه‌بند اعمال نمی‌شود\&. تنظیم \fISYSTEMD_PAGERSECURE=0\fR یا حذف نکردن آن از محیط به ارث رسیده ممکن است به کاربر اجازه دهد دستورات دلخواه را فراخوانی کند\&. .sp هنگامی که \fI$SYSTEMD_PAGERSECURE\fR تنظیم نشده باشد، ابزارهای systemd تلاش می‌کنند به طور خودکار تشخیص دهند که آیا «حالت امن» باید فعال شود و آیا صفحه‌بند از آن پشتیبانی می‌کند یا خیر\&. در صورتی که UID موثر با مالک نشست ورود یکسان نباشد ( \fBgeteuid\fR(2) و \fBsd_pid_get_owner_uid\fR(3) را ببینید)، یا هنگام اجرا تحت \fBsudo\fR(8) یا ابزارهای مشابه (که در آن‌ها \fI$SUDO_UID\fR تنظیم شده است \&\s-2\u[3]\d\s+2)، «حالت امن» فعال می‌شود\&. در این موارد، \fISYSTEMD_PAGERSECURE=1\fR تنظیم خواهد شد و صفحه‌بندهایی که شناخته نشده‌اند «حالت امن» را پیاده‌سازی کنند اصلاً استفاده نخواهند شد\&. توجه داشته باشید که این تشخیص خودکار تنها رایج‌ترین سازوکارها را برای ارتقای امتیاز پوشش می‌دهد و به عنوان یک تسهیل در نظر گرفته شده است\&. توصیه می‌شود که صراحتاً \fI$SYSTEMD_PAGERSECURE\fR را تنظیم کرده یا صفحه‌بند را غیرفعال کنید\&. .sp توجه داشته باشید که اگر قرار است متغیرهای \fI$SYSTEMD_PAGER\fR یا \fI$PAGER\fR به جز برای غیرفعال کردن صفحه‌بند رعایت شوند، \fI$SYSTEMD_PAGERSECURE\fR نیز باید تنظیم شده باشد\&. .RE .PP \fI$SYSTEMD_COLORS\fR .RS 4 یک آرگومان بولی یا یک مقدار خاص را می‌پذیرد\&. به طور پیش‌فرض (تنظیم‌نشده)، \fBsystemd\fR و ابزارهای وابسته در صورت امکان از رنگ‌ها در خروجی خود استفاده خواهند کرد\&. اگر \fI$COLORTERM\fR روی "truecolor" یا "24bit" تنظیم شده باشد، رنگ‌های ۲۴ بیتی فعال می‌شوند، در غیر این صورت ۲۵۶ رنگ فعال خواهد شد، مگر اینکه \fI$NO_COLOR\fR یا \fI$TERM\fR نشان دهد که رنگ‌ها غیرفعال هستند\&. .PP \fBtrue\fR .RS 4 همانند حالت تنظیم‌نشده است، با این تفاوت که \fI$NO_COLOR\fR نادیده گرفته می‌شود\&. .RE .PP \fBfalse\fR .RS 4 خروجی تک‌رنگ خواهد بود\&. .RE .PP "16", "256", "24bit" .RS 4 به ترتیب همیشه از ۱۶ رنگ پایه ANSI، ۲۵۶ رنگ یا رنگ ۲۴ بیتی استفاده می‌کند\&. .RE .PP "auto\-16", "auto\-256", "auto\-24bit" .RS 4 از تعداد رنگ‌های داده‌شده با توجه به \fI$TERM\fR و آنچه کنسول به آن متصل است استفاده می‌کند\&. .RE .RE .PP \fI$SYSTEMD_URLIFY\fR .RS 4 مقدار باید یک بولی باشد\&. کنترل می‌کند که آیا پیوندهای قابل کلیک در خروجی برای شبیه‌سازهای ترمینالی که از این قابلیت پشتیبانی می‌کنند تولید شود یا خیر\&. این گزینه را می‌توان برای بازنویسی تصمیمی که \fBsystemd\fR بر اساس \fI$TERM\fR و سایر شرایط می‌گیرد مشخص کرد\&. .RE .SH "مثال‌ها (EXAMPLES)" .PP \fBمثال\ \&۱.\ \&اجرای یک تصویر ماشین مجازی Arch Linux تولیدشده توسط mkosi\fR .sp .if n \{\ .RS 4 .\} .nf $ mkosi \-d arch \-p systemd \-p linux \-\-autologin \-o image\&.raw \-f build $ systemd\-vmspawn \-\-image=image\&.raw .fi .if n \{\ .RE .\} .PP \fBمثال\ \&۲.\ \&وارد کردن و اجرای یک تصویر Fedora 44 Cloud با استفاده از importctl\fR .sp .if n \{\ .RS 4 .\} .nf $ curl \-L \e \-O https://download\&.fedoraproject\&.org/pub/fedora/linux/releases/44/Cloud/x86_64/images/Fedora\-Cloud\-Base\-Generic\-44\-1\&.7\&.x86_64\&.qcow2 \e \-O https://download\&.fedoraproject\&.org/pub/fedora/linux/releases/44/Cloud/x86_64/images/Fedora\-Cloud\-44\-1\&.7\-x86_64\-CHECKSUM \e \-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 .fi .if n \{\ .RE .\} .PP \fBمثال\ \&۳.\ \&ساخت و اجرای تصویر سیستمی systemd و هدایت ژورنال ماشین مجازی به یک فایل محلی\fR .sp .if n \{\ .RS 4 .\} .nf $ mkosi build $ systemd\-vmspawn \e \-D mkosi\&.output/system \e \-\-private\-users $(grep $(whoami) /etc/subuid | cut \-d: \-f2) \e \-\-linux mkosi\&.output/system\&.efi \e \-\-forward\-journal=vm\&.journal \e enforcing=0 .fi .if n \{\ .RE .\} .PP نکته: این مثال همچنین از یک آرگومان خط فرمان هسته برای اطمینان از راه‌اندازی نشدن SELinux در حالت اجباری (enforcing) استفاده می‌کند\&. .PP \fBمثال\ \&۴.\ \&اتصال SSH به یک ماشین مجازی در حال اجرا با استفاده از systemd\-ssh\-proxy\fR .sp .if n \{\ .RS 4 .\} .nf $ mkosi build $ my_vsock_cid=3735928559 $ systemd\-vmspawn \e \-D mkosi\&.output/system \e \-\-private\-users $(grep $(whoami) /etc/subuid | cut \-d: \-f2) \e \-\-linux mkosi\&.output/system\&.efi \e \-\-vsock\-cid $my_vsock_cid \e enforcing=0 $ ssh root@vsock/$my_vsock_cid \-i /run/user/$UID/systemd/vmspawn/machine\-*\-system\-ed25519 .fi .if n \{\ .RE .\} .SH "کدهای خروج (EXIT STATUS)" .PP در صورت وقوع خطا، مقدار errno به کد بازگشتی منتقل می‌شود\&. اگر EXIT_STATUS توسط تصویر در حال اجرا ارائه شود، همان مقدار بازگردانده می‌شود\&. در غیر این صورت، EXIT_SUCCESS بازگردانده خواهد شد\&. .SH "همچنین ببینید (SEE ALSO)" .PP \fBsystemd\fR(1), \fBmkosi\fR(1), \fBmachinectl\fR(1), \fBimportctl\fR(1), \m[blue]\fBمشخصات بوت‌لودر UAPI\&.1\fR\m[]\&\s-2\u[1]\d\s+2 .SH "نکات (NOTES)" .IP " 1." 4 مشخصات بوت‌لودر UAPI.1 .RS 4 \%https://uapi-group.org/specifications/specs/boot_loader_specification .RE .IP " 2." 4 کدهای فرار ANSI (ویکی‌پدیا) .RS 4 \%https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_(Select_Graphic_Rendition)_parameters .RE .IP " 3." 4 توصیه می‌شود که ابزارهای دیگر در صورت لزوم \fI$SUDO_UID\fR را تنظیم و بررسی کنند، و با آن به عنوان یک رابط رایج رفتار نمایند.