الخيارات¶
تُمرر
المعطيات
الزائدة
كمعطيات
إضافية
لسطر أوامر
النواة
باستخدام SMBIOS.
الخيارات
التالية
مفهومة:
-q، --quiet
يوقف أي
مخرجات
حالة من
الأداة
نفسها. عند
استخدام
هذا
المفتاح،
سيكون
المخرج
الوحيد من vmspawn
هو مخرجات
الطرفية
لنظام
تشغيل
الآلة
الافتراضية
نفسه.
أُضيف في
الإصدار 256.
--system، --user
يحدد ما
إذا كان
سيتم
التفاعل مع
مدير
المستخدم
أو مدير
النظام وما
إذا كان
سيتم
التسجيل في
نسخة machined
الخاصة
بالمستخدم
أو نسخة machined
الخاصة
بالنظام.
إذا لم
يُحدد،
فسيُستخدم
مدير
النظام
ونسخة machined عند
التشغيل
كجذر (root)،
وإلا
فسيُستخدم
مدير
المستخدم
ونسخة machined.
أُضيف في
الإصدار 260.
خيارات الصورة¶
-D، --directory=
الدليل
المراد
استخدامه
كجذر لنظام
الملفات
للآلة
الافتراضية.
يجب تحديد
أحد
الخيارين
--directory= أو --image=.
إذا لم
يُحدد
أيهما،
يُفترض --directory=..
ملاحظة:
إذا كنت
توصل
دليلًا لا
يملكه
الجذر، فقد
تحتاج إلى
--private-users=
للمطابقة
مع مساحة
أسماء subuid
الخاصة
بالمستخدم.
يتوفر مثال
لاحقًا حول
كيفية
استخدام /etc/subuid
لهذا
الغرض.
أُضيف في
الإصدار 256.
-i، --image=
صورة قرص
نظام ملفات
الجذر (أو
عقدة جهاز)
للآلة
الافتراضية.
أُضيف في
الإصدار 255.
--image-format=FORMAT
يحدد
تنسيق صورة
القرص
الممررة
إلى
--image=. يقبل
إما "raw" أو "qcow2".
القيمة
المبدئية
هي "raw". لاحظ
أن "qcow2" مدعوم
فقط
للملفات
العادية،
وليس
للأجهزة
الكتلية.
أُضيف في
الإصدار 260.
-x، --ephemeral
إذا
حُدد،
ستعمل
الآلة
الافتراضية
بلقطة
مؤقتة
لنظام
ملفاتها
تُحذف فور
انتهاء
الآلة. يعمل
حاليًا مع
--image= فقط. لاحظ
أن
--ephemeral لن
يعمل مع
--extra-drive=.
أُضيف في
الإصدار 260.
ضبط المضيف¶
--cpus=CPUS
عدد
وحدات
المعالجة
المركزية
لبدء الآلة
الافتراضية
بها.
المبدئي هو 1.
أُضيف في
الإصدار 255.
--ram=BYTES
كمية
الذاكرة
لبدء الآلة
الافتراضية
بها.
المبدئي هو 2G.
أُضيف في
الإصدار 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).
المعرفات
خارج هذا
النطاق
محجوزة.
مبدئيًا،
سيحاول vmspawn
اشتقاق CID
للضيف من
اسم
الجهاز، مع
الرجوع إلى CID
عشوائي إذا
كان هذا
المعرف
محجوزًا.
أُضيف في
الإصدار 255.
--tpm=BOOL
يتحكم في
تقديم جهاز TPM
للضيف، عبر
swtpm(8). إذا لم
يُحدد أو
ضُبط على
auto،
فسيتحقق vmspawn
من وجود
برنامج swtpm
آليًا. إذا
كان نعم،
سيُصر على
دعم swtpm. إذا
كان لا،
سيُعطل TPM.
أُضيف في
الإصدار 256.
--tpm-state=PATH|auto|off
يضبط
مكان وضع
حالة TPM، في
حال تمكين
دعم TPM (انظر
--tpm=
أعلاه). يأخذ
مسار نظام
ملفات مطلق
لدليل لوضع
الحالة فيه
بشكل دائم.
إذا كان
الدليل
مفقودًا،
فسيُنشأ
حسب الحاجة.
إذا ضُبط
على
السلسلة
الخاصة "auto"،
فسيُشتق
مسار دائم
آليًا من
مسار صورة
الآلة
الافتراضية
أو مسار
الدليل، مع
إلحاق
اللاحقة
".tpmstate". إذا
ضُبط على
السلسلة
الخاصة "off"،
فستُحفظ
حالة TPM بشكل
عابر فقط
وتُفرغ عند
إيقاف
تشغيل
الآلة
الافتراضية.
هذا الوضع
غير مناسب
للآلات
الافتراضية
التي تقفل
مفاتيح
تعمية
القرص بـ TPM،
حيث ستُفقد
هذه
المفاتيح
في كل إعادة
تشغيل.
المبدئي هو
"auto".
إذا حُدد
--ephemeral،
فسيتصرف
الخيار "auto"
مثل "off".
أُضيف في
الإصدار 258.
--linux=PATH
حدد صورة
نواة لينكس
لاستخدامها
في إقلاع
النواة
المباشر.
إذا
استُخدمت
صورة من نوع
دليل
وأُغفل
--linux=،
فسيقوم vmspawn
بالبحث عن
مدخلات
محمل
الإقلاع
وفقًا لـ
مواصفة
محمل
الإقلاع UAPI.1[1]
مع افتراض
أن XBOOTLDR يقع في /boot
و ESP هو /efi على
التوالي.
إذا لم
تُثبت نواة
في الصورة،
فستفشل
الصورة في
الإقلاع.
أُضيف في
الإصدار 256.
--initrd=PATH
حدد initrd
لاستخدامها
في إقلاع
النواة
المباشر.
إذا كان ملف
--linux= المزود
هو مدخل من
النوع رقم 2
في
مواصفة
محمل
الإقلاع UAPI.1[1]،
فإن هذا
المعطى غير
مطلوب. إذا
لم تُثبت initrd
في الصورة،
فستفشل
الصورة في
الإقلاع.
يمكن
تحديد --initrd=
عدة مرات
وسيقوم vmspawn
بدمجها
معًا.
أُضيف في
الإصدار 256.
-n, --network-tap
إنشاء
جهاز TAP للربط
الشبكي مع
الآلة
الافتراضية.
ملاحظة:
امتيازات
الجذر
مطلوبة
لاستخدام
شبكة TAP.
بالإضافة
إلى ذلك،
يجب أن يكون
systemd-networkd(8) يعمل
ومضبوطًا
بشكل صحيح
على المضيف
لتهيئة
واجهة
المضيف.
يمكن
العثور على
ملف ".network" ذي
الصلة في
/usr/lib/systemd/network/80-vm-vt.network.
أُضيف في
الإصدار 255.
--network-user-mode
استخدام
وضع شبكة
المستخدم.
أُضيف في
الإصدار 255.
--firmware=PATH
يأخذ
مسارًا
مطلقًا، أو
مسارًا
نسبيًا
يبدأ بـ ./.
يحدد ملف
تعريف
البرنامج
الثابت
بصيغة JSON،
والذي يسمح
باختيار
البرنامج
الثابت
للإقلاع في
الآلة
الافتراضية.
إذا لم
يُحدد،
فسيُكتشف
برنامج
ثابت مناسب
آليًا. إذا
حُددت
السلسلة
الخاصة "list"،
فستُسرد
جميع
البرامج
الثابتة
المكتشفة.
أُضيف في
الإصدار 256.
--discard-disk=BOOL
يتحكم في
معالجة qemu
لطلبات
التخلص (discard) من
الآلة
الافتراضية.
هذا يمنع
الآلات
الافتراضية
التي تعمل
لفترات
طويلة من
استهلاك
مساحة قرص
أكثر من
المطلوب.
هذا الخيار
مفعل
مبدئيًا.
أُضيف في
الإصدار 256.
--secure-boot=BOOL
اضبط ما
إذا كان
سيتم البحث
عن برنامج
ثابت يدعم
الإقلاع
الآمن.
إذا لم
يُحدد
الخيار أو
ضُبط على
auto،
فسيُستخدم
أول برنامج
ثابت
يُكتشف. إذا
ضُبط
الخيار على
"yes"،
فسيُختار
أول برنامج
ثابت يدعم
الإقلاع
الآمن. إذا
حُدد "no"،
فسيُختار
أول برنامج
ثابت لا
يدعم
الإقلاع
الآمن.
أُضيف في
الإصدار 255.
--grow-image=BYTES, -G BYTES
يزيد حجم
ملف الصورة
المحدد بـ
--image= إلى
الحجم
المحدد
بالبايت
إذا كان
أصغر من ذلك.
لا ينفذ أي
عملية إذا
لم يُستخدم
ملف صورة أو
إذا كان ملف
الصورة
بحجم الحجم
المطلوب أو
أكبر منه
بالفعل.
يقبل الحجم
المحدد
اللواحق
المعتادة K،
M، G (بأساس 1024).
تُقرب
القيم
المحددة
لأعلى إلى
مضاعفات 4096.
أُضيف في
الإصدار 258.
--smbios11=STRING, -s STRING
يمرر
السلسلة
المحددة
إلى الآلة
الافتراضية
كسلسلة
مورد SMBIOS من
النوع رقم 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
المحدد
للآلة
الافتراضية.
سيقوم نظام
البدء
بتهيئة /etc/machine-id
من هذا إذا
لم يكن هذا
الملف قد
ضُبط بعد.
لاحظ أن هذا
الخيار
يسري فقط
إذا كان ملف
/etc/machine-id في الآلة
الافتراضية
فارغًا.
أُضيف في
الإصدار 256.
خيارات الخاصية¶
-S، --slice=
يجعل
الآلة
الافتراضية
جزءًا من
الـ slice
المحددة،
بدلاً من machine.slice
المبدئية.
ينطبق هذا
فقط إذا
كانت الآلة
تعمل في
وحدة scope خاصة
بها، أي في
حال عدم
استخدام
--keep-unit.
أُضيف في
الإصدار 258.
--property=
يضبط
خاصية وحدة
على وحدة
الـ scope
للتسجيل في
الجهاز.
ينطبق هذا
فقط إذا
كانت الآلة
تعمل في
وحدة scope خاصة
بها، أي في
حال عدم
استخدام
--keep-unit.
يأخذ
تعيينات
خصائص
الوحدة
بنفس تنسيق
systemctl set-property. هذا
مفيد
لتعيين
حدود
الذاكرة
وما شابه
للآلة
الافتراضية.
أُضيف في
الإصدار 258.
--register=
يتحكم في
تسجيل
الآلة
الافتراضية
في
systemd-machined(8). يأخذ
معطى
منطقيًا،
وقيمته
المبدئية
هي "yes" عند
التشغيل
كجذر (root)، و "no"
عند
التشغيل
كمستخدم
عادي. هذا
يضمن
إمكانية
الوصول إلى
الآلة
الافتراضية
عبر
machinectl(1).
ملاحظة:
امتيازات
الجذر
مطلوبة
لاستخدام
هذا الخيار
لأن
التسجيل في
systemd-machined(8) يتطلب
استدعاءات
أساليب D-Bus
مميزة.
أُضيف في
الإصدار 256.
خيارات مساحات أسماء المستخدمين¶
--private-users=UID_SHIFT[:UID_RANGE]
يتحكم في
مساحات
أسماء
المستخدمين
تحت
--directory=. في
حال
تمكينه،
يُوجّه
virtiofsd(1)
لمطابقة
معرفات
المستخدمين
والمجموعات
(UIDs و GIDs). يتضمن
ذلك مطابقة
معرفات UIDs/GIDs
الخاصة
المستخدمة
في الآلة
الافتراضية
(بدءًا من
المستخدم
الجذر
للآلة
الافتراضية
0 فما فوق)
بنطاق من
معرفات UIDs/GIDs
على المضيف
غير مستخدم
لأغراض
أخرى (عادةً
في النطاق
الذي
يتجاوز UID/GID
المضيف 65536).
إذا حُدد
رقم أو
رقمان
مفصولان
بنقطتين،
فسيتم
تشغيل
مساحات
أسماء
المستخدمين.
يحدد UID_SHIFT أول
معرف UID/GID
للمضيف
لمطابقته،
و UID_RANGE
اختياري
ويحدد عدد
معرفات UIDs/GIDs
للمضيف
المراد
تخصيصها
للآلة
الافتراضية.
إذا أُغفل
UID_RANGE،
فسيُخصص 65536
معرف UID/GID.
عند
استخدام
مساحات
أسماء
المستخدمين،
يُختار
دائمًا
نطاق GID
المخصص لكل
آلة
افتراضية
ليكون
مطابقًا
لنطاق UID.
أُضيف في
الإصدار 256.
خيارات الوصل¶
--bind=PATH, --bind-ro=PATH
وصل دليل
من المضيف
إلى الآلة
الافتراضية.
يأخذ
واحدًا من:
معطى مسار
— وفي هذه
الحالة
سيُوصل
المسار
المحدد من
المضيف إلى
نفس المسار
في الآلة
الافتراضية،
أو زوج من
المسارات
مفصول
بينهما
بنقطتين —
وفي هذه
الحالة
يكون
المسار
الأول
المحدد هو
المصدر في
المضيف،
والمسار
الثاني هو
الوجهة في
الآلة
الافتراضية.
إذا لم يكن
مسار
المصدر
مطلقًا،
فسيُحلل
بالنسبة
لدليل
العمل
الحالي.
ينشئ خيار
--bind-ro= عمليات
وصل ربط
للقراءة
فقط. تُفسر
هروبات
الشرطة
المائلة
العكسية،
لذا يمكن
استخدام "\:"
لتضمين
النقطتين
في أي من
المسارين.
يمكن تحديد
هذا الخيار
عدة مرات
لإنشاء
نقاط وصل
ربط مستقلة
متعددة.
أُضيف في
الإصدار 256.
--extra-drive=[FORMAT:]PATH
يأخذ
صورة قرص أو
جهازًا
كتليًا على
المضيف
ويمد به
الآلة
الافتراضية
كمحرك
أقراص آخر.
اختياريًا،
يمكن تحديد
تنسيق
الصورة
بوضع "raw" أو
"qcow2" متبوعة
بنقطتين
كبادئة
للمسار.
التنسيق
المبدئي هو
"raw". لاحظ أن
"qcow2" مدعوم
فقط
للملفات
العادية،
وليس
للأجهزة
الكتلية.
أُضيف في
الإصدار 256.
--bind-user=
يربط
الدليل
المنزلي
للمستخدم
المحدد على
المضيف
بالآلة
الافتراضية.
يأخذ اسم
مستخدم
موجود على
المضيف
كمعطى. يمكن
استخدامه
عدة مرات
لربط
مستخدمين
متعددين
بالآلة
الافتراضية.
يقوم هذا
بأمرين:
1.يُتاح
الدليل
المنزلي
للمستخدم
من المضيف
في /run/vmhost/home/
باستخدام virtiofs.
يقوم virtiofsd
بترجمة
المعرفات
لمطابقة UID/GID
الخاص
بمستخدم
المضيف مع UID/GID
المخصص له
في الآلة
الافتراضية.
2.تُولد
سجلات
مستخدم
ومجموعة
بتنسيق JSON تصف
المستخدم
المطابق
والتي
تُمرر إلى
الآلة
الافتراضية
باستخدام
وثائق
الاستيثاق
"userdb.transient.*". وهي
تحتوي على
تمثيل مصغر
لسجل
مستخدم
المضيف،
معدلًا
وفقًا لـ UID/GID
ومسار
الدليل
المنزلي
المخصص
للمستخدم
في الآلة
الافتراضية.
ستلتقط
وحدة
nss-systemd(8)
الخاصة بـ glibc NSS
هذه
السجلات من
هناك
وتجعلها
متاحة في
قواعد
بيانات
المستخدمين/المجموعات
بالآلة
الافتراضية.
يضمن
الجمع بين
العمليتين
أعلاه
إمكانية
تسجيل
الدخول إلى
الآلة
الافتراضية
باستخدام
نفس
معلومات
الحساب
الموجودة
على المضيف.
تُطابق
بيانات
المستخدم
بشكل عابر
فقط، أثناء
تشغيل
الآلة
الافتراضية،
ولا تؤدي
عملية
المطابقة
نفسها إلى
تغييرات
دائمة في
الآلة
الافتراضية
(باستثناء
رسائل
السجل التي
قد تُولد
وقت تسجيل
الدخول وما
شابه). لاحظ
بشكل خاص أن
تخصيص UID/GID في
الآلة
الافتراضية
لا يتم بشكل
دائم. إذا تم
ربط
المستخدم
بشكل عابر،
فمن الأفضل
عدم السماح
للمستخدم
بإجراء
تغييرات
دائمة على
الآلة
الافتراضية.
إذا ترك
المستخدم
ملفات أو
أدلة
يملكها،
وأُعيد
استخدام
معرفات UIDs/GIDs
هذه أثناء
استدعاءات
الآلة
الافتراضية
لاحقًا
(ربما
باستخدام
مطابقة --bind-user=
مختلفة)،
فستكون تلك
الملفات
والأدلة
متاحة
للمستخدم
"الجديد".
تعمل
مطابقة
سجلات
المستخدم/المجموعة
فقط إذا
كانت الآلة
الافتراضية
تحتوي على
إصدار systemd 258 أو
أحدث، مع
ضبط nss-systemd بشكل
صحيح في nsswitch.conf.
انظر nss-systemd(8)
للتفاصيل.
لاحظ أن
سجل
المستخدم
المنقول من
المضيف إلى
الآلة
الافتراضية
سيحتوي على
هاش كلمة سر
يونكس (UNIX)
للمستخدم،
بحيث يمكن
تسجيل
الدخول
بسلاسة في
الآلة
الافتراضية.
إذا كانت
الآلة
الافتراضية
أقل
موثوقية من
المضيف،
فمن المهم
إذًا
استخدام
دالة هاش
قوية
لكلمات سر
يونكس (مثل yescrypt
أو ما شابه،
مع بادئة
الهاش "$y$").
أُضيف في
الإصدار 259.
--bind-user-shell=
عند
استخدامه
مع
--bind-user=،
يتضمن
الصدفة
المحددة في
سجلات
المستخدمين
المربوطين
بالآلة
الافتراضية.
يأخذ إما
قيمة
منطقية أو
مسارًا
مطلقًا.
•إذا كان
خاطئًا
(المبدئي)،
فلن تُمرر
أي صدفة في
سجلات
المستخدم
للمستخدمين
المربوطين
بالآلة
الافتراضية.
هذا يؤدي
لاستخدام
المستخدمين
المربوطين
للصدفة
المبدئية
للآلة
الافتراضية.
•إذا كان
صحيحًا،
تُدرج
الصدفات
المحددة في
سجلات
مستخدم
المضيف في
سجلات جميع
المستخدمين
المربوطين
بالآلة
الافتراضية.
•إذا
مُرر مسار
مطلق،
فسيُحدد
ذلك المسار
كصدفة
لسجلات
جميع
المستخدمين
المربوطين
بالآلة
الافتراضية.
ملاحظة: لن
يتحقق هذا
مما إذا
كانت
الصدفات
المحددة
موجودة في
الآلة
الافتراضية.
هذه
العملية
مدعومة فقط
بالاقتران
مع --bind-user=.
أُضيف في
الإصدار 259.
--bind-user-group=اسم
عند
استخدامه
مع
--bind-user=،
يتضمن
المجموعة
المحددة
كمجموعة
إضافية في
سجلات
المستخدمين
المربوطين
بالآلة
الافتراضية.
يأخذ اسم
مجموعة.
ملاحظة: لن
يتحقق هذا
مما إذا
كانت
المجموعات
المحددة
موجودة في
الآلة
الافتراضية.
هذه
العملية
مدعومة فقط
بالاقتران
مع --bind-user=.
أُضيف في
الإصدار 259.
خيارات التكامل¶
--forward-journal=FILE|DIR
توجيه
سجل (journal) الآلة
الافتراضية
إلى المضيف.
يُستخدم
systemd-journal-remote(8)
حاليًا
لاستقبال
مدخلات
السجل
الموجهة من
الآلة
الافتراضية
الضيفة.
يحدد هذا
الخيار
مكان حفظ
هذا السجل
على المضيف
وله نفس
دلالات
-o/
--output
الموضحة في
systemd-journal-remote(8).
أُضيف في
الإصدار 256.
--pass-ssh-key=BOOL
مبدئيًا،
يُولد
مفتاح SSH
للسماح لـ
systemd-vmspawn بفتح
اتصال D-Bus
بناقل systemd
الخاص
بالآلة
الافتراضية.
ضبط هذا على
"no" سيعطل
توليد
مفتاح SSH.
المفاتيح
المولدة
عابرة. أي
أنها صالحة
فقط
للاستدعاء
الحالي لـ
systemd-vmspawn،
وعادةً لا
تُحفظ بشكل
دائم.
أُضيف في
الإصدار 256.
--ssh-key-type=TYPE
يضبط نوع
مفتاح SSH
المراد
توليده،
انظر
ssh-keygen(1)
لمزيد من
المعلومات.
مبدئيًا،
تُولد
مفاتيح "ed25519"،
ومع ذلك قد
تكون
مفاتيح "rsa"
مفيدة
أيضًا إذا
كانت الآلة
الافتراضية
تحتوي على
إصدار قديم
جدًا من sshd(8).
أُضيف في
الإصدار 256.
خيارات الإدخال والإخراج¶
--console=وضع
يضبط
كيفية
إعداد
طرفية
الآلة
الافتراضية.
يقبل أحد
القيم "interactive"،
"read-only"، "native"، "gui".
القيمة
المبدئية
هي "interactive". توفر
"interactive" واجهة
طرفية
تفاعلية
للآلة
الافتراضية.
و "read-only"
مشابهة
لها، لكنها
للقراءة
فقط
تمامًا، أي
لا تقبل أي
مدخلات من
المستخدم.
توفر "native"
أيضًا
واجهة
تعتمد على TTY،
ولكنها
تستخدم
تطبيق qemu
الأصيل (مما
يعني توفر
مراقب qemu).
تُظهر "gui"
واجهة qemu
الرسومية.
أُضيف في
الإصدار 256.
--background=COLOR
تغيير
لون خلفية
الطرفية
إلى لون ANSI
المحدد
طالما كانت
الآلة
الافتراضية
تعمل. يجب أن
يكون اللون
المحدد لون
خلفية ANSI X3.64 SGR،
أي سلاسل
مثل "40"، "41"،
...، "47"، "48;2;..."،
"48;5;...". انظر
كود هروب ANSI
(ويكيبيديا)[2]
للتفاصيل.
خصص سلسلة
فارغة
لتعطيل أي
تلوين. هذا
له تأثير
فقط في وضعي
--console=interactive و
--console=read-only.
أُضيف في
الإصدار 256.
بيانات الاعتماد¶
--load-credential=المعرف:المسار،
--set-credential=المعرف:القيمة
تمرير
وثيقة
استيثاق
إلى الآلة
الافتراضية.
يقابل هذان
الخياران
إعدادي
LoadCredential=
و
SetCredential= في
ملفات
الوحدات.
انظر
systemd.exec(5)
للتفاصيل
حول هذه
المفاهيم،
بالإضافة
إلى صيغة
معطيات
الخيار.
لتضمين
بيانات
ثنائية في
بيانات
الاعتماد
لـ --set-credential=،
استخدم
هروباً
بنمط لغة C
(أي "\n"
لتضمين سطر
جديد، أو "\x00"
لتضمين
بايت NUL).
لاحظ أن
الصدفة
المستدعاة
قد تطبق
بالفعل
إلغاء
الهروب مرة
واحدة، لذا
قد يتطلب
ذلك هروباً
مزدوجاً!
أُضيف في
الإصدار 255.
أخرى¶
--no-pager
لا تمرر
المخرجات
إلى برنامج
عرض (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
قيمة
منطقية. إذا
كانت
صحيحة،
فستُلون
الرسائل
المكتوبة
في الـ tty حسب
الأولوية.
هذا
الإعداد
مفيد فقط
عندما
تُكتب
الرسائل
مباشرة إلى
الطرفية،
لأن journalctl(1)
والأدوات
الأخرى
التي تعرض
السجلات
ستلون
الرسائل
بناءً على
مستوى
السجل من
تلقاء
نفسها.
$SYSTEMD_LOG_TIME
قيمة
منطقية. إذا
كانت
صحيحة،
فستُسبق
رسائل سجل
الطرفية
بختم زمني.
هذا
الإعداد
مفيد فقط
عندما
تُكتب
الرسائل
مباشرة إلى
الطرفية أو
إلى ملف،
لأن journalctl(1)
والأدوات
الأخرى
التي تعرض
السجلات
ستُرفق
طوابع
زمنية
بناءً على
البيانات
الوصفية
للمدخلات
من تلقاء
نفسها.
$SYSTEMD_LOG_LOCATION
قيمة
منطقية. إذا
كانت
صحيحة،
فستُسبق
الرسائل
باسم الملف
ورقم السطر
في الشيفرة
المصدرية
حيث نشأت
الرسالة.
لاحظ أن
موقع السجل
غالبًا ما
يُرفق
كبيانات
وصفية
بمدخلات
اليوميات
على أي حال.
ومع ذلك، قد
يكون
تضمينه
مباشرة في
نص الرسالة
مفيدًا عند
تنقيح
البرامج.
$SYSTEMD_LOG_TID
قيمة
منطقية. إذا
كانت
صحيحة،
فستُسبق
الرسائل
بمعرّف
الخيط
الرقمي
الحالي (TID).
لاحظ أن
هذه
المعلومات
تُرفق
كبيانات
وصفية
بمدخلات
اليوميات
على أي حال.
ومع ذلك، قد
يكون
تضمينه
مباشرة في
نص الرسالة
مفيدًا عند
تنقيح
البرامج.
$SYSTEMD_LOG_TARGET
وجهة
رسائل
السجل. أحد
الخيارات:
console (التسجيل
في الطرفية
المرفقة)،
أو
console-prefixed
(التسجيل في
الطرفية
المرفقة
ولكن مع
بادئات
ترميز
مستوى
السجل
و"المرفق"،
راجع
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
تدعم
أوامر
المستعرض (pager)
الشائعة
مثل
less(1)،
بالإضافة
إلى
"التصفح"،
أي التمرير
عبر
المخرجات،
فتح ملفات
أخرى أو
الكتابة
إليها
وتشغيل
أوامر صدفة
عشوائية.
عند
استدعاء
الأوامر
بامتيازات
مرفوعة،
على سبيل
المثال تحت
sudo(8) أو
pkexec(1)،
يصبح
المستعرض
حدًا
أمنيًا. يجب
الحرص على
استخدام
البرامج
ذات
الوظائف
المحدودة
للغاية فقط
كمستعرضات،
وعدم
السماح
بالميزات
التفاعلية
غير
المقصودة
مثل فتح
ملفات
جديدة أو
إنشائها أو
بدء عمليات
فرعية. يمكن
تمكين
"الوضع
الآمن"
للمستعرض
كما هو موضح
أدناه،
إذا
كان
المستعرض
يدعم ذلك
(معظم
المستعرضات
لم تُكتب
بطريقة
تأخذ هذا في
الاعتبار).
يوصى إما
بتمكين
"الوضع
الآمن"
صراحةً أو
تعطيل
المستعرض
تمامًا
باستخدام
--no-pager أو
PAGER=cat عند
السماح
للمستخدمين
غير
الموثوق
بهم بتنفيذ
أوامر
بامتيازات
مرفوعة.
يأخذ هذا
الخيار
وسيطًا
منطقيًا.
عند ضبطه
على صحيح (true)،
يتم تمكين
"الوضع
الآمن"
لمستعرض
الصفحات. في
"الوضع
الآمن"،
سيُضبط LESSSECURE=1
عند
استدعاء
المستعرض،
مما يوجه
المستعرض
لتعطيل
الأوامر
التي تفتح
أو تنشئ
ملفات
جديدة أو
تبدأ
عمليات
فرعية
جديدة.
حاليًا،
يُعرف فقط
less(1) بقدرته
على فهم هذا
المتغير
وتطبيق
"الوضع
الآمن".
عند الضبط
إلى false، لا
توضع قيود
على أداة
التصفح (pager). إن
ضبط SYSTEMD_PAGERSECURE=0 أو
عدم إزالته
من البيئة
الموروثة
قد يسمح
للمستخدم
باستدعاء
أوامر
اعتباطية.
عندما لا
يكون $SYSTEMD_PAGERSECURE
مضبوطًا،
تحاول
أدوات systemd
آليًا
معرفة ما
إذا كان
ينبغي
تفعيل
"النمط
الآمن" وما
إذا كان
المستعرض (pager)
يدعمه.
يُفعل
"النمط
الآمن" إذا
كان معرف
المستخدم
الفعلي (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
يأخذ
وسيطًا
منطقيًا (boolean)،
أو قيمة
خاصة.
مبدئيًا
(عند عدم
الضبط)،
سيستخدم
systemd
والأدوات
المرتبطة
به الألوان
في
مخرجاتها
إذا أمكن
ذلك. إذا
ضُبط
$COLORTERM على
"truecolor" أو "24bit"،
فسيتم
تمكين
ألوان 24 بت،
وإلا
فستُستخدم 256
لونًا، ما
لم يشر
$NO_COLOR أو
$TERM إلى تعطيل
الألوان.
true
نفس حالة
عدم الضبط،
باستثناء
تجاهل $NO_COLOR.
false
سيكون
المخرج
أحادي
اللون.
"16"، "256"،
"24bit"
استخدم
دائمًا
ألوان ANSI الـ 16
الأساسية،
أو 256 لونًا،
أو لون 24 بت،
على
التوالي.
"auto-16"، "auto-256"،
"auto-24bit"
استخدم
كمية
الألوان
المعطاة،
بشرط $TERM، وما
هو متصل
بالطرفية.
$SYSTEMD_URLIFY
يجب أن
تكون
القيمة
منطقية.
تتحكم فيما
إذا كان يجب
توليد
روابط
قابلة
للنقر في
المخرج
لمحاكيات
الطرفية
التي تدعم
ذلك. يمكن
تحديد هذا
لتجاوز
القرار
الذي يتخذه
systemd بناءً
على $TERM وشروط
أخرى.
أمثلة¶
مثال 1. تشغيل
صورة آلة
افتراضية
لـ Arch Linux مولدة
بواسطة mkosi
$ mkosi -d arch -p systemd -p linux --autologin -o image.raw -f build
$ systemd-vmspawn --image=image.raw
مثال 2. استيراد
وتشغيل
صورة Fedora 43 Cloud
باستخدام
machinectl
مثال 3. بناء
وتشغيل
صورة نظام 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
mode).
مثال 4. الدخول
عبر 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