# Syslinux (Français)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Related articles

- Arch boot process

Syslinux est une collection de chargeurs d'amorce capables de démarrer depuis disques durs, CD, et à travers le réseau via PXE. Il supporte les systèmes de fichiers fat, ext2, ext3, ext4 et btrfs.

## Installation

Selon le mode de démarrage de votre ordinateur, vous devrez suivre les indications d'installation correspondantes.

### Systèmes BIOS

Attention: Vérifiez bien que `/boot` est montée pour la suite si vous utilisez une partition séparée !

Installer syslinux:

    pacman -S syslinux

#### Installation automatique

Le script `syslinux-install_update` installera Syslinux, copiera (ou mettra en liens symboliques si `/boot` et `/` sont sur la même partition) les modules COM32 nécessaires dans `/boot/syslinux/`, modifiera le drapeau de démarrage (boot flag) et installera le MBR. Il peut gérer des disques MBR et GPT avec Softraid.

Lancer le script avec -i (installation) -a (modification du boot flag) -m (installation sur le MBR):

    syslinux-install_update -iam

Note: Si votre partitionnement est de type GPT, vous devrez installer le paquet gptfdisk (dépendance optionnelle de syslinux) pour que le script d'installation fonctionne (pour l'installation du drapeau `boot`).

Syslinux peut maintenant être configuré en éditant `/boot/syslinux/syslinux.cfg` pour personnaliser le démarrage.

### Systèmes UEFI

Note:

- UEFI est supporté depuis Syslinux 6.xx.

- `$esp` désigne le point de montage de la partition système EFI (EFI System Partition[broken link: invalid section] ou ESP) dans les commandes ci-après.

- `efi64` désigne les systèmes UEFI x86_64, pour IA32 (32-bit) EFI remplacez `efi64` par `efi32` dans les commandes ci-après.

- Pour syslinux, les fichiers kernel et initramfs ont besoin d'être placés dans ESP, attendu que syslinux n'a pas (pour le moment) la capacité d'accèder à des fichiers en dehors de sa propre partition (i.e. en dehors d'ESP dans ce cas). Pour cette raison, il est recommandé de monter ESP dans `/boot`.

- Le script d'installation automatique `/usr/bin/syslinux-install_update` ne supporte pas l'installation UEFI.

- La syntaxe du fichier de configuration `syslinux.cfg` pour UEFI est identique à celle pour le BIOS.

#### Limitations de Syslinux UEFI

- L'application syslinux UEFI `syslinux.efi` ne peut pas être signé pa `sbsign` (de sbsigntool) pour le Secure Boot UEFI. Rapport de bug - http://bugzilla.syslinux.org/show_bug.cgi?id=8

- L'utilisation de `TAB` pour éditer les options du kernel depuis le menu Syslinux UEFI pourrit l'affichage (les textes se superposent). Rapport de bug - http://bugzilla.syslinux.org/show_bug.cgi?id=9

- UEFI Syslinux ne supporte pas le chaînage d'autres applications EFI comme `UEFI Shell` ou `Windows Boot Manager`. Rapport de bug - http://bugzilla.syslinux.org/show_bug.cgi?id=17

- UEFI Syslinux ne démarre pas en Machines Virtuelles telles que QEMU/OVMF, VirtualBox ou VMware et dans quelques environnements d'émulation UEFI comme DUET. Rapports de bug - http://bugzilla.syslinux.org/show_bug.cgi?id=21 et http://bugzilla.syslinux.org/show_bug.cgi?id=23

- Memdisk n'est pas disponible pour UEFI. Rapport de bug - http://bugzilla.syslinux.org/show_bug.cgi?id=30

#### Installation

- Installer les paquets syslinux, dosfstools et efibootmgr et placer syslinux dans l'EFI System Partition (ESP) comme suit:

    pacman -S syslinux dosfstools efibootmgr

Note: Vous pouvez vous reporter aux instructions données pour GRUB concernant création et montage de la partition ESP).

- Copier les fichiers syslinux vers ESP:

    mkdir -p $esp/EFI/syslinux
    cp -r /usr/lib/syslinux/efi64/* $esp/EFI/syslinux

- Installer l'entrée de démarrage pour Syslinux en utilisant efibootmgr (en)[broken link: invalid section]:

    mount -t efivarfs efivarfs /sys/firmware/efi/efivars
    efibootmgr -c -d /dev/sdX -p Y -l /EFI/syslinux/syslinux.efi -L "Syslinux"

- Créer ou éditer `$esp/EFI/syslinux/syslinux.cfg` en suivant la configuration.

## Configuration

Attention:

- Système BIOS: le fichier de configuration est `/boot/syslinux/syslinux.cfg`. En outre, les fichiers nécessaires au démarrage et au fonctionnement de syslinux (modules c32 et autres) devraient être placés dans `/boot/syslinux/`.

- Systèmes UEFI: le fichier de configuration pour UEFI est `$esp/EFI/syslinux/syslinux.cfg`. Les autres fichiers nécessaires au démarrage et au fonctionnement de syslinux (modules c32 et autres) sont à copier dans `$esp/EFI/syslinux/`.

Note: Les exemples de commandes du reste de la page considérent une installation sur un système BIOS.

    /boot/syslinux/syslinux.cfg

    DEFAULT arch
    PROMPT 0        # Set to 1 if you always want to display the boot: prompt
    TIMEOUT 50
    # You can create syslinux keymaps with the keytab-lilo tool
    #KBDMAP de.ktl

    # Menu Configuration
    # Either menu.c32 or vesamenu32.c32 must be copied to /boot/syslinux
    UI menu.c32
    #UI vesamenu.c32

    # Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu
    MENU TITLE Arch Linux
    #MENU BACKGROUND splash.png
    MENU COLOR border       30;44   #40ffffff #a0000000 std
    MENU COLOR title        1;36;44 #9033ccff #a0000000 std
    MENU COLOR sel          7;37;40 #e0ffffff #20ffffff all
    MENU COLOR unsel        37;44   #50ffffff #a0000000 std
    MENU COLOR help         37;40   #c0ffffff #a0000000 std
    MENU COLOR timeout_msg  37;40   #80ffffff #00000000 std
    MENU COLOR timeout      1;37;40 #c0ffffff #00000000 std
    MENU COLOR msg07        37;40   #90ffffff #a0000000 std
    MENU COLOR tabmsg       31;40   #30ffffff #00000000 std

    # boot sections follow
    #
    # TIP: If you want a 1024x768 framebuffer, add "vga=773" to your kernel line.
    #
    #-*

    LABEL arch
    	MENU LABEL Arch Linux
    	LINUX ../vmlinuz-linux
    	APPEND root=/dev/sda3 rw
    	INITRD ../initramfs-linux.img

    LABEL archfallback
    	MENU LABEL Arch Linux Fallback
    	LINUX ../vmlinuz-linux
    	APPEND root=/dev/sda3 rw
    	INITRD ../initramfs-linux-fallback.img

    #LABEL windows
    #        MENU LABEL Windows
    #        COM32 chain.c32
    #        APPEND hd0 1

    LABEL hdt
            MENU LABEL HDT (Hardware Detection Tool)
            COM32 hdt.c32

    LABEL reboot
            MENU LABEL Reboot
            COM32 reboot.c32

    LABEL off
            MENU LABEL Power Off
            COMBOOT poweroff.com

- DEFAULT désigne le LABEL de l'entrée à démarrer par défaut.
- TIMEOUT correspond au délai avant le démarrage de DEFAULT (en dixième de seconde).
- LABEL correspond à une entrée de menu.

Attention: Il vous suffira donc de vérifier dans les entrées d'Arch si root désigne bien la partition abritant la racine d'Arch (/).
Astuce: Il est préférable de désigner la partition abritant la racine d'Arch, /dev/sda3 dans l'exemple, par son UUID au moyen de `blkid`, ce qui peut donner au final:

    LABEL arch
    	MENU LABEL Arch Linux
    	LINUX ../vmlinuz-linux
    	APPEND root=UUID=8887210b-72d3-4899-99f7-3f39ea0a0eeb rw vga=0x0345 quiet
    	INITRD ../initramfs-linux.img

Si vous utilisez des noyaux additionnels, il vous suffira de rajouter les entrées adéquates. Par exemple, pour le noyau stable linux-lts:

    LABEL archlts
           MENU LABEL Arch Linux LTS
           LINUX ../vmlinuz-linux-lts
           APPEND root=UUID=8887210b-72d3-4899-99f7-3f39ea0a0eeb rw vga=0x0345 quiet
           INITRD ../initramfs-linux-lts.img

    LABEL archltsfallback
           MENU LABEL Arch Linux LTS Fallback
           LINUX ../vmlinuz-linux-lts
           APPEND root=UUID=8887210b-72d3-4899-99f7-3f39ea0a0eeb rw
           INITRD ../initramfs-linux-lts-fallback.img

### Prompt de base

On peut démarrer seulement sur le prompt en désactivant les modules de menu dans `syslinux.cfg` (`UI menu.c32` et `UI vesamenu.c32`).

Le prompt attendra alors que vous saisissiez le nom du système à démarrer (LABEL) ou que vous entriez vous-même les directives. Passé le TIMEOUT, le démarrage se fera sur le LABEL correspondant à DEFAULT.

Astuce: Au prompt, `TAB` vous indiquera les LABELs disponibles.

    /boot/syslinux/syslinux.cfg

    PROMPT 1
    TIMEOUT 50
    DEFAULT arch

    LABEL arch
            LINUX ../vmlinuz-linux
            APPEND root=UUID=8887210b-72d3-4899-99f7-3f39ea0a0eeb rw
            INITRD ../initramfs-linux.img

    LABEL archfallback
            LINUX ../vmlinuz-linux
            APPEND root=UUID=8887210b-72d3-4899-99f7-3f39ea0a0eeb rw
            INITRD ../initramfs-linux-fallback.img

Le démarrage peut être immédiat sans montrer de prompt en passant PROMPT à 0.

### Menus

#### Menu textuel

Il est possible d'avoir le menu des différentes entrées au démarrage. Pour se faire, vérifiez que le module COM32 menu est présent dans le répertoire de syslinux ou copiez-le au besoin:

    cp /usr/lib/syslinux/menu.c32 /boot/syslinux/

Astuce: Si `/boot` et `/` sont sur la même partition, un lien symbolique suffit:

    ln -s /usr/lib/syslinux/menu.c32 /boot/syslinux/

Puis adaptez votre fichier de configuration:

    /boot/syslinux/syslinux.cfg

    UI menu.c32
    PROMPT 0

    MENU TITLE Boot Menu
    TIMEOUT 50
    DEFAULT arch

    LABEL arch
            MENU LABEL Arch Linux
            LINUX ../vmlinuz-linux
            APPEND root=UUID=8887210b-72d3-4899-99f7-3f39ea0a0eeb rw
            INITRD ../initramfs-linux.img

    LABEL archfallback
            MENU LABEL Arch Linux Fallback
            LINUX ../vmlinuz-linux
            APPEND root=UUID=8887210b-72d3-4899-99f7-3f39ea0a0eeb rw
            INITRD ../initramfs-linux-fallback.img

Différentes combinaisons de couleurs sont disponibles mais la personnalisation reste limitée en comparaison du menu graphique (reportez-vous au wiki de syslinux).

#### Menu graphique

Il est également possible d'avoir un menu graphique avec image de fond, couleurs au format RGB, transparence...

Pour l'utiliser, vérifier la présence du module COM32 vesamenu dans le répertoire de syslinux. Copiez-le au besoin:

    cp /usr/lib/syslinux/vesamenu.c32 /boot/syslinux/

Astuce: Si `/boot` et `/` sont sur la même partition, un lien symbolique suffit:

    ln -s /usr/lib/syslinux/vesamenu.c32 /boot/syslinux/

Un exemple de configuration basé sur le CD d'installation d'Arch (`splash.png`, à placer dans `/boot/syslinux/`, peut-être récupéré ici ):

    /boot/syslinux/syslinux.cfg

    UI vesamenu.c32
    DEFAULT arch
    PROMPT 0
    MENU TITLE Boot Menu
    MENU BACKGROUND splash.png
    TIMEOUT 50

    MENU WIDTH 78
    MENU MARGIN 4
    MENU ROWS 5
    MENU VSHIFT 10
    MENU TIMEOUTROW 13
    MENU TABMSGROW 11
    MENU CMDLINEROW 11
    MENU HELPMSGROW 16
    MENU HELPMSGENDROW 29

    # Refer to http://www.syslinux.org/wiki/index.php/Comboot/menu.c32

    MENU COLOR border       30;44   #40ffffff #a0000000 std
    MENU COLOR title        1;36;44 #9033ccff #a0000000 std
    MENU COLOR sel          7;37;40 #e0ffffff #20ffffff all
    MENU COLOR unsel        37;44   #50ffffff #a0000000 std
    MENU COLOR help         37;40   #c0ffffff #a0000000 std
    MENU COLOR timeout_msg  37;40   #80ffffff #00000000 std
    MENU COLOR timeout      1;37;40 #c0ffffff #00000000 std
    MENU COLOR msg07        37;40   #90ffffff #a0000000 std
    MENU COLOR tabmsg       31;40   #30ffffff #00000000 std

    LABEL arch
            MENU LABEL Arch Linux
            LINUX ../vmlinuz-linux
            APPEND root=/dev/sda2 rw
            INITRD ../initramfs-linux.img

    LABEL archfallback
            MENU LABEL Arch Linux Fallback
            LINUX ../vmlinuz-linux
            APPEND root=/dev/sda2 rw
            INITRD ../initramfs-linux-fallback.img

Consultez la documentation officielle pour les options de personnalisation.

##### Résolution

En outre, plutôt que de passer par le 640x480 par défaut, vous pouvez passer à une résolution plus adaptée à votre configuration au moyen de l'instruction `MENU RESOLUTION width height`.

Pour déterminer les résolutions disponibles, vous pouvez par exemple utiliser hwinfo:

    # hwinfo --framebuffer

    02: None 00.0: 11001 VESA Framebuffer
      [Created at bios.459]
      Unique ID: rdCR.GGyCBArXznD
      Hardware Class: framebuffer
      Model: "NVIDIA GF104B Board - 10400050"
      Vendor: "NVIDIA Corporation"
      Device: "GF104B Board - 10400050"
      SubVendor: "NVIDIA"
      SubDevice:
      Revision: "Chip Rev"
      Memory Size: 14 MB
      Memory Range: 0xd5000000-0xd5dfffff (rw)
      Mode 0x0300: 640x400 (+640), 8 bits
      Mode 0x0301: 640x480 (+640), 8 bits
      Mode 0x0303: 800x600 (+800), 8 bits
      Mode 0x0305: 1024x768 (+1024), 8 bits
      Mode 0x0307: 1280x1024 (+1280), 8 bits
      Mode 0x030e: 320x200 (+640), 16 bits
      Mode 0x030f: 320x200 (+1280), 24 bits
      Mode 0x0311: 640x480 (+1280), 16 bits
      Mode 0x0312: 640x480 (+2560), 24 bits
      Mode 0x0314: 800x600 (+1600), 16 bits
      Mode 0x0315: 800x600 (+3200), 24 bits
      Mode 0x0317: 1024x768 (+2048), 16 bits
      Mode 0x0318: 1024x768 (+4096), 24 bits
      Mode 0x031a: 1280x1024 (+2560), 16 bits
      Mode 0x031b: 1280x1024 (+5120), 24 bits
      Mode 0x0330: 320x200 (+320), 8 bits
      Mode 0x0331: 320x400 (+320), 8 bits
      Mode 0x0332: 320x400 (+640), 16 bits
      Mode 0x0333: 320x400 (+1280), 24 bits
      Mode 0x0334: 320x240 (+320), 8 bits
      Mode 0x0335: 320x240 (+640), 16 bits
      Mode 0x0336: 320x240 (+1280), 24 bits
      Mode 0x033d: 640x400 (+1280), 16 bits
      Mode 0x033e: 640x400 (+2560), 24 bits
      Mode 0x0345: 1600x1200 (+1600), 8 bits
      Mode 0x0346: 1600x1200 (+3200), 16 bits
      Mode 0x034a: 1600x1200 (+6400), 24 bits
      Config Status: cfg=new, avail=yes, need=no, active=unknown

Dans cet exemple, il est donc possible de placer dans le syslinux.cfg:

    MENU RESOLUTION 1600 1200

Et ainsi d'utiliser une image d'arrière-plan à cette dimension (l'image est facultative).

Attention: Si vous fournissez une image, elle devra toujours correspondre à la résolution indiquée dans le syslinux.cfg mais pourra être déformée en hauteur ou largeur du fait de votre écran. Pensez-y en cas de proportions à respecter. Pour info, j'ai rencontré les deux cas: écrasement en hauteur sur mon pc de bureau avec une résolution d'image de 1600x1200 tandis que mon écran affiche du 16/9è et une image étalée en largeur sur portable: du 800x600 pour un écran 1024x600. Il m'a donc suffit de réaliser les opérations inverses (par gimp car j'avais la flemme d'utiliser directement `convert` du paquet imagemagick).
Astuce: L'utilisation de KMS (pilotes intel, ati, nouveau) peut produire un artefact visuel (une zone blanche dans le coin supérieur gauche) sur la zone de texte au démarrage d'Arch (l'affichage tentant de conserver le menu de syslinux). Pour faire disparaître ce problème, il suffit de passer `vga=current` au kernel:

    APPEND root=/dev/sda3 rw vga=current quiet

#### Arguments additionnels

##### Options temporaires

Vous pouvez configurer les différentes options de démarrage en modifiant la ligne du menu pendant l'exécution de syslinux. Pour cela, il suffit de se placer sur la ligne que vous vous voulez modifier et appuyer sur `TAB` :

    .linux ../vmlinuz-linux root=/dev/sda3 rw initrd=../initramfs-linux.img

Pour démarrer sans le mode graphique par exemple :

    .linux ../vmlinuz-linux root=/dev/sda3 rw initrd=../initramfs-linux.img systemd.unit=multi-user.target

##### Options permanentes

Pour rendre le passage d'arguments additionnels à l'image Linux permanent lors du démarrage, il suffit d'éditer la ligne `APPEND` des entrées appropriées dans votre `/boot/syslinux/syslinux.cfg` et d'y rajouter les options voulues.

Exemple pour l'hibernation, la partition de swap étant `/dev/sda5` :

    LABEL arch
            MENU LABEL Arch Linux
            LINUX ../vmlinuz-linux
            APPEND root=UUID=xxxxx-xxxx-xxxxxx-xxxxxx resume=/dev/disk/by-uuid/xxxxx-xxxx-xxxxxx-xxxxxx rw
            INITRD ../initramfs-linux.img

Ou, en passant par les `/dev/sdXN` (déconseillé):

            APPEND root=/dev/sda2 resume=/dev/sda5 rw

### Chaînage

#### Chaîner Windows (Dual Boot)

Pour démarrer d'autres systèmes d'exploitation (comme Windows) ou des chargeurs d'amorce, il suffit de les chaîner depuis Syslinux.

#### Syslinux et Windows sur un même disque

Attention: Dans le cadre d'une installation BIOS et d'un Windows 10 cette solution est à éviter (Windows sera susceptible d'offrir des mises à jour impactant le chargeur de démarrage et ne pourra donc pas se mettre correctement à jour sans restauration du chargeur initial). Pour s'éviter des manipulations complexes, mieux vaut installer Arch et syslinux sur un disque séparé et démarrer de celui-ci, cf. #Syslinux et Windows sur des disques différents.

Vérifiez que le module `chain.c32` se trouve bien dans le répertoire syslinux `/boot/syslinux/`, copiez-le au besoin depuis `/usr/lib/syslinux/chain.c32`. Puis rajoutez ou décommentez dans le fichier de configuration syslinux.cfg :

    LABEL windows
           MENU LABEL Windows
           COM32 chain.c32
           APPEND hd0 2

`hd0 2` est la seconde partition du premier disque. Les disques sont numérotés à partir de 0, tandis que que les partitions sont comptées depuis 1.

#### Syslinux et Windows sur des disques différents

Si Windows est installé sur un disque différent, il faut avoir recours à l'identifiant de ce disque et à l'option swap (Windows aime penser qu'il est sur le disque principal quand bien même vous démarreriez sur celui qui amorce syslinux).

L'identifiant peut être obtenu via `fdisk`:

    fdisk -l

    Disque /dev/sda : 931,5 GiB, 1000204886016 octets, 1953525168 secteurs
    Unités : secteur de 1 × 512 = 512 octets
    Taille de secteur (logique / physique) : 512 octets / 512 octets
    taille d'E/S (minimale / optimale) : 512 octets / 512 octets
    Type d'étiquette de disque : dos
    Identifiant de disque : 0x5bc53d8b

    Périphérique Amorçage    Début        Fin   Secteurs Taille Id Type
    /dev/sda1    *              63     160649     160587  78,4M  6 FAT16
    /dev/sda2               161792   20318207   20156416   9,6G  7 HPFS/NTFS/exFAT
    /dev/sda3             20318208 1953519615 1933201408 921,8G  7 HPFS/NTFS/exFAT

    Disque /dev/sdb : 931,5 GiB, 1000204886016 octets, 1953525168 secteurs
    Unités : secteur de 1 × 512 = 512 octets
    Taille de secteur (logique / physique) : 512 octets / 4096 octets
    taille d'E/S (minimale / optimale) : 4096 octets / 4096 octets
    Type d'étiquette de disque : dos
    Identifiant de disque : 0x8f151249

    Périphérique Amorçage    Début        Fin   Secteurs Taille Id Type
    /dev/sdb1    *            2048     124927     122880    60M 83 Linux
    /dev/sdb2               124928   16508927   16384000   7,8G 82 partition d'échange Linux / Solaris
    /dev/sdb3             16508928   57468927   40960000  19,5G 83 Linux
    /dev/sdb4             57468928 1953523711 1896054784 904,1G  5 Étendue
    /dev/sdb5             57470976   82046975   24576000  11,7G 83 Linux
    /dev/sdb6             82049024 1953523711 1871474688 892,4G 83 Linux

Dans cet exemple, mon pc démarre sur le disque sdb qui contient Arch et syslinux. Windows étant installé sur sda (qui contient le mbr de Windows).

Pour chaîner directement le secteur d'amorçage de mon premier disque afin de démarrer Windows depuis syslinux, l'entrée dans le `/boot/syslinux/syslinux.cfg` devient donc:

    LABEL windows
            MENU LABEL Windows 10 (sda)
            COM32 chain.c32
            APPEND mbr:0x5bc53d8b swap

#### Chaîner GNU Linux

Syslinux ne peut que charger des fichiers qui résident sur la même partition que le fichier de configuration `syslinux.cfg` ou des chargeurs d'amorces, tels que celui de Windows. Par conséquent, si vous avez une autre version de Linux sur une partition boot séparée (c'est-à-dire que vous n'avez pas un /boot qui serait partagé avec Arch), démarrer les autres systèmes peut se faire au moyen de extlinux. `extlinux` peut être installé sur le secteur d'amorçage d'une partition et être appelé comme un chargeur de démarrage distinct du MBR dévolu à syslinux.

Note: Extlinux fait partie du projet syslinux et est inclu dans le paquetage syslinux.

Pour la suite et comme exemple, on va supposer que le Linux que l'on souhaite démarrer a un /boot séparé sur sda2 (sa racine sur sda3) et que syslinux est installé et configuré côté Arch pour démarrer correctement.

##### Côté de l'autre système: installer extlinux

Depuis Arch, on va monter la partition boot du Linux à chaîner:

    mount /dev/sda2 /mnt

S'il n'existe pas de répertoire `extlinux` (ou `syslinux`), le créer:

    mkdir -p /mnt/extlinux

Pour installer `extlinux` sur le secteur d'amorçage de la partition:

    extlinux -i /mnt/extlinux

Pensez à copier les modules nécessaires pour le chaînage et le menu:

    cp /usr/lib/syslinux/{chain,menu,libutil}.c32 /mnt/extlinux

Finalement, il reste à créer et remplir correctement un `extlinux.conf` (ou `syslinux.cfg`) pour ce démarrage:

    /mnt/extlinux/extlinux.conf

    timeout 10

    ui menu.c32

    label Autre Linux
        linux ../vmlinuz
        append root=/dev/sda3 rw quiet
        initrd ../initramfs.img

Note: Les noms des images sont bien sûr fonction de votre distribution.
Note: On peut indifféremment employer le nom de répertoire `syslinux` plutôt que `extlinux` et `syslinux.cfg` plutôt que `extlinux.conf`.
Astuce: On peut réaliser un chaînage «arrière» de façon à revenir sur le menu principal, celui d'Arch, en rajoutant une entrée :

    label Retour
       com32 chain.c32
       append hd0 0

##### Côté Arch: rajouter l'entrée au menu principal

Pour pouvoir démarrer sur l'autre système, il ne reste plus qu'à rajouter dans le `syslinux.cfg` d'Arch:

    /boot/syslinux/syslinux.cfg

    label Autre Linux
         com32 chain.c32
         append hd0 2

### Changer la disposition du clavier

Il est possible de changer la disposition du clavier dans syslinux (par défaut: qwerty US). Cela peut être plus confortable, surtout si vous éditez souvent les paramètres de boot.

Par exemple pour passer en azerty:

    keytab-lilo -p 60=46 -p 92=60 -p 124=62 /usr/share/kbd/keymaps/i386/qwerty/us.map.gz /usr/share/kbd/keymaps/i386/azerty/fr-pc.map.gz > /boot/syslinux/fr-pc.ktl

Note: Pour information, l'option `-p` permet de corriger la table des touches obtenues:

- `-p 60=46` permet d'obtenir correctement le point avec `Shift`+`;`;
- `-p 92=60` pour l'opérateur de comparaison «inférieur à» avec `<`;
- `-p 124=62` pour la comparaison «supérieur à» avec `Shift`+`<`.

Et pour passer en bépo :

    keytab-lilo -p 2=91 -p 3=93 -p 121=94 -p 119=124 -p 116=92 -p 87=126 -p 95=95 /usr/share/kbd/keymaps/i386/qwerty/us.map.gz /usr/share/kbd/keymaps/i386/azerty/fr-bepo.kmap > /boot/syslinux/fr-pc.ktl

Note: Ce qui nous donne les combinaisons suivantes :

« -> [

» -> ]

° -> _

é ->
Note: Il n'est pas possible d'obtenir correctement le rendu des caractères ASCII étendu (accents et autres).
Attention: (en attente de correction) N'utilisez pas `fr-latin9.map.gz` car certaines touches (comme Entrée) ne fonctionneront pas dans le menu syslinux.

Vous devez maintenant éditer le fichier `/boot/syslinux/syslinux.cfg` et sélectionner le fichier correspondant:

    /boot/syslinux/syslinux.cfg

    # You can create syslinux keymaps with the keytab-lilo tool
    KBDMAP fr-pc.ktl

Vous pouvez maintenant redémarrer et tester!

#### Plusieurs dispositions de clavier dans le menu

Il est possible de charger à la volée différentes dispositions de clavier lors de l'édition du menu au démarrage.

Pour cela, rajoutez les fichiers .ktl qui vous intéressent dans `/boot/syslinux/` ainsi que le module `kbdmap.c32`:

    cp /usr/lib/syslinux/kbdmap.c32 /boot/syslinux/

Et rajoutez les entrées qui vous intéressent au `/boot/syslinux/syslinux.conf`:

    /boot/syslinux/syslinux.cfg

    label fr
      menu label French azerty keyboard (fr-pc)
      kernel kbdmap.c32
      append fr-pc.ktl

    label us
      menu label US qwerty keyboard (us)
      kernel kbdmap.c32
      append us.ktl

Sélectionnez l'une ou l'autre des entrées rechargera le menu avec la nouvelle disposition clavier.

## Sécurité

Il est possible de protéger syslinux par mot de passe, empêchant ainsi de lancer certaines entrées ou d'en modifier les options (particulièrement conseillé si vous partagez votre ordinateur, en voyage, etc., en complément de la sécurité que peut vous apporter certaines options du BIOS).

Pour chiffrer vos mots de passe, vous pouvez utiliser `sha1pass` ou `md5pass`. Il vous faudra installer perl-digest-sha1 pour SHA1 et perl-passwd-md5[broken link: replaced by perl-crypt-passwdmd5] pour MD5.

    # sha1pass unMinableMotDePasse

    $4$SsPfW+f9$kgRHCz5PuRI38XQLj4DXxzPnHFM$

Attention: Par défaut, Syslinux ne connaît que la disposition QWERTY (us). Attention donc à bien utiliser la bonne disposition clavier sous syslinux ou à repasser temporairement votre console en disposition us (`loadkeys us`) pour saisir votre mot de passe !
Attention: En aucun cas, votre syslinux.cfg ne devrait abriter vos mots de passe en clair (ce fichier étant par défaut lisible par tous). Pour cette même raison, bien qu'il soit possible d'utiliser directement un mot de passe en clair, ne le faites pas: chiffrez.

### Mot de passe principal

Le mot de passe principal sera demandé pour accèder au prompt `boot:` via `ESC` et aux modifications d'options, via `TAB`.

    # sha1pass unMinableMotDePasse

    $4$yUuRv4ZL$SPfdgOaiDWW9RcgwsHr3saQVKLk$

    /boot/syslinux/syslinux.cfg

     MENU MASTER PASSWD $4$yUuRv4ZL$SPfdgOaiDWW9RcgwsHr3saQVKLk$

Attention: Si votre BIOS est protégé également par mot de passe avec désactivation des périphériques de démarrage (lecteur cd, USB...) ne perdez pas votre mot de passe principal de Syslinux sans quoi la récupération d'un système peut devenir... particulièrement délicate.

### Protection d'une entrée spécifique

Il suffit de rajouter l'instruction `MENU PASSWD passwd` après un LABEL donné ou un MENU BEGIN pour protéger un sous-menu complet. Par exemple:

    # sha1pass unAutreMotDePasseMinable

    $4$TPhj+74U$eFdv+BZprSzx9ZSeaY/Q96gOAJ8$

    /boot/syslinux/syslinux.cfg

    LABEL arch
            MENU PASSWD $4$TPhj+74U$eFdv+BZprSzx9ZSeaY/Q96gOAJ8$
            MENU LABEL Arch Linux
            LINUX ../vmlinuz-linux
            APPEND root=UUID=8887210b-72d3-4899-99f7-3f39ea0a0eeb rw
            INITRD ../initramfs-linux.img

Le mot de passe vous sera demandé pour lancer l'entrée protégée.

Pour que ça serve à quelque chose, il vous faudra également désactiver ou protéger les accès au prompt et aux modifications d'options:

- soit en rajoutant à votre `syslinux.cfg`:

    NOESCAPE 1
    PROMPT 0
    ALLOWOPTIONS 0

- soit en utilisant un mot de passe principal (voir précédemment). Dans ce cas, le mot de passe principal fonctionne également.

## Dépannage

### Windows démarre toujours, ignorant Syslinux

Vérifiez bien que la partition abritant `/boot/syslinux` dispose du flag `boot` en lien et place de la partition windows.

Si vous avez installé une version de Windows après linux, votre ordinateur ne démarrera plus que sous celui-ci. Pour récupérer syslinux au démarrage, chrootez depuis un live CD linux (celui d'Archlinux par exemple) et relancez `syslinux-install_update -i -a -m`.

Category:

- Boot loaders (Français)

Hidden categories:

- Pages with broken section links
- Pages with broken package links