普段使っているPCにVirtualBox+Vagrantをいれることはあったんですが、VPS上のCentOSに仮想環境を入れたいとの要件があり、試してみました。
結論からすると結局できなかったんですが、そこでわかったことなどをメモしておきます。(centOSは6、7両方で試しました。)
全体の参考リンク
CentOS 上で Vagrant を導入するまでのメモ(CUI)
dkmsのインストール
VirtualBoxをいれるにはvboxdrvといわれるカーネルモジュールが必要になります。
dkmsとはこのカーネルモジュールのアップデートを助けるフレームワークのようです。
1 2 3 |
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm yum info dkms yum -y install dkms |
VirtualBoxのインストール
dkmsをインストールしたあとに、VirtualBoxをインストールします。
1 2 3 4 5 |
cd /etc/yum.repos.d/ wget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo yum list | grep VirtualBox #virtualboxがでればOK(認証が必要なときあるのでyum listで質問に答えてから上記コマンドを実行することもあり) yum -y install VirtualBox-5.0 |
Vagrantのインストール
1 2 3 4 5 6 |
#vagrant rpm -ivh https://dl.bintray.com/mitchellh/vagrant/vagrant_1.7.4_x86_64.rpm cd ~ (ここは任意のディレクトリに移動) vagrant init bento/centos-6.7 #設定ファイルを修正 vagrant up |
これで通常なら起動するようです。
エラー対策
が、ここでvirtualboxが動きませんでした。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#エラー発生 VirtualBox is complaining that the kernel module is not loaded. Please run `VBoxManage --version` or open the VirtualBox GUI to see the error message which should contain instructions on how to fix this error VBoxManage --version WARNING: The vboxdrv kernel module is not loaded. Either there is no module available for the current kernel (2.6.32-042stab108.8) or it failed to load. Please recompile the kernel module and install it by sudo /sbin/vboxconfig You will not be able to start VMs until this problem is fixed. 5.0.10r104061 |
Ubuntu VirtualBox その42 – VirtualBoxのカーネルモジュールの手動ビルドが動作しない現象
1 |
/sbin/vboxconfig |
を実行するも全く動かなかったので、検索で見つかった情報があり、下記コマンドを実行しました。
1 |
/sbin/rcvboxdrv setup |
ちなみにcentOS6では下記コマンドで稼働しました。
1 |
/etc/init.d/vboxdrv setup |
ただ、下記のようなエラーメッセージがでて動かず。
1 2 3 4 5 6 7 8 9 |
Stopping VirtualBox kernel modules [ OK ] Uninstalling old VirtualBox DKMS kernel modules [ OK ] Trying to register the VirtualBox kernel modules using DKMSError! echo Your kernel headers for kernel 2.6.32-042stab108.8 cannot be found at /lib/modules/2.6.32-042stab108.8/build or /lib/modules/2.6.32-042stab108.8/source. [失敗] (Failed, trying without DKMS) Recompiling VirtualBox kernel modules [失敗] (Look at /var/log/vbox-install.log to find out what went wrong) |
ログをみると
1 2 3 4 5 6 7 8 9 10 11 12 13 |
------------------------------ Deleting module version: 5.0.10 completely from the DKMS tree. ------------------------------ Done. Attempting to install using DKMS Creating symlink /var/lib/dkms/vboxhost/5.0.10/source -> /usr/src/vboxhost-5.0.10 DKMS: add completed. Failed to install using DKMS, attempting to install without Makefile:185: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again. 中止. |
カーネルのディレクトリがわからないとでているので、下記で実行し反映しました。
1 2 3 4 |
#カーネルディレクトリを環境変数に設定 vim /etc/profile export KERN_DIR = /usr/src/kernels/カーネルのバージョン/ source /etc/profile |
これで再起動しましたが、結局うごきません。
カーネルのバージョン違い?
このあと、カーネルのヘッダーのバージョンが違うからか?と思ったのでシンボリックリンクをはったのですが、結局解決せず。(エラーメッセージ変わらず)
CentOSでLinuxカーネルヘッダー違いでVirtualBox DKMS 起動がこける時の対応
ちなみに
uname -r 2.6.32-042stab108.8
カーネルヘッダーの場所は
1 |
/usr/src/kernels/2.6.32-573.8.1.el6.x86_64 |
です。
このあとカーネルのヘッダーのバージョンアップなども行いましたが、ダメでした・・・
バージョンアップ自体ができず「パッケージ kernel-devel-2.6.32-042stab108.8 は利用できません」という冷たいメッセージが(汗)
CentOS6.6へのVairtualBox と Vagrantのインストール
LinuxMaster.jp CentOS6.4をLinuxカーネル3.10.0にアップデートしてみました(カーネル再構築)
うーんVPS上で仮想環境構築は無理なんでしょうか・・・とりあえずここらへんであきらめてギブ。
参考にさせて頂きました。
同じエラーになりましたが、下記で解決しました。
下部参照のこと。
https://forums.virtualbox.org/viewtopic.php?f=7&t=61773
↑を見て、下記のコマンドを試したところ、変わらず。
/etc/int.d/vboxdrv setup KERN_DIR=/usr/src/kernels/
ls /usr/src/kernels
上記を下記に変更したらいけました。
env KERN_DIR=/usr/src/kernels/
ls /usr/src/kernels
/etc/init.d/vboxdrv setupvagrantさん
初めましてmatsumotoです。
>https://forums.virtualbox.org/viewtopic.php?f=7&t=61773
>↑を見て、下記のコマンドを試したところ、変わらず。
>/etc/int.d/vboxdrv setup KERN_DIR=/usr/src/kernels/ls /usr/src/kernels
>上記を下記に変更したらいけました。
>env KERN_DIR=/usr/src/kernels/ls /usr/src/kernels /etc/init.d/vboxdrv setup
ありがとうございます!
こちら結局できずに、あきらめておりましたが、vagrantさんの情報を元に
再度チャレンジしてみますね!
コメントの一部がちゃんと反映されていなかったので、補足。
上記コマンドls /usr/src/kernelsの部分はソースのURLのコマンドの通りバッククォートで囲って下さい。
それか、$(ls /usr/src/kernels)にして下さい。
vagrantさん
>上記コマンドls /usr/src/kernelsの部分はソースのURLのコマンドの通り
>バッククォートで囲って下さい。
>それか、$(ls /usr/src/kernels)にして下さい。
たびたびありがとうございます!!
最近はあまり時間がとれないのですが、別の機会でこのネタを使いたいので、その時にぜひこの方法で試させていただきます。