QEMUネットワーク通信が破損しています

QEMUネットワーク通信が破損しています

pacman仮想マシン()内でパッケージマネージャを使用すると、ランダムに次の破損したパッケージが提供されます。

error: <package>: signature from "<whomever>" is invalid
:: File /mnt/var/cache/pacman/pkg/<package>.pkg.tar.xz is corrupted (invalid or corrupted packgage (PGP signature))

私は次の設定を持っています:

  • Arch Linuxホスト(カーネル5.3.11.1
  • 次に、UFWファイアウォールを使用してください(0.36
  • tun0次に、OpenVPN()で生成されたネットワークインタフェースを介してのみ接続を許可するように設定します2.4.8

ネットワーク接続は、少なくとも5年間コンソールのあらゆる面でうまく機能しました。4.1.0次のオプションを使用して、QEMU(QEMU)を使用してArch Linuxであるゲストを設定しようとしました。

qemu-system-x86_64 \
    -name 'Arch Linux' \
    -display vnc=:0 \
    -m size=8G \
    -enable-kvm \
    -cpu host \
    -smp cores=2,threads=2 \
    -k en-us \
    -boot order=d \
    -cdrom "<iso>" \
    -drive "if=pflash,format=raw,readonly,file=<file>" \
    -drive "if=pflash,format=raw,file=<file>" \
    -drive "if=virtio,format=qcow2,file=<file>"

-nic user私が理解したように、追加のエントリを指定せずにゲストがインターネットに接続されている場合は、デフォルトに設定されます。

仮想ハードドライブが問題の原因であり、システム全体をさまざまな物理的な場所(SSD、HDD)に百万回再インストールしてみましたが、何も解決しませんでした。完全性のために、仮想ドライブは次のように作成されます。

qemu-img create -f qcow2 "<file>" 16G

時には十分に試して運が良く、コンテナをダウンロードすると、破損したデータに対して同じランダムエラーを提供するdockerゲスト内部のインストール操作で終わります。これはネットワーク構成関連のエラーであると信じています。私は設定が間違っていることを願ってQEMU(および)dockerの上でそれを試しましたが、再び同じ問題に遭遇しました。libvirtvirshvirt-manager

ある時点で、私の設定は次のネットワーク構成を使用しました。

# ...
-net "user,hostfwd=tcp::2222-:22,hostfwd=tcp::8000-:8000,hostfwd=tcp::4200-:4200,hostfwd=tcp::9222-:9222,smb=<path>" \
-net nic,model=virtio \
# ...

しかし、それももう機能しません。こうなると、私が何を間違っているのかとても混乱しています...

答え1

この問題の原因が正確に何であるかを説明することはできませんが、いくつかのトラブルシューティング方法を教えてください。

ネットワークに問題があると思われるかどうかを確認できます/proc/net/snmp。原稿が少し混乱してお勧めします</proc/net/snmp column -t | less -S。名前に対応する項目を含む列を表示しますCsumErrors

破損がディスクレベルで発生したと思われる場合(私が疑った)、そこでBtrfsを使用すると確実に見つけることができます。これは、チェックサムFSを大量に使用するLinuxの唯一の軽量汎用目的であるためです。

- ゲストVM、特にBtrfsを使用するときにQcow2でいくつかの問題が見つかりましたfstrim。 ;-)

答え2

KVM仮想マシンマネージャを使用してVMを起動していますか?その場合は、GUIのデバイス設定ファイルに移動して、nicをvirtioに確認して変更できます。他の項目がある場合は削除してください。

関連情報