久しぶりに linux 上に oracle VM VirtualBox をインストールしてみました.自作の linux ディストリビューションのインストーラーの動作確認用にと思って.
そのインストール過程で,ちょっとハマったこともあったのでメモがわりに記載しておきます.
oracle の日本語サイトから virtualbox をダウンロードしようとすると https://www.oracle.com/jp/virtualization/technologies/vm/downloads/virtualbox-downloads.html に誘導されるみたい.最新版は 6.1.14 という記載がありますが,そのままダウンロードしてインストールしようとすると
次のファイルから読み込み: /tmp/vbox.0/r0drv/linux/initterm-r0drv-linux.c:31:
/tmp/vbox.0/r0drv/linux/the-linux-kernel.h:141:11: 致命的エラー: linux/smp_lock.h: そのようなファイルやディレクトリはありません
141 | # include <linux/smp_lock.h>
| ^~~~~~~~~~~~~~~~~~
のようなメッセージが出てモジュール類がコンパイルできません.これは kernel 2.6.39 以降に smp_lock.h が削除されたために発生します.
検索してみたところ https://www.virtualbox.org/ticket/19845 などに色々と記載がありますね.
で,解決方法ですが,上記チケットにも記載されていますが virtualbox 6.1.16 以降では修正されているので 6.1.16 以降をダウンロードしてインストールすれば問題ありません.oracle の日本語サイトからは他取り付けなさそうだったので,英語サイトからたどると https://www.oracle.com/virtualization/technologies/vm/downloads/virtualbox-downloads.html に行きますが,ここに 6.1.32 がありますのでこれをインストールすれば問題ありませんでした.
また,インストール後,仮想マシン設定で 32bit OS しか選択できない場合がありますが,
- intel PC の場合には BIOS 設定の Intel Virtualization Technology を Enable に,
- AMD PC の場合には SVM Mode を Enable に
変更すれば良いみたいです.
手元の PC は AMD なので SVM Mode を Enable に設定して 64bit OS が選択できるようになりました.
以下,手元で行った簡単なメモ.
自作の linux ディストリビューションなので All distributions のファイル https://download.virtualbox.org/virtualbox/6.1.32/VirtualBox-6.1.32-149290-Linux_amd64.run をダウンロード.
root 権限で実行.
% sh ./VirtualBox-6.1.32-149290-Linux_amd64.run
一般ユーザーから virtualbox コマンド実行.
$ virtualbox
で立ち上がりました.
簡単ですがそんな感じです.