Il est né ?
Vous êtes ici : xgarreau.org >> aide >> admin >> nt_boot : Utiliser windows pour booter linux
Version imprimable

Utiliser windows pour booter linux

On passe notre temps à tirer à boulets rouges sur windows. Il y a pourtant au moins une chose que l'on peut faire efficacement avec ce système : lancer linux. C'est ce que je vous propose dans cet article.

Lancer linux en passant par le chargeur de windows vous permet par exemple, blague à part, d'installer linux sur des machines sans que les utilisateurs soient dépaysés dès le boot. Je vous assure qu'il vaut mieux en arriver à l'interface graphique avant qu'ils ne se rendent compte du changement, ça vous sera déjà assez pénible comme ça de les faire migrer.

MBR ?

Quand votre ordinateur démarre, le bios se charge des premières initialisations. Une fois son travail fait, il exécute le code situé dans le MBR (Master Boot Record), une zone située au début de votre disque dur principal. Si vous avez un pc équipé d'un windows récent, ce code va chercher à exécuter un programme nommé ntldr (c'est à dire NT loader) qui se charge de booter un NT, Win2k ou XP. Quand vous installez linux et qu'on vous propose d'installer lilo dans le mbr, ce programme est remplacé et c'est lilo qui se charge, le cas échéant, de lancer windows. Lilo vous donne, contrairement à windows, le choix. Vous pouvez l'installer ailleurs. A vous ensuite de faire en sorte qu'il soit appelé quand vous devez lancer linux.

Installation

Admettons que vous ayez un ordinateur comportant windows, on ne sait jamais, ça peut être utile à quelque chose, ne serait ce qu'au boulot ou pour toute autre raison indépendante ou non de votre volonté, là n'est pas la question.

Vous décidez d'installer linux. Je ne vais pas vous faire un article sur l'installation de linux, ça a déjà été fait et avec les distributions modernes, ce n'est plus vraiment un problème. Nous allons, pour enfoncer le clou, à la fin de l'installation refuser l'installation de lilo sur le MBR (Master Boot Record), ce qui est pourtant la solution simple (et efficace, mais bon ...). On choisit donc l'installation de lilo sur la partition root. Pour l'exemple, on considèrera qu'il s'agit de /dev/hda5.

Quand l'installation est terminée, si on vous propose d'utiliser une console, faites le et passez directement au paragraphe "Image du secteur de boot" sinon choisissez de rebooter ... Après tant d'efforts, vous vous rendez compte avec dépit que le système boote sur windows sans vous demander votre avis :-(...

Logiquement, vous avez encore à vos côtés le cd d'installation de votre système. Pour plus de simplicité, on va prendre l'exemple d'une debian 3.0. Insérez le cd de boot de votre distribution (les indications devraient rester les mêmes ou presque même s'il ne s'agit pas d'une debian). Au prompt de l'écran d'installation tapez rescue root=/dev/hda5. Vous bootez alors sur votre système.

Système existant

Vous devez commencer par désinstaller lilo, soyez donc radical et tapez

lilo -U

Notez que c'est un U majuscule, sinon, avec un u minuscule, le système est susceptible de vous embêtez avec une histoire de mauvais timestamp.

A présent, éditez /etc/lilo.conf modifier la ligne débutant par boot en :

boot=/dev/hda5

Réinstallez lilo en tapant lilo

Image du secteur de boot

Nous allons récupérer les informations utiles pour le boot en début de la partition root, soit une image du secteur de boot. Ces informations courent sur 512 octets. On les récupère logiquement ainsi (en root) :

dd if=/dev/hda5 of=./bootsect.lnx count=1 bs=512

Cette ligne de commande veut dire, récupérer 1 bloc (count=1) de 512 octets (bs=512) à partir du début de la partition /dev/hda5 (if=/dev/hda5, pour input file) et le placer dans le répertoire courant, dans un fichier bootsect.lnx (of=./bootsect.lnx)

Transférez sur disquette ou sur cd ou via le réseau ou en montant un système de fichier ou par tout autre moyen à votre disposition le fichier bootsect.lnx quelque part ou il sera accesible depuis windows.

Rebootez sous windows

Récupérez votre fichier bootsect.lnx et placez le à la racine du lecteur système (C: dans 99,9% des cas)

Lancez une console dos (Par exemmple Menu Démarrer / Programmes / Accessoires / Invite de commandes). Oui, je sais, c'est bizarre mais sous windows, la console est un accessoire ... tapez y edit boot.ini et faites en sorte qu'il contienne ceci : (ne modifiez pas les lignes conernant windows si elles ne correspondent pas à celles ci-dessous ce qui compte est d'ajouter la ligne contenant bootsect.lnx)

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Édition familiale" /fastdetect
c:\bootsect.lnx="Mon linux"

Ce fichier vous permet de configurer le chargeur de boot de windows (versions nt, 2000 et suivants). Ici j'ai pris le cas d'un windows XP familial. Je ne m'étends pas la dessus, ça lancerait des trolls a n'en plus finir sur linuxfr ;-).

La ligne timeout spécifie le temps en secondes à attendre avant de lancer le système par défaut.
la ligne default spécifie ledit système par défaut. Il s'agit de la partie gauche d'une des lignes contenues dans la section [operating systems].

On retrouve le windows chargé sur la seconde partition du premier disque IDE et linux. La partie à gauche de l'affectation représente le lieu ou trouver le chargeur

Vous devrez peut-être supprimer l'attribut lecture seule du fichier pour pouvoir le sauver. Pour le faire dans l'explorer, vous devrez d'abord voir le fichier. Pour celà utilisez dans un explorateur de fichiers le menus "Outils / Options des dossiers, / onglet Affichage" pour cocher la case "Afficher les fichiers et dossiers cachés" et décocher "Masquer les fichiers protégés du système d'exploitation (recommandé)". Ignorez les messages outrés de windows qui vous informe de la potentielle mise en péril que représente votre acte irréfléchi et sauvez votre fichier.

Rebootez

Vous allez vous retrouvez devant le loader de windows vous proposant de booter linux, jetez vous dessus, c'est pas tous les jours que ça arrive..

A chaque changement de noyau, vous devrez mettre à jour lilo.conf, le mettre à jour sur la partition root ( en lançant lilo ), obtenir le fichier image du secteur de boot et le transférer dans C: sous windows.

Pour récupérer lilo, par exemple si vous voulez revenir à un ancien noyau suite à une recompilation hasardeuse. Choisissez comme à l'accoutumée linux dans le menu du chargeur windows et pressez la touche [Ctrl] immédiatemment, maintenez la enfoncée et vous vous retrouverez face à votre menu de chargement de lilo.

@+

Xavier Garreau - <xavier@xgarreau.org>
http://www.xgarreau.org/

Ingénieur de recherche PRIM'TIME TECHNOLOGY
http://www.prim-time.fr/

Membre fondateur du ROCHELUG
http://www.rochelug.org/

a+

Auteur : Xavier GARREAU
Modifié le 22.09.2004

Rechercher :

Google
 
Web www.xgarreau.org