SYSTEMD-FIRSTBOOT(1) systemd-firstboot SYSTEMD-FIRSTBOOT(1)

systemd-firstboot, systemd-firstboot.service - مقداردهی اولیه تنظیمات پایه سیستم در اولین بوت

systemd-firstboot [OPTIONS...]

systemd-firstboot.service

واحد systemd-firstboot.service یکی از واحدهایی است که برای مقداردهی اولیه پیکربندی ماشین در «اولین بوت» (First Boot)، یعنی زمانی که سیستم به تازگی نصب شده یا پس از بازنشانی کارخانه‌ای (factory reset)، استفاده می‌شود. مدیر systemd(1) خود machine-id(5) را مقداردهی اولیه کرده و تمام واحدها را بر اساس تنظیمات systemd.preset(5) فعال یا غیرفعال (preset) می‌کند. سرویس systemd-firstboot.service کمی بعد اجرا می‌شود تا به صورت تعاملی پیکربندی پایه سیستم را مقداردهی کند. این سرویس تنها در صورتی اجرا می‌شود که شرط ConditionFirstBoot=yes برقرار باشد، که اساساً به این معنی است که /etc/ خالی و فاقد داده است؛ برای جزئیات به systemd.unit(5) مراجعه کنید. از اعتبارنامه‌های سیستم می‌توان برای تزریق پیکربندی استفاده کرد؛ آن تنظیمات به صورت تعاملی پرسیده نمی‌شوند.

دستور systemd-firstboot همچنین می‌تواند برای مقداردهی اولیه غیرتعاملی یک ایمیج سیستم آفلاین مورد استفاده قرار گیرد.

تنظیمات زیر قابل پیکربندی هستند:

•شناسه ماشین (machine ID) سیستم
•محلی‌سازی سیستم، به طور خاص‌تر دو متغیر محلی‌سازی LANG= و LC_MESSAGES
•نگاشت صفحه‌کلید سیستم
•منطقه زمانی سیستم
•نام میزبان سیستم
•برچسب‌های ماشین (machine tags)
•خط فرمان هسته مورد استفاده هنگام نصب ایمیج‌های هسته
•گذرواژه و شل کاربر ریشه ('root')

هر یک از فیلدها می‌توانند به صورت تعاملی توسط کاربران پرسیده شوند، به صورت غیرتعاملی در خط فرمان ابزار تنظیم شوند، یا از سیستم میزبانی که برای راه‌اندازی ایمیج سیستم استفاده می‌شود کپی گردند.

اگر تنظیمی از قبل مقداردهی شده باشد، بازنویسی نخواهد شد و از کاربر درباره آن سوالی پرسیده نمی‌شود.

توجه داشته باشید که این ابزار بر خلاف localectl(1)، timedatectl(1) یا hostnamectl(1) مستقیماً روی سیستم‌فایل عمل می‌کند و هیچ سرویس سیستمی در حال اجرایی را درگیر نمی‌سازد. این ویژگی به systemd-firstboot اجازه می‌دهد بر روی ایمیج‌های دیسکی که سوار (mount) شده‌اند اما بوت نشده‌اند و همچنین در مراحل اولیه بوت عمل کند. استفاده از systemd-firstboot روی سیستم در حال اجرا پس از راه‌اندازی آن توصیه نمی‌شود.

گزینه‌های زیر پشتیبانی می‌شوند:

--root=root

یک مسیر دایرکتوری را به عنوان آرگومان می‌گیرد. پیشوند تمام مسیرها با مسیر جایگزین root داده‌شده تنظیم می‌شود، از جمله مسیرهای جستجوی پیکربندی. این گزینه برای کار روی یک ایمیج سیستم که در دایرکتوری مشخص‌شده سوار شده است به جای خود سیستم میزبان مفید است.

افزوده‌شده در نگارش 216.

--image=path

مسیری به یک فایل ایمیج دیسک یا گره دستگاه بلوکی را می‌گیرد. در صورت مشخص شدن، تمام عملیات بر روی سیستم‌فایل موجود در ایمیج دیسک اشاره‌شده اعمال می‌شوند. این گزینه مشابه --root= است اما بر روی سیستم‌فایل‌های ذخیره‌شده در ایمیج‌های دیسک یا دستگاه‌های بلوکی عمل می‌کند. ایمیج دیسک باید یا صرفاً شامل یک سیستم‌فایل باشد و یا مجموعه‌ای از سیستم‌فایل‌ها درون یک جدول پارتیشن GPT طبق UAPI.2 Discoverable Partitions Specification[1]. برای اطلاعات بیشتر در مورد ایمیج‌های دیسک پشتیبانی‌شده، سوییچ هم‌نام در systemd-nspawn(1) را ببینید.

افزوده‌شده در نگارش 246.

--locale=LOCALE, --locale-messages=LOCALE

محلی‌سازی سیستم، و به طور دقیق‌تر تنظیمات LANG= و LC_MESSAGES را تعیین می‌کند. آرگومان باید یک شناسه معتبر محلی‌سازی باشد، مانند "de_DE.UTF-8". این گزینه فایل پیکربندی locale.conf(5) را کنترل می‌کند.

افزوده‌شده در نگارش 216.

--keymap=KEYMAP

چیدمان صفحه‌کلید سیستم را تنظیم می‌کند. آرگومان باید یک نگاشت صفحه‌کلید معتبر باشد، مانند "de-latin1". این گزینه مدخل "KEYMAP" را در فایل پیکربندی vconsole.conf(5) کنترل می‌کند.

افزوده‌شده در نگارش 236.

--timezone=TIMEZONE

منطقه زمانی سیستم را تنظیم می‌کند. آرگومان باید یک شناسه منطقه زمانی معتبر باشد، مانند "Europe/Berlin". این گزینه پیوند نمادین localtime(5) را کنترل می‌کند.

افزوده‌شده در نگارش 216.

--hostname=HOSTNAME

نام میزبان سیستم را تنظیم می‌کند. آرگومان باید یک نام میزبان سازگار با DNS باشد. این گزینه فایل پیکربندی hostname(5) را کنترل می‌کند.

افزوده‌شده در نگارش 216.

--setup-machine-id

شناسه ماشین سیستم را با یک شناسه تصادفی مقداردهی اولیه می‌کند. این گزینه فایل machine-id(5) را کنترل می‌کند.

این گزینه تنها در ترکیب با --root= یا --image= کار می‌کند. روی یک سیستم در حال اجرا، machine-id توسط مدیر به کمک systemd-machine-id-commit.service(8) نوشته می‌شود.

افزوده‌شده در نگارش 216.

--machine-id=ID

شناسه ماشین سیستم را روی مقدار مشخص‌شده تنظیم می‌کند. همان محدودیت‌های --setup-machine-id اعمال می‌شود.

افزوده‌شده در نگارش 216.

--machine-tags=TAG[:TAG...]

برچسب‌های ماشین را روی فهرست مشخص‌شده با دونقطه (:) تنظیم می‌کند. برچسب‌های ماشین برچسب‌های کوتاهی هستند که ممکن است برای دسته‌بندی و گروه‌بندی ماشین‌ها با اهداف مدیریتی استفاده شوند، برای مثال جهت شناسایی نقشی که یک ماشین در استقرار ایفا می‌کند، ناوگان یا واحد سازمانی که به آن تعلق دارد، یا هر صفت دیگری که توسط مدیر سیستم تعریف شده است. هر برچسب جداگانه باید ۱ تا ۲۵۵ نویسه طول داشته باشد و تنها شامل نویسه‌های الفبایی‌عددی اسکی (ASCII)، "-" و "." باشد. این گزینه فیلد TAGS= در machine-info(5) را کنترل می‌کند. برچسب‌ها را می‌توان بعداً با دستور tags از hostnamectl(1) استعلام کرد و تغییر داد، و با تنظیمات واحد ConditionMachineTag=/AssertMachineTag= تطبیق داد؛ به systemd.unit(5) مراجعه کنید.

برخلاف بیشتر تنظیمات دیگر، برچسب‌های ماشین به صورت تعاملی پرسیده نمی‌شوند.

افزوده‌شده در نگارش 261.

--root-password=PASSWORD, --root-password-file=PATH, --root-password-hashed=HASHED_PASSWORD

گذرواژه کاربر ریشه سیستم را تنظیم می‌کند. این گزینه فایل‌های passwd(5) و shadow(5) را ایجاد کرده یا تغییر می‌دهد. این تنظیم به سه شکل وجود دارد: --root-password= گذرواژه را مستقیماً در خط فرمان می‌پذیرد، --root-password-file= آن را از یک فایل می‌خواند و --root-password-hashed= یک گذرواژه از پیش هش‌شده را در خط فرمان می‌پذیرد. برای اطلاعات بیشتر در مورد قالب گذرواژه هش‌شده، به shadow(5) مراجعه کنید. توجه داشته باشید که مشخص کردن گذرواژه‌ها به صورت متن ساده (plaintext) در خط فرمان توصیه نمی‌شود، زیرا سایر کاربران ممکن است صرفاً با فراخوانی ps(1) بتوانند آن‌ها را مشاهده کنند.

افزوده‌شده در نگارش 216.

--root-shell=SHELL

شل کاربر ریشه سیستم را تنظیم می‌کند. این گزینه فایل passwd(5) را ایجاد کرده یا تغییر می‌دهد.

افزوده‌شده در نگارش 246.

--kernel-command-line=CMDLINE

خط فرمان هسته سیستم را تنظیم می‌کند. این گزینه فایل /etc/kernel/cmdline را که توسط kernel-install(8) استفاده می‌شود کنترل می‌کند.

افزوده‌شده در نگارش 246.

--prompt-locale, --prompt-keymap, --prompt-timezone, --prompt-hostname, --prompt-root-password, --prompt-root-shell

از کاربر به صورت تعاملی برای یک تنظیم پایه خاص سوال می‌پرسد. توجه داشته باشید که هرگونه تنظیمات پیکربندی صریح که در خط فرمان مشخص شده باشد تقدم دارد، و برای آن از کاربر سوالی پرسیده نمی‌شود.

افزوده‌شده در نگارش 216.

--prompt

از کاربر برای محلی‌سازی، نگاشت کلید، منطقه زمانی، نام میزبان، گذرواژه ریشه و شل ریشه استعلام می‌کند. این معادل مشخص کردن ترکیبی گزینه‌های --prompt-locale، --prompt-keymap، --prompt-timezone، --prompt-hostname، --prompt-root-password و --prompt-root-shell است.

افزوده‌شده در نگارش 216.

--prompt-keymap-auto

اگر از یک پایانه مجازی TTY فراخوانی شود، معادل --prompt-keymap است؛ در غیر این صورت هیچ اثری ندارد. یا به عبارت دیگر، تنها زمانی نگاشت کلید را به صورت تعاملی می‌پرسد که یک صفحه‌کلید محلی برای تعاملی که به آن نیاز دارد به کار گرفته شود.

افزوده‌شده در نگارش 259.

--copy-locale, --copy-keymap, --copy-timezone, --copy-root-password, --copy-root-shell

یک تنظیم پایه خاص را از سیستم میزبان کپی می‌کند. این تنها در ترکیب با --root= یا --image= کار می‌کند.

افزوده‌شده در نگارش 216.

--copy

محلی‌سازی، نگاشت کلید، منطقه زمانی، گذرواژه ریشه و شل را از میزبان کپی می‌کند. این معادل مشخص کردن ترکیبی گزینه‌های --copy-locale، --copy-keymap، --copy-timezone، --copy-root-password و --copy-root-shell است.

افزوده‌شده در نگارش 216.

--force

پیکربندی را می‌نویسد حتی اگر فایل‌های مربوطه از قبل وجود داشته باشند. بدون این گزینه، systemd-firstboot فایل‌های موجود را تغییر نداده یا جایگزین نمی‌کند. توجه داشته باشید که هنگام پیکربندی حساب ریشه، حتی با وجود این گزینه، systemd-firstboot تنها مدخل کاربر "root" را تغییر می‌دهد و سایر مدخل‌ها را در /etc/passwd و /etc/shadow دست‌نخورده باقی می‌گذارد.

افزوده‌شده در نگارش 246.

--reset

در صورت مشخص شدن، تمام فایل‌های موجود که توسط systemd-firstboot پیکربندی می‌شوند حذف می‌گردند. توجه داشته باشید که فایل‌ها صرف‌نظر از اینکه با یک مقدار جدید پیکربندی شوند یا خیر، حذف می‌شوند. این عملیات تضمین می‌کند که بوت بعدی ایمیج به عنوان اولین بوت در نظر گرفته شود، و systemd-firstboot برای پیکربندی هر یک از فایل‌های حذف‌شده مجدداً سوال بپرسد.

افزوده‌شده در نگارش 254.

--delete-root-password

گذرواژه کاربر ریشه سیستم را حذف می‌کند و امکان ورود به عنوان ریشه بدون گذرواژه را فراهم می‌سازد، مگر اینکه حساب ریشه قفل شده باشد. توجه داشته باشید که این کار به شدت ناامن است و بنابراین از این گزینه نباید با سهل‌انگاری استفاده شود.

افزوده‌شده در نگارش 246.

--welcome=

یک آرگومان بولی می‌گیرد. به طور پیش‌فرض، هنگام درخواست گزینه‌های پیکربندی از کاربر، قبل از پرسیدن اولین سوال یک متن خوش‌آمدگویی کوتاه نشان داده می‌شود. مقدار false را به این گزینه ارسال کنید تا متن خوش‌آمدگویی خاموش شود.

افزوده‌شده در نگارش 246.

--chrome=

یک آرگومان بولی می‌گیرد. به طور پیش‌فرض صفحه راه‌اندازی اولیه نوارهای رنگی معکوس (chrome) را در بالا و پایین صفحه پایانه نشان می‌دهد، که می‌توان با تنظیم این گزینه روی false آن را غیرفعال کرد.

افزوده‌شده در نگارش 259.

--mute-console=

یک آرگومان بولی می‌گیرد. در صورت true بودن، خروجی لاگ هسته و خروجی وضعیت مدیر سرویس به کنسول سیستم در زمان اجرای systemd-firstboot به طور موقت غیرفعال می‌شود تا خروجی خود ابزار دچار اختلال نشود. پیش‌فرض false است.

افزوده‌شده در نگارش 259.

-h, --help

یک متن راهنمای کوتاه را نمایش داده و خارج می‌شود.

--version

یک رشته نسخه کوتاه را نمایش داده و خارج می‌شود.

systemd-firstboot از منطق اعتبارنامه‌های سرویس که توسط ImportCredential=/LoadCredential=/SetCredential= پیاده‌سازی شده است پشتیبانی می‌کند (برای جزئیات به systemd.exec(5) مراجعه کنید). در صورت ارسال، اعتبارنامه‌های زیر استفاده می‌شوند:

passwd.hashed-password.root, passwd.plaintext-password.root

یک نسخه هش‌شده یا متن ساده از گذرواژه ریشه برای استفاده به جای پرسش از کاربر. این اعتبارنامه‌ها معادل همان مواردی هستند که برای سرویس systemd-sysusers.service(8) تعریف شده‌اند.

افزوده‌شده در نگارش 249.

passwd.shell.root

باینری شل مورد استفاده برای حساب مشخص‌شده را تعیین می‌کند. معادل اعتبارنامه‌ای به همین نام که برای سرویس systemd-sysusers.service(8) تعریف شده است.

افزوده‌شده در نگارش 249.

firstboot.locale, firstboot.locale-messages

این اعتبارنامه‌ها تنظیمات محلی‌سازی را برای اعمال در اولین بوت، به جای پرسش از کاربر مشخص می‌کنند.

افزوده‌شده در نگارش 249.

firstboot.keymap

این اعتبارنامه تنظیمات صفحه‌کلید را برای اعمال در اولین بوت، به جای پرسش از کاربر مشخص می‌کند.

به رابطه این اعتبارنامه با vconsole.keymap که توسط systemd-vconsole-setup.service(8) شناخته می‌شود توجه کنید: هر دو در نهایت بر یک تنظیم اثر می‌گذارند، اما firstboot.keymap در اولین بوت (اگر از قبل پیکربندی نشده باشد) درون /etc/vconsole.conf نوشته می‌شود، و سپس توسط systemd-vconsole-setup از آنجا خوانده می‌شود، در حالی که vconsole.keymap در هر بوت خوانده می‌شود و روی دیسک ماندگار نمی‌گردد (اما هرگونه پیکربندی در vconsole.conf در صورت وجود اولویت خواهد داشت).

افزوده‌شده در نگارش 249.

firstboot.timezone

این اعتبارنامه تنظیم منطقه زمانی سیستم را برای اعمال در اولین بوت، به جای پرسش از کاربر مشخص می‌کند.

افزوده‌شده در نگارش 249.

firstboot.hostname

این اعتبارنامه نام میزبان ایستای سیستم را برای اعمال در اولین بوت مشخص می‌کند. نام میزبان از کاربر پرسیده نخواهد شد. توجه داشته باشید که این گزینه نام میزبان ایستا را کنترل می‌کند، نه نام میزبان گذرا، و برخلاف system.hostname، تنها در اولین بوت اثر دارد.

افزوده‌شده در نگارش 261.

firstboot.machine-tags

این اعتبارنامه برچسب‌های ماشین را برای اعمال در اولین بوت، به صورت فهرستی جداشده با دونقطه (:) مشخص می‌کند، معادل سوییچ --machine-tags= که در بالا توضیح داده شد. این برچسب‌ها در فیلد TAGS= از /etc/machine-info نوشته می‌شوند (اگر این فایل از قبل وجود نداشته باشد)، و فقط در اولین بوت اثر دارند. اگر فهرست حاوی برچسب‌های نامعتبر باشد، به طور کامل نادیده گرفته می‌شود.

افزوده‌شده در نگارش 261.

توجه داشته باشید که به طور پیش‌فرض فایل واحد systemd-firstboot.service به گونه‌ای تنظیم شده است که اعتبارنامه‌های فهرست‌شده را از مدیر سرویس به ارث ببرد. بنابراین، هنگام فراخوانی یک کانتینر با /etc/ خالی برای بار اول، می‌توان گذرواژه کاربر ریشه را به صورت زیر روی "systemd" تنظیم کرد:

# systemd-nspawn --image=... --set-credential=firstboot.locale:de_DE.UTF-8 ...

توجه داشته باشید که این اعتبارنامه‌ها فقط در طول اولین بوت خوانده و اعمال می‌شوند. هنگامی که اعمال شدند، برای بوت‌های بعدی نیز باقی می‌مانند و دیگر اعتبارنامه‌ها در نظر گرفته نمی‌شوند.

در صورت موفقیت 0 بازگردانده می‌شود، و در غیر این صورت یک کد خطای غیرصفر برگردانده خواهد شد.

systemd.firstboot=

یک آرگومان بولی می‌گیرد، که پیش‌فرض آن on است. اگر off باشد، systemd-firstboot.service حتی اگر تنظیمات پایه هنوز مقداردهی نشده باشند، به صورت تعاملی درباره آن‌ها از کاربر سوال نخواهد پرسید.

افزوده‌شده در نگارش 233.

systemd(1), locale.conf(5), vconsole.conf(5), localtime(5), hostname(5), machine-id(5), shadow(5), systemd-machine-id-setup(1), localectl(1), timedatectl(1), hostnamectl(1)

1.
UAPI.2 Discoverable Partitions Specification
systemd 261.2