トップ «前の日記(2017/05/13) 最新 次の日記(2017/05/16)» 編集

kaztomo日記


2017/05/15

_ [FreeBSD]FreeBSD なサーバーに VirtualBox 5.1.18 を入れて、headless で Ubuntu を動かす

まずは ports から headless用の virtualbox をインストール

# cd /usr/ports/emulators/virtualbox-ose-nox11
# make
#  ... make 出来ることを確認

その後、symlinkエラーを無視するよう修正。virtualbox ポリシーに背くけど (^^; (VirtualBox は GPLなので、それに従いソースの patch を記す)

--- emulators/virtualbox-ose-nox11/work/VirtualBox-5.1.18/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp  2017-05-14 12:55:20.030470000 +0900
+++ emulators/virtualbox-ose-nox11/work/VirtualBox-5.1.18/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp~ 2017-03-16 04:17:34.000000000 +0900
@@ -1404,9 +1404,7 @@
         && !S_ISREG(pFsObjState->Stat.st_mode))
     {
-        if (S_ISLNK(pFsObjState->Stat.st_mode)) {
-            return VINF_SUCCESS;
+        if (S_ISLNK(pFsObjState->Stat.st_mode))
             return supR3HardenedSetError3(VERR_SUPLIB_SYMLINKS_ARE_NOT_PERMITTED, pErrInfo,
                                           "Symlinks are not permitted: '", pszPath, "'");
-        }
         return supR3HardenedSetError3(VERR_SUPLIB_NOT_DIR_NOT_FILE, pErrInfo,
                                       "Not regular file or directory: '", pszPath, "'");

/boot/loader.conf と /etc/rc.conf に関連設定を追加

# vi /boot/loader.conf
vboxdrv_load="YES"
# vi /etc/rc.conf
vboxnet_enable="YES"
vboxdrv_load="YES"

ubuntu 16.04 LTS の DVD image を用いて vboxを作成。 64bit OS、VNC接続(Port=5901) できるように設定。

# vboxmanage createvm --name <VMname> --basefolder /hoge --ostype Ubuntu_64 --register
# VBoxManage modifyvm <VMname> --memory 2048 --acpi on --ioapic on --cpus 2 --hwvirtex on --nestedpaging on --largepages on --nic1 bridged --bridgeadapter1 em0 --nictype1 Am79C973 --cableconnected1 on --boot1 dvd --boot2 disk --boot3 none --boot4 net --usb off --usbehci off
# vboxmanage createhd --size 20480 --filename /PathToVdiImage
# VBoxManage storagectl <VMname> --name "IDE Controller" --add ide --controller PIIX4 --bootable on
# VBoxManage storageattach <VMname> --storagectl "IDE Controller" --port 0 --device 1 --type dvddrive --medium /PathToDvdImage
# VBoxManage storageattach <VMname> --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium /PathToVdiImage
# VBoxManage modifyvm ubuntu1604 --vrde on --vrdeport 5901 --vrdeproperty VNCPassword=<MyPassword>

途中でハマったこと。

最初 ostype を Ubuntu としてインストールしてしまい、DVDをブートして直後に

This kernel requires an x86-64 CPU, but only detected an i686 CPU

エラーが発生した。

色々とググってみると 『BIOSメニュー上で VT-xが有効化されていないから』 というアドバイスを見つけたが、俺の場合は既に設定済み (>_<)。

更にググってみると、ostype と稼働させるOSのbitが異なるからという指摘を見つけ、 まさにその状態であると判明。そこでインストール状態の vbox に対して追加で、

vboxmanage modifyvm <VMname> --ostype Ubuntu_64

とするも、あえなく撃沈 orz

結局 unregistervm して、念のため vbox ファイルも削除してから、 改めて createvm 以降やり直ししたら無事起動できた \(^o^)/ どうやら後から ostype を指定し直してもダメなようだ。


参考にさせていただいたサイト: