Ubuntu 21.04下kernelstub无法找到kernel或initrd镜像问题求助
Ubuntu 21.04 kernelstub配置Intel_IOMMU路径循环报错解决方案
根因说明
kernelstub默认从/etc/kernelstub/configuration配置文件统一读取内核、initrd路径,单次命令行单独指定其中一个路径参数时,会覆盖配置文件的对应值,触发另一路径读取逻辑失效;EFI分区未正确挂载也会触发同类路径找不到报错。
解决步骤
- 确认EFI分区挂载状态
执行命令查看挂载情况:df -h /boot/efi
若提示路径不存在,先查询本机EFI分区盘符:sudo fdisk -l | grep EFI
替换下方命令中{EFI分区盘符}(示例为nvme0n1p1)完成挂载:sudo mount /dev/{EFI分区盘符} /boot/efi - 备份原有kernelstub配置
sudo cp /etc/kernelstub/configuration /etc/kernelstub/configuration.bak - 编辑配置文件统一指定路径与IOMMU参数
打开配置文件:sudo nano /etc/kernelstub/configuration
修改user配置段内容如下,无需单独删除原有配置,直接覆盖对应字段即可:
注:"user": { "kernel_options": [ "quiet", "splash", "intel_iommu=on", "iommu=pt" ], "esp_path": "/boot/efi", "setup_loader": true, "manage_mode": true, "kernel_path": "/boot/vmlinuz", "initrd_path": "/boot/initrd.img" }/boot/vmlinuz和/boot/initrd.img是Ubuntu默认软链接,始终指向当前生效的最新内核,无需随内核更新修改路径。若仍有路径报错,可替换为当前内核的完整绝对路径,内核版本可通过uname -r查询,示例路径为/boot/vmlinuz-5.11.0-16-generic、/boot/initrd.img-5.11.0-16-generic - 执行配置更新
sudo kernelstub -c /etc/kernelstub/configuration - 验证配置生效
重启系统后执行命令校验:sudo dmesg | grep -i iommu
输出包含DMAR: Intel(R) Virtualization Technology for Directed I/O即为配置成功。
内容的提问来源于stack exchange,提问作者KCGD
相关产品推荐
相关产品推荐

