WindowsでVirtualBox仮想マシンをバックグラウンドで起動して使う

Windowsは何かと面倒なのでメモ。

インストール方法やパッケージを何を入れるかなどはなんでもいいのですが、バックグラウンドで動かしたあと、SSHを使ってログインするのでSSHは入れておいてください。

インストールが終わればリモートディスプレイとネットワークのポートフォワーディングについて設定します。

リモートディスプレイは設定の[ディスプレイ]→[リモートディスプレイ]をたどってリモートディスプレイを有効にします。

ポートをフォワーディングについては、[ネットワーク]を開き[高度]を押すとアダプタについての設定が表示されるので

[ポートフォワーディング]を押してSSH(とWebのポートをフォワーディングするようにします。

わからなければスクリーンショットのとおり設定してもらえばいいのですが、例ではSSHのポート22をホストのポート2222へ、Webも同じようにポート80をポート8080へフォワーディングしています。

VirtualBoxから仮想マシンを起動しておいてから、PuTTYなどターミナルを使ってログインできるか確認します。 接続方法は単純にlocalhostのポート2222(上でポートフォワーディングしたSSHのポート)に接続します。

ログインできなければ「仮想マシンにSSHをインストールし忘れてない」、「ネットワークのポートフォワーディング設定が間違ってる(逆になっている)」を確認してください。

ログインが出来れば準備完了なのでログアウトして、仮想マシンもオフにします。

LinuxだとVBoxHeadlessで動かせばいいのだけど、Windowsだとコマンドラインが不自由で面倒なのでVBoxHeadlessTrayを使います。 VBoxHeadlessTrayを使うとトレイアイコンからバックグラウンドVirtualBoxの仮想マシンの起動/停止などができます。

VBoxHeadlessTrayを起動するとスクリーンショットのような画面が出るので、仮想マシンを起動します。

しばらくして仮想マシンが起動したら、テストで接続したようにPuTTYなどの端末を使って接続します。 仮想マシンの操作はVBoxHeadlessTrayもできますし、ログインした端末からもシャットダウンできるので便利ですね(棒読み

Windowsでサーバーに接続するとき、PuTTYなどを複数起動している人がいるけど、同じサーバーで複数枚コンソールが欲しいならGNU Screenやtmuxなどを入れろください。

ホストマシンとゲストマシンの間でファイルをやり取りする

VirtualBoxなのでGuestAddirionsをインストールしてSMBでホスト-ゲスト間のファイルをやり取りしてもいいのですが、せっかくSSHが使えるしいろいろ面倒なので、Windows版FUSE(みたいな)の実装Dokanを使ったsshfs、Dokan-sshfsを使ってローカルドライブにゲストマシンのディレクトリをマウントしてファイルをやり取りします。

インストール方法は、DokanのサイトからDokanライブラリをインストール後、Dokan-SSHFSをダウンロードして適当なところで展開しDokanSSHFS.exeを実行します。 するとこのようなダイアログが出るのでSSHと同じように設定するだけで終わりです。