gpt4 book ai didi

c - VirtualBox 无法加载 .img 或 .flp 文件

转载 作者:行者123 更新时间:2023-11-30 19:44:38 24 4
gpt4 key购买 nike

我尝试用 C 语言编写一个简单的内核。我找到了这个教程:Bare Bones 。我已经按照步骤操作了。当我将“o”文件编译为一个“bin”文件时,我尝试在VirtualBox中运行它。我已将“bin”扩展名更改为“img”。我创建了一个新的虚拟机,当我尝试将“img”文件设置为软盘镜像时,出现错误:

A floppy fájl megnyitása sikertelen: path_of_file. (Eng.: failed to load floppy image.)

Could not get the storage format of the medium 'path_of_file' (VERR_NOT_SUPPORTED).

Eredmény kód: VBOX_E_IPRT_ERROR (0x80BB0005) (Eng.: Result code.)

Komponens: Medium (Eng.: Component.)

Interfész: IMedium {05f2bbb6-a3a6-4fb9-9b49-6d0dda7142ac} (Eng.: Interface.)

Callee: IVirtualBox {fafa4e17-1ee2-4905-a10e-fe7c18bf5554}

Callee RC: VBOX_E_OBJECT_NOT_FOUND (0x80BB0001)

如果有人能告诉我问题是什么以及如何解决它,我会非常高兴。我已经在互联网上寻找解决方案,但我还没有找到。我使用的软件:

  • NASM 2.11.06
  • i686-elf-gcc 4.8.2(来自 OSDev forum)
  • VirtualBox 4.3.20

我的操作系统是 Windows 7 Professional 64 位。

(抱歉我的英语不好,但我一直在学习这门语言。)

谢谢。

最佳答案

一种选择是使用 http://qemu.weilnetz.de/ 中的 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: https://cygwin.com/install.html(如果您已经安装了它,请运行您的安装文件并跳到步骤 7)

6) 运行文件,选择安装目录、软件包目录和GNU镜像。

7) 软件包列表出现后,取消选中“隐藏过时的软件包”复选框。

8) 在搜索栏中搜索 grub,它应该在过时类别中显示为“grub2”。选择它进行安装并继续。

9) 安装后(记住将 Cygwin 二进制目录添加到您的路径中),只需运行:

sh grub-mkrescue --output=myos.iso isodir

然后您可以在 VirtualBox 中运行“myos.iso”文件。

如果您有任何疑问,请发表评论。希望这有帮助!

关于c - VirtualBox 无法加载 .img 或 .flp 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27781614/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com