80 votes

La mise à jour de Windows 10 a conduit au sauvetage de Grub.

Je faisais un double démarrage de Windows 7 et de Linux Ubuntu sur mon bureau, et c'est aujourd'hui qu'ils ont distribué les mises à jour gratuites de Windows 10. Comme c'est excitant ! J'ai reçu la mise à jour, et elle s'installait, et je suis parti pour aller faire une sieste de 30 minutes. Cependant, quand je suis revenu à mon ordinateur, il m'a conduit à l'invite de sauvetage Grub.

error: no such partition.
Entering rescue mode...
grub rescue>

J'obtiens le résultat suivant lorsque je tape ls :

grub rescue> ls
(hd0) (hd0,msdos5) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1)

Après un rapide tour d'horizon des personnes ayant rencontré l'invite de secours Grub, j'ai tapé set et j'ai obtenu ce qui suit

grub rescue> set
cmdpath=(hd0)
prefix=(hd0,msdos6)/boot/grub
root=hd0,msdos6

J'étais encore un peu perdue après avoir découvert que certaines commandes telles que normal n'a pas fonctionné, et puis j'ai trouvé un tutoriel vidéo où vous démarrez à partir d'un cd d'image Linux et exécutez quelques commandes sur le terminal. Heureusement, j'avais mon CD avec moi, et j'ai démarré à partir de celui-ci. Quand j'ai tapé sudo fdisk -l dans le terminal, voici ce que j'ai obtenu :

ubuntu@ubuntu:~$ sudo fdisk -l

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc03ede74

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      206847      102400    7  HPFS/NTFS/exFAT
/dev/sda2          206848  1547022335   773407744    7  HPFS/NTFS/exFAT
/dev/sda3      1547022336  1547943935      460800   27  Hidden NTFS WinRE
/dev/sda4      1547945982  1953521663   202787841    f  W95 Ext'd (LBA)
/dev/sda5      1915731968  1953521663    18894848    7  HPFS/NTFS/exFAT

Il est dit ici qu'aucun de mes appareils n'est équipé du système Linux ! Et je n'ai pas pu suivre le tutoriel vidéo plus que ça...

J'ai fait marcher mon cerveau un peu et j'ai déterminé que sda2 contenait mon système Windows (puisque je me souviens que mon disque C : a environ 700-ish GB d'espace). Après avoir réfléchi un peu plus, je me souviens avoir assigné environ 200 Go de mon espace disque à quelque chose qui est lié à Ubuntu lors de l'installation d'Ubuntu. Je ne me souviens pas exactement de quoi il s'agissait, mais je pense qu'il s'agissait essentiellement de l'"espace disque dur" d'Ubuntu, et qu'il ne contenait aucun fichier de démarrage. J'ai affecté deux autres choses pour linux, mais elles étaient de très petite taille (ne dépassant pas encore la barre des 1 Go).

Alors, est-ce que quelqu'un ici peut m'aider à remettre ma mise à jour sur les rails ? Cela ne me dérange pas si je dois supprimer complètement les partitions qui contiennent Linux.

69voto

nobody Points 4092

Mon ordinateur était livré avec Windows 8 préinstallé, j'ai donc réduit la partition Windows pour faire de la place à Ubuntu. C'est ainsi que cela a fonctionné l'année dernière. Après le deuxième redémarrage en mise à niveau de Windows 10, l'ordinateur ne démarrait plus. Grub n'a affiché qu'un grub rescue l'invite de commande. J'ai découvert plus tard que le problème est survenu parce que Windows a en quelque sorte changé le schéma de partition. La partition de démarrage (contenant les données normales de Grub) n'était plus là où Grub l'attendait. Je ne sais pas comment et pourquoi cela s'est produit.

La première chose que vous pouvez faire dans le mode de secours est de voir les partitions avec l'icône de l'ordinateur. ls commande. Les miens étaient :

  • (hd0,gpt1),
  • (hd0, gpt2),
  • etc.

Essayez de trouver quelle partition est votre partition de démarrage. Il n'y a pas de Tab l'achèvement, vous devez le taper complètement. J'ai essayé les commandes suivantes jusqu'à ce que je trouve la bonne partition :

ls (hd0,gpt1)/
ls (hd0,gpt1)/boot
ls (hd0,gpt2)/

etc.

Puis tapez set dans la même invite. Il affichera où Grub cherche ses fichiers. Dans mon cas, (hd0,gpt6) a été déplacé vers (hd0,gpt7). La commande set s'est affichée :

prefix=(hd0,gpt6)/boot/grub
root=hd0,gpt6

Pour revenir à un Grub normal, commencez par modifier le fichier prefix pour pointer vers la bonne partition. Dans mon cas, la commande était :

set prefix=(hd0,gpt7)/boot/grub

Ensuite, vous pouvez passer du mode secours au mode normal :

insmod normal
normal

On aurait également pu fixer le root mise en place avec :

set root=(hd0,gpt7)

Mais ce n'est pas strictement nécessaire, car cela n'a pas d'importance pour les entrées de chargement en chaîne de Windows. Une fois dans le menu normal Grub, vous pouvez démarrer Windows et terminer votre mise à niveau de Windows. Le problème est que vous devez dire à Grub secours sur les bonnes partitions à chaque redémarrage. C'est ainsi que j'ai procédé. J'ai laissé le problème de Grub pour plus tard parce que je n'étais pas sûr que Windows fasse d'autres modifications aux partitions ou au démarrage.

Lorsque Windows a terminé, j'ai commencé à résoudre les problèmes de Grub. Appuyez sur e pour éditer les options de démarrage pour Ubuntu. J'ai changé toutes les (hd0,gpt6) a (hd0,gpt7) et Ubuntu a démarré.

Cependant, j'utilise la partition cryptée et le cryptswap. Au démarrage Ubuntu m'a demandé la passphrase. Heureusement, je l'ai sauvegardée à l'installation d'Ubuntu et je l'ai saisie au démarrage. Ubuntu a démarré sans problème.

J'ai ensuite corrigé le /boot/grub/grub.cfg où j'ai remplacé (hd0,gpt6) con (hd0,gpt7) et exécuté :

sudo grub-install

À ce stade, le seul problème restant était le cryptage. Comme le numéro de la partition Ubuntu racine a été augmenté d'une unité (7 au lieu de 6), la partition swap a subi un changement similaire. J'ai dû changer le /etc/crypttab pour pointer vers /dev/sda8 代わりに /dev/sda7 .

J'utilise seulement deux partitions pour Ubuntu (root et swap). Si d'autres systèmes d'exploitation coexistant avec Windows utilisent plus de partitions, d'autres changements pourraient être nécessaires. Surtout si les partitions sont montées en fonction de leur numéro et non de leur UUID. Jetez un coup d'œil à votre /etc/fstab . Si les partitions sont identifiées par UUID, il ne devrait y avoir aucun problème. Mais s'il y a /dev/... Le nombre de lignes devrait être corrigé si ces partitions avaient été renumérotées.

13voto

L'installation de Windows (ou sa mise à niveau) parallèlement à linux peut être problématique.

Essayez ça : https://help.ubuntu.com/community/Boot-Repair

Je l'ai utilisé pour résoudre un problème après avoir installé l'aperçu technique de Windows 10, et ça a marché. Fondamentalement, ce qu'il fait est de réinstaller Grub pour fonctionner avec tous les systèmes d'exploitation actuellement installés. Assurez-vous de lui dire d'installer Grub sur votre partition linux (sd#).

Bonne chance !

10voto

oldfred Points 10672

Avant de modifier les partitions, faites une sauvegarde et enregistrez-la sur un autre périphérique. Si ce n'est pas sda, changez pour le bon lecteur. Vous pourrez alors recommencer si vous restaurez un ensemble incorrect avec testdisk. Vous voulez juste toutes les partitions actuelles plus les partitions logiques manquantes lorsque vous restaurez avec testdisk.

sudo sfdisk -d /dev/sda > parts.txt

Votre partition manquante se trouve ici ou entre le début de la partition étendue à 1547... & la première partition indiquée à 1915... :

/dev/sda4      1547945982  1953521663   202787841    f  W95 Ext'd (LBA)
/dev/sda5      1915731968  1953521663    18894848    7  HPFS/NTFS/exFAT

Vous pouvez utiliser testdisk, mais il utilise CHS. Vous devez choisir toutes les partitions existantes et la partition manquante comme logique. Il peut afficher plusieurs versions en fonction du nombre de fois où vous avez modifié les partitions. Choisissez donc la taille qui correspond à la partition manquante sans chevaucher les autres partitions actuelles. Certains qui ont correctement restauré étaient juste capable de démarrer, d'autres doit réinstaller Grub. Et certains n'ont pas pu restaurer correctement la partition.

http://www.cgsecurity.org/wiki/TestDisk_Step_By_Step

Un autre outil de restauration est le sauvetage par secteurs. Il utilise les secteurs, mais la plage que vous donnez doit être juste à l'extérieur de la partition manquante, sans chevauchement avec les partitions actuelles. C'est mieux si vous connaissez le début et la fin exacts. Voir man parted

http://www.gnu.org/software/parted/manual/html_node/rescue.html

L'utilisateur qui a utilisé le sauvetage paré :

http://ubuntuforums.org/showthread.php?t=1775331&p=10905969#post10905969

7voto

Martin Thornton Points 4221

C'est un méchant bogue dans le partitionneur de Windows, et non spécifique à Linux. Il a ironiquement supprimé une partition NTFS dans mon cas.

Le programme d'installation de Windows 10 crée une nouvelle partition (votre /dev/sda3 ) a coupé l'extrémité de la partition principale de Windows sda2 si la partition de démarrage de Windows sda1 est trop petit pour contenir l'environnement de récupération de Windows 10.

Lorsqu'il réécrit la table de partition pour ce faire, pour chaque partition logique de la table de partition étendue sda4 s'il est situé sur le disque avant le numéro de partition précédent, il abandonne.

Dans votre cas, vos partitions Linux se trouvaient sur votre disque avant votre nouvelle version. sda5 mais ont un nombre de partitions plus élevé que sda5 qu'il avait avant la répartition.

Si vous consultez les énormes journaux de mise à niveau de Windows 10, vous verrez un message du type "6 avant 5, rien à faire", ainsi que les anciennes et nouvelles tables de partition.

Windows n'écrase pas le contenu des partitions qu'il supprime, il est donc possible de les récupérer si vous parvenez à trouver leur emplacement. Dans mon cas, j'avais des sauvegardes de la table des partitions, mais en utilisant la fonction testdisk comme expliqué dans réponse de oldfred a une excellente chance de les trouver tous. Sauvetage partiel sera difficile à utiliser car plus d'une partition a été supprimée dans votre cas.

Pour utiliser testdisk à partir de votre CD Live Ubuntu, dans un terminal tapez sudo apt-get install testdisk pour l'installer, et sudo testdisk pour courir.

Après avoir réparé la table de partition, la partition Linux contenant Grub peut maintenant avoir un numéro différent de celui d'avant, donc vous pouvez toujours vous retrouver à l'invite de sauvetage Grub. Si c'est le cas, Réparation des bottes sera désormais en mesure de corriger Grub.

De nouveau, en utilisant votre CD Live Ubuntu, tapez :

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair

pour l'installer et l'exécuter.

Maintenant, Windows peut terminer sa mise à niveau.

1voto

iacobus Points 484

Pour utiliser le boot-repair, vous devez le configurer dans le BIOS :

  • Activez l'UEFI (dans mon BIOS c'est :)

    Support de l'héritage DISABLE

  • Désactiver Secure Boot

Vous avez probablement activé Secure Boot, et vous obtenez donc l'erreur "fichier incorrectement signé".

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X