web-dev-qa-db-fra.com

Modifier le fichier grub de Windows?

Maintenant, je ne suis pas sûr que ce soit sur le sujet ou pas, mais sinon, je ne sais pas où le poster, superutilisateur ne semble pas approprié car cela concerne Grub, mais je régresse.

Lorsque je redémarre Windows, il démarre à grub, puis l'option par défaut grub est Ubuntu, ce qui provoque des temps très ennuyants lors de l'installation de mises à jour. Je souhaite donc pouvoir modifier temporairement la configuration de démarrage grub pour placer Windows en haut. après un redémarrage, mais après le démarrage de Windows, il reviendrait à Ubuntu.

Comment je ferais ça?

6
David

Le titre de la question est quelle est la solution proposée par le PO pour résoudre le problème. Le titre pourrait être remplacé par "Comment puis-je démarrer Grub automatiquement avec le dernier choix du système d'exploitation utilisé?" .

Cela devrait sans doute être le comportement par défaut du groupe grub. Par exemple, j'utilise peut-être Windows pendant une semaine sur Mass Effect IV et je ne viens jamais sous Ubuntu. Ou je teste peut-être quelque chose dans Ubuntu 14.04 avec un noyau spécifique et je n'aime pas avoir à le sélectionner chaque fois que plus de 50 redémarrages sont effectués.

Il existe un lien dans les commentaires ci-dessus vers une réponse Stack Exchange proposée comme question dupliquée. Nous pouvons également faire référence à AskUbuntu Q & A: Comment faire en sorte que grub2 se souvienne du dernier choix?

En résumé, éditez /etc/default/grub, commentez une ligne et insérez deux lignes en dessous:

#GRUB_DEFAULT=0 # Rather than first menu option, we'll default to last  OS.
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

Enregistrez ensuite les modifications et exécutez Sudo update-grub.

Voila! Lorsque vous travaillez sous Windows et que les mises à jour automatiques ont lieu à 3 heures du matin, le système redémarre sous Windows et applique Stage 3 of 3.

OP propose "Edit Grub from Windows?" dans le titre pour résoudre le problème. Cependant, après avoir indiqué la raison, il devient clair que le titre devrait être remplacé par quelque chose du type: "Comment puis-je m'assurer Les redémarrages automatiques de Windows vont-ils à Windows au lieu d’Ubuntu? ".

Si la question était "Comment réinitialiser le dernier choix du système d'exploitation?" il s'agit d'un doublon évident du lien. Le nouveau titre proposé (ou quelque chose de plus court) a du mérite car d’autres peuvent chercher le même problème. Je sais que j'ai déjà eu le problème de mise à jour-redémarrage-mise à jour de Windows et que je n'aurais jamais imaginé effectuer une recherche sur le lien ici.

PS Vous pouvez modifier Grub à partir de Windows, mais pourquoi voudriez-vous le faire?

8
WinEunuuchs2Unix

Mise à jour: résolue (principalement) - La raison pour laquelle cela était si difficile était que Windows avait signalé que ESP était masqué, de sorte que WSL obtenait des erreurs Accès refusé. En raison d'une conversion MBR2GPT, je crois. Changer cela n'a pas été simple, si quelqu'un est curieux, j'expliquerai si vous ne pouvez pas trouver votre propre solution.

J'ai ajouté les étapes finales pour obtenir la moitié de cette configuration sous Windows, je vais omettre la procédure permettant d'exécuter WSL, c'est simple (astuce: recherchez Linux dans Windows Store).

Ma réponse proposée nécessite l'amorçage UEFI et GPT, plus courant de nos jours. La façon dont j'ai évité que Windows ne soit pas au courant des partitions Linux a été inspirée par la façon dont Windows gère le démarrage.

La méthode traditionnelle de démarrage dans le MBR consistait à passer à /boot/grub (étape 2) et à utiliser cet espace supplémentaire pour faire des choses que le MBR ne pouvait pas. La partition EFI est essentiellement un MBR géant sur n'importe quel disque. C'est à ce moment-là que j'ai remarqué que Windows plaçait la phase 2 du gestionnaire de démarrage Windows sur une partition EFI dans le même répertoire que bootmgr.efi et bootmgfw.efi. Alors pourquoi ne pas mettre Grub stage 2 là aussi?

TL; DR

Expliquez pas à pas comment cela répond au PO.

  1. L'ESP (partition système EFI) est formaté en FAT32 - parfait pour la multiplateforme!

  2. Sous Linux, mkdir /boot/efi, puis montez ESP sur ceci;

    grub-install --boot-directory=boot/efi/EFI/grub /dev/nvme0n1
    

    et ainsi de suite. (Espérons que je ne simplifie pas trop.)

  3. réitérant la solution proposée par d'autres ici au problème principal

    GRUB_DEFAULT=saved
    GRUB_SAVEDEFAULT=true
    
  4. La révélation principale - #Grub Environment Block - grub/grubenv se trouve sur une partition FAT32 et est simple à modifier dans Linux:

    grub-editenv /boot/efi/EFI/grub/grubenv set next_entry=X
    

    X est le menuentry numéroté de 0.

  5. Ok les commandes sont:

    mountvol b: /S
    wsl Sudo mount -t drvfs b: /mnt/b
    wsl Sudo grub-editenv /mnt/b/EFI/grub/grubenv set next_entry=0
    wsl Sudo umount /mnt/b
    mountvol b: /D
    

Voir le lien SU ​​en bas re: script

Le dernier problème est que je suis trop fatigué pour écrire un script pour le faire maintenant, les commandes wsl ne fonctionnent pas séparément, l'état ne se transmet pas. Je ne suis pas un codeur, il me faut juste un peu de temps pour comprendre comment ces trois commandes Linux peuvent être combinées. Cela suffit pour satisfaire les exigences de "cette réponse fonctionne-t-elle" pour l'instant. Je mettrai à jour avec une version finale bientôt. Par exemple. Vous devez lancer le terminal WSL pour utiliser cette solution à l’heure actuelle.

Je mettrai à jour cette question pour demander de l'aide pour la rédaction du script de traitement par lots - Comment créer un script dans le sous-système Windows pour Linux (WSL) et l'appeler à partir d'un fichier de traitement par lots?

1
Jon T

Je ne sais pas comment faire cela à partir de Windows, mais vous pouvez faire la plupart de ce que vous avez décrit avec une interface graphique dans Ubuntu.

Voici comment vous pouvez éviter d'avoir à redémarrer Windows Toujours démarrer sur Ubuntu

Effectuez les étapes ci-dessous. Après ces étapes, le redémarrage de Windows démarrera toujours automatiquement vers Windows. Le redémarrage d'Ubuntu redémarre toujours automatiquement vers Ubuntu. Vous n'aurez pas à éditer à chaque fois. Il suffit de configurer Grub pour se souvenir du dernier choix. Le dernier choix sera toujours la valeur par défaut automatique avec pas de modifications manuelles supplémentaires à chaque fois.

Installez l'interface graphique Grub Customizer .

 $ Sudo add-apt-repository ppa: danielrichter2007/grub-customizer 
 $ Sudo apt-get update 
 $ Sudo apt-get installer grub-customizer 

À partir de l’interface graphique, vous pouvez choisir le démarrage qui sera au-dessus en le sélectionnant, puis cliquer sur les flèches haut/bas pour définir son classement.

Sous l'onglet général, vous pouvez personnaliser davantage le comportement de Grub. Vous pouvez également cliquer sur Advancepour modifier, activer, désactiver, ajouter, supprimer ou modifier les lignes du fichier grub.

Le démarrage temporaire dans Windows peut être réalisé de la manière suivante:

 1) Sélectionnez l'entrée GRUB_DEFAULT -> Cliquez sur la colonne Valeur. Remplacez le "0" 
 Par "sauvegardé" 
 2) Ajoutez une entrée nommée "GRUB_SAVEDDEFAULT" -> Définissez la valeur sur "true" 
 3) Cliquez maintenant sur Fermer -> Enregistrer. (Lorsque vous cliquerez sur sauvegarder, Grub sera mis à jour avec votre nouvelle configuration 
) 

Maintenant, après le redémarrage de Windows, il ne reviendra pas sous Ubuntu

Désormais, lorsque vous effectuez des mises à jour Windows et d'autres opérations de maintenance, le système démarrera toujours sous Windows (une fois Windows démarré) jusqu'à ce que vous choisissiez Ubuntu.

1
L. D. James

Bien que l’édition d’un contenu de partition Windows à partir de Linux soit faisable, l’inverse ne l’est pas.

Windows ne prend pas nativement en charge les FS Linux. Quelques outils peuvent vous permettre de le faire , cependant. Mais cela ne vous aiderait pas.

Je ne l'ai pas testé moi-même, mais il semble que récemment quelqu'un portant GRUB2 sous Windows 10, 8, 7, Vista et XP, à la fois en mode BIOS et en mode EFI.

Je suppose que même si tout se passe comme prévu, ce serait aussi simple que de boire un verre d’eau.

1
EnzoR