dracut - 生成 initramfs/initrd 映像的底层工具

说白了,dracut 是 Linux 启动时为您创建的一个名为 initramfs 或 initrd 的启动映像。
没有它,系统可能无法启动。

该工具主要完成以下工作:
1 .生成启动镜像:可以在启动前预先安装所需的模块。
例如,如果您的硬盘是UFS,则会预先安装UFS驱动程序。
2 008 年左右,initramfs当时还不支持UFS。
没有dracut,就得自己写脚本安装驱动,非常麻烦。

2 它不在一处。
您可以在 /efi 目录中找到它,也可以在 /boot 或 /lib/modules 中找到它。
配置文件位于/etc/dracut.conf或/etc/dracut.conf.d/下,例如/etc/dracut.conf.d/9 9 -mydisk.conf。

3 您也可以自定义它。
例如,您指定所需的内核版本。
使用 dracut --kver 5 .1 0.0 --add ufs。
或者,如果您想制作较小的图像,请使用 dracut --compact。
控制模块也很方便,想添加就添加,想删除就删除。
例如,使用 dracut --add lvm 或 dracut --omit nls。

4 启动配置也很重要。
例如,如果您使用非托管模式,则必须在内核命令行中设置 root=UUID/1 2 3 4 或 rootLABEL=MyRoot。
您可以通过运行 dracut --printcmdline 查看默认引导命令行。
无法启动?尝试删除 rhgb 和 Quiet 并添加调试参数。

5 如果遇到问题,还可以发布 dracut shell 进行交互式调试。
2 01 0 年,我花了两个小时解决启动问题。
最后发现是一个内核参数设置错误。

6 进阶一点,还可以生成一个特殊的小镜像,比如initramfs-nfs-only.img,专门用于NFS启动。
或者设置系统选项,例如覆盖区域设置 rd.locale.LANG。
使用 dracut --include /etc/fstab /mnt/initramfs/etc/fstab。

7 也可以进行网络启动。
安装网络模块并在启动时自动配置IP和根设备。
2 01 5 年,我为远程服务器进行了网络设置,dracut 给了我很大帮助。

8 有很多选择。
例如--filesystems选择文件系统模块,--kver指定内核版本,这些都可以使用。

你想学吗?一切都可以在 archlinux wiki 上找到,手册页也可以找到,源代码也可以在 github 上找到。
其实第一次使用dracut的时候我很困惑,但是慢慢就习惯了。

安装CentOS 7的时候出现dracut:/#求解决方法!

CentOS7 安装卡在“dracut:/”上?
重新启动后,键入 cd /dev 以查找 USB 设备编号。

更改启动配置并输入设备编号。

重新启动,安装将继续。