• 締切済み

QEMUを使ったホストOS、ゲストOSともりWindowsの場合のファイル共有の仕方

QEMUというのをご存じでしょうか? Fablice Bellard氏により開発されたCPUエミュレーターで、 なんらかのOSの上で、別のOSをアプリのように動かすことができる ソフトウェアの一つです。 いま、わたしはそれのWindows版を使って、 Windows2000(以下ホストOSと呼びます)上で、Windows98(以下ゲストOSと呼びます)を動かしています。 そこで問題となっているのは、ホストOSとゲストOSのファイルの共有 なんです。 ゲストOSからはQEMU内臓のNATを通して外部のインターネットに 接続できています。 しかし、ホストOS-ゲストOS間では相互にマシンが見えません。 当然ファイル共有もできません。 ホストOS、ゲストOSともにWindowsネットワーククライアントの 設定をしてファイル共有も可に設定しています。 ホストOSであるWindows2000には、ルーターのDHCPでプライベートアドレス に198.168.1.x系が設定されています。 一方、Windows2000上で動くゲストOSのWin98は、QEMUが内臓している DHCPで10.0.2.x系が自動的に設定されていて、外部のインターネットにでる時 内臓のNATを通してホストOSのアドレスに変換されてると思います。 (10.0.2.xの値の変更はソースをハックしないとできないと思います。) どなたか、ホストOS、ゲストOSともにWindows系を使って QEMUを使われている方、お知恵を拝借できないでしょうか? 因みに、QEMUにはtftpサーバも内臓されているのですが、 最大転送ファイルサイズで32768バイトしか転送できないので普通の ファイル共有にはちょっと使えません。

みんなの回答

回答No.2

どうもド素人がくちばし挟んで失礼しました 下記URL内の”ユーザーモードでのネットワークの使い方” http://www.h7.dion.ne.jp/~qemu-win/HowToNetwork-ja.html 4. オプション-redirによるホストOSからゲストOSへの接続 というのがそのものっぽい気がしますが・・・

参考URL:
http://www.h7.dion.ne.jp/~qemu-win/index-ja.html
dennou2000
質問者

お礼

御回答ありがとうございました。

dennou2000
質問者

補足

そのホームページは既に拝見しています。 -redirオプションは、ホストOSのポートをゲストOSのポートへマッピングする機能です。 この時、マッピングする二つのポート番号は違えないといけません。 なぜなら、同じにしてしまうと、ホストOS側がそのポート番号で受信ができなくなるからです。 CIFSの139/tcpの例で考えて、-redirでゲストOSの139をホストOSの139にマッピングしたとします。 ホストOS側からゲストOSへは、ターゲットをホストOSの139/tcpとします。 これにより、ホストOSの139/tcpを介してゲストOSの139/tcpにアクセスしてCIFSでファイル共有できます。 逆にゲストOSからホストOSへCIFSでファイル共有しようとすると、ホストOSの139/tcpへ直接アクセスする事になります。 これは、-redirオプションは、ホストOSのポートをゲストOSのポートへマッピングする機能であって、その逆はできないからです。 (原文:When using the `-redir' option, TCP or UDP connections can be redirected from the host to the guest. ) それで、ホストOSの139/tcpへ直接アクセスすると、これはゲストOSの139/tcpへマッピングされているので、ゲストOS側で戻ってきてしまいます。 それでは、ポート番号を違えてみましょう。 同じくCIFSの139/tcpの例で考えて、-redirでゲストOSの139をホストOSの140にマッピングしたとします。 ホストOSからCIFSでファイル共有しようとして、ターゲットをホストOSとします。 しかし、CIFSの通信を確立する事はできません。 なぜなら、140/tcpはCIFSで使うポート番号ではなく、CIFSで使うポート番号は139/tcpと決まっているし、Windowsの機構としてそう作られてるからです。 逆に、ゲストOSからホストOSへのCIFSによるアクセスはホストOSの139/tcpへ直接接続しようとします。 結局、いずれの場合でも-redirの設定が全然有効に働かない事になります。 わたしの認識としては、-redirが使えるのは、HTTPでホストOSをプロキシのように使う場合とか、ホストOS側のサービス/デーモンの待ち受けポート番号がある程度自由に設定可能な場合とか、ポート番号の変更の自由度がある場合に限られると思っています。

回答No.1

QEMUを使ったことが無いし、エミュレータというのは実機と 仮想機のデバイスを1:1に対応させる役目を果たすだけのもの だと思うので、ホストOS・ゲストOS間でネットワーク構築と いうのが出来るものなのやら分かりませんが、他の(IBM互換機 でない)PCエミュレータだとファイルの相互利用は エミュ側からホストOSの利用ドライブが見えるドライバ ホストOSからエミュのディスクイメージが覗けるツール を使って実現しているのがあります QEMUに入れたOSに対応する上記のようなモノを探して 使った方が早いと思います(あるかどうかは知りませんけども)

dennou2000
質問者

お礼

御回答ありがとうございました。 「回答に対する補足」に書かせていただきましたが、ご指摘のようなツール、ドライバは付属していません。 ゲストOSが起動中でない時にディスクイメージを操作するツールは、フリーソフトとかであります。 しかし、やりたいことは、あくまでゲストOS起動中のファイル操作ですので、これは除外されます。 「回答に対する補足」にも書いたようにゲストOSのネットワークセグメントとホストOSのネットワークセグメントはNATで接しているのでWindows系同士ならNBTかCIFSでファイル共有が可能だと思ったのですがダメでした。

dennou2000
質問者

補足

因みにQEMUにその手のツールやドライバはありません。 ゲストOS自体はホストOS上にディスクイメージをもっていて、QEMUがそれを読んで、ホストOS上でゲストOSを動かすという感じです。 ついでに、QEMU自体がDHCP/NAT/DNS/Sambaサーバを内臓していて、QEMU固有のネットワークセグメントを構成しています。 それとホストOS側のネットワークセグメントがNATを接点に隣り合っているような感じです。

関連するQ&A

  • ホストOSの無線LAN接続をゲストOSで使えるか?

    ホストOSの方で、MACアドレス認証のフレッツスポットを使っています。 ゲストOSをブリッジでつなぐと、別のIPアドレスとなり無線LANが使えません。 NATなら同時に繋がります。ブリッジのゲストOSから共有でホストオSのネットワークを 使って、インターネットができませんか?ホストOSはWINDOWS7 ゲストOSはXPです。

  • VirtualPCで、ゲストOSにLinux導入したけど、ホストOSからpingが通らない

    Win2000/ProのホストOS内に、VirtualPC(4.1)のソフトをインストールし、 ゲストOSとして「RedhatLinux7.1J」をインストールしました。 その後、ゲストOS(Linux)から、ホストOS(Win2000)に対してPingができる事を確認できたのですが、 ホストOS(Win2000)から、ゲストOS(Linux)に対して、Pingが通りません。 何か設定など必要でしょうか? (どうしても、ホストOSから、ゲストOSに通信したいのです!) ちなみに、どちらとも固定IPアドレスを振っております。 <Ping現象パターン/ネットワーク設定別> 1:なし  ×ホストOS[Win2000] → ゲストOS[Linux]  ○ゲストOS[Linux] → ホストOS[Win2000] 2:共有ネットワーク(NAT)  ×ホストOS[Win2000] → ゲストOS[Linux]  ○ゲストOS[Linux] → ホストOS[Win2000] 3:バーチャルスイッチ(ローカルと外部のみ)  ×ホストOS[Win2000] → ゲストOS[Linux]  ×ゲストOS[Linux] → ホストOS[Win2000]

  • vmwareplayerにインストールしたゲストOSとsambaでファイル共有する方法

    お世話になります。 下記を実現するにはどうすればよいでしょうか? (1)VMwarePlayerにてホストOSがwindowsXP Pro、ゲストOSがLinux (2)ゲストOSの接続タイプはhost-only (3)ゲストOSのLinuxでsambaを設定し、windowsとファイル共有する (1)、(2)に関しては設定できているつもりですが、(3)の設定方法がよくないのかwindowsから見ることができません。 よろしくお願いします。

  • vmwareworkstationでホストosとファイル共有

    vmware workstation 5.0.0 でホストosがwinXP、ゲストosがvine linux3.2なんですが、osインストール、vmwaretools のインストールまではうまくいったんですが、そのvmwaretoolsの機能のひとつであるホストosとのファイル共有がどうしてもうまくいきません vmware側で設定したところまではうまくいったんですが、/mnt/hgfsというディレクトリができたんですが、その中にvmwareで設定したフォルダが見付かりません。 こちらの設定が悪いんでしょうか?それともホスト側にも何かしらの設定がいるのでしょうか? どうかお願いします

  • ホストOSからゲストOSへのHTTP接続

    VMwareServerを使用し、ゲストOSにWebサーバを入れ、Webアプリの開発を行っています。 <環境> ホストOS:WindowsXP ゲストOS:RHEL4 Webサーバ:Tomcat5.5 ※ホスト・ゲストともにDHCPでIPアドレスを振っています。  ゲストOSのEthernetはBridgedです。 ブラウザからWebサーバ上のページにアクセスしたところ、 他端末(WinXP)からは正常にアクセスできましたが、 自端末(ホストOS・WinXP)からはアクセスできませんでした。 自端末からゲストOSへは、pingは通ります。 DHCPで振られたIPアドレスを使って、TeraTerm等のコンソール接続もできます。 Webサーバーへ自端末からも接続できるようにするためには、どのように設定するのでしょうか? どなたかお教えください。よろしくお願いします。

  • Hyper-V ホストOSとゲストOSを通信させる

    Hyper-Vを使用して、ホストOS(windows server 2012)、ゲストOS(CentOS6.4)の設定をしております。仮想スイッチ「内部」でホストとゲストを通信させたいのですがうまくいきません。 ホストOSよりpingで確認したところ、ゲストOSへの通信は問題ないようでした。 しかし、ゲストOSよりpingしたところ通信ができてませんでした。 どうしたらゲストからもホストに接続でき、ホストとゲストで通信できますでしょうか? そもそも設定方法が悪いのでしょうか? 最終的にはフォルダの共有ができたらと思ってます。 詳細: ・仮想スイッチは内部で、ネットワークアダブター(手動)とレガシーアダブター(他のコンピュータと接続)、2つ同一名で接続してます。 ・ホストOSにある仮想アダブタは「認識できません」ではなく「ネットワーク2になっており、IPアドレスも表示され通信の送受信もされている。

  • vmwareネットワーク設定

    vmwareのゲストOS(Vine 3.2、ホストはwin xp)から NATで、インターネット接続する方法がわかりません。 現在の設定は、 ホスト:インターネット接続の共有でvmnet8を共有化。     vmnet8のDNSはホストのDNSと同じ。 ゲスト:特に設定していない。 です。 やはり、ゲストでDHCPにてIP自動取得しなければ ならないのですかね?? また、ホスト/ゲストのファイル共有はどうしたらできる のでしょうか? ということで、以下2点について 1.ゲストのNATを用いたインターネット接続方法。 2.ホスト、ゲストのファイル共有方法。 よろしくご教示お願いします。

  • ゲストOSからホストOSにコピー出来ない

    お世話になります。 タイトルのとおり、ゲストOSからホストOSにコピー出来ません。 Virtual PCでホストOSがVista、ゲストOSをXpとしていますが、 ゲストOSからホストOSのデスクトップへコピーしようとすると、 ”この宛先には既に’DragonDropProcesseFolder'が存在します。” と出て 上書きの確認を要求してきます。 OKとすると次に ”ファイルのコピー中にホストPC上でエラーが発生しました         Virtual PCでエラーが発生しました(d3)" となりコピーできません。 ホストOSからゲストOSのへのコピーは可能です。 よろしくお願いします。

  • VMwareにてゲストOSをホストと違うプロバイダで・・・

    VMwareを利用したインターネット接続について、 可能かどうか分からないのですが質問させて下さい。 現在、1台のルータにマルチセッションで2つのプロバイダを 登録しています。(1つ目:BIGLOBE、2つ目:ニフティ) DHCPで、デフォルトはBIGLOBE接続、 除外IPの1つだけはニフティ接続にするよう設定してあります。 そして、VMwareを利用して ホストOS(XPhome)はDHCP自動取得(BIGLOBE)接続で仕事、 ゲストOS(Win2000)は除外したアドレスを設定し、ニフティ接続で 仕事をしたいと考えているのですが、 実際にやってみたところ、 VMwareを立ち上げ、ゲストOS内でネットワーク接続を 固定IP(DHCPの除外アドレス)でインターネット接続すると、 たしかにニフティのプロバイダに接続されるのですが、その瞬間 それまでBIGLOBE接続だったホストOS(XP Home)まで ニフティの接続になってしまいます。 (VMwareを終了しても、ニフティ接続のままです) 一貫してホストOSのローカルIPは、DHCPで自動取得された IPになっており、除外IPを指定しなければ接続されないはずの ニフティ接続になるのは何か原因があるのでしょうか。 (ゲストOS側の接続が優先されてしまうのでしょうか・・・) ちなみに、ゲストOSの接続を自動取得に変更すると、 ホストもゲストもBIGLOBE接続になります。 自分の希望としては、 ホストOSはBIGLOBE接続、 ゲストOSはニフティ接続 としたいのですが、今の環境(VMwareをインストールしている 家庭用ノートPCと、現在のルータ(バッファロー:WZR-RS-G54)で これは可能でしょうか? それともこの環境だと、同時に二つのプロバイダを1台のPCで接続する事は 出来ないのでしょうか? 宜しくお願い致します。

  • VmWareにてホストOSとゲストOSの通信ができない

    ネットワーク設定の初心者です。 現在、VMWare Server 1.0.1を使用し、 ホストOS:WindowsXP ゲストOS:redhat linux 5 で環境構築しているのですが、ホストOSとゲストOSとの通信ができません。(PINGが通りません。) VMWareのネットワーク設定としてはホストオンリーにしています。 ※ホスト、ゲストの両方のファイアウォールはDisableにしてあります。 また、VMnet1とホストOS,ゲストOSのサブネットは統一してあります。 ホストOSとゲストOS間の通信を行うために他に必要な設定、確認事項がをご教授ください。 言葉足らずなところがあるため、上記の質問でわかりづらいところがあると思いますがその場合はご遠慮なくご質問ください。 よろしくお願い致します。