
آپدیتهای بخش EFI برای کرنل لینوکس ۷.۴ ادغام شدهاند و یکی از تغییرات مهم آن، بهبود همکاری با systemd در شرایطی است که سیستم مستقیماً و بدون بوتلودرهایی مانند GRUB یا systemd-boot وارد کرنل میشود.
مقداردهی LoaderDevicePartUUID در بوت مستقیم
در این حالت، استاب EFI (EFI Stub) نقش بوتلودر را ایفا میکند و اکنون متغیر EFI با نام LoaderDevicePartUUID را مقداردهی میکند. این متغیر به systemd کمک میکند تا چیدمان فایلسیستم (File-system Layout) را شناسایی کند.
نقش رابط بوتلودر (BLI)
رابط بوتلودر (Boot Loader Interface - BLI) استانداردی است که توسط systemd تعریف شده و متغیرهای EFI را برای نمایش وضعیت بوتلودر به سیستمعامل در حال اجرا مشخص میکند. در این استاندارد، LoaderInfo هویت بوتلودر را نشان میدهد و LoaderDevicePartUUID شناسه UUID پارتیشن GPT مربوط به پارتیشنی را ثبت میکند که بوتلودر در آن قرار دارد.
برای نمونه، systemd-gpt-auto-generator از LoaderDevicePartUUID استفاده میکند تا دیسکی را که بوتلودر از آن اجرا شده شناسایی کرده و پارتیشنهای روی آن را بهصورت خودکار تشخیص داده و مانت کند.
تفاوت با GRUB و systemd-boot
GRUB و systemd-boot این متغیرها را مقداردهی میکنند، اما زمانی که فریمور EFI (EFI Firmware) کرنل را مستقیماً اجرا میکند، بوتلودر خارجی متعارفی برای ارائه آنها وجود ندارد. در چنین شرایطی، استاب EFI باید خودش این متغیرها را فراهم کند.
- استفاده از LoaderInfo بهعنوان نشانگر (Sentinel): اگر این متغیر قبلاً توسط مرحله بوت پیشین تنظیم شده باشد یا قابل تنظیم نباشد، عملیات متوقف میشود.
- در غیر این صورت، سایر متغیرهای BLI مقداردهی میشوند.
- مسیر دستگاه تصویر بارگذاریشده تجزیه شده و امضای GUID از گره GPT HD() استخراج میشود.
- این امضا تحت GUID فروشنده ورودی لودر لینوکس و بهصورت متغیر EFI فرّار (Volatile) با نام LoaderDevicePartUUID منتشر میشود.
این تغییر برای کاربرانی که کرنل لینوکس را مستقیماً از EFI بوت میکنند و به systemd-gpt-auto-generator یا ابزارهای مرتبط وابستهاند، در لینوکس ۷.۴ از طریق این ادغام در دسترس قرار گرفته است.