systemd-bless-boot.service, systemd-bless-boot -
علامتگذاری
بوت جاری به
عنوان بوت
موفق
systemd-bless-boot.service
/usr/lib/systemd/systemd-bless-boot
systemd-bless-boot.service یک
سرویس
سیستمی است
که فرآیند
بوت جاری را
به عنوان
موفق
علامتگذاری
میکند. این
سرویس به
صورت
خودکار به
تراکنش
اولیه
کشانده
میشود
هنگامی که
systemd-bless-boot-generator(8)
تشخیص دهد
که شمارش
بوت به سبک
systemd-boot(7)
استفاده
شده است.
درونی،
این سرویس
بر اساس
متغیر EFI با
نام LoaderBootCountPath (با
شناسه UUID
سازنده
4a67b082-0a4c-41cf-b6c7-440b29bb8c4f) عمل
میکند که
از
بوتلودر
به
سیستمعامل
منتقل
میشود. این
متغیر شامل
یک مسیر
فایلسیستمی
(نسبت به
پارتیشن
سیستمی EFI) از
فایل مدخل
بوتلودر
یا فایل
تصویر هسته
یکپارچه (unified kernel
image) سازگار با
UAPI.1 Boot Loader Specification[1] است
که برای
راهاندازی
سیستم
استفاده
شده بود.
systemd-bless-boot.service دو
شمارنده
عددی بوت
«تلاشهای
انجامشده»
(tries done) و
«تلاشهای
باقیمانده»
(tries left) را از نام
فایل حذف
میکند، که
این امر به
اجراهای
بعدی
بوتلودر
نشان
میدهد که
این مدخل
حداقل یک
بار با
موفقیت
راهاندازی
شده است.
(بنابراین
این سرویس
در اولین
بوت
موفقیتآمیز،
نام فایل
مدخل
بوتلودر
یا فایل
تصویر هسته
یکپارچه را
تغییر
میدهد.)
فایل
اجرایی
/usr/lib/systemd/systemd-bless-boot
همچنین
میتواند
از خط فرمان
با یکی از
آرگومانهای
دستوری زیر
فراخوانی
شود:
status
وضعیت
فعلی فایل
مدخل
بوتلودر
یا فایل
تصویر هسته
یکپارچه
نمایش داده
میشود. این
دستور بسته
به وضعیت و
فراخوانیهای
قبلی، یکی
از مقادیر
"good", "bad", "indeterminate",
"clean", "dirty" را
خروجی
میدهد.
رشته "indeterminate" در
ابتدا پس از
بوت و پیش از
آنکه به
عنوان "good" یا
"bad"
علامتگذاری
شود نمایش
داده
میشود.
رشته "good" پس
از آنکه بوت
با دستور
good
در زیر به
عنوان "good"
علامتگذاری
شد نمایش
مییابد، و
برعکس رشته
"bad" پس از
فراخوانی
دستور
bad
نشان داده
میشود.
رشته "clean"
زمانی
برگردانده
میشود که
شمارش بوت
در حال حاضر
فعال نباشد
(که شامل
حالتی نیز
میشود که
مدخل جاری
قبلاً به
عنوان
همواره خوب
علامتگذاری
شده باشد).
رشته "dirty"
زمانی
برگردانده
میشود که
سیستم با یک
هسته
مشخصاً
معیوب (یعنی
هستهای که
شمارنده
تلاشهای
باقیمانده
آن قبلاً به
صفر رسیده
است) بوت شده
باشد.
در صورتی
که هیچ
آرگومان
دستوری
مشخص نشود،
این دستور
به صورت
ضمنی در نظر
گرفته
میشود.
افزوده
شده در
نگارش 240.
good
هنگام
فراخوانی،
فایل مدخل
بوتلودر
یا فایل
تصویر هسته
یکپارچه
جاری به
عنوان "good"
علامتگذاری
میشود و
عملیات
تغییر نام
فایل که در
بالا شرح
داده شد را
اجرا
میکند. این
دستور برای
فراخوانی
در پایان یک
بوت موفق در
نظر گرفته
شده است.
واحد systemd-bless-boot.service
این دستور
را
فراخوانی
میکند.
افزوده
شده در
نگارش 240.
bad
هنگام
فراخوانی،
شمارنده
«تلاشهای
باقیمانده»
(tries left) در نام
فایل مدخل
بوتلودر
یا نام فایل
تصویر هسته
یکپارچه
روی صفر
تنظیم
میشود و
مدخل
بوتلودر
یا تصویر
هسته را به
عنوان "bad"
علامتگذاری
میکند، تا
بوتلودر
در بوتهای
بعدی دیگر
آن را مد نظر
قرار ندهد
(حداقل تا
زمانی که
مدخلهای
دیگری در
دسترس
باشند که
هنوز به
عنوان "bad"
علامتگذاری
نشدهاند).
این دستور
معمولاً
اجرا
نمیشود،
اما
میتواند
در صورت
تشخیص یک
مشکل، برای
پایان دادن
فوری به
منطق شمارش
بوت و
علامتگذاری
دائمی مدخل
بوت به
عنوان خراب
استفاده
شود.
افزوده
شده در
نگارش 240.
indeterminate
این
دستور
هرگونه
علامتگذاری
فایل مدخل
بوتلودر
یا فایل
تصویر هسته
یکپارچه
جاری به
عنوان خوب
یا بد را لغو
میکند. این
کار با
تغییر نام
فایل مدخل
بوتلودر
یا فایل
تصویر هسته
یکپارچه به
همان مسیری
که در متغیر EFI
با نام
LoaderBootCountPath
کدگذاری
شده است
انجام
میشود.
توجه داشته
باشید که
اگر هسته
جاری با
فعال بودن
شمارش بوت
راهاندازی
نشده باشد
(یعنی اگر
متغیر EFI
تنظیم نشده
باشد)، این
عملیات با
شکست مواجه
خواهد شد.
اگر
شمارنده
بوت قبلاً
در یک بوت
قبلی به صفر
تلاش
باقیمانده
رسیده باشد
نیز این
عملیات
ناموفق
خواهد بود:
هنگامی که
یک مدخل به
عنوان
bad
علامتگذاری
شود، فقط
میتوان
مجدداً آن
را به
good
بازنشانی
کرد، نه به
indeterminate.
افزوده
شده در
نگارش 240.
-h, --help
یک متن
راهنمای
کوتاه چاپ
کرده و خارج
میشود.
--version
اطلاعات
نگارش
برنامه را
چاپ کرده و
خارج
میشود.
- 1.
- UAPI.1 Boot Loader Specification