问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

用QEMU玩转Ubuntu+Win7双系统启动

创作时间:
作者:
@小白创作中心

用QEMU玩转Ubuntu+Win7双系统启动

引用
CSDN
11
来源
1.
https://blog.csdn.net/weixin_45139984/article/details/136655911
2.
https://blog.csdn.net/cjhcjq122108/article/details/136670261
3.
https://blog.csdn.net/simulate_create/article/details/141234363
4.
https://blog.csdn.net/hongyu123454321/article/details/139902143
5.
https://blog.csdn.net/antta666/article/details/135984259
6.
https://cloud.baidu.com/article/3329061
7.
https://blog.csdn.net/rikeyone/article/details/80759861
8.
https://docs.pingcode.com/baike/2791537
9.
https://www.daodaodao123.com/?p=1532
10.
https://blog.qdac.cc/?p=5818
11.
https://docs.pingcode.com/baike/3294395

在一台电脑上同时运行多个操作系统,是很多技术爱好者和开发者的常见需求。使用QEMU模拟器,我们可以轻松实现Ubuntu和Windows 7的双系统启动。本文将详细介绍如何使用QEMU创建虚拟磁盘、安装操作系统,并实现双系统启动。

01

环境准备

安装QEMU

在Ubuntu系统中安装QEMU,可以按照以下步骤操作:

  1. 打开终端窗口。
  2. 更新软件包列表:
sudo apt update
  1. 安装QEMU及其相关组件:
sudo apt install qemu qemu-kvm libvirt-daemon libvirt-clients bridge-utils virt-manager
  • qemu:QEMU模拟器的主要包。
  • qemu-kvm:QEMU的KVM支持(用于硬件虚拟化)。
  • libvirt-daemon:用于管理虚拟化的后台进程。
  • libvirt-clients:提供了一套用于管理虚拟化的客户端工具。
  • bridge-utils:提供了创建和管理网络桥接的工具。
  • virt-manager:是一个图形化的虚拟机管理器,可以通过它来管理和配置虚拟机。
  1. 验证安装:
qemu-system-x86_64 -version

这应该会显示QEMU的版本信息。

创建虚拟磁盘

使用qemu-img指令创建一个虚拟磁盘test.img,默认设置为raw格式,同时指定存储空间大小为60G。

qemu-img create -f raw test.img 60G

注意此时只是一个虚拟磁盘,并没有产生占用空间,所以硬盘占用为0G。

准备操作系统镜像

从网上下载Windows 7和Ubuntu的ISO镜像文件:

  • win7.iso
  • ubuntu_amd64.iso
02

安装操作系统

安装Windows 7

使用qemu-system-x86_64指令启动64位机的模拟程序,设置内存大小为8G,虚拟磁盘为test.img,光驱为win7.iso,4核CPU。另外指定为从光驱启动,这样可以运行Windows 7的安装程序。

qemu-system-x86_64 -m 8G -hda test.img -cdrom win7.iso -smp 4 -boot d

根据提示完成Windows系统的安装。在安装时划分磁盘,为Linux系统预留空间。

安装Ubuntu

使用相同的指令启动虚拟机,但将光驱镜像改为Ubuntu的ISO文件:

qemu-system-x86_64 -m 8G -hda test.img -cdrom ubuntu_amd64.iso -smp 4 -boot d

在安装Ubuntu时,为了正确启动双系统,我们需要进行如下准备与操作:

  1. 查看Windows 7系统信息可以发现为BIOS启动,由MBR引导。Windows 7安装系统时会自动在C盘前划分出一块100MB大小的活动分区。该活动分区中存有MBR,相关引导文件以及Windows内核。BIOS启动时不支持双系统。一般而言,BIOS会默认读取第一扇区的512字节。如果该扇区为MBR则启动成功,否则失败。

  2. 根据BIOS启动的方式我们不难发现,此方式无法启动双系统。这就是为什么我们会遇到安装完Ubuntu之后再运行虚拟机,会自动进入Windows 7系统的问题了。因为BIOS会默认读取Windows 7的MBR,然后拉起Windows 7。

  3. 要解决这个问题,要么设置启动方式为UEFI启动(该启动方式支持多操作系统启动),要么让Ubuntu改写MBR,让MBR跳转到EFI分区中。简单来说,UEFI不像BIOS一样把代码存在ROM中,而是在硬盘上设置了一个.efi格式的文件,该文件中存有UEFI启动代码以及多个操作系统的boot_loader(每个操作系统都有一个boot_loader,例如Windows 7的MBR,Ubuntu的GRUB_2)。启动时,可以选择由哪个boot_loader启动。

  4. 但是我们安装的Windows 7为BIOS启动,如果我们安装了用UEFI启动的Linux,很可能不兼容出问题。所以我们只能采取第二种方法:修改MBR,让它跳转至GRUB。(幸运的是这个过程Ubuntu会帮我们自动完成)

  5. 安装Ubuntu时,将硬盘的剩余空间进行划分,挂载\root以及设置一个.efi的分区。(当然如果硬盘够大,可以分别设置分区挂载\boot\swap\user\home。这些分区具体功能不多赘述)然后进行安装。

  6. 完成步骤4之后,我们启动时MBR会跳转入GRUB。多亏了GRUB_2支持多级引导功能。简单而言,GRUB不仅支持Ubuntu启动,同时它也可以启动winload.exe。GRUB拉起winload.exe,然后再由winload.exe拉起Windows 7系统。所以到此为止,双系统安装已经成功了。

03

配置双系统启动

Windows 7启动方式

依旧使用x86_64模拟器启动虚拟机,启动时可以使用参数来配置虚拟机。但是默认的bios-256k不支持Windows 7,所以要指定bios.bin

qemu-system-x86_64 -m 8G -smp 4 -boot c -hda test.img -bios bios.bin

Ubuntu启动方式

qemu-system-x86_64 -m 8G -smp 4 -boot c -hda test.img [-bios bios.bin]
04

使用与管理

切换系统

要切换启动系统,只需在启动QEMU时更改ISO镜像文件即可。例如,要启动Windows 7:

qemu-system-x86_64 -m 8G -hda test.img -cdrom win7.iso -smp 4 -boot d

要启动Ubuntu:

qemu-system-x86_64 -m 8G -hda test.img -cdrom ubuntu_amd64.iso -smp 4 -boot d

网络配置

QEMU支持多种网络配置方式,包括用户模式网络、TAP网络等。最简单的方式是使用用户模式网络:

qemu-system-x86_64 -m 8G -hda test.img -net nic -net user

这将为虚拟机提供基本的网络访问能力。

常见问题

  1. 图形界面无法显示:确保已正确设置DISPLAY环境变量。在WSL中,需要编辑~/.bashrc~/.zshrc,添加以下内容:

    export DISPLAY=$(grep nameserver /etc/resolv.conf | awk '{print $2}'):0
    export LIBGL_ALWAYS_INDIRECT=1
    
  2. 启动时自动进入Windows 7:确保在Ubuntu安装时正确配置了GRUB引导加载程序。

  3. 网络连接问题:检查QEMU的网络配置参数是否正确。

通过以上步骤,你可以在一台电脑上同时运行Ubuntu和Windows 7,实现双系统启动。这种方法非常适合用于学习计算机科学原理、测试不同操作系统环境或运行特定软件。希望这篇文章能帮助你顺利搭建起自己的双系统环境!

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号