Kernel
簽署核心模組
所以我在一個 debian buster 10 系統上,我安裝了virtualbox,我遇到了一個錯誤,告訴我手動載入一些核心模組。
sudo ./vboxconfig [sudo] password for user: vboxdrv.sh: Stopping VirtualBox services. vboxdrv.sh: Starting VirtualBox services. vboxdrv.sh: You must sign these kernel modules before using VirtualBox: vboxdrv vboxnetflt vboxnetadp See the documenatation for your Linux distribution.. vboxdrv.sh: Building VirtualBox kernel modules
所以我只需要一些幫助來載入 vboxdrv、vboxnetflt 和 vboxnetadp 核心模組來完成我的虛擬機安裝,我不太確定這是如何完成的。我正在使用啟用了安全啟動的 UEFI 系統。
簽署模組涉及三個步驟:
- 創建機器所有者密鑰
- 註冊它
- 用它簽署核心模組
前兩個步驟只需要執行一次,最後一個需要在每次建構模組時重做。
創建 MOK:
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -days 36500 -subj "/CN=My Name/" -nodes
用
My Name
適當的東西代替。(以下說明假設您以 root 身份在 root 的主目錄中執行它/root
。)要註冊它:
mokutil --import MOK.der
這將提示輸入密碼,這是僅在下次啟動時使用的臨時密碼。重啟系統,進入UEFI MOK管理工具;請參閱帶有螢幕截圖的便捷指南,並按照說明註冊您的密鑰。
這將再次重新啟動,然後您將能夠檢查您的密鑰是否已載入:
dmesg | grep cert
要使用您的密鑰對模組進行簽名,請轉到包含模組的目錄,然後執行
/usr/lib/linux-kbuild-4.19/scripts/sign-file sha256 /root/MOK.priv /root/MOK.der vboxdrv.ko
酌情替換“4.19”
vboxdrv.ko
。