4

我正在学习如何使用https://intermezzos.github.io构建基本的操作系统内核

我已经创建了我的.iso文件,并且我正在qemu-system-x86_64 -cdrom os.iso 运行当我按下回车键时,QEMU 会运行一个窗口,其中包含以下输出:

Booting from Floppy...
Boot failed: could not read the boot disk

Booting from DVD/CD...
Boot failed: Could not read from CDROM (code 0004)
Booting from ROM...
iPXE (PCI 00:03.0) starting execution...ok
iPXE initializing devices...ok

iPXE 1.0.0+git-20131111.c3d1e78-2ubuntu1.1 -- Open Source Network Boot Firmware
-- http://ipxe.org
Features: HTTP HTTPS iSCSI DNS TFTP AoE bzImage ELF MBOOT PXE Menu

net0: 52:54:00:12:34:56 using 82549em on PCI00:03.0 (open)
  [Link:up, TX:0 TXE:0 RX:0 RXE:01]
Configuring (net0 52:54:00:12:34:56)...ok
net0: 10.0.2.15/255.255.255.0 gw 10.0.2.2
Nothing to boot: No such file for directory (http://ipxe.org/2d03e13b)
No more network devices

No bootable device.

我访问了输出中列出的网站 ( http://ipxe.org/2d03e13b ),其中一个提示是我可能会这样做Use the iPXE command line to perform DHCP manually,但是当我按下CTRL + B访问 cli 时,我无法这样做。

我在哪里可以解决这个无法启动的问题.iso
如何让 QEMU 能够访问键盘输入?


更新
我不知道怎么做,但我现在可以用来CTRL + B访问 iPXE 命令行。

这似乎是开始诊断我无法启动.iso.

我在找什么?


更新 2
感谢 Peter Maydell 在下面的建议,我已经测试了一个已知良好的iso图像 ( https://alpinelinux.org/ ),它正在运行qemu-system-x86_64 -cdrom alpine-3.4.3-x86_64.iso并且它像我预期的那样完美启动。

我已经从https://intermezzos.github.io重写了我的文件以创建一个新的iso图像,这次从存储库中复制并粘贴代码,以防我之前输入错别字。

还是不开机。进入下一个线索...

4

2 回答 2

5

首先要做的是检查这个命令行和 ISO 映像是否在正常的 Linux 主机系统上工作。这将告诉您问题是(a)Linux 的 Windows 子系统没有正确实现 QEMU 所依赖的东西,或者(b)您的 ISO 映像实际上不是可引导的 CDROM。

您也可以尝试引导已知良好的 ISO 映像,例如用于 Linux 发行版的 ISO 映像。

(这里的一般原则是尝试进行诊断测试,将“可能是什么问题”的空间分成更小的部分,并确定您的问题在哪一边。)

于 2016-09-05T11:59:18.597 回答
3

问题的简单解决方案。与使用 EFI 引导的系统有关。

资源

我需要apt-get install grub-pc-bin然后重建图像。

于 2016-10-12T22:00:50.363 回答