Home > VirtualBox

VirtualBox

VirtualBox内のUbuntuとXAMPPを使ってFTPサーバーをローカルテスト用に公開する方法

概要

VirtualBoxのゲストOSにUbuntu(デスクトップ版)を使い、XAMPP for Linux セット内の ProFTPDを使ってFTPサーバーを構築します。
FTPサーバーにホストOS(Windowsを想定)からFTPクライアントを使ってファイルのアップロードをできるようにします。
簡易テスト用のウェブサーバーを構築する場合に必要な作業になります。

事前準備

VirtualBoxにUbuntuをインストールし、XAMPPをインストールしておきます。
(XAMPPイントール概要)
Linux用のXAMPPの圧縮ファイルをダウンロードする。
管理者権限で /opt/lampp/ フォルダへ展開する。
端末で以下のコマンドを実行してapache一式が起動することを確認。

sudo /opt/lampp/lampp start
手順

ゲストOSを起動する前に、VirtualBoxのゲストOSの設定画面にてネットワークアダプタ2(ホストオンリーアダプタ)を追加します。
これにより、ホストOSがゲストOSのサーバーに対してアクセスできるようにします。

VirtualBox全体の環境設定画面を開き、ネットワークのホストオンリーネットワーク詳細画面を開きます。
IPv4アドレス欄に使われていないIPアドレス(FTPサーバーのIPアドレスとも別)を入力し、ネットワークマスクに適切な値を入力します。
(ホスト側のネットワークと重複しないように注意が必要です すでに 192.168.1 が使われていたら 192.168.2 を使用します。)

Virtualbox側

設定例
IPv4アドレス:192.168.1.210
ネットマスク:255.255.255.0

ゲストOSのUbuntuを起動します。
「ネットワーク接続」の設定画面を起動し、 Auto eth2 の編集画面内の「IPv4の設定」タブを開き、FTPサーバーのアドレスを設定します。

設定例
メソッド:手動
アドレス 192.168.1.202
ネットマスク 255.255.255.0
ゲートウェイ 192.168.1.1

念のため、ゲストOSをシャットダウンしてからVirtualBoxを再起動します。

VirtualBoxとゲストOSを起動し、XAMPPを起動します。

(端末にて)
sudo /opt/lampp/lampp start
動作確認

Ubuntuの端末にてifconfigを実行し、eth2のinetアドレス欄が設定したFTPサーバーのアドレスになっていることを確認します。

$ ifconfig
eth1      Link encap:イーサネット  ハードウェアアドレス 08:00:27:ab:0d:71
          inetアドレス:10.0.2.15  ブロードキャスト:10.0.2.255  マスク:255.255.255.0
(中略)
eth2      Link encap:イーサネット  ハードウェアアドレス 08:00:27:b9:b3:41
          inetアドレス:192.168.1.202  ブロードキャスト:192.168.1.255  マスク:255.255.255.0
          inet6アドレス: fe80::a00:27ff:feb9:b341/64 範囲:リンク

ホストOSにてpingを実行し、FTPサーバーのIPアドレスが有効なことを確認します。

ping 192.168.1.202

ホストOSにてFTPクライアントソフトを起動し、以下の設定でサーバーに接続します。
ホストアドレス:FTPサーバーのIPアドレス (例 192.168.1.202)
ユーザー:nobody
パスワード:(初期値 lampp)

FTP接続の高速化

この状態でもFTP接続はできますが、サーバーへの接続に時間がかかります。
その対策として設定ファイルの記述を変更します。

以下のファイルを管理者権限でテキストエディタを使って開きます。
/opt/lampp/etc/proftpd.conf

末尾に以下の記述を追加します。

UseReverseDNS off
IdentLookups off

XAMPPを再起動します。

sudo /opt/lampp/lampp stop
sudo /opt/lampp/lampp start
XAMPPの自動起動の設定

Ubuntu起動時にXMAPPが自動的に起動されるようにします。
/etc/rc.local をテキストエディタで開きます。

末尾のexit 0 よりも前の行に以下の記述を追加します。

/opt/lampp/lampp start

以上で作業は完了です。

備考

色々いじっていてIPアドレスの衝突などのメッセージが表示された場合、一旦VirtualBoxを再起動することをお勧めします。

Virtualboxで仮想マシンにアクセス出来ない時の修復方法

○概要
Virtualboxにて、「アクセスできません」や「could not find an open hard disk with uuid」が表示されて仮想環境が起動できないうえに設定画面も表示できない場合の対処方法です。
ソフトはVirtualbox 4.1 を想定します。

○手順

  • Virtualboxを起動してVirtualboxマネージャーのGUI画面を表示します。
  • 「新規」ボタンをクリックして仮想PCを新規に作成します。(仮想環境の名称は以前のものとは別の名称にします)
  • 仮想ハードディスクの選択画面にて「既存のハードディスクを使用」を選択し、以前使用していたディスクイメージを選択して仮想環境を作成します。
  • 仮想環境の設定画面を表示し、ビデオメモリのサイズやネットワーク機器を設定します。
  • 仮想環境の制作が完了したら、Virtualboxの画面で古い破損した仮想環境を削除します。
  • 古い仮想環境の定義フォルダとファイルを手動で削除します。(Windowsならエクスプローラー等を起動します)

    削除するフォルダが不明な場合は新しい仮想環境の設定画面を開き、「スナップショットの復元先」から推測します。
    (新しい仮想環境の定義フォルダを削除しないように注意)

  • 新しく作成した仮想環境の設定画面を開き、仮想環境の名称を古い名称に変更して保存します。

以上で手順は完了です。

○補足
この問題は、仮想環境のシャットダウン時にエラーで処理が中断し、ディスクイメージやスナップショットのuuidと仮想環境の定義ファイル内のuuidが食い違ってしまうことが原因のようです。
(Virtualbox 4.1系の不具合)
ディスクイメージのメンテナンス画面がまだ表示できる場合には、そちらで対処可能です。

VirtualBox 3でブリッジ接続中にゲストPCのIPアドレスを確認する方法

概要

VirtualBox 3以降にて、ブリッジ接続でゲストPCを運用している時、ゲストPCのIPアドレスを表示する方法です。
ゲストPCにWEBサーバーやFTPサーバーなどを立てている時に便利です。
なお、接続方法がNATやHost-onlyの場合はそもそもホストからゲストのIPは参照できません。

手順

■ゲストPCがWindows系の時
・コマンドプロンプトを実行し、コマンドプロンプトのウインドウを表示する。
・「ipconfig /all」を入力し、実行する。
・IP Address. . . . . 欄にゲストのIPアドレスが表示されます。

■ゲストPCがUbuntuなどLinix系の時
・デスクトップ版(GUIシェル)の場合は、「端末」などを実行してコマンドプロンプトを表示する。
・「ifconfig -a」を入力し、実行する。
・ 「inetアドレス: 」欄にゲストのIPアドレスが表示されます。

VirtualBox起動時にHostUSBDeviceFilterのエラーが出た時の対処

概要

Windows版のVirtualBoxをバージョンアップしたときなどに、USBポート関連のエラーで起動できない時の対処です。

症状

VirtualBoxのGUIメニューを起動しようとすると、エラーが表示されます。エラーの詳細欄は以下のような感じです。

終了コード:
E_FAIL (0x80004005)
コンポーネント:
HostUSBDeviceFilter
インターフェース:
IHostUSBDeviceFilter {4cc70246-d74a-400f-8222-3900489c0374}
対処方法

・以下のファイルをエディッタ開きます。
C:\Documents and Settings\hiro\.VirtualBox\VirtualBox.xml
・ファイル内のUSBDeviceFiltersから/USBDeviceFiltersまでの項目を削除します。
・ファイルを保存して閉じます。
・VirtualBoxを起動します。
以上です。

VirtualBoxの共有フォルダ機能の設定手順(Windows XP,Vista,7等のクライアント)

概要

VirtualBoxのWindows版にて、ホストOSがWindows系でゲストOSもWindows系の時、ホストとゲスト間でフォルダを共有する際の設定手順です。

手順

・VirtualBoxを起動し、OS一覧から設定するOSを選択します。
・メニューより 設定-共有フォルダを選択し、新規共有フォルダを追加ボタンをクリックします。
(または、すでに起動中の仮想マシンのウインドウメニューより「デバイス – 共有フォルダ」を選択します。)
・共有フォルダ名を選択するダイアログが表示されますので、「フォルダのパス」欄にホストOS側の共有したいフォルダのフルパスを、「フォルダ名」欄にゲストOS側で使用したいフォルダ名(ドライブ名などは付けない)を指定します。
vvobshare

・OKボタンを2つクリックしてOS一覧の画面に戻ります。
・ゲストOSを起動します。(以下、ゲスト側での作業になります)
・ファイル名を指定して実行、または スタートメニューよりアクセサリ-コマンドプロンプトを実行します。
・以下のコマンドを実行します。

net use ドライブ名: \\vboxsvr\先ほど指定したフォルダ名
(例)
net use P: \\vboxsvr\public

・エクスプローラーを起動して、コンピューターの全てのドライブを表示します。共有ドライブが表示されていれば作業完了です。

なお、作成した共有フォルダは再起動後も継続して利用できます。

VirtualBoxのゲストOSの日付や時刻の同期をホストOSとずらす方法

○概要
VirtualBoxはゲストOSを起動した際にホストOSの時刻をゲストOSの時刻として設定します。
普段は便利な機能ですが、年月関連のテストをする際は余計な機能となるため任意の時刻を設定する方法を解説します。
(VirtualBox 2.2.4~4.1.2で確認)
以下の方法では同期を停止して無効にすることは出来ませんが、ゲストOS起動前に設定することにより(Guest Additionのインストールの有無にかかわらず)ほぼ同様の環境になります。

○準備
本作業の前に、まずはゲストOSが持っている時刻補正機能を停止します。Windows系の場合、Windows Timeサービスなどを停止します。Unix系の場合はntp関連の機能を停止します。
(新しいWindowsだと時刻設定の画面から設定もできます)

○手順
Windowsのコマンドプロンプトより、以下のコマンドを実行します

VBoxManage modifyvm “仮想マシンの名前” --biossystemtimeoffset 相対時間

※バージョン 3.1あたりから、コマンドラインオプションが”-”から”--”に変更になっています。

仮想マシンの名前 欄にはあなたがつけた仮想マシンの名前(普段一覧表に表示されるもの)を指定します。
相対時間 欄にはホストOSの時刻に対してのゲストOS側の相対時間をミリ秒単位で設定します。(過去を設定する場合は数字の前に-(マイナス記号)を付けます)
数年の差も設定できますが桁数が大きくなりますので頑張って計算してください。
ちなみに1日は86400000ミリ秒、1年は31536 000000ミリ秒です。

以上で設定は終わりです。

○設定値の確認方法
以下のコマンドを実行すると、現在の設定値が確認できます。

vboxmanage showvminfo “仮想マシンの名前

Time offset: 欄に表示されている値(ミリ秒単位)が相対時間です。

○補足
この設定はスナップショットの破棄などの影響を受けます。設定したらなるべく新規スナップショットを作っておきましょう。

Home > VirtualBox

Feeds
Meta

Page Top