.\" -*- coding: UTF-8 -*- '\" t .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH UKIFY 1 "" "systemd 260.1" ukify .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH الاسم ukify \- اجمع المكونات في صورة نواة موحدة (UKI) موثقة لأنظمة UEFI .SH موجز .HP \w'\fBukify\fR\ 'u \fBukify\fP [الخيارات...] build .HP \w'\fBukify\fR\ 'u \fBukify\fP [الخيارات...] genkey .HP \w'\fBukify\fR\ 'u \fBukify\fP [الخيارات...] inspect ملف... .SH الوصف .PP \fBukify\fP أداة غرضها الرئيس هو دمج المكونات (عادةً نواة، و initrd، و \fBsystemd\-stub\fP(7) UEFI stub) لإنشاء \m[blue]\fBصورة نواة موحدة (UKI)\fP\m[]\&\s-2\u[1]\d\s+2 بمواصفات UAPI\&.5 \(em وهي ملف PE ثنائي واحد يُقلع منه النظام\&. عند تنفيذ صورة UKI، يستخرج stub نواة لينكس المضمنة ويُقلعها\&. يمكن بدء صورة UKI مباشرة عبر البرمجيات المضمنة (firmware) أو عبر محمل إقلاع\&. عند استخدامه مع \m[blue]\fBqemu\fP\m[]\&\s-2\u[2]\d\s+2، يمكن أيضًا تنفيذ صورة UKI عبر "إقلاع النواة المباشر"، انظر المثال أدناه\&. .PP يمكن أيضًا استخدام \fBukify\fP لإنشاء أنواع أخرى من الصور الشبيهة بـ UKI، ولا سيما الامتدادات\&. انظر وصف الأمر \fBbuild\fP أدناه\&. يمكن لـ \fBukify\fP أيضًا توليد الشهادات والمفاتيح للإقلاع الآمن (SecureBoot) وتوثيق سجلات PCR، انظر وصف الأمر \fBgenkey\fP أدناه\&. يمكن لـ \fBukify\fP أيضًا طباعة معلومات مفصلة حول صور النواة الموحدة، انظر وصف الأمر \fBinspect\fP أدناه\&. .SH الأوامر .PP الأوامر التالية مفهومة: .SS build .PP يُنشئ هذا الأمر صورة نواة موحدة (UKI)\&. الخياران الرئيسان اللذان ينبغي تحديدهما للأمر \fBbuild\fP هما \fILinux=\fP/\fB\-\-linux=\fP و \fIInitrd=\fP/\fB\-\-initrd=\fP\&. يقبل \fIInitrd=\fP مسارات متعددة مفصولة بمسافات بيضاء، ويمكن تحديد \fB\-\-initrd=\fP عدة مرات\&. .PP ستُدرج أقسام إضافية في صورة UKI، إما آليًا أو فقط عند توفير خيار محدد\&. انظر مناقشات \fIMicrocode=\fP/\fB\-\-microcode=\fP، و \fICmdline=\fP/\fB\-\-cmdline=\fP، و \fIOSRelease=\fP/\fB\-\-os\-release=\fP، و \fIDeviceTree=\fP/\fB\-\-devicetree=\fP، و \fIDeviceTreeAuto=\fP/\fB\-\-devicetree\-auto=\fP، و \fIHWIDs=\fP/\fB\-\-hwids=\fP، و \fISplash=\fP/\fB\-\-splash=\fP، و \fIPCRPKey=\fP/\fB\-\-pcrpkey=\fP، و \fIUname=\fP/\fB\-\-uname=\fP، و \fISBAT=\fP/\fB\-\-sbat=\fP، و \fB\-\-section=\fP أدناه\&. .PP يمكن أيضًا استخدام \fBukify\fP لتجميع ملف PE ثنائي غير قابل للتنفيذ ولكنه يحتوي على بيانات مساعدة، مثل إدخالات سطر أوامر النواة الإضافية\&. .PP إذا وُفرت مفاتيح توثيق سجلات PCR عبر الخيارات \fIPCRPrivateKey=\fP/\fB\-\-pcr\-private\-key=\fP و \fIPCRPublicKey=\fP/\fB\-\-pcr\-public\-key=\fP أو \fIPCRCertificate=\fP/\fB\-\-pcr\-certificate=\fP، فستُحسب قيم PCR التي ستظهر بعد الإقلاع بالنواة المحددة، و initrd، والأقسام الأخرى، وتُوثق، وتُضمن في صورة UKI\&. يُستخدم \fBsystemd\-measure\fP(1) لإجراء هذا الحساب والتوثيق\&. .PP يُجرى حساب قيم PCR لمسارات مراحل إقلاع محددة\&. يمكن تحديد هذه المسارات عبر الخيار \fIPhases=\fP/\fB\-\-phases=\fP\&. إذا لم يُحدد، فسيُستخدم الافتراضي المبدئي الذي يوفره \fBsystemd\-measure\fP\&. ومن الممكن أيضًا تحديد وسطاء \fIPCRPrivateKey=\fP/\fB\-\-pcr\-private\-key=\fP، أو \fIPCRPublicKey=\fP/\fB\-\-pcr\-public\-key=\fP أو \fIPCRCertificate=\fP/\fB\-\-pcr\-certificate=\fP، و \fIPhases=\fP/\fB\-\-phases=\fP أكثر من مرة\&. ستُنفذ التوقيعات حينئذٍ بكل مفتاح من المفاتيح المحددة\&. في سطر الأوامر، عند استخدام كل من \fB\-\-phases=\fP و \fB\-\-pcr\-private\-key=\fP، يجب تحديدهما بنفس عدد المرات، وعندها ستُوثق مجموعة مسار مرحلة الإقلاع رقم n بالمفتاح رقم n\&. يمكن استخدام هذا لبناء سياسات ثقة مختلفة لمراحل الإقلاع المختلفة\&. في ملف الإعداد، تُجمع \fIPCRPrivateKey=\fP و \fIPCRPublicKey=\fP و \fIPhases=\fP في أقسام منفصلة تصف مراحل إقلاع منفصلة\&. إذا حُدد أحد الخيارين \fISigningEngine=\fP/\fB\-\-signing\-engine=\fP أو \fISigningProvider=\fP/\fB\-\-signing\-provider=\fP، فستُمرر وسطاء المفتاح الخاص حرفيًا إلى \fBopenssl\fP(1) كمعرفات موارد موحدة (URIs)، وستُحمل وسطاء المفتاح العام كشهادات X\&.509، بحيث يمكن إجراء التوثيق باستخدام محرك أو مزود OpenSSL على التوالي\&. .PP إذا وُفر مفتاح توثيق الإقلاع الآمن (SecureBoot) عبر خيار \fISecureBootPrivateKey=\fP/\fB\-\-secureboot\-private\-key=\fP، فسيُوثق ملف PE الثنائي الناتج ككل، مما يسمح لصورة UKI الناتجة بأن تكون موثوقة من قِبل الإقلاع الآمن\&. انظر أيضًا مناقشة التسجيل الآلي في \fBsystemd\-boot\fP(7)\&. .PP إذا احتوى stub أو النواة على أقسام "\&.sbat" فستُدمج في صورة UKI ليؤخذ في الحسبان تحديثات الإلغاء التي تؤثر على أي منهما عند تحميل صورة UKI بواسطة Shim\&. لمزيد من المعلومات حول SBAT انظر \m[blue]\fBوثائق Shim\fP\m[]\&\s-2\u[3]\d\s+2\&. .SS genkey .PP يُنشئ هذا الأمر مفاتيح توثيق PCR والمفتاح والشهادة المستخدمة في توثيق الإقلاع الآمن (SecureBoot)\&. نفس خيارات الإعداد التي تحدد ما هي المفاتيح وفي أي مسارات ستكون مطلوبة للتوثيق عند استخدام \fBbuild\fP، هي التي تحدد هنا ما هي المفاتيح التي ستُنشأ\&. انظر مناقشة \fIPCRPrivateKey=\fP/\fB\-\-pcr\-private\-key=\fP و \fIPCRPublicKey=\fP/\fB\-\-pcr\-public\-key=\fP و \fISecureBootPrivateKey=\fP/\fB\-\-secureboot\-private\-key=\fP أدناه\&. .PP يجب ألا تكون ملفات المخرجات موجودة مسبقًا\&. .SS inspect .PP اعرض معلومات حول الأقسام في ملف ثنائي معين أو ملفات ثنائية\&. إذا أُعطي الخيار \fB\-\-all\fP، فستُعرض جميع الأقسام\&. بخلاف ذلك، إذا حُدد خيار \fB\-\-section=\fP مرة واحدة على الأقل، فستُعرض تلك الأقسام فقط\&. وبخلاف ذلك، ستُعرض الأقسام المعروفة التي تُضمن عادةً في صورة UKI\&. لكل قسم، يُطبع اسمه وحجمه وبصمة sha256 الخاصة به\&. وبالنسبة للأقسام النصية، تُطبع محتوياتها\&. .PP انظر أيضًا وصف الخيارات \fB\-j\fP/\fB\-\-json=\fP و \fB\-\-section=\fP\&. .PP أدوات أخرى قد تكون مفيدة لفحص صور UKI: \fBllvm\-objdump\fP(1) \fB\-p\fP و \fBpe\-inspect\fP\&. .SH "إعدادات التهيئة" .PP يمكن أن تظهر الإعدادات في ملفات التهيئة (بالصيغة \fIالإعداد=\fP\fIالقيمة\fP) وفي سطر الأوامر (بالصيغة \fB\-\-الإعداد=\fP\fIالقيمة\fP)\&. وبالنسبة لبعض معاملات سطر الأوامر، يُسمح أيضًا باختصار من حرف واحد\&. في ملفات التهيئة، يجب أن يكون الإعداد في القسم المناسب، لذا جُمعت الأوصاف حسب الأقسام أدناه\&. عندما يظهر نفس الإعداد في ملف التهيئة وفي سطر الأوامر، فعادةً ما تكون لإعداد سطر الأوامر أولوية أعلى ويحل محل إعداد ملف التهيئة تمامًا\&. وإذا سلك إعداد ما سلوكًا مختلفًا، فسيُشرح ذلك أدناه\&. .PP إذا لم يُوفر ملف تهيئة عبر الخيار \fB\-\-config=\fP\fIالمسار\fP، فسيحاول \fBukify\fP البحث عن ملف تهيئة مبدئي في المسارات التالية بهذا الترتيب: /etc/systemd/ukify\&.conf، و /run/systemd/ukify\&.conf، و /usr/local/lib/systemd/ukify\&.conf، و /usr/lib/systemd/ukify\&.conf، ثم يحمل أول ملف يُعثر عليه\&. سيعمل \fBukify\fP بشكل طبيعي إذا لم يُحدد ملف تهيئة ولم يُعثر على ملف مبدئي\&. .PP وسطاء الموقع \fILINUX\fP و \fIINITRD\fP، أو إعدادات \fILinux=\fP و \fIInitrd=\fP المكافئة، اختيارية\&. إذا حُدد أكثر من initrd واحد، فستُجمع كلها في قسم PE واحد\&. وهذا مفيد، على سبيل المثال، لإضافة برمجيات ميكروكود (microcode) قبل initrd الفعلي\&. .PP الخيارات والإعدادات التالية مفهومة: .SS "خيارات سطر الأوامر فقط" .PP \fB\-\-config=\fP\fIالمسار\fP .RS 4 حمّل الإعدادات من ملف التهيئة المعطى\&. وبشكل عام، تكون للإعدادات المحددة في ملف التهيئة أسبقية أقل من الإعدادات المحددة عبر الخيارات\&. الحالات التي لا يتجاوز فيها خيار سطر الأوامر إعداد ملف التهيئة بالكامل تُذكر صراحة في أوصاف الخيارات الفردية\&. .sp أُضيف في الإصدار 254\&. .RE .PP \fB\-\-measure\fP، \fB\-\-no\-measure\fP .RS 4 فعل أو عطل استدعاء \fBsystemd\-measure\fP(1) لطباعة قيم PCR المحسوبة مسبقًا\&. القيمة المبدئية هي كاذب (false)\&. .sp أُضيف في الإصدار 253\&. .RE .PP \fB\-\-policy\-digest\fP، \fB\-\-no\-policy\-digest\fP .RS 4 فعل أو عطل استدعاء \fBsystemd\-measure\fP(1) لطباعة خلاصات سياسة TPM2 المحسوبة مسبقًا\&. مفيد لتوثيق سياسات PCR دون اتصال بالإنترنت\&. القيمة المبدئية هي كاذب (false)\&. .sp أُضيف في الإصدار 258\&. .RE .PP \fB\-\-section=\fP\fIالاسم\fP\fB:\fP\fIالنص\fP\fB|\fP\fI@المسار\fP، \fB\-\-section=\fP\fIالاسم\fP\fB:text|binary\fP\fB[@\fP\fIالمسار\fP] .RS 4 بالنسبة لجميع الأفعال ما عدا \fBinspect\fP، تُستخدم الصيغة الأولى\&. حدد قسمًا إضافيًا اختياريًا "\fIالاسم\fP"\&. قد تكون المعاملة سلسلة نصية حرفية، أو "@" متبوعة باسم مسار\&. يمكن تحديد هذا الخيار أكثر من مرة\&. أي أقسام تُحدد بهذا الأسلوب ستُدرج (بالترتيب) قبل قسم "\&.linux" الذي يكون دائمًا في الآخر\&. .sp بالنسبة للفعل \fBinspect\fP، تُستخدم الصيغة الثانية\&. سيُفحص القسم \fIالاسم\fP (إذا وُجد)\&. إذا كانت المعاملة الثانية هي "text"، فستُطبع المحتويات\&. وإذا أُعطيت المعاملة الثالثة، فستُحفظ المحتويات في الملف المسمى \fIالمسار\fP\&. .sp لاحظ أن الاسم يُستخدم كما هو، وإذا كان يجب أن يبدأ اسم القسم بنقطة، فيجب تضمينها في \fIالاسم\fP\&. .sp أُضيف في الإصدار 253\&. .RE .PP \fB\-\-join\-profile=\fP\fIالمسار\fP .RS 4 يأخذ مسارًا لملف PE موجود يحتوي على تشكيلة إضافية لإضافتها إلى صورة النواة الموحدة\&. يمكن توليد التشكيلة مسبقًا باستخدام \fBukify\fP\&. لا يلزم أن تكون التشكيلة موثقة أو تحتوي على قياسات PCR\&. تُنسخ جميع أقسام PE الخاصة بـ UKI من ملف PE المحدد إلى صورة UKI المولدة\&. هذا مفيد لتوليد صور UKI متعددة التشكيلات\&. لاحظ أن هذا ينسخ فقط أقسام PE التي تحددها مواصفات UKI، ويتجاهل أي أقسام أخرى، مثل "\&.text" أو ما شابه\&. .sp أُضيف في الإصدار 257\&. .RE .PP \fB\-\-sign\-profile=\fP\fIالمعرف\fP .RS 4 يأخذ معرف تشكيلة يجب أن يولد لها ukify قياسات PCR موثقة\&. يمكن استخدام هذا الخيار مع \fB\-\-join\-profile=\fP عند بناء صورة النواة الموحدة النهائية\&. إذا لم يُحدد، فستُضاف قياسات PCR موثقة لجميع التشكيلات\&. .sp أُضيف في الإصدار 258\&. .RE .PP \fB\-\-join\-pcrsig=\fP\fIالمسار\fP، \fB\-\-pcrsig=\fP\fIالنص\fP\fB|\fP\fI@المسار\fP .RS 4 يأخذ \fB\-\-join\-pcrsig=\fP مسارًا لملف PE موجود يحتوي على صورة UKI بُنيت سابقًا\&. ويأخذ \fB\-\-pcrsig=\fP مسارًا لكتلة pcrsig JSON موجودة، أو كتلة مضمنة حرفيًا\&. يجب استخدامهما معًا، ودون تحديد أي معاملات أخرى لأقسام UKI\&. سيرفق \fBukify\fP كتلة pcrsig JSON بصورة UKI\&. هذا مفيد بالاقتران مع \fB\-\-policy\-digest\fP لإنشاء صورة UKI ثم توثيق خلاصات سياسة TPM2 دون اتصال بالإنترنت\&. .sp أُضيف في الإصدار 258\&. .RE .PP \fB\-\-tools=\fP\fIالمجلدات\fP .RS 4 حدد مجلدًا واحدًا أو أكثر يحتوي على أدوات مساعدة\&. سيبحث \fBukify\fP عن الأدوات المساعدة في تلك المجلدات أولاً، وإذا لم يجدها، فسيحاول تحميلها من \fI$PATH\fP بالطريقة المعتادة\&. .sp أُضيف في الإصدار 253\&. .RE .PP \fB\-\-output=\fP\fIاسم_الملف\fP .RS 4 اسم ملف المخرجات\&. إذا لم يُحدد، فسيُستخدم اسم وسيطة \fILINUX\fP، مع اللاحقة "\&.unsigned\&.efi" أو "\&.signed\&.efi"، اعتمادًا على ما إذا كان قد أُجري توثيق للإقلاع الآمن (SecureBoot)\&. .sp أُضيف في الإصدار 253\&. .RE .PP \fB\-\-summary\fP .RS 4 اطبع ملخصًا للإعدادات المحملة واخرج\&. هذا مفيد للتحقق من كيفية دمج الخيارات من ملف التهيئة وسطر الأوامر\&. .sp أُضيف في الإصدار 254\&. .RE .PP \fB\-\-all\fP .RS 4 اطبع جميع الأقسام (باستخدام الفعل \fBinspect\fP)\&. .sp أُضيف في الإصدار 255\&. .RE .PP \fB\-\-json\fP .RS 4 ولد مخرجات بصيغة JSON (باستخدام الفعل \fBinspect\fP)\&. .sp أُضيف في الإصدار 255\&. .RE .PP \fB\-h\fP، \fB\-\-help\fP .RS 4 اطبع نص مساعدة قصير واخرج\&. .RE .PP \fB\-\-version\fP .RS 4 اطبع سلسلة إصدار قصيرة واخرج\&. .RE .SS "قسم [UKI]" .PP \fILinux=\fP\fILINUX\fP، \fB\-\-linux=\fP\fILINUX\fP .RS 4 مسار إلى ملف النواة الثنائي\&. .sp أُضيف في الإصدار 254\&. .RE .PP \fIOSRelease=\fP\fIالنص\fP\fI|\fP\fI@المسار\fP، \fB\-\-os\-release=\fP\fIالنص\fP\fB|\fP\fI@المسار\fP .RS 4 وصف إصدار نظام التشغيل (قسم "\&.osrel")\&. قد تكون المعاملة سلسلة حرفية، أو "@" متبوعة باسم مسار\&. إذا لم يُحدد، فسيُجلب ملف \fBos\-release\fP(5) من النظام المضيف\&. وإذا ضُبط صراحة على سلسلة فارغة، فسيُحذف قسم "\&.osrel" من صورة UKI (وهذا غير موصى به في معظم الحالات، ويؤدي إلى عدم التعرف على المنتج الناتج كصورة UKI بواسطة أدوات أخرى مثل \fBkernel\-install\fP و \fBbootctl\fP)\&. .sp أُضيف في الإصدار 253\&. .RE .PP \fICmdline=\fP\fIالنص\fP\fI|\fP\fI@المسار\fP، \fB\-\-cmdline=\fP\fIالنص\fP\fB|\fP\fI@المسار\fP .RS 4 سطر أوامر النواة (قسم "\&.cmdline")\&. قد تكون المعاملة سلسلة حرفية، أو "@" متبوعة باسم مسار\&. إذا لم يُحدد، فلن يُضمن أي سطر أوامر\&. .sp أُضيف في الإصدار 253\&. .RE .PP \fIInitrd=\fP\fIINITRD\fP\fI\&.\&.\&.\fP، \fB\-\-initrd=\fP\fILINUX\fP .RS 4 صفر أو أكثر من مسارات initrd\&. في ملف التهيئة، تُفصل العناصر بمسافات بيضاء\&. تُجمع ملفات initrd بترتيب تحديدها، مع وضع ملفات initrd المحددة في ملف التهيئة أولاً\&. .sp أُضيف في الإصدار 254\&. .RE .PP \fIMicrocode=\fP\fIUCODE\fP، \fB\-\-microcode=\fP\fIUCODE\fP .RS 4 المسار إلى initrd الذي يحتوي على تحديثات الميكروكود\&. إذا لم يُحدد، فلن يكون القسم موجودًا\&. .sp أُضيف في الإصدار 256\&. .RE .PP \fISplash=\fP\fIالمسار\fP، \fB\-\-splash=\fP\fIالمسار\fP .RS 4 صورة تُعرض أثناء الإقلاع (قسم "\&.splash")\&. المعاملة هي مسار لملف BMP\&. إذا لم يُحدد، فلن يكون القسم موجودًا\&. .sp أُضيف في الإصدار 253\&. .RE .PP \fIDeviceTree=\fP\fIالمسار\fP، \fB\-\-devicetree=\fP\fIالمسار\fP .RS 4 وصف شجرة الأجهزة (قسم "\&.dtb")\&. المعاملة هي مسار لملف DeviceTree ثنائي مُجمع\&. إذا لم يُحدد، فلن يكون القسم موجودًا\&. .sp أُضيف في الإصدار 253\&. .RE .PP \fIDeviceTreeAuto=\fP\fIالمسار\fP\fI\&.\&.\&.\fP، \fB\-\-devicetree\-auto=\fP\fIالمسار\fP .RS 4 صفر أو أكثر من ملفات DeviceTree القابلة للاختيار آليًا\&. في ملف التهيئة، تُفصل العناصر بمسافات بيضاء\&. ستكون كل شجرة أجهزة في قسم "\&.dtbauto" منفصل\&. .sp أُضيف في الإصدار 257\&. .RE .PP \fIHWIDs=\fP\fIالمسار\fP، \fB\-\-hwids=\fP\fIالمسار\fP .RS 4 جدول أجهزة معرفات العتاد (قسم "\&.hwids")\&. المعاملة هي مسار لمجلد يحتوي على ملفات وصف أجهزة HWID بصيغة JSON\&. يجب أن يحتوي كل ملف على كائن JSON واحد بمفاتيح "name" و "compatible" و "hwids"\&. يجب أن تكون قيم مفتاحي "name" و "compatible" سلاسل نصية، ويجب أن تكون قيمة مفتاح "hwids" قائمة من السلاسل النصية، حيث يجب أن تكون السلاسل معرفات UUID صالحة تمثل CHIDs/HWIDs\&. مثال: .sp .if n \{\ .RS 4 .\} .nf { "type": "devicetree", "name": "Example Laptop 16 Gen 7", "compatible": "example,laptop\-16\-g7", "hwids": [ "5dc05bf4\-01f6\-4089\-b464\-a08c47ea9295", "3e3f8f3c\-2003\-46f2\-811c\-85554f7d5952" ] } .fi .if n \{\ .RE .\} .sp هنا "Example Laptop 16 Gen 7" هو "اسم" الجهاز (كما حددته الشركة المصنعة)، و "example,laptop\-16\-g7" هو "المتطابق" (كما حددته النواة) و "hwids" هي مصفوفة من CHIDs/HWIDs (استُخرجت مثلاً من مخرجات \fBfwupdtool hwids\fP)\&. إذا لم يُحدد، وكان المجلد "/usr/lib/systemd/boot/hwids/[EFI_ARCH]/" موجودًا، فسيُملأ القسم آليًا من ذلك المجلد (حدد سلسلة فارغة كمعامل لهذا الخيار لتعطيل هذا السلوك)، وإلا فلن يكون موجودًا\&. يوصى بتحديد هذا المعامل إذا كان سيُستخدم ملفات DeviceTrees القابلة للاختيار آليًا\&. .sp أُضيف في الإصدار 257\&. .RE .PP \fIUname=\fP\fIالإصدار\fP، \fB\-\-uname=\fP\fIالإصدار\fP .RS 4 حدد إصدار النواة (كما في \fBuname \-r\fP، قسم "\&.uname")\&. إذا لم يُحدد، فستُجرى محاولة لاستخراج سلسلة الإصدار من صورة النواة\&. يوصى بتمرير هذا صراحة إذا كان معروفًا، لأن الاستخراج يعتمد على طرق استدلالية وليست موثوقة للغاية\&. إذا لم يُحدد وفشل الاستخراج، فلن يكون القسم موجودًا\&. .sp أُضيف في الإصدار 253\&. .RE .PP \fISBAT=\fP\fIالنص\fP\fI|\fP\fI@المسار\fP، \fB\-\-sbat=\fP\fIالنص\fP\fB|\fP\fI@المسار\fP .RS 4 بيانات SBAT الوصفية المرتبطة بصورة UKI أو الملحق\&. سياسات SBAT مفيدة لإلغاء مجموعات كاملة من صور UKI أو الملحقات بتحديث سياسة واحد وثابت لا يشغل مساحة في DBX/MOKX\&. إذا لم تُحدد يدويًا، فسيُستخدم إدخال بيانات وصفية مبدئي يتكون من .sp .if n \{\ .RS 4 .\} .nf uki,1,UKI,uki,1,https://uapi\-group\&.org/specifications/specs/unified_kernel_image/ .fi .if n \{\ .RE .\} .sp لصور UKIs و .sp .if n \{\ .RS 4 .\} .nf uki\-addon,1,UKI Addon,addon,1,https://www\&.freedesktop\&.org/software/systemd/man/latest/systemd\-stub\&.html .fi .if n \{\ .RE .\} .sp سوف تُستخدم للملحقات، لضمان إمكانية إبطالها دائمًا\&. لمزيد من المعلومات حول SBAT راجع \m[blue]\fBتوثيق Shim\fP\m[]\&\s-2\u[3]\d\s+2\&. .sp أُضيف في الإصدار 254\&. .RE .PP \fIPCRPKey=\fP\fIالمسار\fP، \fB\-\-pcrpkey=\fP\fIالمسار\fP .RS 4 مسار إلى مفتاح عام لتضمينه في قسم "\&.pcrpkey"\&. إذا لم يُحدد، ووجد وسيط واحد تمامًا من النوع \fIPCRPublicKey=\fP/\fB\-\-pcr\-public\-key=\fP أو \fIPCRCertificate=\fP/\fB\-\-pcr\-certificate=\fP، فسيُستخدم ذلك المفتاح\&. وبخلاف ذلك، لن يكون القسم موجودًا\&. .sp أُضيف في الإصدار 253\&. .RE .PP \fIProfile=\fP\fIالمسار\fP، \fB\-\-profile=\fP\fIالمسار\fP .RS 4 مسار إلى تشكيلة UKI لوضعها في قسم "\&.profile"\&. هذا الخيار مفيد لإنشاء صور UKI متعددة التشكيلات، ويُستخدم عادةً بالاقتران مع \fB\-\-join\-profile=\fP، لتوسيع صورة UKI المحددة بتشكيلة إضافية\&. .sp أُضيف في الإصدار 257\&. .RE .PP \fIPCRBanks=\fP\fIالمسار\fP، \fB\-\-pcr\-banks=\fP\fIالمسار\fP .RS 4 قائمة مفصولة بفاصلة أو مسافة لمصارف PCR لتوقيع سياسة لها\&. إذا لم توجد، فستُستخدم جميع المصارف المعروفة ("sha1"، و "sha256"، و "sha384"، و "sha512")، وسيفشل الأمر إذا كان النظام لا يدعمها\&. .sp أُضيف في الإصدار 253\&. .RE .PP \fISecureBootSigningTool=\fP\fIالموقّع\fP، \fB\-\-signtool=\fP\fIالموقّع\fP .RS 4 ما إذا كان سيُستخدم "sbsign"، أو "pesign"، أو "systemd\-sbsign"\&. بناءً على هذا الاختيار، تُطلب معلمات مختلفة من أجل توقيع صورة\&. القيمة المبدئية هي "sbsign"\&. .sp أُضيف في الإصدار 254\&. .RE .PP \fISecureBootPrivateKey=\fP\fISB_KEY\fP, \fB\-\-secureboot\-private\-key=\fP\fISB_KEY\fP .RS 4 مسار لمفتاح خاص لاستخدامه في توقيع الملف الثنائي الناتج\&. إذا استُخدم الخيار \fISigningEngine=\fP/\fB\-\-signing\-engine=\fP أو \fISigningProvider=\fP/\fB\-\-signing\-provider=\fP، فقد يكون هذا أيضًا تعيينًا خاصًا بمحرك أو بمزود معين\&. هذا الخيار مطلوب بواسطة \fISecureBootSigningTool=sbsign\fP/\fB\-\-signtool=sbsign\fP و \fISecureBootSigningTool=systemd\-sbsign\fP/\fB\-\-signtool=systemd\-sbsign\fP\&. .sp أُضيف في الإصدار 253\&. .RE .PP \fISecureBootCertificate=\fP\fISB_CERT\fP, \fB\-\-secureboot\-certificate=\fP\fISB_CERT\fP .RS 4 مسار لشهادة تُستخدم لتوقيع الملف الثنائي الناتج\&. إذا استُخدم الخيار \fISigningEngine=\fP/\fB\-\-signing\-engine=\fP أو \fISigningProvider=\fP/\fB\-\-signing\-provider=\fP، فقد يكون هذا أيضًا تعيينًا خاصًا بمحرك أو بمزود معين\&. هذا الخيار مطلوب بواسطة \fISecureBootSigningTool=sbsign\fP/\fB\-\-signtool=sbsign\fP و \fISecureBootSigningTool=systemd\-sbsign\fP/\fB\-\-signtool=systemd\-sbsign\fP\&. .sp أُضيف في الإصدار 253\&. .RE .PP \fISecureBootCertificateDir=\fP\fISB_PATH\fP, \fB\-\-secureboot\-certificate\-dir=\fP\fISB_PATH\fP .RS 4 مسار لدليل قاعدة بيانات شهادات nss لاستخدامه في توقيع الملف الثنائي الناتج\&. يسري مفعوله عند استخدام \fISecureBootSigningTool=pesign\fP/\fB\-\-signtool=pesign\fP\&. القيمة المبدئية هي /etc/pki/pesign\&. .sp أُضيف في الإصدار 254\&. .RE .PP \fISecureBootCertificateName=\fP\fISB_CERTNAME\fP, \fB\-\-secureboot\-certificate\-name=\fP\fISB_CERTNAME\fP .RS 4 اسم مدخل قاعدة بيانات شهادات nss لاستخدامه في توقيع الملف الثنائي الناتج\&. هذا الخيار مطلوب بواسطة \fISecureBootSigningTool=pesign\fP/\fB\-\-signtool=pesign\fP\&. .sp أُضيف في الإصدار 254\&. .RE .PP \fISecureBootCertificateValidity=\fP\fIDAYS\fP, \fB\-\-secureboot\-certificate\-validity=\fP\fIDAYS\fP .RS 4 فترة الصلاحية (بالأيام) لشهادة أُنشئت بواسطة \fBgenkey\fP\&. القيمة المبدئية هي 3650، أي 10 سنوات\&. .sp أُضيف في الإصدار 254\&. .RE .PP \fISigningEngine=\fP\fIENGINE\fP, \fB\-\-signing\-engine=\fP\fIENGINE\fP .RS 4 محرك OpenSSL ليُستخدم لتوقيع الملف الثنائي الناتج وقياسات PCR، راجع \fBopenssl\-engine\fP(1)\&. .sp أُضيف في الإصدار 253\&. .RE .PP \fISigningProvider=\fP\fIPROVIDER\fP, \fB\-\-signing\-provider=\fP\fIPROVIDER\fP .RS 4 مزود OpenSSL ليُستخدم لتوقيع الملف الثنائي الناتج وقياسات PCR، راجع \fBprovider\fP(7)\&. لا يمكن استخدام هذا الخيار إلا عند استخدام \fBsystemd\-sbsign\fP كأداة توقيع\&. .sp أُضيف في الإصدار 257\&. .RE .PP \fICertificateProvider=\fP\fIPROVIDER\fP, \fB\-\-certificate\-provider=\fP\fIPROVIDER\fP .RS 4 مزود OpenSSL ليُستخدم لتحميل الشهادة المستخدمة لتوقيع الملف الثنائي الناتج وقياسات PCR، راجع \fBprovider\fP(7)\&. لا يمكن استخدام هذا الخيار إلا عند استخدام \fBsystemd\-sbsign\fP كأداة توقيع\&. .sp أُضيف في الإصدار 257\&. .RE .PP \fISignKernel=\fP\fIBOOL\fP, \fB\-\-sign\-kernel\fP, \fB\-\-no\-sign\-kernel\fP .RS 4 تخطي الكشف عما إذا كان يجب توقيع ثنائي لينكس نفسه قبل تضمينه في الصورة المجمعة\&. إذا لم يُحدد، فسيُوقع إذا وُفر مفتاح توقيع الإقلاع الآمن عبر خيار \fISecureBootPrivateKey=\fP/\fB\-\-secureboot\-private\-key=\fP ولم يكن الثنائي موقعًا بالفعل\&. إذا كان \fISignKernel=\fP/\fB\-\-sign\-kernel\fP صحيحًا، وكان الثنائي موقعًا بالفعل، فسيُلحق التوقيع على أي حال\&. .sp أُضيف في الإصدار 253\&. .RE .SS "قسم [PCRSignature:\fIالاسم\fP\fR]\fP" .PP في ملف الضبط، تُجمع هذه الخيارات حسب القسم\&. في سطر الأوامر، يجب تحديدها بنفس الترتيب\&. تُدمج الأقسام المحددة في كلا المصدرين\&. .PP \fIPCRPrivateKey=\fP\fIالمسار\fP، \fB\-\-pcr\-private\-key=\fP\fIالمسار\fP .RS 4 مفتاح خاص لاستخدامه في توقيع سياسات PCR\&. في سطر الأوامر، يمكن تحديد هذا الخيار أكثر من مرة، وفي هذه الحالة ستُجرى توقيعات متعددة\&. .sp أُضيف في الإصدار 253\&. .RE .PP \fIPCRPublicKey=\fP\fIالمسار\fP، \fB\-\-pcr\-public\-key=\fP\fIالمسار\fP .RS 4 مفتاح عام لاستخدامه في توقيع سياسات PCR\&. .sp في سطر الأوامر، يمكن تحديد هذا الخيار أكثر من مرة، بشكل مشابه لخيار \fB\-\-pcr\-private\-key=\fP\&. إذا لم يوجد، فستُستخرج المفاتيح العامة من المفاتيح الخاصة\&. في سطر الأوامر، إذا وُجد، يجب تحديد هذا الخيار بنفس عدد مرات خيار \fB\-\-pcr\-private\-key=\fP\&. لا يمكن تحديده إذا استُخدم \fB\-\-pcr\-certificate=\fP\&. .sp أُضيف في الإصدار 253\&. .RE .PP \fIPCRCertificate=\fP\fIالمسار\fP، \fB\-\-pcr\-certificate=\fP\fIالمسار\fP .RS 4 شهادة X\&.509 لاستخدامها في توقيع سياسات PCR\&. .sp في سطر الأوامر، يمكن تحديد هذا الخيار أكثر من مرة، بشكل مشابه لخيار \fB\-\-pcr\-private\-key=\fP\&. إذا لم يوجد، فستُستخرج المفاتيح العامة من المفاتيح الخاصة\&. في سطر الأوامر، إذا وُجد، يجب تحديد هذا الخيار بنفس عدد مرات خيار \fB\-\-pcr\-private\-key=\fP\&. لا يمكن تحديده إذا استُخدم \fB\-\-pcr\-public\-key=\fP\&. .sp أُضيف في الإصدار 258\&. .RE .PP \fIPhases=\fP\fIالقائمة\fP، \fB\-\-phases=\fP\fIالقائمة\fP .RS 4 قائمة مفصولة بفاصلة أو مسافة لمسارات مراحل مفصولة بنقطتين لتوقيع سياسة لها\&. ستُوقع كل مجموعة من مسارات مراحل الإقلاع بـالمفتاح الخاص المقابل\&. إذا لم توجد، فستُستخدم القيمة المبدئية لـ \fBsystemd\-measure\fP(1)\&. .sp في سطر الأوامر، عند وجود هذه المعلمة، يجب أن تظهر نفس عدد مرات خيار \fB\-\-pcr\-private\-key=\fP\&. .sp أُضيف في الإصدار 253\&. .RE .SH أمثلة .PP \fBمثال\ \&1.\ \&استدعاء بسيط\fP .sp .if n \{\ .RS 4 .\} .nf $ ukify build \e \-\-linux=/lib/modules/6\&.0\&.9\-300\&.fc37\&.x86_64/vmlinuz \e \-\-initrd=/some/path/initramfs\-6\&.0\&.9\-300\&.fc37\&.x86_64\&.img \e \-\-cmdline=\*(Aqquiet rw\*(Aq .fi .if n \{\ .RE .\} .PP هذا ينشئ صورة UKI غير موقعة \&./vmlinuz\&.unsigned\&.efi\&. .PP \fBExample\ \&2.\ \&Direct kernel boot in a virtual machine\fP .PP عند استخدام \m[blue]\fBqemu\fP\m[]\&\s-2\u[2]\d\s+2 مع \m[blue]\fBOVMF\fP\m[]\&\s-2\u[4]\d\s+2 (برمجية UEFI الثابتة للآلات الافتراضية) يمكن استخدام مفتاح \fB\-kernel\fP مباشرة مع UKI\&. مثال: .PP \fBqemu\-kvm \-drive if=pflash,format=qcow2,readonly=on,file=/usr/share/edk2/ovmf/OVMF_CODE_4M\&.qcow2 \-kernel \fP\fB\&./vmlinuz\&.unsigned\&.efi\fP\fB \fP\fI[ \&.\&.\&. ]\fP\fB \fP .PP (قد يحتاج مسار ملف البرمجية الثابتة إلى تعديل اعتمادًا على التوزيعة\&.) عادةً ما تُستخدم معلمة \fB\-drive\fP أخرى لوصل صورة قرص فعلية، لكن هذا ليس مطلوبًا\&. .PP \fBمثال\ \&3.\ \&كل الإضافات والكماليات\fP .sp .if n \{\ .RS 4 .\} .nf $ ukify build \e \-\-linux=/lib/modules/6\&.0\&.9\-300\&.fc37\&.x86_64/vmlinuz \e \-\-initrd=early_cpio \e \-\-initrd=/some/path/initramfs\-6\&.0\&.9\-300\&.fc37\&.x86_64\&.img \e \-\-sbat=\*(Aqsbat,1,SBAT Version,sbat,1,https://github\&.com/rhboot/shim/blob/main/SBAT\&.md uki\&.author\&.myimage,1,UKI for System,uki\&.author\&.myimage,1,https://uapi\-group\&.org/specifications/specs/unified_kernel_image/\*(Aq \e \-\-pcr\-private\-key=tpm2\-pcr\-initrd\-private\-key\&.pem \e \-\-pcr\-public\-key=tpm2\-pcr\-initrd\-public\-key\&.pem \e \-\-phases=\*(Aqenter\-initrd\*(Aq \e \-\-pcr\-private\-key=tpm2\-pcr\-private\-key\-system\&.pem \e \-\-pcr\-public\-key=tpm2\-pcr\-public\-key\-system\&.pem \e \-\-phases=\*(Aqenter\-initrd:leave\-initrd enter\-initrd:leave\-initrd:sysinit \e enter\-initrd:leave\-initrd:sysinit:ready\*(Aq \e \-\-pcr\-banks=sha384,sha512 \e \-\-secureboot\-private\-key=secureboot\-private\-key\&.pem \e \-\-secureboot\-certificate=secureboot\-certificate\&.pem \e \-\-sign\-kernel \e \-\-cmdline=\*(Aqquiet rw rhgb\*(Aq .fi .if n \{\ .RE .\} .PP هذا ينشئ صورة UKI موقعة \&./vmlinuz\&.signed\&.efi\&. يحتوي قسم initrd على جزأين متسلسلين، early_cpio و initramfs\-6\&.0\&.9\-300\&.fc37\&.x86_64\&.img\&. ستُوقع السياسة المضمنة في قسم "\&.pcrsig" من أجل initrd (مرحلة \fBenter\-initrd\fP) بالمفتاح tpm2\-pcr\-initrd\-private\-key\&.pem، ومن أجل النظام الرئيس (مراحل \fBleave\-initrd\fP، و \fBsysinit\fP، و \fBready\fP) بالمفتاح tpm2\-pcr\-private\-key\-system\&.pem\&. سيُوقع ثنائي لينكس والصورة المجمعة الناتجة بمفتاح الإقلاع الآمن secureboot\-private\-key\&.pem\&. .PP \fBمثال\ \&4.\ \&كل الإضافات والكماليات، عبر ملف ضبط\fP .PP هذا هو نفس المثال السابق، ولكن هذه المرة حُفظ الضبط في ملف: .sp .if n \{\ .RS 4 .\} .nf $ cat ukify\&.conf [UKI] Initrd=early_cpio Cmdline=quiet rw rhgb SecureBootPrivateKey=secureboot\-private\-key\&.pem SecureBootCertificate=secureboot\-certificate\&.pem SignKernel=yes PCRBanks=sha384,sha512 [PCRSignature:initrd] PCRPrivateKey=tpm2\-pcr\-initrd\-private\-key\&.pem PCRPublicKey=tpm2\-pcr\-initrd\-public\-key\&.pem Phases=enter\-initrd [PCRSignature:system] PCRPrivateKey=tpm2\-pcr\-private\-key\-system\&.pem PCRPublicKey=tpm2\-pcr\-public\-key\-system\&.pem Phases=enter\-initrd:leave\-initrd enter\-initrd:leave\-initrd:sysinit enter\-initrd:leave\-initrd:sysinit:ready $ ukify \-c ukify\&.conf build \e \-\-linux=/lib/modules/6\&.0\&.9\-300\&.fc37\&.x86_64/vmlinuz \e \-\-initrd=/some/path/initramfs\-6\&.0\&.9\-300\&.fc37\&.x86_64\&.img .fi .if n \{\ .RE .\} .PP أُحدِد "initrd" واحد (early_cpio) في ملف الضبط، والآخر (initramfs\-6\&.0\&.9\-300\&.fc37\&.x86_64\&.img) في سطر الأوامر\&. قد يكون هذا مفيدًا على سبيل المثال عندما يحتوي initrd الأول على كود دقيق (microcode) للمعالج ولا يحتاج للتحديث عند تغير إصدار النواة، بخلاف initrd الفعلي\&. .PP \fBمثال\ \&5.\ \&ملحق PE لسطر أوامر النواة\fP .sp .if n \{\ .RS 4 .\} .nf ukify build \e \-\-secureboot\-private\-key=secureboot\-private\-key\&.pem \e \-\-secureboot\-certificate=secureboot\-certificate\&.pem \e \-\-cmdline=\*(Aqdebug\*(Aq \e \-\-sbat=\*(Aqsbat,1,SBAT Version,sbat,1,https://github\&.com/rhboot/shim/blob/main/SBAT\&.md uki\-addon\&.author,1,UKI Addon for System,uki\-addon\&.author,1,https://www\&.freedesktop\&.org/software/systemd/man/systemd\-stub\&.html\*(Aq \-\-output=debug\&.addon\&.efi .fi .if n \{\ .RE .\} .PP هذا ينشئ ثنائي PE موقعًا يحتوي على معلمة سطر أوامر نواة إضافية "debug" مع بيانات SBAT التعريفية التي تشير إلى مالك الملحق\&. .PP \fBمثال\ \&6.\ \&تحديد سياسة التوقيع، وإنشاء الشهادة والمفاتيح\fP .PP أولاً، لننشئ ملف تهيئة يحدد التوقيعات التي ستُجرى: .sp .if n \{\ .RS 4 .\} .nf # cat >/etc/kernel/uki\&.conf <base\&.pcrs .fi .if n \{\ .RE .\} .PP بعد ذلك، وقّع خلاصات PCR دون اتصال وأدرجها في كتلة JSON: .sp .if n \{\ .RS 4 .\} .nf #!/usr/bin/python3 import base64, json, subprocess priv_key = \*(Aq/home/zbyszek/src/systemd/tpm2\-pcr\-private\&.pem\*(Aq base_file = \*(Aqbase\&.pcrs\*(Aq base = json\&.load(open(base_file)) for bank,policies in base\&.items(): for policy in policies: pol = base64\&.b16decode(policy[\*(Aqpol\*(Aq]\&.upper()) call = subprocess\&.run([\*(Aqopenssl\*(Aq, \*(Aqdgst\*(Aq, f\*(Aq\-{bank}\*(Aq, \*(Aq\-sign\*(Aq, priv_key], input=pol, check=True, capture_output=True) sig = base64\&.b64encode(call\&.stdout)\&.decode() policy[\*(Aqsig\*(Aq] = sig print(json\&.dumps(base)) .fi .if n \{\ .RE .\} .PP أخيرًا، ألحق كتلة JSON المحدثة بـ UKI: .sp .if n \{\ .RS 4 .\} .nf $ ukify build \e \-\-join\-pcrsig=base\&.efi \e \-\-pcrsig=@base\&.pcrs \e \-\-json=short \e \-\-output=base\-signed\&.efi .fi .if n \{\ .RE .\} .PP سيحتوي ملف UKI الناتج base\-signed\&.efi الآن على خلاصات PCR الموقعة\&. .SH "انظر أيضًا" .PP \fBsystemd\fP(1)، \fBsystemd\-stub\fP(7)، \fBsystemd\-boot\fP(7)، \fBsystemd\-measure\fP(1)، \fBsystemd\-pcrphase.service\fP(8) .SH ملاحظات .IP " 1." 4 صورة نواة موحدة (UKI) من النوع UAPI.5 .RS 4 \%https://uapi\-group.org/specifications/specs/unified_kernel_image/ .RE .IP " 2." 4 qemu .RS 4 \%https://www.qemu.org/docs/master/ .RE .IP " 3." 4 توثيق Shim .RS 4 \%https://github.com/rhboot/shim/blob/main/SBAT.md .RE .IP " 4." 4 OVMF .RS 4 \%https://www.linux\-kvm.org/downloads/lersek/ovmf\-whitepaper\-c770f8c.txt .RE .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .