| DRACUT(8) | dracut | DRACUT(8) |
نام (NAME)
dracut - ابزار سطح پایین برای ایجاد تصویر initramfs/initrd
خلاصه دستور (SYNOPSIS)
dracut [گزینه...] [<تصویر> [<نسخه هسته>]]
توضیحات (DESCRIPTION)
یک <تصویر> 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 مجاز است.
نحوه استفاده (USAGE)
برای ایجاد یک تصویر 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، نمیتوانید به یک سیستمفایل ریشه دیگر تغییر وضعیت دهید. توصیه میشود نسخهای از یک تصویر همهمنظوره (و هسته متناظر آن) را به عنوان نسخه پشتیبان برای نجات سیستم خود نگه دارید.
بررسی محتویات (INSPECTING THE CONTENTS)
برای مشاهده محتویات تصویر ایجاد شده توسط dracut، میتوانید از ابزار lsinitrd استفاده کنید.
# lsinitrd | less
برای نمایش محتویات یک فایل در initramfs نیز از ابزار lsinitrd استفاده کنید:
# lsinitrd -f /etc/ld.so.conf include ld.so.conf.d/*.conf
افزودن ماژولهای DRACUT (ADDING DRACUT MODULES)
برخی از ماژولهای 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 (OMITTING DRACUT MODULES)
گاهی اوقات به دلایل سرعت، حجم یا عملکرد مایل نیستید یک ماژول 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
افزودن ماژولهای هسته (ADDING KERNEL MODULES)
اگر در 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
پارامترهای راهاندازی (BOOT PARAMETERS)
یک 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
تعیین دستگاه ریشه (Specifying the root Device)
این تنها گزینهای است که 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) را ببینید.
تنظیمات صفحهکلید (Keyboard Settings)
اگر مجبور به وارد کردن رمز عبور برای حجمهای دیسک رمزنگاریشده هستید، ممکن است بخواهید چیدمان صفحهکلید و فونت نمایشگر را مشخص کنید.
یک خط فرمان هسته معمولی به زبان آلمانی شامل موارد زیر خواهد بود:
rd.vconsole.font=eurlatgr rd.vconsole.keymap=de-latin1-nodeadkeys rd.locale.LANG=de_DE.UTF-8
در صورت استفاده از یک سیستم init نوین مانند systemd، تنظیم این گزینهها میتواند تنظیمات ذخیرهشده در سیستم شما را لغو و بازنویسی کند.
مسدود کردن ماژولهای هسته (Blacklisting Kernel Modules)
گاهی اوقات لازم است از بارگذاری خودکار یک ماژول هسته خاص جلوگیری شود. برای این کار، کافی است rd.driver.blacklist=<kernel module name> را (به طوری که <kernel module name> فاقد پسوند .ko باشد) به خط فرمان هسته اضافه کنید. برای مثال:
rd.driver.blacklist=mptsas rd.driver.blacklist=nouveau
این گزینه را میتوان چندین بار در خط فرمان هسته مشخص کرد.
افزایش سرعت فرایند راهاندازی (Speeding up the Boot Process)
اگر میخواهید فرایند راهاندازی را تسریع کنید، میتوانید تا حد امکان اطلاعات بیشتری را در خط فرمان هسته برای 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 نیز حذف کنید، اما در این صورت امکان فعال کردن مجدد آنها بر حسب تقاضا را از دست خواهید داد.
تزریق فایلهای سفارشی (INJECTING CUSTOM FILES)
برای افزودن فایلهای سفارشی خود به تصویر 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 میتواند چندین بار مشخص شود.
راهاندازی از طریق شبکه (NETWORK BOOT)
اگر پارتیشن ریشه شما روی یک درایو تحت شبکه قرار دارد، برای ایجاد تصویر initramfs آگاه از شبکه، باید ماژولهای شبکه dracut را نصب داشته باشید.
اگر ip=dhcp را در خط فرمان هسته مشخص کنید، dracut از یک سرور dhcp آدرس IP ماشین را درخواست میکند. سرور dhcp همچنین میتواند یک root-path اضافی ارائه دهد که دستگاه ریشه را برای dracut مشخص میکند. با این سازوکار، شما یک پیکربندی ایستا روی ماشین کارخواه و یک پیکربندی راهاندازی متمرکز روی سرور TFTP/DHCP خود خواهید داشت. اگر نمیتوانید خط فرمان هسته را ارسال کنید، میتوانید فایل /etc/cmdline.d/50-mycmdline.conf را با روش توضیحدادهشده در بخش تزریق فایلهای سفارشی (INJECTING CUSTOM FILES) تزریق نمایید.
کاهش حجم تصویر (Reducing the Image Size)
برای کاهش حجم 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 را به میزان چشمگیری کاهش میدهد.
عیبیابی (TROUBLESHOOTING)
اگر فرایند راهاندازی با موفقیت انجام نشد، چندین گزینه برای اشکالزدایی وضعیت در اختیار دارید.
شناسایی محدوده مشکل (IDENTIFYING YOUR PROBLEM AREA)
اگر میخواهید آن خروجی را ذخیره کنید، کافی است /boot را به صورت دستی سوار کنید یا یک حافظه فلش USB متصل کرده و آن را سوار نمایید. سپس میتوانید خروجی را برای بررسیهای بعدی ذخیره کنید.
اطلاعات لازم برای درج در گزارش شما (INFORMATION TO INCLUDE IN YOUR REPORT)
همه گزارشهای باگ (All bug reports)
در همه موارد، موارد زیر باید در گزارش باگ شما ذکر و پیوست شوند:
مشکلات مربوط به دستگاه ریشه تحت شبکه (Network root device related problems)
این بخش اطلاعاتی را شرح میدهد که باید در زمان بروز مشکل در سیستمی که دستگاه ریشه آن روی یک حجم متصل به شبکه قرار دارد (مانند iSCSI، NFS یا NBD) درج شوند. علاوه بر اطلاعات بخش «همه گزارشهای باگ»، اطلاعات زیر را نیز ضمیمه کنید:
# /sbin/ifup <interfacename> # ip addr show
اشکالزدایی DRACUT (DEBUGGING DRACUT)
پیکربندی کنسول سریال (Configure a serial console)
اشکالزدایی موفق dracut نیازمند نوعی از ثبت وقایع کنسول در حین بوت سیستم است. این بخش نحوه پیکربندی اتصال کنسول سریال برای ضبط پیامهای بوت را مستند میکند.
serial --unit=0 --speed=9600 terminal --timeout=5 serial console
console=tty0 console=ttyS0,9600
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
نکته
میتوانید تمام خروجیهای غیرتعاملی را با اجرای دستور زیر به /dev/kmsg هدایت کنید؛ هسته پس از رسیدن پیامها به بافر هسته، آنها را در کنسول نمایش میدهد:
# exec >/dev/kmsg 2>&1 </dev/console
استفاده از شل dracut (Using the dracut shell)
ابزار dracut در صورت عدم موفقیت در مکانیابی سیستم فایل ریشه، یک شل برای اشکالزدایی تعاملی ارائه میدهد. برای فعالسازی این شل:
یک نمونه فایل پیکربندی بوتلودر /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
No root device found Dropping to debug shell. #
دسترسی به حجم ریشه از طریق شل dracut (Accessing the root volume from the dracut shell)
از درون شل اشکالزدایی dracut، میتوانید وظیفه مکانیابی و آمادهسازی حجم ریشه را به صورت دستی برای بوت انجام دهید. مراحل لازم به نحوه پیکربندی حجم ریشه شما بستگی دارد. سناریوهای رایج عبارتند از:
روش دقیق مکانیابی و آمادهسازی متفاوت خواهد بود. با این حال، برای ادامه یک بوت موفق، هدف یافتن حجم ریشه و ایجاد پیوند نمادین /dev/root است که به سیستم فایل اشاره کند. برای مثال، نمونه زیر نحوه دسترسی و بوت کردن یک حجم ریشه را که یک حجم منطقی رمزنگاریشده LVM است نشان میدهد.
# 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
# lvm vgscan # lvm vgchange -ay
# 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"
# 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.
# ln -s /dev/mapper/luks-$UUID /dev/root
# exit
پارامترهای راهاندازی اضافی dracut (Additional dracut boot parameters)
برای مشاهده گزینههای اشکالزدایی بیشتر، man:dracut.cmdline[7] را ببینید.
اشکالزدایی dracut هنگام خاموش شدن سیستم (Debugging dracut on shutdown)
برای اشکالزدایی توالی خاموش شدن در سیستمهای مبتنی بر 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 در اختیارتان قرار میدهد.
گزینهها (OPTIONS)
--kver <kernel version>
# dracut --kver 3.5.0-0.rc7.git1.2.fc18.x86_64
-f, --force
<output file> --rebuild
-a, --add <list of dracut modules>
نکته
اگر فهرست دارای چندین آرگومان باشد، باید آنها را داخل نقلقول قرار دهید. برای مثال:
# dracut --add "module1 module2" ...
--force-add <list of dracut modules>
نکته
اگر فهرست دارای چندین آرگومان باشد، باید آنها را داخل نقلقول قرار دهید. برای مثال:
# dracut --force-add "module1 module2" ...
-o, --omit <list of dracut modules>
نکته
اگر فهرست دارای چندین آرگومان باشد، باید آنها را داخل نقلقول قرار دهید. برای مثال:
# dracut --omit "module1 module2" ...
-m, --modules <list of dracut modules>
نکته
اگر فهرست دارای چندین آرگومان باشد، باید آنها را داخل نقلقول قرار دهید. برای مثال:
# dracut --modules "module1 module2" ...
-d, --drivers <list of kernel modules>
نکته
اگر فهرست دارای چندین آرگومان باشد، باید آنها را داخل نقلقول قرار دهید. برای مثال:
# dracut --drivers "kmodule1 kmodule2" ...
--add-drivers <list of kernel modules>
نکته
اگر فهرست دارای چندین آرگومان باشد، باید آنها را داخل نقلقول قرار دهید. برای مثال:
# dracut --add-drivers "kmodule1 kmodule2" ...
--force-drivers <list of kernel modules>
نکته
اگر فهرست دارای چندین آرگومان باشد، باید آنها را داخل نقلقول قرار دهید. برای مثال:
# dracut --force-drivers "kmodule1 kmodule2" ...
--omit-drivers <list of kernel modules>
نکته
اگر فهرست دارای چندین آرگومان باشد، باید آنها را داخل نقلقول قرار دهید. برای مثال:
# dracut --omit-drivers "kmodule1 kmodule2" ...
--filesystems <list of filesystems>
نکته
اگر فهرست دارای چندین آرگومان باشد، باید آنها را داخل نقلقول قرار دهید. برای مثال:
# dracut --filesystems "filesystem1 filesystem2" ...
-k, --kmoddir <kernel directory>
--fwdir <dir>[:<dir>...]++
--libdirs <list of directories>
نکته
اگر فهرست دارای چندین آرگومان باشد، باید آنها را داخل نقلقول قرار دهید. برای مثال:
# dracut --libdirs "dir1 dir2" ...
--kernel-cmdline <parameters>
--kernel-only
--no-kernel
--early-microcode
--no-early-microcode
--print-cmdline
--mdadmconf
--nomdadmconf
--lvmconf
--nolvmconf
--fscks <list of fsck tools>
نکته
اگر فهرست دارای چندین آرگومان باشد، باید آنها را داخل نقلقول قرار دهید. برای مثال:
# dracut --fscks "fsck.foo barfsck" ...
--nofscks
--strip
--aggressive-strip
--nostrip
--hardlink
--nohardlink
--prefix <dir>
--noprefix
-h, --help
--debug
-v, --verbose
--version
-q, --quiet
-c, --conf <dracut configuration file>
پیشفرض: /etc/dracut.conf
--confdir <configuration directory>
پیشفرض: /etc/dracut.conf.d
--add-confdir <configuration directory>
پیشفرض: خالی
--tmpdir <temporary directory>
پیشفرض: /var/tmp
-r, --sysroot <sysroot directory>
پیشفرض: خالی
--sshkey <sshkey file>
--logfile <logfile>
پیشفرض: /var/log/dracut.log
-l, --local
-H, --hostonly
هشدار
در صورت chroot به ریشهای غیر از دستگاه ریشه واقعی، از "--fstab" استفاده کرده و یک /etc/fstab معتبر ارائه دهید.
-N, --no-hostonly
--hostonly-mode <mode>
پیشفرض: sloppy
--hostonly-cmdline
--no-hostonly-cmdline
--no-hostonly-default-device
--hostonly-i18n
--no-hostonly-i18n
--hostonly-nics <list of nics>
--persistent-policy <policy>
--fstab
--add-fstab <filename>
--mount "<device> <mountpoint> <filesystem type> [<filesystem options> [<dump frequency> [<fsck order>]]]"
--mount "<mountpoint>"
--add-device <device>
-i, --include <SOURCE> <TARGET>
-I, --install <file list>
نکته
اگر فهرست دارای چندین آرگومان است، باید آنها را داخل علامت نقلقول قرار دهید. برای مثال:
# dracut --install "/bin/foo /sbin/bar" ...
--remove <file/dir list>
--install-optional <file list>
--gzip
هشدار
اطمینان حاصل کنید که هسته شما با پشتیبانی از بازگشایی فشردهسازی gzip کامپایل شده باشد، در غیر این صورت سیستم قادر به بوت نخواهد بود. معادل با "--compress=gzip -9".
--bzip2
هشدار
اطمینان حاصل کنید که هسته شما با پشتیبانی از بازگشایی فشردهسازی bzip2 کامپایل شده باشد، در غیر این صورت سیستم قادر به بوت نخواهد بود. معادل با "--compress=bzip2 -9".
--lzma
هشدار
اطمینان حاصل کنید که هسته شما با پشتیبانی از بازگشایی فشردهسازی lzma کامپایل شده باشد، در غیر این صورت سیستم قادر به بوت نخواهد بود. معادل با "--compress=lzma -9 -T0".
--xz
هشدار
اطمینان
حاصل کنید
که هسته شما
با
پشتیبانی
از
بازگشایی
فشردهسازی
xz کامپایل
شده باشد،
در غیر این
صورت سیستم
قادر به بوت
نخواهد بود.
معادل با
"--compress=xz --check=crc32 --lzma2=dict=1MiB -T0".
--lzo
هشدار
مطمئن شوید که هسته شما با پشتیبانی از فشردهسازیگشایی lzo کامپایل شده است، در غیر این صورت قادر به بوت نخواهید بود. معادل با "--compress=lzop -9".
--lz4
هشدار
مطمئن شوید که هسته شما با پشتیبانی از فشردهسازیگشایی lz4 کامپایل شده است، در غیر این صورت قادر به بوت نخواهید بود. معادل با "--compress=lz4 -l -9".
--zstd
هشدار
مطمئن شوید که هسته شما با پشتیبانی از فشردهسازیگشایی zstd کامپایل شده است، در غیر این صورت قادر به بوت نخواهید بود. معادل با "--compress=zstd -15 -q -T0".
--compress <compressor>
--squash-compressor <compressor>
--no-compress
--reproducible
--no-reproducible
--list-modules
-M, --show-modules
--keep
--printconfig
--printsize
--profile
--ro-mnt
-L, --stdlog <level>
0 - جلوگیری از نمایش تمامی پیامها 1 - فقط خطاهای مهلک 2 - تمام خطاها 3 - هشدارها 4 - اطلاعات (info) 5 - اطلاعات اشکالزدایی (شروع خروجی حجیم) 6 - اطلاعات ردگیری (و حتی بیشتر)
--regenerate-all
-p, --parallel
--noimageifnotneeded
در حالت host-only، در صورتی که به هیچ درایور هستهای نیاز نباشد و هیچ /etc/cmdline/*.conf در initramfs تولید نشود، تصویری ایجاد نشود.
--loginstall <directory>
--uefi
--ukify
--no-uefi
--no-ukify
--no-machineid
--uefi-stub <file>
--uefi-splash-image <file>
--kernel-image <file>
--sbat <parameters>
--enhanced-cpio
متغیرهای محیطی (ENVIRONMENT)
متغیرهای محیطی بر تنظیمات فایلهای پیکربندی ارجحیت دارند و گزینههای خط فرمان بر هر دوی آنها اولویت دارند.
INITRD_COMPRESS
DRACUT_LDCONFIG
پیشفرض: ldconfig
PKG_CONFIG
پیشفرض: pkg-config
DRACUT_TESTBIN
پیشفرض: /bin/sh
DRACUT_INSTALL
پیشفرض: 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
پیشفرض: empty (مقدار uname -m روی سیستم میزبان)
DRACUT_EXTRA_ARGS
آرگومانهایی که حاوی فاصله هستند باید در داخل این مقدار نقلقول (shell-quoted) شوند:
DRACUT_EXTRA_ARGS='--add "module1 module2"' dracut
SYSTEMD_VERSION
SYSTEMCTL
NM_VERSION
DRACUT_INSTALL_PATH
پیشفرض: PATH
DRACUT_INSTALL_LOG_TARGET
پیشفرض: DRACUT_LOG_TARGET
DRACUT_INSTALL_LOG_LEVEL
پیشفرض: DRACUT_LOG_LEVEL
فایلها (FILES)
/var/log/dracut.log
/tmp/dracut.log
/etc/dracut.conf
/etc/dracut.conf.d/*.conf
/usr/lib/dracut/dracut.conf.d/*.conf
پیکربندی در initramfs (Configuration in the initramfs)
/etc/conf.d/
/etc/cmdline
/etc/cmdline.d/*.conf
در دسترس بودن (AVAILABILITY)
دستور dracut بخشی از بسته dracut است و از پیوند زیر در دسترس میباشد: https://github.com/dracut-ng/dracut-ng "" <"https://github.com/dracut-ng/dracut-ng">
نویسندگان (AUTHORS)
Harald Hoyer
Victor Lowther
Amadeusz Żołnowski
Hannes Reinecke
Daniel Molkentin
Will Woods
Philippe Seewer
Warren Togami
همچنین ببینید (SEE ALSO)
man:dracut.cmdline[7] man:dracut.conf[5] man:lsinitrd[1]
| 2026-05-13 | dracut |