在 AWS EBS Centos 7 上运行 dracut 会阻止启动

在 AWS EBS Centos 7 上运行 dracut 会阻止启动

我有一个最小的 Centos 7 版本。当我运行 dracut --force 时,它​​会构建一个小 20mb 的新 initramfs。模块部分的唯一区别是缺少 qemu。

localhost login: [ 3322.193617] Restarting system.
[    0.000000] Cannot get hvm parameter CONSOLE_EVTCHN (18): -22!
[    0.817440] Cannot get hvm parameter CONSOLE_EVTCHN (18): -22!
[[32m  OK  [0m] Started Show Plymouth Boot Screen.
[[32m  OK  [0m] Reached target Paths.
[[32m  OK  [0m] Reached target Basic System.
[  123.897756] dracut-initqueue[273]: Warning: dracut-initqueue timeout - starting timeout scripts
[  124.410440] dracut-initqueue[273]: Warning: dracut-initqueue timeout - starting timeout scripts

答案1

HVM EC2 实例的启动过程似乎仍然需要 xen-blkfront。但是,当 dracut 重建时不会检测到这些,也不会在运行的系统上使用 modprobe 显示它们。我使用中的示例添加了它们这个帖子并且成功重启。

答案2

如果您希望有更通用的initramfs支持各种类型的 AWS 实例,例如现代 M5/C5/t3a、增强型网络适配器 (ENA)、EBS 优化磁盘、nvme、通用 xen-blkfront...等...您应该禁用 dracut 选项仅主机。 (在 CentOS 中默认开启)

简而言之:

dracut -f -v -N

或者

yum install dracut-config-generic
dracult -f -v

仔细检查:(您应该看到 ena、xen、nvme、xen-blkfront 等的驱动程序)

lsinitrd | grep "ena\|xen\|nvme"

并记住确保您的 /etc/fstab 使用 UUID 来映射分区而不是设备名称,例如 /dev/sdx

相关内容