DRACUT(8) dracut DRACUT(8)

dracut - ابزار سطح پایین برای ایجاد تصویر initramfs/initrd

dracut [گزینه...] [<تصویر> [<نسخه هسته>]]

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

ابزار dracut یک تصویر اولیه ایجاد می‌کند که توسط هسته برای بارگذاری اولیه ماژول‌های دستگاه‌های بلوکی (مانند IDE، SCSI یا RAID) که برای دسترسی به سیستم‌فایل ریشه، سوار کردن سیستم‌فایل ریشه و راه‌اندازی سیستم اصلی مورد نیاز است، به کار می‌رود.

هنگام راه‌اندازی، هسته آن آرشیو را در RAM disk استخراج کرده و آن را سوار کرده و به عنوان سیستم‌فایل ریشه اولیه استفاده می‌کند. تمام فرایند یافتن دستگاه ریشه در این فضای کاربری اولیه انجام می‌شود.

تصاویر initramfs با نام «initrd» نیز شناخته می‌شوند.

برای فهرست کامل گزینه‌های خط فرمان هسته، man:dracut.cmdline[7] را ببینید.

اگر هنگام راه‌اندازی initramfs به یک پوسته اضطراری منتقل شدید، فایل /run/initramfs/rdsosreport.txt ایجاد می‌شود که می‌توان آن را روی یک پارتیشن (که باید به صورت دستی سوار شود، معمولاً /boot) یا یک فلش USB ذخیره کرد. اطلاعات اشکال‌زدایی بیشتر را می‌توان با افزودن rd.debug به خط فرمان هسته تولید کرد. فایل /run/initramfs/rdsosreport.txt شامل تمام لاگ‌ها و خروجی برخی ابزارهاست و باید به هر گزارشی درباره مشکلات dracut پیوست شود.

انتظار می‌رود dracut به عنوان کاربر root اجرا شود تا در زمان ایجاد initramfs دسترسی نامحدود به سیستم‌فایل ریشه داشته باشد. اجرای dracut با هر کاربری غیر از root تنها از مجموعه محدودی از قابلیت‌ها پشتیبانی می‌کند. به عنوان مثال، فراهم کردن ورود امن با sulogin در کنسول اضطراری با رمز عبور میزبان، نیازمند دسترسی خواندن به /etc/shadow در سیستم میزبان است که معمولاً فقط برای کاربر root مجاز است.

برای ایجاد یک تصویر initramfs، ساده‌ترین دستور عبارت است از:

# dracut

این دستور یک تصویر initramfs همه‌منظوره با تمام قابلیت‌های ممکن ناشی از ترکیب ماژول‌های نصب‌شده dracut و ابزارهای سیستمی تولید می‌کند. این تصویر شامل ماژول‌های هسته فعال فعلی با نسخه <kernel-version> است. مکان پیش‌فرض تصویر توسط پیکربندی محلی یا سیاست‌های توزیع لینوکس تعیین می‌شود.

اگر تصویر initramfs از قبل وجود داشته باشد، dracut یک پیام خطا نمایش می‌دهد؛ و برای بازنویسی تصویر موجود، باید از گزینه --force استفاده کنید.

# dracut --force

اگر می‌خواهید نام فایل دیگری را برای تصویر خروجی مشخص کنید، دستوری مانند زیر را اجرا کنید:

# dracut foobar.img

برای ایجاد تصویر برای یک نسخه خاص از هسته، دستور به این صورت خواهد بود:

# dracut foobar.img 2.6.40-1.rc5.f20

یک روش میان‌بر برای ایجاد تصویر در مکان پیش‌فرض برای یک نسخه خاص از هسته:

# dracut --kver 2.6.40-1.rc5.f20

اگر می‌خواهید تصاویر initramfs سبک‌تر و کوچک‌تری ایجاد کنید، می‌توانید گزینه --hostonly یا -H را مشخص نمایید. با استفاده از این گزینه، تصویر حاصل تنها شامل آن دسته از ماژول‌های dracut، ماژول‌های هسته و سیستم‌های فایلی خواهد بود که برای راه‌اندازی این ماشین خاص لازم هستند. این کار این عیب را دارد که نمی‌توانید دیسک را به کنترلر یا ماشین دیگری منتقل کنید و بدون ایجاد مجدد تصویر initramfs، نمی‌توانید به یک سیستم‌فایل ریشه دیگر تغییر وضعیت دهید. توصیه می‌شود نسخه‌ای از یک تصویر همه‌منظوره (و هسته متناظر آن) را به عنوان نسخه پشتیبان برای نجات سیستم خود نگه دارید.

برای مشاهده محتویات تصویر ایجاد شده توسط dracut، می‌توانید از ابزار lsinitrd استفاده کنید.

# lsinitrd | less

برای نمایش محتویات یک فایل در initramfs نیز از ابزار lsinitrd استفاده کنید:

# lsinitrd -f /etc/ld.so.conf
include ld.so.conf.d/*.conf

برخی از ماژول‌های dracut به صورت پیش‌فرض غیرفعال هستند و باید به صورت دستی فعال شوند. می‌توانید این کار را با افزودن ماژول‌های dracut به فایل پیکربندی /etc/dracut.conf یا /etc/dracut.conf.d/myconf.conf انجام دهید. man:dracut.conf[5] را ببینید. همچنین می‌توانید با استفاده از گزینه -a یا --add در خط فرمان، ماژول‌های dracut را اضافه کنید:

# dracut --add module initramfs-module.img

برای مشاهده فهرستی از ماژول‌های در دسترس dracut، از گزینه --list-modules استفاده کنید:

# dracut --list-modules

نکته

ماژول‌های حذف‌شده (omitted) بر ماژول‌های افزوده اولویت خواهند داشت. می‌توان از --force-add
برای افزودن یک ماژول در حالت host-only استفاده کرد، حتی اگر به عنوان حذف‌شده مشخص شده باشد (معمولاً از طریق یک فایل پیکربندی توزیع).

گاهی اوقات به دلایل سرعت، حجم یا عملکرد مایل نیستید یک ماژول dracut در تصویر گنجانده شود. برای این کار، یا متغیر omit_dracutmodules را در فایل پیکربندی dracut.conf یا /etc/dracut.conf.d/myconf.conf مشخص کنید (man:dracut.conf[5] را ببینید) یا از گزینه -o یا --omit در خط فرمان استفاده کنید:

# dracut -o "multipath lvm" no-multipath-lvm.img

اگر در initramfs به یک ماژول هسته خاص نیاز دارید که به طور خودکار توسط dracut انتخاب نمی‌شود، باید از گزینه --add-drivers در خط فرمان یا متغیر drivers در فایل پیکربندی /etc/dracut.conf یا /etc/dracut.conf.d/myconf.conf استفاده کنید (man:dracut.conf[5] را ببینید):

# dracut --add-drivers mymod initramfs-with-mymod.img

یک initramfs تولیدشده بدون حالت «hostonly»، هیچ فایل پیکربندی سیستمی ندارد (به جز چند استثنای خاص)، بنابراین پیکربندی باید در خط فرمان هسته انجام شود. با این انعطاف‌پذیری، می‌توانید به راحتی سیستم را از یک پارتیشن ریشه تغییریافته راه‌اندازی کنید، بدون اینکه نیاز به کامپایل مجدد تصویر initramfs باشد. بنابراین، می‌توانید پارتیشن ریشه خود را کاملاً تغییر دهید (آن را به درون یک raid نرم‌افزاری md به همراه رمزنگاری و LVM روی آن منتقل کنید)، تا زمانی که LABEL یا UUID صحیح سیستم‌فایل را در خط فرمان هسته برای دستگاه ریشه خود مشخص کنید، dracut آن را پیدا کرده و از آن بوت خواهد شد.

فایل‌های سیستم‌فایل ریشه میزبان در دایرکتوری‌های /etc، /var یا /run تنها باید در حالت «hostonly» به initramfs تولیدشده کپی شوند، زیرا این دایرکتوری‌های میزبان برای شخصی‌سازی توسط کاربران برای هر میزبان در نظر گرفته شده‌اند. تنها فایل‌های میزبان از دایرکتوری /usr در سیستم‌فایل ریشه میزبان در هر دو حالت «hostonly» و «non-hostonly» در initramfs تولیدشده قرار می‌گیرند. به عنوان مثال فایل‌های /etc/fstab و /etc/cryptab تنها زمانی باید بررسی شوند که dracut در حالت «hostonly» اجرا شده باشد.

تنها استثنا در این قاعده، فایل /etc/dracut.conf و دایرکتوری /etc/dracut.conf.d/ است که در هر دو حالت «hostonly» و «non-hostonly» در نظر گرفته می‌شوند.

برخی از آرگومان‌های خط فرمان (مانند --include) می‌توانند حالت‌های پیش‌فرض «hostonly»/«non-hostonly» را لغو کنند.

تصاویر عمومی initrd حجیم‌تر هستند، اما باید بتوانند هر پیکربندی قابل بوتی را با پرچم‌های راه‌اندازی مناسب (دستگاه ریشه، اطلاعات پیکربندی شبکه و غیره) به صورت خودکار راه‌اندازی کنند.

خط فرمان هسته همچنین می‌تواند توسط سرور dhcp با گزینه root-path ارائه شود. بخش راه‌اندازی از طریق شبکه (NETWORK BOOT) را ببینید.

برای راهنمای جامع تمام پارامترهای خط فرمان هسته، man:dracut.cmdline[7] را ببینید.

برای شروع سریع با خط فرمان هسته مناسب برای سیستم خود، از گزینه --print-cmdline استفاده کنید:

# dracut --print-cmdline
 root=UUID=8b8b6f91-95c7-4da2-831b-171e12179081 rootflags=rw,relatime,discard,data=ordered rootfstype=ext4

این تنها گزینه‌ای است که dracut واقعاً برای راه‌اندازی از پارتیشن ریشه شما به آن نیاز دارد. از آنجا که پارتیشن ریشه شما می‌تواند در محیط‌های مختلفی قرار داشته باشد، قالب‌های متعددی برای گزینه root= وجود دارد. پایه‌ای‌ترین حالت root=<path to device node> است:

root=/dev/sda2

از آنجا که نام گره‌های دستگاه ممکن است بسته به ترتیب درایوها تغییر کند، توصیه می‌شود برای تعیین پارتیشن ریشه خود از شناسه سیستم‌فایل (UUID) یا برچسب سیستم‌فایل (LABEL) استفاده کنید:

root=UUID=19e9dda3-5a38-484d-a9b0-fa6b067d0331

یا

root=LABEL=myrootpartitionlabel

برای مشاهده تمام UUIDها یا LABELها در سیستم خود، اجرا کنید:

# ls -l /dev/disk/by-uuid

یا

# ls -l /dev/disk/by-label

اگر پارتیشن ریشه شما روی شبکه قرار دارد، بخش راه‌اندازی از طریق شبکه (NETWORK BOOT) را ببینید.

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

یک خط فرمان هسته معمولی به زبان آلمانی شامل موارد زیر خواهد بود:

rd.vconsole.font=eurlatgr rd.vconsole.keymap=de-latin1-nodeadkeys rd.locale.LANG=de_DE.UTF-8

در صورت استفاده از یک سیستم init نوین مانند systemd، تنظیم این گزینه‌ها می‌تواند تنظیمات ذخیره‌شده در سیستم شما را لغو و بازنویسی کند.

گاهی اوقات لازم است از بارگذاری خودکار یک ماژول هسته خاص جلوگیری شود. برای این کار، کافی است rd.driver.blacklist=<kernel module name> را (به طوری که <kernel module name> فاقد پسوند .ko باشد) به خط فرمان هسته اضافه کنید. برای مثال:

rd.driver.blacklist=mptsas rd.driver.blacklist=nouveau

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

اگر می‌خواهید فرایند راه‌اندازی را تسریع کنید، می‌توانید تا حد امکان اطلاعات بیشتری را در خط فرمان هسته برای dracut مشخص کنید. برای مثال، می‌توانید به dracut بگویید که پارتیشن ریشه شما روی یک حجم LVM یا یک پارتیشن raid قرار ندارد، یا درون یک حجم رمزنگاری‌شده خاص crypto LUKS واقع شده است. به طور پیش‌فرض، dracut همه جا را جستجو می‌کند. یک خط فرمان هسته معمولی dracut برای یک پارتیشن ساده اولیه یا منطقی شامل موارد زیر است:

rd.luks=0 rd.lvm=0 rd.md=0 rd.dm=0

این کار تمام سرهم‌بندی خودکار LVM، آرایه‌های MD raid، آرایه‌های DM raid و crypto LUKS را غیرفعال می‌کند.

البته می‌توانید ماژول‌های dracut را در فرایند ایجاد initramfs نیز حذف کنید، اما در این صورت امکان فعال کردن مجدد آن‌ها بر حسب تقاضا را از دست خواهید داد.

برای افزودن فایل‌های سفارشی خود به تصویر initramfs، چندین روش پیش رو دارید.

گزینه --include به شما امکان می‌دهد یک مسیر مبدأ و یک مسیر مقصد مشخص کنید. به عنوان مثال:

# dracut --include cmdline-preset /etc/cmdline.d/50-mycmdline.conf initramfs-cmdline-pre.img

یک تصویر initramfs ایجاد می‌کند که در آن فایل cmdline-preset به درون initramfs در مسیر /etc/cmdline.d/50-mycmdline.conf کپی خواهد شد.

# mkdir -p rd.overlay/etc/cmdline.d
# mkdir -p rd.overlay/etc/conf.d
# echo "ip=dhcp" >> rd.overlay/etc/cmdline.d/50-mycmdline.conf
# echo export FOO=testtest >> rd.overlay/etc/conf.d/testvar.conf
# echo export BAR=testtest >> rd.overlay/etc/conf.d/testvar.conf
# tree rd.overlay/
rd.overlay/
`-- etc
    |-- cmdline.d
    |   `-- 50-mycmdline.conf
    `-- conf.d
        `-- testvar.conf
# dracut --include rd.overlay / initramfs-rd.overlay.img

این دستور محتویات دایرکتوری rd.overlay را در ریشه تصویر initramfs قرار می‌دهد.

گزینه --install به شما امکان می‌دهد چندین فایل را مشخص کنید تا در تصویر initramfs در همان مکانی که در زمان ساخت initramfs وجود دارند، نصب شوند.

# dracut --install 'strace fsck.ext4 ssh' initramfs-dbg.img

این دستور یک initramfs با فایل‌های اجرایی strace، fsck.ext4 و ssh به همراه کتابخانه‌های مورد نیاز برای اجرای آن‌ها ایجاد می‌کند. گزینه --install می‌تواند چندین بار مشخص شود.

اگر پارتیشن ریشه شما روی یک درایو تحت شبکه قرار دارد، برای ایجاد تصویر initramfs آگاه از شبکه، باید ماژول‌های شبکه dracut را نصب داشته باشید.

اگر ip=dhcp را در خط فرمان هسته مشخص کنید، dracut از یک سرور dhcp آدرس IP ماشین را درخواست می‌کند. سرور dhcp همچنین می‌تواند یک root-path اضافی ارائه دهد که دستگاه ریشه را برای dracut مشخص می‌کند. با این سازوکار، شما یک پیکربندی ایستا روی ماشین کارخواه و یک پیکربندی راه‌اندازی متمرکز روی سرور TFTP/DHCP خود خواهید داشت. اگر نمی‌توانید خط فرمان هسته را ارسال کنید، می‌توانید فایل /etc/cmdline.d/50-mycmdline.conf را با روش توضیح‌داده‌شده در بخش تزریق فایل‌های سفارشی (INJECTING CUSTOM FILES) تزریق نمایید.

برای کاهش حجم initramfs، باید آن را با صرف‌نظر کردن از تمام ماژول‌های dracut که می‌دانید برای راه‌اندازی ماشین نیازی به آن‌ها نیست، ایجاد کنید.

همچنین می‌توانید دقیقاً ماژول‌های dracut و ماژول‌های هسته مورد نظر را مشخص کنید تا تصویر initramfs بسیار کم‌حجمی تولید شود.

برای مثال، برای یک تصویر NFS می‌توانید دستور زیر را اجرا کنید:

# dracut -m "nfs network base" initramfs-nfs-only.img

سپس می‌توانید ماشین مقصد را با این تصویر راه‌اندازی کرده و با ایجاد مجدد آن روی ماشین مقصد با استفاده از گزینه --host-only حجم آن را باز هم کاهش دهید:

# dracut -m "nfs network base" --host-only initramfs-nfs-host-only.img

این کار حجم تصویر initramfs را به میزان چشمگیری کاهش می‌دهد.

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

1.عبارت‌های 'splash' و 'quiet' را از خط فرمان هسته حذف کنید
2.عبارت 'rd.shell' را به خط فرمان هسته اضافه کنید. با این کار، در صورتی که dracut نتواند دستگاه ریشه شما را پیدا کند، یک پوسته ارائه می‌شود
3.عبارت 'rd.shell rd.debug log_buf_len=1M' را به خط فرمان هسته اضافه کنید تا دستورات پوسته dracut هم‌زمان با اجرا چاپ شوند
4.فایل /run/initramfs/rdsosreport.txt ایجاد می‌شود که حاوی تمام لاگ‌ها و خروجی تمام ابزارهای مهمی است که در ادامه ذکر شده‌اند.

اگر می‌خواهید آن خروجی را ذخیره کنید، کافی است /boot را به صورت دستی سوار کنید یا یک حافظه فلش USB متصل کرده و آن را سوار نمایید. سپس می‌توانید خروجی را برای بررسی‌های بعدی ذخیره کنید.

در همه موارد، موارد زیر باید در گزارش باگ شما ذکر و پیوست شوند:

•خط فرمان دقیق هسته مورد استفاده؛ معمولاً برگرفته از فایل پیکربندی بوت‌لودر (مانند /boot/grub2/grub.cfg) یا از /proc/cmdline.
•یک نسخه از اطلاعات پارتیشن‌های دیسک شما از /etc/fstab که ممکن است با راه‌اندازی یک initramfs سالم قدیمی یا یک رسانه نجات به دست آید.
•اشکال‌زدایی dracut را فعال کنید (بخش اشکال‌زدایی dracut را ببینید)، و فایل /run/initramfs/rdsosreport.txt را پیوست نمایید.
•اگر از فایل پیکربندی dracut استفاده می‌کنید، لطفاً /etc/dracut.conf و تمام فایل‌های موجود در /etc/dracut.conf.d/*.conf را ضمیمه کنید.

این بخش اطلاعاتی را شرح می‌دهد که باید در زمان بروز مشکل در سیستمی که دستگاه ریشه آن روی یک حجم متصل به شبکه قرار دارد (مانند iSCSI، NFS یا NBD) درج شوند. علاوه بر اطلاعات بخش «همه گزارش‌های باگ»، اطلاعات زیر را نیز ضمیمه کنید:

•لطفاً خروجی دستورات زیر را ضمیمه کنید:
# /sbin/ifup <interfacename>
# ip addr show

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

1.ابتدا، خروجی کنسول سریال را برای هر دو مورد هسته و بوت‌لودر فعال کنید.
2.فایل /boot/grub2/grub.cfg را برای ویرایش باز کنید. در زیر خط 'timeout=5'، موارد زیر را اضافه کنید:
serial --unit=0 --speed=9600
terminal --timeout=5 serial console
3.همچنین در /boot/grub2/grub.cfg، آرگومان‌های بوت زیر را به خط 'kernel' اضافه کنید:
console=tty0 console=ttyS0,9600
4.پس از اتمام، فایل /boot/grub2/grub.cfg باید شبیه به مثال زیر باشد.
default=0
timeout=5
serial --unit=0 --speed=9600
terminal --timeout=5 serial console
title Fedora (2.6.29.5-191.fc11.x86_64)
  root (hd0,0)
  kernel /vmlinuz-2.6.29.5-191.fc11.x86_64 ro root=/dev/mapper/vg_uc1-lv_root console=tty0 console=ttyS0,9600
  initrd /dracut-2.6.29.5-191.fc11.x86_64.img
5.اطلاعات دقیق‌تر درباره نحوه پیکربندی هسته برای خروجی کنسول در پیوند زیر در دسترس است: http://www.faqs.org/docs/Linux-HOWTO/Remote-Serial-Console-HOWTO.html#CONFIGURE-KERNEL.
6.هدایت خروجی‌های غیرتعاملی

نکته

می‌توانید تمام خروجی‌های غیرتعاملی را با اجرای دستور زیر به /dev/kmsg هدایت کنید؛ هسته پس از رسیدن پیام‌ها به بافر هسته، آن‌ها را در کنسول نمایش می‌دهد:

# exec >/dev/kmsg 2>&1 </dev/console

ابزار dracut در صورت عدم موفقیت در مکان‌یابی سیستم فایل ریشه، یک شل برای اشکال‌زدایی تعاملی ارائه می‌دهد. برای فعال‌سازی این شل:

1.پارامتر بوت 'rd.shell' را به فایل پیکربندی بوت‌لودر خود (مانند /boot/grub2/grub.cfg) اضافه کنید.
2.آرگومان‌های بوت 'splash' و 'quiet' را حذف کنید.

یک نمونه فایل پیکربندی بوت‌لودر /boot/grub2/grub.cfg در زیر آورده شده است.

default=0
timeout=5
serial --unit=0 --speed=9600
terminal --timeout=5 serial console
title Fedora (2.6.29.5-191.fc11.x86_64)
  root (hd0,0)
  kernel /vmlinuz-2.6.29.5-191.fc11.x86_64 ro root=/dev/mapper/vg_uc1-lv_root console=tty0 rd.shell
  initrd /dracut-2.6.29.5-191.fc11.x86_64.img
3.اگر بوت سیستم ناموفق باشد، مطابق با مثال زیر به یک شل هدایت خواهید شد.
No root device found
Dropping to debug shell.
#
4.از این اعلان شل برای جمع‌آوری اطلاعات خواسته‌شده در بالا استفاده کنید (بخش All bug reports را ببینید).

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

•یک دستگاه بلوکی (مانند /dev/sda7)
•یک حجم منطقی LVM (مانند /dev/VolGroup00/LogVol00)
•یک دستگاه رمزنگاری‌شده (مانند /dev/mapper/luks-4d5972ea-901c-4584-bd75-1da802417d83)
•یک دستگاه متصل به شبکه (مانند netroot=iscsi:@192.168.0.4::3260::iqn.2009-02.org.example:for.all)

روش دقیق مکان‌یابی و آماده‌سازی متفاوت خواهد بود. با این حال، برای ادامه یک بوت موفق، هدف یافتن حجم ریشه و ایجاد پیوند نمادین /dev/root است که به سیستم فایل اشاره کند. برای مثال، نمونه زیر نحوه دسترسی و بوت کردن یک حجم ریشه را که یک حجم منطقی رمزنگاری‌شده LVM است نشان می‌دهد.

1.پارتیشن‌های خود را با استفاده از parted بررسی کنید
# parted /dev/sda -s p
Model: ATA HTS541060G9AT00 (scsi)
Disk /dev/sda: 60.0GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number  Start   End     Size    Type      File system  Flags
1      32.3kB  10.8GB  107MB   primary   ext4         boot
2      10.8GB  55.6GB  44.7GB  logical                lvm
2.به یاد می‌آورید که حجم ریشه شما یک حجم منطقی LVM بوده است. حجم‌های منطقی را اسکن و فعال کنید.
# lvm vgscan
# lvm vgchange -ay
3.اکنون باید تمام حجم‌های منطقی را با استفاده از دستور blkid مشاهده کنید:
# blkid
/dev/sda1: UUID="3de247f3-5de4-4a44-afc5-1fe179750cf7" TYPE="ext4"
/dev/sda2: UUID="Ek4dQw-cOtq-5MJu-OGRF-xz5k-O2l8-wdDj0I" TYPE="LVM2_member"
/dev/mapper/linux-root: UUID="def0269e-424b-4752-acf3-1077bf96ad2c" TYPE="crypto_LUKS"
/dev/mapper/linux-home: UUID="c69127c1-f153-4ea2-b58e-4cbfa9257c5e" TYPE="ext4"
/dev/mapper/linux-swap: UUID="47b4d329-975c-4c08-b218-f9c9bf3635f1" TYPE="swap"
4.از خروجی بالا متوجه می‌شوید که حجم ریشه شما روی یک دستگاه بلوکی رمزنگاری‌شده قرار دارد. با پیروی از راهنمای رمزنگاری دیسک در Installation Guide، قفل حجم ریشه رمزنگاری‌شده خود را باز کنید.
# UUID=$(cryptsetup luksUUID /dev/mapper/linux-root)
# cryptsetup luksOpen /dev/mapper/linux-root luks-$UUID
Enter passphrase for /dev/mapper/linux-root:
Key slot 0 unlocked.
5.در مرحله بعد، یک پیوند نمادین به حجم ریشه باز شده ایجاد کنید
# ln -s /dev/mapper/luks-$UUID /dev/root
6.با در دسترس قرار گرفتن حجم ریشه، می‌توانید با خروج از شل dracut به بوت سیستم ادامه دهید
# exit

برای مشاهده گزینه‌های اشکال‌زدایی بیشتر، man:dracut.cmdline[7] را ببینید.

برای اشکال‌زدایی توالی خاموش شدن در سیستم‌های مبتنی بر systemd، می‌توانید از rd.break روی pre-shutdown یا shutdown استفاده کنید.

برای انجام این کار در یک سیستم از قبل بوت‌شده:

# mkdir -p /run/initramfs/etc/cmdline.d
# echo "rd.debug rd.break=pre-shutdown rd.break=shutdown" > /run/initramfs/etc/cmdline.d/debug.conf
# touch /run/initramfs/.need_shutdown

این کار پس از انتقال ریشه (pivot) مجدد سیستم به initramfs، یک شل dracut در اختیارتان قرار می‌دهد.

--kver <kernel version>

نسخه هسته را مشخص می‌کند. این امکان را فراهم می‌کند که نسخه هسته را بدون مشخص کردن مکان تصویر initramfs تعیین کنید. برای مثال:
# dracut --kver 3.5.0-0.rc7.git1.2.fc18.x86_64

-f, --force

بازنویسی فایل initramfs موجود.

<output file> --rebuild

آرگومان‌های فعلی را به آرگومان‌هایی که تصویر initramfs ورودی با آن‌ها ساخته شده بود، اضافه می‌کند. این گزینه به ساخت افزایشی initramfs جهت آزمایش کمک می‌کند. در صورتی که <output file> اختیاری ارائه نشود، initramfs ورودی داده شده برای بازسازی، به عنوان فایل خروجی استفاده خواهد شد.

-a, --add <list of dracut modules>

فهرستی از ماژول‌های dracut جداشده با فاصله را به مجموعه ماژول‌های پیش‌فرض اضافه می‌کند. اگر ماژولی در هر دو فهرست add و omit ظاهر شود، نادیده گرفته خواهد شد. این پارامتر می‌تواند چندین بار مشخص شود.

نکته

اگر فهرست دارای چندین آرگومان باشد، باید آن‌ها را داخل نقل‌قول قرار دهید. برای مثال:

# dracut --add "module1 module2"  ...

--force-add <list of dracut modules>

فهرستی از ماژول‌های dracut جداشده با فاصله که هنگام مشخص شدن حالت host-only (-H) به مجموعه ماژول‌های پیش‌فرض پیوست می‌شود. بر خلاف --add، گزینه --force-add ماژول‌های حذف‌شده (-o) را override (نادیده گرفته و جایگزین) می‌کند؛ بنابراین برای اطمینان از اضافه شدن یک ماژول حتی اگر در فایل‌های پیکربندی به عنوان حذف‌شده مشخص شده باشد، مفید است. این پارامتر می‌تواند چندین بار مشخص شود.

نکته

اگر فهرست دارای چندین آرگومان باشد، باید آن‌ها را داخل نقل‌قول قرار دهید. برای مثال:

# dracut --force-add "module1 module2"  ...

-o, --omit <list of dracut modules>

حذف فهرستی از ماژول‌های dracut جداشده با فاصله. این پارامتر می‌تواند چندین بار مشخص شود. هشدار: از حذف دستی ماژول‌های dracut خودداری کنید، زیرا ممکن است ندانسته ماژول‌های ضروری را حذف کنید که dracut قادر به تشخیص یا هشدار دادن درباره آن‌ها نیست. استفاده از این گزینه توصیه نمی‌شود و مسئولیت آن بر عهده خودتان است.

نکته

اگر فهرست دارای چندین آرگومان باشد، باید آن‌ها را داخل نقل‌قول قرار دهید. برای مثال:

# dracut --omit "module1 module2"  ...

-m, --modules <list of dracut modules>

مشخص کردن فهرستی از ماژول‌های dracut جداشده با فاصله برای فراخوانی هنگام ساخت initramfs. ماژول‌ها در /usr/lib/dracut/modules.d قرار دارند. این پارامتر می‌تواند چندین بار مشخص شود. این گزینه dracut را مجبور می‌کند فقط ماژول‌های مشخص‌شده dracut را شامل کند. در بیشتر موارد، گزینه "--add" همان چیزی است که می‌خواهید استفاده کنید. استفاده از این گزینه توصیه نمی‌شود (مسئولیت استفاده با خودتان است).

نکته

اگر فهرست دارای چندین آرگومان باشد، باید آن‌ها را داخل نقل‌قول قرار دهید. برای مثال:

# dracut --modules "module1 module2"  ...

-d, --drivers <list of kernel modules>

مشخص کردن فهرستی از ماژول‌های هسته جداشده با فاصله برای گنجاندن انحصاری در initramfs. ماژول‌های هسته باید بدون پسوند ".ko" مشخص شوند. این پارامتر می‌تواند چندین بار مشخص شود. این گزینه dracut را مجبور می‌کند فقط ماژول‌های هسته مشخص‌شده را شامل کند. در بیشتر موارد، گزینه "--add-drivers" همان چیزی است که می‌خواهید استفاده کنید. استفاده از این گزینه توصیه نمی‌شود (مسئولیت استفاده با خودتان است).

نکته

اگر فهرست دارای چندین آرگومان باشد، باید آن‌ها را داخل نقل‌قول قرار دهید. برای مثال:

# dracut --drivers "kmodule1 kmodule2"  ...

--add-drivers <list of kernel modules>

مشخص کردن فهرستی از ماژول‌های هسته جداشده با فاصله جهت اضافه شدن به initramfs. ماژول‌های هسته باید بدون پسوند ".ko" مشخص شوند. این پارامتر می‌تواند چندین بار مشخص شود.

نکته

اگر فهرست دارای چندین آرگومان باشد، باید آن‌ها را داخل نقل‌قول قرار دهید. برای مثال:

# dracut --add-drivers "kmodule1 kmodule2"  ...

--force-drivers <list of kernel modules>

مشابه add-drivers در بالا؛ اما در این حالت اطمینان حاصل می‌شود که تلاش برای بارگذاری زودهنگام درایورها از طریق modprobe انجام می‌گیرد.

نکته

اگر فهرست دارای چندین آرگومان باشد، باید آن‌ها را داخل نقل‌قول قرار دهید. برای مثال:

# dracut --force-drivers "kmodule1 kmodule2"  ...

--omit-drivers <list of kernel modules>

مشخص کردن فهرستی از ماژول‌های هسته جداشده با فاصله جهت اضافه نشدن به initramfs. ماژول‌های هسته باید بدون پسوند ".ko" مشخص شوند. این پارامتر می‌تواند چندین بار مشخص شود.

نکته

اگر فهرست دارای چندین آرگومان باشد، باید آن‌ها را داخل نقل‌قول قرار دهید. برای مثال:

# dracut --omit-drivers "kmodule1 kmodule2"  ...

--filesystems <list of filesystems>

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

نکته

اگر فهرست دارای چندین آرگومان باشد، باید آن‌ها را داخل نقل‌قول قرار دهید. برای مثال:

# dracut --filesystems "filesystem1 filesystem2"  ...

-k, --kmoddir <kernel directory>

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

--fwdir <dir>[:<dir>...]++

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

--libdirs <list of directories>

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

نکته

اگر فهرست دارای چندین آرگومان باشد، باید آن‌ها را داخل نقل‌قول قرار دهید. برای مثال:

# dracut --libdirs "dir1 dir2"  ...

--kernel-cmdline <parameters>

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

--kernel-only

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

--no-kernel

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

--early-microcode

ترکیب میکروکد زودهنگام با ramdisk.

--no-early-microcode

میکروکد زودهنگام را با ramdisk ترکیب نمی‌کند.

--print-cmdline

چاپ بخشی از خط فرمان هسته که برای بوت با چیدمان دیسک فعلی لازم است. این گزینه تمام گزینه‌های خط فرمان هسته را که ممکن است dracut به initrd اضافه کند، بازنمی‌گرداند.

--mdadmconf

شامل کردن فایل محلی /etc/mdadm.conf.

--nomdadmconf

شامل نکردن فایل محلی /etc/mdadm.conf.

--lvmconf

شامل کردن فایل محلی /etc/lvm/lvm.conf.

--nolvmconf

شامل نکردن فایل محلی /etc/lvm/lvm.conf.

--fscks <list of fsck tools>

افزودن فهرستی از ابزارهای fsck جداشده با فاصله، علاوه بر موارد مشخص‌شده در dracut.conf؛ نصب به صورت فرصت‌طلبانه است (ابزارهایی که وجود ندارند نادیده گرفته می‌شوند).

نکته

اگر فهرست دارای چندین آرگومان باشد، باید آن‌ها را داخل نقل‌قول قرار دهید. برای مثال:

# dracut --fscks "fsck.foo barfsck"  ...

--nofscks

جلوگیری از نصب هرگونه ابزار fsck.

--strip

حذف نمادهای خطایابی (strip) فایل‌های باینری در initramfs (پیش‌فرض).

--aggressive-strip

حذف نمادها و بخش‌های بیشتر علاوه بر نمادهای خطایابی، جهت کاهش بیشتر حجم initramfs. گزینه --strip نیز باید مشخص شده باشد.

--nostrip

عدم حذف نمادهای خطایابی فایل‌های باینری در initramfs.

--hardlink

ایجاد پیوند سخت (hardlink) برای فایل‌ها در initramfs (پیش‌فرض).

--nohardlink

عدم ایجاد پیوند سخت برای فایل‌ها در initramfs.

--prefix <dir>

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

--noprefix

عدم افزودن پیشوند به مسیر فایل‌های initramfs (پیش‌فرض).

-h, --help

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

--debug

نمایش اطلاعات خطایابی از فرایند ساخت.

-v, --verbose

افزایش سطح جزئیات خروجی (پیش‌فرض (3)warnings). می‌تواند چندین بار مشخص شود.

--version

نمایش نسخه و خروج.

-q, --quiet

کاهش سطح جزئیات خروجی (پیش‌فرض (3)warnings). می‌تواند چندین بار مشخص شود.

-c, --conf <dracut configuration file>

مشخص کردن فایل پیکربندی مورد استفاده.

پیش‌فرض: /etc/dracut.conf

--confdir <configuration directory>

مشخص کردن دایرکتوری پیکربندی مورد استفاده.

پیش‌فرض: /etc/dracut.conf.d

--add-confdir <configuration directory>

افزودن دایرکتوری پیکربندی اضافی برای بارگذاری فایل‌های *.conf. در صورت عدم وجود دایرکتوری، زیردایرکتوری مربوطه در confdir جستجو می‌شود.

پیش‌فرض: خالی

--tmpdir <temporary directory>

مشخص کردن دایرکتوری موقت مورد استفاده.

پیش‌فرض: /var/tmp

-r, --sysroot <sysroot directory>

مشخص کردن دایرکتوری sysroot جهت جمع‌آوری فایل‌ها. این گزینه برای ایجاد تصویر initramfs از یک دایرکتوری sysroot همگردانی متقابل شده (cross-compiled) کاربرد دارد. برای متغیرهای کمکی اضافی، بخش متغیرهای محیطی (ENVIRONMENT) در ادامه را ببینید.

پیش‌فرض: خالی

--sshkey <sshkey file>

فایل کلید SSH مورد استفاده با ماژول ssh-client.

--logfile <logfile>

فایل لاگ مورد استفاده؛ تنظیمات فایل‌های پیکربندی را بازنویسی می‌کند.

پیش‌فرض: /var/log/dracut.log

-l, --local

فعال‌سازی حالت محلی. dracut به جای ماژول‌های نصب‌شده سیستمی در /usr/lib/dracut/modules.d، از ماژول‌های دایرکتوری کاری جاری استفاده خواهد کرد. این گزینه هنگام اجرای dracut از یک مخزن گیت کاربردی است.

-H, --hostonly

حالت مختص میزبان (host-only): نصب فایل‌ها از سیستم‌فایل ریشه میزبان، از جمله دایرکتوری‌های سفارشی‌شده توسط مدیران سیستم و کاربران مانند /etc و تولید پیکربندی مختص میزبان (پیش‌فرض). تاب‌آوری initramfs تولیدشده در برابر تغییرات جزئی سخت‌افزار توسط hostonly-mode کنترل می‌شود.

هشدار

در صورت chroot به ریشه‌ای غیر از دستگاه ریشه واقعی، از "--fstab" استفاده کرده و یک /etc/fstab معتبر ارائه دهید.

-N, --no-hostonly

غیرفعال‌سازی حالت host-only.

--hostonly-mode <mode>

مشخص کردن حالت host-only مورد استفاده. مقدار <mode> می‌تواند یکی از موارد "sloppy" یا "strict" باشد. در حالت "sloppy"، درایورها و ماژول‌های اضافی نصب می‌شوند تا تغییرات جزئی سخت‌افزار (مانند تغییر صفحه‌کلید) مانع از بوت شدن تصویر نشود و تصویر همچنان بین میزبان‌های مشابه قابل انتقال بماند. با فعال بودن حالت "strict"، مواردی که برای بوت میزبان محلی در وضعیت فعلی ضروری نیستند گنجانده نخواهند شد و ماژول‌ها برای صرفه‌جویی بیشتر در فضا کارهای اضافی انجام می‌دهند. تغییرات جزئی در سخت‌افزار یا محیط می‌تواند تصویر را غیرقابل بوت کند.

پیش‌فرض: sloppy

--hostonly-cmdline

اجازه به ماژول‌های dracut جهت تولید و ذخیره آرگومان‌های initrd مختص میزبان. این آرگومان‌ها در دایرکتوری etc/cmdline.d داخل initrd تولیدشده ذخیره خواهند شد. آرگومان‌های خط فرمان هسته (مشخص‌شده توسط بارگذار بوت یا UKI) نسبت به آرگومان‌های initrd تولیدشده توسط ماژول‌های dracut اولویت دارند. برای مثال ماژول dracut به نام rootfs-block می‌تواند آرگومان خط فرمان initrd از نوع root= را در دایرکتوری etc/cmdline.d ذخیره کند، که در صورت عدم تعیین در /proc/cmdline، دستگاه ریشه را تنظیم می‌کند.

--no-hostonly-cmdline

عدم ذخیره آرگومان‌های خط فرمان هسته مورد نیاز در initramfs. تضمین می‌کند که ماژول‌های dracut مجاز به تولید و ذخیره آرگومان‌های initrd مختص میزبان در دایرکتوری etc/cmdline.d داخل initrd تولیدشده نباشند.

--no-hostonly-default-device

عدم تولید دستگاه‌های پیش‌فرض ضمنی میزبان مانند swap ،root، fstab و غیره. از "--mount" یا "--add-device" جهت افزودن صریح دستگاه‌ها بر حسب نیاز استفاده کنید.

--hostonly-i18n

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

--no-hostonly-i18n

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

--hostonly-nics <list of nics>

تنها فعال‌سازی کارت‌های شبکه (NIC) فهرست‌شده در initramfs. این فهرست می‌تواند خالی باشد تا سایر ماژول‌ها تنها درایورهای شبکه ضروری را نصب کنند.

--persistent-policy <policy>

استفاده از <policy> جهت آدرس‌دهی دیسک‌ها و پارتیشن‌ها. مقدار <policy> می‌تواند هر نام دایرکتوری موجود در /dev/disk (مانند "by-uuid"، "by-label") یا "mapper" برای استفاده از نام دستگاه‌های /dev/mapper باشد (پیش‌فرض).

--fstab

استفاده از /etc/fstab به جای /proc/self/mountinfo.

--add-fstab <filename>

افزودن مدخل‌های <filename> به /etc/fstab در initramfs.

--mount "<device> <mountpoint> <filesystem type> [<filesystem options> [<dump frequency> [<fsck order>]]]"

سوار کردن <device> روی <mountpoint> با سیستم‌فایل <filesystem type> در initramfs. گزینه‌های <filesystem options>، <dump options> و <fsck order> قابل تعیین هستند؛ برای جزئیات به صفحه راهنمای fstab مراجعه کنید. مقدار پیش‌فرض <filesystem options> برابر با "defaults" است. مقدار پیش‌فرض <dump frequency> برابر با "0" است. مقدار پیش‌فرض <fsck order> برابر با "2" است.

--mount "<mountpoint>"

مشابه بالا، با این تفاوت که <device>، <filesystem type> و <filesystem options> با بررسی مانت‌های فعلی سیستم تعیین می‌شوند.

--add-device <device>

راه‌اندازی <device> در initramfs؛ مقدار <device> باید نام دستگاه باشد. این گزینه در حالت host-only جهت پشتیبانی از resume در مواقعی که swap روی LVM یا یک پارتیشن رمزنگاری‌شده قرار دارد مفید است. [نکته: جهت سازگاری با نسخه‌های پیشین می‌توان از --device استفاده کرد]

-i, --include <SOURCE> <TARGET>

گنجاندن فایل‌های دایرکتوری SOURCE در دایرکتوری TARGET در initramfs نهایی. اگر SOURCE یک فایل باشد، در TARGET در initramfs نهایی نصب می‌شود. این پارامتر می‌تواند چندین بار مشخص شود.

-I, --install <file list>

نصب فهرست فایل‌های جداشده با فاصله در initramfs.

نکته

اگر فهرست دارای چندین آرگومان است، باید آن‌ها را داخل علامت نقل‌قول قرار دهید. برای مثال:

# dracut --install "/bin/foo /sbin/bar"  ...

--remove <file/dir list>

حذف فهرستی از فایل‌ها و دایرکتوری‌های جداشده با فاصله از initramfs. این مقادیر file/dir الگوهای عام شل هستند (صفحه راهنمای glob(7) را ببینید).

--install-optional <file list>

نصب فهرست فایل‌های جداشده با فاصله در initramfs، در صورت وجود داشتن.

--gzip

فشرده‌سازی initramfs تولیدشده با استفاده از gzip.

هشدار

اطمینان حاصل کنید که هسته شما با پشتیبانی از بازگشایی فشرده‌سازی gzip کامپایل شده باشد، در غیر این صورت سیستم قادر به بوت نخواهد بود. معادل با "--compress=gzip -9".

--bzip2

فشرده‌سازی initramfs تولیدشده با استفاده از bzip2.

هشدار

اطمینان حاصل کنید که هسته شما با پشتیبانی از بازگشایی فشرده‌سازی bzip2 کامپایل شده باشد، در غیر این صورت سیستم قادر به بوت نخواهد بود. معادل با "--compress=bzip2 -9".

--lzma

فشرده‌سازی initramfs تولیدشده با استفاده از lzma.

هشدار

اطمینان حاصل کنید که هسته شما با پشتیبانی از بازگشایی فشرده‌سازی lzma کامپایل شده باشد، در غیر این صورت سیستم قادر به بوت نخواهد بود. معادل با "--compress=lzma -9 -T0".

--xz

فشرده‌سازی initramfs تولیدشده با استفاده از xz.

هشدار

اطمینان حاصل کنید که هسته شما با پشتیبانی از بازگشایی فشرده‌سازی xz کامپایل شده باشد، در غیر این صورت سیستم قادر به بوت نخواهد بود. معادل با
"--compress=xz --check=crc32 --lzma2=dict=1MiB -T0".

--lzo

فشرده‌سازی تصویر initramfs تولید شده با استفاده از lzop.

هشدار

مطمئن شوید که هسته شما با پشتیبانی از فشرده‌سازی‌گشایی lzo کامپایل شده است، در غیر این صورت قادر به بوت نخواهید بود. معادل با "--compress=lzop -9".

--lz4

فشرده‌سازی تصویر initramfs تولید شده با استفاده از lz4.

هشدار

مطمئن شوید که هسته شما با پشتیبانی از فشرده‌سازی‌گشایی lz4 کامپایل شده است، در غیر این صورت قادر به بوت نخواهید بود. معادل با "--compress=lz4 -l -9".

--zstd

فشرده‌سازی تصویر initramfs تولید شده با استفاده از Zstandard.

هشدار

مطمئن شوید که هسته شما با پشتیبانی از فشرده‌سازی‌گشایی zstd کامپایل شده است، در غیر این صورت قادر به بوت نخواهید بود. معادل با "--compress=zstd -15 -q -T0".

--compress <compressor>

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

--squash-compressor <compressor>

فشرده‌سازی تصویر squashfs با استفاده از فشرده‌ساز پاس‌داده‌شده و گزینه‌های اختصاصی فشرده‌ساز برای mksquashfs. برای فشرده‌سازهای پشتیبانی‌شده و گزینه‌های اختصاصی فشرده‌ساز می‌توانید به راهنمای mksquashfs مراجعه کنید. اگر ماژول squash هنگام ساخت initramfs فراخوانی نشود، این گزینه تأثیری نخواهد داشت.

--no-compress

عدم فشرده‌سازی تصویر initramfs تولید شده. این گزینه بر تمام گزینه‌های فشرده‌سازی دیگر اولویت دارد.

--reproducible

ایجاد تصاویر بازتولیدپذیر (تکرارپذیر).

--no-reproducible

عدم ایجاد تصاویر بازتولیدپذیر.

--list-modules

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

-M, --show-modules

چاپ نام ماژول‌های گنجانده‌شده در خروجی استاندارد در حین ساخت.

--keep

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

--printconfig

چاپ پیکربندی محاسبه‌شده و خروج.

--printsize

چاپ حجم نصب ماژول‌ها.

--profile

خروجی اطلاعات پروفایل‌سازی فرایند ساخت.

--ro-mnt

مانت کردن / و /usr به صورت فقط‌خواندنی به‌طور پیش‌فرض.

-L, --stdlog <level>

[0-6] تعیین سطح ثبت گزارش (در خطای استاندارد).
0 - جلوگیری از نمایش تمامی پیام‌ها
1 - فقط خطاهای مهلک
2 - تمام خطاها
3 - هشدارها
4 - اطلاعات (info)
5 - اطلاعات اشکال‌زدایی (شروع خروجی حجیم)
6 - اطلاعات ردگیری (و حتی بیشتر)

--regenerate-all

تولید مجدد تمامی تصاویر initramfs در مکان پیش‌فرض با نسخه‌های هسته یافت‌شده در سیستم. پارامترهای اضافی به آن منتقل می‌شوند.

-p, --parallel

تلاش برای اجرای موازی وظایف. در حال حاضر فقط با --regenerate-all پشتیبانی می‌شود (ساخت همزمان تصاویر initramfs برای تمام نسخه‌های هسته).

--noimageifnotneeded


در حالت host-only، در صورتی که به هیچ درایور هسته‌ای نیاز نباشد و هیچ /etc/cmdline/*.conf در initramfs تولید نشود، تصویری ایجاد نشود.

--loginstall <directory>

ثبت گزارش تمامی فایل‌های نصب‌شده از میزبان در <directory>.

--uefi

به جای ایجاد تصویر initramfs، دستور dracut یک فایل اجرایی UEFI ایجاد می‌کند که توسط UEFI BIOS قابل اجرا است. نام فایل خروجی پیش‌فرض <EFI>/EFI/Linux/linux-$kernel$-<MACHINE_ID>-<BUILD_ID>.efi است. <EFI> بسته به اینکه پارتیشن ESP در کجا مانت شده است می‌تواند /efi، /boot یا /boot/efi باشد. مقدار <BUILD_ID> از BUILD_ID در /usr/lib/os-release یا در صورت وجود از /etc/os-release گرفته می‌شود و اگر BUILD_ID وجود نداشته باشد یا خالی باشد، حذف می‌شود.

--ukify

فعال‌سازی استفاده از ukify برای ایجاد UKI (پیش‌فرض).

--no-uefi

غیرفعال کردن حالت UEFI.

--no-ukify

غیرفعال کردن استفاده از ukify برای ایجاد UKI حتی در صورتی که ukify نصب باشد.

--no-machineid

بر نام فایل خروجی پیش‌فرض --uefi تأثیر گذاشته و بخش <MACHINE_ID> را حذف می‌کند.

--uefi-stub <file>

لودر UEFI stub را مشخص می‌کند که هسته ضمیمه‌شده، initramfs و خط فرمان هسته را بارگذاری کرده و هسته را بوت می‌کند. پیش‌فرض $prefix/lib/systemd/boot/efi/linux<EFI-MACHINE-TYPE-NAME>.efi.stub است.

--uefi-splash-image <file>

تصویر زمینه (splash image) لودر UEFI stub را مشخص می‌کند. به قالب تصویر بیتی (.bmp) نیاز دارد.

--kernel-image <file>

تصویر هسته‌ای که باید در فایل اجرایی UEFI گنجانده شود را مشخص می‌کند. پیش‌فرض /lib/modules/<KERNEL-VERSION>/vmlinuz یا /boot/vmlinuz-<KERNEL-VERSION> است.

--sbat <parameters>

پارامترهای SBAT را برای گنجاندن در فایل اجرایی UEFI مشخص می‌کند. به‌طور پیش‌فرض رشته SBAT اضافه شده برابر با "sbat,1,SBAT Version,sbat,1, است: https://github.com/rhboot/shim/blob/main/SBAT.md.

--enhanced-cpio

تلاش برای استفاده از باینری dracut-cpio، که با استفاده از فراخوان سیستمی man:copy_file_range[2] از طریق io::copy() در زبان Rust، ایجاد آرشیو را برای سیستم‌های فایل کپی‌هنگام‌نوشتن (copy-on-write) بهینه‌سازی می‌کند. در صورت مشخص شدن، آرشیوهای initramfs همچنین پدینگ می‌شوند تا تراز داده بهینه برای اشتراک extent تضمین شود. برای حفظ مزایای حذف داده‌های تکراری reflink، این گزینه باید در کنار پارامترهای --no-compress و --nostrip استفاده شود، به طوری که فایل‌های مبدا initramfs، ناحیه موقت --tmpdir و مقصد همگی روی یک سیستم فایل با قابلیت کپی‌هنگام‌نوشتن قرار داشته باشند.

متغیرهای محیطی بر تنظیمات فایل‌های پیکربندی ارجحیت دارند و گزینه‌های خط فرمان بر هر دوی آن‌ها اولویت دارند.

INITRD_COMPRESS

برنامه فشرده‌سازی پیش‌فرض را تنظیم می‌کند. --compress را ببینید.

DRACUT_LDCONFIG

مسیر برنامه ldconfig و گزینه‌های آن را تنظیم می‌کند. اختیاری است. برای --sysroot استفاده می‌شود.

پیش‌فرض: ldconfig

PKG_CONFIG

مسیر برنامه pkg-config و گزینه‌های آن را تنظیم می‌کند. اختیاری است. بیشترین کاربرد را همراه با --sysroot دارد.

پیش‌فرض: pkg-config

DRACUT_TESTBIN

باینری اولیه تست‌شده را برای تشخیص مسیرهای کتابخانه تعیین می‌کند. اختیاری است. برای --sysroot استفاده می‌شود. در sysroot کامپایل متقابل (cross-compiled)، مقدار پیش‌فرض (/bin/sh) غیرقابل استفاده است، زیرا یک پیوند نمادین مطلق بوده و به خارج از دایرکتوری sysroot اشاره می‌کند.

پیش‌فرض: /bin/sh

DRACUT_INSTALL

مسیر و گزینه‌های اجرای داخلی dracut-install را بازنویسی می‌کند. اختیاری است. می‌تواند برای اشکال‌زدایی dracut-install در حین اجرای اسکریپت اصلی dracut استفاده شود.

پیش‌فرض: dracut-install

مثال: DRACUT_INSTALL="valgrind dracut-install"

DRACUT_COMPRESS_BZIP2, DRACUT_COMPRESS_LBZIP2, DRACUT_COMPRESS_LZMA, DRACUT_COMPRESS_XZ, DRACUT_COMPRESS_GZIP, DRACUT_COMPRESS_PIGZ, DRACUT_COMPRESS_LZOP, DRACUT_COMPRESS_ZSTD, DRACUT_COMPRESS_LZ4, DRACUT_COMPRESS_CAT

بازنویسی ابزارهای فشرده‌سازی برای پشتیبانی از استفاده آن‌ها از مسیرهای غیر استاندارد.

مقادیر پیش‌فرض، نام‌های ابزارهای فشرده‌سازی پیش‌فرضی هستند که در PATH یافت می‌شوند.

DRACUT_ARCH

مقدار uname -m را بازنویسی می‌کند. برای --sysroot استفاده می‌شود.

پیش‌فرض: empty (مقدار uname -m روی سیستم میزبان)

DRACUT_EXTRA_ARGS

رشته‌ای از آرگومان‌های خط فرمان اضافی dracut. این مقدار تفکیک کلمه‌ای (word-split) شده و قبل از تجزیه گزینه‌ها به ابتدای فهرست آرگومان‌ها افزوده می‌شود، بنابراین فلگ‌های صریحی که مستقیماً در خط فرمان داده می‌شوند، مقادیر تنظیم‌شده در اینجا را بازنویسی خواهند کرد.

آرگومان‌هایی که حاوی فاصله هستند باید در داخل این مقدار نقل‌قول (shell-quoted) شوند:

DRACUT_EXTRA_ARGS='--add "module1 module2"' dracut

SYSTEMD_VERSION

نسخه systemd را بازنویسی می‌کند. برای --sysroot استفاده می‌شود.

SYSTEMCTL

باینری systemctl را بازنویسی می‌کند. برای --sysroot استفاده می‌شود.

NM_VERSION

نسخه NetworkManager را بازنویسی می‌کند. برای --sysroot استفاده می‌شود.

DRACUT_INSTALL_PATH

متغیر محیطی PATH را برای dracut-install بازنویسی می‌کند تا باینری‌ها را نسبت به --sysroot جستجو کند. در یک محیط کامپایل متقابل (مانند Yocto)، متغیر PATH به باینری‌های ساخته‌شده به صورت بومی اشاره دارد که در /bin، /usr/bin و غیره میزبان قرار ندارند. dracut-install همچنان به /bin و /usr/bin ساده‌ای که نسبت به sysroot کامپایل متقابل هستند نیاز دارد.

پیش‌فرض: PATH

DRACUT_INSTALL_LOG_TARGET

متغیر DRACUT_LOG_TARGET را برای dracut-install بازنویسی می‌کند. این امکان را می‌دهد تا dracut-install با مقصد گزارش متفاوتی نسبت به آنچه dracut با آن اجرا می‌شود، اجرا شود.

پیش‌فرض: DRACUT_LOG_TARGET

DRACUT_INSTALL_LOG_LEVEL

متغیر DRACUT_LOG_LEVEL را برای dracut-install بازنویسی می‌کند. این امکان را می‌دهد تا dracut-install با سطح گزارش متفاوتی نسبت به آنچه dracut با آن اجرا می‌شود، اجرا شود.

پیش‌فرض: DRACUT_LOG_LEVEL

/var/log/dracut.log

فایل گزارش (لاگ) ایجاد تصویر initramfs

/tmp/dracut.log

فایل گزارش ایجاد تصویر initramfs در صورتی که /var/log/dracut.log قابل نوشتن نباشد

/etc/dracut.conf

dracut.conf5 را ببینید

/etc/dracut.conf.d/*.conf

dracut.conf5 را ببینید

/usr/lib/dracut/dracut.conf.d/*.conf

dracut.conf5 را ببینید

/etc/conf.d/

هر فایلی که در /etc/conf.d/ یافت شود، در initramfs بارگذاری (source) می‌شود تا مقادیر اولیه را تنظیم کند. گزینه‌های خط فرمان بر این مقادیر تنظیم‌شده در فایل‌های پیکربندی اولویت خواهند داشت.

/etc/cmdline

می‌تواند حاوی گزینه‌های اضافی خط فرمان باشد. منسوخ شده است، بهتر است از /etc/cmdline.d/*.conf استفاده کنید.

/etc/cmdline.d/*.conf

می‌تواند حاوی گزینه‌های اضافی خط فرمان باشد. توصیه می‌شود برای این فایل‌های conf از طرح ترتیب‌بندی در محدوده 50-59 استفاده کنید. فایل‌های conf تولیدشده توسط dracut در محدوده ترتیب‌بندی 10-49 و 60-99 قرار می‌گیرند.

دستور dracut بخشی از بسته dracut است و از پیوند زیر در دسترس می‌باشد: https://github.com/dracut-ng/dracut-ng "" <"https://github.com/dracut-ng/dracut-ng">

Harald Hoyer

Victor Lowther

Amadeusz Żołnowski

Hannes Reinecke

Daniel Molkentin

Will Woods

Philippe Seewer

Warren Togami

man:dracut.cmdline[7] man:dracut.conf[5] man:lsinitrd[1]

2026-05-13 dracut