web-dev-qa-db-fra.com

Véritable raison pour laquelle la machine VirtualBox ne démarre pas après une mise à jour du noyau Linux

Je sais que de nombreuses discussions ouvertes ont eu lieu sur ce problème, mais aucune d’entre elles n’adresse une raison unique à propos du bogue.

Il s’agit d’Ubuntu 16.04, dans mon cas. J'installe VirtualBox à partir du référentiel Ubuntu, avec Sudo apt install virtualbox-qt

J'avais le noyau 4.4.0-34-generic installé. Après avoir installé VirtualBox, tout a bien fonctionné.

Mais après avoir mis à jour le système (via Software Updater) et mis à niveau avec Sudo apt upgrade, Sudo apt dist-upgrade et auto-remove, ma machine virtuelle ne peut pas démarrer. Le noyau 4.4.0-36-generic est maintenant installé. Cela dit quelque chose comme:

please install virtualbox-dkms and check if appropriate linux-headers are installed

virtualbox-dkms est déjà installé, donc rien ne se passe après Sudo apt install virtualbox-dkms

Mais qu'en est-il des en-têtes?

$ dpkg -l | grep linux-headers  
ii  linux-headers-4.4.0-34  4.4.0-34.53  all  Header files related to Linux kernel version 4.4.0  
ii  linux-headers-4.4.0-34-generic  4.4.0-34.53  AMD64  Linux kernel headers for version 4.4.0 on 64 bit x86 SMP  
ii  linux-headers-4.4.0-36  4.4.0-36.55  all  Header files related to Linux kernel version 4.4.0  
ii  linux-headers-4.4.0-36-generic  4.4.0-36.55  AMD64  Linux kernel headers for version 4.4.0 on 64 bit x86 SMP  
ii  linux-headers-generic  4.4.0.36.38  AMD64  Generic Linux kernel headers  

$ uname -r  
4.4.0-36-generic

Et quelle est la vraie raison pour laquelle cela se produit après chaque mise à jour du noyau? Je veux savoir exactement quoi faire et ne pas toujours passer des jours à le réparer.

2
Dusan

J'ai trouvé une solution.

Bien que ma question ne reçoive pas de réponse et que je ne comprenne pas très bien POURQUOI ce problème se produit, je souhaite partager avec vous un résumé de la solution. J'ai accepté que le noyau Linux n'assure tout simplement pas le support de Virtualbox après une mise à jour. Ils connaissent la raison.

Quoi qu'il en soit, le problème survient après presque chaque mise à jour du noyau ou du paquet. Si tu essayes

$ Sudo modprobe vboxdrv, vous obtenez modprobe: ERROR: could not insert 'vboxdrv': Required key not available.

La solution consiste à signer manuellement la clé chaque fois que cela se produit, car la signature est KERNEL-DEPENDENT. Il est lié à Ubuntu 16.04 SANS désactiver le démarrage sécurisé.

Pas:

  1. Vérifier si les en-têtes installés ($ dpkg -l | grep linux-headers) correspondent au noyau en cours d'exécution

    ($ uname -r).

  2. Vous pouvez toujours utiliser cette commande pour voir une liste des clés inscrites/signées:

    $ Sudo keyctl list %:.system_keyring.

  3. Si vous avez déjà signé une clé pour Virtualbox (avec l'ancien noyau), vous devez la supprimer. Il existe un moyen de supprimer une clé unique, mais je les supprime tous en une fois (toutes les clés que j'ai inscrites):

    $ Sudo mokutil --reset. Choisissez un mot de passe et redémarrez l'ordinateur.

  4. Ubuntu vous demandera automatiquement lors du démarrage. Choisissez "Reset MOK" et utilisez le mot de passe choisi.
  5. Si vous n'avez pas encore créé la clé X.509, créez un dossier pour la clé et accédez-y.
  6. Créez la clé avec: $ openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Akrog/". Au lieu de "MOK" et "Akrog", choisissez des noms (par exemple, "vbX509Key" et "vbKey").
  7. Inscrivez la clé avec: $ Sudo /usr/src/linux-headers-XXX-generic/scripts/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/XXX-generic/updates/dkms/vboxdrv.ko. Au lieu de "MOK", utilisez le nom spécifié et la version correcte du noyau au lieu de "XXX".
  8. Importez la clé avec $ Sudo mokutil --import MOK.der. Encore une fois, utilisez le nom spécifié à la place de "MOK". Choisissez un mot de passe et redémarrez l'ordinateur.
  9. Ubuntu vous demandera automatiquement lors du démarrage. Choisissez "Inscrire MOK" et utilisez le mot de passe choisi.

Maintenant, vous pouvez normalement démarrer et utiliser la Virtualbox.

1
Dusan

Après la mise à niveau du noyau en cas de problème avec la VirtualBox du référentiel Ubuntu, utilisez simplement le la dernière VirtualBox du site Web officiel . Ce pourrait être la solution la plus simple et la plus rapide.

0
luart