无法在Ubuntu上运行qemu,即使对于简单的来宾也是如此
我有一个简单的任务-运行代码“boothi.asm”: 我用以下方法编写:无法在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
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