Не работает никакая сеть в QEMU
Пытаюсь работать с виртуальными машинами в QEMU. Столкнулся с проблемой, что ни в какой виртуальной машине не работает сеть. Вообще. Никак.
Вначале запустил машину с Alpine Linux:
~/Virtual/alpine $ qemu-system-x86_64 -k en-gb -m 512M -smp cpus=2 -cdrom alpine.iso -drive if=virtio,file=rootfs.img -boot c
и заметил, что из iso не работает сеть. dhclient eth0
и забивание руками DNS-а в /etc/resolv.conf
не спасает.
Задаю параметр -net user
, и мне выдает ошибку:
qemu-system-x86_64: -net user: network backend 'user' is not compiled into this binary
На всякий случай решаюсь пересобрать QEMU (он-то и изначально собирался из исходников, ибо так надо). Вот configure
опции:
../configure \
--enable-lto \
--enable-modules \
--enable-module-upgrades \
--enable-strip \
--enable-tcg-interpreter \
--prefix=/usr \
--enable-alsa \
--enable-attr \
--enable-auth-pam \
--enable-avx2 \
--enable-avx512bw \
--enable-avx512f \
--enable-bochs \
--enable-bpf \
--enable-brlapi \
--enable-bzip2 \
--enable-cap-ng \
--enable-capstone \
--enable-cloop \
--enable-colo-proxy \
--enable-crypto-afalg \
--enable-curl \
--enable-curses \
--enable-dbus-display \
--enable-dmg \
--enable-docs \
--enable-fuse \
--enable-fuse-lseek \
--enable-gcrypt \
--enable-gettext \
--enable-gio \
--enable-glusterfs \
--enable-gnutls \
--enable-gtk \
--enable-gtk-clipboard \
--enable-guest-agent \
--enable-hv-balloon \
--enable-iconv \
--enable-jack \
--enable-keyring \
--enable-kvm \
--enable-l2tpv3 \
--enable-libdaxctl \
--enable-libdw \
--enable-libiscsi \
--enable-libkeyutils \
--enable-libnfs \
--enable-libssh \
--enable-libudev \
--enable-libusb \
--enable-libvduse \
--enable-linux-aio \
--enable-linux-io-uring \
--enable-live-block-migration \
--enable-lzo \
--enable-malloc-trim \
--enable-membarrier \
--enable-multiprocess \
--enable-numa \
--enable-opengl \
--enable-oss \
--enable-pa \
--enable-parallels \
--enable-pipewire \
--enable-pixman \
--enable-plugins \
--enable-png \
--enable-pvrdma \
--enable-qcow1 \
--enable-qed \
--enable-rdma \
--enable-replication \
--enable-sdl \
--enable-sdl-image \
--enable-seccomp \
--enable-selinux \
--enable-slirp \
--enable-slirp-smbd \
--enable-smartcard \
--enable-snappy \
--enable-sndio \
--enable-sparse \
--enable-spice \
--enable-spice-protocol \
--enable-stack-protector \
--enable-tcg \
--enable-tools \
--enable-tpm \
--enable-usb-redir \
--enable-vde \
--enable-vdi \
--enable-vduse-blk-export \
--enable-vhdx \
--enable-vhost-crypto \
--enable-vhost-kernel \
--enable-vhost-net \
--enable-vhost-user \
--enable-vhost-user-blk-server \
--enable-vhost-vdpa \
--enable-virglrenderer \
--enable-virtfs \
--enable-virtfs-proxy-helper \
--enable-vmdk \
--enable-vnc \
--enable-vnc-jpeg \
--enable-vnc-sasl \
--enable-vpc \
--enable-vte \
--enable-vvfat \
--enable-zstd \
--enable-system \
--enable-user \
--enable-linux-user \
--enable-pie \
--enable-xkbcommon \
--enable-rbd \
--extra-cflags='-march=native' \
--extra-cxxflags='-march=native' \
--extra-objcflags='-march=native'
Не помогает. Скачиваю и собираю из исходников libslirp, затем пересобираю с ним QEMU, но результат тот же - сеть не работает. Не работает даже опция -net nic
:
~/Virtual/Win10 $ qemu-system-x86_64 -accel kvm -k en-gb -smp cores=1 -m 1400M -drive if=virtio,file=disk_c.img -cpu qemu64 -M pc,vmport=off,usb=false,pic=off -drive if=virtio,file=disk_d.img -net nic,model=rtl8139
И что делать? В чем вообще проблема, в slirp или в qemu, или еще в чем-то? Как решить проблему, ну или где хотя бы найти, скажем так, источник проблемы. Может, не хватает чего-то (или наоборот, что-то мешает)...
На хосте сеть работает без проблем.
Ответы (1 шт):
Я понял, в чем была проблема. Вот "в лоб" вывод configure --help
:
...
--prefix=VALUE Installation prefix [/usr/local]
...
А теперь проверяю "в лоб" сам бинарник QEMU:
~ $ ldd /usr/local/bin/qemu-system-x86_64 | grep slirp
...
И там нету библиотеки slirp. Т е при сборке qemu с ней не слинковался! Вот и причина проблемы. Да и решение очевидно.