qemu使用

yuanheci 2024年11月30日 63次浏览

QEMU是一款跨平台的开源虚拟机工具,因为无GUI配置工具,有一定使用门槛

根据冯诺依曼结构,一个计算机可分为:

  • 运算器
  • 控制器
  • 存储器
  • 输入设备
  • 输出设备

使用QEMU时,应该尽量往该模型联想。

创建存储器

创建一个16G的虚拟磁盘文件

qemu-img create -f qcow2 drive 16G

虚拟硬件环境

  • 运算器、控制器 -> CPU、各种加速器*
  • 输入、输出设备 -> 网卡、CXL设备等

QEMU本身没有像VMware那样的GUI配置界面,所有配置通过命令行参数指定

qemu-system-x86_64 -machine q35 \
	-smp 4,sockets=1,cores=4,threads=1 \
	-m 4096

现在启动了一个机型为q35,处理器1插槽4核4线程,内存4096MB,使用默认网络配置的虚拟机,由于没有启动盘,并不会启动某个系统

利用虚拟硬件环境启动系统

我们已经有了一块硬盘drive作为启动盘,指定给虚拟环境:

qemu-system-x86_64 -machine q35 \
	-smp 4,sockets=1,cores=4,threads=1 \
	-m 4096 \
	-drive file=drive

会发现,指定后并没有什么区别,是因为这个“硬盘”我们没有给它“安装”系统。

安装系统

参考为物理机安装系统:

  • 物理机硬盘 -> 虚拟磁盘文件drive
  • 安装媒介(写入了镜像的U盘) -> 系统镜像文件
qemu-system-x86_64 -machine q35 \
	-smp 4,sockets=1,cores=4,threads=1 \
	-m 4096 \
	-drive file=drive \
	-drive file=<系统镜像,如ubuntu-22.04.2-live-server-amd64.iso>,media=cdrom

按照ISO文件的引导进行安装即可,完成后可移除ISO文件重启。


用qemu验证自己制作的iso镜像
qemu-system-x86_64 -cdrom testbios.iso -boot d

  • -cdrom testbios.iso 部分
      cdrom是一个参数选项,用于告诉 Qemu 模拟器将指定的文件作为虚拟光盘来加载。在这个例子中,testbios.iso是要加载的 ISO 镜像文件。Qemu 会将这个 ISO 文件视为一个插入虚拟光驱的光盘,这样在模拟的计算机系统启动时,就可以从这个虚拟光盘中读取数据,就像在真实的计算机上从物理光盘启动一样。

  • -boot d 部分
      boot是用于指定启动设备顺序的参数。d表示从光盘(CD - ROM 或 DVD - ROM,在这里是虚拟光盘,即前面指定的testbios.iso文件)启动。这意味着当 Qemu 启动模拟的计算机系统时,它会首先尝试从加载的 ISO 镜像文件中寻找引导程序来启动系统,就如同在真实的计算机上设置从光盘驱动器优先启动一样。