使用Grub 2制作OS启动ISO时遭遇grub-mkrescue报错:`mformat` invocation failed
Grub 2制作OS启动ISO时遭遇grub-mkrescue报错:
mformat invocation failed 看起来你在自制操作系统的路上遇到了生成启动ISO的小障碍,我来帮你排查下问题~
首先,报错mformat invocation failed的核心原因大概率是缺少mtools工具,而且你尝试安装的命令写错了——你用了sudo apt install pacman -S mtools,这混了Debian/Ubuntu系(apt)和Arch系(pacman)的包管理语法,肯定装不上!
第一步:正确安装依赖工具
根据你的系统类型选择对应的命令:
- 如果你用的是Ubuntu/Debian这类Debian系发行版:
sudo apt update && sudo apt install mtools - 如果你用的是Arch/Manjaro这类Arch系发行版:
sudo pacman -S mtools
除了mtools,确保你已经装全Grub2的相关组件:Debian系需要grub-pc-bin,Arch系直接装grub包即可,你已经有的xorriso是必要组件,不用再装。
第二步:验证Makefile与配置文件
- 检查自动生成的
grub.cfg:Makefile里生成配置的逻辑没问题,但可以手动确认下临时iso/boot/grub/grub.cfg的内容,确保引号、大括号都配对,multiboot /boot/mykernel.bin的路径和你实际放入ISO的文件位置一致。 - 手动测试命令:先跳过Makefile,手动搭建好ISO目录结构、复制文件、创建好grub.cfg,然后直接运行:
这样能看到更详细的报错信息,方便进一步定位问题。grub-mkrescue --output=mykernel.iso iso
额外小提示
部分系统中,grub-mkrescue可能需要指定ISO级别参数才能正常生成,你可以尝试加上--iso-level=3:
grub-mkrescue --iso-level=3 --output=mykernel.iso iso
先解决mtools的安装问题,这应该是当前最直接的突破口,祝你的自制OS顺利启动!
备注:内容来源于stack exchange,提问作者user1775440
相关产品推荐
相关产品推荐

