Panique du noyau avec l'erreur «Impossible d'ouvrir le périphérique racine», où ajouter l'option «root =»?

9

chaque fois que j'essaie de démarrer avec le noyau linux 3.0.0.13 (celui installé par les mises à niveau), j'obtiens une erreur de panique du noyau:

VFS: impossible d'ouvrir le périphérique racine "sda1" ou un bloc inconnu (0,0) Veuillez ajouter une option de démarrage "root =" correcte;

Heureusement, si je démarre avec la version précédente, je n'ai aucun problème. Comment puis-je resoudre ceci? Où dois-je ajouter le bon root= option? Si je ne réussis pas à faire fonctionner ce noyau, comment puis-je le supprimer par défaut et m'en tenir à l'ancien?

lucacerone
la source
Même problème ici. La principale différence que j'observe est que jusqu'à 3.0.0.12, la conf de grub essaie d'identifier le disque dur en utilisant son UUID, 3.0.0.13 utilise maintenant / dev / sda6 .. bizarre ...
Dan Soap

Réponses:

11

Vous n'avez pas fourni beaucoup d'informations sur les journaux et autres pour continuer, mais je suppose que cette erreur est probablement due au fait que le noyau est confondu par un lecteur IDE / SATA. Faire une recherche rapide sur Google m'a conduit à lier 1 , lien 2 , lien 3

Voici l'extrait d'un lien mentionné par l' un des liens ci - dessus :

Probablement l'un des problèmes les plus courants (mais une fois que vous l'avez résolu, vous ne le reverrez probablement plus):

Unable to mount root fs on unknown-block(0,0)

ou

VFS: Cannot open root device "sda3" or unknown-block(8,3)
Please append a correct "root=" boot option; here are the available partitions:
  sda driver: sd
    sda1 sda2

Les chiffres 0,0ou 8,3peuvent être différents dans votre cas - il s'agit du périphérique auquel le noyau essaie d'accéder (et qui échoue). D'une manière générale, on peut dire que si le premier chiffre est 0, le noyau n'est pas en mesure d'identifier le matériel. S'il s'agit d'un autre chiffre (comme 8), il ne peut pas identifier le système de fichiers (mais peut accéder au matériel).

Le problème ici est que le noyau que vous démarrez ne peut pas traduire le root=/dev/...paramètre que vous lui avez donné (dans la configuration du chargeur de démarrage) en un véritable système de fichiers accessible. Plusieurs raisons peuvent entraîner un tel échec:

  • il manque des pilotes pour votre contrôleur de disque dur dans la configuration du noyau (cas 1, 4, 5)
  • la configuration du noyau manque de pilotes pour le bus utilisé par votre contrôleur de disque dur
  • la configuration du noyau manque de pilotes pour le système de fichiers que vous utilisez
  • l'appareil est mal identifié dans votre paramètre root = (cas 2, 3)

Il est facile de résoudre le problème si vous en connaissez la raison. Vous n'avez probablement pas, alors voici un check-up rapide.

Ouvrez l'assistant de configuration du noyau (la partie make menuconfig ) afin de pouvoir mettre à jour la configuration du noyau en conséquence.

  • Vérifiez si vous avez intégré (et non en tant que module) la prise en charge du bus / protocole utilisé par votre contrôleur de disque dur.
  • Il s'agit très probablement de la prise en charge PCI, de la prise en charge SATA (qui se trouve sous la prise en charge des périphériques SCSI), ...
  • Vérifiez si vous avez intégré (et non en tant que module) la prise en charge du contrôleur de disque dur que vous utilisez. L'un des cas les plus fréquents: vous avez sélectionné la prise en charge de votre protocole de contrôleur de disque dur (IDE, SATA, SCSI, ...) mais vous avez oublié de
    sélectionner le pilote de contrôleur HDD lui-même (comme Intel PIIX). Essayez d'
    exécuter la commande lscpi suivante et collez sa sortie sur
    http://kmuto.jp/debian/hcl/ . Le site vous montrera quels pilotes de noyau vous devez sélectionner pour votre système. Dans le menu menuconfig,
    vous pouvez taper "/" pour ouvrir la fonction de recherche et taper le
    nom du pilote pour savoir où il réside. # lspci -n
  • Vérifiez si vous avez intégré (et non en tant que module) la prise en charge du ou des systèmes de fichiers que vous utilisez.
  • Supposons que votre système de fichiers racine utilise btrfs (que je ne recommande absolument pas) mais que vous ne l'avez pas sélectionné ou sélectionné pour être construit en tant que
    module, vous obtiendrez l'erreur que vous voyez. Assurez-vous que la
    prise en charge du système de fichiers est intégrée dans le noyau.
  • Vérifiez si le paramètre du noyau pour root=pointe vers la partition correcte.

    Ce n'est pas aussi stupide qu'il y paraît. Lorsque vous êtes démarré avec un seul noyau, il se peut que vos disques soient / dev / sda alors que votre noyau (configuré) s'attend à ce qu'il soit / dev / hda. Ce n'est pas parce que les noyaux ne sont pas cohérents, mais à cause des pilotes utilisés: les pilotes plus anciens utilisent la syntaxe hda, les nouveaux sda.

    Essayez de changer hda avec sda (et hdb avec sdb, et ...).

    De plus, les noyaux récents donnent un aperçu des partitions qu'ils ont trouvées sur le périphérique indiqué. Si c'est le cas, cela pourrait vous aider à identifier si vous avez mal sélectionné une partition (dans l'exemple donné au début de cette section, seules deux partitions sont trouvées alors que le noyau a été chargé de démarrer la troisième). Si ce n'est pas le cas, c'est probablement parce que le noyau ne connaît pas le périphérique pour commencer (il ne peut donc pas essayer d'afficher les partitions).

  • Vérifiez si le noyau en cours de démarrage par le chargeur de démarrage est le bon noyau. J'ai vu des gens qui, après avoir construit un premier noyau (qui ne démarre pas), oublient qu'ils doivent monter /bootavant d'écraser le noyau avec un nouveau. Par conséquent, ils copient le noyau dans le système de fichiers racine ( /) alors que le chargeur de démarrage attend toujours que l'image du noyau soit sur la /bootpartition.

Nitin Venkatesh
la source
1
Salut, ça a passé beaucoup de temps, mais merci. J'avais un CD-Rom défectueux, supprimant que tout fonctionnait bien!
lucacerone
Le lien 1, le lien 4 et le lien 5 sont tous morts maintenant.
Questionmark
0

Après avoir lu cette réponse qui explique ce qui se passe, essayez d'utiliser le [CD Boot-Reapir] [1] [1]: https://help.ubuntu.com/community/Boot-Repair

A très bien fonctionné pour réparer le "l'appareil est mal identifié dans votre paramètre root = (cas 2, 3)".

madcap66
la source