Windows XP + Virtual PC 2007 で FreeBSD 9.2 を使ってみようとして苦戦中です。
私が愛用しているFreeBSDは8系が主ですが、9系も9.2がリリースされてこなれてきた頃だと感じていますので、先日作成したWordPress用仮想環境を、今度はFreeBSD 9.2上に構築してみようと考えています。前回はVirtualboxを使用したので、今度はMicrosoft Virtual PC 2007 を使ってみようと考えました。Virtual PCはホストPCのUSBポートをゲストOSから使用できないため機能的には劣っているのですが、Windows7のXPモードの実体なので、Win7 Professional バージョンを使う場合、ディスクイメージだけコピーすれば標準で使用できるのではないかと考えたためです。
そしてOSインストール作業。
私がFreeBSD をインストールする場合、通常インストールファイルをネットワークから直接インストールするため、boot only ISO イメージを使っています。今までに何度も行っている作業のため、メモに残すほどのことではないのですが、今回は基本的なところでトラブっています。ブートCDから起動して、FreeBSD配布サイトからftpまたはhttp でファイルをダウンロードしながらインストールを行えるはずが、以下の症状でネットワークが開通しません。
- 仮想NICにDHCPサーバーからIPアドレスが割り当てられない!
- 強制的にスタティックIPアドレスを割り当てても、外部ホストと通信できない!
仮想ネットワークアダプターにホストPCのNICを割り当てても、NATを使っても同じ症状。
DHCPを利用する設定にした場合、DHCPサーバーが割り当てるDNSサーバーとドメイン名はインストール途中の画面に表示されるため、一応DHCPパケットは出ていると思われるものの、ping を自ネットのルーターIPアドレスに送ってみても、no route to host (IPアドレスを取れていないため当然か)となり、使えません。強制的にスタティックアドレスを割り当てた場合、”ping: sendto: Host is down” となりやっぱり仮想NICが何かおかしい。
過去、Windows2000とVirtual PC + FreeBSD の組み合わせで使えていたので、今のWinXP PCの設定やらファイルやらが壊れたのかも?と、仮想Win95を起動してみてDHCPサーバーからアドレスが取れるかどうか確認したところ、Win95は問題なくネットワーク利用できるようです。
検索エンジンで「virtual pc 2007 freebsd ip address dhcp」と検索してみたところ、FreeBSDフォーラムの中に同様の症状が見つかりました。
理由は不明ですが、dhcpクライアント同期と明示的に仮想NICのメディアを指定しないといけないようです。
具体的には、/etc/rc.conf の中に、次の2行を追加すればDHCPでアドレスを取れるようになるとのこと。
synchronous_dhclient="YES" ifconfig_de0="DHCP media 100baseTX mediaopt full-duplex"
試してみたところ、確かにDHCPサーバーからIPアドレスをもらえて、外部への通信と外部からのログインができるようになりました。
しかし、スタティックIPアドレスを手動設定する場合はどうすればいいのかはわからないまま。上記リンクのFreeBSDフォーラムなどでは、手動でIPアドレスを設定する場合は問題ないという情報ばかり見つかり、固定IP時にNICが使えないという現象は報告されていません。私も過去には使えていた覚えがあるので、FreeBSD9.2固有の問題である可能性もあります。
とりあえず、Virtual PC 2007 + FreeBSD 9.2 + DHCPクライアント の問題として上記の現象が観察されたということでメモを残すことにします。
2013/11/29追記
Windows7 Professional を新規インストールする機会がありましたので、Win7 Proの XPモード(Virtual PC)とFreeBSD 9.2 の組み合わせでDHCPでアドレスを取れるかどうか、スタティックIPを設定したとき通信が可能かどうかを確認してみました。
- ifconfig_de0=”DHCP” では、IPアドレスを取得することは出来ませんでした。
- 上記2行をrc.conf に記述した場合、問題なくIPアドレスが設定できました。
- スタティックアドレスを指定した場合は、問題なくIPアドレスを設定でき、外部との通信も出来ました。
Virtual PC と FreeBSDの組み合わせでDHCPを使う場合は、上記2行の記述は必須のようです。
スタティックアドレスで外部通信できるかどうかは、Virtual PCを動作させるハードウェアによるのではないかと推測します。