普段、Windows上で使用している、Virutual Boxの設定
こう使えばいいぞ!的な。
説明はdebianだが、ubuntuも。
Fedora、CentOSでも手順はおなじ。
- Windows上で、Linuxを使用する。主にTeraTermでアクセス。
- Linuxからは外部ネットワーク接続はできるが、外部からは入れない(Webやftpサーバとして使う場合、必要なときは入れるようにする)。
- Linux(ゲスト)側からWindows(ホスト)上のフォルダを自由にアクセスできる。
- Windows上からはLinuxフォルダへのアクセスは不可(必要ならSambaを稼働)
という設定
1.VirutualBoxの設定
2. ネットワークの設定
ネットワークカード(NIC)は2枚差しのイメージとする。1枚目はNATで、Linux -> 外部ネットワーク と疎通ができるもの
2枚目はホスト(Windows)側からゲスト(Linux)側への疎通(TeraTerm接続)ができるものを用意
3. Linux(ゲスト)とWindows(ホスト)と共有フォルダを作成する
(LinuxからWindowsファイルフォルダへフルアクセスできるようにする)
4. Windows(ホスト)側の設定は「VirutualBox Host-Only Network」と名付けられてインストールされたNICを設定する(VirutualBoxセットアップ時に勝手に作られている)

5.Linux側のセットアップは、eth0、eth1とも自動IP取得(dhcp)で構わない。
※ ubuntuは特に何もせずとも構わない。
user@vmub:/etc/network$ ifconfig
eth0 Link encap:イーサネット ハードウェアアドレス 08:00:27:ea:ee:5a
inetアドレス:10.0.2.15 ブロードキャスト:10.0.2.255 マスク:255.255.255.0
inet6アドレス: fe80::a00:27ff:feea:ee5a/64 範囲:リンク
UP BROADCAST RUNNING MULTICAST MTU:1500 メトリック:1
RXパケット:2630 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:1405 エラー:0 損失:0 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:1000
RXバイト:1978315 (1.9 MB) TXバイト:138133 (138.1 KB)
eth1 Link encap:イーサネット ハードウェアアドレス 08:00:27:66:7e:f1
inetアドレス:192.168.56.101 ブロードキャスト:192.168.56.255 マスク:255.255.255.0
inet6アドレス: fe80::a00:27ff:fe66:7ef1/64 範囲:リンク
UP BROADCAST RUNNING MULTICAST MTU:1500 メトリック:1
RXパケット:1644 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:1294 エラー:0 損失:0 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:1000
RXバイト:183681 (183.6 KB) TXバイト:260785 (260.7 KB)
lo Link encap:ローカルループバック
inetアドレス:127.0.0.1 マスク:255.0.0.0
inet6アドレス: ::1/128 範囲:ホスト
UP LOOPBACK RUNNING MTU:65536 メトリック:1
RXパケット:256 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:256 エラー:0 損失:0 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:0
RXバイト:22762 (22.7 KB) TXバイト:22762 (22.7 KB)
user@vmub:/etc/network$
6.Linux上のrootユーザで、VirutualBox提供のAdditionツールをCDマウントし、VBoxLinuxAdditions.runを実行する。
7.TeraTermで接続する
Ubuntu では、
$ sudo su -
# apt-get update
# apt-get openssh-server
が必要
8.共有フォルダのパーミッション
デフォルトでは、共有フォルダは、以下のようにrootユーザ、vboxsfグループのみアクセス可能となっております。
user@vmub:/media$ ls -ld /media/sf_pc
drwxrwx--- 1 root vboxsf 4096 5月 15 18:57 /media/sf_pc
/etc/group ファイルのvboxsf の行を探して、使用可能なユーザを追加します。
自分のアカウント名が、userなら以下のようにします。
vboxsf:x:999:user
※ 数字は異なる場合があります。
以上で、/media/sf_pc にWindowsフォルダがマウントされました。
$ ln -s /media/sf_pc ~/pc
~/pcで使用可能にする。
9.その他
定期的にLinux上でUbuntu/Debianなら、# aptitude upgrade、Fedora、Red-hat、Cent-OS系ならyum updateのあとに共有フォルダが使えなくなる場合があります。このときは、rootユーザで以下を実行します。
# user@vmub:/etc/network$ /media/user/VBOXADDITIONS_4.3.28_100309/VBoxLinuxAdditions.run
※ 手順6とおなじ
※ 「user」の部分は読み替えてください
10.外部からアクセスしたい場合
Linux(ゲスト)上ににWebサーバをたててPCからアクセスする場合は、192.168.56.xでアクセス可能ですが、他のLAN上のPC側からLinux(ゲスト)PCへアクセスしたい場合、以下のようにしてVirutualBoxの「ネットワーク設定」の「アダプタ1」-「ポートフォワーディング」で設定します。
全ポート解放したい場合は、NATはやめてブリッジにする(IPアドレスがホスト以外にもゲスト分消費する)。
※ アダプター2(ホストオンリーアダプタ)を使いわないでいける方法もあります。
「アダプター1」-「ポートフォワーディング」で、ホストポート=1234(1024~65535の任意)、ゲストポート=22にし(他の項目は任意)、TeraTermでssh接続は、localhost:1234 とすればOKです。ただ、この場合は、TeraTermの[Alt+D]などで端末複製ができないなどの問題があります。
また、複数のゲストを起動して双方間で接続することもできません。
※ 外部インターネットへアクセスできない場合
Ubuntu, CentOS, Debianとも/etc/resolv.confを以下の行を加える
nameserver xxx.xxx.xxx.xxx
* xxx.xxx.xxx.xxx DNSサーバのIPv4アドレス
4 件のコメント:
VirutalBoxを最新のバージョン5.0.14r105127にアップデートしたら、
以下のエラーで起動しなくなりました。
--
仮想マシン"ubn64"のセッションを開けませんでした。
Failed to open/create the internal network 'HostInterfaceNetworking-VirtualBox NDIS 6.0 Miniport Driver' (VERR_INTNET_FLT_IF_NOT_FOUND).
Failed to attach the network LUN (VERR_INTNET_FLT_IF_NOT_FOUND).
終了コード : E_FAIL (0x80004005)
コンポーネント: ConsoleWrap
インターフェース: IConsole {872da645-4a9b-1727-bee2-5585105b9eed}
--
コントロールパネルの「ネットワークとインターネット」-「ネットワーク接続」で、
「VirtualBox Host-Only Network」のプロパティを見ると、
「VitualBox NDIS6 Bridged Networking Driver」のチェックが外れていました。
このチェックを入れて再起動していけるようになりました。
仮想マシンのネットワーク設定で「アダプター2」を利用しなければ不要ですが、
これがないとホストOSからTeraTermなどからアクセスできないので。
CentOSで6.のVBoxLinuxAdditions.runが失敗する場合、
yum -y groupinstall "Development tools"をおこなうとできるようになります。
(yum -y install gcc kernel-develだけでも可)
他に、VirtualBoxのアップデートでエラーになった場合、
「設定」画面を開き、メニュータブを開いて嘗め回し(なにも設定変更しなくて可)「OK」をクリックするだけでも動くようになることがあります。
Windows10で、TeraTermでssh接続ができない。Guest側にログオンしてターミナルから、ホストへ向かって, ping 192.158.56.1 (ホストのIPアドレス)をしてからでないと、ホストからTeraTermでssh接続ができない。
VirtualBoxの「環境設定」-「ネットワーク」-「ホストオンリーネットワーク」-「DHCPサーバ」を見直しても問題ない。
結局、ゲストOSのセカンドNICのIPアドレスを固定設定にした。
CentOS6の場合、/etc/sysconfig/network-scripts/ifcfg-eth1を新規作成して以下の内容にした。
#
DEVICE=eth1
BOOTPROTO=none
IPADDR=192.168.56.10
BROADCAST=192.168.56.255
NETMASK=255.255.255.0
ONBOOT=yes
GATEWAY=192.168.56.1
HWADDR=08:00:27:22:24:B0
USERCTL=no
TYPE=Ethernet
##
ここで、IPアドレスは上記のDHCPサーバ設定のアドレス範囲外の任意を設定する。
これで行けた。
IPアドレス固定の方が扱いやすいので推奨
コメントを投稿