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 引导的系统有关。
我需要 apt-get install grub-pc-bin
然后重建图像。
我正在学习如何使用 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 引导的系统有关。
我需要 apt-get install grub-pc-bin
然后重建图像。