1.Ubuntu安裝virtualBox
- 系統版本:Ubuntu 24.04.1 LTS,核心版本:Linux 6.8.0-47-generic
- virtualBox官方下載對應ubuntu24.04系統的deb安裝包
- 進入到下載檔案所在目錄使用如下apt命令安裝下載好的deb安裝包
sudo apt install -f ./virtualBox*
2. 啟動虛擬機器提示“Kernel driver not installed”
由於我裝的是雙系統,ubuntu掛載了windows下使用的硬碟便於節省空間,windows下已經安裝了虛擬機器,因此這裡只需要註冊近來就好了,但是在啟動虛擬機器的時候遇到了問題,如圖:
按照提示執行了sudo /sbin/vboxconfig
控制檯資訊提示同樣的內容,只能從下面提示資訊找解決辦法了(其實我看出了關閉安全啟動就可以解決),網路上找了很久有兩個辦法我用的第二個辦法:
1.關閉bios安全啟動
2.按照提示資訊sign the kernel modules
-
安裝後續用的工具軟體(一般這些工具已經安裝了)
sudo apt install mokutil libssl-dev
-
終端透過命令
cd $(dirname $(modinfo -n vboxdrv))
進入核心模組所在目錄(省的後續切換目錄,但是生成檔案需要root) -
去掉核心模組檔案壓縮字尾,如果該目錄檔案是.ko.zst 結尾透過命令
sudo zstd -d --rm vbox*
改稱.ko結尾(如果已經是.ko結尾則忽略) -
終端執行下面的命令(可能需要root)生成MOK 金鑰
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Linux-6.8.0-47-ssl/"
-
對核心模組進行簽名(注意最後三個檔案的目錄是否正確),執行完後可以使用命令
tail -c 28 vboxdrv.ko
查詢是否已經簽名,我的提示“~Module signature appended~”
點選檢視程式碼
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der ./vboxdrv.ko
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der ./vboxnetadp.ko
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der ./vboxnetflt.ko
-
新增MOK金鑰( 注意金鑰檔案目錄是否正確) 按照提示設定密碼
sudo mokutil --import ./MOK.der
-
重啟電腦進入MOK management 按照提示 (第二個,第三個,第二個) 輸入密碼進入系統,這時候啟動虛擬機器就可以了
每次更新核心需要重新簽名
參考文章
- [stackoverflow] https://stackoverflow.com/questions/38437264/i-cant-execute-command-modprobe-vboxdrv