Fedora20でqemuを実行する

Fedora20でqemuを実行する

Fedora20を使用してqemu-2.1.1ソースからビルドすると、root以外の権限でqemuを実行できません。

% qemu-system-x86_64 -hda vdisk.img -m 512M -netdev tap,helper=/usr/libexec/qemu-bridge-helper,id=net0 -device e1000,netdev=net0
failed to create tun device: Operation not permitted
failed to launch bridge helper
qemu-system-x86_64: -netdev tap,helper=/usr/libexec/qemu-bridge-helper,id=net0: Device 'tap' could not be initialized

Tun デバイスには適切な権限があります。

% ls -la /dev/net/tun
crw-rw-rw- 1 root root 10, 200 Sep 30 09:22 /dev/net/tun

qemu-bridge-helper には suid ビットが有効になっており、SELinux は無効になっています(「getenforce」は無効になっていることを返します)。何か抜けましたか?

ベストアンサー1

これがQEMUがクッキーを破棄する方法です。読んだら文書あなたは得るでしょう:

蛇口

Tapネットワークバックエンドは、ホストシステムのTapネットワークデバイスを利用します。非常に優れたパフォーマンスを提供し、ほぼすべての種類のネットワークトポロジを生成するように設定できます。残念ながら、ホストシステムでネットワークトポロジを設定する必要があります。これは、使用しているオペレーティングシステムによって異なります。通常、root権限も必要です。

ユーザーとしてQEMUを実行すると、ネットワーク接続が簡素化されます。によるとウィキブックの記事

ネットワークオプションが指定されていない場合、QEMUはデフォルトで単一のIntel e1000 PCIカードをエミュレートし、ホストネットワークにブリッジされたユーザーモードネットワークスタックを使用します。次の3つのコマンドラインは同じです。

qemu -m 256 -hda disk.img &
qemu -m 256 -hda disk.img -net nic -net user &
qemu-system-i386 -m 256 -hda disk.img -netdev user,id=network0 -device e1000,netdev=network0 &

最新のQEMUバージョンでは、-netオプションは-netdevに置き換えられました。

ゲストオペレーティングシステムは、10.0.2.2の仮想DHCPサーバーを持つE1000 NICを確認し、10.0.2.15で始まるアドレスが割り当てられます。仮想DNSサーバーは10.0.2.3でアクセスでき、仮想SAMBAファイルサーバー(存在する場合)は10.0.2.4でアクセスできるため、SAMBAファイル共有を介してホスト上のファイルにアクセスできます。

ユーザーモードネットワーキングは、インターネットを含むネットワークリソースへのアクセスを許可するのに適しています。ただし、デフォルトではファイアウォールとして機能し、着信トラフィックを許可しません。また、TCPおよびUDP以外のプロトコルもサポートしていません。たとえば、pingやその他のICMPユーティリティは機能しません。

おすすめ記事