我正在按照编写操作系统的教程操作,但无法创建可启动的 iso 文件。该教程使用 grub-legacy,但我使用 grub 2,因为 legacy 已经过时了。makefile 的重要部分如下所示:
mykernel.iso: mykernel.bin
mkdir iso
mkdir iso/boot
mkdir iso/boot/grub
cp mykernel.bin iso/boot/mykernel.bin
echo 'set timeout=0' > iso/boot/grub/grub.cfg
echo 'set default=0' >> iso/boot/grub/grub.cfg
echo '' >> iso/boot/grub/grub.cfg
echo 'menuentry "My Operating System" {' >> iso/boot/grub/grub.cfg
echo ' multiboot /boot/mykernel.bin' >> iso/boot/grub/grub.cfg
echo ' boot' >> iso/boot/grub/grub.cfg
echo '}' >> iso/boot/grub/grub.cfg
grub-mkrescue --output=mykernel.iso iso
rm -rf iso
整个目录及其文件如下所示:https://github.com/AlgorithMan-de/wyoos/tree/b440da72b6403d6cde728b6657e61aed8fd3c682
在我的终端上出现错误:
(commands above grub-mkrescue --output=mykernel.iso iso)...
grub-mkrescue --output=mykernel.iso iso
grub-mkrescue: error: `mformat` invocation failed
.
make: *** [makefile:34: mykernel.iso] Error 1
我有 xorriso 1.5.4 版(我读到需要它),但没有 grub-legacy,因为教程中说它是必需的,因为它已经过时了。有人知道我需要做什么才能从这个 iso 映像启动吗?谢谢!我在谷歌上找到的唯一内容是: https://bbs.archlinux.org/viewtopic.php?id=219955 我执行了“sudo apt install pacman -S mtools”,但错误消息仍然相同。
答案1
如果您还没有安装可用的程序 mformat:
可能你对 Archlinux 的提议理解得太字面化了。“pacman”是他们的包管理器。尝试:
sudo apt install mtools