Comment rebooter entre vos différents systèmes d'un simple clic ?

  1. Montrer une autre façon de gérer le multiboot qu'avec GRUB.
  2. Apprendre comment se débarrasser des menus de démarrage (sauf cas de force majeure)
  3. Permettre d'épater son voisin :-P

Ce tutoriel est supposé s'adresser à des personnes ayant déjà expérimenté le multi-boot et qui ont des bases de programmation de script. Même si le principe de fonctionnement est simple, ne vous lancez pas si cela vous semble d'entrée trop compliqué (ou trop fumeux).

Quoi qu'il en soit de votre niveau en informatique, ce tutoriel n'a pas pour but d'expliquer le fonctionnement du multiboot. Pour plus d'informations, voici une liste d'URL où vous trouverez votre bonheur si vous avez besoin d'en savoir plus :

  • Avoir une machine avec deux systèmes au moins situés sur des partitions distinctes ou idéalement, des disques durs distincts.
  • Disposer d'une version de Windows 2000 (SP1 à SP4) ou XP (SP1 ou SP2).
  • Avoir installé Ubuntu (ou une autre version de Linux) sur une des partitions avec comme boot manager Lilo (http://www.linux-france.org/article/sys/chargeurs/ix86/lilo/boot-lilo.html). Le principe peut certainement s'appliquer à une installation avec GRUB, mais je ne préfère pas donner un exemple que je n'ai pas pu tester.
  • Avoir sauvegardé vos données sur un autre support tel que disque externe, dvd ou cd. Une erreur de manipulation peut entraîner la perte totale de vos données. Avez-vous sauvegardé vos données ? Pensez également à sauvegarder les MBR de tous les disques et partitions pour ne prendre aucun risque comme indiqué dans les documents listés dans l'avertissement ci-dessus.

Un script appelé par un clic sur une icône de barre des tâches, de bureau ou de tableau de bord, copie un fichier boot"N".ini déjà préconfiguré dans le fichier boot.ini de la partition de démarrage, puis lance une commande de redémarrage. C'est tout !

Suivant les besoins les fichiers boot"N".ini feront référence aux partitions de démarrage des systèmes Windows ou aux fichiers de MBR des partitions Linux.

Trois étapes :

Partition amorce

Constituer la partition de boot « maître » et en faire la partition de boot :

  • Créer une petite partition en FAT32 (environ 100 Mio pour être tranquille en cas d'utilisation pour un install, mais en réalité, 500 Kio suffisent !!!) sur un disque dur ou sur un périphérique bootable : une clé USB fera l'affaire si votre BIOS vous permet de booter depuis un USB. La solution de la clé USB est idéale, car elle vous permettra de tester votre montage sans risque. Pour créer la partition, vous pouvez utiliser l'outil Gparted disponible dans les dépôts sous Ubuntu ou les outils standards de gestion de partition de Windows. Cette partition doit être active pour que votre Bios boote dessus. ATTENTION : Quelle que soit l'option que vous choisirez, pensez à toujours conserver un de vos disques avec son système et ses partitions intacts pour pouvoir redémarrer en cas de pépin ou prévoyez l'utilisation du SystemRescueCD.
  • Si vous avez un Windows 2000 ou XP sur une autre partition, copiez les fichiers suivants sur la petite partition :
    • boot.ini
    • ntdetect.com
    • ntldr
  • Faites en sorte que votre bios pointe sur le disque ou la clé pour le démarrage de la bécane.
    Attention à faire en sorte que le fichier boot.ini soit accessible en écriture, ce qui n'est pas le cas par défaut sous Windows.

Reboot par clic

Créer les éléments nécessaires au mécanisme de reboot par clic sur cette partition à savoir :

  • le script de reboot via windows (.bat)
  • ChangeBoot.bat : ATTENTION, la commande del contenue dans ce script ne doit pas être utilisée avec ces options en dehors du scripts sans que vous sachiez exactement ce que vous faites. Les options données forcent la suppression des fichiers systèmes en lecture seule. A éviter donc en dehors d'un contexte connu et maîtrisé.
    set numsys=%1
     
    N:
    cd\
     
    del /F /AS "boot.ini"
    Copy /Y "boot%numsys%.ini" "boot.ini"
     
    %windir%\System32\shutdown.exe -r -t 00

    Où "N:" est la partition où se trouvent les fichiers de boot"n".ini sous Windows. (à adapter donc en fonction de votre config)

  • le script de reboot via Linux (.sh)
  • ChangeBoot.sh
    #!/bin/bash
     
    cp /media/sdb3/boot$1.ini /media/sdb3/boot.ini -f
    cat ~/stdin | sudo -S /sbin/shutdown -r now

    où media/sdb3 est le point de montage de la partition où se trouvent les fichiers de boot"n".ini (à adapter donc en fonction de votre config)

  • des fichiers boot"n".ini correspondant à chaque option de reboot et qui seront copiés par les scripts dans le fichier boot.ini.
    Par exemple, le premier fichier boot1.ini contient
    [boot loader]
    timeout=30
    default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
    [operating systems]
    multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT Workstation"
    C:\BOOTSECT.LNX="GNU/Linux"

    Et le second, boot2.ini contient

    [boot loader]
    timeout=30
    default=C:\BOOTSECT.LNX
    [operating systems]
    multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT Workstation"
    C:\BOOTSECT.LNX="GNU/Linux" 

    Il s'agit d'un exemple : vous devez connaître et remplacer les numéros de partitions, le nom du fichier de MBR linux (BOOTSECT.LNX dans l'exemple), et les répertoires WINDOWS aux valeurs utilisées sur votre configuration.

  • le ou les fichiers copie du MBR du disque où se trouve Linux/Ubuntu (voir cette page)

Les raccourcis

Créer des raccourcis de lancement des scripts sous Windows et Linux et les placer dans la barre des tâches et le tableau de bord. Vous pourrez aussi y associer des icônes pour faire bon effet :

  • Sous Windows, les raccourcis feront référence à c:/ChangeBoot.bat "n" où "n" est le numero du boot"n".ini à copier à la place du fichier boot.ini.
  • Sous Linux, les raccourcis devront faire référence à /media/"la partition de boot"/ChangeBoot.sh "n".
    Il suffit donc de créer un raccourci par système sur lequel vous voulez redémarrer. Au moment du clic, le script remplace le boot.ini de la partition de boot par le boot"n".ini indiqué par le "n" passé en paramètre et lance le redémarrage de la machine.

A vous de décorer vos raccourcis et/ou de les incorporer où vous voulez (tableau de bord, barre de tâche, bureau etc…)

Articles connexes

  • FIXME

Liens et documents externes

  • FIXME

Contributeurs : plmegalo

  • tutoriel/rebooter_en_un_click.txt
  • Dernière modification: Le 12/03/2023, 23:26
  • par L'Africain