QEMU,没有可引导设备,Windows Linux 的子系统

QEMU, No bootable device, Windows Subsystem for Linux

我正在学习如何使用 https://intermezzos.github.io

构建基本的 OS 内核

我已经创建了我的 .iso 文件,现在我正在运行 qemu-system-x86_64 -cdrom os.iso 当我按下 enter 键时,QEMU 运行 window 并输出以下内容:

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 图像,这次从存储库复制并粘贴代码,以防我之前输入错别字。

仍然没有启动。关于下一条线索...

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

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

(这里的一般原则是尝试进行诊断测试,将 "what might be the problem" 的 space 分成更小的部分,并确定您的问题出在哪一边。)

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

source

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