| SYSTEMD-GPT-AUTO-GENERATOR(8) | systemd-gpt-auto-generator | SYSTEMD-GPT-AUTO-GENERATOR(8) |
نام (NAME)
systemd-gpt-auto-generator - تولیدکننده خودکار شناسایی و سوار کردن پارتیشنهای ریشه، خانه و سوآپ بر اساس GPT
خلاصه دستور (SYNOPSIS)
/usr/lib/systemd/system-generators/systemd-gpt-auto-generator
توضیحات (DESCRIPTION)
systemd-gpt-auto-generator یک تولیدکننده واحد (unit generator) است که بهطور خودکار پارتیشن ریشه (root)، /home/، /srv/، /var/، /var/tmp/، پارتیشن سیستم EFI (ESP)، پارتیشن بارگذار بوت توسعهیافته (XBOOTLDR)، و پارتیشنهای سوآپ (swap) را شناسایی کرده و بر اساس GUIDهای نوع پارتیشن در جدولهای پارتیشن GPT، واحدهای سوار کردن (mount) و سوآپ ایجاد میکند. برای جزئیات بیشتر، به مشخصات UEFI[1]، فصل ۵ مراجعه کنید. این برنامه مشخصات UAPI.2 Discoverable Partitions Specification[2] را پیادهسازی میکند.
توجه داشته باشید که این تولیدکننده بر روی سیستمهای غیر GPT هیچ تاثیری ندارد. همچنین برای دایرکتوریهایی که از قبل حاوی فایل هستند، یا اگر نقطه سوار شدن بهطور صریح در fstab(5) پیکربندی شده باشد، پیکربندی نقطه سوار کردن ایجاد نخواهد کرد. علاوه بر این، اگر ورودیهای سوار کردن در سلسلهمراتب /boot/ یا /efi/ در fstab(5) یافت شوند، هیچ واحدی برای پارتیشن ESP یا XBOOTLDR ایجاد نخواهد شد.
اگر واحدهایی که این تولیدکننده ایجاد میکند لغو (override) شوند، برای مثال توسط واحدهایی در دایرکتوریهایی با اولویت بالاتر، فایلهای drop-in و وابستگیهای اضافی ایجادشده توسط این تولیدکننده ممکن است همچنان مورد استفاده قرار گیرند.
هنگامی که این تولیدکننده در دیسک رم اولیه (initrd) اجرا میشود، میتواند بهطور خودکار سیستم فایل ریشه را جستجو کند. بهطور مشخص:
هنگامی که روی سیستم میزبان اجرا میشود (یعنی پس از انتقال موفقیتآمیز از initrd به سیستم فایل ریشه)، این تولیدکننده به دنبال تمام پارتیشنهای دیگر روی همان دیسک فیزیکی پارتیشن ریشه میگردد. برای این شناسایی، پشتیبانی از بارگذار بوت لازم نیست. علاوه بر این، نیازی نیست که پارتیشن ریشه بهطور خودکار توسط initrd شناسایی شده باشد (همانطور که در بالا توضیح داده شد) تا شناسایی پارتیشنهای غیر ریشه انجام گیرد. به عبارت دیگر: شناسایی خودکار سیستم فایل ریشه و سیستمهای فایل غیر ریشه عملیاتهای مستقلی هستند که به یکدیگر وابسته نبوده و در دو فاز متمایز از فرآیند بوت انجام میشوند (یکی در initrd، دیگری پس از آن). این پارتیشنها در سیستمهایی که سیستم فایل ریشه روی چندین دیسک توزیع شده است (برای مثال از طریق btrfs RAID)، جستجو نخواهند شد.
پارتیشن ریشه را میتوان با ایجاد پیوند نمادین از /run/systemd/volatile-root به /dev/block/$major:$minor بهطور صریح پیکربندی کرد. این کار بهویژه زمانی مفید است که سوار شدن ریشه با نوعی سیستم فایل فرار (overlayfs) جایگزین شده باشد.
systemd-gpt-auto-generator برای متمرکز کردن پیکربندی سیستم فایل در جدول پارتیشن و بینیاز کردن از پیکربندی در /etc/fstab یا خط فرمان هسته بسیار کاربردی است.
این تولیدکننده پارتیشنها را بر اساس GUID نوع پارتیشن آنها شناسایی میکند. GUIDهای نوع پارتیشن زیر شناسایی میشوند:
Table 1. Partition Type GUIDs
| Partition Type | GUID | نام | نقطه سوار کردن | توضیحات |
| SD_GPT_ROOT_X86_64 | 4f68bce3-e8cd-4db1-96e7-fbcaf984b709 | پارتیشن ریشه (x86-64) | / | نخستین پارتیشن با این UUID نوع، واقع بر روی همان دیسک ESP استفادهشده برای بوت، به عنوان سیستم فایل ریشه / در سیستمهای AMD64 / 64-bit x86 استفاده میشود. |
| SD_GPT_ROOT_ARM64 | b921b045-1df0-41c3-af44-4c6f280d3fae | پارتیشن ریشه (64-bit ARM) | / | نخستین پارتیشن با این UUID نوع، واقع بر روی همان دیسک ESP استفادهشده برای بوت، به عنوان سیستم فایل ریشه / در سیستمهای AArch64 / 64-bit ARM استفاده میشود. |
| SD_GPT_ROOT_ALPHA SD_GPT_ROOT_ARC SD_GPT_ROOT_ARM SD_GPT_ROOT_ARM64 SD_GPT_ROOT_IA64 SD_GPT_ROOT_LOONGARCH64 SD_GPT_ROOT_MIPS SD_GPT_ROOT_MIPS64 SD_GPT_ROOT_MIPS_LE SD_GPT_ROOT_MIPS64_LE SD_GPT_ROOT_PARISC SD_GPT_ROOT_PPC SD_GPT_ROOT_PPC64 SD_GPT_ROOT_PPC64_LE SD_GPT_ROOT_RISCV32 SD_GPT_ROOT_RISCV64 SD_GPT_ROOT_S390 SD_GPT_ROOT_S390X SD_GPT_ROOT_TILEGX SD_GPT_ROOT_X86 SD_GPT_ROOT_X86_64 SD_GPT_USR_ALPHA SD_GPT_USR_ARC SD_GPT_USR_ARM SD_GPT_USR_IA64 SD_GPT_USR_LOONGARCH64 SD_GPT_USR_MIPS_LE SD_GPT_USR_MIPS64_LE SD_GPT_USR_PARISC SD_GPT_USR_PPC SD_GPT_USR_PPC64 SD_GPT_USR_PPC64_LE SD_GPT_USR_RISCV32 SD_GPT_USR_RISCV64 SD_GPT_USR_S390 SD_GPT_USR_S390X SD_GPT_USR_TILEGX SD_GPT_USR_X86 | ... | پارتیشنهای ریشه برای سایر معماریها | / | نخستین پارتیشن با UUID نوع مطابق با معماری، واقع بر روی همان دیسک ESP استفادهشده برای بوت، به عنوان سیستم فایل ریشه / استفاده میشود. برای فهرست کامل و مقادیر ثابت، به UAPI.2 Discoverable Partitions Specification[2] مراجعه کنید. |
| SD_GPT_HOME | 933ac7e1-2eb4-4f13-b844-0e14e2aef915 | پارتیشن خانه (Home) | /home/ | نخستین پارتیشن با این UUID نوع روی همان دیسک پارتیشن ریشه، در /home/ سوار میشود. |
| SD_GPT_SRV | 3b8f8425-20e0-4f3b-907f-1a25a76f98e8 | پارتیشن دادههای سرور | /srv/ | نخستین پارتیشن با این UUID نوع روی همان دیسک پارتیشن ریشه، در /srv/ سوار میشود. |
| SD_GPT_VAR | 4d21b016-b534-45c2-a9fb-5c16e091fd2d | پارتیشن دادههای متغیر | /var/ | نخستین پارتیشن با این UUID نوع روی همان دیسک پارتیشن ریشه، در /var/ سوار میشود — به شرطی که UUID پارتیشن آن با ۱۲۸ بیت نخست HMAC-SHA256 از نوع uuid GPT این پارتیشن با کلید شناسه ماشین نصب ذخیرهشده در machine-id(5) مطابقت داشته باشد. این مقدار را میتوان با استفاده از systemd-id128(1) تولید کرد. |
| SD_GPT_TMP | 7ec6f557-3bc5-4aca-b293-16ef5df639d1 | پارتیشن دادههای موقت | /var/tmp/ | نخستین پارتیشن با این UUID نوع روی همان دیسک پارتیشن ریشه، در /var/tmp/ سوار میشود. |
| SD_GPT_SWAP | 0657fd6d-a4ab-43c4-84e5-0933c84b4f4f | سوآپ (Swap) | ناموجود | تمام پارتیشنهای دارای این UUID نوع روی همان دیسک پارتیشن ریشه، به عنوان سوآپ استفاده میشوند. |
| SD_GPT_ESP | c12a7328-f81f-11d2-ba4b-00a0c93ec93b | پارتیشن سیستم EFI (ESP) | /efi/ یا /boot/ پس از انتقال سیستم از initrd، و /sysefi/ پیش از آن | نخستین پارتیشن با این UUID نوع واقع بر روی همان دیسک پارتیشن ریشه، در /boot/ یا /efi/ سوار میشود؛ به ادامه متن مراجعه کنید. |
| SD_GPT_XBOOTLDR | bc13c2ff-59e6-4262-a352-b275fd6f7172 | پارتیشن بارگذار بوت توسعهیافته | /boot/ | نخستین پارتیشن با این UUID نوع واقع بر روی همان دیسک پارتیشن ریشه، در /boot/ سوار میشود؛ به ادامه متن مراجعه کنید. |
این تولیدکننده فلگهای ویژگی (attribute flags) زیر را برای پارتیشنها درک میکند:
Table 2. Partition Attribute Flags
| فلگ | مقدار | قابل اعمال روی | توضیحات |
| SD_GPT_FLAG_READ_ONLY | 0x1000000000000000 | /، /home/، /srv/، /var/، /var/tmp/، پارتیشن بارگذار بوت توسعهیافته | پارتیشن بهصورت فقطخواندنی سوار میشود |
| SD_GPT_FLAG_NO_AUTO | 0x8000000000000000 | /، /home/، /srv/، /var/، /var/tmp/، پارتیشن بارگذار بوت توسعهیافته | پارتیشن بهطور خودکار سوار نمیشود |
| SD_GPT_FLAG_NO_BLOCK_IO_PROTOCOL | 0x0000000000000002 | پارتیشن سیستم EFI (ESP) | پارتیشن بهطور خودکار سوار نمیشود |
پارتیشنهای
/home/، /srv/، /var/، /var/tmp/ و
سوآپ ممکن
است با قالب
LUKS رمزنگاری
شده باشند.
در این
حالت، یک
دستگاه device mapper
با نامهای
/dev/mapper/home، /dev/mapper/srv، /dev/mapper/var،
/dev/mapper/tmp یا /dev/mapper/swap
راهاندازی
میشود.
توجه داشته
باشید اگر
همان
پارتیشن در
/etc/crypttab با نام
دستگاه
دیگری
فهرست شده
باشد، این
امر ممکن
است تداخل
ایجاد کند.
هنگامی که systemd در initrd اجرا میشود، پارتیشن / نیز ممکن است با LUKS رمزنگاری شده باشد. در این حالت، یک دستگاه device mapper تحت نام /dev/mapper/root راهاندازی شده و یک sysroot.mount تنظیم میشود که دستگاه را زیر /sysroot سوار میکند. برای اطلاعات بیشتر، به bootup(7) مراجعه کنید.
واحدهای سوار کردن (mount) و سوار کردن خودکار (automount) برای پارتیشن سیستم EFI (ESP) و پارتیشن بارگذار بوت توسعهیافته (XBOOTLDR) روی سیستمهای EFI تولید میشوند. اگر دیسک حاوی یک پارتیشن XBOOTLDR باشد (طبق تعریف در UAPI.1 Boot Loader Specification[4])، در /boot/ در دسترس قرار میگیرد. این تولیدکننده یک واحد automount ایجاد میکند؛ عمل سوار کردن فقط در صورت دسترسی و بهصورت درخواستی (on-demand) فعال خواهد شد. در صورت نیاز، نقطه سوار کردن ایجاد میشود.
پارتیشن ESP در صورتی که دایرکتوری /boot/ برای XBOOTLDR استفاده نشده باشد در /boot/ سوار میشود، و در غیر این صورت در /efi/. مشابه /boot/، یک واحد automount استفاده میشود. در صورت نیاز، نقطه سوار کردن ایجاد میشود. این موارد پس از انتقال سیستم از فاز initrd اعمال میگردند. قبل از آن، اگر مؤلفههای موجود در initrd به دسترسی ESP نیاز داشته باشند، در /sysefi/ سوار خواهد شد.
برای نقاط سوار کردنی که در fstab(5) پیکربندی شدهاند یا زمانی که دایرکتوری مقصد حاوی فایل است، هیچ پیکربندیای ایجاد نمیشود.
هنگام استفاده از این تولیدکننده در ارتباط با سیستمهای فایل btrfs، با استفاده از btrfs subvolume set-default مطمئن شوید که زیرحجمهای پیشفرض صحیح را روی آنها تنظیم کردهاید.
اگر سیستم از طریق systemd-stub(7) بوت شده باشد و stub به فضای کاربری گزارش دهد که ایمیج هسته در یک TPM2 PCR اندازهگیری شده است، آنگاه هر شناسه حجم ریشه و /var/ کشفشده (و کلیدهای رمزنگاری حجم، در صورتی که رمزنگاری شده باشند) بهطور خودکار هنگام فعالسازی از طریق systemd-pcrfs@.service(8) در PCR 15 اندازهگیری خواهند شد. علاوه بر این، اطلاعات مربوط به شیار کلید LUKS استفادهشده برای باز کردن قفل حجم در NvPCR با عنوان "cryptsetup" اندازهگیری میشود. در نهایت، اگر پارتیشن ریشه یا /usr/ از طریق Verity محافظت شده باشد، هش ریشه آن و شماره سریال/صادرکننده کلید استفادهشده برای امضای هش ریشه ارائهشده (در صورت وجود) در NvPCR با عنوان "verity" اندازهگیری میشوند.
متادیتای محدودیت سوار کردن (mount constraint) موجود در سیستمهای فایل، با فراخوانی systemd-validatefs@.service(8) برای نقاط سوار کردن ایجادشده اعتبارسنجی میشود.
systemd-gpt-auto-generator سند systemd.generator(7) را پیادهسازی میکند.
خط فرمان هسته (KERNEL COMMAND LINE)
systemd-gpt-auto-generator پارامترهای خط فرمان هسته زیر را درک میکند:
systemd.gpt_auto, rd.systemd.gpt_auto
در نسخه 242 اضافه شد.
systemd.image_policy=
توجه داشته باشید که خطمشی ایمیج مشخصشده برای شناسایی خودکار سیستم فایل ریشه یا /usr/ در نظر گرفته نمیشود مگر اینکه root=dissect/mount.usr=dissect (یا root=dissect-force) مشخص شده باشند. (این خطمشی همیشه برای سایر انواع پارتیشنهای قابل شناسایی خودکار اعمال خواهد شد.)
در نسخه 254 اضافه شد.
systemd.image_filter=
توجه داشته باشید که فیلتر ایمیج مشخصشده برای شناسایی خودکار سیستم فایل ریشه یا /usr/ در نظر گرفته نمیشود مگر اینکه root=dissect/mount.usr=dissect (یا root=dissect-force) مشخص شده باشند. (این فیلتر همیشه برای سایر انواع پارتیشنهای قابل شناسایی خودکار اعمال خواهد شد.)
در نسخه 258 اضافه شد.
root=, rootfstype=, rootflags=
اگر root= روی مقدار ویژه "dissect" تنظیم شود، شناسایی خودکار کامل پارتیشن ریشه بر اساس اطلاعات پارتیشن GPT فعال میگردد. این یک ابرمجموعه از root=gpt-auto است، زیرا پارتیشنهای Verity (شامل راهاندازی مبتنی بر امضا) را بهطور خودکار بر اساس منطق تعریفشده برای آن در UAPI.2 Discoverable Partitions Specification[6] پیکربندی میکند. علاوه بر این، خطمشی و فیلتر ایمیج پیکربندیشده را برای تمام انواع پارتیشن، از جمله سیستم فایل ریشه در نظر میگیرد. گزینه "root=dissect" در صورت فعال بودن فاز بازنشانی کارخانهای، قبل از فعالسازی سیستم فایل ریشه منتظر تکمیل آن فاز میماند. از "root=dissect-force" برای نادیده گرفتن فاز بازنشانی کارخانهای و فعالسازی فوری سیستم فایل ریشه استفاده کنید.
هر مقدار دیگر (یعنی به جز "gpt-auto"، "gpt-auto-force"، "dissect"، "dissect-force") شناسایی خودکار سیستم فایل ریشه را غیرفعال میکند.
اگر root= بهطور کلی در خط فرمان هسته مشخص نشده باشد، شناسایی خودکار پارتیشن ریشه از طریق ESP گزارششده توسط بارگذار بوت نیز فعال میشود (با در نظر گرفتن وضعیت بازنشانی کارخانهای، یعنی معادل با "root=gpt-auto")؛ با این حال در این حالت، شناسایی مبتنی بر فیلد ".lo_name" دستگاه بلوکی لوپبک فعال نمیشود.
گزینههای rootfstype= و rootflags= برای انتخاب نوع سیستم فایل و گزینههای آن در زمان شناسایی خودکار سیستم فایل ریشه استفاده میشوند.
در نسخه 242 اضافه شد.
mount.usr=, mount.usrfstype=, mount.usrflags=
همچنین توجه داشته باشید که شناسایی خودکار پارتیشن برای /usr/ باید بهطور صریح فعال شود، برخلاف شناسایی برای سیستم فایل ریشه که در صورت عدم ارسال هیچ پارامتر root= نیز فعال است.
در نسخه 258 اضافه شد.
rw, ro
توجه داشته باشید که برخلاف اکثر گزینههای خط فرمان هسته، این تنظیمات پیکربندی درون سیستم فایل را لغو نمیکنند و ممکن است سیستم فایل بعداً مجدداً سوار شود (remount). به systemd-remount-fs.service(8) مراجعه کنید.
در نسخه 242 اضافه شد.
systemd.swap=
در نسخه 254 اضافه شد.
همچنین ببینید (SEE ALSO)
systemd(1), systemd.mount(5), systemd.swap(5), systemd-fstab-generator(8), systemd-cryptsetup@.service(8), systemd-pcrfs@.service(8), systemd-validatefs@.service(8), machine-id(5), cryptsetup(8), fstab(5), btrfs(8)
نکات (NOTES)
- 1.
- UEFI Specification
- 2.
- UAPI.2 Discoverable Partitions Specification
- 3.
- Boot Loader Interface
- 4.
- UAPI.1 Boot Loader Specification
- 5.
- Factory Reset
- 6.
- UAPI.2 Discoverable Partitions Specification
| systemd 261.2 |