【メモ】Vagrant で共有フォルダのマウントに失敗する

vagrant.pngのサムネイル画像 試したいことがあって通常使用しているのとは別にテスト用にレポジトリをcloneしてVMを作るということをしたらば、次の様なエラーが。

Vagrantで共有フォルダのマウントに失敗するときの対処方法 – Qiita

Failed to mount folders in Linux guest. This is usually because the “vboxsf” file system is not available. Please verify that the guest additions are properly installed in the guest and can work properly. The command attempted was: (中略) The error output from the last command was: /sbin/mount.vboxsf: mounting failed with the error: No such device

要するに共有フォルダがマウントできない、そもそもvboxsfが見つからんと言われているみたいです。Guest Addtionsがちゃんと読み込まれてないっぽい? 上記エントリではプラグイン「vbguest」をインストールしておけば解決してくれると書かれているのですが、僕の環境ではどうも解決してくれない。「解消しない場合」という項目にあったこちらを参照したところ、逆に「vbguest」が問題になるケースがあるとのこと。 つまりこう:

vagrant-vbguestプラグインがGuestAdditionsを無効にしてしまう – Qiita

  1. VirtualBoxのバージョンとGAのバージョンが異なるためvbguestプラグインがGAの再ビルドを始める
  2. インストール済みGAが削除される
  3. アクティブなkernelと同じバージョンのkernel-develをインストールしようとするが、より新しいkernelが公開されているのでみつからない
  4. GAのビルドが失敗し、GAが動作しない状態に

なるほど。 結局どうしたらいいかっていうと、Guest OSのkernelをアップデートすれば幸せになれるらしいので、次のコマンドを実行。
$ vagrant ssh -c 'sudo yum update -y kernel'
$ vagrant reload
その上で vagrant reload してやると、
  1. 正しい kernel-debel を取得する
  2. 正常に GuestAddtions が更新される
  3. 正常にマウント出来る
という流れで無事起動に成功。 軽くハマって余計な時間食っちゃった。 とりあえず直って良かったです。感謝。

続きを読む

Mac OS X 起動時にVirtualBox上のゲストOSを自動的に起動する

VirtualBox.jpg ローカルサーバを毎回手動で起動するのが面倒だったので、自動的に起動するようにしてみました。 ググって試行錯誤したんですが上手く行かず、結局こんな方法に。

1. シェルスクリプトを用意する

配置する場所はホーム直下で良いと思います。非表示フォルダではないところで。 ファイル名は適当で大丈夫です。

runvm.command

#!/bin/sh

vboxmanage startvm hogehoge --type headless

killall Terminal
「hogehoge」はVM名です。環境に合わせて設定してください。 「killall Terminal」は処理が正常に実行されたらターミナルを閉じる設定です。これがないと、実行後にターミナルが残ってしまって鬱陶しいので。

2. ログイン時に実行されるよう設定する

「システム環境設定 > ユーザとグループ」を開き、ユーザーを選択。「ログイン項目」タブを表示して、上で用意したシェルスクリプトを登録。 以上で終わり。 やり方は色々あるみたいだし、これが正しい方法とは思えないけれど、上手く出来なかったので。 もう少し解ってる人は、もう少しきちんとした方法をとるべきだと思います。

参考記事

shell – Macでログイン時にスクリプトを実行する(Automator不使用) – Qiita OSX のターミナルを終了時に自動で閉じたい – Windows 2000 Blog

参考にしたかったけど上手く動かせなかった記事

VirtualBox上のゲストOSのブート&スナップショット撮影の自動化 – まんぼう日記 Mac OS Xで使って便利な「ログインフック」 – builder by ZDNet Japan OSX – OS X で起動時に任意のコマンドを実行する – Qiita

続きを読む

【メモ】 VitualBoxでGuest Additionsが動かなくなったら

VirtualBox.jpg 起動したら共有フォルダへのマウントが解除されており、GUIを起動して共有フォルダを設定し直そうとしたら「Guest Additionsがインストールされてないから共有フォルダは使えませんぜ、旦那」と言い出すVitualBoxさん。かわいい。いや、面倒なだけだよ。「デバイス > Guest Additions のインストール」とクリックしても何も起きずに困ったのですが、CUIから主導でGuest Additionsをインストールし直したら直りました。

参考サイト

Ubuntu日本語フォーラム / Guest Additionsがインストールできない

続きを読む

VirtualBoxの共有ディレクトリ内のファイルを更新してもApacheで表示が更新されない問題

VirtualBox.jpg

作業環境

ホスト

  • OS … Windows 7 64bit
  • 開発環境 … Eclipse 3.7.2

ゲスト

  • OS … CentOS 6.0
  • Httpd … Apache 2.2.15

起きた問題

ちょっと解りにくいので作業順に従って箇条書きで書くとこんな感じ。
  1. Eclipseのワークスペースを共有フォルダとしてVirtualBoxに登録
  2. 共有フォルダをマウントしてドキュメントルートにシンボリックリンクを貼る
  3. Eclipseでファイルを更新
  4. ゲストOS上でファイルの内容が更新されていることを確認
  5. ブラウザの表示を更新→更新されない
    • 読み込むjsファイルやcssファイルを変更しても反映されない
    • JavaScriptの場合途中までしか読み込まれずにエラーが出る
    • ExtJS4ではファイルの末尾によく解らない文字列が追加され「illegal character」エラーが出る

続きを読む

VBoxHeadlessTrayがとても便利 – VirtualBoxをタスクトレイに格納する

VirtualBox.jpg 自分の端末はWindows 7(64bit)。開発は基本的にその上でやってるんですが、テスト環境には当然Linuxが必要になります。昔はWindowsでApacheを動かしてたときもありましたが、今なら普通に仮想環境ですよね。誰でもやってることだと思います。 というわけで、Windowsに「VirtualBox」をインストールし、ゲストOSとしてCentOSを動かしてテスト環境にしています。まぁその設定についてはその昔この辺に書きました。 CentOSの開発環境、設定手順(with VirtualBox) | mutter これを書いた当時と比べるとマシンのスペックが上がっているので(メモリ16GB積んでます。こんなこともあろうかと)、VirtualBox上のゲストOSにもたっぷりメモリを割いていてかなり快適に動かせています。素晴らしい。

本題。

そういうわけで仮想環境としてVirtualBoxが動いていますが、VirtualBoxのウィンドウはおろか、ゲストOSのGUIウィンドウすら普段は見ません。全部CUIで済みますもんね。ていうかむしろCUIなかったら作業なんてしてられないですし、そもそも「テスト環境」になりませんな。本番サーバをGUIで管理してますとか聞いたことないし。片付けたい。出来れば音も無く起動し、そのままタスクトレイに格納されて、必要なときだけ呼び出せるようにしたい。 それ、「VBoxHeadlessTray」で出来ます。 ダウンロードはこちらから。 Topten Software 解説は窓の杜のコラムが詳しいです。 窓の杜 – 【REVIEW】「VirtualBox」の仮想PCをタスクトレイから直接起動「VBoxHeadlessTray」

続きを読む