table of contents
- unstable 4.31.0-1
| REPART.D(5) | repart.d | REPART.D(5) |
الاسم¶
repart.d - ملفات تعريف الأقسام لإعادة تقسيم آلي عند وقت الإقلاع
موجز¶
الوصف¶
تصف ملفات repart.d/*.conf الخصائص الأساسية لأقسام الأجهزة الكتلية في النظام المحلي. ويمكن استخدامها للتصريح عن أنواع الأقسام وأسمائها وأحجامها التي ينبغي أن توجد. تقرأ خدمة systemd-repart(8) هذه الملفات وتحاول إضافة أقسام جديدة مفقودة حاليًا وتوسيع الأقسام الموجودة وفقًا لهذه التعريفات. العملية تزايدية عمومًا، أي عند تطبيقها، يُترك ما هو موجود بالفعل سليمًا، ولا تُقَلّص الأقسام أو تُنقل أو تُحذف أبدًا.
تفيد ملفات التعريف هذه في تطبيق صور أنظمة التشغيل التي تُجهّز وتُسلّم بأحجام صور دنيا (تفتقر مثلًا إلى أي أقسام للحالة أو الذاكرة البديلة)، والتي تستحوذ آليًا عند أول إقلاع على أي مساحة قرص متبقية متبعةً بعض القواعد الأساسية.
حاليًا، الدعم لملفات تعريف الأقسام مُطبّق فقط لجداول أقسام GPT.
تُطابق ملفات الأقسام عمومًا مع أي أقسام موجودة بالفعل على القرص عبر خوارزمية بسيطة: تُفرز ملفات الأقسام حسب اسم الملف (مع تجاهل بادئة الدليل)، ثم تُقارن بالترتيب مع الأقسام الموجودة التي تطابق المعرّف الفريد العالمي (UUID) لنوع القسم نفسه. وتحديدًا، يُخصّص لأول قسم موجود يحمل معرّف UUID محدد لنوع القسم، أول ملف تعريف يحمل معرّف UUID لنوع القسم نفسه، ولثاني قسم موجود يحمل معرّف UUID محدد لنوع القسم، ملف القسم الثاني الذي يحمل معرّف UUID نفسه، وهكذا دواليك. وتُفترض أي ملفات أقسام متبقية ليس لها قسم موجود مطابق أنها تُعرّف قسمًا جديدًا ينبغي إنشاؤه. وتُلحق مثل هذه الأقسام بنهاية جدول الأقسام، بالترتيب المحدد بواسطة أسمائها، مستخدمةً أول فتحة قسم أكبر من أعلى رقم فتحة مستخدم حاليًا. وتُترك أي أقسام موجودة ليس لها ملف قسم مطابق كما هي دون تغيير.
لاحظ أن هذه التعريفات قد تُستخدم فقط لإنشاء أقسام جديدة وتهيئتها أو لتوسيع الأقسام الموجودة. وفي الحالة الأخيرة، لن تؤدي إلى توسيع أنظمة الملفات الحاوية عليها؛ ويمكن استخدام آليات منفصلة، مثل systemd-growfs(8) لتوسيع أنظمة الملفات داخل هذه الأقسام. يمكن أيضًا تعليم الأقسام للتوسيع الآلي عبر إعداد GrowFileSystem=، وفي هذه الحالة يُوسّع نظام الملفات عند أول وصل بواسطة الأدوات التي تحترم هذا العلم. انظر أدناه للمزيد من التفاصيل.
خيارات قسم [PARTITION]¶
Type=
المعرّفات المدعومة هي:
جدول 1. معرّفات
أنواع
أقسام GPT
| المعرف | الشرح |
| esp | قسم نظام EFI |
| xbootldr | قسم محمل الإقلاع الموسع |
| swap | قسم الذاكرة البديلة (Swap) |
| home | قسم المنزل (/home/) |
| srv | قسم بيانات الخادوم (/srv/) |
| var | قسم البيانات المتغيرة (/var/) |
| tmp | قسم البيانات المؤقتة (/var/tmp/) |
| linux-generic | قسم نظام ملفات لينكس عام |
| root | نوع قسم نظام الملفات الجذري المناسب للبنية المعمارية المحلية (اسم مستعار لنوع قسم نظام الملفات الجذري لبنية معمارية مدرجة أدناه، مثلًا root-x86-64) |
| root-verity | بيانات Verity لقسم نظام الملفات الجذري للبنية المعمارية المحلية |
| root-verity-sig | بيانات توقيع Verity لقسم نظام الملفات الجذري للبنية المعمارية المحلية |
| root-secondary | قسم نظام الملفات الجذري للبنية المعمارية الثانوية للبنية المعمارية المحلية (عادةً البنية المطابقة ذات 32 بت للبنية المحلية ذات 64 بت) |
| root-secondary-verity | بيانات Verity لقسم نظام الملفات الجذري للبنية المعمارية الثانوية |
| root-secondary-verity-sig | بيانات توقيع Verity لقسم نظام الملفات الجذري للبنية المعمارية الثانوية |
| root-{arch} | قسم نظام الملفات الجذري للبنية المعمارية المعطاة (مثل root-x86-64 أو root-riscv64) |
| root-{arch}-verity | بيانات Verity لقسم نظام الملفات الجذري للبنية المعمارية المعطاة |
| root-{arch}-verity-sig | بيانات توقيع Verity لقسم نظام الملفات الجذري للبنية المعمارية المعطاة |
| usr | نوع قسم نظام الملفات /usr/ المناسب للبنية المعمارية المحلية (اسم مستعار لنوع قسم نظام الملفات /usr/ لبنية معمارية مدرجة أدناه، مثلًا usr-x86-64) |
| usr-verity | بيانات Verity لقسم نظام الملفات /usr/ للبنية المعمارية المحلية |
| usr-verity-sig | بيانات توقيع Verity لقسم نظام الملفات /usr/ للبنية المعمارية المحلية |
| usr-secondary | قسم نظام الملفات /usr/ للبنية المعمارية الثانوية للبنية المعمارية المحلية (عادةً البنية المطابقة ذات 32 بت للبنية المحلية ذات 64 بت) |
| usr-secondary-verity | بيانات Verity لقسم نظام الملفات /usr/ للبنية المعمارية الثانوية |
| usr-secondary-verity-sig | بيانات توقيع Verity لقسم نظام الملفات /usr/ للبنية المعمارية الثانوية |
| usr-{arch} | قسم نظام الملفات /usr/ للبنية المعمارية المعطاة |
| usr-{arch}-verity | بيانات Verity لقسم نظام الملفات /usr/ للبنية المعمارية المعطاة |
| usr-{arch}-verity-sig | بيانات توقيع Verity لقسم نظام الملفات /usr/ للبنية المعمارية المعطاة |
يمكن أنواع الأقسام الخاصة ببنية معينة استخدام أحد معرّفات البنيات المعمارية هذه: alpha و arc و arm (32 بت) و arm64 (64 بت، المعروف أيضًا باسم aarch64) و ia64 و loongarch64 و mips-le و mips64-le و parisc و ppc و ppc64 و ppc64-le و riscv32 و riscv64 و s390 و s390x و tilegx و x86 (32 بت، المعروف أيضًا باسم i386) و x86-64 (64 بت، المعروف أيضًا باسم amd64).
معظم معرّفات UUID لأنواع الأقسام المدرجة أعلاه معرّفة في مواصفة الأقسام القابلة للاكتشاف UAPI.2[1].
أُضيف في الإصدار 245.
Label=
أُضيف في الإصدار 245.
VolumeLabel=
أُضيف في الإصدار 259.
UUID=
أُضيف في الإصدار 246.
Priority=
أُضيف في الإصدار 245.
Weight=
يُستخدم إعداد Weight= لتوزيع مساحة القرص المتاحة بأسلوب "مرن"، بناءً على حجم القرص والأقسام الموجودة. إذا أُريد للقسم أن يكون بحجم ثابت، استخدم كلاً من SizeMinBytes= و SizeMaxBytes= بالقيمة نفسها لتثبيت الحجم على قيمة واحدة، وفي هذه الحالة لن يكون للوزن أي تأثير.
أُضيف في الإصدار 245.
PaddingWeight=
تفيد الحشوة إذا أُريد ترك مساحة فارغة لإضافات لاحقة أو كهامش أمان عند نهاية الجهاز أو بين الأقسام.
أُضيف في الإصدار 245.
SizeMinBytes=, SizeMaxBytes=
إذا ضُبط Format=، يُرفع الحد الأدنى للحجم آليًا إلى الحد الأدنى لحجم نظام الملفات الخاص بنوع نظام الملفات المحدد، إن كان معروفًا. علاوة على ذلك، بالنسبة لأقسام ESP/XBOOTLDR، يُرفع الحد الأدنى إلى 100M (لصور القطاعات بحجم 512 بايت) أو 260M (لصور القطاعات بحجم 4 كيلوبايت) آليًا، إذا حُدّد بقيمة أصغر.
أُضيف في الإصدار 245.
PaddingMinBytes=, PaddingMaxBytes=
أُضيف في الإصدار 245.
CopyBlocks=
إذا حُدّدت القيمة الخاصة "auto"، يُلتقط المصدر المراد النسخ منه آليًا من النظام المشغل (أو الصورة المحددة عبر --image= — إن استُخدمت). ويُحدّد القسم الذي يطابق نوع القسم المضبوط (كما هو مُصرّح في Type= الموصوف أعلاه)، والدليل الموصول حاليًا والمناسب لنوع القسم ذاك. على سبيل المثال، إذا ضُبط نوع القسم على "root"، يُستخدم القسم الخلفي للدليل الجذري (/) كمصدر للنسخ منه — إن كان نوع قسمه مضبوطًا على "root" أيضًا. وإذا كان النوع المصرّح عنه هو "usr"، يُستخدم القسم الخلفي لـ /usr/ كمصدر لنسخ الكتل منه — إن كان نوع قسمه مضبوطًا على "usr" كذلك. هذا المنطق قادر على تتبع الأقسام الخلفية آليًا للمجلدات المعماة والمُمكّنة فيها تقنية Verity. يفيد خيار "CopyBlocks=auto" في تطبيق الأنظمة "ذاتية التكرار"، أي الأنظمة التي تكون هي المثبت لنفسها.
يجب أن يكون للمملف المحدد هنا حجم من مضاعفات حجم الكتلة الأساسي 512 وألا يكون فارغًا. إذا استُخدم هذا الخيار، تُعدّل خوارزمية تخصيص الحجم قليلاً: يُنشأ القسم بحجم يكفي على الأقل ليتسع للبيانات، أي أن حجم البيانات يُعدّ قيمة حجم أدنى إضافية تُؤخذ في الحسبان ضمن خوارزمية التخصيص، على غرار قيمة SizeMinBytes= المضبوطة أعلاه وبالإضافة إليها.
ليس لهذا الخيار أي تأثير إذا كان القسم المصرح عنه موجودًا بالفعل، أي أن البيانات الموجودة لا تُستبدل أبدًا. لاحظ أن البيانات تُنسخ قبل تحديث جدول الأقسام، أي قبل إنشاء القسم فعليًا بشكل دائم. يوفر هذا متانة للعملية: حيث يُضمن أن القسم إما ألا يوجد مطلقًا أو يوجد مأهولاً بالكامل؛ فلا يمكن أن يوجد القسم وهو غير مأهول أو مأهول جزئيًا فقط.
لا يمكن دمج هذا الخيار مع Format= أو CopyFiles=.
أُضيف في الإصدار 246.
Format=
يقبل هذا أيضًا قيمة وصفية (meta) خاصة وهي "empty". تحديدها يكافئ تحديد "Label=_empty" و "NoAuto=1".
ليس لهذا الخيار أي تأثير إذا كان القسم موجودًا بالفعل.
على غرار سلوك CopyBlocks=، يُهَيّأ نظام الملفات قبل إنشاء القسم، مما يضمن أن القسم لا يوجد أبدًا إلا بنظام ملفات مَهيّأ بالكامل.
لا يمكن دمج هذا الخيار مع CopyBlocks=.
أُضيف في الإصدار 247.
CopyFiles=
يمكن استخدام هذا الإعداد لنسخ الملفات أو الأدلة من المضيف إلى نظام الملفات الذي أُنشئ بسبب خيار Format=. إذا استخدم خيار CopyFiles= دون تحديد Format= صراحةً، فسيُفترض الخيار "Format=" مع قيمة مبدئية مناسبة (حاليًا "vfat" للأقسام "ESP" و "XBOOTLDR"، و "ext4" في الحالات الأخرى، ولكن قد يتغير هذا في المستقبل). يمكن استخدام هذا الخيار عدة مرات لنسخ ملفات أو أدلة متعددة من المضيف إلى نظام الملفات المهيأ حديثًا.
يمكن حذف مسار target وفي هذه الحالة يُستخدم مسار source أيضًا كمسار للهدف (نسبةً إلى جذر نظام الملفات المنشأ حديثًا). إذا كان مسار المصدر يشير إلى دليل، فإنه يُنسخ تكراريًا.
يمكن أن تحتوي options على القيم التالية:
fsverity=
أُضيف في الإصدار 258.
ليس لهذا الخيار أي تأثير إذا كان القسم موجودًا بالفعل: فلا يمكن استخدامه لنسخ ملفات إضافية إلى قسم موجود، بل يمكن استخدامه فقط لملء نظام ملفات أُنشئ حديثًا.
تُنفذ عملية النسخ قبل تسجيل نظام الملفات في جدول الأقسام، مما يضمن أن نظام الملفات الذي مُلئ بهذه الطريقة لا يوجد إلا وهو مجهّز بالكامل.
لاحظ أن خيار CopyFiles= سيتخطى نسخ الملفات غير المدعومة من نظام الملفات الهدف (مثل الوصلات الرمزية، وأنابيب fifo، والمقابس، والأجهزة على vfat). وعند مواجهة نوع ملف غير مدعوم، سيتخطى systemd-repart نسخ هذا الملف ويكتب رسالة سجل حول ذلك.
لاحظ أن systemd-repart لا يغير معرفات المستخدمين/المجموعات (UIDs/GIDs) لأي ملفات أو أدلة منسوخة. عند تشغيل systemd-repart كمستخدم غير ممتص الصلاحيات لبناء صورة من ملفات وأدلة يملكها المستخدم نفسه، يمكنك تشغيل systemd-repart في مساحة أسماء مستخدم مع ربط المستخدم الحالي بالمستخدم الجذر (root) للتأكد من أن الملفات والأدلة في الصورة مملوكة للمستخدم الجذر.
لا يمكن دمج هذا الخيار مع CopyBlocks=.
عند استدعاء systemd-repart(8) مع مفتاح سطر الأوامر --copy-source=، تؤخذ مسارات الملفات نسبةً إلى الدليل المحدد. إذا لم يُستخدم --copy-source=، ولكن استُخدمت المفاتيح --image= أو --root=، فتؤخذ مسارات المصدر نسبةً إلى دليل الجذر المحدد أو جذر صورة القرص.
لاحظ أنه عند استخدام CopyFiles= مع Format=xfs، فإن حزمة xfsprogs بإصدار 6.17 أو أحدث تكون مطلوبة.
أُضيف في الإصدار 247.
ExcludeFiles=, ExcludeFilesTarget=
إذا كان المسار دليلًا وينتهي بـ "/"، فتُستثنى محتويات الدليل فقط وليس الدليل نفسه. وإذا كان المسار دليلًا ولا ينتهي بـ "/"، فيُستثنى الدليل ومحتوياته معًا.
خيار ExcludeFilesTarget= يشبه ExcludeFiles= تمامًا باستثناء أنه بدلاً من استبعاد المسار على المضيف من النسخ إلى القسم، فإنه يستبعد أي ملفات وأدلة من النسخ إلى المسار المحدد داخل القسم.
عند استدعاء systemd-repart(8) مع مفاتيح سطر الأوامر --image= أو --root=، تؤخذ المسارات المحددة نسبةً إلى دليل الجذر المحدد أو جذر صورة القرص.
أُضيف في الإصدار 254.
MakeDirectories=
حالة الاستخدام الرئيسة لهذا الخيار هي إنشاء حد أدنى من الأدلة التي يمكن وصلها فوقها بواسطة أقسام أخرى محتواة في صورة القرص نفسها. على سبيل المثال، قد ترغب صورة قرص يُهيأ نظام ملفات الجذر فيها آليًا عند الإقلاع الأول في إنشاء دليل /usr/ مسبقًا بهذه الطريقة، بحيث يمكن لقسم "usr" أن يُوصل فوقه.
ضع في الحسبان استخدام systemd-tmpfiles(8) مع خيار --image= الخاص به لإنشاء تدرجات أدلة أخرى أكثر تعقيدًا مسبقًا (بالإضافة إلى العقد الفهرسية inodes الأخرى) مع تحكم دقيق في الملكية، وأوضاع الوصول، وسمات الملفات الأخرى.
أُضيف في الإصدار 249.
MakeSymlinks=
حالة الاستخدام الرئيسة لهذا الخيار هي إنشاء وصلات رمزية يجب أن تكون موجودة قبل تنفيذ systemd-tmpfiles(8). على سبيل المثال، عند استخدام systemd-confext(8)، يمكن استخدام هذا الإعداد لإنشاء وصلات رمزية في /var/lib/extensions.mutable لإعادة توجيه عمليات الكتابة إلى ملحقات ضبط confexts قابلة للتعديل إلى موقع مخصص.
ضع في الحسبان استخدام systemd-tmpfiles(8) مع خيار --image= الخاص به لإنشاء وصلات رمزية أخرى مسبقًا (بالإضافة إلى العقد الفهرسية inodes الأخرى) مع تحكم دقيق في الملكية، وأوضاع الوصول، وسمات الملفات الأخرى.
أُضيف في الإصدار 257.
Subvolumes=
الجدول 2. أعلام
الحجوم
الفرعية
| علم | الغرض |
| "ro" | اجعل هذا الحجم الفرعي للقراءة فقط. |
| "nodatacow" | عطّل نسخ البيانات عند الكتابة (CoW) لهذا الحجم الفرعي. |
لاحظ أن هذا الخيار لا ينشئ الأدلة نفسها، بل يمكن ضبط ذلك باستخدام MakeDirectories= و CopyFiles=.
لاحظ أن هذا الخيار لا يسري مفعوله إلا إذا كان نظام الملفات الهدف يدعم الحجوم الفرعية، مثل btrfs(8).
لاحظ أن هذا الخيار مدعوم فقط بالاقتران مع --offline=yes منذ حزمة btrfs-progs بإصدار 6.12 أو أحدث.
أُضيف في الإصدار 255.
DefaultSubvolume=
لاحظ أن هذا الخيار لا يسري مفعوله إلا إذا كان نظام الملفات الهدف يدعم الحجوم الفرعية، مثل btrfs(8).
لاحظ أن هذا الخيار مدعوم فقط بالاقتران مع --offline=yes منذ حزمة btrfs-progs بإصدار 6.12 أو أحدث.
أُضيف في الإصدار 256.
BlockDeviceReplace=
إذا حدث خطأ بعد نقل نظام الملفات وقبل الانتهاء من كتابة جدول الأقسام، فستُبذل محاولة لإعادة نظام الملفات إلى جهازه الأصلي. لكن إذا فشلت تلك المحاولة أيضًا، فقد يعيش نظام الملفات على قسم غير موجود في جدول الأقسام وسيُفقد عند إعادة التشغيل. هذه الميزة تهدف إلى حفظ أنظمة الملفات المُوصلة بشكل مؤقت في البداية في القرص الجديد دون بيانات مهمة، مثل نظام الإقلاع المباشر. قد تحتاج إلى إعادة إنشائها بعد فشل كتابة جدول الأقسام.
هذا الخيار غير متوافق مع --offline=yes.
أُضيف في الإصدار 261.
VolumeName=
يجب أن تكون القيمة اسم ملف صالحًا. إذا لم تُحدد، فستكون مبدئيًا قيمة VolumeLabel= (التي قد تُشتق من Label=) إذا كانت صالحة.
أُضيف في الإصدار 261.
Encrypt=
يُشتق معرف LUKS2 UUID آليًا من معرف القسم UUID بطريقة مستقرة. إذا استخدم "key-file" أو "key-file+tpm2"، فيُضاف مفتاح إلى الكتلة العليا لـ LUKS2، ويمكن ضبطه باستخدام خيار --key-file= الممرر إلى systemd-repart. وإذا استخدم "tpm2" أو "key-file+tpm2"، فيُضاف مفتاح إلى الكتلة العليا لـ LUKS2 ويُسجل في شريحة TPM2 المحلية، وفقًا لما هو مضبوط في خياري --tpm2-device= و --tpm2-pcrs= الممررين إلى systemd-repart.
عند استخدامه، يغير هذا منطق تخصيص الحجم قليلاً حيث تزداد حدود الحجم الأدنى الضمنية لكل من Format= و CopyBlocks= بالمساحة اللازمة للكتلة العليا لـ LUKS2 (انظر أعلاه).
ليس لهذا الخيار أي تأثير إذا كان القسم موجودًا بالفعل.
أُضيف في الإصدار 247.
Discard=
إذا ضُبط على "yes"، عند إنشاء الكتلة الفائقة LUKS2 للقسم، فسيُضبط علم التفعيل "allow-discards" بحيث تسمح التفعيلات المستقبلية بالتجاهل مبدئيًا.
ليس لهذا الخيار أي تأثير إذا كان القسم موجودًا مسبقًا أو إذا استُخدم Encrypt=off.
أُضيف في الإصدار 261.
EncryptKDF=
عند الضبط على "argon2id" أو "pbkdf2"، يُستخدم KDF المُحدد مع معاملات مُقاسة بواسطة مكتبة cryptsetup. عند الضبط على "minimal"، يُستخدم PBKDF2 مع SHA-512 و 1000 تكرار وبدون قياس — هذا مناسب للمفاتيح عالية الإنتروبيا (مثلًا المُنشأة بواسطة مدير مفاتيح عتادي أو المُختومة في TPM) حيث يحتاج KDF فقط إلى تلبية متطلبات تنسيق LUKS2، وليس تقوية عبارة سرية ضعيفة.
لاحظ أن دوال KDF القائمة على Argon2 قد تتطلب ذاكرة كبيرة (حتى 1 جيجابايت) أثناء اشتقاق المفتاح. في البيئات محدودة الذاكرة مثل kdump مع ذاكرة نواة تحطم محدودة، قد يكون "minimal" أو "pbkdf2" أكثر ملاءمة. عندما يتضمن Encrypt= "tpm2"، يستخدم فتحة مفتاح TPM2 دائمًا تهيئة PBKDF2 ضئيلة بغض النظر عن هذا الإعداد.
أُضيف في الإصدار 261.
Verity=
قسم verity المطابق هو قسم له نفس مفتاح مطابقة verity (كما هو مضبوط باستخدام VerityMatchKey=).
ما لم يُضبط صراحةً، فسيُضبط معرف UUID لقسم البيانات على أول 128 بت من تجزئة جذر verity. وبالمثل، إذا لم يُضبط، فسيُضبط معرف UUID لقسم التجزئة على آخر 128 بت من تجزئة جذر verity. ستُضمن تجزئة جذر verity نفسها في مخرجات systemd-repart.
ليس لهذا الخيار أي تأثير إذا كان القسم موجودًا بالفعل.
استخدام هذا الخيار بالاقتران مع Encrypt= غير مدعوم.
لكل قيمة فريدة لـ VerityMatchKey=، يجب تعريف قسم بيانات verity واحد ("Verity=data") وقسم تجزئة verity واحد ("Verity=hash").
أُضيف في الإصدار 252.
VerityMatchKey=
أُضيف في الإصدار 252.
VerityDataBlockSizeBytes=
أُضيف في الإصدار 255.
VerityHashBlockSizeBytes=
أُضيف في الإصدار 255.
FactoryReset=
أُضيف في الإصدار 245.
Flags=
أُضيف في الإصدار 249.
NoAuto=, ReadOnly=, GrowFileSystem=
إذا استخدم خيار Flags= بالتزامن مع واحد أو أكثر من خيارات NoAuto=/ReadOnly=/GrowFileSystem=، فإن الأخيرة تتحكم في قيمة الأعلام ذات الصلة، أي أن الإعدادات عالية المستوى NoAuto=/ReadOnly=/GrowFileSystem= تتجاوز البتات ذات الصلة في الإعداد منخفض المستوى Flags=.
لاحظ أن الأعلام الثلاثة تؤثر فقط على وصل الأقسام الآلي، كما هو مطبق بواسطة systemd-gpt-auto-generator(8) أو خيار --image= لأوامر مختلفة (مثل systemd-nspawn(1)). وليس لها أي تأثير على عمليات الوصل الصريحة، مثل تلك التي تتم عبر mount(8) أو fstab(5).
إذا ضُبط كل من البت 60 و 59 لقسم ما (أي أن القسم علم عليه كقراءة فقط وللتوسيع لنظام الملفات معًا)، فإن الأخير عادةً ما يكون بلا تأثير: فلعلم القراءة فقط الأولوية في معظم الأدوات التي تقرأ هذه الأعلام، وبما أن توسيع نظام الملفات يتطلب الكتابة إلى القسم، فإنه يُتجاهل تبعًا لذلك.
القيمة المبدئية لـ NoAuto= هي الإيقاف (off). والقيمة المبدئية لـ ReadOnly= هي التشغيل (on) لأنواع أقسام Verity، والإيقاف (off) لجميع الأنواع الأخرى. والقيمة المبدئية لـ GrowFileSystem= هي التشغيل (on) لجميع أنواع الأقسام التي تدعمه، إلا إذا علم على القسم كقراءة فقط (وبالتالي فعليًا، تكون قيمته المبدئية هي الإيقاف لأقسام Verity).
أُضيف في الإصدار 249.
SplitName=
أُضيف في الإصدار 252.
Minimize=
أُضيف في الإصدار 253.
MountPoint=
MountPoint="/path/with:colon":"zstd:1,noatime,lazytime"
يمكن تحديد هذا الإعداد عدة مرات لوصل القسم عدة مرات. يمكن استخدام هذا لإضافة نقاط وصل لحجوم فرعية مختلفة من btrfs(8) تقع على قسم btrfs نفسه.
لاحظ أن هذا الإعداد لا يؤخذ في الحسبان إلا عند تحديد --generate-fstab= في سطر أوامر systemd-repart.
أُضيف في الإصدار 256.
EncryptedVolume=
لاحظ أن هذا الإعداد لا يؤخذ في الحسبان إلا عند تحديد --generate-crypttab= في سطر أوامر systemd-repart. وبما أنه لا يمكن توليد ملف crypttab مع التجزئات المتوقعة إلا بعد تهيئة أجزاء LUKS، فلا يمكن وضع ملف crypttab نفسه في الجزء المُنشأ.
أُضيف في الإصدار 256.
TPM2PCRs=
أُضيف في الإصدار 259.
KeyFile=
أُضيف في الإصدار 259.
Integrity=
ملاحظة: تُعد تعمية القرص المستوثقة تجريبية (EXPERIMENTAL) بواسطة cryptsetup.
أُضيف في الإصدار 260.
IntegrityAlgorithm=
أُضيف في الإصدار 260.
Compression=
لاحظ أن هذا الإعداد لا يُؤخذ في الحسبان إلا عندما يدعم نظام الملفات المضبوط بـ Format= الضغط ( btrfs(8)، و squashfs، و erofs(5)). إليك قائمة غير كاملة بخوارزميات الضغط التي تدعمها نظم الملفات المعروفة لـ systemd-repart:
جدول 3. خوارزميات
ضغط نظام
الملفات
| نظام الملفات | خوارزميات الضغط | التوثيق |
| squashfs | gzip, lzo, lz4, xz, zstd, lzma | mksquashfs(1) |
| erofs | lz4, lz4hc, lzma, deflate, libdeflate, zstd | mkfs.erofs(1) |
| btrfs | zlib, lzo, zstd | mkfs.btrfs(8) |
أُضيف في الإصدار 257.
CompressionLevel=
لاحظ أن هذا الإعداد لا يُؤخذ في الحسبان إلا عندما يدعم نظام الملفات المضبوط بـ Format= الضغط ويكون إعداد Compression= مضبوطًا صراحةً.
أُضيف في الإصدار 257.
SupplementFor=
تُدمج الحقول التالية في التعريف المستهدف بالطرق المحددة: يُعاد كتابة Weight= و PaddingWeight= ببساطة؛ ويستخدم SizeMinBytes= و PaddingMinBytes= القيمة الأكبر بين القيمتين؛ ويستخدم SizeMaxBytes= و PaddingMaxBytes= القيمة الأصغر؛ وتُقرن حقول CopyFiles=، و ExcludeFiles=، و ExcludeFilesTarget=، و MakeDirectories=، و Subvolumes= معًا.
استخدام هذا الخيار بالاقتران مع CopyBlocks=، أو Encrypt=، أو Verity= غير مدعوم. لا يمكن للتعريف المستهدف ضبط هذه الإعدادات أيضًا. ولا يمكن للتعريف أن يكون تكميليًا ويعمل كمستهدف لتعريف تكميلي آخر في نفس الوقت. ولا يمكن للمستهدف أن يرتبط به أكثر من قسم تكميلي واحد.
على سبيل المثال، يمكن للتوزيعات استخدام هذا لتطبيق $BOOT كما هو معرّف في مواصفة محمل الإقلاع UAPI.1[2]. قد تفضل التوزيعات استخدام ESP كـ $BOOT كلما أمكن ذلك، ولكن للالتزام بالمواصفة يجب استخدام XBOOTLDR أحيانًا بدلًا من ذلك. لذا، ينبغي لها إنشاء تعريفين: الأول يعرّف ESP كبيرًا بما يكفي لاحتواء محمل الإقلاع فقط، والثاني لـ XBOOTLDR يكون كبيرًا بما يكفي لاحتواء النوى ومضبوطًا كملحق لـ ESP. يحاول systemd-repart(8) دمج التعريفين لإنشاء ESP واحد كبير كلما أمكن ذلك، ولكن إذا لم يكن ذلك مسموحًا به بسبب الظروف الحالية على القرص، فسيُنشأ ESP صغير و XBOOTLDR كبير بدلًا من ذلك.
كمثال آخر، يمكن للتوزيعات أيضًا استخدام هذا لمشاركة قسم /home واحد بسلاسة في سيناريو الإقلاع المتعدد، مع تفضيل إبقاء /home على القسم الرئيس مبدئيًا. ينطوي وجود قسم /home منفصل عن القسم الرئيس على بعض التعقيد الإضافي: إذ يتعين على أحدهم تحديد كيفية تقسيم المساحة بين القسمين. من ناحية أخرى، يتيح ذلك للمستخدم مشاركة منطقة المنزل الخاصة به بين عدة أنظمة تشغيل مثبتة (أي عبر systemd-homed.service(8)). ينبغي للتوزيعات إنشاء تعريفين: الأول لقسم رئيس يأخذ نسبة مئوية صغيرة نسبيًا من القرص، والثاني كتكملة للأول لإنشاء قسم /home يأخذ كل المساحة الحرة المتبقية. عند الإقلاع الأول، إذا وجد systemd-repart قسم /home موجودًا بالفعل على القرص، فسيتراجع عن دمج التعريفات ويُنشئ قسمًا رئيسًا صغيرًا فقط. خلاف ذلك، ستُدمج التعريفات ويُنشأ قسم رئيس واحد كبير.
أُضيف في الإصدار 257.
AddValidateFS=
تُقرأ هذه السمات الممتدة بواسطة systemd-validatefs@.service(8) و قد تُرمّز قيودًا على نظم الملفات الموصولة والتي يجب الوفاء بها لكي يقلع النظام بنجاح. هذا مهم بشكل خاص في سيناريوهات systemd-gpt-auto-generator(8)، والتي تجمع هرمية الوصل من بيانات غير موثوقة من جدول أقسام GPT. بما أن هذه السمات الممتدة تُخزن داخل نظام الملفات، فإنه يجري الاستيثاق منها عادةً كجزء من نظام الملفات (بافتراض احتوائه في حجم محمي؛ أي LUKS أو dm-verity)، وبالتالي يمكن استخدامها للتحقق بأمان من حقول جدول الأقسام المطابقة.
أُضيف في الإصدار 258.
FileSystemSectorSize=
إذا لم يُحدد وكان العمل يجري على جهاز كتلي، فإنه يعود مبدئيًا إلى حجم القطاع الأصلي للجهاز. وإذا لم يُحدد وكان العمل يجري على ملف صورة قرص، فإنه يعود مبدئيًا إلى 4096.
بغض النظر عما اضُبط هنا، أو أي قيمة مبدئية انتُقيت، فإن حجم قطاع نظام الملفات يُزاد دائمًا ليكون مساويًا لحجم قطاع القرص أو أكبر منه.
أُضيف في الإصدار 258.
المحددات¶
يمكن استخدام المحددات في إعدادات Label= و CopyBlocks= و CopyFiles= و MakeDirectories= و SplitName=. تُفهم التوسيعات التالية:
جدول 4. المحددات
المتاحة
| المحدد | المعنى | التفاصيل |
| "%a" | المعمارية | سلسلة نصية قصيرة تحدد معمارية النظام المحلي. سلسلة مثل x86 أو x86-64 أو arm64. انظر المعماريات المحددة لـ ConditionArchitecture= في systemd.unit(5) للحصول على قائمة كاملة. |
| "%A" | إصدار صورة نظام التشغيل | معرف إصدار صورة نظام التشغيل للنظام المشغل، كما يُقرأ من حقل IMAGE_VERSION= في /etc/os-release. إذا لم يُضبط، يُحل إلى سلسلة فارغة. انظر os-release(5) لمزيد من المعلومات. |
| "%b" | معرف الإقلاع | معرف الإقلاع للنظام المشغل، منسق كسلسلة نصية. انظر random(4) لمزيد من المعلومات. |
| "%B" | معرف بناء نظام التشغيل | معرف بناء نظام التشغيل للنظام المشغل، كما يُقرأ من حقل BUILD_ID= في /etc/os-release. إذا لم يُضبط، يُحل إلى سلسلة فارغة. انظر os-release(5) لمزيد من المعلومات. |
| "%H" | اسم المضيف | اسم مضيف النظام المشغل. |
| "%l" | اسم المضيف القصير | اسم مضيف النظام المشغل، مقتطعًا عند النقطة الأولى لإزالة أي مكون نطاق. |
| "%m" | معرف الآلة | معرف الجهاز للنظام المشغل، منسق كسلسلة نصية. انظر machine-id(5) لمزيد من المعلومات. |
| "%M" | معرف صورة نظام التشغيل | معرف صورة نظام التشغيل للنظام المشغل، كما يُقرأ من حقل IMAGE_ID= في /etc/os-release. إذا لم يُضبط، يُحل إلى سلسلة فارغة. انظر os-release(5) لمزيد من المعلومات. |
| "%o" | معرف نظام التشغيل | معرف نظام التشغيل للنظام المشغل، كما يُقرأ من حقل ID= في /etc/os-release. انظر os-release(5) لمزيد من المعلومات. |
| "%q" | اسم المضيف الجميل | اسم المضيف الجميل للنظام المشغل، كما يُقرأ من حقل PRETTY_HOSTNAME= في /etc/machine-info. إذا لم يُضبط، يُحل إلى اسم المضيف القصير. انظر machine-info(5) لمزيد من المعلومات. |
| "%v" | إصدار النواة | مطابق لمخرجات uname -r. |
| "%w" | معرف إصدار نظام التشغيل | معرف إصدار نظام التشغيل للنظام المشغل، كما يُقرأ من حقل VERSION_ID= في /etc/os-release. إذا لم يُضبط، يُحل إلى سلسلة فارغة. انظر os-release(5) لمزيد من المعلومات. |
| "%W" | معرف نوع نظام التشغيل | معرف تنويعة نظام التشغيل للنظام المشغل، كما يُقرأ من حقل VARIANT_ID= في /etc/os-release. إذا لم يُضبط، يُحل إلى سلسلة فارغة. انظر os-release(5) لمزيد من المعلومات. |
| "%T" | مجلد للملفات المؤقتة | هذا إما /tmp أو المسار الذي ضُبطت إليه "$TMPDIR" أو "$TEMP" أو "$TMP". (لاحظ أن الدليل قد يُحدد بدون شرطة مائلة لاحقة.) |
| "%V" | مجلد للملفات المؤقتة الأكبر حجمًا والمستمرة | هذا إما /var/tmp أو المسار الذي ضُبطت إليه "$TMPDIR" أو "$TEMP" أو "$TMP". (لاحظ أن الدليل قد يُحدد بدون شرطة مائلة لاحقة.) |
| "%%" | علامة مئوية مفردة | استخدم "%%" بدلاً من "%" لتحديد علامة مئوية مفردة. |
بالإضافة إلى ذلك، بالنسبة لإعداد SplitName=، تُفهم أيضًا المحددات التالية:
جدول 5. المحددات
المتاحة
| المحدد | المعنى | التفاصيل |
| "%T" | Partition Type UUID | معرّف UUID لنوع القسم، كما هو مضبوط بـ Type= |
| "%t" | معرّف نوع القسم | معرّف نوع القسم المقابل لمعرّف UUID لنوع القسم |
| "%U" | Partition UUID | معرّف UUID للقسم، كما هو مضبوط بـ UUID= |
| "%n" | Partition Number | رقم القسم المعين للقسم |
البيئة¶
يمكن توفير خيارات تهيئة إضافية لنظام الملفات باستخدام متغيرات البيئة الخاصة بنظام الملفات: $SYSTEMD_REPART_MKFS_OPTIONS_BTRFS، و $SYSTEMD_REPART_MKFS_OPTIONS_XFS، و $SYSTEMD_REPART_MKFS_OPTIONS_VFAT، و $SYSTEMD_REPART_MKFS_OPTIONS_EROFS، و $SYSTEMD_REPART_MKFS_OPTIONS_SQUASHFS. يقبل كل متغير وسائط سطر أوامر صالحة لـ mkfs.filesystem. تُمرر محتويات تلك المتغيرات كما هي إلى الأمر، دون أي تحقق.
أمثلة¶
مثال 1. توسيع القسم الرئيس ليَشغل كامل حجم القرص عند الإقلاع الأول
باستخدام الملف التالي، يُوسع القسم الرئيس آليًا ليَشغل كامل القرص إذا أمكن ذلك أثناء الإقلاع.
# /usr/lib/repart.d/50-root.conf [Partition] Type=root
مثال 2. إنشاء قسمي الذاكرة البديلة (swap) والمنزل (home) آليًا عند الإقلاع، في حال فقدهما
يأخذ قسم المنزل كل مساحة القرص المتاحة بينما يأخذ قسم الذاكرة البديلة 1 جيجابايت على الأكثر و 64 ميجابايت على الأقل. اضُبطت أولوية > 0 على قسم الذاكرة البديلة لضمان عدم استخدام قسم الذاكرة البديلة إذا لم تتوفر مساحة كافية. لكل ثلاثة بايتات تُعين لقسم المنزل، يُعين بايت واحد لقسم الذاكرة البديلة.
# /usr/lib/repart.d/60-home.conf [Partition] Type=home
# /usr/lib/repart.d/70-swap.conf [Partition] Type=swap SizeMinBytes=64M SizeMaxBytes=1G Priority=1 Weight=333
مثال 3. إنشاء أقسام B في إعداد A/B Verity، في حال فقدها
لنفترض أن المورد ينوي تحديث صور نظام التشغيل في إعداد A/B، أي بقسمين رئيسين (وقسمي Verity مطابقين لهما) تُستخدم بالتناوب أثناء الترقيات. لتقليل أحجام الصور، تُشحن الصورة الأصلية بقسم رئيس واحد وقسم Verity واحد فقط (المجموعة "A")، ويُنشأ القسم الرئيس الثاني وقسم Verity الثاني (المجموعة "B") عند الإقلاع الأول في المساحة الحرة على الوسيط.
# /usr/lib/repart.d/50-root.conf [Partition] Type=root SizeMinBytes=512M SizeMaxBytes=512M
# /usr/lib/repart.d/60-root-verity.conf [Partition] Type=root-verity SizeMinBytes=64M SizeMaxBytes=64M
تغطي التعريفات المذكورة أعلاه المجموعة "A" من القسم الرئيس (بحجم ثابت 512 ميجابايت) وقسم Verity للقسم الرئيس (بحجم ثابت 64 ميجابايت). لنستخدم الوصلات الرمزية لإنشاء المجموعة "B" من الأقسام، ففي النهاية يجب أن تمتلك نفس الخصائص والأحجام مثل المجموعة "A".
# ln -s 50-root.conf /usr/lib/repart.d/70-root-b.conf # ln -s 60-root-verity.conf /usr/lib/repart.d/80-root-verity-b.conf
مثال 4. إنشاء قسم بيانات وأقسام verity مطابقة له من شجرة نظام تشغيل
بافتراض أن لدينا شجرة نظام تشغيل في /var/tmp/os-tree نريد حزمها في قسم رئيس مع أقسام verity مطابقة لها، يمكننا القيام بذلك كما يلي:
# 50-root.conf [Partition] Type=root CopyFiles=/var/tmp/os-tree Verity=data VerityMatchKey=root Minimize=guess
# 60-root-verity.conf [Partition] Type=root-verity Verity=hash VerityMatchKey=root # Explicitly set the hash and data block size to 4K VerityDataBlockSizeBytes=4096 VerityHashBlockSizeBytes=4096 Minimize=best
# 70-root-verity-sig.conf [Partition] Type=root-verity-sig Verity=signature VerityMatchKey=root
انظر أيضًا¶
systemd(1), systemd-repart(8), sfdisk(8), systemd-cryptenroll(1)
ملاحظات¶
- 1.
- UAPI.2 مواصفات الأقسام القابلة للاكتشاف
- 2.
- مواصفات محمل الإقلاع UAPI.1
ترجمة¶
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.
| systemd 261~rc3 |