Amorçage
0Linux s'amorce avec extlinux, inclus dans le paquet syslinux, servant également à amorcer les DVD et les clés USB autonomes.
Systèmes de fichiers supportés
extlinux ne supporte que les systèmes de fichiers ext2, ext3, ext4 et btrfs.
Ces contraintes impliquent un choix, soit :
- formater obligatoirement sa racine dans un de ces systèmes de fichiers
- dédier une partition à
/boot, formatée dans un de ces systèmes de fichiers et avoir un peu plus de choix pour sa racine (jfs,reiserfsouxfs).
extlinux prend en charge l'amorçage via BIOS et EFI. Néanmoins, 0Linux ne propose pas (encore) de méthode automatisée pour mettre en place un amorçage par EFI. Il faut pour le moment le paramétrer manuellement.
Les EFI proposent une option appelée « Legacy BIOS » ou « Legacy Boot » qui permet d'amorcer le système à la manière des BIOS. Activez-la si vous ne savez pas mettre en place un amorçage par EFI et que vous voulez installer extlinux automatiquement pour amorcer 0Linux.
Configuration
La configuration d'extlinux se trouve dans le fichier /boot/extlinux/extlinux.conf.
Ce fichier doit obligatoirement être encodé en CP850 ou IBM850. Le codage ISO-8859-1 n'affichera pas correctement les accents et le codage UTF-8 le rendra inutilisable.
Systèmes Linux
Voici une entrée typique servant à amorcer le système 0Linux :
- extlinux.conf
# 0Linux : LABEL 0linux MENU LABEL 0 Linux LINUX /boot/vmlinuz APPEND ro root=/dev/sda2 initrd=../initrd
LABELest un mot simple identifiant le choix de l'utilisateur, il n'est pas affiché.MENU LABELest le libellé du menu, il sera affiché à l'utilisateur dans le menu.LINUXcontient le chemin du noyau à amorcer, icivmlinuzpar défaut, pointant sur le noyau nomménoyau-VERSION.APPENDcontient les options à passer au noyau à l'amorçage, parmi les suivantes :ropour « read only » : le système est d'abord chargé en lecture seule afin que les scripts d'initialisation de puissent vérifier l'intégrité des systèmes de fichiers ; il les remonteront ensuite en lecture-écriture. C'est le mode par défaut. Le remplacer parrwforcera le montage de la racine en lecture-écriture, ne permettant pas de vérifier les systèmes de fichiers (plus rapide, mais potentiellement plus risqué).root=/dev/sda2indique au noyau sur quelle partition se trouve la racine du système. C'est généralement le seul paramètre à personnaliser. On peut également et de préférence spécifier soit le LABEL de la partition racine, moins sujette aux changements que le nom de périphérique '/dev/sdX' en spécifiantroot=LABEL=monlabelou bien, encore mieux, spécifier l'identifiant unique UUID en spécifiantroot=UUID=1234-1234-1234-1234. Notez bien que l'utilisation du LABEL ou de l'UUID requiert d'inclure le chargement de l'initrd de 0Linux (cf. plus bas)initrd ../initrdcharge « l'initrd » (ou « intramfs ») de 0Linux, lequel contient un système minimal permettant de reconnaître et d'amorcer les partitions selon leur LABEL ou leur UUID (cf. plus haut). L'initrd s'appelle simplementinitrdet se trouve sous/boot, donc dans le répertoire parent deextlinux, d'où la notation../initrd
Cette entrée permettra d'amorcer le fichier vmlinuz, même si celui-ci est mis à niveau entretemps (ce fichier est d'ordinaire un lien vers le noyau noyau-3.x.x de toute façon). Il n'y a donc pas besoin de réinitialiser extlinux lors d'une mise à niveau du noyau Linux.
Autres systèmes
L'amorçage d'autres systèmes passe par la technique du chainloading, qui consiste à passer la main au chargeur d'amorçage de la partition s'il y en a un. Par exemple, si un système Windows est installé sur /dev/sda1 :
- extlinux.conf
# Windows : LABEL windoz MENU LABEL Windows XTruc Ultime KERNEL chain.c32 APPEND hd0 1
LABELest un mot simple identifiant le choix de l'utilisateur, il n'est pas affiché.MENU LABELest le libellé du menu, il sera affiché à l'utilisateur dans le menu.KERNELcontient le module desyslinuxà charger, icichain.c32, servant à chainloader un autre chargeur. Ce module est déjà placé par défaut sous/boot/extlinux.APPENDdésigne la partition où se trouve le chargeur à invoquer. La notation des partitions se fait ainsi :
hd<numéro du disque commençant à 0><numéro de partition commençant à 1>
Ainsi :
/dev/sda1 -> hd0 1 /dev/sda2 -> hd0 2 /dev/sda7 -> hd0 7 /dev/sdb4 -> hd1 4 /dev/sdd9 -> hd4 9
Installation
extlinux s'installe par défaut en début de partition, il n'attaque pas le bloc d'amorçage principal (ou « MBR », pour « Master Boot Record ») du disque dur. Il s'installe sur un système de fichiers déjà monté.
Par exemple, si l'on désire pouvoir amorcer la partition /dev/sda2, on doit d'abord la monter dans un répertoire :
mkdir /mon_0 mount /dev/sda2 /mon_0
On installe ensuite extlinux simplement :
extlinux --install /mon_0/boot/