KVM/QEMU 从另一个分区虚拟化现有 Linux

KVM/QEMU 从另一个分区虚拟化现有 Linux

我有两个 arch 安装:一个在 /dev/nvme0n1p2 上(包含根目录和主目录),其 EFI 在 /dev/nvme0n1p1 上(同一物理磁盘上的不同分区)。

另一个 arch 安装在另一个物理驱动器 /dev/sda2 上(它包含根目录和主目录),而 EFI 安装在 /dev/sda1 上(同一 /dev/sda 设备上的另一个分区)。

两者都以 KDE plasma 作为默认桌面管理器。

我可以毫无问题地对其中任何一个进行硬件启动。

现在我想在使用 KVM/QEMU 登录 /dev/nvme0n1p2 的同时启动 /dev/sda2 archlinux 作为 VM。

我已完成以下操作:

  • 从 BIOS 启用虚拟化:lscpu | grep Virtualization 显示 VT-x
  • 安装了以下软件包 qemu virt-manager ovmf bridge-utils vde2
  • 启动模块skvm、kvm_intel、virtio、virtio_net、virtio_blk、virtio_pci(使用modprobe)
  • 在客户机(/dev/sda2)上:更新了软件包和 initramd(mkinitcpio -P)
  • 确保 /dev/sda1 和 /dev/sda2 未挂载 (lsblk、fuser、mountpoint)
  • 确保 /usr/share/ovmf/x64/OVMF_CODE.fd 和 /usr/share/edk2/x64/OVMF_VARS.fd 存在

现在,当我尝试运行以下命令时:

sudo qemu-system-x86_64 \
  -enable-kvm \
  -m 4G \
  -cpu host \
  -smp cores=4 \
  -drive file=/dev/sda2,format=raw,index=0,media=disk \
  -drive file=/dev/sda1,format=raw,index=1,media=disk \
  -drive if=pflash,format=raw,readonly=on,file=/usr/share/ovmf/x64/OVMF_CODE.fd \
  -drive if=pflash,format=raw,file=/usr/share/ovmf/x64/OVMF_VARS.fd \
  -net nic \
  -net user \
  -vga virtio 

我收到以下错误:

BdsDxe: failed to load Boot0001 "UEFI QEMU HARDDISK 0100001 " फळ PciRoot (0x0) /Pci (0x1,0x1) /Ata (Pri

mary,Master,0x0) : Not Found

BdsDxe: failed to load Boot0002 "UEFI QEMU HARDDISK 0100002 " from PciRoot (0000) /Pci (0x1,0x1) /Ata (Pri

nary,Slave,0x0) : Not Found

>>Start PXE over 1705. .

你能帮忙解决这个问题吗?

相关内容