无法在Ubuntu上运行qemu,即使对于简单的来宾也是如此

无法在Ubuntu上运行qemu,即使对于简单的来宾也是如此,ubuntu,nasm,loader,bootloader,qemu,Ubuntu,Nasm,Loader,Bootloader,Qemu,我有一个简单的任务-运行代码“boothi.asm”: 我用以下方法编写: nasm -f bin boothi.asm -o boothi.bin 但我不明白-我如何在虚拟机上运行它来测试。我尝试包装软盘映像,并使用qemu运行它,如下所示: dd if=/dev/zero of=disk.img bs=1024 count=1440 dd if=boothi.bin of=disk.img conv=notrunc 但是在下一步- qemu -fda disk.img -boot a

我有一个简单的任务-运行代码“boothi.asm”:

我用以下方法编写:

nasm -f bin boothi.asm -o boothi.bin
但我不明白-我如何在虚拟机上运行它来测试。我尝试包装软盘映像,并使用qemu运行它,如下所示:

dd if=/dev/zero of=disk.img bs=1024 count=1440
dd if=boothi.bin of=disk.img conv=notrunc
但是在下一步-

qemu -fda disk.img -boot a
我有奇怪的麻烦-

Could not access KVM kernel module: No such file or directory
failed to initialize KVM: No such file or directory
我尝试安装qemu和kvm。但这个错误是存在的。 但是qemu尝试运行此代码并检查所有设备-硬\cdrom\floppy-并编写smth,比如“没有要加载的sustem\boot”。 如何在Ubuntu上测试此asm代码


在我的电脑上输出命令:

root@alena-VirtualBox:~# ls -l /dev/kvm
ls: cannot access /dev/kvm: No such file or directory
root@alena-VirtualBox:~# lsmod|grep kvm
kvm                   359488  0 
root@alena-VirtualBox:~# groups
root
root@alena-VirtualBox:~# qemu -version
No command 'qemu' found, did you mean:
 Command 'qtemu' from package 'qtemu' (universe)
 Command 'aqemu' from package 'aqemu' (universe)
qemu: command not found
root@alena-VirtualBox:~# qemu-system-i386 -version
QEMU emulator version 1.0 (qemu-kvm-1.0), Copyright (c) 2003-2008 Fabrice Bellard
root@alena-VirtualBox:~# cat /proc/cpuinfo
processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 42
model name  : Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz
stepping    : 7
microcode   : 0x616
cpu MHz     : 2469.580
cache size  : 6144 KB
fdiv_bug    : no
hlt_bug     : no
f00f_bug    : no
coma_bug    : no
fpu     : yes
fpu_exception   : yes
cpuid level : 5
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx rdtscp lm constant_tsc up pni monitor ssse3 lahf_lm
bogomips    : 4939.16
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:
如果您的系统支持硬件虚拟化 该错误消息表示qemu正在尝试使用kvm进行虚拟化,无法访问kvm内核设备。您可能会发现文件
/dev/kvm
不存在

您的主机需要加载
kvm
内核模块

您可以通过运行以下命令来检查模块是否已加载:

lsmod|grep kvm
如果没有输出,您可以执行以下命令来加载模块:

sudo modprobe kvm
如果您能够运行qemu,则可以通过将以下行添加到文件
/etc/modules
,使更改持久化:

kvm
否则 您可以检查
vt
lbrv
svm
的/proc/cpuinfo字段标志的输出,如果不存在这些标志,则可能不支持虚拟化

您可能还需要首先在BIOS中启用虚拟化

如果您的计算机不支持硬件虚拟化,这仍然不起作用

在这种情况下,您可能需要强制模拟,例如:

qemu -machine pc,accel=tcg (...other options...)
注 这种行为可能是您正在使用的qemu和Ubuntu版本的一种功能;在Debian wheezy上,如果未加载kvm,amd64 qemu似乎会自动回退


[编辑-关于硬件虚拟化等的说明]

查看您的汇编程序,您需要在引导扇区的末尾添加引导签名-0xaa55-请参阅

我添加了以下两行,然后您的示例成功了:

times 510-($-$$) db 0   ; Fill the file with 0's
dw 0AA55h               ; End the file with AA55

是的,在内核模块中没有“kvm”。但在听了你的建议之后,当我尝试使用命令“qemu…”时,我也遇到了这个问题,因为我无法访问KVM内核模块:没有这样的文件或目录。未能初始化KVM:没有这样的文件或目录'您可以发布以下输出:
ls-l/dev/KVM
lsmod | grep KVM
以及
qemu-version
cat/proc/cpuinfo
谢谢。我使用命令'qemu-system-i386-machine pc,accel=tcg-fda/home/alena/testdisk.img-boot a'-现在没有错误。但是我的floppy.img文件仍然无法启动=\您是否能够在真正的计算机上测试您的软盘映像是否正常工作?
times 510-($-$$) db 0   ; Fill the file with 0's
dw 0AA55h               ; End the file with AA55