La mise à niveau de Windows 10 a mené au sauvetage de grub

66

J'étais à deux démarrages de Windows 7 et de Linux Ubuntu sur mon bureau, et aujourd'hui c'est le jour où ils ont distribué des mises à jour gratuites de Windows 10. Comme c'est excitant! J'ai reçu la mise à jour et elle était en cours d'installation, et je suis partie pour faire une sieste de 30 minutes. Cependant, quand je suis revenu sur mon ordinateur, cela m'a conduit à l'invite de sauvetage.

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

Je reçois ce qui suit lorsque je tape ls :

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

Après un rapide survol des personnes qui ont rencontré l'invite de sauvetage grub, j'ai tapé set et obtenu les informations suivantes:

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

J'étais encore un peu perdu après avoir constaté que certaines commandes comme normal ne fonctionnaient pas, puis j'ai trouvé un didacticiel vidéo où vous démarrez depuis une image Linux cd et exécutez des commandes sur le terminal. Heureusement, j'avais mon CD avec moi et je suis parti de là. Quand j'ai tapé sudo fdisk -l dans le terminal, c'est ce que j'ai eu:

[email protected]:~$ 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

Dit ici qu'aucun de mes appareils ne contient le système Linux! Et je ne pouvais pas suivre le tutoriel vidéo plus que ça ...

J'ai taquiné un peu mon cerveau et j'ai déterminé que sda2 contenait mon système Windows (puisque je me souviens de mon lecteur C: il a environ 700 Go d'espace libre). Après avoir réfléchi un peu plus, je me souviens d'avoir assigné environ 200 Go de mémoire vive sur mon disque dur à quelque chose lié à Ubuntu lors de l'installation d'Ubuntu. Je ne me souviens pas exactement de qui, mais je pense que c'était fondamentalement Ubuntu "espace disque dur", et il n'y avait pas de fichiers de démarrage en eux. J'ai assigné deux autres choses pour Linux, mais elles étaient très petites (ne dépassant pas encore la barre des 1 Go).

Alors, quelqu'un ici peut-il m'aider à remettre ma mise à niveau sur la bonne voie? Cela ne me dérangerait pas si je devais supprimer complètement les partitions qui contiennent Linux.

    
posée LChaos2 30.07.2015 - 00:44
la source

5 réponses

58

Mon ordinateur était livré avec Windows 8 préinstallé, alors j'ai réduit la partition Windows pour faire de la place à Ubuntu. C'est comme ça que ça a fonctionné l'année dernière. Après le deuxième redémarrage de Windows 10, l'ordinateur n'a plus démarré. GRUB n'affiche qu'une invite de commande grub rescue . J'ai découvert plus tard que le problème était survenu car Windows avait en quelque sorte modifié le schéma de partition. La partition de démarrage (contenant les données GRUB normales) n’était plus là où GRUB l’attendait. Je ne sais pas comment et pourquoi cela s'est produit.

La première chose à faire en mode de secours est de voir les partitions avec la commande ls . Les miens étaient:

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

Essayez de trouver quelle partition est votre partition de démarrage. Il n'y a pas d'achèvement de Tab , 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.

Ensuite, tapez set dans la même invite. Il affichera où GRUB recherche ses fichiers. Dans mon cas (hd0, gpt6) est passé à (hd0, gpt7). La commande set affichée:

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

Pour revenir à GRUB normal, commencez par modifier le paramètre prefix pour qu'il pointe vers la partition appropriée. Dans mon cas, la commande était:

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

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

insmod normal
normal

On aurait aussi pu fixer le paramètre root 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 de la chaîne Windows. Une fois dans le menu GRUB normal, vous pouvez démarrer Windows et terminer votre mise à niveau Windows. Le problème est que vous devez indiquer le sauvetage de grub sur les bonnes partitions à chaque redémarrage. C'est comme ça que je l'ai fait. J'ai laissé le problème de GRUB pour plus tard parce que je n'étais pas sûr si Windows apporterait d'autres modifications aux partitions ou au démarrage.

A la fin de Windows, j'ai commencé à résoudre les problèmes GRUB. Appuyez sur e pour modifier les options de démarrage pour Ubuntu. J'ai changé tous les (hd0,gpt6) en (hd0,gpt7) et Ubuntu démarré.

Cependant, j'utilise une partition et un cryptage cryptés. Au démarrage, Ubuntu m'a demandé la phrase secrète. Heureusement, je l'ai enregistré lors de l'installation d'Ubuntu et je l'ai entré au démarrage. Ubuntu a démarré sans problèmes.

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

sudo grub-install

À ce stade, le seul problème était le cryptage. Comme le numéro de la partition Ubuntu racine a été augmenté de un (7 au lieu de 6), la partition de swap a subi une modification similaire. J'ai dû modifier le fichier /etc/crypttab pour indiquer /dev/sda8 au lieu de /dev/sda7 .

Je n’utilise que deux partitions pour Ubuntu (root et swap). Si d'autres systèmes d'exploitation coexistant avec Windows utilisent plus de partitions, d'autres modifications peuvent être nécessaires. Surtout si les partitions sont montées en fonction de leur nombre et non de leurs UUID. Jetez un oeil à votre /etc/fstab . Si les partitions sont identifiées par UUID, il ne devrait y avoir aucun problème. Mais s'il existe des lignes /dev/... , le nombre doit être corrigé si ces partitions ont été renumérotées.

    
réponse donnée nobody 31.07.2015 - 14:12
la source
13

L'installation de Windows (ou sa mise à niveau) avec Linux peut être problématique.

Essaye ça: lien



Je l'ai utilisé pour résoudre un problème après avoir installé l'aperçu technique de Windows 10 et cela a fonctionné. Fondamentalement, il s'agit de réinstaller grub pour qu'il fonctionne avec tous les systèmes d'exploitation actuellement installés. Assurez-vous de lui indiquer d'installer grub sur votre partition Linux (sd #).

Bonne chance!

    
réponse donnée Patrick 30.07.2015 - 00:50
la source
9

Avant de changer de partition, effectuez une sauvegarde et enregistrez-la sur un autre périphérique. Si ce n'est pas le cas, changez pour corriger le lecteur. Ensuite, vous pouvez recommencer si vous restaurez un jeu incorrect avec testdisk. Vous souhaitez simplement que tous les éléments logiques courants et manquants soient restaurés avec TestDisk.

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

Votre partition manquante est ici ou entre le début de la partition étendue à 1547 ... & amp; première partition présenté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 étant logiques. Il peut afficher plusieurs versions en fonction du nombre de fois où vous avez modifié des partitions. Choisissez donc la taille qui correspond aux éléments manquants sans chevaucher les autres partitions actuelles. Certains qui ont correctement restaurer sont juste capables de démarrer, d'autres doivent réinstaller grub. Et certains ne pouvaient pas corriger la partition de restauration.

lien

Un autre outil de restauration est le sauvetage partiel. Il utilise des secteurs, mais la plage que vous donnez doit être juste en dehors de la partition manquante, sans chevauchement avec les partitions actuelles. Mieux si vous connaissez exactement le début et la fin fin. Voir l'homme séparé

lien

Utilisateur qui a utilisé le sauvetage partiel:

lien

    
réponse donnée oldfred 31.07.2015 - 17:38
la source
6

C'est un bogue méchant dans le partitionneur 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 ) découpée à la fin de la partition Windows principale sda2 si la partition de démarrage Windows sda1 est trop petite pour contenir l’Environnement de récupération Windows 10. p>

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

Dans votre cas, vos partitions Linux étaient situées sur votre disque avant votre nouveau sda5 , mais avaient des numéros de partition plus élevés que sda5 avant le repartitionnement.

Si vous regardez les énormes journaux de mise à niveau de Windows 10, vous verrez un message du type "6 before 5, Nothing to do", avec les anciennes et les nouvelles tables de partition.

Windows ne remplace pas le contenu des partitions qu’il supprime, il est donc possible de les récupérer si vous en trouvez. Dans mon cas, j'avais des sauvegardes de la table de partition, mais en utilisant testdisk comme expliqué dans la réponse de oldfred a une excellente chance de les trouver tous. Secours partiel sera difficile à utiliser car plusieurs partitions ont été supprimées dans votre cas.

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

Après avoir réparé la table de partition, la partition Linux contenant GRUB peut maintenant avoir un numéro différent de ce qui précède, de sorte que vous pourriez vous retrouver à l'invite de secours GRUB. Si tel est le cas, Réparation du démarrage sera désormais en mesure de réparer GRUB.

Encore une fois, en utilisant votre CD Ubuntu Live, 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.

    
réponse donnée Martin Thornton 18.08.2015 - 00:02
la source
0

Pour utiliser la réparation au démarrage, vous devez définir dans le BIOS:

  • Activer UEFI (dans mon BIOS c'est:)

    Assistance héritée DISABLE

  • Désactiver le démarrage sécurisé

Probablement que Secure Boot est activé, vous obtenez donc une erreur de "fichier signé incorrectement".

    
réponse donnée iacobus 30.07.2015 - 23:18
la source

Lire d'autres questions sur les étiquettes