Est-il normal qu'un redémarrage soit nécessaire pour monter l'USB après une mise à niveau du kernel?

Parfois, je vois le kernel Linux mentionné dans la list des mises à niveau, lors de l'exécution de pacman -Syu (mise à jour de mes packages dans Arch Linux). Chaque fois que cela se produit, après l'installation des packages, je ne peux plus monter de key USB avant de redémarrer. J'aimerais simplement savoir si c'est quelque chose de commun et d'attendu (et si c'est le cas, pourquoi, est-ce que je me request), ou si ce n'est pas prévu que je devrais enquêter.

Probablement, sur cette dissortingbution, c'est normal. Cela dépend de la façon dont le gestionnaire de packages installe le nouveau kernel.

Je suppose que votre gestionnaire de packages (lors de la mise à niveau du kernel) supprime immédiatement l'ancien directory kernel-modules. De cette façon, lorsque vous essayez de monter un stick usb formaté vfat , le kernel ne parviendra pas à charger le module vfat kernel requirejs.

Pour vérifier ma supposition, la prochaine fois que vous mettez à jour le kernel, vous pouvez vérifier l'existence du directory du module du kernel:

  • avant la mise à niveau, vous devriez find qu'il existe un directory nommé en tant que version actuelle (ancienne) du kernel.

     ~> ls -d /lib/modules/`uname -r` /lib/modules/3.0.0-1.2-desktop 
  • après la mise à niveau mais avant le redémarrage, vous devriez find que le directory n'existe plus (vous ne pouvez donc pas gérer le nouveau matériel).

     ~> ls -d /lib/modules/`uname -r` ls: cannot access /lib/modules/3.0.0-1.2-desktop: No such file or directory 
  • après le redémarrage, vous devriez find qu'il existe un nouveau directory de module du kernel nommé en tant que version actuelle (le nouveau) du kernel.

     ~> ls -d /lib/modules/`uname -r` /lib/modules/3.1.0-1.4 

Pour éviter ce problème, d'autres dissortingbutions (comme openSuSE) retardent la suppression du directory jusqu'à ce que vous redémarriez.

Oui et non. Idéalement, un redémarrage ne serait pas nécessaire, mais cela peut être difficile à organiser en pratique.

Vous devriez pouvoir continuer à utiliser les types de périphériques que vous avez déjà utilisés dans cette session. Des problèmes surviendront si vous essayez d'utiliser un nouveau type de périphérique (ou un autre format de système de files, ou protocole de réseau, etc.) nécessitant le chargement d'un module. Les modules du nouveau kernel peuvent ne pas être compatibles avec le kernel en cours d'exécution.

S'il s'agit d'une mise à niveau de security mineure qui n'a pas modifié l'interface binary, les nouveaux modules continueront à s'exécuter. Votre dissortingbution doit avoir arrangé pour comstackr le nouveau kernel avec une indication que la compatibilité binary n'a pas été affectée (même uname -r sortie).

S'il s'agit d'une mise à niveau majeure qui a changé la version du packageage du kernel, vous pouvez conserver l'ancien package et le nouveau package jusqu'à votre prochain redémarrage. De cette façon, les modules seront toujours chargés à partir de l'ancien package.

Le problème survient lorsqu'une mise à niveau écrase le kernel et les modules existants mais change la compatibilité binary. Idéalement, les dissortingbutions ne le feraient pas. Si vous vous sentez chanceux, vous pouvez forcer un module à être chargé avec modprobe --force-vermagic --force-modversion ; méfiez-vous que cela peut causer des accidents, la corruption de données et la mort de chiots s'il y a effectivement des incompatibilités binarys: utilisez à vos risques et périls.