Magazine

Rebooter entre Windows et Linux en un clic

Publié le 31 mars 2008 par Ek0

partage


Marre de guetter le menu de sélection de l’OS pour rebooter entre vos différents systèmes d’exploitation? Je vais vous présenter ici une méthode facile pour créer des raccourcis permettant de rebooter d’un système à l’autre sans intervention.

Le tutoriel est expliqué avec Grub, et Windows et Ubuntu comme systèmes. Mais vous pourrez facilement l’adapter à d’autres bootloaders et d’autres systèmes d’exploitation.

Le principe est simplement de modifier le fichier de configuration du menu du bootloader (menu.lst pour Grub) en modifiant les choix par défaut et le temps d’attente selon le besoin.

I) Préparer vos fichiers menu.lst

Tout d’abord, vous avez besoin de 3 versions de votre fichier menu.lst :

  • Une pour booter Windows
  • Une pour booter Linux
  • Une version pour le boot par défaut , quand vous avez éteint l’ordinateur normalement.

Récupérez votre menu.lst existant. Voici par exemple ce que j’ai (en ayant seulement gardé les paramètres qui nous intéressent):


#fichier menu-def.lst
default         0
timeout         20
title           Windows XP
root            (hd0,0)
savedefault
makeactive
chainloader     +1
title           Ubuntu 7.10
root            (hd0,7)
           kernel/vmlinuz-2.6.22-14-genericroot=UUID=50045b14-68ab-4a8b-ae9d-c190b0fec60e ro quiet splash locale=fr_FR
initrd          /initrd.img-2.6.22-14-generic
quiet
 

Windows XP est mon choix par défaut (lol), le menu reste affiché 20 secondes. Enregistrez-le sous menu-def.lst par exemple.

Copiez-collez le deux fois en menu-win.lst et menu-ubu.lst. Modifiez ces fichiers comme moi:


#fichier menu-win.lst
default         0
timeout         1
title           Windows XP
root            (hd0,0)
savedefault
makeactive
chainloader     +1
title           Ubuntu 7.10
root            (hd0,7)
           kernel/vmlinuz-2.6.22-14-genericroot=UUID=50045b14-68ab-4a8b-ae9d-c190b0fec60e ro quiet splash locale=fr_FR
initrd          /initrd.img-2.6.22-14-generic
quiet
 
#fichier menu-ubu.lst
default         1
timeout         1
title           Windows XP
root            (hd0,0)
savedefault
makeactive
chainloader     +1
title           Ubuntu 7.10
root            (hd0,7)
           kernel/vmlinuz-2.6.22-14-genericroot=UUID=50045b14-68ab-4a8b-ae9d-c190b0fec60e ro quiet splash locale=fr_FR
initrd          /initrd.img-2.6.22-14-generic
quiet
 

Comme vous pouvez le voir, menu-win.lst choisit Windows par défaut et n’affiche le menu qu’une seconde, de même pour Ubuntu avec menu-ubu.lst.

Mettez ces trois fichiers de côté dans un répertoire que vous pourrez accéder aussi bien depuis Windows que depuis Linux, ou dupliquez les dans chaque OS.

II) Sous Ubuntu

Bon, il suffit de faire des scripts pour remplacer menu.lst par une de nos trois versions selon le cas, et créer des raccourcis pour lancer ces scripts.

Voici mes scripts de reboot:


#!/bin/bash
#fichier reboot_ubu.sh
## Remplacement de menu.lst
yes VOTRE_MOT_PASSE_ROOT | sudo cp /media/documents/Mes\ documents/Systeme/Multiboot/menu_ubu.lst /boot/grub/menu.lst -f
## Reboot du PC
cat ~/stdin | sudo -S /sbin/shutdown -r now
 
#!/bin/bash
#fichier reboot_win.sh
## Remplacement de menu.lst
yes VOTRE_MOT_PASSE_ROOT | sudo cp /media/documents/Mes\ documents/Systeme/Multiboot/menu_win.lst /boot/grub/menu.lst -f
## Reboot du PC
cat ~/stdin | sudo -S /sbin/shutdown -r now
 

N’oubliez pas de remplacer votre mot de passe sudo, et le chemin vers vos fichiers .lst. Vous avez besoin d’un troisième script qui sera lancé au démarrage de Linux pour revenir au menu par défaut:


#!/bin/bash
#fichier retour_defaut.sh
## Remplacement de menu.lst
yes VOTRE_MOT_PASSE_ROOT | sudo cp /media/documents/Mes\ documents/Systeme/Multiboot/menu_def.lst /boot/grub/menu.lst -f
 

Il ne vous reste plus qu’à autoriser les 3 scripts en exécution (chmod +x nomdufichier ). Créez des lanceurs vers les 2 premiers, avec la commande “sh script.sh”.

multiboot3


Mettez le dernier au démarrage de la session , pour revenir au menu par défaut dans tous les cas: Menu Système > Préférences > Sessions:

multiboot2

III) Sous Windows

Vous pouvez désormais passer sous Windows, et vous allez faire exactement la même chose que sous Linux. Problème: vous avez besoin d’accéder à /boot/grub/menu.lst… La seule solution est de monter votre partition /boot sous Windows, avec un driver ext3 tel que Ext2 IFS:

http://www.fs-driver.org/

En faisant ça, vous exposez votre système aux fichiers aux problèmes liés à Windows: virus , fausses manipulations… Si vous avez séparé votre /boot sur une partition séparée dès le début, vous courrez beaucoup moins de risques.

Ceci fait, vous avez comme auparavant deux scripts, batch (.bat) cette fois-ci vers lesquels vous créerez des raccourcis, et un troisième que vous mettrez au démarrage de Windows. Les voici (adaptez-les à votre cas):


REM reboot windows
TITLE Modif menu.lst
Copy /Y "menu_win.lst" "G:\grub\menu.lst"
%windir%\System32\shutdown.exe -r -t 00
 
REM reboot ubuntu
TITLE Modif menu.lst
Copy /Y "menu_ubu.lst" "G:\grub\menu.lst"
%windir%\System32\shutdown.exe -r -t 00
 
REM A charger au demarrage
TITLE Modif menu.lst
Copy /Y "menu_def.lst" "G:\grub\menu.lst"
 

Voilà, vous pouvez utiliser vos raccourcis pour basculer d’un système à l’autre ! Vous pouvez télécharger mes scripts ici, avec des icônes, pour les adapter à votre cas sans faire 15 copier-coller:

multiboot.zip
Téléchargé 12 fois


Retour à La Une de Logo Paperblog

A propos de l’auteur


Ek0 12 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Dossiers Paperblog