systemd-machine-id-setup -
مقداردهی
اولیه و
تولید
شناسه
یکتای
ماشین (/etc/machine-id)
systemd-machine-id-setup
میتواند
توسط
ابزارهای
نصبکننده
سیستم برای
مقداردهی
اولیه
شناسه
ماشین
ذخیرهشده
در /etc/machine-id در
زمان نصب،
با یک شناسه
از پیش
تدارکدیدهشده
یا تصادفی
تولیدشده
استفاده
شود. برای
اطلاعات
بیشتر در
مورد این
پرونده،
machine-id(5) را
ببینید.
اگر این
ابزار بدون
سوییچ --commit
فراخوانی
شود، در
صورت مفقود
بودن یا
خالی بودن
پرونده، /etc/machine-id
با یک شناسه
ماشین جدید
و معتبر
مقداردهی
اولیه
میشود.
شناسه جدید
ماشین به
روشهای
زیر به دست
میآید:
1.اگر یک
شناسه
ماشین
معتبر در /run/machine-id
ذخیره شده
باشد،
شناسه
ماشین کپی
شده و برای
مقداردهی
اولیه
شناسه
ماشین در /etc/machine-id
استفاده
میشود. در
صورتی که --root=
مشخص شده
باشد یا
برنامه در
یک محیط chroot
اجرا شود،
از این
مرحله
صرفنظر
میشود.
2.اگر یک
شناسه
ماشین
معتبر D-Bus
قبلاً برای
سیستم
پیکربندی
شده باشد،
شناسه
ماشین D-Bus کپی
شده و برای
مقداردهی
اولیه
شناسه
ماشین در /etc/machine-id
استفاده
میشود.
3.اگر یک
شناسه
ماشین
معتبر از
طریق
اعتبارنامه
system.machine_id ارائه
شده باشد،
شناسه
ماشین کپی
شده و برای
مقداردهی
اولیه
شناسه
ماشین در /etc/machine-id
استفاده
میشود. در
صورتی که --root=
مشخص شده
باشد یا
برنامه در
یک محیط chroot
اجرا شود،
از این
مرحله
صرفنظر
میشود.
4.اگر
درون یک
ماشین
مجازی KVM اجرا
شود و یک UUID
پیکربندی
شده باشد (از
طریق گزینه
-uuid)، این UUID
برای
مقداردهی
اولیه
شناسه
ماشین
استفاده
میشود.
فراخواننده
باید
اطمینان
حاصل کند که
UUID ارائهشده
به اندازه
کافی یکتا
بوده و برای
هر نمونه
بوتشده از
ماشین
مجازی
متفاوت است.
در صورتی که
--root= مشخص شده
باشد یا
برنامه در
یک محیط chroot
اجرا شود،
از این
مرحله
صرفنظر
میشود.
5.به همین
ترتیب، اگر
درون محیط
کانتینر
لینوکس
اجرا شود و
یک UUID برای
کانتینر
پیکربندی
شده باشد،
از آن برای
مقداردهی
اولیه
شناسه
ماشین
استفاده
میشود.
برای
جزئیات،
مستندات Container
Interface[1] را
ببینید. در
صورتی که --root=
مشخص شده
باشد یا
برنامه در
یک محیط chroot
اجرا شود،
از این
مرحله
صرفنظر
میشود.
6.در غیر
این صورت،
یک شناسه
جدید به
صورت
تصادفی
تولید
میشود.
سوییچ --commit
میتواند
برای ثبت و
ماندگار
کردن شناسه
ماشین موقت
بر روی دیسک
استفاده
شود. برای
جزئیات
بیشتر به
ادامه مطلب
مراجعه
کنید.
از systemd-firstboot(1)
برای
مقداردهی
اولیه
شناسه
ماشین روی
ایمیجهای
سیستمی
مانتشده
(اما
بوتنشده)
استفاده
کنید.
گزینههای
زیر
پشتیبانی
میشوند:
--root=path
یک مسیر
دایرکتوری
را به عنوان
آرگومان
میگیرد.
تمام
مسیرهایی
که روی
آنها
عملیات
انجام
میشود با
مسیر
جایگزین
root
دادهشده
پیشوندگذاری
میشوند،
از جمله
مسیر خود /etc/machine-id.
افزودهشده
در نگارش 212.
--image=path
مسیر یک
گره دستگاه
یا پرونده
معمولی را
به عنوان
آرگومان
میگیرد.
این گزینه
مشابه
--root=
توضیحدادهشده
در بالا
است، اما به
جای یک درخت
دایرکتوری
روی یک
ایمیج دیسک
عمل میکند.
افزودهشده
در نگارش 249.
--image-policy=policy
یک رشته
سیاست
ایمیج را
مطابق
systemd.image-policy(7)
به عنوان
آرگومان
میگیرد.
این سیاست
هنگام کار
روی ایمیج
دیسک
مشخصشده
از طریق
--image=
(در بالا
ببینید)
اعمال
میشود. در
صورت عدم
تعیین،
پیشفرض
روی سیاست
"*" است،
یعنی تمام
سیستمهای
پرونده
شناساییشده
در ایمیج
استفاده
میشوند.
--commit
ثبت
شناسه
ماشین موقت
روی دیسک.
این دستور
میتواند
برای تبدیل
یک شناسه
ماشین موقت
به یک شناسه
دائمی
استفاده
شود. پرونده
شناسه
ماشین موقت
پروندهای
است که در
مراحل
اولیه
فرآیند بوت
از یک سیستم
پرونده
حافظه
(معمولاً "tmpfs")
به /etc/machine-id به
صورت bind مانت
شده باشد.
این حالت
ممکن است به
این دلیل رخ
دهد که /etc/ در
ابتدا
فقطخواندنی
بوده و در آن
زمان فاقد
یک پرونده
شناسه
ماشین
معتبر بوده
است.
اگر /etc/machine-id از
یک سیستم
پرونده
حافظه مانت
نشده باشد،
یا اگر /etc/
فقطخواندنی
باشد، این
دستور هیچ
عملیاتی
انجام
نخواهد داد.
این دستور
شناسه
ماشین موقت
فعلی را روی
دیسک
مینویسد و
نقطه مانت
/etc/machine-id را بدون
ایجاد
شرایط
رقابتی (race-free)
آنمانت
میکند تا
اطمینان
حاصل شود که
این پرونده
همواره
برای سایر
فرایندها
معتبر و در
دسترس است.
این دستور
در درجه اول
توسط سرویس
اوایل بوت
systemd-machine-id-commit.service(8)
استفاده
میشود.
افزودهشده
در نگارش 227.
--print
چاپ
شناسه
ماشین
تولیدشده
یا ثبتشده
پس از اتمام
عملیات.
افزودهشده
در نگارش 231.
-h, --help
نمایش یک
متن
راهنمای
کوتاه و
خروج.
--version
نمایش
نگارش
برنامه و
خروج.
در صورت
موفقیت 0
بازگردانده
میشود، و
در غیر این
صورت یک کد
خطای
غیرصفر
بازگردانده
خواهد شد.