尝试在 qemu 中运行 cloudimg,但我找不到访问互联网的方法,帮忙吗?我已经使用以下方式设置了 cloudimg
wget 'https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64-disk-kvm.img';
mkdir -p ./mnt;
sudo guestmount -a jammy-server-cloudimg-amd64-disk-kvm.img -i --rw ./mnt;
sudo chroot ./mnt /bin/passwd --delete root;
sudo umount mnt;
我正在启动 qemu
sudo qemu-system-x86_64 \
-machine accel=kvm \
-cpu host \
-smp cores=4 \
-m size=1G \
-serial stdio \
-boot menu=on \
-drive media=disk,file=jammy-server-cloudimg-amd64-disk-kvm.img,if=virtio,cache=unsafe,format=qcow2,werror=report
系统启动后,我可以以 root 身份登录,但无法访问互联网,ping 时提示
root@ubuntu:~# ping 8.8.8.8
ping: connect: Network is unreachable
我尝试过几种方式授予网络访问权限,
qemu-system-x86_64 -nic user,model=virtio-net-pci
和
qemu-system-x86_64 -nic tap
但似乎没有什么区别,仍然得到ping: connect: Network is unreachable
,我被困住了
答案1
这主要是因为客户操作系统中缺少网络配置,而不是因为虚拟机的配置错误。
根据指示1我通过以下步骤获得了成功。
在启动虚拟机之前,我通过运行以下命令删除了 cloud-init:
virt-customize -a bionic-server-cloudimg-amd64.img --uninstall cloud-init
在主机中。
然后直接使用 qemu-system-x86_64 启动仿生服务器 cloudimg,只传递这个网络附加选项
-nic 用户,hostfwd=tcp::8888-:22
在虚拟机中,以 root 身份登录,我必须使用以下配置网络
cd /etc/netplan
nano 01-netcfg.yaml
然后将此内容添加到创建的文件中
network:
version: 2
renderer: networkd
ethernets:
enp0s2:
dhcp4: true
保存并关闭它,然后运行
netplan --debug apply
此后,ifconfig
报告已配置的网络,并且客人已连接。