web-dev-qa-db-fra.com

Lien pour redémarrer de Windows vers Ubuntu

J'ai un système standard à double démarrage: Ubuntu et Windows. Grub est configuré pour lancer Windows par défaut.

Existe-t-il un moyen de créer un type de lien dans Windows qui:

  1. redémarrer Windows
  2. démarrer dans Ubuntu
9
Dmitriy Berkutov

Vous n'avez pas besoin de modifier /boot/grub/grub.cfg comme suggéré par Michal Hagara. Cela pourrait endommager Ubuntu si vous installez un nouveau noyau et ne mettez pas à jour le e:\home\user\Grubshift\ubuntudefault\grub.cfg.

Tout ce que vous avez à faire est de créer/copier un fichier /boot/grub/grubenv avec le contenu suivant

# GRUB Environment Block
next_entry=2
###########################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################

next_entry est la ligne de la prochaine entrée du menu grub qui doit être démarrée la prochaine fois (à partir de zéro). Donc, next_entry=2 serait la 3ème ligne.

Grub supprimera automatiquement la valeur après le démarrage afin que vous redémarriez votre système d'exploitation par défaut la prochaine fois.

Voici comment fonctionne grub-reboot.

6
Germar

Voici ce que j'ai en tête:

  • http://www.ext2fsd.com/ (il devrait être capable d'écrire sur la partition EXT, de "monter" et d'assigner une lettre au démarrage)
  • je préparerais ensuite le fichier modifié GRUB, où Ubuntu est défini comme système d'exploitation par défaut (celui-ci serait également stocké sur une partition Linux)
  • Script Windows BATCH (exécuté par le raccourci souhaité) qui:
    1. Sauvegarder OLD GRUB (Windows par défaut)
    2. copier modifié GRUB (Ubuntu par défaut) par-dessus l'ancien (Windows par défaut)
    3. Redémarrer le PC
  • Script Linux BASH qui modifierait et mettrait à jour GRUB au démarrage (ou redémarrage) pour rétablir Windows comme système d'exploitation par défaut

Je peux me tromper complètement avec cette approche, mais je ne vois pas pourquoi cela ne fonctionnerait pas.

EDIT:

Et aussi il y a: http://www.paragon-drivers.com/extfs-windows/ que je n'ai jamais essayé.


LE PROGRÈS

1.Raccourci pour redémarrer Windows et démarrer Ubuntu

OK, il faut modifier grub.cfg (/boot/grub/grub.cfg) directement (il est déconseillé - https://askubuntu.com/a/437341/402801) , car il n’existe aucun moyen d’exécuter update-grub à partir de Windows ... si vous pouvez continuer à lire avec cette lecture.

  • Comme je l'ai déjà mentionné, installez Ext2Fsd , configurez-le automatiquement et attribuez-lui une lettre au démarrage.
  • J'ai créé mon "Dossier de sauvegarde" dans /home/user/Grubshift avec 3 sous-répertoires: backup (pour sauvegarder le fichier /boot/grub/grub.cfg actuel), ubuntudefault (pour stocker grub.cfg avec Ubuntu par défaut), windowsdefault ( tu as l'idée)

Après l'installation, Ubuntu est défini par défaut. Copiez donc ce grub.cfg dans le répertoire de votre choix. J'ai la configuration "Windows par défaut" en modifiant GRUB via grub-customizer (c'est plus sûr, à mon avis), après avoir copié Windows grub.cfg dans le répertoire de votre choix

Après cela, ouvrez le bloc-notes et insérez:

copy e:\boot\grub\grub.cfg /y e:\home\user\Grubshift\backup
copy e:\home\user\Grubshift\ubuntudefault\grub.cfg /y e:\boot\grub
shutdown /r /t 0

/y - option de la commande copy, supprime l'invite pour confirmer que vous souhaitez écraser un fichier de destination existant

/r /t 0 - options d'arrêt, 1. signifie reboot, 2. signifie immédiatement, sans messages laids

Modifiez le chemin en conséquence !!!

  • Enregistrez ce fichier (j'ai utilisé UTF-8) et changez l'extension en *.bat
  • Créez un raccourci sur le bureau pour shift.bat, cliquez avec le bouton droit de la souris sur shorctur -> propriétés -> onglet de raccourci -> Exécuter: réduit (ce qui éliminera CMD qui apparaît).

J'ai essayé ceci au moins 8 fois, en configurant Windows par défaut avec grub-customizer ...

Je ne dis pas que c'est sans danger, mais HEY !, nous gérons le chargeur de démarrage ... ce n'est pas sûr

Quand cela fonctionne complètement, nous pouvons nous débarrasser complètement du menu GRUB, car il démarrera toujours dans le bon système d'exploitation ...

2
RiddleMeThis

Voici comment j'ai configuré ma configuration:

Pour résumer: le système redémarre par défaut jusqu'au dernier actif, redémarre de Windows vers Linux et inversement à l'aide d'un simple script.

Configurez grub pour toujours démarrer la dernière fois sélectionnée:

Sous linux:

  • entrez GRUB_DEFAULT=saved and GRUB_SAVEDEFAULT=true dans/etc/default/grub
  • mettre à jour la configuration en utilisant Sudo update-grub

Installer le pilote Paragons extfs

voir http://www.paragon-drivers.com/extfs-windows/

Créez des scripts de redémarrage:

Si/boot/grub/grubenv n'existe pas, créez-le en utilisant le réponse de Germar

Fichier de commandes pour le redémarrage de Windows vers Linux:

@echo off
"C:\Program Files (x86)\Paragon Software\ExtFS for Windows\extmounter" /mount disk1 L:

:CheckForFile
IF EXIST "L:\boot\grub\grubenv" GOTO FoundIt
GOTO CheckForFile
:FoundIt

sed -i -e '/next_entry/c\next_entry=0' L:/boot/grub/grubenv
"C:\Program Files (x86)\Paragon Software\ExtFS for Windows\extmounter" /umount disk1 L:
echo press enter to reboot
pause
shutdown -r -t 00
  • remplacez /mount disk1 L: par quelque chose de spécifique à votre système. Vous pouvez trouver les disques disponibles à l'aide de la commande extmounter /list et de la lettre de lecteur. De plus, L: ne doit pas déjà être pris.
  • enregistrez-le comme par exemple reboot-linux.bat
  • vous pouvez cliquer avec le bouton droit sur batte et sélectionner run as administrator pour l'exécuter

Script shell pour le redémarrage de Linux vers Windows:

Sudo sed -i -e '/next_entry/c\next_entry=2' /boot/grub/grubenv
Sudo reboot
  • remplacez next_entry=2 par quelque soit votre entrée Windows.
  • enregistrez-le comme par exemple ~/reboot_windows et marquer comme exécutable: chmod +x ~/reboot_windows
0
dominik andreas