2.4. Création d'une nouvelle partition

Comme la plupart des autres systèmes d'exploitation, LFS est habituellement installé sur une partition dédiée. Pour construire un système LFS, il est recommandé d'utiliser une partition vide disponible ou d'en créer une, si vous avez assez d'espace non partitionné.

Un système minimal requiert une partition d'environ 10 Go. Cet espace est suffisant pour conserver toutes les archives tar des sources et pour compiler tous les paquets. Néanmoins, si le système LFS a pour but d'être un système Linux primaire, des logiciels additionnels seront probablement installés et nécessiteront de l’espace supplémentaire. Une partition de 30 Go devrait suffire à garantir l’espace nécessaire à cette opération. Le système LFS en lui-même ne prendra pas tout cet espace. Une grande partie de cet espace servira à prévoir suffisamment d’espace temporaire libre ainsi qu’à accueillir des fonctionnalités supplémentaires une fois LFS terminé. De plus, la compilation des paquets peut demander beaucoup d'espace disque, qui sera récupéré après l'installation du paquet.

Parce qu'il n'y a pas toujours assez de mémoire vive (RAM) disponible pour les processus de compilation, il est conseillé d'utiliser une petite partition comme espace d'échange swap. Le noyau utilise cet espace pour stocker des données rarement utilisées et pour laisser plus de mémoire aux processus actifs. Il se peut que la partition swap pour un système LFS soit la même que celle utilisée par le système hôte, auquel cas il n'est pas nécessaire de créer une autre partition si votre système hôte possède déjà cette configuration.

Lancez un programme de partitionnement de disques, tel que cfdisk ou fdisk avec une option en ligne de commande nommant le disque dur sur lequel la nouvelle partition sera créée. Par exemple, on utilisera /dev/sda pour le disque primaire. Créez une partition Linux native et, si nécessaire, une partition swap. Référez-vous au manuel de cfdisk(8) ou de fdisk(8) si vous ne savez pas encore utiliser les programmes.

[Note]

Note

Pour les utilisateurs expérimentés, il est possible d'utiliser d'autres méthodes de partitionnement. Le nouveau système LFS peut être installé sur un logiciel RAID ou sur un volume logique LVM. Par contre, certaines options exigent un initramfs, qui concerne un sujet plus avancé. Ces méthodes de partitionnement ne sont pas recommandées pour les utilisateurs novices de LFS.

Retenez bien la désignation de la nouvelle partition (par exemple sda5). Elle sera référencée dans ce livre comme partition LFS. Gardez également en mémoire la désignation de la partition swap. Ces noms vous seront utiles pour le fichier /etc/fstab.

2.4.1. Autres problèmes liés au partitionnement

Les demandes de conseils par rapport au partitionnement du système sont souvent postées sur les listes de diffusion LFS. Ce sujet est très subjectif. Par défaut, la plupart des distributions utilisent le disque entier, sauf une petite partie réservée à la partition d'échange. Cette solution n'est pas optimale pour LFS, et ce pour plusieurs raisons. Cela réduit la flexibilité, complique le partage de données entre plusieurs distributions ou constructions LFS et allonge le temps de sauvegarde. Cela peut également faire perdre de l'espace disque à cause d’une allocation inefficace des structures de fichiers.

2.4.1.1. La partition racine

Une partition racine LFS (à ne pas confondre avec le répertoire /root), de 20 Go est un bon compromis pour la plupart des systèmes. Elle fournit assez d’espace pour construire LFS et une grande partie de BLFS, tout en étant assez petit pour que plusieurs partitions puissent être créées facilement à des fins expérimentales.

2.4.1.2. La partition d'échange (swap)

La plupart des distributions créent automatiquement une partition d'échange. En général, la taille recommandée pour une partition d'échange est à peu près deux fois supérieure à la taille de la RAM physique, bien que ce soit rarement nécessaire. Si votre espace disque est limité, laissez la partition d'échange à 2 Go et surveillez l'utilisation de la mémoire d'échange sur le disque.

Si vous voulez utiliser le mode hibernation (veille sur disque) de Linux, il transfère le contenu de la RAM vers la partition d'échange avant d'éteindre la machine. Dans ce cas, la partition d'échange doit être au moins aussi grande que la RAM installée sur le système.

L'utilisation de la mémoire d'échange n'est jamais une bonne chose. Avec un disque dur mécanique, vous pouvez déterminer si un système utilise la mémoire d'échange simplement en écoutant l'activité du disque et en observant la façon dont le système réagit aux commandes. Vous ne pourrez pas l'entendre utiliser l'espace d'échange avec un disque SSD, mais vous pouvez savoir combien d'espace d'échange est utilisé avec les programmes top et free. Si possible, vous devez éviter d'utiliser une partition d'échange sur un disque SSD. Lorsque la mémoire d’échange est utilisée, vous devez en premier lieu vérifier si l’une des commandes n'est pas insensée, comme par exemple l’édition d’un fichier de 5 Go. Si l'utilisation de la mémoire d'échange devient un phénomène habituel, la meilleure solution est d'ajouter de la mémoire RAM à votre système.

2.4.1.3. La partition BIOS de Grub

Si le disque de démarrage est partitionné avec une table de partition GUID (GPT), alors une petite partition de l’ordre d’1 Mo doit être créée, si le système démarre avec le BIOS et si elle n’existe pas déjà. Cette partition n’est pas formatée, mais doit être disponible pour que GRUB l’utilise pendant l’installation du chargeur d’amorçage. Cette partition sera normalement intitulée « BIOS Boot » si vous utilisez fdisk ou aura le code EF02 avec gdisk.

Si le disque de démarrage est partitionné avec une table de partition MBR ou une étiquette de disque DOS, alors cette partition n'est pas requise car il existe déjà un espace avant la première partition que Grub peut utiliser.

[Note]

Note

La partition BIOS de Grub doit se trouver sur le disque que le BIOS utilise pour démarrer le système. Il ne s’agit pas nécessairement du même disque que celui sur lequel la partition racine de LFS est installée. Les disques d’un système peuvent utiliser des types de tables de partitionnement différents. Seul le type de table de partitionnement du disque de démarrage détermine si cette partition est nécessaire ou non.

2.4.1.4. La partition système EFI

Cette partition, également connue sous le nom d'ESP, est requise pour démarrer le système avec UEFI. Elle stocke l'application EFI qui est exécutée pendant le démarrage. Le disque de démarrage peut être partitionné avec une table de partitions MBR ou DOS, mais des problèmes de compatibilité ont tendance à apparaître avec ces options. Ainsi, il vaut toujours mieux partitionner le disque de démarrage avec une table de partitions GUID (GPT). Si vous ne démarrez que LFS depuis cette partition, 20 Mo ou moins peuvent suffire. La partition devrait être plus grande que l'image EFI car GRUB ajoute beaucoup de données dans cette partition avant de créer l'image EFI. Pour être serein, 128 Mo à 256 Mo sont recommandés, mais vous pouvez baisser cela à bien plus bas avec un peu de tâtonnement. L'étiquette de la partition devrait être « EFI System » si vous utilisez fdisk.

Pour Grub, la partition système EFI (ESP) devrait se trouver sur /boot/efi.

Beaucoup de systèmes UEFI ont un mode de compatibilité (CSM) ou une option de démarrage traditionnel (Legacy), ce qui permet de démarrer en mode BIOS. Vous pourriez créer une partition BIOS Grub si votre système prend en charge CSM au cas où le démarrage UEFI ne fonctionne pas correctement.

2.4.1.5. Partitions de commodité

Il existe d’autres partitions qui ne sont pas indispensables, mais que vous devez envisager lorsque vous aménagez un disque dur. La liste suivante n’est pas exhaustive mais a été conçue pour vous guider.

  • /boot – Fortement recommandée. Utilisez cette partition pour stocker les noyaux et d'autres informations de démarrage. Pour limiter les risques de problèmes de démarrage avec les disques volumineux, faites-en la première partition physique sur votre premier disque dur. Une taille de partition de 200 mégaoctets est parfaitement adaptée.

  • /home – Fortement recommandée. Partage votre répertoire home et vos paramètres utilisateur entre plusieurs distributions ou constructions de LFS. La taille est généralement assez importante et dépend de l'espace disque disponible.

  • /usr – Dans LFS, /bin, /lib et /sbin sont des liens symboliques vers leurs équivalents dans /usr. Le dossier /usr contient tous les binaires nécessaires à l’exécution du système. Dans LFS, une partition séparée pour /usr n'est généralement pas requise. Si vous souhaitez quand même en créer une, vous devrez faire en sorte qu’elle soit assez grande pour contenir tous les programmes et bibliothèques du système. La partition racine de cette configuration peut être très petite (par exemple seulement un gigaoctet). Elle est donc parfaitement adaptée à un client léger ou une station de travail sans disque (où /usr est monté depuis un serveur distant). Cependant, il faut savoir que vous aurez besoin d’un initramfs (dont la construction n’est pas évoquée dans LFS) pour démarrer le système avec une partition /usr séparée.

  • /opt – Ce répertoire est surtout utile pour BLFS, où vous pouvez installer plusieurs versions de paquets volumineux tels que KDE ou Texlive sans incorporer les fichiers dans la hiérarchie /usr. Si vous l'utilisez, un espace de 5 à 10 gigaoctets est généralement adapté.

  • /tmp – systemd monte par défaut un tmpfs à cet emplacement. Vous pouvez redéfinir ce comportement en suivant Section 9.10.3, « Désactiver tmpfs pour /tmp » lors de la configuration du système LFS.

  • /usr/src – Cette partition est très utile pour assurer un emplacement de stockage des fichiers source de BLFS et les partager entre les constructions LFS. Vous pouvez aussi l'utiliser comme un espace de construction des paquets BLFS. Une partition entre 30 et 50 gigaoctets offre suffisamment d’espace.

Vous devez spécifier toute partition que vous voulez monter automatiquement au démarrage dans /etc/fstab. La spécification des partitions sera expliquée en détails dans le Section 10.2, « Créer le fichier /etc/fstab ».

2.4.2. Exemple de disposition de disque

Voici un exemple de disposition pour un disque vide.

Numéro Début (secteur)    Fin (secteur)         Taille   Code  Nom
   1              2048            22527       10.0 Mio  EF00  EFI system partition
   2             22528            24575     1024.0 Kio  EF02  BIOS boot partition
   3             24576          1048575      500.0 Mio  8300  /boot
   4           1048576          5242879        2.0 Gio  8200  swap
   5           5242880         89128959       40.0 Gio  8300  lfs13.0+
   6          89128960        173015039       40.0 Gio  8300  /home

L'exemple ci-dessus fait plusieurs hypothèses :

  • La table de partition est une table de partitions GUID (GPT).

  • Les partitions de démarrage EFI et BIOS sont toutes les deux présentes, bien qu'une seule soit utilisée. Celle qui sera utilisée dépend du BIOS du système. Si le système est ancien, il ne pourra pas faire d'UEFI du tout. Des systèmes plus récents peuvent désactiver UEFI à travers le BIOS en désactivant le démarrage sécurité (« Secure Boot ») et en activant l'ancien mode (« Legacy Support ») ou le mode de compatibilité (« CSM » ou « Compatibility Support Mode »). Si vous savez déjà quel mode vous allez utiliser, l'autre partition peut être omise.

  • La partition EFI doit être formatée en VFAT.

  • La partition BIOS n'est pas formatée.

  • La partition swap doit être formatée en swap.

  • La partition /boot peut être formatée en ext2 car on écrit rarement dedans (et encore, uniquement par root), et n'a pas besoin d'un journal.

  • Il est recommandé d'utiliser ext4 pour toutes les autres partitions.

  • Une autre partition peut être ajouter pour installer le système « hôte » pour la construction de LFS. Une petite partition de 10 Gio devrait suffire. Si vous construisez le système à partir d'un LiveCD, la partition hôte n'est pas requise.