C VirtualBox无法加载.img或.flp文件
我试图用C编写一个简单的内核。我发现了这个教程:。我已经按照步骤做了。当我将“o”文件编译为一个“bin”文件时,我尝试在VirtualBox中运行该文件。我已将“bin”扩展名更改为“img”。我已经创建了一个新的虚拟机,当我试图将“img”文件设置为软盘映像时,我遇到了一个错误: 软盘fájl megnyitása sikertelen:文件的路径。(Eng.:无法加载软盘映像。) 无法获取\u文件的介质“路径\u”的存储格式(不支持VERR\u) Eredmény kód:VBOX_E_IPRT_错误(0x80BB0005)(Eng.:结果代码。) Komponens:中等(Eng.:Component.) 干涉:IMedium{05f2bbb6-a3a6-4fb9-9b49-6d0dda7142ac}(英语:界面。) 被调用方:IVirtualBox{fafa4e17-1ee2-4905-a10e-FE7C18BF554} 被调用方RC:VBOX\u未找到对象(0x80BB0001) 如果有人能告诉我问题出在哪里,我会很高兴的。我在互联网上到处寻找解决方案,但我还没有找到。 我使用的软件:C VirtualBox无法加载.img或.flp文件,c,assembly,virtualbox,osdev,C,Assembly,Virtualbox,Osdev,我试图用C编写一个简单的内核。我发现了这个教程:。我已经按照步骤做了。当我将“o”文件编译为一个“bin”文件时,我尝试在VirtualBox中运行该文件。我已将“bin”扩展名更改为“img”。我已经创建了一个新的虚拟机,当我试图将“img”文件设置为软盘映像时,我遇到了一个错误: 软盘fájl megnyitása sikertelen:文件的路径。(Eng.:无法加载软盘映像。) 无法获取\u文件的介质“路径\u”的存储格式(不支持VERR\u) Eredmény kód:VBOX_E_I
- NASM 2.11.06
- i686 elf gcc 4.8.2(自)
- VirtualBox 4.3.20
谢谢 一个选项是从中使用QEMU。将PATH变量设置为QEMU二进制目录(在QEMU安装目录内)。打开保存kernel.bin的命令提示符,然后键入:
qemu-system-i386 -kernel kernel.bin
否则,您需要使用现有的引导加载程序(最好是GRUB2)来创建可引导的ISO磁盘。现在,您所拥有的只是一个二进制文件,其中包含您的内核代码
1) 创建一个名为grub.cfg的文件,其中包含以下内容:
menuentry "my os" {
multiboot /boot/kernel.bin
boot
}
2) 在终端中运行以下命令:
mkdir isodir
mkdir isodir/boot
mkdir isodir/boot/grub
3) 将grub.cfg文件保存在isodir/boot/grub目录中
4) 将kernel.bin文件复制到isodir/boot
5) 通过从此处下载setup-x86.exe获得32位Cygwin:
(如果已经安装,请运行安装文件并跳到步骤7)
6) 运行该文件,选择安装目录、包目录和GNU镜像
7) 出现包列表后,取消选中“隐藏过时包”复选框
8) 在搜索栏中,搜索grub,它应该在过时类别中显示为“grub2”。选择它进行安装并继续
9) 安装后(请记住将Cygwin二进制目录添加到您的路径),只需运行:
sh grub-mkrescue --output=myos.iso isodir
然后可以在VirtualBox中运行“myos.iso”文件
如果您有任何问题,请留下评论。希望这有帮助