MKINITCPIO(8) راهنمای mkinitcpio MKINITCPIO(8)

mkinitcpio - ایجاد محیط دیسک رم اولیه (ramdisk)

mkinitcpio [options]

یک محیط دیسک رم اولیه (initial ramdisk) برای راه‌اندازی هسته لینوکس ایجاد می‌کند. دیسک رم اولیه در اصل یک محیط بسیار کوچک (فضای کاربری اولیه یا early userspace) است که ماژول‌های مختلف هسته را بارگذاری کرده و پیش از واگذاری کنترل به init، موارد لازم را تنظیم می‌کند. این امر امکان داشتن مواردی مانند سیستم‌های فایل ریشه رمزنگاری‌شده و سیستم‌های فایل ریشه روی آرایه RAID نرم‌افزاری را فراهم می‌سازد. mkinitcpio امکان توسعه آسان با قلاب‌های سفارشی را فراهم می‌کند، قابلیت تشخیص خودکار در زمان اجرا دارد، و ویژگی‌های متعدد دیگری را ارائه می‌دهد.

-A, --addhooks hooks

افزودن hooks (قلاب‌های) اضافی به تصویر. این قلاب‌ها پس از تمام قلاب‌های دیگرِ فایل پیکربندی، به ترتیب پردازش خواهند شد. قلاب‌های متعدد باید با کاما جدا شوند. این گزینه می‌تواند چندین بار مشخص شود.

-c, --config config

استفاده از فایل config برای تولید دیسک رم. پیش‌فرض: /etc/mkinitcpio.conf. در صورت مشخص شدن، فایل‌های تکمیلی (drop-in) در /etc/mkinitcpio.conf.d نادیده گرفته خواهند شد.

-d, --generatedir directory

تنظیم directory به عنوان مکانی که initramfs در آن ساخته می‌شود. این گزینه ممکن است برای تولید یک ramfs خاموش‌سازی در /run/initramfs/ مفید باشد.

-D, --hookdir directory

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

-I, --include path

افزودن files یا directories اضافی به تصویر. این موارد پس از گنجانده شدن تمامی فایل‌های دیگر در تصویر، به ترتیب پردازش خواهند شد.

اگر مسیر یک فایل باشد، می‌توانید مبدأ و مقصد در تصویر را با کاما جدا کنید. مثال: source:destination:mode.

اگر مسیر یک دایرکتوری باشد، تنها کل دایرکتوری را می‌پذیرد و دایرکتوری را از ریشه تصویر می‌گنجاند.

مسیرهای متعدد باید با کاما جدا شوند. این گزینه می‌تواند چندین بار مشخص شود.

-g, --generate filename

تولید یک تصویر CPIO با نام filename. پیش‌فرض: no؛ این بدان معناست که هیچ چیزی در سیستم فایل نوشته نخواهد شد مگر اینکه این گزینه مشخص شود.

-H, --hookhelp hookname

نمایش راهنما برای نام قلاب hookname.

-h, --help

نمایش یک نمای کلی کوتاه از سوئیچ‌های خط فرمان موجود.

-k, --kernel kernelversion

استفاده از kernelversion به جای هسته در حال اجرای فعلی. این می‌تواند مسیری به یک تصویر هسته (تنها برای معماری‌های مبتنی بر x86 پشتیبانی می‌شود)، یک نسخه خاص هسته یا کلیدواژه ویژه none باشد. در حالت اخیر، هیچ ماژول هسته‌ای به تصویر افزوده نمی‌شود.

-L, --listhooks

فهرست کردن تمامی قلاب‌های موجود.

-M, --automods

نمایش ماژول‌های یافت‌شده از طریق تشخیص خودکار. mkinitcpio به طور خودکار تلاش خواهد کرد تعیین کند کدام ماژول‌های هسته برای راه‌اندازی رایانه شما مورد نیاز هستند. این گزینه ماژول‌های شناسایی‌شده را فهرست می‌کند.

-n, --nocolor

غیرفعال کردن خروجی رنگی.

--nopost

عدم اجرای قلاب‌های پسین (post hooks).

-U, --uki filename

تولید یک تصویر هسته یکپارچه (unified kernel image) با نام filename. اگر یک تصویر CPIO با موفقیت ساخته شود، برای تولید تصویر هسته یکپارچه جهت راه‌اندازی با UEFI استفاده خواهد شد. این کار initramfs، هسته و cmdline هسته را در یک فایل اجرایی واحد ترکیب می‌کند. این قابلیت برای یکپارچگی زنجیره راه‌اندازی در شرایطی که فایل امضا می‌شود مفید است. پیش‌فرض: no. برای فهرستی از گزینه‌های مرتبط، بخش گزینه‌های تصویر هسته یکپارچه در زیر را ببینید.

-P, --allpresets

پردازش تمام پیش‌تنظیم‌های موجود در /etc/mkinitcpio.d. برای جزئیات بیشتر درباره پیش‌تنظیم‌ها، گزینه -p را ببینید.

-p, --preset preset

ساخت تصویر(های) initramfs بر اساس preset مشخص‌شده. این می‌تواند فایلی در /etc/mkinitcpio.d (بدون پسوند .preset) یا یک مسیر کامل و مطلق به یک فایل باشد. این گزینه می‌تواند چندین بار برای پردازش چندین پیش‌تنظیم مشخص شود.

-R, --remove

حذف تصویر(های) initramfs تولیدشده توسط پیش‌تنظیم(های) مشخص‌شده. اگر در ترکیب با -P|--allpresets استفاده شود، تصاویر مربوط به تمام پیش‌تنظیم‌ها را حذف می‌کند. این گزینه تنها همراه با -p|--presets یا -P|--allpresets قابل استفاده است.

-r, --moduleroot root

دایرکتوری ریشه را برای یافتن ماژول‌ها تعیین می‌کند، مقدار پیش‌فرض / است.

-S, --skiphooks hooks

نادیده گرفتن hooks (قلاب‌ها) هنگام تولید تصویر. قلاب‌های متعدد باید با کاما جدا شوند. این گزینه می‌تواند چندین بار مشخص شود.

-s, --save

ذخیره دایرکتوری ساخت برای دیسک رم اولیه. پیش‌فرض: no؛ این بدان معناست که در صورت مشخص نشدن این گزینه، دایرکتوری حفظ نخواهد شد. برای اهداف اشکال‌زدایی مفید است.

-t, --builddir tmpdir

استفاده از tmpdir به عنوان دایرکتوری ساخت موقت به جای /tmp. tmpdir باید وجود داشته باشد. متغیر محیطی TMPDIR نیز برای تنظیم این مکان مد نظر قرار می‌گیرد، اما گزینه خط فرمان اولویت خواهد داشت.

-V, --version

نمایش اطلاعات نسخه.

-v, --verbose

خروجی پرگو (با جزئیات). اطلاعات بیشتری درباره آنچه در طول ایجاد دیسک رم رخ می‌دهد ارائه می‌دهد.

-z, --compress compress

جایگزینی روش فشرده‌سازی با برنامه compress.

--cmdline filename

استفاده از خط فرمان هسته با تصویر هسته یکپارچه. اگر یک دایرکتوری داده شود، تمام فایل‌های منطبق با *.conf در آن دایرکتوری استفاده می‌شوند. اگر هیچ موردی مشخص نشود، یکی از فایل‌های /etc/kernel/cmdline، /usr/lib/kernel/cmdline، /etc/cmdline.d/*.conf یا /proc/cmdline امتحان می‌شود.

--no-cmdline

صرف‌نظر کردن از جاسازی رشته خط فرمان هسته در تصویر هسته یکپارچه. گزینه‌های خط فرمان هسته باید از طریق خط فرمان هسته منتقل شوند. بر گزینه --cmdline تقدم دارد.

--splash filename

فایل‌های اجرایی UEFI می‌توانند در زمان راه‌اندازی یک فایل نقشه‌بیتی (bitmap) را نمایش دهند.

--uefistub filename

تصویر UEFI stub مورد استفاده برای تولید تصویر هسته یکپارچه. در صورت استفاده از ukify هیچ تأثیری ندارد. پیش‌فرض: تلاش برای یافتن بارگذار stub مربوط به systemd-boot یا gummiboot.

--ukiconfig filename

فایل پیکربندی برای ارسال به ukify. اگر هیچ موردی مشخص نشود، یکی از فایل‌های /etc/kernel/uki.conf یا /usr/lib/kernel/uki.conf امتحان می‌شود. اگر هیچ‌یک از آن‌ها وجود نداشته باشد، ukify از پیش‌فرض داخلی خود استفاده خواهد کرد.

--no-ukify

عدم استفاده از ukify برای ساخت UKIها حتی در صورت در دسترس بودن. این کار توصیه نمی‌شود.

--kernelimage filename

گنجاندن یک تصویر هسته برای تصویر هسته یکپارچه. پیش‌فرض: یکی از مسیرهای /lib/modules/${KERNELVERSION}/vmlinuz، /lib/modules/${KERNELVERSION}/vmlinux، /boot/vmlinuz-${KERNELVERSION}، /boot/vmlinux-${KERNELVERSION}، /boot/vmlinuz-linux یا /boot/vmlinux-linux.

--osrelease filename

گنجاندن یک فایل os-release برای تصویر هسته یکپارچه. پیش‌فرض: /etc/os-release یا /usr/lib/os-release.

یک پیش‌تنظیم (preset)، تعریفی از پیش تعیین‌شده در مورد نحوه ایجاد دیسک رم اولیه است. به جای مشخص کردن فایل پیکربندی و فایل خروجی در هر بار تولید یک دیسک رم اولیه جدید، شما یک پیش‌تنظیم تعریف می‌کنید و از سوئیچ -p برای تولید دیسک رم اولیه بر اساس پیش‌تنظیم خود استفاده می‌نمایید.

به طور معمول، پیش‌تنظیم‌ها فایل‌هایی با پسوند .preset هستند که در /etc/mkinitcpio.d قرار دارند، برای مثال /etc/mkinitcpio.d/linux.preset برای پیش‌تنظیم linux. همچنین امکان استفاده از فایل‌ها در مکان‌های دیگر نیز وجود دارد؛ در این حالت باید مسیر فایل مشخص شود.

فایل‌های پیش‌تنظیم اسکریپت‌های شل هستند که توسط mkinitcpio بارگذاری (source) می‌شوند و متغیرهای زیر بر رفتار آن تأثیر می‌گذارند.

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

PRESETS

آرایه‌ای از نام‌های پیش‌تنظیم تعریف‌شده در این فایل. این نام‌ها به عنوان پیشوند سایر گزینه‌ها استفاده خواهند شد تا گزینه‌های مخصوص هر پیش‌تنظیم را فراهم کنند. برای مثال، اگر PRESET=('custom') مشخص شود، تصویر از طریق custom_image='/boot/custom.img' تعیین می‌گردد.

<preset>_kver (پیش‌فرض مقدار ALL_kver است — یکی از این دو الزامی است)

تعیین نسخه هسته (از طریق -k در mkinitcpio).

<preset>_config (پیش‌فرض مقدار ALL_config است — یکی از این دو الزامی است)

مسیر فایل پیکربندی (ارسال‌شده از طریق -c به mkinitcpio).

<preset>_uki (یکی از دو مورد <preset>_uki و <preset>_image الزامی است)

مسیر فایل خروجی برای تصویر هسته یکپارچه (ارسال‌شده از طریق -U به mkinitcpio).

<preset>_image (یکی از دو مورد <preset>_uki و <preset>_image الزامی است)

مسیر فایل خروجی برای تصویر تولیدشده (ارسال‌شده از طریق -g به mkinitcpio).

<preset>_cmdline (پیش‌فرض مقدار ALL_cmdline است)

مسیر فایل خط فرمان هسته (ارسال‌شده از طریق --cmdline به mkinitcpio). این گزینه تنها هنگام تولید تصاویر هسته یکپارچه استفاده می‌شود.

<preset>_splash (پیش‌فرض مقدار ALL_splash است)

مسیر فایل تصویر اسپلش (ارسال‌شده از طریق --splash به mkinitcpio). این گزینه تنها هنگام تولید تصاویر هسته یکپارچه استفاده می‌شود.

<preset>_kerneldest (پیش‌فرض مقدار ALL_kerneldest است)

مسیر مقصد هسته که به قلاب‌های پسین ارسال خواهد شد. این گزینه مکان پیش‌فرض هسته (معمولاً /boot) را بازنویسی می‌کند و اجازه می‌دهد مکان قرارگیری هسته برای راه‌اندازی سفارشی‌سازی شود. این مقدار از طریق متغیر محیطی KERNELDESTINATION به قلاب‌های پسین ارسال می‌شود.

<preset>_options

آرگومان‌های خط فرمان بیشتر برای ارسال به mkinitcpio به صورت یک رشته یا آرایه. آن‌ها در انتهای فراخوانی mkinitcpio (پس از تمامی گزینه‌های ذکرشده در بالا) افزوده می‌شوند، بنابراین می‌توان از این مورد برای بازنویسی گزینه‌ها استفاده کرد (برای مثال ارسال -S hook در اینجا برای نادیده گرفتن یک قلاب).

قلاب‌های نصب اسکریپت‌های bash هستند که در زمان اجرای mkinitcpio بارگذاری (source) می‌شوند تا ماژول‌ها، باینری‌ها و فایل‌های دیگر را به تصویر اضافه کنند. توابع مختلفی برای تسهیل این کار وجود دارند.

add_module modname

ماژول مشخص‌شده توسط modname را به تصویر اضافه می‌کند. وابستگی‌ها به طور خودکار استخراج شده و افزوده می‌شوند.

add_binary binary [ destination ] [ mode ]

یک فایل باینری را به تصویر اضافه می‌کند. آرگومان binary نیازی نیست مسیری مطلق باشد و در صورت نیاز، جستجو انجام خواهد شد. اگر باینری یک فایل ELF پیوندیافته پویا باشد، وابستگی‌ها به طور خودکار افزوده می‌شوند. اگر یک پیوند نمادین باشد، هم پیوند نمادین و هم باینری هدف اضافه خواهند شد. به صورت اختیاری، مقصدی درون تصویر initramfs و همچنین حالت دسترسی فایل (mode) می‌تواند مشخص شود. به طور پیش‌فرض، مقصد و حالت دسترسی از مبدأ مشتق‌شده از binary گرفته می‌شوند.

add_file path [ destination ] [ mode ]

یک فایل و هر دایرکتوری والد مورد نیاز را به تصویر اضافه می‌کند. اگر یک پیوند نمادین باشد، هم پیوند نمادین و هم فایل هدف اضافه خواهند شد. به صورت اختیاری، مقصدی درون تصویر initramfs و همچنین حالت دسترسی فایل می‌تواند مشخص شود. به طور پیش‌فرض، مقصد و حالت دسترسی از مبدأ و حالت دسترسی فایل مشخص‌شده با path گرفته می‌شوند.

add_file_early path [ destination ] [ mode ]

یک فایل و هر دایرکتوری والد مورد نیاز را به تصویر فشرده‌نشده اولیه اضافه می‌کند. به همان شیوه add_file عمل می‌کند.

add_dir path

یک دایرکتوری و والدین آن را به تصویر اضافه می‌کند.

add_dir_early path

یک دایرکتوری و والدین آن را به تصویر فشرده‌نشده اولیه اضافه می‌کند. به همان شیوه add_dir عمل می‌کند.

add_full_dir directory [ glob ] [ strip_prefix ]

با پیمایش مسیر داده‌شده و فراخوانی متناظر add_file، add_dir و add_symlink، یک دایرکتوری را به صورت بازگشتی به تصویر اضافه می‌کند. این تابع از پیوندهای نمادین پیروی نمی‌کند و هدف‌های پیوندهای نمادین را نیز اضافه نمی‌کند.

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

اگر آرگومان strip_prefix ارسال شود، برای حذف پیشوند مشخص‌شده توسط آرگومان strip_prefix از مسیر مقصد (مسیر درون تصویر initramfs) استفاده خواهد شد. این قابلیت هنگام نوشتن قلاب‌های rootfs-overlay می‌تواند مفید باشد.

add_symlink path [ link-target ]

یک پیوند نمادین را در مسیر مشخص‌شده path به تصویر اضافه می‌کند که می‌تواند به صورت اختیاری به link-target مشخص‌شده اشاره کند. اگر link-target ارائه نشود، فرض می‌شود که این پیوند نمادین در سیستم فایل واقعی وجود دارد و هدف با استفاده از readlink(1) خوانده خواهد شد. هیچ بررسی برای اطمینان از وجود هدف پیوند نمادین انجام نمی‌شود و پیوندهای نمادین به صورت بازگشتی دنبال نخواهند شد.

add_all_modules [ -f filter ] pattern

ماژول‌ها را بدون در نظر گرفتن لیست سفید تشخیص خودکار (autodetect) به تصویر اضافه می‌کند. pattern باید یک زیردایرکتوری در درخت هسته باشد که زیرمجموعه‌ای از ماژول‌های قابل گنجاندن را توصیف می‌کند. پالایش بیشتر می‌تواند از طریق پرچم -f همراه با یک عبارت باقاعده گسترش‌یافته ارائه شود.

add_checked_modules [ -f filter ] pattern

مشابه add_all_modules با این محدودیت که تنها ماژول‌های منطبق بر لیست سفید ایجادشده توسط قلاب autodetect به تصویر اضافه خواهند شد. اگر قلاب autodetect در تصویر وجود نداشته باشد، این تابع با add_all_modules یکسان است.

add_runscript scriptname

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

add_udev_rule rule-file

یک قانون udev را به تصویر اضافه می‌کند. وابستگی‌ها به فایل‌های باینری کشف شده و افزوده خواهند شد. آرگومان می‌تواند نام یک فایل قانون (کشف‌شده از مسیرهای شناخته‌شده udev) یا یک مسیر مطلق باشد.

add_all_modules_from_symbol symbol paths

ماژول‌های موجود در دایرکتوری‌های paths را که حاوی symbol هستند به تصویر اضافه می‌کند.

add_checked_modules_from_symbol symbol paths

مشابه add_all_modules_from_symbol با این محدودیت که تنها ماژول‌های منطبق بر لیست سفید ایجادشده توسط قلاب autodetect به تصویر افزوده خواهند شد. اگر قلاب autodetect در تصویر حاضر نباشد، این تابع با add_all_modules_from_symbol یکسان است.

add_initcpio_binary binary [ destination ] [ mode ]

مشابه add_binary است با این تفاوت که برای یافتن باینری جهت گنجاندن در تصویر، مسیر /usr/lib/initcpio را جستجو می‌کند. این مورد برای قلاب‌هایی مفید است که بدون نیاز به مسیرنویسی ثابت (hardcoding)، فایل‌هایی درون آن دایرکتوری دارند.

دستور mkinitcpio از CPIO اولیه (early CPIO) پشتیبانی می‌کند. این‌ها آرشیوهای CPIO فشرده‌نشده‌ای هستند که پیش از آرشیو اصلی CPIO فشرده‌شده قرار می‌گیرند. آن‌ها برای بارگذاری زودهنگام ریزکد پردازنده یا بارگذاری بازنویسی‌های جداول ACPI استفاده می‌شوند.

قلاب‌های نصب می‌توانند با افزودن فایل‌ها به $EARLYROOT، آن‌ها را در این آرشیو نصب کنند.

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

run_earlyhook

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

run_hook

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

run_latehook

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

run_cleanuphook

توابعی با این نام تا جای ممکن دیر اجرا می‌شوند. هر دیمنی که از طریق تابع run_earlyhook شروع به کار کرده است باید در اینجا برای آماده‌سازی جابجایی به ریشه واقعی متوقف شود.

run_emergencyhook

توابعی با این نام پیش از راه‌اندازی شل اضطراری (در صورت بروز شکست در بوت) اجرا می‌شوند. برای مثال این امکان را می‌دهد تا صفحات اسپلش بوت فرآیند خود را متوقف کنند تا کاربران متوجه شکست شوند.

getarg argument [ default ]

این تابع می‌تواند در قلاب‌های زمان اجرا برای دریافت یک آرگومان از cmdline هسته استفاده شود. اگر argument همراه با مقدار وجود داشته باشد، آن مقدار بازگردانده می‌شود. اگر argument بدون مقدار وجود داشته باشد، y بازگردانده می‌شود. اگر argument وجود نداشته باشد، default بازگردانده می‌شود. اگر default مشخص نشده باشد، چیزی بازگردانده نخواهد شد.

قلاب‌های پسین، فایل‌های اجرایی یا اسکریپت‌هایی هستند که پس از تولید موفق تصویر برای پردازش‌های بیشتر، مانند امضا کردن، اجرا می‌شوند. هنگامی که kernel-install(8) دستور mkinitcpio را فراخوانی می‌کند، قلاب‌های پسین غیرفعال می‌شوند.

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

توجه: اگر mkinitcpio با -k none یا -k version فراخوانی شود و تصویر هسته یافت نشود، آرگومان اول خالی خواهد بود.

متغیرهای محیطی زیر ارسال می‌شوند:

KERNELVERSION

شامل نسخه کامل هسته‌ای است که تصویر از آن ساخته شده است.

KERNELDESTINATION

مکان پیش‌فرضی که هسته باید برای راه‌اندازی در آن قرار گیرد. این معمولاً همان آرگومان اول است اما اگر mkinitcpio با -k /boot/* فراخوانی نشده باشد ممکن است تفاوت داشته باشد. اگر هیچ تصویر هسته‌ای پیدا نشود، این متغیر نیز خالی خواهد بود.

دستور mkinitcpio با برخی متغیرهای محیطی ارسال‌شده در خط فرمان هسته، رفتار ویژه‌ای دارد:

break[=<premount|postmount>]

در صورت تعیین، mkinitcpio در طول راه‌اندازی اولیه یک شل اجرا خواهد کرد. پارامتر اختیاری زمان وقوع آن را کنترل می‌کند: هنگامی که premount یا هیچ پارامتری مشخص نشده باشد، شل پیش از متصل کردن ریشه اجرا می‌شود. اگر postmount مشخص شود، شل پس از متصل کردن ریشه اجرا خواهد شد.

disablehooks=hooklist

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

earlymodules=modulelist

فهرستی از ماژول‌ها جداشده با کاما که پیش از سایر ماژول‌ها بارگذاری خواهند شد. این عموماً مورد نیاز نیست و معمولاً به مشکلی در پیکربندی یا هسته اشاره دارد.

quiet

باعث می‌شود mkinitcpio در طول راه‌اندازی پیام‌های کمتری نمایش دهد. خطاها پوشانده نخواهند شد.

ro

مشخص می‌کند که ریشه باید با مجوزهای فقط‌خواندنی (readonly) متصل شود. این رفتار پیش‌فرض است.

rw

مشخص می‌کند که ریشه باید با مجوزهای خواندن/نوشتن (readwrite) متصل شود. این عموماً تنها در صورتی مفید است که initramfs شما از قلاب fsck استفاده کند.

root=rootdevice

این متغیر پارتیشن ریشه را توصیف می‌کند که راه‌اندازی اولیه پیش از واگذاری کنترل به init واقعی، آن را متصل خواهد کرد. mkinitcpio قالب‌های متنوعی را می‌شناسد که پایه‌ای‌ترین آن‌ها مسیر دستگاه بلوکی است، چه به طور مستقیم مانند /dev/sda2، یا با استفاده از یک پیوند نمادین udev مانند /dev/disk/by-label/CorsairF80-root. پشتیبانی از شناسایی با برچسب‌های LABEL یا مشخصه‌های UUID نیز فراهم است، مانند LABEL=CorsairF80-root. از زمان انتشار util-linux 2.22، مقادیر PARTUUID و PARTLABEL نیز پشتیبانی می‌شوند. شناسایی از طریق شناسه دستگاه major/minor با کدگذاری هگزادسیمال به دلایل قدیمی پشتیبانی می‌شود، اما باید از آن اجتناب کرد زیرا شکننده است.

rootdelay[=seconds]

تأخیر (بر حسب ثانیه) را تعیین می‌کند که mkinitcpio در صورت در دسترس نبودن فوری دستگاه ریشه، برای ظاهر شدن آن منتظر می‌ماند. مقدار پیش‌فرض 10 ثانیه است. اگر یک عدد صحیح نامعتبر ارسال شود، این متغیر اثری نخواهد داشت.

rootflags=flaglist

فهرستی از پرچم‌ها جداشده با کاما که هنگام متصل کردن سیستم فایل ریشه به دستور mount(8) ارسال می‌شوند. مقادیر قابل قبول بر اساس سیستم فایل متفاوت است.

rootfstype=fstype

نوع سیستم فایل در حال اتصال به عنوان ریشه را بازنویسی می‌کند. این گزینه تقریباً هرگز مورد نیاز نخواهد بود زیرا mount(8) معمولاً خود به خود این مورد را تشخیص می‌دهد.

rd.debug

اشکال‌زدایی شل (xtrace) را فعال می‌کند. اگر rd.log نیز پارامتری در خط فرمان هسته نباشد، این پارامتر متضمن rd.log=console خواهد بود.

rd.log[=<console|file|kmsg|all>]

ثبت لاگ پیام‌های فضای کاربری اولیه را فعال می‌کند. در صورت مشخص شدن، پارامتر اختیاری مکان ثبت این اطلاعات را شرح می‌دهد. چندین گزینه را می‌توان با استفاده از نویسه خط عمودی (|) با یکدیگر ترکیب (OR) کرد. پیام‌ها همواره در کنسول ثبت می‌شوند مگر اینکه پارامتر quiet ارسال شود. اگر پارامتر اختیاری مشخص نشود، kmsg|console فرض می‌گردد. اگر rd.log در خط فرمان هسته وجود نداشته باشد، هیچ ثبتی انجام نخواهد شد.

console

خروجی را در /dev/console می‌نویسد.

file

خروجی را در /run/initramfs/init.log می‌نویسد.

kmsg

خروجی را در دستگاه /dev/kmsg (معرفی‌شده در لینوکس 3.5) می‌نویسد. اگر هسته شما فاقد پشتیبانی از /dev/kmsg باشد، این گزینه بی‌استفاده (no-op) خواهد بود.

all

خروجی را در تمامی مقاصد شناخته‌شده ثبت لاگ می‌نویسد.

این‌ها تنها متغیرهایی هستند که هسته اصلی mkinitcpio رعایت می‌کند. قلاب‌های دیگر ممکن است به دنبال سایر متغیرهای محیطی باشند و این موارد باید در خروجی راهنمای آن قلاب مستند شده باشند.

دستور mkinitcpio قصد دارد به طور پیش‌فرض تصاویر initramfs بازتولیدپذیر ایجاد کند.

این بدان معناست که دو بار اجرای پیاپی mkinitcpio باید دو فایل تولید کند که در سطح باینری همسان باشند.

مُهرهای زمانی درون initramfs بر روی مبدأ زمان یونیکس یعنی 1970-01-01 تنظیم می‌شوند.

توجه داشته باشید که برای بازتولیدپذیر بودن کامل فرآیند ساخت، فشرده‌ساز تعیین‌شده (مانند gzip، xz) نیز باید آرشیوهای بازتولیدپذیر تولید کند. در زمان نگارش این متن، به عنوان یک نمونه غیرجامع، فشرده‌ساز lzop به دلیل درج مُهر زمانیِ زمان اجرا، قادر به تولید آرشیوهای بازتولیدپذیر نیست.

اطلاعات بیشتر در https://reproducible-builds.org قابل مشاهده است.

/etc/mkinitcpio.conf

فایل پیکربندی پیش‌فرض برای mkinitcpio.

/etc/mkinitcpio.conf.d

دایرکتوری حاوی فایل‌های پیکربندی تکمیلی (drop-in).

/etc/mkinitcpio.d

دایرکتوری حاوی پیش‌تنظیم‌های mkinitcpio.

/etc/initcpio/install, /usr/lib/initcpio/install

مسیر جستجو برای قلاب‌های زمان ساخت.

/etc/initcpio/hooks, /usr/lib/initcpio/hooks

مسیر جستجو برای قلاب‌های زمان اجرای فضای کاربری اولیه.

/etc/initcpio/post, /usr/lib/initcpio/post

مسیر جستجو برای قلاب‌های پس از تولید.

mkinitcpio

انجام یک اجرای آزمایشی (dry-run). این کار یک دیسک رم اولیه تولید می‌کند اما چیزی در دیسک نمی‌نویسد. برای ایجاد تصویر واقعی از -g استفاده کنید.

mkinitcpio -p linux

ایجاد یک دیسک رم اولیه بر اساس پیش‌تنظیم linux.

mkinitcpio -g /boot/initramfs-linux.img -k /boot/vmlinuz-linux

ایجاد یک دیسک رم اولیه برای هسته در /boot/vmlinuz-linux. تصویر حاصل در /boot/initramfs-linux.img نوشته خواهد شد.

mkinitcpio -U /efi/EFI/Linux/systemd-linux.efi

ایجاد یک دیسک رم اولیه برای هسته همراه با یک تصویر هسته یکپارچه. فایل اجرایی حاصل در /efi/EFI/Linux/systemd-linux.efi نوشته خواهد شد.

mkinitcpio -U /efi/EFI/Linux/systemd-linux.efi --splash /usr/share/systemd/bootctl/splash-arch.bmp

ایجاد یک دیسک رم اولیه برای هسته و یک تصویر هسته یکپارچه. این مورد همچنین شامل یک تصویر اسپلش است که در طول راه‌اندازی استفاده خواهد شد.

مقاله‌ای دقیق‌تر درباره پیکربندی mkinitcpio: https://wiki.archlinux.org/title/mkinitcpio

initrd(4), lsinitcpio(1), mkinitcpio.conf(5), bootparam(7)

در زمان نگارش این صفحه راهنما، هیچ اشکال قابل توجهی وجود نداشت. لطفاً برای مشاهده فهرستی به‌روز به https://gitlab.archlinux.org/archlinux/mkinitcpio/mkinitcpio/-/issues مراجعه کنید.

دستور mkinitcpio توسط جامعه Arch Linux نگهداری می‌شود. برای مشاهده فهرست کامل مشارکت‌کنندگان به فایل AUTHORS مراجعه کنید.

حق نشر 🄯 مشارکت‌کنندگان mkinitcpio. مجوز GPL-2.0-only.

2026-08-11 mkinitcpio 41.1