Ce cours est visible gratuitement en ligne.

Got it!
Le multiboot sous GNU/Linux

Le multiboot sous GNU/Linux

Last updated on Tuesday, January 8, 2013
  • Facile

[Pratique] Mise en place d'un multiboot Windows/Ubuntu/Archlinux

L'heure de vérité est enfin arrivée.

L'on va maintenant pouvoir procéder à un triple-boot entre Windows, Ubuntu et Archlinux, c'est le but de ce chapitre !

Que ce soit au niveau du partitionnement, du chargeur d'amorçage ou de la philosophie générale des opérations, je pense qu'arrivés à ce stade ci, vous devriez avoir compris comment ça va se passer.

Attention toutefois, même si vous serez toujours guidés dans ce chapitre, il n'en demeure pas moins complexe, et nous vous conseillons d'avoir compris les chapitres précédents. En effet, ce chapitre va faire appel à tous les concepts introduits au préalable.

De même que le risque de perte de données était relativement limité par la simplicité d'utilisation de GParted dans la chapitre pratique s'y consacrant, vous aurez compris qu'ici, on utilise la ligne de commande. Le risque est donc bien présent si on n'y fait pas attention. Pensez donc à bien sauvegarder vos données, on ne le répétera jamais assez.

Nous ne voulons pas vous faire peur, mais personne n'est à l'abri d'une fausse manœuvre...

Sans plus attendre, passons à la suite !

Préambule

Vous vous posez peut-être la question suivante, question que nous n'avons pas encore abordé depuis le début ?

Pourquoi avoir choisi Ubuntu et Archlinux, et pas Mandriva et Fedora par exemple ?

Le choix d'Ubuntu a été réalisé en raison de la popularité de ce dernier auprès des arrivants directs de windows. Nous l'avons dit, ce tutoriel se veut convenir à un maximum de personnes, c'est aussi pourquoi nous avons voulu opérer une distinction entre la partie qui s'adresse plutôt aux débutants, leur expliquant les bases et les principes, illustrés par l'installation d'une ubuntu en cohabitation avec Windows, comme c'est souvent le cas dans pareille situation et celle s'adressant aux utilisateurs confirmés.

Le choix d'Ubuntu est donc représentatif de ce qui se passe dans la majorité des cas pour les arrivants de Windows !

Concernant le choix d'Archlinux, il a été dicté essentiellement parce que ce cours s'adresse également aux personnes ayant plus d'expérience. Il est évident que cette distribution ne s'adresse pas aux néophytes, qu'il faudra mettre les mains dans le cambouis et savoir lire une doc !

En outre, Archlinux est une distribution minimaliste, dont l'installation est pourvue d'un installateur assisté utilisant les concepts que nous avons introduits.

En plus de cela, Arch est une distribution relativement légère, qui démarre assez vite (pour les adeptes de l'optimisation du temps de boot, c'est ce genre de distribution qu'il faut), robuste, simple (qui ne veut pas dire facile), qui dispose d'une forte communauté et d'un wiki francophone (pour ceux qui n'aiment pas l'anglais).

Sa philosophie KISS, son système de rolling release (contrairement à Ubuntu qui publie deux versions chaque année, en avril et en octobre, Arch est toujours à jour) et son gestionnaire de paquets robuste, PACMAN, font d'elle une distribution incontournable !

Note : En plus, elle a l'air d'avoir la côte sur les forums du site du zéro !

Où en sommes-nous ?

Ceux qui ont suivi notre tutoriel depuis le début doivent avoir une Ubuntu qui cohabite avec Windows.
D'autres personnes auront une configuration différente, éventuellement. Tous les concepts introduits précédemment peuvent s'appliquer dans toutes les situations, de sorte que si votre configuration est différente, vous ne devriez pas être déboussolé.

Dans la logique de ce tuto, votre disque dur, supposé de 120 Go, devrait ressembler à cela

Image utilisateur

Donc on a Windows sur dev/sda1 qui occupe 30 Go (si vous avez lu le chapitre sur les Mo/Mio, vous ne devriez pas être désarçonnés par les différences entre les tailles que nous annonçons et celles du screen).

Sur /dev/sda2, la partition /(racine) d'ubuntu est montée.

La partition étendue, sur /dev/sda3, contient les partitions logiques /dev/sda5 (consacrée à la swap) et /dev/sda6 (consacrée au /home d'ubuntu).

Plan des opérations

Avant de se lancer dans la pratique, il est bon de réfléchir à ce qu'on va faire avant.

Première chose, prenez un crayon et une feuille de papier, et notez le point de montage, la taille et le filesystem de chaque partition, ça nous sera utile par la suite !

Vous aurez cette feuille sous les yeux durant l'installation d'Arch.

Ensuite, il faut réfléchir à ce que nous voulons faire, comment nous configurerons GRUB.

On va rester dans le simple et uniquement faire deux partitions, une pour /(racine) et une pour /home

Pourquoi pas de partition séparée pour /var, /tmp, /usr et /boot ?

Dans le cadre d'un pc à utilisation personnelle ou familiale, ça n'a que très peu d'intérêt !
Par contre, si vous comptez utilisez votre ordinateur comme un serveur, alors il faudra monter ces partitions séparément.

Sur ce, le but de la manoeuvre va être de réduire la taille occupée par le /home d'ubuntu, d'installer Arch sur l'espace libéré !

Quid de /dev/sda4, qui reste inutilisé ?

On va laisser cette partition telle quelle, pour qu'un OS tel que les *BSD ou windows, soit installable plus tard, si vous le désirez. De tels OS sont un peu capricieux et ne s'installent que sur des partitions primaires.

Encore une question, pourquoi deux /home séparés ?

Monter les deux /home sur la même partitions implique que les versions utilisées par les deux OS doivent être strictement identiques, à tout instant, sinon, on va au devant de conflits.

On a donc deux partitions séparées, montées chacune sur le /home d'une de nos deux distributions.
Si l'on désire malgré tout se procurer un fichier .jpg de la partition /home de l'autre OS, rien n'empêche de monter cette dernière dans le répertoire /media.

Trêve de bavardages, passons à la pratique !

Création d'espace libre

Avant de procéder à l'installation à proprement parler d'Arch, on doit libérer de l'espace disque.
Pour cette opération, une fois de plus, nous utiliserons GParted.

Il propose une fonction qui permet d'arrondir la taille des partitions au cylindre.
Cela est très utile car ça permet d'éviter que deux partitions se chevauchent.

Pour cette raison, on utilisera GParted. Pas le GParted d'ubuntu, mais le live CD de GParted cette fois !

Rendez-vous donc sur leur site officiel pour télécharger l'image .iso du live CD que vous graverez ensuite.

Bootez sur ce live CD, vous arriverez devant ceci :

Image utilisateur

Choisissez la première option, elle vous conviendra !

Après une série de messages, vous arriverez devant cet écran :

Faites donc "select keymap from archlist", histoire d'éviter de rester en qwerty.

On vous demandera alors le langage que vous préférez, vous pouvez laisser en anglais ou appuyer sur 08 pour le Français.

À l'option suivante qui vous sera demandé, appuyez simplement sur enter (ce qui lancera "Continue to start X to use GParted automatically")

Et hop, voila que le serveur X se lance et qu'on arrive devant cet écran :

Image utilisateur

Ouvrez l'éditeur de partitions, sélectionnez /dev/sda6 et réduisez sa taille à 36.5 Gio (à peu près).

Le live CD de GParted s'utilise exactement comme le GParted fourni de base avec Ubuntu.

On peut éteindre son système maintenant.

Installer la base

On ne va pas refaire le wiki d'Arch qui est très clair et bien expliqué, mais nous allons quand même insister sur la partie partitionnement et GRUB.

Première question, comment se procurer Arch ?

En vous rendant sur le site officiel.

Vous devrez connaître votre architecture pour pouvoir télécharger la version adaptée. Renseignez-vous donc sur votre processeur !

Dans la plupart des cas, il vous faudra une .iso de la version X86_64(64 bits) ou i686(32 bits).

Par chance, un nouvel installateur est paru ce mois d'août, ça va être l'occasion de l'utiliser.

Sur le miroir, il y a une liste des versions disponibles.
Si vous prévoyez d'installer Arch sans le net, téléchargez une version core. Une telle version est plus volumineuse car elle contient plus d'outils, étant donné que sa conception est orientée pour une installation hors ligne.

Vous pouvez aussi, si vous comptez utiliser le net, télécharger une image .iso de la version netinstall, les paquets seront alors récupérés par FTP au cours de l'installation.

Dans les deux cas, vérifiez l'intégrité de votre image .iso avant de commencer l'installation !

Vous pouvez également choisir d'utiliser le protocole du torrent pour soulager les serveurs d'Arch ou de télécharger directement (choisissez donc le torrent en priorité).

Gravez ensuite cette image sur un CD et arrangez-vous pour booter dessus en modifiant l'ordre de boot dans votre BIOS.

Prêts ? on y va !

Après le boot, voila sur quel écran vous tombez !

Image utilisateur

Ne vous y fiez pas, pas d'installateur graphique en vue.

Sélectionnez donc "Boot Arch Linux Live CD"

Après une série de messages, vous voila sur une invite de commande.

On vous demande un nom d'identifiant pour archiso login, indiquez lui "root", ce qui vous délivra un accès root pour l'installation.

Ça devrait ressembler à ceci :

Image utilisateur

On va exécuter ce qu'on nous demande et taper sur km (soit sur k puis sur ?, car à ce stade, le clavier en toujours en qwerty) pour lancer un script qui nous permettra de choisir la configuration du clavier, uniquement pour la session en cours.
Choisissez votre clavier et faites SKIP quand on vous demande le "console font"

Lancez ensuite /arch/setup pour démarrer l'installation.

Image utilisateur

Voila ce que /arch/setup déclenche : le script d'installation !

Une fois ce message lu, vous arrivez devant l'écran de configuration général de l'installation :

Image utilisateur

Nous allons passer chacun des menus en revue, nous avancerons pas à pas dans chacun d'eux !

1 Select source

Cet onglet sert à préciser comment vous comptez installer Arch. Il y a essentiellement deux façons différentes, depuis le cd (image core) ou par FTP (image netinstall).

Si sous sélectionnez CD-ROM, alors ça s'arrête là.

Si vous sélectionnez l'installation par FTP, vous devrez déjà configurer votre réseau.

Laissez les paramètres tels qu'ils sont et choisissez d'utiliser DHCP, ne nous compliquons pas la vie pour commencer !

Choisissez également un mirroir près de chez vous, ça ira plus vite et ça évite les connection timeouts.

2 Set clock

Ceci sert à configurer l'horloge interne du système.

Sélectionnez d'abord votre région et ensuite réglez votre horloge sur UTC.

Vérifiez ensuite que l'heure est correcte, sinon, définissez-la manuellement. Tout est indiqué, un peu de pratique de l'anglais basique est tout de même nécessaire !

3 Prepare Hard Drive(s)

Un des onglets les plus importants dans le cadre de notre multiboot.

La partie suivante lui est intégralement consacrée.

4 Select Packages

Cet onglet sert à choisir les paquetages à installer de base.

On considère qu'il faut choisir l'ensemble des paquets base et base-devel (le choix s'effectue au moyen de la touche espace).

5 Install packages

Ici, on installe les paquetages précédemment sélectionnés. Il n'y a pas grand chose à faire, si ce n'est attendre !

6 Configure System

Cet onglet mérite lui aussi une partie entière pour en expliquer le fonctionnement.

C'est ici qu'on va définir l'ensemble des fichiers de configurations du système.

À nouveau, un point clé de notre installation.

7 Install Bootloader

Un autre point crucial de notre installation.

Un chapitre lui est aussi intégralement consacré plus tard.

8 Exit Install

Une fois que l'installation est terminée, on sort de l'installation.

Il faudra retirer le live CD et rebooter.

L'on présentera également un court chapitre sur que faire après une installation fraîche, en annexes.

Prepare Hard Drive(s)

Une fois que vous serez dans cette section, soyez tout particulièrement attentifs à ce que vous faites.

De nombreux screenshots seront délivrés pour éviter toute fausse manipulation.

Premièrement, vous devriez tomber nez-à-nez avec cela :

Image utilisateur

Inutile de vous dire pourquoi on ne choisira pas la première option.

Sélectionnez plutôt "Manually Partition Hard Drive(s)"

On vous montrera d'abord les disques disponibles (ici, notre disque de 120 GB), ce qui ressemble à ceci :

Image utilisateur

On vous demande alors de confirmer le choix du disque, comme ceci :

Image utilisateur

On vous informe que vous serez bientôt en face de cfdisk, que vous connaissez.

Voilà ce que cfdisk diffuse comme information dans notre cas :

Image utilisateur

Observez donc l'espace libre que nous avons créé. C'est là que nous allons installer Arch, en partitionnant cet espace en deux parties.

7 Go devraient suffire pour la /(racine), en supposant que vous utiliserez une interface graphique de par la suite (de plus, nous prévoyons beaucoup de place pour éviter de tomber à court, on peut se le permettre vu la capacité du disque).

Le reste de l'espace libre libéré accueillera le /home d'Arch !

Cfdisk nous permet de partitionner facilement cet espace libre.

Sélectionnez donc ce fameux espace libre, choisissez "new" dans les options de cfdisk. On vous demandera la taille en MB de la nouvelle partition logique à créer, sur /dev/sda7.

Indiquez lui donc 7164 MB (pour avoir 7000 MiB).

Lorsque vous êtes sûr de votre coup, choisissez "write" pour enregistrer les changements.

Ensuite, sélectionnez à nouveau l'espace libre restant, créez une nouvelle partition logique, laissez la taille par défaut (tout l'espace restant).

À nouveau, relisez-vous bien, choisissez ensuite "write" pour sauvegarder vos changements.

Votre disque ressemble maintenant à cela :

Image utilisateur

Quittez cfdisk en choisissant "quit" et vous ferez ensuite "DONE" à l'écran de choix des disques !

Vous devrez ensuite configurer vos points de montage et vos systèmes de fichiers, à l'aide de cet écran :

Image utilisateur

L'option 4, Rollback last filesystem changes permet d'annuler l'opération numéro 3, au cas l'on se tromperait dans les points de montage.

Rendez-vous sur l'option 3, qui va nous présenter les partitions de notre disque !

/dev/sda7, notre partition qui accueillera le répertoire / devrait être montée sur ce dernier et formatée en ext3 ou en ext4.

/dev/sda8, quant à elle, accueillera notre /home et sera montée sur ce dernier. De même choisissez l'ext3 ou l'ext4.

N'oubliez pas notre swap sur /dev/sda5, il faut aussi spécifier que cette partition est destinée à accueillir la mémoire virtuelle.

Une fois vos changements réalisés, voilà ce que vous devriez avoir, si tout s'est bien passé :

Image utilisateur

Choisissez DONE. On vous avertira que vous n'avez pas créé de partition /boot séparée, peu importe, on continue en ignorant cela.

Vous pouvez retourner au menu principal, pour sélectionner et installer les paquets, on va passer la section suivante, soit : la configuration du système !

Configure System

Il est temps de configurer votre système maintenant.

Rien d'insurmontable, c'est même relativement facile à faire (ce qui fait, à notre sens, une des forces de cette distribution, par ailleurs).

On va directement vous demander l'éditeur de texte que vous préférez, choisissez nano par exemple.

Ensuite, voilà devant quoi vous arrivez :

Image utilisateur

Un menu qui liste les principaux fichiers de configurations du système.

Nous allons, pour chaque fichier, détailler son rôle et son éventuelle configuration.

Le rc.conf

Il s'agit, sans faire des jeux de mots, de la clé de voûte de l'Arch.

C'est le fichier central de configuration, c'est ici que l'on doit définir le comportement du système.

Un rc.conf classique, tel qu'est sûrement le votre à cet instant, se présente comme suit :

#
# /etc/rc.conf - Main Configuration for Arch Linux
#

# -----------------------------------------------------------------------
# LOCALIZATION
# -----------------------------------------------------------------------
#
# LOCALE: available languages can be listed with the 'locale -a' command
# HARDWARECLOCK: set to "UTC" or "localtime"
# USEDIRECTISA: use direct I/O requests instead of /dev/rtc for hwclock
# TIMEZONE: timezones are found in /usr/share/zoneinfo
# KEYMAP: keymaps are found in /usr/share/kbd/keymaps
# CONSOLEFONT: found in /usr/share/kbd/consolefonts (only needed for non-US)
# CONSOLEMAP: found in /usr/share/kbd/consoletrans
# USECOLOR: use ANSI color sequences in startup messages
#
LOCALE="en_US.utf8"
HARDWARECLOCK="localtime"
USEDIRECTISA="no"
TIMEZONE="Canada/Pacific"
KEYMAP="us"
CONSOLEFONT=
CONSOLEMAP=
USECOLOR="yes"

# -----------------------------------------------------------------------
# HARDWARE
# -----------------------------------------------------------------------
#
# MOD_AUTOLOAD: Allow autoloading of modules at boot and when needed
# MOD_BLACKLIST: Prevent udev from loading these modules
# MODULES: Modules to load at boot-up. Prefix with a ! to blacklist.
#
# NOTE: Use of 'MOD_BLACKLIST' is deprecated. Please use ! in the MODULES array.
#
MOD_AUTOLOAD="yes"
#MOD_BLACKLIST=() #deprecated
MODULES=()

# Scan for LVM volume groups at startup, required if you use LVM
USELVM="no"

# -----------------------------------------------------------------------
# NETWORKING
# -----------------------------------------------------------------------
#
# HOSTNAME: Hostname of machine. Should also be put in /etc/hosts
#
HOSTNAME="myhost"

# Use 'ifconfig -a' or 'ls /sys/class/net/' to see all available interfaces.
#
# Interfaces to start at boot-up (in this order)
# Declare each interface then list in INTERFACES
#   - prefix an entry in INTERFACES with a ! to disable it
#   - no hyphens in your interface names - Bash doesn't like it
# 
# DHCP:     Set your interface to "dhcp" (eth0="dhcp")
# Wireless: See network profiles below
#
eth0="eth0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255"
INTERFACES=(eth0)

# Routes to start at boot-up (in this order)
# Declare each route then list in ROUTES
#   - prefix an entry in ROUTES with a ! to disable it
#
gateway="default gw 192.168.0.1"
ROUTES=(!gateway)

# Enable these network profiles at boot-up.  These are only useful
# if you happen to need multiple network configurations (ie, laptop users)
#   - set to 'menu' to present a menu during boot-up (dialog package required)
#   - prefix an entry with a ! to disable it
#
# Network profiles are found in /etc/network.d
#
# This now requires the netcfg package
#
#NET_PROFILES=(main)

# -----------------------------------------------------------------------
# DAEMONS
# -----------------------------------------------------------------------
#
# Daemons to start at boot-up (in this order)
#   - prefix a daemon with a ! to disable it
#   - prefix a daemon with a @ to start it up in the background
#
DAEMONS=(syslog-ng network netfs crond)

Les premières lignes susceptibles d'être éditées sont celles ci :

LOCALE="en_US.utf8"
HARDWARECLOCK="localtime"
USEDIRECTISA="no"
TIMEZONE="Canada/Pacific"
KEYMAP="us"
CONSOLEFONT=
CONSOLEMAP=
USECOLOR="yes"

Elles définissent respectivement la langue par défaut, l'horloge interne du système ainsi que votre région géographique (fuseau horaire), votre configuration du clavier pour la console uniquement et l'ajout d'éventuels caractères supplémentaires pour la console.

Voici un petit tableau qui va vous aider à remplir cela (tenez absolument compte de la casse) :

Image utilisateur

Ensuite, laissez MOD_AUTOLOAD tel qu'il est, c'est à dire sur "yes". Cela laissera UDEV charger les modules nécessaires au démarrage.

Dans la ligne MODULES=(), on peut spécifier des modules supplémentaires qu'UDEV ne charge pas. Par exemple, le driver iwl3945 de ma carte wifi a du être rajouté manuellement à cette ligne.

À moins que vous n'ayez des volumes LVM, laissez USELVM sur "no", ça ne scannera pas les éventuels volumes LVM et accélérera donc votre processus de boot.

La ligne HOSTNAME="myhost" permet de spécifier le nom de la machine sur le réseau, par exemple. Quoi que vous mettiez à la place de myhost, il faudra également le spécifier dans /etc/hosts. Vous aurez l'occasion de le faire un peu plus loin.

Concernant le réseau, commentez la ligne actuelle commençant par eth0, au moyen d'un # en début de ligne, et écrivez donc ceci juste au dessus : eth0=(dhcp).

Dans un premier temps, laissez eth0 comme interface disponible, ne modifiez donc pas la ligne INTERFACES=(eth0).

Ne modifiez pas non plus les deux lignes suivantes, parlant de GATEWAY et de ROUTES.

Il reste maintenant la liste des daemons, des petits programmes à lancer automatiquement au démarrage. Tant que maintenant, laissez la ligne telle quelle.

Enregistrez puis quittez nano (ctrl + o & ctrl + x).

/etc/fstab

Sa syntaxe et son rôle ont été explicités dans un chapitre antérieur.

Vous n'avez pas à vous en soucier ici.

/etc/mkinitcpio.conf

C'est ici que se configure l'image initrd. Sauf si vraiment vous savez ce que vous faites, n'ouvrez même pas ce fichier !

/etc/modprobe.conf

Ce fichier sert pour le chargement ou le paramétrage de MODULES.

À nouveau, ne vous souciez pas de ce fichier.

/etc/resolv.conf

Si vous avez utilisé le dhcp, sachez que ce fichier sera réécrit à chaque redémarrage par dhcpcd, vous ne devriez donc pas à devoir y toucher.

Toujours si vous êtes en dhcp, pour cette session d'installation uniquement, faites un petit coup de :

cp /etc/resolv.conf /mnt/etc/resolv.conf

Ceux qui n'utilisent pas le dhcp et qui préfèrent rentrer leur configuration réseau en dur devront configurer leurs DNS dans ce fichier.

Il se peut éventuellement que les DNS fournis par dhcp soient défectueux, dans le sens où ces DNS sont ceux de votre fournisseur d'accès internet. Ce dernier se complaît peut-être à bloquer certains sites... Une explication figure en annexe dans le chapitre consacré à l'after-install d'Arch !

/etc/hosts

C'est le fichier de configuration des hôtes du réseau. Rajoutez au moins le nom de votre PC sur la ligne localhost, comme nous vous l'avions annoncé lors de l'édition du rc.conf.

Voilà à quoi ça ressemble par défaut :

#
# /etc/hosts: static lookup table for host names
#
#< ip-address >   < hostname.domain.org >   < hostname >

127.0.0.1               localhost.localdomain   localhost myhost
Le couple infernal : /etc/hosts.allow et /etc/hosts.deny

Ces fichiers définissent les permissions d'accès réseau à la machine.

Par défaut, Arch n'en autorise aucun (sécurité maximale oblige).

Ce sera donc à vous, si vous désirez utiliser votre machine comme un serveur, à configurer ces fichiers !

En général, il est inutile de les éditer à ce stade, si besoin en est, vous le ferez plus tard.

/etc/locale.gen

Ce fichier permet la génération des locales.

Décommentez les lignes qui vous intéressent et commentez celles par défaut. On aura décommenté, par exemple :

fr_FR.UTF-8 UTF-8
fr_FR ISO-8859-1
fr_FR@euro ISO-8859-15
/etc/pacman.conf

C'est le fichier principal de configuration de PACMAN, le gestionnaire de paquets d'Arch.

Il devrait normalement être configuré normalement, mais vous désirerez sans doute profiter du dépôt francophone des utilisateurs d'Archlinux.

À cette fin, rajoutez les deux lignes suivantes dans ce fichier :

[archlinuxfr]
Server = http://repo.archlinux.fr/archi/

Où archi est à remplacer par i686 ou x86_64, selon votre architecture.

/etc/pacman.d/mirrorlist

Ce fichier liste les différents miroirs sur lesquels PACMAN ira chercher les applications que vous désirerez installer.

Pour éviter les connection timeouts, il est préférable de choisir un miroir proche de chez soi, de préférences, pas le miroir free, car il bridé en vitesse.

Root-password

Pas grand chose à dire ici, si ce n'est que cela permet de configurer le mot de passe de l'utilisateur root.

Bien qu'il n'y ait quasi rien à dire sur cela, ça reste néanmoins indispensable !

On a maintenant terminé de configurer le système. Ça prend un certain temps la première fois, mais c'est un prêté pour un rendu, car ça vous en fera gagner par la suite.

Passons à la configuration du bootloader.

Configure bootloaders

Tout d'abord pourquoi avoir mis un "s" à bootloader dans le titre ?

Et bien, nous allons dans un premier temps terminer l'installation de notre Arch.

Vous comprendrez plus tard pourquoi ce "s" a été ajouté.

Toujours dans le menu principal de l'installateur d'Arch, on va cette fois choisir de configurer le bootloader :

Image utilisateur

Vous remarquerez que le fichier menu.lst est pré-rempli, c'est à dire qu'on nous a donné une configuration fonctionnelle, mais qu'on nous laisse la possibilité de l'éditer.

Normalement, à l'heure actuelle, votre menu.lst doit ressembler à cela :

# Config file for GRUB - The GNU GRand Unified Bootloader
# /boot/grub/menu.lst

# DEVICE NAME CONVERSIONS 
#
#  Linux           Grub
# -------------------------
#  /dev/fd0        (fd0)
#  /dev/hda        (hd0)
#  /dev/hdb2       (hd1,1)
#  /dev/hda3       (hd0,2)
#

#  FRAMEBUFFER RESOLUTION SETTINGS
#     +-------------------------------------------------+
#          | 640x480    800x600    1024x768   1280x1024
#      ----+--------------------------------------------
#      256 | 0x301=769  0x303=771  0x305=773   0x307=775
#      32K | 0x310=784  0x313=787  0x316=790   0x319=793
#      64K | 0x311=785  0x314=788  0x317=791   0x31A=794
#      16M | 0x312=786  0x315=789  0x318=792   0x31B=795
#     +-------------------------------------------------+

# general configuration:
timeout   5
default   0
color light-blue/black light-cyan/blue
 
# boot sections follow
# each is implicitly numbered from 1 in the order of appearance below
#
# TIP: If you want a 1024x768 framebuffer, add "vga=773" to your kernel line.
#
#-*

# (0) Arch Linux
title  Arch Linux
root   (hd0,6)
kernel /boot/vmlinuz26 root=/dev/disk/by-uuid/your_uuid ro
initrd /boot/kernel26.img

# (1) Arch Linux
title  Arch Linux Fallback
root   (hd0,6)
kernel /boot/vmlinuz26 root=/dev/disk/by-uuid/your_uuid ro
initrd /boot/kernel26-fallback.img

# (2) Windows
#title Windows
#rootnoverify (hd0,0)
#makeactive
#chainloader +1

Laissez donc ce fichier tel qu'il est, il nous conviendra ainsi.

On vous demandera ensuite où installer GRUB. De la façon dont nous avons configuré GRUB, il faut l'installer sur la partition /(racine) d'Arch, et nulle part ailleurs !

Dans notre cas, on l'installera donc sur /dev/sda7 :

Image utilisateur

On vous informe que GRUB a été correctement installé.

Félicitations, l'installation d'Arch est terminé !

Choisissez "Exit Install", enlevez le média d'installation et tapez reboot.

Sacrebleu, j'ai uniquement le choix entre Ubuntu et Windows au démarrage, comment cela se fait-il ?

En fait, c'est assez normal, car on s'est contenté d'installer Arch et d'installer GRUB sur la même partition que la / d'Arch.

Mais on a jamais précisé au GRUB d'Ubuntu, qui est installé sur le MBR et est donc lancé au boot, qu'il y avait un nouvel OS installé.

C'est ce qu'on va s'attacher à faire maintenant !

Le chainloading

Démarrez donc votre Ubuntu comme c'était le cas au reboot.

Passez en root et ouvrez le menu.lst, qui se trouve dans /boot/grub, avec votre éditeur de texte favori.

Pour l'instant, il ressemble à cela :

# menu.lst - See: grub(8), info grub, update-grub(8)
#            grub-install(8), grub-floppy(8),
#            grub-md5-crypt, /usr/share/doc/grub
#            and /usr/share/doc/grub-doc/.

## default num
# Set the default entry to the entry number NUM. Numbering starts from 0, and
# the entry number 0 is the default if the command is not used.
#
# You can specify 'saved' instead of a number. In this case, the default entry
# is the entry saved with the command 'savedefault'.
# WARNING: If you are using dmraid do not use 'savedefault' or your
# array will desync and will not let you boot your system.
default		0

## timeout sec
# Set a timeout, in SEC seconds, before automatically booting the default entry
# (normally the first entry defined).
timeout		3

## hiddenmenu
# Hides the menu by default (press ESC to see the menu)
hiddenmenu

# Pretty colours
#color cyan/blue white/blue

## password ['--md5'] passwd
# If used in the first section of a menu file, disable all interactive editing
# control (menu entry editor and command-line)  and entries protected by the
# command 'lock'
# e.g. password topsecret
#      password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
# password topsecret

#
# examples
#
# title		Windows 95/98/NT/2000
# root		(hd0,0)
# makeactive
# chainloader	+1
#
# title		Linux
# root		(hd0,1)
# kernel	/vmlinuz root=/dev/hda2 ro
#

#
# Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST

### BEGIN AUTOMAGIC KERNELS LIST
## lines between the AUTOMAGIC KERNELS LIST markers will be modified
## by the debian update-grub script except for the default options below

## DO NOT UNCOMMENT THEM, Just edit them to your needs

## ## Start Default Options ##
## default kernel options
## default kernel options for automagic boot options
## If you want special options for specific kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
##      kopt_2_6_8=root=/dev/hdc1 ro
##      kopt_2_6_8_2_686=root=/dev/hdc2 ro
# kopt=root=UUID=70fed6b3-3ce0-41d2-89d7-32ddb13258a1 ro

## default grub root device
## e.g. groot=(hd0,0)
# groot=70fed6b3-3ce0-41d2-89d7-32ddb13258a1

## should update-grub create alternative automagic boot options
## e.g. alternative=true
##      alternative=false
# alternative=true

## should update-grub lock alternative automagic boot options
## e.g. lockalternative=true
##      lockalternative=false
# lockalternative=false

## additional options to use with the default boot option, but not with the
## alternatives
## e.g. defoptions=vga=791 resume=/dev/hda5
# defoptions=quiet splash

## should update-grub lock old automagic boot options
## e.g. lockold=false
##      lockold=true
# lockold=false

## Xen hypervisor options to use with the default Xen boot option
# xenhopt=

## Xen Linux kernel options to use with the default Xen boot option
# xenkopt=console=tty0

## altoption boot targets option
## multiple altoptions lines are allowed
## e.g. altoptions=(extra menu suffix) extra boot options
##      altoptions=(recovery) single
# altoptions=(recovery mode) single

## controls how many kernels should be put into the menu.lst
## only counts the first occurence of a kernel, not the
## alternative kernel options
## e.g. howmany=all
##      howmany=7
# howmany=all

## specify if running in Xen domU or have grub detect automatically
## update-grub will ignore non-xen kernels when running in domU and vice versa
## e.g. indomU=detect
##      indomU=true
##      indomU=false
# indomU=detect

## should update-grub create memtest86 boot option
## e.g. memtest86=true
##      memtest86=false
# memtest86=true

## should update-grub adjust the value of the default booted system
## can be true or false
# updatedefaultentry=false

## should update-grub add savedefault to the default options
## can be true or false
# savedefault=false

## ## End Default Options ##

title		Ubuntu 9.04, kernel 2.6.28-11-generic
uuid		70fed6b3-3ce0-41d2-89d7-32ddb13258a1
kernel		/boot/vmlinuz-2.6.28-11-generic root=UUID=70fed6b3-3ce0-41d2-89d7-32ddb13258a1 ro quiet splash 
initrd		/boot/initrd.img-2.6.28-11-generic
quiet

title		Ubuntu 9.04, kernel 2.6.28-11-generic (recovery mode)
uuid		70fed6b3-3ce0-41d2-89d7-32ddb13258a1
kernel		/boot/vmlinuz-2.6.28-11-generic root=UUID=70fed6b3-3ce0-41d2-89d7-32ddb13258a1 ro  single
initrd		/boot/initrd.img-2.6.28-11-generic

title		Ubuntu 9.04, memtest86+
uuid		70fed6b3-3ce0-41d2-89d7-32ddb13258a1
kernel		/boot/memtest86+.bin
quiet

### END DEBIAN AUTOMAGIC KERNELS LIST

title Windows 95/98/NT/2000/Vista
rootnoverifiy (hd0,0)
makeactive
chainloader +1

Vous remarquez déjà que pour lancer Windows, sans le savoir, vous utilisiez en fait le principe du chainloading.

Ce principe, expliqué dans une section antérieure, passe donc le relais à un autre bootloader qui démarrera le système voulu.

Il suffit simplement de changer un paramètre de votre menu.lst et d'ajouter quelques lignes tout à la fin, le tour sera alors joué !

On a pour principe d'ajouter des entrées au menu.lst après la ligne ### END DEBIAN AUTOMAGIC KERNELS LIST, pour éviter que lorsque le noyau d'Ubuntu sera mis à jour, le script update-grub n'efface toutes nos précieuses modifications.

Pensez à commenter la ligne hiddenmenu (ce qui aurait déjà du être fait, normalement), pour pouvoir avoir accès aux différents noyaux à charger.
Vous voudrez peut-être disposer de plus que 3 secondes pour choisir votre OS. Dans ce cas, modifiez la valeur de timeout 3 à timeout 10 pour disposer de 10 pour effectuer votre choix.

Ajoutez également ces quelques lignes tout à la fin :

# This is a divider, added to separate the menu items below from the Debian
# ones.
title           Other operating systems:
root

# Archlinux installed on /dev/sda7
title   Archlinux
root (hd0,6)
chainloader +1
boot

Au final, votre menu.lst ressemblera à cela :

# menu.lst - See: grub(8), info grub, update-grub(8)
#            grub-install(8), grub-floppy(8),
#            grub-md5-crypt, /usr/share/doc/grub
#            and /usr/share/doc/grub-doc/.

## default num
# Set the default entry to the entry number NUM. Numbering starts from 0, and
# the entry number 0 is the default if the command is not used.
#
# You can specify 'saved' instead of a number. In this case, the default entry
# is the entry saved with the command 'savedefault'.
# WARNING: If you are using dmraid do not use 'savedefault' or your
# array will desync and will not let you boot your system.
default		0

## timeout sec
# Set a timeout, in SEC seconds, before automatically booting the default entry
# (normally the first entry defined).
timeout		10

## hiddenmenu
# Hides the menu by default (press ESC to see the menu)
#hiddenmenu

# Pretty colours
#color cyan/blue white/blue

## password ['--md5'] passwd
# If used in the first section of a menu file, disable all interactive editing
# control (menu entry editor and command-line)  and entries protected by the
# command 'lock'
# e.g. password topsecret
#      password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
# password topsecret

#
# examples
#
# title		Windows 95/98/NT/2000
# root		(hd0,0)
# makeactive
# chainloader	+1
#
# title		Linux
# root		(hd0,1)
# kernel	/vmlinuz root=/dev/hda2 ro
#

#
# Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST

### BEGIN AUTOMAGIC KERNELS LIST
## lines between the AUTOMAGIC KERNELS LIST markers will be modified
## by the debian update-grub script except for the default options below

## DO NOT UNCOMMENT THEM, Just edit them to your needs

## ## Start Default Options ##
## default kernel options
## default kernel options for automagic boot options
## If you want special options for specific kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
##      kopt_2_6_8=root=/dev/hdc1 ro
##      kopt_2_6_8_2_686=root=/dev/hdc2 ro
# kopt=root=UUID=70fed6b3-3ce0-41d2-89d7-32ddb13258a1 ro

## default grub root device
## e.g. groot=(hd0,0)
# groot=70fed6b3-3ce0-41d2-89d7-32ddb13258a1

## should update-grub create alternative automagic boot options
## e.g. alternative=true
##      alternative=false
# alternative=true

## should update-grub lock alternative automagic boot options
## e.g. lockalternative=true
##      lockalternative=false
# lockalternative=false

## additional options to use with the default boot option, but not with the
## alternatives
## e.g. defoptions=vga=791 resume=/dev/hda5
# defoptions=quiet splash

## should update-grub lock old automagic boot options
## e.g. lockold=false
##      lockold=true
# lockold=false

## Xen hypervisor options to use with the default Xen boot option
# xenhopt=

## Xen Linux kernel options to use with the default Xen boot option
# xenkopt=console=tty0

## altoption boot targets option
## multiple altoptions lines are allowed
## e.g. altoptions=(extra menu suffix) extra boot options
##      altoptions=(recovery) single
# altoptions=(recovery mode) single

## controls how many kernels should be put into the menu.lst
## only counts the first occurence of a kernel, not the
## alternative kernel options
## e.g. howmany=all
##      howmany=7
# howmany=all

## specify if running in Xen domU or have grub detect automatically
## update-grub will ignore non-xen kernels when running in domU and vice versa
## e.g. indomU=detect
##      indomU=true
##      indomU=false
# indomU=detect

## should update-grub create memtest86 boot option
## e.g. memtest86=true
##      memtest86=false
# memtest86=true

## should update-grub adjust the value of the default booted system
## can be true or false
# updatedefaultentry=false

## should update-grub add savedefault to the default options
## can be true or false
# savedefault=false

## ## End Default Options ##

title		Ubuntu 9.04, kernel 2.6.28-11-generic
uuid		70fed6b3-3ce0-41d2-89d7-32ddb13258a1
kernel		/boot/vmlinuz-2.6.28-11-generic root=UUID=70fed6b3-3ce0-41d2-89d7-32ddb13258a1 ro quiet splash 
initrd		/boot/initrd.img-2.6.28-11-generic
quiet

title		Ubuntu 9.04, kernel 2.6.28-11-generic (recovery mode)
uuid		70fed6b3-3ce0-41d2-89d7-32ddb13258a1
kernel		/boot/vmlinuz-2.6.28-11-generic root=UUID=70fed6b3-3ce0-41d2-89d7-32ddb13258a1 ro  single
initrd		/boot/initrd.img-2.6.28-11-generic

title		Ubuntu 9.04, memtest86+
uuid		70fed6b3-3ce0-41d2-89d7-32ddb13258a1
kernel		/boot/memtest86+.bin
quiet

### END DEBIAN AUTOMAGIC KERNELS LIST

title Windows 95/98/NT/2000/Vista
rootnoverifiy (hd0,0)
makeactive
chainloader +1

# This is a divider, added to separate the menu items below from the Debian
# ones.
title           Other operating systems:
root

# Archlinux installed on /dev/sda7
title   Archlinux
root (hd0,6)
chainloader +1
boot

Voila, sauvegardez votre menu.lst, rebootez et on peut enfin booter sur Arch Linux.

Bon amusement !

Voilà, le cours est officiellement terminé.

Vous devriez disposer d'un triple boot fonctionnel.

Nous vous invitons à vous rendre sur les annexes, toujours en cours d'écriture, où certains trouveront leur bonheur !

Vous disposez désormais de toutes les notions nécessaire à l'installation de quasi toutes les distributions.

En outre, vous aurez appris certaines notions indirectement liées au multiboot, ce qui n'est pas plus mal !

Néanmoins, le tutoriel n'est pas fini, nous vous invitons à jeter un coup d'oeil aux annexes.

Example of certificate of achievement
Example of certificate of achievement