SYSTEMD-MACHINE-ID-SETUP(1) systemd-machine-id-setup SYSTEMD-MACHINE-ID-SETUP(1)

systemd-machine-id-setup - مقداردهی اولیه و تولید شناسه یکتای ماشین (/etc/machine-id)

systemd-machine-id-setup

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 بازگردانده می‌شود، و در غیر این صورت یک کد خطای غیرصفر بازگردانده خواهد شد.

systemd(1), machine-id(5), systemd-machine-id-commit.service(8), dbus-uuidgen(1), systemd-firstboot(1)

1.
Container Interface
systemd 261.2