Ceci est une ancienne révision du document !
Contexte
Ce tutoriel n’est pas une redite de celui-ci
Il acte le fait que ubuntu est actuellement fourni en version 22.04 (Jammy Jellyfish) généralement installé en EFI, que les "alternates CD" ne sont plus disponibles, que la version en mode serveur n'est pas intuitive, que l'assistance pour une installation standard par la méthode "autre chose" est régulièrement présente dans le forum et que l'alternative ZFS n'est pas crédible. Elle ne propose que l'installation dans un seul disque.
Il pourra être utilisé pour remplacer une installation périmée.
Le but est de faire une installation du logiciel et de la structure de boot sur les disques RAIDS alors que souvent la structure de boot est installée sur une clé USB. L'installation sera compatible LEGACY/EFI et permettra le chiffrement.
Les tests de réalisation RAID5 ont été fait sur seul disque simulant cinq disques différents et en RAID1 sur deux disques.
Acquisition du logiciel
Télécharger la version standard de Ubuntu et fabriquer un support d'installation ou acheter un tel support.
N'hésitez pas à perdre un peu de temps pour installer une structure persistance lorsque cela est (deviendra) possible.
Travail préparatoire
Booter avec la clé USB, sélectionner l'ISO à installer dans la liste proposée, choisir la méthode persistante si disponible.
Patienter le temps nécessaire pour l'affichage de l'écran d'installation. Positionner la langue d'installation si pas le français puis cliquer sur le menu Essayer ubuntu.
Le premier but est de préparer chaque disque avec la structure suivante:
- Table de partition GPT
- Partition Bios_boot dont la taille officielle est de 32 MO alors de 1 Mo pourrait probablement suffire.
- Partition de boot EFI en FAT32 dont la taille officielle est de 512 MO alors que 36 Mo pourrait probablement suffire. Il serait même possible de faire une partition de boot EFI en FAT16 de 6 Mo.
- Partition de boot LEGACY en EXT4. La taille retenue est de 1 Go. Il semblerait que la taille officielle soit de 1,5 Go. Cependant les exemples montrent que 500 Mo est parfois implémenté.
- Partition EXT4 avec le reste de l'espace disque. Cette partition contiendra le logiciel et les données.
Cela peut se faire en mode graphique avec l'application GParted préinstallée ou en ligne de commande après avoir ouvert un terminal. Faire attention à ne pas mettre le support d'installation (souvent SDA) dans la liste des disques à utiliser.
Liste=" sde " # Mettre la totalité des disques à formater.
for Dsk in $Liste;do sudo parted /dev/$Dsk mklabel gpt # Fabriquer une table de partition GPT en éliminant tout ce qu'il y a dans le disque. Accepter la destruction des données du disque sudo parted -s --align=none /dev/$Dsk mkpart "Bios$Dsk" 34s $((32*2048-1))s # Créer une partition bios-boot sudo parted /dev/$Dsk set 1 bios_grub on # et y mettre le drapeau bios_grub sudo parted -s --align=none /dev/$Dsk mkpart "Fat$Dsk" 32MiB $(((32+512)*2048-1))s # Créer une partition de 512 Mio. sleep 2 # attendre la mise à jour effective. sudo mkfs.fat -F32 /dev/"$Dsk"2 -n "$Dsk"Fat # La formater. sudo parted /dev/$Dsk set 2 esp on # et y mettre le drapeau ESP. sudo parted -s --align=none /dev/$Dsk mkpart "Boot$Dsk" $((32+512))MiB $(((32+512+1024)*2048-1))s # et une autre partition pour la partition de boot-légacy sleep 2 # attendre la mise à jour effective. sudo mkfs.ext4 /dev/"$Dsk"3 -L "$Dsk"Boot # La formater. sudo parted -s --align=none /dev/$Dsk mkpart "Raid$Dsk" $((32+512+1024))MiB 100% # et une autre partition pour le RAID inutile à formater avec le reste de l'espace disque. done
Nota : Si les disques ne sont pas de la même taille ( à 1% près), remplacer 100% par la taille du plus petit disque exprimée en Mio ou GiB.
Le second but va être de fabriquer la structure. Il est nécessaire d’installer le logiciel mdadm non fourni en vue de créer le RAIDS avec les partitions qui viennent d’être créées. Tout cela se fait en ligne de commande telle que celle-ci à adapter.
sudo apt install mdadm sudo mdadm --create /dev/md0 --level=L --assume-clean --raid-devices=N /dev/sd[b-g]4 sudo mkfs.ext4 /dev/md0
Quelques remarques : L est le niveau de raids. Avec utilisation de deux disques, la seule valeur possible est 1 et donne un espace réel d’un disque. Avec utilisation de trois disques ou plus, la valeur 1 donne un disque de secours en attente de panne, la valeur 5 permet de fonctionner normalement et donne un espace réel égal au nombre de disques moins un. A partir de quatre disques, il est possible de choisir la valeur 6 qui permet d’avoir un disque de secours en attente de panne. L’espace réel est alors égal au nombre de disque moins deux. N est le nombre de partitions présentes dans la liste qui suit. La liste est à fournir. Notons l’abréviation permettant de dire : Toutes les partitions n°4 de tous les disques dont la lettre de fin est dans la plage commençant à b et finissant à g.
Installation
Le moment est maintenant venu de lancer l’installation en cliquant sur l'icône d'installation ou en frappant la commande
sudo ubiquity
.
- Cliquer sur Effacer le disque et installer Ubuntu.
- Cliquer sur Fonctions avancées.
- Cocher la case Utiliser LVM pour la nouvelle installation de Ubuntu.
- Surtout cocher la case Chiffrer la nouvelle installation de Ubuntu pour la sécurité. Cependant vous pouvez ne pas utiliser cette protection.
- Cliquer sur OK pour valider.
- Cliquer sur Continuer.
- Réaliser l’étape de la clé de sécurité bien que son utilisation en mode dépannage ne soit pas encore bien documentée.
- Puis cliquer sur installer maintenant.
Puis installation classique.
Au bout de plusieurs minutes, ce qui va être fait est affiché. Contrôler. Cliquer sur Continuer. L’installation est classique sauf que le logiciel d’installation va planter au moment d’installer le grub dans /dev/md0. Inutile de prévenir. A la fin de l’installation on va dire de "continuer à tester" afin de réparer . On va se déporter dans l’installation raids pour installer le grub défaillant.
installation du grub
Le répertoire /target contient la nouvelle installation qu’elle soit chiffrée ou pas. Passons en administrateur.
sudo -i
- Vérification facultative.
lsblk ## permet de faire le point et vérifier le montage de /target
En cas de relance, il est nécessaire de réallouer le logiciel au point de montage avec cette commande si l'installation est faite avec le choix "disque entier".
mkdir -v /target ; mount -v /dev/mapper/vgubuntu-root /target
ou celle-ci si l'installation est faite avec le choix "autre chose".
mkdir -v /target ; mount -v /dev/md0 /target
- puis procéder au chroot
mount -t proc /proc /target/proc mount -t sysfs /sys /target/sys mount --bind /dev /target/dev mount --bind /run /target/run mount --bind /sys /target/sys modprobe efivars ### pas gênant si l’ordinateur n’est pas EFI chroot /target
- Puis faisons le nécessaire: Remettre toute la liste des disques afin d'installer les logiciels de boot dans les partitions préparées car la variable est perdue au changement de niveau
Liste=" sde " # remettre la totalité des disques devant recevoir la structure de boot.
df -h ## afin de vérifier que le chroot est bien fait, mount -t devpts devpts /dev/pts apt install mdadm ## car ce logiciel n’a pas été installé. mkdir -pv /boot/efi for Dsk in $Liste;do parted /dev/$Dsk set 1 bios_grub on mount -v /dev/"$Dsk"3 /boot mount -v /dev/"$Dsk"2 /boot/efi if [ -d /sys/firmware/efi ]; then grub-install --target=x86-64-efi ## --no—efi-secure-boot --no-nvram ## Il est souhaitable de ne pas mettre les options grub-install --target=i386-pc --directory=/usr/lib/grub/i386-pc --removable /dev/$Dsk else grub-install --target=x86_64-efi --no-nvram ## --no-uefi-secure-boot ## Il est souhaitable de ne pas interdire le mode sécurisé mais on ne peut pas installer le mode EFI dans la RAM d'un ordinateur qui ne connaît pas EFI. grub-install /dev/$Dsk fi umount -v /dev/"$Dsk"2 umount -v /dev/"$Dsk"3 done update-grub exit exit ##shutdown
Il ne reste plus qu’à rebooter. Mettre le logiciel à jour pour en profiter.
Annexes
Exemple de contenu du fichier de paramétrage EFI
cat grub.cfg search.fs_uuid 68b4f4d1-a7e4-47af-9d97-cfcbdc582c3c root mduuid/cbfd98853a1735bb4d21cf68a51cd5cc set prefix=($root)'/boot/grub' configfile $prefix/grub.cfg
extraits de boot-info
=> Grub2 (v2.00) is installed in the MBR of /dev/sde and looks at sector 34 of the same hard drive for core.img. core.img is at this location and looks for (mduuid/aa68ea8a3f43280766489d724b6da16f)/boot/grub.,,,,, ===================== sde2/efi/ubuntu/grub.cfg (filtered) ====================== search.fs_uuid 6e07a36c-5671-49c3-b648-84c542ade426 root mduuid/aa68ea8a3f43280766489d724b6da16f set prefix=($root)'/boot/grub' configfile $prefix/grub.cfg
Quelques pièges.
Le boot avec un raid dégradé n'a pas été testé. Cependant le test de boot en raid-1 avec l'un quelconque des deux disques absent. fonctionne. Le disque est déclaré remove. Après le boot, il est nécessaire de réinjecter celui manquant.
Le boot avec un disque de mauvaise qualité peut nécessiter d'utiliser l'option "rootdelay=60".
Cette installation fabrique un raid nommé MD0 même s'il en existe déjà un de ce nom. Le boot va aussi planter en disant qu'il y a des doubles UUID pour un même MD0. L'un des deux raids sera à détruite ou à changer de nom.
Pourquoi cette double structure
Les disques peuvent être actuellement connectés à une carte mère fonctionnant en mode légacy. Le pari a été pris qu'en cas d'incident carte mère elle serait remplacée par une carte EFI. Il aurait alors fallu réinstaller le logiciel EFI dans la partition de boot LEGACY. Mais on ne doit pas être à 512 Mo près vu la taille des disques actuels. La question se pose pour une installation EFI. Il y a peu de chance que, plus tard, les disques fonctionnent en LEGACY. Mais sait-on jamais…
Cependant les commandes sont probablement suffisamment claires pour éliminer toute la partie LEGACY si elle n'est pas souhaitée. Cela permettra de gagner 1 Go dans la taille du RAID.