windows和虚拟机linux上运行qemu

背景信息

QEMU is a generic and open source machine emulator and virtualizer.

About QEMU — QEMU documentation

qemu上运行/安装linux镜像iso

qemu走的是开源路线,主要是在linux上开发、演进、运行。但是随着windows pc逐渐开始支持模拟linux环境、交叉编译等,qemu也有了windows版本的安装程序。安装之后可以在windows上安装和运行linux的OS。

windows qemu上安装并运行linux

支持通过iso安装centos/ubuntu等linux os。

安装centos:

启动centos:

但是没有在网上找到支持x86_64的windows qemu的QEMU_EFI文件,按照同样的步骤安装x86_64版本的linux os没有成功。使用支持arm架构的QEMU_EFI文件会报错:

C:\Program Files\qemu\qemu-system-x86_64.exe: unsupported machine type
Use -machine help to list supported machines

windows qemu上直接用cdrom挂载ios运行linux os

上一节安装windows的qume.exe后,可以直接挂载ios运行linux os。

qemu-system-x86_64.exe -M q35 -smp 4 -m 4G -drive file=C:\qemu\qemu_nvme\disk1.qcow,if=none,id=nvm -device nvme,serial=deadbeef,drive=nvm -cdrom C:\qemu\ubuntu-22.04.3-desktop-amd64.iso

qemu运行系统时,使用的是nvme的启动盘:id=nvm -device nvme,serial=deadbeef,drive=nvm

所以,这样跑起来的qemu中的ubuntu系统中可以看到虚拟出来的一个nvme盘:

虚拟机linux上编译安装qemu并运行linux

最近想模拟nvme设备/盘,想通过在wsl ubuntu、vmwre ubuntu等虚拟机os中运行qemu,并能在qemu中再运行linux的os,这样就不用依赖物理的服务器上运行qemu,如果可以成功,就可以方便的修改扩展qemu的代码了。

但是可惜没有正常运行起来。

WSL的ubuntu中编译安装qemu并运行虚拟的linux os

 参考:NVMe emulation in QEMU – Adding custom admin and IO commands – REDS blog

按照参考帖子中的操作,会遇到缺少安装包等错误:

报错:ERROR: glib-2.56 gthread-2.0 is required to compile QEMU

try apt-get install libglib2.0-dev,and it is sucess 

apt-get install libpixman-1-dev

最后可以编译并运行qemu,但是运行命令执行后,没有出现预期的qemu虚拟机窗口程序:

预期应该出现如下界面,可以运行ubuntu os,但是没有。

vmware的ubuntu中编译安装qemu并运行虚拟的linux os

 参考:NVMe emulation in QEMU – Adding custom admin and IO commands – REDS blog

一些报错:

//编译qemu,没有装ninja.

root@daniel-vm-ubuntu-d:/home/daniel/qemu/build# ../configure --target-list=x86_64-softmmu

ERROR: Cannot find Ninja

//按如下帖子编译安装ninjia

root@daniel-vm-ubuntu-d:/home/daniel# git clone https://github.com/ninja-build/ninja.git

Cloning into 'ninja'...

fatal: unable to access 'https://github.com/ninja-build/ninja.git/': GnuTLS recv error (-54): Error in the pull function.

直接clone失败,fork之后clone fork分支成功。

注意,需要在ubuntu中直接clone Ninja代码并编译,在windows clone代码再mount到ubuntu编译,会报如下错误:

root@daniel-vm-ubuntu-d:/home/daniel/windowsmount/ninja# ./configure.py --bootstrap

bootstrapping ninja...

/bin/sh: 1: ./src/inline.sh: not found

// 其它还有些工具链没有安装的错误

root@daniel-vm-ubuntu-d:/home/daniel/ninja# apt install g++

最后,能够编译qemu成功:

root@daniel-vm-ubuntu-d:/home/daniel/qemu/build# ../configure --target-list=x86_64-softmmu

虚拟的ubuntu os中通过qemu再运行虚拟的ubuntu os

root@daniel-vm-ubuntu-d:/home/daniel/qemu/build# cp /home/daniel/windowsmount/ubuntu-22.04.3-desktop-amd64.iso .

root@daniel-vm-ubuntu-d:/home/daniel/qemu/build# ./qemu-system-x86_64 -M q35 -smp 4 -m 4G -drive file=nvm.qcow,if=none,id=nvm -device nvme,serial=deadbeef,drive=nvm -cdrom ubuntu-22.04.3-desktop-amd64.iso

没有出现预期的qemu虚拟机界面:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值