qemu ゲストの NFS サーバー

qemu ゲストの NFS サーバー

ホストから qemu ゲストに配置されたブロックデバイスをマウントする方法を知る必要があります。したがって、この例では、ゲストシステムにNFSサーバーを配置し、ホスト側にNFSクライアントを配置します。

qemu多くの例がありますが、ホストシステムでゲスト内のフォルダをマウントするときにどのアドレスを指定するのかわかりません。

mount root@localhost:/storage /mnt/storage -t sshfs -o port=2222*

では機能しますsshfsが、NFSでは機能しません(サーバー名は認識されません)。

私は次のステップを使用しました。サーバー側から:

  1. nfs-kernel-serverのダウンロードと起動
  2. エクスポートするには/ storage_nfsを追加してください。
  3. exportfs -va

優秀顧客:

  1. nfs-utilsのダウンロードとインストール
  2. (qemuポート)を試しましたが、mount root@localhost:/storage /mnt/storage -t nfs -o port=2222root @ localhostが機能していないようです(しかしうまくいきますsshfs)。

Qemuゲストをnfsサーバーとして使用するには?

答え1

すべての回答に関するすべてのコメントを読んでから更新してください。

あなたの問題について最初に確認したのは、NATを介してゲストにインターネットを提供するときにゲストとホスト間のブリッジ接続です。 いくつかのスクリプトを使用してFedora 20 HOSTでこれを行う方法を紹介します。スクリプトは最新のDebianで動作しても動作しない可能性があります!

ホストでこのスクリプトを/root/に入れるか、INTERNET_INTERFACEをeth0、p5p1、wlo1、またはwlan0に置き換えます。ホームネットワークがすでにネットワーク192.168.0.0/24を使用している場合は、br0のアドレスを別のものに変更してください。例: ifconfig br0 192.168.100.1/24 up スクリプトを実行可能にして実行します。

use vim or nano:
# nano /root/nat.sh

#!/bin/bash
INTERNET_INTERFACE=wlo1
NORMAL_USER=your_username
tunctl -u $NORMAL_USER -t tap0
brctl delbr br0
brctl addbr br0
brctl addif br0 tap0
ifconfig tap0 0.0.0.0 promisc up
ifconfig br0 192.168.0.1/24 up
iptables -F
iptables -t nat -F
iptables -t nat -A POSTROUTING -o $INTERNET_INTERFACE -j MASQUERADE
iptables -I FORWARD 1 -i tap0 -j ACCEPT
sysctl -w net.ipv4.ip_forward=1
service rpcbind restart
service rpcidmapd restart


# chmod +x nat.sh
# ./nat.sh

ホストから一般ユーザーとして仮想マシンを起動します。(「qemu -kvm」コマンドにはいくつかの魔法があります。これは単なるqemuではありません!)

$ qemu-kvm -cdrom ~/Downloads/flxde.iso -m 1200 -net nic -net tap,ifname=tap0,script=no

もちろん、-cdromを-hdaとイメージパスに置き換え、-m 500または何でも思うように変更してください。重要なのは -net nic -net...... 設定です :)

ゲストコンピュータでインターネットを開きます(私のネットワークインターフェースはFedora 20 Live Imageのens3で、あなたのネットワークインターフェースはおそらくeth0です)。

# ifconfig eth0 192.168.0.100/24 up
verify you can ping 192.168.0.1 before adding it as a gateway.
# ip r add default via 192.168.0.1
# echo "nameserver 8.8.8.8" > /etc/resolv.conf
# ping google.com (verify NAT is working)

NFS関連:

一般的な: pingを使用してホスト<->ゲスト間の接続を確認します。

ゲスト(IP 192.168.0.100)から:

# iptables -F
# service rpcbind restart
# service rpcidmapd restart
# service nfs restart
# vim /etc/exports
/freebsd *(rw,insecure,sync,no_subtree_check,no_root_squash)
# ls -ld /freebsd/
drwxrwxrwx. 4 root root 90 Feb 21 14:41 /freebsd/
# exportfs -var

ホストマシンから:

# service rpcbind restart
# service rpcidmapd restart
# mkdir /freebsd
# mount -o vers=3 192.168.0.100:/freebsd /freebsd

状況が十分に明確であれば教えてください:)

答え2

qemu仮想マシン(ゲスト)でNFSサーバーを実行している場合は、qemuゲストを入力して次のコマンドを実行できる必要があります。

ifconfig -a

次のような出力を返す必要があります。

eth0      Link encap:Ethernet  HWaddr 00:18:51:D4:AA:12  
          inet addr:192.168.1.103  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::218:51ff:fed4:cc53/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:31580565 errors:0 dropped:0 overruns:0 frame:0
          TX packets:28594026 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:22750768353 (21.1 GiB)  TX bytes:25277742297 (23.5 GiB)

デバイスID(eth0)は全く異なるかもしれませんが、結果に出力が含まれていることを願っています。この出力は、qemu ゲストに設定されたネットワークデバイスを示しています。

特に、qemuゲストのIPアドレスに最も興味があるでしょう。この出力に表示する必要があります。上記の例では、ホストのIPアドレスは192.168.1.103です。

この情報を使用すると、NFSサーバーとクライアントを設定するときにこのIPアドレスを使用できるようになりました。

答え3

クライアントにnfsサーバーをマウントすることは、通常のPCにnfsサーバーをマウントするのと同じです。 nfs サーバーの IP だけがわかります。

関連情報