2018年3月26日月曜日

ubuntuをWindowsOS上で動作させる - Guest Additionsインストールのエラーvboxsfがmodprobeできない対処 -

Guest Additionsインストール

VirtualBOX上でubuntuを動作させていると、実行したくなるのが「コピペ」(Copy & Paste)。

Guest Additionsをインストールし、「クリップボードの共有」を設定すれば準備完了です。

1. Guest Additionsをインストール
VirtualBOXのツールバーの「デバイス」→「Guest Additions CDイメージの挿入」を選択
その後リブート。

2. クリップボードの共有
VirtualBOXのツールバーの「デバイス」→「クリップボードの共有」→「双方向」を選択


ただし、私の場合は下記エラーが出たためGuest Additionsがインストールできませんでした。

--
root@ntgi-VirtualBox:/media/ntgi/VBox_GAs_5.2.8# ./VBoxLinuxAdditions.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 5.2.8 Guest Additions for Linux........
VirtualBox Guest Additions installer
Removing installed version 5.2.8 of VirtualBox Guest Additions...
Copying additional installer modules ...
Installing additional modules ...
VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel modules.
VirtualBox Guest Additions: Running kernel modules will not be replaced until the system is restarted
VirtualBox Guest Additions: Starting.
VirtualBox Guest Additions: modprobe vboxsf failed
--

何やらデバイスドライバ(vboxsf.ko)がfailedだといっています。


Guest Additionsをビルドし、エラーを回避する

今回のエラーは、vboxsf.koが正しくビルドできていないことが原因でした。
下記3stepで回避できることができました。

(前提)
・VirtualBOX: 5.2.8 r121009 (Qt5.6.2)
・ゲストOS: ubuntu 16.04 LTS


(手順) 3stepで対応
1. vboxguest,vboxsf,vboxvideoをmakeする
2. vboxguest,vboxsf,vboxvideoをinstallする
3. reboot

1. vboxguest,vboxsf,vboxvideoをmakeする

  • /usr/src配下のvboxguest-x.x.x配下に移動。
--
(参考) 
シンボリックリンクが/opt/VBoxGuestAdditions-x.x.x/src/vboxguest-x.x.xにはられているようです。

root@ntgi-VirtualBox:/usr/src# ls -la
合計 16
drwxr-xr-x  4 root root 4096  3月 26 16:13 .
drwxr-xr-x 11 root root 4096  3月  1 03:35 ..
drwxr-xr-x 27 root root 4096  3月  1 03:34 linux-headers-4.13.0-36
drwxr-xr-x  7 root root 4096  3月  1 03:34 linux-headers-4.13.0-36-generic
lrwxrwxrwx  1 root root   49  3月 26 16:13 vboxguest-5.2.8 -> /opt/VBoxGuestAdditions-5.2.8/src/vboxguest-5.2.8


  • makeをすると.koができます
--
(参考) 

root@ntgi-VirtualBox:/opt/VBoxGuestAdditions-5.2.8/src/vboxguest-5.2.8# make
=== Building 'vboxguest' module ===
make[1]: ディレクトリ '/opt/VBoxGuestAdditions-5.2.8/src/vboxguest-5.2.8/vboxguest' に入ります
make V= CONFIG_MODULE_SIG= -C /lib/modules/4.13.0-36-generic/build SUBDIRS=/opt/VBoxGuestAdditions-5.2.8/src/vboxguest-5.2.8/vboxguest SRCROOT=/opt/VBoxGuestAdditions-5.2.8/src/vboxguest-5.2.8/vboxguest -j1 modules
make[2]: ディレクトリ '/usr/src/linux-headers-4.13.0-36-generic' に入ります
  CC [M]  /opt/VBoxGuestAdditions-5.2.8/src/vboxguest-5.2.8/vboxguest/VBoxGuest-linux.o
  CC [M]  /opt/VBoxGuestAdditions-5.2.8/src/vboxguest-5.2.8/vboxguest/VBoxGuest.o
:
:

すると、koができます。
--
root@ntgi-VirtualBox:/opt/VBoxGuestAdditions-5.2.8/src/vboxguest-5.2.8# ls
Makefile      vboxguest     vboxsf     vboxvideo
build_in_tmp  vboxguest.ko  vboxsf.ko  vboxvideo.ko


2. vboxguest,vboxsf,vboxvideoをinstallする

  • makeしてできたkoをinstallする
--
make[1]: ディレクトリ '/opt/VBoxGuestAdditions-5.2.8/src/vboxguest-5.2.8/vboxguest' に入ります
make V= CONFIG_MODULE_SIG= -C /lib/modules/4.13.0-36-generic/build SUBDIRS=/opt/VBoxGuestAdditions-5.2.8/src/vboxguest-5.2.8/vboxguest SRCROOT=/opt/VBoxGuestAdditions-5.2.8/src/vboxguest-5.2.8/vboxguest -j1 modules
make[2]: ディレクトリ '/usr/src/linux-headers-4.13.0-36-generic' に入ります
  Building modules, stage 2.
  MODPOST 1 modules
make[2]: ディレクトリ '/usr/src/linux-headers-4.13.0-36-generic' から出ます
make V= CONFIG_MODULE_SIG= -C /lib/modules/4.13.0-36-generic/build SUBDIRS=/opt/VBoxGuestAdditions-5.2.8/src/vboxguest-5.2.8/vboxguest SRCROOT=/opt/VBoxGuestAdditions-5.2.8/src/vboxguest-5.2.8/vboxguest INSTALL_MOD_PATH= INSTALL_MOD_DIR=misc modules_install
make[2]: ディレクトリ '/usr/src/linux-headers-4.13.0-36-generic' に入ります
  INSTALL /opt/VBoxGuestAdditions-5.2.8/src/vboxguest-5.2.8/vboxguest/vboxguest.ko
At main.c:160:
- SSL error:02001002:system library:fopen:No such file or directory: bss_file.c:175
- SSL error:2006D080:BIO routines:BIO_new_file:no such file: bss_file.c:178
sign-file: certs/signing_key.pem: No such file or directory
  DEPMOD  4.13.0-36-generic
make[2]: ディレクトリ '/usr/src/linux-headers-4.13.0-36-generic' から出ます
make[1]: ディレクトリ '/opt/VBoxGuestAdditions-5.2.8/src/vboxguest-5.2.8/vboxguest' から出ます
:

--
SSL errorがでていますが、ko自体のインストールは完了するようです。


3. rebootする

OSをrebootしてください


ubuntuをWindowsOS上で動作させる - VirtualBoxを使って動かす -

What's VirtualBox?

VirtualBoxとは、使用している PC に仮想環境を構築してくれるクロスプラットフォーム(Windows、Mac、Linux)対応のフリーソフトです。

PCに直接Linuxをインストールすることももちろん可能ですが、
  • 複数台のPCを準備できない
  • 物書き(メール、word)用環境と共存させたい
場合は非常に有用です。

最近は比較的安価に、高性能なCPUやメモリを使ったPCを準備することができますので
VirtualBoxを使った環境構築をお勧めします。


私は、https://pc-karuma.net/virtualbox/ を参考にインストールします。


VMWare vs VirtualBOX

仮想環境といえば、「VMWare」も有名です。

VMware Workstation Playerを使えば、「What's VirtualBox?」に記載したことと同様のことができます。

違いは、「商用ライセンス」が必要であること。
https://www.vmware.com/jp/products/player/faqs.html
には、次のような記載があります。

"VMware Workstation Player は引き続き無償で提供されますか"

"VMware Workstation Player は、個人利用、および商用以外での利用の場合は無償で提供されます (企業および非営利組織での利用は商用利用に該当します)。仮想マシンについて学びたい方や、個人的に利用したい方は無償の VMware Workstation Player をご利用ください。認定教育機関の学生や教職員で、VMware Academic Program のメンバーの方は、VMware Workstation Player を無償で利用できます。"


企業で開発を行う際には、サポートの要否、予算等を加味し選択するようにしてください。
個人利用の場合は、お好みでお使いください。

ubuntuをWindowsOS上で動作させる - 何のバージョンを選択するか -

LTS? Latest?

https://www.ubuntulinux.jp/ubuntu
に記載がある通り、ubuntuは様々なバージョンが展開されている。
ubuntu上にインストールするアプリケーションが動作保証されているバージョンを選択すれば良いが、複数のバージョンが示されている場合は、"LTS"をお勧めする。

"LTS"をお勧めする理由は、サポート期間が長いこと
サポート期間が長いと、パッチが定期的に更新されたりするため、開発環境をしばらく変えたくないメンテナー目線ではこちらをサポートとする場合が多い。

もちろん、開発者好みの問題なので新しい機能が搭載される"Latest"を使っても良い。



https://www.ubuntulinux.jp/ubuntu の「リリース時期とサポート期間」欄には下記記載がある。(執筆当時の記載)
コードネームバージョンリリース日サポート期限
Artful Aardvark17.102017年10月18日2018年7月
Zesty Zapus17.042017年4月13日2018年1月
Xenial Xerus16.04 LTS2016年4月21日2021年4月
Trusty Tahr14.04 LTS2014年4月17日2019年4月

人気の投稿