web-dev-qa-db-fra.com

J'ai attendu le périphérique racine 14.04

Il y a beaucoup de réponses et de tutoriels pour résoudre ce problème, mais je n'ai pu appliquer aucune des solutions dans mon cas.

Voici ma situation:

  • J'ai parfaitement fonctionné Ubuntu 12.04
  • J'ai installé Ubuntu 14.04
  • l'erreur est survenue lorsque j'essaie de démarrer 14.04 (le 12.04 fonctionne correctement)

J'ai la clé usb avec 14.04 et 12.04 de travail afin que je puisse appliquer des corrections ou déboguer plus loin.

Lancer Sudo grub-update me donne:

> Generating grub.cfg ... Found linux image:
> /boot/vmlinuz-3.5.0-52-generic Found initrd image:
> /boot/initrd.img-3.5.0-52-generic Found linux image:
> /boot/vmlinuz-3.5.0-46-generic Found initrd image:
> /boot/initrd.img-3.5.0-46-generic Found linux image:
> /boot/vmlinuz-3.5.0-45-generic Found initrd image:
> /boot/initrd.img-3.5.0-45-generic Found linux image:
> /boot/vmlinuz-3.5.0-23-generic Found initrd image:
> /boot/initrd.img-3.5.0-23-generic Found memtest86+ image:
> /boot/memtest86+.bin Found Ubuntu 14.04 LTS (14.04) on /dev/sda6 
> done

Une des solutions que j’ai essayée a été d’appuyer sur e sur le grub menu et de remplacer l’ID par /dev/sda6, mais rien ne change.

Quelle est la cause du problème et existe-t-il un moyen simple de réparer le vers à l’aide de la version 12.04?


enter image description here

enter image description here


enter image description hereenter image description here

    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 0970394e-13f2-47c9-979e-c93cb6eef06d
    linux   /boot/vmlinuz-3.5.0-52-generic root=UUID=0970394e-13f2-47c9-979e-c93cb6eef06d ro   quiet splash $vt_handoff
    initrd  /boot/initrd.img-3.5.0-52-generic
}
--
    search --no-floppy --fs-uuid --set=root 0970394e-13f2-47c9-979e-c93cb6eef06d
    echo    'Loading Linux 3.5.0-52-generic ...'
    linux   /boot/vmlinuz-3.5.0-52-generic root=UUID=0970394e-13f2-47c9-979e-c93cb6eef06d ro recovery nomodeset 
    echo    'Loading initial ramdisk ...'
    initrd  /boot/initrd.img-3.5.0-52-generic
--
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 0970394e-13f2-47c9-979e-c93cb6eef06d
    linux   /boot/vmlinuz-3.5.0-46-generic root=UUID=0970394e-13f2-47c9-979e-c93cb6eef06d ro   quiet splash $vt_handoff
    initrd  /boot/initrd.img-3.5.0-46-generic
}
--
    search --no-floppy --fs-uuid --set=root 0970394e-13f2-47c9-979e-c93cb6eef06d
    echo    'Loading Linux 3.5.0-46-generic ...'
    linux   /boot/vmlinuz-3.5.0-46-generic root=UUID=0970394e-13f2-47c9-979e-c93cb6eef06d ro recovery nomodeset 
    echo    'Loading initial ramdisk ...'
    initrd  /boot/initrd.img-3.5.0-46-generic
--
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 0970394e-13f2-47c9-979e-c93cb6eef06d
    linux   /boot/vmlinuz-3.5.0-45-generic root=UUID=0970394e-13f2-47c9-979e-c93cb6eef06d ro   quiet splash $vt_handoff
    initrd  /boot/initrd.img-3.5.0-45-generic
}
--
    search --no-floppy --fs-uuid --set=root 0970394e-13f2-47c9-979e-c93cb6eef06d
    echo    'Loading Linux 3.5.0-45-generic ...'
    linux   /boot/vmlinuz-3.5.0-45-generic root=UUID=0970394e-13f2-47c9-979e-c93cb6eef06d ro recovery nomodeset 
    echo    'Loading initial ramdisk ...'
    initrd  /boot/initrd.img-3.5.0-45-generic
--
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 0970394e-13f2-47c9-979e-c93cb6eef06d
    linux   /boot/vmlinuz-3.5.0-23-generic root=UUID=0970394e-13f2-47c9-979e-c93cb6eef06d ro   quiet splash $vt_handoff
    initrd  /boot/initrd.img-3.5.0-23-generic
}
--
    search --no-floppy --fs-uuid --set=root 0970394e-13f2-47c9-979e-c93cb6eef06d
    echo    'Loading Linux 3.5.0-23-generic ...'
    linux   /boot/vmlinuz-3.5.0-23-generic root=UUID=0970394e-13f2-47c9-979e-c93cb6eef06d ro recovery nomodeset 
    echo    'Loading initial ramdisk ...'
    initrd  /boot/initrd.img-3.5.0-23-generic
--
    set root='(hd0,msdos6)'
    search --no-floppy --fs-uuid --set=root ee707b14-31a7-4f86-a6e5-1b9aa38bdd68
    linux /boot/vmlinuz-3.13.0-30-generic root=UUID=ee707b14-31a7-4f86-a6e5-1b9aa38bdd68 ro nomodeset quiet splash $vt_handoff
    initrd /boot/initrd.img-3.13.0-30-generic
}
--
    set root='(hd0,msdos6)'
    search --no-floppy --fs-uuid --set=root ee707b14-31a7-4f86-a6e5-1b9aa38bdd68
    linux /boot/vmlinuz-3.13.0-30-generic root=UUID=ee707b14-31a7-4f86-a6e5-1b9aa38bdd68 ro nomodeset quiet splash $vt_handoff
    initrd /boot/initrd.img-3.13.0-30-generic
}
--
    set root='(hd0,msdos6)'
    search --no-floppy --fs-uuid --set=root ee707b14-31a7-4f86-a6e5-1b9aa38bdd68
    linux /boot/vmlinuz-3.13.0-30-generic root=UUID=ee707b14-31a7-4f86-a6e5-1b9aa38bdd68 ro recovery nomodeset nomodeset
    initrd /boot/initrd.img-3.13.0-30-generic
}
--
    set root='(hd0,msdos6)'
    search --no-floppy --fs-uuid --set=root ee707b14-31a7-4f86-a6e5-1b9aa38bdd68
    linux /boot/vmlinuz-3.13.0-24-generic root=UUID=ee707b14-31a7-4f86-a6e5-1b9aa38bdd68 ro nomodeset quiet splash $vt_handoff
    initrd /boot/initrd.img-3.13.0-24-generic
}
--
    set root='(hd0,msdos6)'
    search --no-floppy --fs-uuid --set=root ee707b14-31a7-4f86-a6e5-1b9aa38bdd68
    linux /boot/vmlinuz-3.13.0-24-generic root=UUID=ee707b14-31a7-4f86-a6e5-1b9aa38bdd68 ro recovery nomodeset nomodeset
    initrd /boot/initrd.img-3.13.0-24-generic
}
2
gotqn

Les deux causes possibles de l'erreur ci-dessus sont (en supposant que l'installation n'est pas complètement interrompue):

a) Grub ne charge pas la racine correcte pour l’amorçage de 14.04

b) L'entrée pour root dans 14.04 install's fstab et/ou initrd est cassée.

Compte tenu des commentaires en question, il semble peu probable que a) en soit la cause. La raison étant que le remplacement par root =/dev/sda6 dans grub n'a pas aidé. Les entrées grub 12.04 semblent correctes, mais il est probable que l’installation réelle est actuellement à partir de 14.04 (peut être vérifiée à partir des entrées affichées sur la page de démarrage de grub avant serait de 14.04 et l’écran alternatif 12.04). Donc, remplacer par 12.04 grub peut être essayé d’abord, comme mentionné, ce n’est probablement pas le problème. De l'environnement de travail 12.04:

Sudo grub-install /dev/sda

Vérifiez que grub a un délai d'expiration défini pour permettre la sélection d'une option: Sudo gedit /etc/default/grub, GRUB_HIDDEN_TIMEOUT et GRUB_TIMEOUT doivent être non nuls, par exemple 10 (pour 10 secondes), puis exécutez Sudo update-grub. La réinitialisation affichera maintenant 12.04 sur l'écran de démarrage avant, tandis que 14.04 sera sur l'écran de remplacement. Si 14.04 fonctionne maintenant, alors nous avons terminé et nous pouvons simplement installer le programme de 14.04 en exécutant Sudo grub-install /dev/sda à partir de l'environnement 14.04. Sinon, nous allons essayer de corriger b) comme mentionné ci-après.

Il y a deux façons de s'y prendre b). L'une consiste à démarrer à partir du CD live, à monter une installation existante, puis à le réparer. Autre est de réparer à partir de l'installation 12.04 de travail. Je vais élaborer sur 2nd, bien que la 1ère option soit assez similaire, la seule différence étant le démarrage sur un CD live au lieu de l’installation 12.04 existante.

Après l’amorçage dans 12.04, commencez par entrer dans le shell racine pour éviter les appels répétés Sudo: Sudo -i.

Maintenant, nous allons monter l’installation 14.04 quelque part (par exemple, /mnt/trusty) et chroot, ce qui fera que l’installation 14.04 sera la nouvelle racine de ce shell (et qu’elle transformera le shell en version 14.04). Dans les anciens jours de Linux, c'était suffisant pour fonctionner dans un environnement 14.04 à partir d'un shell, mais dans les noyaux les plus récents, la plupart des fichiers de périphériques dans /dev sont devenus dynamiques et remplacés par le démon udev, nécessite la création manuelle de beaucoup de choses en premier. Cependant, pour que nous puissions réparer le fstab/initrd, tout devrait bien se passer tel quel. Néanmoins, nous devrons faire quelques choses pour éviter les avertissements/erreurs - copier le fichier mtab actuel et monter proc.

mkdir /mnt/trusty
mount /dev/sda6 /mnt/trusty
cp /etc/mtab /mnt/trusty/etc/mtab

À ce stade, nous sommes prêts à vérifier et à corriger fstab, avant chrooting, puis régénérez l'image initrd du noyau 14.04. Alors ouvrez-le: gedit /mnt/trusty/etc/fstab et vérifiez que la première ligne non commentée a le bon UUID pour le point de montage de la racine (/). Dans ce cas, nous avons vu que la racine/dev/sda6 de la racine de 14.04 de l’UUID est ee707b14-31a7-4f86-a6e5-1b9aa38bdd68, alors vérifiez que fstab indique également la même chose, sinon corrigez l’UUID, enregistrez fstab et fermez-la. Maintenant nous pouvons régénérer l'initrd:

chroot /mnt/trusty
mount -t proc proc /proc
update-initramfs -k all -c

Cela devrait se terminer sans erreur. Puis démontez/proc, déconnectez-vous de l'environnement chroot et démontez 14.04:

umount /proc
exit
umount /mnt/trusty

Maintenant, redémarrez et essayez de démarrer 14.04. Si tout commence bien, remplacez-le par le fichier grub de 14.04, comme indiqué précédemment: Sudo grub-install /dev/sda à partir de l'environnement 14.04. Il serait également judicieux de régénérer initrd à partir de l’environnement 14.04 au cas où l’environnement chrooté aurait quelques différences: Sudo update-initramfs -k all -c.

4
sumwale

J'ai eu le même message d'erreur et rien n'a aidé. Dans mon cas, l'erreur s'est avérée corrompre le système de fichiers. Il était impossible de lire à partir du disque.

Je l'ai corrigé en exécutant fsck sur mes lecteurs linux (/ dev/sdaN) avec l'option - f. De cette façon, j'ai forcé fsck à rechercher les erreurs sur le lecteur (et pas seulement à lire l'indicateur de la dernière vérification) et à corriger manuellement les erreurs trouvées.

Une fois les erreurs corrigées, mon système était de nouveau en ligne après un redémarrage. J'espère que ça aide.

1
Projjwal