Hướng dẫn cách khắc phục, sửa lỗi Kernel Driver Not Installed (rc=-1908) trên Ubuntu khi bạn cài Windows hoặc Linux với Virtualbox áp dụng cho Card Nvidia drivers (UEFI). Khi chế độ UEFI Secure Boot được bật, tất cả các kernel modules phải được ký bằng một key được hệ thống UEFI chấp nhận tin cậy, nếu không Virtualbox sẽ không hoạt động.
Sửa lỗi Kernel Driver Not Installed (rc=-1908) trên Ubuntu (EFI Secure Boot)
If your system is using EFI Secure Boot you may need to sign the kernel modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) before you can load theme…
Cách 1: Tắt UEFI Secure Boot trong BIOS
Phương pháp đầu tiên để sửa lỗi Kernel Driver Not Installed (rc=-1908) trên Ubuntu là disable Secure Boot, Secure Boot là một tính năng nền tảng trong UEFI thay thế cho BIOS, việc bật Secure Boot giúp máy tính chống lại các cuộc tấn công và lây nhiễm từ phần mềm độc hại.
Tuy nhiên, lời khuyên chân thành là bạn không nên tắt Secure boot, thay vào đó hãy cấp phép cho những phần mềm, công cụ, files hay mã nguồn trong phần cài đặt để Secure boot có thể nhận diện và bỏ qua.
Để tắt EFI Secure Boot bạn cần khởi động máy vào Boot Options và tắt nó trong BIOS, (tham khảo các phím tắt để vào BIOS).


Cách 2: Tạo key và đăng ký Kernel Modules cho VirtualBox
1. Tạo public/private key để sign modules
Như bạn đã thấy dòng thông báo lỗi “Sign virtual box modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci)” ở trên, có nghĩa là chúng ta cần phải tạo một khóa key cho các module đó. Bây giờ itsmeit sẽ sử dụng root account và tạo thư mục /root/module-sign/ để lưu trữ tất cả những thứ liên quan đến việc ký kernel module.
sudo -i mkdir -p /root/module-signing cd /root/module-signing openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=itsmeit/" chmod 600 MOK.priv
2. Import public/private và thiết lập mật khẩu
Câu lệnh bên trên sử dụng tên MOK (“Machine Owner Key”) làm chủ sở hữu public key nhằm mục đích hệ thống có thể chấp nhận tin cậy. Đây là quy trình gồm hai bước trong đó key được nhập trước, sau đó phải đăng ký sau khi máy được khởi động vào lần tiếp theo. Lệnh dưới đây sẽ thực hiện import public key, khi được hỏi mật khẩu hãy đặt mật khẩu đơn giản và ghi nhớ nó.
mokutil --import /root/module-signing/MOK.der
3. Thiết lập MOK để đăng ký VirtualBox modules và xây dựng kernel
Tiếp tục, chạy lệnh reboot
để khởi động lại máy tính. Khi bootloader khởi động, tiện ích EFI của trình quản lý key file đã tạo ở trên “MOK” sẽ tự động khởi động, hãy nhập mật khẩu bạn đã tạo. Chọn “Enroll MOK” và hoàn thành thiết lập. (Enroll MOK ->Continue->Yes->Nhập password->OK). (Tham khảo hướng dẫn)
Bây giờ hãy tạo 1 file có tên sign-vbox-modules
trong thư mục đã tạo ở trên “/root/module-signing” để xây dựng kernel, đăng ký tất cả các modules VirtualBox bằng MOK private key được tạo ở bước 2.
touch /root/module-signing/sign-vbox-modules
Và mở file, thêm vào nội dung như sau:
nano /root/module-signing/sign-vbox-modules

Thiết lập quyền 700 cho file và load vboxdrv, kích hoạt nó cho VirtualBox:
chmod 700 /root/module-signing/sign-vbox-modules /root/module-signing/sign-vbox-modules modprobe vboxdrv
Cuối cùng, hãy mở lại VirtualBox và bắt đầu sử dụng, thông báo lỗi Kernel Driver Not Installed (rc=-1908) trên Ubuntu đã được khắc phục. Phương pháp này itsmeit đã làm và hiệu quả trên Card Nvidia drivers (UEFI).
– Advertising –