web-dev-qa-db-fra.com

La mise à jour du noyau sur une clé USB échoue avec une erreur grub-sonde

Je diagnostique des problèmes matériels à l'aide d'une installation de la clé USB d'Ubuntu 11.10.

La clé USB a été configurée avec l’image 11.10 et la méthode pendrivelinux.com comme recommandé sur le site Web Ubuntu. La clé USB est de 8 Go.

Mon ordinateur portable me permet de démarrer directement à partir de l'USB, de sorte que le disque dur a toujours une structure de démarrage de style Micro $ oft (Windows 7).

Après avoir joué un peu avec l'O/S (et appris que mon disque dur compte 15 000 secteurs réaffectés), le gestionnaire de mises à jour m'a demandé d'installer certaines mises à jour. Tout a été mis à jour correctement à l'exception de la mise à jour du noyau (3.0.0.14).

Il semble y avoir une erreur de vers:

ubuntu@ubuntu:/dev$ Sudo apt-get install
Reading package lists... Done  
Building dependency tree   
Reading state information... Done  
0 upgraded, 0 newly installed, 0 to remove and 21 not upgraded.  
3 not fully installed or removed.  
After this operation, 0 B of additional disk space will be used.  
Setting up linux-image-3.0.0-14-generic (3.0.0-14.23) ...  
Running depmod.  
update-initramfs: deferring update (hook will be called later)  
Examining /etc/kernel/postinst.d.  
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.0.0-14-generic /boot/vmlinuz-3.0.0-14-generic  
update-initramfs: Generating /boot/initrd.img-3.0.0-14-generic  
cryptsetup: WARNING: failed to detect canonical device of overlayfs  
cryptsetup: WARNING: could not determine root device from /etc/fstab  
run-parts: executing /etc/kernel/postinst.d/pm-utils 3.0.0-14-generic /boot/vmlinuz-3.0.0-14-generic  
run-parts: executing /etc/kernel/postinst.d/update-notifier 3.0.0-14-generic /boot/vmlinuz-3.0.0-14-generic  
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 3.0.0-14-generic /boot/vmlinuz-3.0.0-14-generic  
/usr/sbin/grub-probe: error: cannot find a device for / (is /dev mounted?).  
run-parts: /etc/kernel/postinst.d/zz-update-grub exited with return code 1

qui persiste à chaque fois que j'essaie de répéter l'installation. Heureusement, le système reste toujours dans un état amorçable malgré la panne.

Dois-je prendre des mesures spéciales pour mettre à jour le noyau? Ai-je un problème d'installation subtil que je dois résoudre manuellement pour résoudre ce problème?

Au moins un autre a eu le même problème sur une version antérieure du système d'exploitation. Je fournirai le résultat de mount (comme cela a été demandé à la question précédente) lorsque j'aurai à nouveau accès à l'ordinateur portable.

Edit: les résultats de mount:

/cow on / type overlayfs (rw)   
proc on /proc type proc (rw,noexec,nosuid,nodev  
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)  
fusectl on /sys/fs/Fuse/connections type fusectl (rw)  
udev on /dev type devtmpfs (rw,mode=0755)  
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)  
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)  
/dev/sdb1 on /cdrom type vfat  (rw,relatime,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)  
/dev/loop0 on /rofs type squashfs (ro,noatime)  
none on /sys/kernel/debug type debugfs (rw)  
none on /sys/kernel/security type securityfs (rw)  
tmpfs on /tmp type tmpfs (rw,nosuid,nodev)  
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)  
none on /run/shm type tmpfs (rw,nosuid,nodev)  
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)  
gvfs-Fuse-daemon on /home/ubuntu/.gvfs type Fuse.gvfs-Fuse-daemon (rw,nosuid,nodev,user=ubuntu)

Edit # 2: J'ai déterminé que l'utilitaire de lecteur flash pendrivelinux.com pourrait jouer un rôle dans ce processus. La clé USB contenant ma distribution Ubuntu est formatée en FAT32 et le chargeur de démarrage en cours d'installation n'est pas réellement GRUB, mais SYSLINUX, conformément au script boot_info_script.

Il est logique que grub-probe ne sache pas quoi faire, sachant que grub n’est absolument pas impliqué dans le processus de démarrage.

(Cela m'amène à me demander pourquoi apt-get ne recherche pas un chargeur de démarrage grub comme dépendance avant de tenter une mise à jour du noyau?)

Je suppose que la prochaine étape consiste à écraser SYSLINUX avec GRUB et à essayer d’amorcer le bâton de cette façon, puis de voir si les mises à jour fonctionnent.

Ma première tentative a abouti à un système non amorçable - grub était en cours de chargement, je pouvais charger le noyau correctement mais je ne savais pas quoi monter en tant que root. Je devais essuyer et réinstaller sur le lecteur flash pour y aller à nouveau.

1
Adam Lawrence

Je vois que vous avez résolu votre problème (sous Windows 7 ... ce n’est pas vraiment une solution, mais quand même). J'ai trouvé une solution. Je le poste ici pour les autres utilisateurs susceptibles de rencontrer le problème.

J'ai trouvé comment résoudre ce problème. La ligne qui casse l'installation est la suivante:

run-parts: executing /etc/kernel/postinst.d/zz-update-grub 3.0.0-15-generic /boot/vmlinuz-3.0.0-15-generic

(La version du noyau peut être différente sur votre installation)

Editez le fichier problématique pour commenter la ligne qui met à jour Grub. C'est un très petit fichier, donc ce n'est pas trop difficile.

NOTE: Si vous voulez sauvegarder le fichier d’abord (c’est généralement une bonne idée), copiez-le dans un autre répertoire (/root est bon, /tmp est pas depuis qu'il ne survivra pas à un redémarrage). Si vous effectuez une sauvegarde dans le même dossier (/etc/kernel/postinst.d/), elle sera également appelée et échouera.

Editez /etc/kernel/postinst.d/zz-update-grub pour commenter la ligne 15.

AVANT:

    */postinst.d/*:|*/postinst.d/*:configure|*/postrm.d/*:|*/postrm.d/*:remove)
        exec update-grub
        ;;

APRES:

    */postinst.d/*:|*/postinst.d/*:configure|*/postrm.d/*:|*/postrm.d/*:remove)
#       exec update-grub
        ;;

Exécutez le script de configuration:

Sudo dpkg --configure -a

Vous devriez voir beaucoup de débogage, et PAS la ligne d'erreur à la fin.

Pour être sûr, réexécutez la configuration. Il devrait se terminer immédiatement sans aucun journal:

Sudo dpkg --configure -a

Vous pouvez maintenant restaurer le fichier zz-update-grub, au cas où vous voudriez installer un autre noyau ultérieurement et que grub commence à fonctionner avec overlayfs.

5
bbp

Avez-vous résolu votre problème? J'ai la même erreur ici. Je n'ai pas vraiment besoin de le réparer, je peux facilement réinstaller le système sur la clé USB, mais j'aime le défi :)

La solution la plus intelligente consiste à expliquer à Grub comment comprendre les superpositions, mais je ne connais pas le paquet à installer pour cela (le cas échéant). Comme ma clé USB est toujours amorçable, je veux forcer apt-get à ignorer cet avertissement. C'EST À DIRE. Considérez ce paquet comme installé, même si ce n'est pas complètement vrai. Eh bien, techniquement, il a été installé correctement, seul Grub ne parvient pas à mettre à jour le MBR. Ce n'est pas grave, car il lance la dernière version du noyau.

Chaque tentative prend un certain temps car elle tente de configurer le paquet mais Grub échoue, puis essaie de revenir en arrière et Grub échoue à nouveau ...

J'ai essayé ce qui suit sans succès:

(apt-get -f is for fixing problems)
Sudo apt-get -f install
Sudo apt-get -f --force-yes install
Sudo apt-get --force-yes install linux-image-3.0.0-15-generic
Sudo apt-get install --force-yes linux-image-3.0.0-15-generic
Sudo dpkg --force-all -i linux-image-3.0.0-15-generic
Sudo apt-mark manual linux-image-3.0.0-15-generic
(the following command is the one that trigger the bug)
Sudo dpkg --configure -a
Sudo dpkg --configure --force-all -a
(I think the next one need the .deb file)
Sudo dpkg --force-confmiss -i linux-image-3.0.0-15-generic
Sudo dpkg --force-confold -i linux-image-3.0.0-15-generic
Sudo dpkg --no-triggers -i linux-image-3.0.0-15-generic

... et beaucoup plus...

0
bbp