由于周六要參加容器化培訓,需要Mac虛擬機環境,恰逢我新入手新mac電腦,故而需要重裝一個VirtualBox。
本想著簡單的事情三五分鐘就搞定的,足足用了一個晚上。
- 使用安裝VirtualBox
brew cask install virtualbox
會提示:The install failed (The Installer encountered an error that caused the installation to fail. Contact the software manufacturer for assistance.)
- 執行腳本(需要root權限)
#!/bin/bash
unload() {
if [ `ps -ef | grep -c VirtualBox$` -ne 0 ]
then
echo "VirtualBox still seems to be running. Please investigate!!"
exit 1;
elif [ `ps -ef | grep -c [V]ir` -gt 0 ]
then
echo "Stopping running processes before unloading Kernel Extensions"
ps -ef | grep [V]ir | awk '{print $2}' | xargs kill
fi
echo "Unloading Kernel Extensions"
kextstat | grep "org.virtualbox.kext.VBoxUSB" > /dev/null 2>&1 && sudo kextunload -b org.virtualbox.kext.VBoxUSB
kextstat | grep "org.virtualbox.kext.VBoxNetFlt" > /dev/null 2>&1 && sudo kextunload -b org.virtualbox.kext.VBoxNetFlt
kextstat | grep "org.virtualbox.kext.VBoxNetAdp" > /dev/null 2>&1 && sudo kextunload -b org.virtualbox.kext.VBoxNetAdp
kextstat | grep "org.virtualbox.kext.VBoxDrv" > /dev/null 2>&1 && sudo kextunload -b org.virtualbox.kext.VBoxDrv
}
load() {
echo "Loading Kernel Extentions"
sudo kextload "/Library/Application Support/VirtualBox/VBoxDrv.kext" -r "/Library/Application Support/VirtualBox/"
sudo kextload "/Library/Application Support/VirtualBox/VBoxNetAdp.kext" -r "/Library/Application Support/VirtualBox/"
sudo kextload "/Library/Application Support/VirtualBox/VBoxNetFlt.kext" -r "/Library/Application Support/VirtualBox/"
sudo kextload "/Library/Application Support/VirtualBox/VBoxUSB.kext" -r "/Library/Application Support/VirtualBox/"
}
case "$1" in
unload|remove)
unload
;;
load)
load
;;
*|reload)
unload
load
;;
esac
將其保存至shell腳本中直接運行。
- 打開
System Preferences → Security & Privacy → General
image
點擊 Allow。
重點來了: 在macOS 10.13.4 版本中有bug,鼠標直接點擊不了Allow 按鈕,所以只能用Tab
鍵將focus移到Allow上面,按下空格。
- 執行重新安裝命令
brew cask reinstall virtualbox
大功告成!