REPART.D(5) repart.d REPART.D(5)

repart.d - دایرکتوریهای پیکربندی بازپارتیشنبندی دیسک برای systemd-repart

/etc/repart.d/*.conf
/run/repart.d/*.conf
/usr/local/lib/repart.d/*.conf
/usr/lib/repart.d/*.conf

فایل‌های repart.d/*.conf ویژگی‌های اساسی پارتیشن‌های دستگاه‌های بلوکی سیستم محلی را توصیف می‌کنند. از آن‌ها می‌توان برای اعلان نوع‌ها، نام‌ها و اندازه‌های پارتیشن‌هایی که باید وجود داشته باشند استفاده کرد. سرویس systemd-repart(8) این فایل‌ها را می‌خواند و تلاش می‌کند پارتیشن‌های جدیدی را که در حال حاضر موجود نیستند اضافه کند و پارتیشن‌های موجود را طبق این تعاریف بزرگ‌تر نماید. این عملیات عموماً افزایشی است، یعنی هنگام اعمال، آنچه از قبل وجود دارد دست‌نخورده باقی می‌ماند و پارتیشن‌ها هرگز کوچک، جابه‌جا یا حذف نمی‌شوند.

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

در حال حاضر، پشتیبانی از فایل‌های تعریف پارتیشن فقط برای جدول‌های پارتیشن GPT پیاده‌سازی شده است.

فایل‌های پارتیشن به طور کلی با پارتیشن‌های موجود روی دیسک بر اساس یک الگوریتم ساده تطبیق داده می‌شوند: فایل‌های پارتیشن بر اساس نام فایل خود مرتب می‌شوند (با صرف‌نظر از پیشوند دایرکتوری)، و سپس به ترتیب با پارتیشن‌های موجود که دارای همان UUID نوع پارتیشن هستند مقایسه می‌گردند. به طور مشخص، نخستین پارتیشن موجود با یک UUID نوع پارتیشن خاص به نخستین فایل تعریف با همان UUID نوع پارتیشن اختصاص می‌یابد، و دومین پارتیشن موجود با یک UUID نوع خاص به دومین فایل پارتیشن با همان UUID نوع اختصاص می‌یابد، و به همین ترتیب. فرض می‌شود هر فایل پارتیشن باقی‌مانده‌ای که هیچ پارتیشن منطبق موجودی ندارد، پارتیشن جدیدی را تعریف می‌کند که باید ایجاد شود. چنین پارتیشن‌هایی به انتهای جدول پارتیشن افزوده می‌شوند، به ترتیبی که نام آن‌ها مشخص می‌کند و با استفاده از نخستین اسلات پارتیشن بزرگ‌تر از بالاترین شماره اسلات در حال استفاده فعلی. هر پارتیشن موجودی که فایل پارتیشن منطبقی نداشته باشد، همان‌طور که هست رها می‌شود.

توجه داشته باشید که این تعاریف فقط برای ایجاد و مقداردهی اولیه پارتیشن‌های جدید یا گسترش پارتیشن‌های موجود قابل استفاده هستند. در حالت دوم، با این حال سیستم‌های فایل درون آن‌ها گسترش داده نمی‌شوند؛ سازوکارهای جداگانه‌ای مانند systemd-growfs(8) می‌توانند برای گسترش سیستم‌های فایل درون این پارتیشن‌ها استفاده شوند. پارتیشن‌ها همچنین می‌توانند از طریق تنظیم GrowFileSystem= برای گسترش خودکار نشانه‌گذاری شوند، که در این حالت سیستم فایل در نخستین بارگیری (mount) توسط ابزارهایی که این فلگ را رعایت می‌کنند گسترش می‌یابد. برای جزئیات بیشتر به ادامه متن مراجعه کنید.

Type=

شناسه UUID نوع پارتیشن GPT برای تطبیق. این مقدار می‌تواند یک UUID نوع پارتیشن GPT مانند 4f68bce3-e8cd-4db1-96e7-fbcaf984b709، یا یک شناسه باشد.

شناسه‌های پشتیبانی‌شده عبارتند از:

جدول 1. شناسه‌های نوع پارتیشن GPT

شناسه توضیح
esp پارتیشن سیستم EFI
xbootldr پارتیشن بوت‌لودر گسترش‌یافته (Extended Boot Loader Partition)
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 پارتیشن سیستم‌فایل ریشه معماری ثانویه معماری محلی (معمولاً معماری ۳۲ بیتی منطبق برای معماری ۶۴ بیتی محلی)
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/ معماری ثانویه معماری محلی (معمولاً معماری ۳۲ بیتی منطبق برای معماری ۶۴ بیتی محلی)
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 (۳۲ بیتی)، arm64 (۶۴ بیتی، همچنین شناخته‌شده با aarch64)، ia64، loongarch64، mips-le، mips64-le، parisc، ppc، ppc64، ppc64-le، riscv32، riscv64، s390، s390x، tilegx، x86 (۳۲ بیتی، همچنین شناخته‌شده با i386) و x86-64 (۶۴ بیتی، همچنین شناخته‌شده با amd64).

بیشتر UUIDهای نوع پارتیشن فهرست‌شده در بالا در UAPI.2 Discoverable Partitions Specification[1] تعریف شده‌اند.

افزوده شده در نگارش 245.

Label=

برچسب متنی برای انتساب به پارتیشن در صورتی که هنوز برچسبی اختصاص نیافته باشد. توجه داشته باشید که این تنظیم برای تطبیق استفاده نمی‌شود. همچنین زمانی که برچسبی از قبل برای یک پارتیشن موجود تنظیم شده باشد، استفاده نمی‌شود. بنابراین فقط زمانی استفاده می‌شود که پارتیشنی به تازگی ایجاد شده باشد یا یک پارتیشن موجود بدون برچسب باشد (یعنی یک برچسب خالی داشته باشد). در صورت عدم تعیین، برچسبی که از نوع پارتیشن مشتق شده است به طور خودکار استفاده می‌شود. بسط مشخص‌کننده‌های ساده (specifier expansion) پشتیبانی می‌شود، به زیر مراجعه کنید.

افزوده شده در نگارش 245.

VolumeLabel=

برچسب متنی برای انتساب به ابربلاک LUKS در صورت کاربرد داشتن. در صورت عدم تعیین، به همان رشته برچسب پارتیشن پیش‌فرض می‌شود (به Label= در بالا مراجعه کنید)، اما با پیشوند "luks-". اگر رمزنگاری برای این پارتیشن فعال نباشد، این تنظیم هیچ تاثیری ندارد.

افزوده شده در نگارش 259.

UUID=

شناسه UUID برای انتساب به پارتیشن در صورتی که هنوز UUID به آن اختصاص نیافته باشد. توجه داشته باشید که این تنظیم برای تطبیق استفاده نمی‌شود. همچنین زمانی که UUID از قبل برای یک پارتیشن موجود تنظیم شده باشد استفاده نمی‌شود. بنابراین فقط زمانی استفاده می‌شود که پارتیشنی به تازگی ایجاد شده باشد یا پارتیشن موجود دارای UUID تمام‌صفر باشد. اگر روی "null" تنظیم شود، UUID تماماً صفر تنظیم می‌گردد. در صورت عدم تعیین، شناسه UUID مشتق‌شده از نوع پارتیشن به طور خودکار استفاده می‌شود.

افزوده شده در نگارش 246.

Priority=

یک اولویت عددی برای تخصیص به این پارتیشن، در محدوده -2147483648...2147483647، که مقادیر کوچک‌تر نشان‌دهنده اولویت بالاتر، و مقادیر بزرگ‌تر نشان‌دهنده اولویت پایین‌تر هستند. این اولویت در صورتی استفاده می‌شود که محدودیت‌های اندازه پیکربندی‌شده روی پارتیشن‌های تعریف‌شده، اجازه جای دادن تمام پارتیشن‌ها را در فضای دیسک موجود ندهند. اگر پارتیشن‌ها جا نشوند، بالاترین اولویت عددی پارتیشن در میان تمام پارتیشن‌های تعریف‌شده تعیین می‌شود، و تمام پارتیشن‌های تعریف‌شده با این اولویت از فهرست پارتیشن‌های جدید برای ایجاد حذف می‌شوند (که اگر از اولویت یکسانی برای چندین پارتیشن استفاده شده باشد، ممکن است چند مورد باشند). سپس الگوریتم جای‌دهی مجدداً امتحان می‌شود. اگر پارتیشن‌ها هنوز جا نشوند، بالاترین اولویت عددی فعلی تعیین می‌شود، و پارتیشن‌های منطبق نیز حذف می‌گردند، و به همین ترتیب. پارتیشن‌های با اولویت 0 یا کمتر هرگز حذف نمی‌شوند. اگر تمام پارتیشن‌های دارای اولویت بالاتر از 0 حذف شوند و پارتیشن‌ها هنوز روی دستگاه جا نشوند، عملیات با شکست مواجه می‌شود. توجه داشته باشید که این اولویت هیچ تاثیری بر ترتیب پارتیشن‌ها ندارد؛ برای این منظور از ترتیب الفبایی نام فایل‌های تعریف پارتیشن استفاده کنید. مقدار پیش‌فرض 0 است.

افزوده شده در نگارش 245.

Weight=

یک وزن عددی برای انتساب به این پارتیشن در محدوده 0...1000000. فضای دیسک موجود بر اساس وزن نسبی پارتیشن‌های تعریف‌شده به آن‌ها تخصیص می‌یابد (مشروط به محدودیت‌های اندازه پیکربندی‌شده با SizeMinBytes=، SizeMaxBytes=)، به طوری که پارتیشنی با وزن 2000 دو برابر فضایی را دریافت می‌کند که پارتیشنی با وزن 1000 دریافت می‌کند، و پارتیشنی با وزن 333 یک‌سوم آن را دریافت می‌نماید. پیش‌فرض 1000 است.

تنظیم Weight= برای توزیع فضای دیسک موجود به صورت «کشسان»، بر اساس اندازه دیسک و پارتیشن‌های موجود استفاده می‌شود. اگر پارتیشنی باید اندازه ثابتی داشته باشد، از هر دو تنظیم SizeMinBytes= و SizeMaxBytes= با مقداری یکسان استفاده کنید تا اندازه روی یک مقدار تثبیت شود، که در این صورت وزن هیچ تاثیری نخواهد داشت.

افزوده شده در نگارش 245.

PaddingWeight=

مشابه با Weight=، اما وزنی را برای فضای خالی پس از پارتیشن («فاصله‌گذاری») تعیین می‌کند. هنگام توزیع فضای موجود، وزن تمام پارتیشن‌ها و تمام فاصله‌گذاری‌های تعریف‌شده با یکدیگر جمع می‌شوند، و سپس به هر پارتیشن و فاصله‌گذاری کسری که توسط وزن آن مشخص شده است تعلق می‌گیرد. پیش‌فرض 0 است، یعنی به طور پیش‌فرض هیچ فاصله‌گذاری اعمال نمی‌شود.

فاصله‌گذاری در صورتی مفید است که بخواهید فضای خالی برای افزودن‌های بعدی یا یک حاشیه امن در انتهای دستگاه یا میان پارتیشن‌ها باقی بماند.

افزوده شده در نگارش 245.

SizeMinBytes=، SizeMaxBytes=

محدودیت‌های اندازه کمینه و بیشینه را بر حسب بایت مشخص می‌کند. پسوندهای معمول K، M، G، T و ... (در مبنای 1024) را می‌پذیرد. اگر SizeMinBytes= مشخص شود، پارتیشن حداقل با اندازه مشخص‌شده ایجاد شده یا تا آن اندازه بزرگ می‌شود. اگر SizeMaxBytes= مشخص شود، پارتیشن حداکثر با اندازه مشخص‌شده ایجاد شده یا تا آن اندازه بزرگ می‌شود. اندازه دقیق از طریق مقدار وزن پیکربندی‌شده با Weight= تعیین می‌شود، به بالا مراجعه کنید. هنگامی که SizeMinBytes= برابر با SizeMaxBytes= تنظیم شود، وزن پیکربندی‌شده هیچ تاثیری ندارد زیرا اندازه پارتیشن به صراحت روی مقدار ثابت مشخص‌شده تنظیم می‌شود. توجه داشته باشید که پارتیشن‌ها هرگز کوچک‌تر از 4096 بایت ایجاد نمی‌شوند، و از آنجا که پارتیشن‌ها هرگز کوچک نمی‌شوند، اندازه قبلی پارتیشن (در صورتی که پارتیشن از قبل وجود داشته باشد) نیز به عنوان کران پایین اندازه جدید اعمال می‌شود. مقادیر باید به عنوان مضاربی از 4096 بایت مشخص شوند، و در غیر این صورت به سمت بالا (در مورد SizeMinBytes=) یا به سمت پایین (در مورد SizeMaxBytes=) گرد می‌شوند. اگر دستگاه پشتیبان فضای کافی برای برآورده کردن محدودیت‌ها فراهم نکند، جای‌گذاری پارتیشن با شکست مواجه خواهد شد. برای پارتیشن‌هایی که باید ایجاد شوند، بسته به تنظیم Priority= (به بالا مراجعه کنید) ممکن است پارتیشن کنار گذاشته شده و الگوریتم جای‌گذاری مجدداً راه‌اندازی شود. به طور پیش‌فرض، محدودیت کمینه اندازه 10M و هیچ محدودیت بیشینه‌ای تنظیم نشده است.

اگر Format= تنظیم شده باشد، کمینه اندازه به طور خودکار به حداقل اندازه سیستم‌فایل برای نوع سیستم‌فایل انتخاب‌شده (در صورت معلوم بودن) افزایش می‌یابد. علاوه بر این، برای پارتیشن‌های ESP/XBOOTLDR اگر کمتر مشخص شده باشد، به طور خودکار به 100M (برای ایمیج‌های با سکتورهای 512 بایتی) یا 260M (برای ایمیج‌های با سکتورهای 4K) افزایش می‌یابد.

افزوده شده در نگارش 245.

PaddingMinBytes=، PaddingMaxBytes=

محدودیت‌های اندازه کمینه و بیشینه را بر حسب بایت برای فضای خالی پس از پارتیشن («فاصله‌گذاری») مشخص می‌کند. مفهوم آن مشابه با SizeMinBytes= و SizeMaxBytes= است، با این تفاوت که بر خلاف اندازه‌های پارتیشن، فضای خالی می‌تواند کاهش یابد و می‌تواند به کوچکی صفر باشد. به طور پیش‌فرض، هیچ محدودیت اندازه‌ای روی فاصله‌گذاری تنظیم نشده است، به طوری که تنها PaddingWeight= اندازه فاصله‌گذاری اعمال‌شده را تعیین می‌کند.

افزوده شده در نگارش 245.

CopyBlocks=

مسیری به یک فایل معمولی، گره دستگاه بلوکی، گره دستگاه کاراکتری یا یک دایرکتوری، یا مقدار ویژه "auto" را می‌پذیرد. در صورت مشخص شدن و اگر پارتیشن تازه ایجاد شده باشد، داده‌های حاصل از مسیر مشخص‌شده در سطح بلوک روی پارتیشن تازه ایجادشده نوشته می‌شوند. اگر یک دایرکتوری مشخص شود، دستگاه بلوکی پشتیبان سیستم‌فایلی که دایرکتوری روی آن قرار دارد تعیین شده و داده‌ها مستقیماً از آن خوانده می‌شوند. این گزینه برای تکثیر کارآمد سیستم‌های فایل موجود روی پارتیشن‌های جدید در سطح بلوک مفید است — به عنوان مثال برای ساخت یک نصب‌کننده ساده سیستم‌عامل یا سازنده ایمیج سیستم‌عامل. مقدار /dev/urandom را به عنوان مقدار برای مقداردهی اولیه یک پارتیشن با داده‌های تصادفی مشخص کنید.

اگر مقدار ویژه "auto" مشخص شود، مبدا برای کپی به طور خودکار از سیستم در حال اجرا (یا ایمیج مشخص‌شده با --image= — در صورت استفاده) برداشته می‌شود. پارتیشنی که هم با نوع پارتیشن پیکربندی‌شده (همان‌طور که با Type= در بالا توصیف شد) و هم با دایرکتوری بارگیری‌شده فعلی مناسب برای آن نوع پارتیشن مطابقت داشته باشد تعیین می‌گردد. برای مثال، اگر نوع پارتیشن روی "root" تنظیم شده باشد، پارتیشن پشتیبان دایرکتوری ریشه (/) به عنوان مبدا برای کپی استفاده می‌شود — در صورتی که نوع پارتیشن آن نیز روی "root" تنظیم شده باشد. اگر نوع اعلام‌شده "usr" باشد، پارتیشن پشتیبان /usr/ به عنوان مبدا برای کپی بلوک‌ها استفاده می‌شود — اگر نوع پارتیشن آن نیز "usr" باشد. این منطق قادر است به طور خودکار پارتیشن‌های پشتیبان را برای حجم‌های رمزنگاری‌شده و دارای قابلیت Verity ردیابی کند. "CopyBlocks=auto" برای پیاده‌سازی سیستم‌های «خود-تکثیرشونده»، یعنی سیستم‌هایی که خودشان نصب‌کننده خود هستند مفید است.

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

این گزینه در صورتی که پارتیشن اعلام‌شده از قبل وجود داشته باشد هیچ تاثیری ندارد، یعنی داده‌های موجود هرگز رونویسی نمی‌شوند. توجه داشته باشید که داده‌ها قبل از به‌روزرسانی جدول پارتیشن کپی می‌شوند، یعنی قبل از اینکه پارتیشن واقعاً به طور ماندگار ایجاد شود. این امر پایداری و اطمینان را فراهم می‌سازد: تضمین می‌شود که پارتیشن یا وجود ندارد یا به طور کامل پر شده است؛ ممکن نیست که پارتیشن وجود داشته باشد اما پر نشده یا فقط تا حدی پر شده باشد.

این گزینه نمی‌تواند با Format= یا CopyFiles= ترکیب شود.

افزوده شده در نگارش 246.

Format=

نام یک سیستم‌فایل مانند "ext4"، "btrfs"، "xfs"، "vfat"، "erofs"، "squashfs" یا مقدار ویژه "swap" را می‌پذیرد. در صورت مشخص شدن و اگر پارتیشن تازه ایجاد شده باشد، با سیستم‌فایل مشخص‌شده (یا به عنوان دستگاه سواپ) قالب‌بندی می‌شود. شناسه UUID و برچسب سیستم‌فایل به طور خودکار از UUID و برچسب پارتیشن مشتق می‌شوند. اگر از این گزینه استفاده شود، الگوریتم تخصیص اندازه کمی تغییر می‌کند: پارتیشن حداقل به اندازه‌ای ایجاد می‌شود که برای حداقل اندازه سیستم‌فایل از نوع مشخص‌شده لازم است (یا 4KiB اگر حداقل اندازه مشخص نباشد).

این گزینه همچنین یک فرامقدار (meta value) ویژه "empty" را می‌پذیرد. در صورت مشخص شدن، معادل با تعیین "Label=_empty" و "NoAuto=1" است.

این گزینه در صورتی که پارتیشن از قبل وجود داشته باشد هیچ تاثیری ندارد.

مشابه با رفتار CopyBlocks=، سیستم‌فایل قبل از ایجاد پارتیشن فرمت می‌شود، که تضمین می‌کند پارتیشن فقط با یک سیستم‌فایل کاملاً مقداردهی‌شده وجود خواهد داشت.

این گزینه نمی‌تواند با CopyBlocks= ترکیب شود.

افزوده شده در نگارش 247.

CopyFiles=

یک سه‌تایی جداشده با دونقطه به شکل "source[:target[:options]]" را می‌پذیرد. source یک مسیر مطلق است که به یک فایل یا دایرکتوری مبدا روی میزبان اشاره دارد. target یک مسیر مطلق در سیستم‌فایل پارتیشن تازه ایجادشده و سیستم‌فایل فرمت‌شده است. options فهرستی جداشده با کاما از گزینه‌هاست که در آن هر گزینه به شکل "key[=value]" است.

این تنظیم ممکن است برای کپی کردن فایل‌ها یا دایرکتوری‌ها از میزبان به درون سیستم‌فایلی که به دلیل گزینه Format= ایجاد شده است استفاده شود. اگر CopyFiles= بدون تعیین صریح Format= استفاده شود، مقدار "Format=" با یک پیش‌فرض مناسب در نظر گرفته می‌شود (در حال حاضر "vfat" برای پارتیشن‌های "ESP" و "XBOOTLDR"، و در غیر این صورت "ext4"، اما این موضوع ممکن است در آینده تغییر کند). این گزینه ممکن است چندین بار برای کپی کردن چندین فایل یا دایرکتوری از میزبان به سیستم‌فایل تازه فرمت‌شده استفاده شود.

مسیر target می‌تواند حذف شود که در این صورت مسیر source به عنوان مسیر مقصد نیز استفاده می‌شود (نسبت به ریشه سیستم‌فایل تازه ایجادشده). اگر مسیر مبدا به یک دایرکتوری اشاره کند، به صورت بازگشتی کپی می‌شود.

گزینه‌های options ممکن است حاوی مقادیر زیر باشند:

fsverity=

می‌تواند روی مقدار "off" (پیش‌فرض در صورت عدم وجود گزینه) یا "copy" تنظیم شود. اگر روی "off" تنظیم شود، هیچ فایلی که از این مبدا به سیستم‌فایل کپی می‌شود fs-verity فعال نخواهد داشت. اگر روی "copy" تنظیم شود، اطلاعات fs-verity برای هر فایل از فایل مبدا متناظر کپی می‌شود.

افزوده شده در نگارش 258.

این گزینه در صورتی که پارتیشن از قبل وجود داشته باشد هیچ تاثیری ندارد: نمی‌توان از آن برای کپی کردن فایل‌های اضافی به درون یک پارتیشن موجود استفاده کرد، و فقط می‌تواند برای پر کردن سیستم‌فایلی که به تازگی ایجاد شده است استفاده شود.

عملیات کپی قبل از ثبت پارتیشن در جدول پارتیشن اجرا می‌شود، و بدین ترتیب تضمین می‌کند که سیستم‌فایل پرشده از این طریق فقط به صورت کاملاً مقداردهی‌شده وجود داشته باشد.

توجه داشته باشید که CopyFiles= از کپی کردن فایل‌هایی که توسط سیستم‌فایل مقصد پشتیبانی نمی‌شوند (مثلاً symlinkها، fifoها، سوکت‌ها و دستگاه‌ها روی vfat) صرف‌نظر می‌کند. هنگامی که یک نوع فایل پشتیبانی‌نشده مشاهده شود، systemd-repart از کپی کردن این فایل صرف‌نظر کرده و پیامی در لاگ درباره آن می‌نویسد.

توجه داشته باشید که systemd-repart شناسه‌های UID/GID هیچ‌یک از فایل‌ها و دایرکتوری‌های کپی‌شده را تغییر نمی‌دهد. هنگام اجرای systemd-repart به عنوان یک کاربر غیرممتاز برای ساخت یک ایمیج از فایل‌ها و دایرکتوری‌های متعلق به همان کاربر، می‌توانید systemd-repart را در یک فضای نام کاربر (user namespace) اجرا کنید که در آن کاربر فعلی به کاربر root نگاشت شده باشد تا اطمینان حاصل شود که فایل‌ها و دایرکتوری‌های موجود در ایمیج متعلق به کاربر root هستند.

این گزینه نمی‌تواند با CopyBlocks= ترکیب شود.

هنگامی که systemd-repart(8) با سوییچ خط فرمان --copy-source= فراخوانی شود، مسیرهای فایل به صورت نسبی نسبت به دایرکتوری مشخص‌شده در نظر گرفته می‌شوند. اگر --copy-source= استفاده نشود، اما سوییچ‌های --image= یا --root= استفاده شوند، مسیرهای مبدا به صورت نسبی نسبت به دایرکتوری ریشه یا ریشه ایمیج دیسک مشخص‌شده در نظر گرفته می‌شوند.

توجه داشته باشید که هنگام استفاده از CopyFiles= با Format=xfs، نسخه xfsprogs 6.17 یا جدیدتر مورد نیاز است.

افزوده شده در نگارش 247.

ExcludeFiles=، ExcludeFilesTarget=

یک یا چند مسیر مطلق جداشده با فاصله خالی را می‌پذیرد که هر یک به یک فایل یا دایرکتوری مبدا روی میزبان اشاره دارند. از این تنظیم می‌توان برای مستثنی کردن فایل‌ها یا دایرکتوری‌های روی میزبان از کپی شدن در سیستم‌فایل هنگام استفاده از CopyFiles= استفاده کرد. این گزینه ممکن است چندین بار برای مستثنی کردن چندین فایل یا دایرکتوری از میزبان از کپی شدن به سیستم‌فایل تازه فرمت‌شده استفاده شود.

اگر مسیر یک دایرکتوری باشد و به "/" ختم شود، فقط محتویات دایرکتوری مستثنی می‌شوند اما خود دایرکتوری مستثنی نمی‌شود. اگر مسیر یک دایرکتوری باشد و به "/" ختم نشود، هم دایرکتوری و هم محتویات آن مستثنی می‌شوند.

گزینه ExcludeFilesTarget= مشابه با ExcludeFiles= است، با این تفاوت که به جای مستثنی کردن مسیر روی میزبان از کپی شدن در پارتیشن، هرگونه فایل و دایرکتوری را از کپی شدن به مسیر ارائه‌شده در پارتیشن مستثنی می‌کند.

هنگامی که systemd-repart(8) با سوییچ‌های خط فرمان --image= یا --root= فراخوانی شود، مسیرهای مشخص‌شده به صورت نسبی نسبت به دایرکتوری ریشه یا ریشه ایمیج دیسک مشخص‌شده در نظر گرفته می‌شوند.

افزوده شده در نگارش 254.

MakeDirectories=

یک یا چند مسیر مطلق جداشده با فاصله خالی را می‌پذیرد که هر یک دایرکتوری‌ای را برای ایجاد در سیستم‌فایل جدید اعلام می‌کنند. رفتار آن مشابه CopyFiles= است، اما به جای کپی کردن مجموعه‌ای از فایل‌ها، فقط دایرکتوری‌های مشخص‌شده را با حالت پیش‌فرض 0755 متعلق به کاربر و گروه root، به همراه تمام دایرکتوری‌های والد آن‌ها (با همان مالکیت و حالت دسترسی) ایجاد می‌کند. برای پیکربندی دایرکتوری‌ها با مالکیت یا حالت دسترسی متفاوت، از CopyFiles= استفاده کنید و یک درخت مبدا را برای کپی مشخص کنید که شامل دایرکتوری‌هایی با مالکیت/پیکربندی مناسب باشد. این گزینه ممکن است بیش از یک بار برای ایجاد چندین دایرکتوری استفاده شود. هنگامی که CopyFiles= و MakeDirectories= با هم استفاده شوند، اولی ابتدا اعمال می‌شود. اگر دایرکتوری فهرست‌شده از قبل وجود داشته باشد، هیچ عملیاتی اجرا نمی‌شود (به ویژه مالکیت/حالت دسترسی دایرکتوری‌ها دست‌نخورده باقی می‌ماند).

مورد کاربرد اصلی این گزینه ایجاد حداقل مجموعه‌ای از دایرکتوری‌ها است که ممکن است توسط سایر پارتیشن‌های موجود در همان ایمیج دیسک روی آن‌ها سوار (mount) شوند. به عنوان مثال، یک ایمیج دیسک که در آن سیستم‌فایل ریشه در اولین بوت فرمت می‌شود ممکن است بخواهد به طور خودکار /usr/ را از این طریق در آن از پیش ایجاد کند، تا پارتیشن "usr" بتواند روی آن سوار شود.

استفاده از systemd-tmpfiles(8) با گزینه --image= آن را برای از پیش ایجاد کردن سایر سلسله‌مراتب‌های دایرکتوری پیچیده‌تر (و همچنین سایر inodeها) با کنترل دقیق بر مالکیت، حالت‌های دسترسی و سایر مشخصه‌های فایل در نظر بگیرید.

افزوده شده در نگارش 249.

MakeSymlinks=

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

مورد کاربرد اصلی این گزینه ایجاد پیوندهای نمادینی است که باید قبل از اجرای systemd-tmpfiles(8) وجود داشته باشند. به عنوان مثال، هنگام استفاده از systemd-confext(8)، از این تنظیم می‌توان برای ایجاد پیوندهای نمادین در /var/lib/extensions.mutable جهت هدایت نوشتن‌ها روی confextهای تغییرپذیر به یک مکان سفارشی استفاده کرد.

استفاده از systemd-tmpfiles(8) با گزینه --image= آن را برای از پیش ایجاد کردن سایر پیوندهای نمادین (و همچنین سایر inodeها) با کنترل دقیق بر مالکیت، حالت‌های دسترسی و سایر مشخصه‌های فایل در نظر بگیرید.

افزوده شده در نگارش 257.

Subvolumes=

یک یا چند مسیر مطلق جداشده با فاصله خالی را می‌پذیرد که هر یک دایرکتوری‌ای را اعلام می‌کنند که باید یک زیرحجم (subvolume) در سیستم‌فایل جدید باشد. هر مسیر می‌تواند به صورت اختیاری با یک دونقطه و فهرستی از فلگ‌های زیرحجم جداشده با کاما همراه باشد. فلگ‌های زیر شناسایی می‌شوند:

جدول 2. فلگ‌های زیرحجم

فلگ هدف
"ro" این زیرحجم را فقط‌خواندنی می‌کند.
"nodatacow" قابلیت داده CoW را برای این زیرحجم غیرفعال می‌کند.

توجه داشته باشید که این گزینه خود دایرکتوری‌ها را ایجاد نمی‌کند، این کار را می‌توان با
MakeDirectories= و CopyFiles= پیکربندی کرد.

توجه داشته باشید که این گزینه تنها در صورتی اثرگذار است که سیستم‌فایل مقصد از زیرحجم‌ها پشتیبانی کند، مانند btrfs(8).

توجه داشته باشید که این گزینه فقط در ترکیب با --offline=yes از زمان btrfs-progs 6.12 یا جدیدتر پشتیبانی می‌شود.

افزوده شده در نگارش 255.

DefaultSubvolume=

یک مسیر مطلق را مشخص می‌کند که زیرحجم (subvolume) پیش‌فرض را در سیستم‌فایل جدید تعیین می‌نماید. توجه داشته باشید که این تنظیم خودِ زیرحجم را ایجاد نمی‌کند؛ این مورد می‌تواند با Subvolumes= پیکربندی شود.

توجه داشته باشید که این گزینه تنها در صورتی اثرگذار است که سیستم‌فایل هدف از زیرحجم‌ها پشتیبانی کند، مانند btrfs(8).

توجه داشته باشید که این گزینه فقط در ترکیب با --offline=yes از نسخه btrfs-progs 6.12 یا جدیدتر پشتیبانی می‌شود.

در نسخه 256 اضافه شد.

BlockDeviceReplace=

مسیری به یک نقطه اتصال (mountpoint) دریافت می‌کند. دستگاه پشتیبان (backing device) سیستم‌فایل آن با پارتیشن تازه‌تاسیس جایگزین خواهد شد. این فقط برای سیستم‌های فایل btrfs کار می‌کند. این گزینه برای پارتیشن‌های از قبل موجود نادیده گرفته می‌شود.

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

این گزینه با --offline=yes سازگار نیست.

در نسخه 261 اضافه شد.

VolumeName=

اگر یک پارتیشن رمزنگاری‌شده از طریق Encrypt= ایجاد شود و پس از اتمام کار systemd-repart فعال باقی بماند (با استفاده از BlockDeviceReplace=)، در این صورت نام حجم device mapper ایجادشده از نام مشخص‌شده توسط VolumeName= استفاده خواهد کرد.

مقدار باید یک نام فایل معتبر باشد. اگر مشخص نشود، در صورت معتبر بودن، به مقدار پیش‌فرض VolumeLabel= (که می‌تواند از Label= مشتق شده باشد) بازمی‌گردد.

در نسخه 261 اضافه شد.

Encrypt=

یکی از مقادیر "off" ، "key-file" ، "tpm2" و "key-file+tpm2" را می‌پذیرد (به‌علاوه، یک مقدار دودویی (boolean) را نیز می‌پذیرد که در صورت نادرست بودن به "off" و در صورت درست بودن به "key-file" نگاشت می‌شود). پیش‌فرض آن "off" است. اگر غیر از "off" باشد، پیش از آنکه بلوک‌های پیکربندی‌شده با CopyBlocks= کپی شوند یا سیستم‌فایل پیکربندی‌شده با Format= ایجاد گردد، پارتیشن با یک سوپربلوک LUKS2 قالب‌بندی خواهد شد.

شناسه یکتای LUKS2 UUID به‌طور پایدار و خودکار از UUID پارتیشن مشتق می‌شود. اگر از "key-file" یا "key-file+tpm2" استفاده شود، کلیدی به سوپربلوک LUKS2 اضافه می‌شود که با گزینه --key-file= در systemd-repart قابل پیکربندی است. اگر از "tpm2" یا "key-file+tpm2" استفاده شود، کلیدی به سوپربلوک LUKS2 اضافه می‌شود که در تراشه محلی TPM2 ثبت (enroll) می‌شود، همان‌طور که با گزینه‌های --tpm2-device= و --tpm2-pcrs= در systemd-repart پیکربندی شده است.

استفاده از این گزینه منطق تخصیص اندازه را اندکی تغییر می‌دهد، زیرا محدودیت‌های اندازه ضمنی و حداقلی در Format= و CopyBlocks= به میزان فضای لازم برای سوپربلوک LUKS2 افزایش می‌یابد (به بالا مراجعه کنید).

این گزینه در صورتی که پارتیشن از قبل وجود داشته باشد هیچ اثری ندارد.

در نسخه 247 اضافه شد.

Discard=

یک آرگومان دودویی (boolean) می‌پذیرد. در صورتی که برای فراخوانی systemd-repart از --discard=no استفاده شده باشد یا Integrity=inline تنظیم شده باشد، پیش‌فرض "no" است؛ در غیر این صورت "yes" خواهد بود.

اگر روی "yes" تنظیم شود، هنگام ایجاد سوپربلوک LUKS2 برای پارتیشن، پرچم فعال‌سازی "allow-discards" تنظیم می‌شود تا فعال‌سازی‌های بعدی به‌طور پیش‌فرض دور انداختن (discard) را مجاز بدانند.

این گزینه اگر پارتیشن از قبل وجود داشته باشد یا اگر از Encrypt=off استفاده شده باشد، تاثیری ندارد.

در نسخه 261 اضافه شد.

EncryptKDF=

تابع مشتق‌گیری کلید (KDF) را برای استفاده در اسلات‌های کلید (keyslots) رمزنگاری LUKS2 مشخص می‌کند. یکی از مقادیر "argon2id" ، "pbkdf2" یا "minimal" را می‌پذیرد. در صورت عدم تعیین، مقدار پیش‌فرض توسط کتابخانه cryptsetup (معمولاً "argon2id") تعیین می‌شود. این گزینه اگر Encrypt= برابر با "off" باشد هیچ اثری ندارد.

هنگامی که روی "argon2id" یا "pbkdf2" تنظیم شود، KDF مشخص‌شده با پارامترهایی که توسط کتابخانه cryptsetup محک زده شده‌اند (benchmarked) استفاده می‌شود. هنگامی که روی "minimal" تنظیم شود، PBKDF2 همراه با SHA-512 با ۱۰۰۰ تکرار و بدون محک‌زنی استفاده می‌شود — این حالت برای کلیدهای با آنتروپی بالا مناسب است (به عنوان مثال تولیدشده توسط یک مدیر کلید سخت‌افزاری یا مهروموم‌شده در TPM) که در آن‌ها KDF تنها باید الزام قالب LUKS2 را برآورده کند، نه اینکه یک عبارت عبور ضعیف را تقویت نماید.

توجه داشته باشید که KDFهای مبتنی بر Argon2 ممکن است در طول مشتق‌گیری کلید به حافظه قابل توجهی (تا ۱ گیگابایت) نیاز داشته باشند. در محیط‌های با محدودیت حافظه مانند kdump با حافظه محدود crashkernel، گزینه‌های "minimal" یا "pbkdf2" ممکن است مناسب‌تر باشند. زمانی که Encrypt= شامل "tpm2" باشد، اسلات کلید TPM2 بدون در نظر گرفتن این تنظیم، همیشه از پیکربندی حداقلی PBKDF2 استفاده می‌کند.

در نسخه 261 اضافه شد.

Verity=

یکی از مقادیر "off" ، "data" ، "hash" یا "signature" را می‌پذیرد. مقدار پیش‌فرض "off" است. اگر روی "off" یا "data" تنظیم شود، پارتیشن با محتوای مشخص‌شده توسط CopyBlocks= یا CopyFiles= پر می‌شود. اگر روی "hash" تنظیم شود، پارتیشن با هش‌های verity برگرفته از پارتیشن داده verity منطبق پر خواهد شد. اگر روی "signature" تنظیم شود، پارتیشن با یک شیء JSON حاوی امضای هش ریشه verity پارتیشن هش verity منطبق پر خواهد شد.

یک پارتیشن verity منطبق، پارتیشنی با همان کلید تطابق verity است (که با VerityMatchKey= پیکربندی می‌شود).

اگر صریحاً پیکربندی نشده باشد، UUID پارتیشن داده روی ۱۲۸ بیت اول هش ریشه verity تنظیم می‌شود. به همین ترتیب، در صورت عدم پیکربندی، UUID پارتیشن هش روی ۱۲۸ بیت پایانی هش ریشه verity تنظیم خواهد شد. خود هش ریشه verity در خروجی systemd-repart گنجانده خواهد شد.

این گزینه در صورتی که پارتیشن از قبل وجود داشته باشد هیچ اثری ندارد.

استفاده از این گزینه در ترکیب با Encrypt= پشتیبانی نمی‌شود.

به ازای هر مقدار یکتای VerityMatchKey= ، باید دقیقاً یک پارتیشن داده verity به صورت ("Verity=data") و یک پارتیشن هش verity به صورت ("Verity=hash") تعریف شود.

در نسخه 252 اضافه شد.

VerityMatchKey=

یک رشته شناسه کوتاه و به انتخاب کاربر می‌پذیرد. این تنظیم برای یافتن پارتیشن‌های verity همتا (sibling) برای پارتیشن verity جاری استفاده می‌شود. توضیحات مربوط به Verity= را ببینید.

در نسخه 252 اضافه شد.

VerityDataBlockSizeBytes=

اندازه بلوک داده پارتیشن هش verity تولیدشده را پیکربندی می‌کند. باید بین ۵۱۲ تا ۴۰۹۶ بایت و توانی از ۲ باشد. در صورت پیکربندی صریح به اندازه سکتور، یا به اندازه سکتور دستگاه بلوکی زیرین، یا در صورتی که systemd-repart روی دستگاه بلوکی کار نکند به 4K پیش‌فرض می‌شود.

در نسخه 255 اضافه شد.

VerityHashBlockSizeBytes=

اندازه بلوک هش پارتیشن هش verity تولیدشده را پیکربندی می‌کند. باید بین ۵۱۲ تا ۴۰۹۶ بایت و توانی از ۲ باشد. در صورت پیکربندی صریح به اندازه سکتور، یا به اندازه سکتور دستگاه بلوکی زیرین، یا در صورتی که systemd-repart روی دستگاه بلوکی کار نکند به 4K پیش‌فرض می‌شود.

در نسخه 255 اضافه شد.

FactoryReset=

یک آرگومان دودویی (boolean) می‌پذیرد. در صورت تعیین، پارتیشن برای حذف در طول عملیات بازنشانی به تنظیمات کارخانه (factory reset) علامت‌گذاری می‌شود. این قابلیت برای پیاده‌سازی طرح‌هایی مفید است که در آن‌ها تصاویر می‌توانند با حذف پارتیشن‌ها و ایجاد مجدد آن‌ها به حالت اولیه خود بازنشانی شوند. پیش‌فرض آن off است.

در نسخه 245 اضافه شد.

Flags=

فیلد پرچم‌های ۶۴ بیتی پارتیشن GPT را برای تنظیم روی پارتیشن هنگام ایجاد آن پیکربندی می‌کند. این گزینه در صورتی که پارتیشن از قبل وجود داشته باشد هیچ اثری ندارد. اگر مشخص نشود، مقدار پرچم‌ها روی تمام صفر تنظیم می‌شود، به جز سه بیتی که می‌توانند از طریق NoAuto= ، ReadOnly= و GrowFileSystem= نیز پیکربندی شوند؛ برای جزئیات مقادیر پیش‌فرض این سه پرچم به ادامه مراجعه کنید. مقدار پرچم‌ها را در مبنای شانزده (با پیشوند "0x")، دودویی (با پیشوند "0b") یا دهدهی (بدون پیشوند) مشخص کنید.

در نسخه 249 اضافه شد.

NoAuto=, ReadOnly=, GrowFileSystem=

پرچم‌های پارتیشن No-Auto، Read-Only و Grow-File-System (بیت‌های ۶۳، ۶۰ و ۵۹) از مدخل جدول پارتیشن را طبق تعریف UAPI.2 Discoverable Partitions Specification[1] پیکربندی می‌کند. تنها برای انواع پارتیشن‌هایی که توسط این مشخصات پشتیبانی می‌شوند در دسترس است. این گزینه روشی آسان برای تنظیم بیت‌های ۶۳، ۶۰ و ۵۹ مقدار پرچم‌های پارتیشن بدون دستکاری سایر بیت‌ها است، و می‌تواند از طریق Flags= نیز تنظیم شود؛ بالا را ببینید.

اگر Flags= در ترکیب با یک یا چند مورد از NoAuto=/ReadOnly=/GrowFileSystem= استفاده شود، موارد اخیر مقدار پرچم‌های مربوطه را کنترل می‌کنند؛ یعنی تنظیمات سطح بالای NoAuto=/ReadOnly=/GrowFileSystem= بر بیت‌های مربوطه در تنظیم سطح پایین Flags= اولویت دارند و آن را بازنویسی می‌کنند.

توجه داشته باشید که این سه پرچم فقط بر اتصال (mount) خودکار پارتیشن اثر می‌گذارند، همان‌طور که توسط systemd-gpt-auto-generator(8) یا گزینه --image= دستورات مختلف (مانند systemd-nspawn(1)) پیاده‌سازی شده است. این پرچم‌ها هیچ تاثیری بر اتصال‌های صریح، مانند اتصال‌هایی که از طریق mount(8) یا fstab(5) انجام می‌شوند، ندارند.

اگر هر دو بیت ۶۰ و ۵۹ برای یک پارتیشن تنظیم شده باشند (یعنی پارتیشن هم به عنوان فقط‌خواندنی و هم برای گسترش سیستم‌فایل علامت‌گذاری شده باشد)، مورد دوم معمولاً بدون اثر خواهد بود: پرچم فقط‌خواندنی در بیشتر ابزارهایی که این پرچم‌ها را می‌خوانند اولویت دارد، و از آنجا که گسترش سیستم‌فایل نیازمند نوشتن روی پارتیشن است، در نتیجه نادیده گرفته می‌شود.

NoAuto= به‌طور پیش‌فرض off است. ReadOnly= برای انواع پارتیشن‌های Verity به‌طور پیش‌فرض on و برای بقیه موارد off است. GrowFileSystem= برای تمامی انواع پارتیشن‌هایی که از آن پشتیبانی می‌کنند به‌طور پیش‌فرض on است، مگر اینکه پارتیشن فقط‌خواندنی علامت‌گذاری شده باشد (و بنابراین در عمل، برای پارتیشن‌های Verity به off پیش‌فرض می‌شود).

در نسخه 249 اضافه شد.

SplitName=

پسوندی را که باید به آرتیفکت‌های تفکیک‌شده (split artifacts) هنگام استفاده از گزینه --split در systemd-repart(8) افزوده شود، پیکربندی می‌کند. بسط ساده مشخص‌کننده‌ها (specifier) پشتیبانی می‌شود؛ به پایین مراجعه کنید. پیش‌فرض آن "%t" است. برای غیرفعال کردن تولید آرتیفکت تفکیک‌شده برای یک پارتیشن، SplitName= را روی "-" تنظیم کنید.

در نسخه 252 اضافه شد.

Minimize=

یکی از مقادیر "off" ، "best" و "guess" را می‌پذیرد (به‌علاوه، یک مقدار دودویی (boolean) را نیز می‌پذیرد که در صورت نادرست بودن به "off" و در صورت درست بودن به "best" نگاشت می‌شود). پیش‌فرض آن "off" است. اگر روی "best" تنظیم شود، پارتیشن حداقل اندازه لازم برای ذخیره منابع پیکربندی‌شده با CopyFiles= را خواهد داشت. مقدار "best" در حال حاضر فقط برای سیستم‌های فایل فقط‌خواندنی و btrfs پشتیبانی می‌شود. اگر روی "guess" تنظیم شود، پارتیشن حداقل به بزرگیِ مقدار لازم برای ذخیره منابع پیکربندی‌شده با CopyFiles= ایجاد خواهد شد. توجه داشته باشید که مگر در حالتی که سیستم‌فایل یک سیستم‌فایل فقط‌خواندنی یا btrfs باشد، systemd-repart باید سیستم‌فایل را دو بار پر کند تا حداقل اندازه لازم را حدس بزند، بنابراین فعال کردن این گزینه ممکن است هنگام پر کردن پارتیشن‌های بزرگ، سرعت repart را کاهش دهد.

در نسخه 253 اضافه شد.

MountPoint=

مشخص می‌کند که پارتیشن کجا و چگونه باید متصل (mount) شود. حداقل یک و حداکثر دو فیلد جداشده با دونقطه (":") می‌پذیرد. فیلد اول مشخص می‌کند پارتیشن در کجا متصل شود. فیلد دوم گزینه‌های اتصال اضافی را برای افزودن به گزینه‌های اتصال پیش‌فرض مشخص می‌کند. این فیلدها با ستون‌های دوم و چهارم قالب fstab(5) مطابقت دارند. از آنجا که برای جداسازی فیلدها از دونقطه استفاده می‌شود، در صورتی که هر فیلد حاوی دونقطه باشد باید داخل علامت نقل‌قول (کوتیشن) قرار گیرد؛ به عنوان مثال:
MountPoint="/path/with:colon":"zstd:1,noatime,lazytime"

این تنظیم را می‌توان چندین بار مشخص کرد تا پارتیشن چندین بار متصل شود. این کار می‌تواند برای افزودن اتصالات برای زیرحجم‌های مختلف btrfs(8) واقع در همان پارتیشن btrfs استفاده شود.

توجه داشته باشید که این تنظیم تنها زمانی در نظر گرفته می‌شود که --generate-fstab= در خط فرمان systemd-repart مشخص شده باشد.

در نسخه 256 اضافه شد.

EncryptedVolume=

نحوه راه‌اندازی پارتیشن رمزنگاری‌شده را مشخص می‌کند. حداقل یک و حداکثر چهار فیلد جداشده با دونقطه (":") دریافت می‌کند. فیلد اول نام حجم رمزنگاری‌شده را در زیر /dev/mapper/ مشخص می‌کند. در صورت عدم تعیین، از "luks-UUID" استفاده خواهد شد که در آن "UUID" شناسه یکتای LUKS UUID است. فیلد دوم فایل کلید مورد استفاده را با همان قالبی که در crypttab مشخص می‌شود، تعیین می‌کند. فیلد سوم فهرستی از گزینه‌های crypttab را که با کاما از هم جدا شده‌اند مشخص می‌کند. این سه فیلد با ستون‌های اول، سوم و چهارم قالب crypttab(5) مطابقت دارند. فیلد چهارم شامل گزینه‌های اضافی است که مستقیماً در گزینه‌های crypttab بازتاب نمی‌یابند. در حال حاضر، تنها گزینه اضافی پشتیبانی‌شده fixate-volume-key است. در صورت تعیین این گزینه، هش کلید حجم در هنگام قالب‌بندی حجم LUKS گرفته شده و نتیجه به فهرست گزینه‌های crypttab افزوده می‌شود؛ یعنی fixate-volume-key=expected-hash به ستون چهارم crypttab تولیدشده اضافه خواهد شد.

توجه داشته باشید که این تنظیم تنها زمانی در نظر گرفته می‌شود که --generate-crypttab= در خط فرمان systemd-repart مشخص شده باشد. از آنجا که crypttab همراه با هش‌های مورد انتظار تنها پس از قالب‌بندی حجم‌های LUKS قابل تولید است، خود crypttab نمی‌تواند در حجم تولیدشده قرار گیرد.

در نسخه 256 اضافه شد.

TPM2PCRs=

فهرست PCRهایی را که باید برای حجم‌های LUKS2 پیکربندی‌شده با تنظیم Encrypt=tpm2 در فایل‌های پارتیشن استفاده شوند، پیکربندی می‌کند. این گزینه همان پارامترهای گزینه‌های هم‌نام در systemd-cryptenroll(1) را می‌پذیرد و همان اثر را روی پارتیشن‌هایی دارد که ثبت (enrollment) در TPM2 برای آن‌ها درخواست شده است. این گزینه توسط گزینه سراسری --tpm2-pcrs= بازنویسی (override) خواهد شد.

در نسخه 259 اضافه شد.

KeyFile=

مسیری از سیستم‌فایل را می‌پذیرد. این مسیر باید مطلق باشد، در غیر این صورت گزینه نادیده گرفته می‌شود. کلید رمزنگاری مورد استفاده را هنگام راه‌اندازی حجم‌های LUKS2 پیکربندی‌شده با تنظیم Encrypt=key-file در فایل‌های پارتیشن پیکربندی می‌کند. لطفاً برای جزئیات بیشتر به مستندات --key-file= مراجعه کنید. این گزینه توسط گزینه سراسری --key-file= بازنویسی خواهد شد.

در نسخه 259 اضافه شد.

Integrity=

بررسی یکپارچگی را برای پارتیشن فعال می‌کند. در حال حاضر، تنها گزینه پشتیبانی‌شده Integrity=inline است که رمزنگاری دیسک احراز‌اصالت‌شده (authenticated disk encryption) را برای دستگاه‌های LUKS2 فعال می‌کند. این گزینه نیازمند تنظیم Encrypt= است و فقط در ساخت برخط تصویر (online image build) قابل استفاده است. پیش‌فرض آن "off" است، یعنی محافظت از یکپارچگی غیرفعال است.

نکته: رمزنگاری دیسک احراز‌اصالت‌شده توسط cryptsetup به عنوان آزمایشی (EXPERIMENTAL) در نظر گرفته می‌شود.

در نسخه 260 اضافه شد.

IntegrityAlgorithm=

الگوریتم یکپارچگی مورد استفاده برای اعتبارسنجی یکپارچگی را مشخص می‌کند. برای Integrity=inline مقادیر پشتیبانی‌شده عبارتند از: "hmac-sha1" ، "hmac-sha256" (پیش‌فرض)، و "hmac-sha512".

در نسخه 260 اضافه شد.

Compression=

الگوریتم فشرده‌سازی را برای سیستم‌فایل پیکربندی‌شده با Format= مشخص می‌کند. یک آرگومان منفرد دریافت می‌کند که الگوریتم فشرده‌سازی را تعیین می‌نماید.

توجه داشته باشید که این تنظیم تنها زمانی در نظر گرفته می‌شود که سیستم‌فایل پیکربندی‌شده با 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= را مشخص می‌کند. یک آرگومان منفرد برای تعیین سطح فشرده‌سازی جهت الگوریتم فشرده‌سازی پیکربندی‌شده می‌پذیرد. سطوح فشرده‌سازی ممکن و معانی آن‌ها به سیستم‌فایل مربوطه بستگی دارد (برای مفهوم دقیق هر سطح فشرده‌سازی به مستندات سیستم‌فایل مراجعه کنید).

توجه داشته باشید که این تنظیم تنها زمانی لحاظ می‌شود که سیستم‌فایل پیکربندی‌شده با Format= از فشرده‌سازی پشتیبانی کند و تنظیم Compression= صریحاً پیکربندی شده باشد.

در نسخه 257 اضافه شد.

SupplementFor=

نام یک تعریف پارتیشن، مانند "10-esp" را می‌پذیرد. در صورت تعیین، systemd-repart از ایجاد این پارتیشن خودداری کرده و در عوض ترجیح می‌دهد این دو تعریف را تا حدی با هم ادغام کند. با این حال، بسته به طرح‌بندی (layout) موجود پارتیشن‌ها روی دیسک، systemd-repart ممکن است ناچار شود به لغو ادغام تعاریف و استفاده از آن‌ها به همان شکل نوشته‌شده اولیه بازگردد، که بالقوه این پارتیشن را ایجاد می‌کند. به‌طور مشخص، اگر مشخص شود این پارتیشن از قبل روی دیسک وجود دارد، یا اگر پارتیشن هدف از قبل روی دیسک باشد اما بیش از حد کوچک باشد، یا اگر به دلایل دیگر نتواند فضا برای پارتیشن ادغام‌شده تخصیص دهد، systemd-repart به حالت اولیه برمی‌گردد.

فیلدهای زیر به شیوه‌های مشخص‌شده در تعریف هدف ادغام می‌شوند: Weight= و PaddingWeight= به‌سادگی بازنویسی می‌شوند؛ SizeMinBytes= و PaddingMinBytes= از مقدار بزرگ‌تر بین دو مقدار استفاده می‌کنند؛ SizeMaxBytes= و PaddingMaxBytes= از مقدار کوچک‌تر استفاده می‌کنند؛ و CopyFiles= ، ExcludeFiles= ، ExcludeFilesTarget= ، MakeDirectories= و Subvolumes= به هم متصل (الحاق) می‌شوند.

استفاده از این گزینه در ترکیب با CopyBlocks= ، Encrypt= یا Verity= پشتیبانی نمی‌شود. تعریف هدف نیز نمی‌تواند این تنظیمات را داشته باشد. یک تعریف نمی‌تواند هم‌زمان مکمل باشد و به عنوان هدف برای تعریف مکمل دیگری عمل کند. یک هدف نمی‌تواند بیش از یک پارتیشن مکمل مرتبط با خود داشته باشد.

به عنوان مثال، توزیع‌ها می‌توانند از این گزینه برای پیاده‌سازی $BOOT همان‌طور که در UAPI.1 Boot Loader Specification[2] تعریف شده استفاده کنند. توزیع‌ها ممکن است ترجیح دهند در صورت امکان از ESP به عنوان $BOOT استفاده کنند، اما برای پایبندی به مشخصات گاهی باید از XBOOTLDR در عوض استفاده شود. بنابراین، آن‌ها باید دو تعریف ایجاد کنند: اولی تعریفی از ESP به اندازه کافی بزرگ تنها برای نگهداری بوت‌لودر، و دومی برای XBOOTLDR که برای نگهداری هسته‌ها به اندازه کافی بزرگ باشد و به عنوان مکمل برای ESP پیکربندی شده باشد. در صورت امکان، systemd-repart(8) تلاش خواهد کرد دو تعریف را ادغام کرده تا یک ESP بزرگ ایجاد کند، اما اگر به دلیل شرایط موجود روی دیسک این کار مجاز نباشد، در عوض یک ESP کوچک و یک XBOOTLDR بزرگ ایجاد خواهد شد.

به عنوان مثالی دیگر، توزیع‌ها می‌توانند از این برای به اشتراک‌گذاری یکپارچه یک پارتیشن /home منفرد در سناریوی چندبوتی (multi-boot) استفاده کنند، در حالی که به طور پیش‌فرض ترجیح می‌دهند /home را روی پارتیشن ریشه نگه دارند. داشتن یک پارتیشن /home جدا از پارتیشن ریشه مستلزم پیچیدگی‌های بیشتری است: شخصی باید تصمیم بگیرد فضا چگونه بین این دو پارتیشن تقسیم شود. از طرف دیگر، به کاربر اجازه می‌دهد بخش خانگی خود را بین چندین سیستم‌عامل نصب‌شده به اشتراک بگذارد (مثلاً از طریق systemd-homed.service(8)). توزیع‌ها باید دو تعریف ایجاد کنند: اولی برای پارتیشن ریشه که درصد نسبتاً کمی از دیسک را اشغال می‌کند، و دومی به عنوان مکمل اولی برای ایجاد یک پارتیشن /home که تمام فضای خالی باقی‌مانده را به خود اختصاص دهد. در اولین بوت، اگر systemd-repart یک پارتیشن /home موجود روی دیسک پیدا کند، ادغام تعاریف را لغو کرده و تنها یک پارتیشن ریشه کوچک ایجاد می‌کند. در غیر این صورت، تعاریف ادغام شده و یک پارتیشن ریشه بزرگ منفرد ایجاد خواهد شد.

در نسخه 257 اضافه شد.

AddValidateFS=

یک آرگومان دودویی (boolean) می‌پذیرد. در صورت فعال بودن، ویژگی‌های توسعه‌یافته (extended attributes) با نام‌های user.validatefs.gpt_label ، user.validatefs.gpt_type_uuid و user.validatefs.mount_point را روی inode ریشه سیستم‌فایل قالب‌بندی‌شده بر روی برچسب‌های پارتیشن، UUID نوع پارتیشن و نقطه اتصال مدنظر برای سیستم‌فایل تنظیم می‌کند. اگر Format= استفاده شده باشد و آرگومان مشخص‌شده نه "swap" و نه "vfat" باشد، به‌طور پیش‌فرض on است.

این ویژگی‌های توسعه‌یافته توسط systemd-validatefs@.service(8) خوانده می‌شوند و ممکن است محدودیت‌هایی را روی سیستم‌های فایل متصل‌شده کدگذاری کنند که برای بوت موفقیت‌آمیز سیستم باید برآورده شوند. این امر به‌ویژه در سناریوهای systemd-gpt-auto-generator(8) که سلسله‌مراتب اتصال را از داده‌های غیرقابل اعتماد جدول پارتیشن GPT گردآوری می‌کند حائز اهمیت است. از آنجا که این ویژگی‌های توسعه‌یافته درون سیستم‌فایل ذخیره می‌شوند، معمولاً به عنوان بخشی از سیستم‌فایل احراز اصالت می‌شوند (با فرض اینکه درون یک حجم محافظت‌شده قرار دارد؛ یعنی LUKS یا dm-verity) و از این رو می‌توانند برای اعتبارسنجی امن فیلدهای منطبق در جدول پارتیشن مورد استفاده قرار گیرند.

در نسخه 258 اضافه شد.

FileSystemSectorSize=

اندازه سکتور را برای هر سیستم‌فایل، حجم LUKS یا حجم Verity قالب‌بندی‌شده روی این پارتیشن کنترل می‌کند. مقداری از توان ۲ را انتظار دارد و باید برابر یا بزرگ‌تر از ۵۱۲ باشد. معمولاً توصیه می‌شود برای بهینه‌سازی کارایی، اندازه سکتور سیستم‌فایل حتی روی دیسک‌های دارای سکتور ۵۱۲ (و به‌ویژه برای تصاویری که تنها قرار است به صورت فایل روی دیسک‌ها ذخیره شوند) روی ۴۰۹۶ تنظیم شود. با این حال، برای سازگاری با سیستم‌های عامل خارجی یا سفت‌افزار (firmware) ممکن است استفاده از اندازه سکتور بومی دیسک پشتیبان توصیه شود.

اگر مشخص نشود و روی یک دستگاه بلوکی کار کند، به اندازه سکتور بومی دستگاه پیش‌فرض می‌شود. اگر مشخص نشود و روی یک فایل تصویر دیسک کار کند، به ۴۰۹۶ پیش‌فرض می‌شود.

صرف‌نظر از آنچه در اینجا پیکربندی شده است یا کدام پیش‌فرض انتخاب شده باشد، اندازه سکتور سیستم‌فایل همواره افزایش می‌یابد تا برابر یا بزرگ‌تر از اندازه سکتور دیسک باشد.

در نسخه 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" شناسه بوت (Boot ID) شناسه بوت سیستم در حال اجرا، در قالب رشته. برای اطلاعات بیشتر به random(4) مراجعه کنید.
"%B" شناسه ساخت (Build ID) سیستم‌عامل شناسه ساخت سیستم‌عامل سیستم در حال اجرا، خوانده‌شده از فیلد BUILD_ID= در /etc/os-release. اگر تنظیم نشده باشد، به یک رشته خالی تبدیل می‌شود. برای اطلاعات بیشتر به os-release(5) مراجعه کنید.
"%H" نام میزبان (Host name) نام میزبان سیستم در حال اجرا.
"%l" نام کوتاه میزبان نام میزبان سیستم در حال اجرا، کوتاه شده در اولین نقطه برای حذف هر بخش دامنه.
"%m" شناسه ماشین (Machine ID) شناسه ماشین سیستم در حال اجرا، در قالب رشته. برای اطلاعات بیشتر به machine-id(5) مراجعه کنید.
"%M" شناسه تصویر سیستم‌عامل شناسه تصویر سیستم‌عامل سیستم در حال اجرا، خوانده‌شده از فیلد IMAGE_ID= در /etc/os-release. اگر تنظیم نشده باشد، به یک رشته خالی تبدیل می‌شود. برای اطلاعات بیشتر به os-release(5) مراجعه کنید.
"%o" شناسه سیستم‌عامل شناسه سیستم‌عامل سیستم در حال اجرا، خوانده‌شده از فیلد ID= در /etc/os-release. برای اطلاعات بیشتر به os-release(5) مراجعه کنید.
"%q" نام زیبای میزبان (Pretty host name) نام زیبای میزبان سیستم در حال اجرا، خوانده‌شده از فیلد PRETTY_HOSTNAME= در /etc/machine-info. اگر تنظیم نشده باشد، به نام کوتاه میزبان تبدیل می‌شود. برای اطلاعات بیشتر به machine-info(5) مراجعه کنید.
"%v" انتشار هسته (Kernel release) همانند خروجی uname -r.
"%w" شناسه نسخه سیستم‌عامل شناسه نسخه سیستم‌عامل سیستم در حال اجرا، خوانده‌شده از فیلد VERSION_ID= در /etc/os-release. اگر تنظیم نشده باشد، به یک رشته خالی تبدیل می‌شود. برای اطلاعات بیشتر به os-release(5) مراجعه کنید.
"%W" شناسه گونه (Variant ID) سیستم‌عامل شناسه گونه سیستم‌عامل سیستم در حال اجرا، خوانده‌شده از فیلد VARIANT_ID= در /etc/os-release. اگر تنظیم نشده باشد، به یک رشته خالی تبدیل می‌شود. برای اطلاعات بیشتر به os-release(5) مراجعه کنید.
"%T" دایرکتوری فایل‌های موقت یا /tmp است یا مسیری که "$TMPDIR" ،"$TEMP" یا "$TMP" روی آن تنظیم شده‌اند. (توجه داشته باشید که دایرکتوری ممکن است بدون اسلش پایانی مشخص شود.)
"%V" دایرکتوری فایل‌های موقت بزرگ‌تر و ماندگار یا /var/tmp است یا مسیری که "$TMPDIR" ،"$TEMP" یا "$TMP" روی آن تنظیم شده‌اند. (توجه داشته باشید که دایرکتوری ممکن است بدون اسلش پایانی مشخص شود.)
"%%" علامت درصد منفرد برای تعیین یک علامت درصد منفرد، از "%%" به‌جای "%" استفاده کنید.

علاوه بر این، برای تنظیم
SplitName= مشخص‌کننده‌های زیر نیز شناخته‌شده هستند:

جدول 5. مشخص‌کننده‌های موجود

مشخص‌کننده مفهوم جزئیات
"%T" UUID نوع پارتیشن شناسه یکتای نوع پارتیشن (UUID)، همان‌طور که با Type= پیکربندی شده است
"%t" شناسه نوع پارتیشن شناسه نوع پارتیشن متناظر با UUID نوع پارتیشن
"%U" UUID پارتیشن شناسه یکتای پارتیشن (UUID)، همان‌طور که با UUID= پیکربندی شده است
"%n" شماره پارتیشن شماره پارتیشن اختصاص‌یافته به پارتیشن

گزینه‌های قالب‌بندی اضافی سیستم‌فایل را می‌توان با استفاده از متغیرهای محیطی ویژه سیستم‌فایل ارائه کرد:
$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 در بوت در صورت نبود آن‌ها

پارتیشن home تمام فضای دیسک موجود را دریافت می‌کند، در حالی که پارتیشن swap حداکثر 1G و حداقل 64M فضا می‌گیرد. ما اولویت > 0 را روی پارتیشن swap تنظیم می‌کنیم تا مطمئن شویم در صورت نبود فضای کافی از پارتیشن swap استفاده نمی‌شود. به ازای هر سه بایت اختصاص‌یافته به پارتیشن home، پارتیشن swap یک بایت دریافت می‌کند.

# /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" شامل پارتیشن ریشه (با اندازه ثابت 512M) و پارتیشن Verity برای پارتیشن ریشه (با اندازه ثابت 64M) را پوشش می‌دهند. از پیوندهای نمادین (symlinks) برای ایجاد مجموعه پارتیشن‌های "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 Discoverable Partitions Specification
2.
UAPI.1 Boot Loader Specification
systemd 261.2