13.3. Rendre le système CLFS démarrable

Votre tout nouveau système CLFS est presque terminé. L'une des dernières étapes est de vous assurer que vous pouvez démarrer. Les instructions ci-dessous ne s'appliquent qu'aux Macintoshs NewWorld.

Le démarrage est un domaine qui peut s'avérer complexe, donc quelques conseils de prudence s'imposent. Familiarisez-vous avec le chargeur d'amorçage actuel et tous les systèmes d'exploitation présents sur les disques qui devront être démarrables. Assurez-vous qu'un CD de secours est prêt à « réparer » l'ordinateur s'il devient impossible de le démarrer. C'est aussi une bonne idée d'activer le démarrage depuis Open Firmware s'il se passe quelque chose de vraiment mauvais.

Plus tôt, nous avons compilé et installé le chargeur d'amorçage yaboot en prévision de cette étape. La procédure consiste à écrire le bootloader sur une partition bootstrap et la rendre démarrable pour qu'Open Firmware démarre dessus. Tout est géré par la commande ybin, l'installateur de yaboot.

Ybin écrit une menu de sélection de l'OS facultatif dans l'Open Firmware, puis écrit yaboot et son yaboot.conf dans la partition de bootstrap, l'active et met à jour le disque de démarrage dans la nvram. Au démarrage, l'OF fournit le menu initial pour choisir entre Linux, un CD et par exemple OSX (en fonction de ce qui se trouve dans yaboot.conf). Si vous démarrez « Linux », yaboot est exécuté et vous laissera choisir le noyau à utiliser.

Les images (noyaux) sont spécifiés, avec le chemin nécessaire, dans yaboot.conf — les détails sont inclus dans le chargeur d'amorçage, mais rien n'est fait pour accéder ou valider les chemin jusqu'à leur sélection. Il y a plusieurs options possibles qui peuvent être spécifiées dans yaboot.conf, regardez les pages de manuel pour plus de détails. La plupart des gens pourront spécifier device=hd: (pour un seul disque), mais si vous avez plus de disques, ou si vous êtes pointilleux, vous pouvez spécifier le chemin OF complet vers le disque, qu'on peut obtenir en lançant ofpath /dev/hdX.

Avec les informations ci-dessus, déterminez les désignations appropriées pour la partition de bootstrap et la partition racine. Dans l'exemple suivant, nous supposerons que la partition de bootstrap est hda2 et que la partition racine est hda7. Nous supposerons aussi que vous souhaitez démarrer un système OSX sur hda4. Changez ces valeurs comme nécessaire pour votre machine.

Si votre machine a un disque SATA, spécifiez les partition avec /dev/sda7 etc, comme d'habitude. Certaines distributions spécifient le chemin OF complet vers le disque et les images, comme par exemple device=/ht@0,f2000000/pci@3/k2-sata-root@c/k2-sata@0/disk@0: pour le disque et image=/ht@0,f2000000/pci@3/k2-sata-root@c/k2-sata@0/disk@0:9,/boot/clfskernel-4.9 ce qui fonctionne toujours.

Créez un fichier « yaboot.conf » pour définir le menu de démarrage de yaboot :

cat > /etc/yaboot.conf << "EOF"
# Begin /etc/yaboot.conf

# By default, yaboot will boot the first menu entry.

# Allow 10 seconds before booting the default.
# this will also apply to the first-stage os selector
timeout=100

# These variables are global
# first, where to put the bootstrap partition
boot=/dev/hda2

# Which disk to use
device=hd:

# Default partition for the kernel images
partition=7

# default root partition
root=/dev/hda7

# where ybin is to find yaboot and ofboot
install=/usr/lib/yaboot/yaboot
magicboot=/usr/lib/yaboot/ofboot

# allow the initial menu to offer CD as an option
enablecdboot

# allow the initial menu to offer booting from Open Firmware
enableofboot

# allow the initial menu to boot from mac osx
macosx=/dev/hda4

# white on black is boring!
# note  the spellings : 'fgcolor' but 'light'
# in this context, light means 'without high intensity'
fgcolor=light-green

# The first entry is for CLFS.
# For all images, the pathname is relative to the filesystem
# on which they are situated and can include at most one
# directory
image=/boot/clfskernel-4.9.21
    label=GIT-20170803
    read-only
EOF

Ajoutez une entrée pour la distribution hôte si vous en avez une. Cela peut ressembler à cela si le noyau et l'initrd sont dans le répertoire « / » sur hda6 :

cat >> /etc/yaboot.conf << "EOF"
title Debian
image=/pci@f4000000/ata-6d/disk@0:6,/vmlinux
    label=Debian
    initrd=/pci@f4000000/ata-6d/disk@0:6,/initrd.gz
    initrd-size=10000
    append="root=/dev/hda7"
    read-only
EOF
[Avertissement]

Avertissement

La commande suivante mettra à jour la partition bootstrap et la variable de démarrage dans l'Open Firmware. Ne lancez pas la commande si ce n'est pas souhaitable.

ybin

Autrement, si la partition de bootstrap n'a pas déjà été initialisée, peut-être parce que vous utilisez un Live CD, vous devrez utiliser une autre commande pour installer le chargeur d'amorçage pour la première fois :

mkofboot