我有一个裸机 Ubuntu Server 安装。我使用 dd 创建了一个完整磁盘映像并转换为 qcow2。
qemu-img convert -O qcow2 full_disk.dd.img full_disk.qcow2
然后我在这台机器上安装了全新的 Ubuntu Server 22.04。后来我想用 virt-install 导入磁盘:
virt-install --name guest-host --memory 16384 --vcpus 4 --disk path=/var/lib/libvirt/images/full_disk.qcow2,format=qcow2 --os-variant ubuntu22.04 --network network=default --graphics none --import
此后,“控制台”启动时没有输出。qemu-system-x86 几乎无限期地以100% CPU(在单个核心上)运行。我可以连接:
virsh --connect qemu:///system console guest-host
但仍然没有输出。(我可以用 Ctrl+] 退出)
virsh edit guest-host
包含:
<serial type='pty'>
<target type='isa-serial' port='0'>
<model name='isa-serial'/>
</target>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
--extra-args="console=ttyS0"
进口时不接受该参数。
错误内核参数仅支持位置或内核安装。
我尝试编辑grub.cfg
以使用串行输出,但没有得到任何输出。
我也尝试导入到 VirtualBox。它卡在“从本地磁盘启动...”处。
令人费解的是,它一直使用 100% 的 CPU。在某些时候,虚拟机应该处于空闲状态。VirtualBox 无法启动。我看不到虚拟机在 KVM 下是否在执行任何操作(因为没有输出)。
为了在图形化(virt-manager)环境中进行测试,我在笔记本上尝试了相同的步骤。似乎我无法更改固件和芯片组设置。
进度:在 中virt-manager
,选择操作系统和磁盘映像后,有一个选项可以更改配置。这允许我将固件(启动)更改为 UEFI(有几个选项,其中几个/usr/share/OVMF/OVMF_CODE_4M.fd
有效,我能够启动到图形输出。但是,在virt-install
(在 bash 中,没有 GUI)或 中,virsh
我无法看到或访问输出。CPU 使用率不再是 100%。似乎有一些活动。这些都是好迹象。有一个错误:
error: no suitable video mode found.
。操作系统可能仍在启动。我正在查看网络模式以查看 SSHD 是否正在启动。
另一个选项是配置grub.cfg
串行输出。
最终:我接受了@algebra 的回答。这确实解决了启动问题。我无法获得任何输出。我决定安装lightdm
并ubuntu-desktop
获得一个桌面环境,在那里我可以访问导入的操作系统。事实证明,网络设备的名称可能不同。要获得访问权限,您可以编辑/etc/netplan/...
(永久)或手动激活网络设备(某些东西up
,但不是永久的)。然后,您可以使用 发现虚拟网络上的 VM 客户机nmap -sn <subnet>
。这样您就可以 ssh 到 VM。
附言:我已经删除了旧的问题,因为现在我认为它根本没有启动。
您检查过 EFI / BIOS 启动吗?
我认为 KVM 默认使用 BIOS 启动。如果原始操作系统只有 EFI 启动文件/分区,则无法工作。