Problème Grub : installation debian 10 en RAID5

Bonjour à tous!

Je suis en train de faire l’installation d’un nouveau serveur avec la version de debian 10.

Je possède 6 disques dur de 1To que je souhaite mettre en RAID5 logiciel.
J’ai fait un montage avec 5 disque RAID5 et 1 disque de réserve RAID5.

Cela me fait un total de 4Go de disponible. Jusque là, tout va bien.

Finalement, toute l’installation fonctionne jusqu’à l’installation de Grub, ce qui fait que je n’arrive pas à booter debian ensuite…

Je ne suis donc pas sur d’avoir fait le montage RAID5 correctement ou le partitionnement, voilà ce que ça donne dans l’image ci-dessous :

2019-08-15_13h49_00

Avez-vous une idée de ce que je peux tester?

Merci pour votre aide!
Guillaume

Que se passe-t-il lors de l’installation de GRUB ?
Est-ce une installation en mode BIOS ou EFI ?
Si BIOS, quel emplacement as-tu sélectionné pour l’installation de GRUB ?
Quel est le format de table de partition des disques, DOS/MBR ou GPT ?

Une partition de type “BIOS boot” (biosgrub) ne sert à rien dans un ensemble RAID car le BIOS ne sait pas lire le RAID logiciel de Linux. Elle doit être créée directement sur chaque disque physique (pour permettre la redondance de l’amorçage) au format GPT. Elle n’est pas nécessaire et on ne peut pas la créer sur un disque au format DOS/MBR.

Et ne pas oublier qu’elle ne sert qu’avec un amorçage BIOS quand on spécifie le disque entier comme emplacement pour installer GRUB. Avec un amorçage EFI, il faut créer une partition système EFI, également directement sur chaque disque dur.

Merci pour la réponse!

J’ai le retour “Erreur fatale” dans l’installateur. Mais j’ai l’impression qu’il essai de me l’installer dans les disques RAID 1To et pas sur le disque 4To RAID logiciel…

J’ai pris le choix par défaut, tout est en GPT il me semble.

Pour EFI ou BIOS, je ne comprends pas bien la différence, il faut choisir quoi idéalement?

A quel moment je dois créer les partitions sur chaque disque dur, c’est pendant la création du RAID ou le partitionnement?

Je viens de re-tester quelques trucs, je n’ai pas le choix pour les disques RAID, lors de la création du RAID 5, il me fait une partition RAID 1To (comme sur la photo de mon premier post). Comment alors faire une partition de boot EFI sur chaque disque? Pourquoi est-ce que cela n’est pas automatique?

Il n’y a pas d’impression qui tienne. L’installateur essaie d’installer le chargeur d’amorçage à l’emplacement que tu as sélectionné. Je répète que GRUB ne peut pas être installé ailleurs que sur un disque physique car le BIOS ne gère pas le RAID de Linux.

Il vaudrait mieux être sûr. Si nécessaire, vérifier avec fdisk ou autre.
A ma connaissance, le partitionneur de l’installateur Debian utilise le format GPT par défaut seulement en mode EFI ou avec un disque de plus de 2 Tio. Or tes disques ne font qu’1 To. La taille de l’ensemble RAID logiciel est sans importance.

Il vaudrait mieux s’informer et comprendre avant de se lancer dans une installation, car le processus d’amorçage et les prérequis à l’installation de GRUB ne sont pas du tout les mêmes. L’amorçage BIOS a besoin d’un MBR sur un disque physique, et d’une partition BIOS boot directement sur celui-ci s’il est au format GPT. L’amorçage EFI a besoin d’une partition système EFI sur un disque physique.

Il n’y a pas de choix idéal. En pratique, ça dépend des possibilités et des limitations du firmware de la machine. Même si c’est l’avenir, j’aurais tendance à éviter l’EFI si possible à cause des trop nombreux bugs.

Pendant le partitionnement des disques évidemment. La création du RAID ne peut se faire qu’après que les partitions RAID ont été créées.

Ok, merci pour ce retour complet.

Mon problème est donc que je n’ai pas une partition spéciale sur tous mes disques RAID afin que Grub s’installe dessus. Il va falloir que je choisisse EFI ou BIOS ^^

Toutefois, petite question technique. Même si je prévois une partition sur tous mes disques, Grub ne va s’installer que sur un seul disque physique, non?

Dans ce cas, comment cela se passe lorsque ce disque en question est remplacé et que le RAID se reconstruit?

En mode BIOS, tu peux essayer de spécifier tous les disques /dev/sdX en même temps. Si l’installateur ne l’accepte pas, il sera possible de le faire après l’installation avec

dpkg-reconfigure grub-pc

De cette façon, le chargeur sera automatiquement réinstallé sur chaque disque en cas de mise à jour du paquet grub-pc. Autrement, on peut installer GRUB manuellement sur chaque disque avec

grub-install /dev/sdX

mais ces instances ne seront pas mises à jour en cas de mise à jour de grub-pc, il faudra le refaire manuellement.

En mode EFI, c’est plus pénible. On ne peut pas spécifier l’emplacement car il est implicite : la partition EFI montée sur /boot/efi. Et on ne peut monter qu’une partition à la fois sur /boot/EFI.

On peut monter les autres partitions EFI sur des répertoire /boot/efiN par exemple et y installer GRUB avec

grub-install --efi-directory=/boot/efiN

Mais il y a encore un problème : cela remplace à chaque fois l’entrée d’amorçage EFI “debian” enregistrée dans la mémoire non volatile de la carte mère. Or sans l’entrée d’amorçage EFI correspondante, l’instance de GRUB ne sert à rien. Pour contourner cela, on peut forcer un identifiant d’amorçage autre que “debian” avec l’option --bootloader-id=xxx. Mais à nouveau ça peut créer un problème : cette option influe aussi sur l’emplacement de GRUB dans la partition EFI : EFI/xxx/ au lieu de /EFI/debian/. Or si on installe la version signée de GRUB qui supporte le secure boot (il me semble que c’est par défaut), avant la sortie de Debian 10 celle-ci ne fonctionnait pas dans certains cas si on l’installait dans un emplacement autre que /EFI/debian/. Je n’ai pas vérifié si ce bug avait été corrigé.

Une autre solution consiste à installer GRUB sur chaque partition EFI avec l’option --removable, qui installe GRUB dans un emplacement spécial /EFI/BOOT qui ne nécessite pas d’entrée d’amorçage. Mais là encore ce n’est pas parfait : la version de GRUB signée que j’avais testée ne fonctionnait pas normalement dans cet emplacement (comme si elle se croyait sur une image ISO), et je suis tombé sur un firmware UEFI bien buggé qui ignore cet emplacement si une entrée d’amorçage EFI existe (même si elle ne fonctionne pas). Quand je dis que l’UEFI c’est vraiment de la merde… Donc la solution c’est de virer toutes les entrées EFI debian avec efibootmgr et d’installer GRUB sans secure-boot avec l’option --no-uefi-secure-boot.

Dans tous les cas, quand un disque est remplacé, il faudra réinstaller GRUB sur le nouveau disque puisqu’il est en dehors du RAID.

Merci beaucoup pour ce retour très complet.

De mon coté, je viens d’essayer une dizaine de configurations différentes avec un emplacement sur chaque disque dur en EFI ou en BIOS GRUB, mais rien à faire l’installateur de Debian me renvoie une erreur fatale à l’installation de Grub sans même me demander ou est-ce qu’il souhaite l’installer…

Par ailleurs, que je fasse des partitions EFI ou BIOS GRUB, l’installateur de debian me dit que ma configuration est en EFI… comment lui faire comprendre que je veux faire du MBR?

Avec le mode de récupération, c’est pareil… il faudrait peut-être une autre clef bootable avec un autre linux en ligne de commande pour avoir la main et faire l’installation manuellement, je n’ai pas encore tester cela…

Cela me fait tout de même un peu repenser à mon architecture, donc je me pose la question : dans ce cas, n’est-ce pas plus facile et maintenable de faire un RAID5 matériel plutôt que logiciel?
Sachant que ma carte mère le fait sans problème, mais j’avais bien sondé le sujet et il me semblait plus flexible de le faire en logiciel.

Merci.

Il faut l’amorcer en mode BIOS, tout simplement. C’est au niveau des options d’amorçage du firmware UEFI que cela se sélectionne. Une fois l’installateur amorcé dans un mode ou dans l’autre, c’est trop tard.

En mode EFI l’installateur ne demande pas car c’est implicite. Quel est le message complet ? As-tu regardé les messages dans la console des logs tty4 ?

La plupart des cartes mères ne font pas de vrai RAID matériel mais un “fake RAID” logiciel géré par le firmware BIOS/UEFI. Ce n’est pas toujours compatible avec Linux, et même quand ça l’est ce n’est pas vraiment recommandé. La relative simplification de l’amorçage est vraiment le seul intérêt. Pour tout le reste, le RAID logiciel de Linux est préférable.

Quand une carte mère fait du vrai RAID matériel, elle a un contrôleur RAID dédié avec des ports spécifiques, pas une option dans les réglages du firmware pour configurer le contrôleur SATA en mode RAID.

Ok, merci, je viens de booter en BIOS et je viens de refaire toute l’installation.

J’ai toujours une erreur fatale.

Voici mon partitionnement :
2019-08-15_23h46_42

Voici mon erreur dans TTY4 :
2019-08-15_23h46_53

Il semble qu’il ne voit pas ma partition BIOS GRUB.

PI, ma carte mère : ASRock Z370 PRO4.

Merci pour l’aide.

Il y a une incohérence dans l’affichage des partitions BIOS boot : dans une table de partition GPT le drapeau B est normalement associé à une partition système EFI.
Après quelques tests de mon côté, je soupçonne donc que le partitionneur n’a pas vraiment changé le type de partition en “BIOS boot”, ce qui fait qu’elle n’est pas reconnue par GRUB. Tu peux le vérifier dans le shell de tty2 ou tty3 avec

fdisk -l /dev/sda

Note qu’une partition BIOS boot n’a pas besoin d’une taille de 500 Mo, une taille de 1 Mo suffit très largement. Tu pourrais donc supprimer ces partitions et recréer une nouvelle partition BIOS boot de 1 Mo. Dans l’espace libre restant tu pourras recréer une partition système EFI ultérieurement si tu as envie de tester l’amorçage EFI.

Je viens de tout refaire encore.

J’obtiens des partitions correctes il me semble :
2019-08-16_21h11_39

Mais toujours une erreur fatale :
2019-08-16_21h11_50

Et impossible d’utiliser fdisk dans le TTY3 ou 2 :
2019-08-16_21h11_14

Je vais devenir fou :laughing:

Pas normal. fdisk devrait être disponible assez tôt dans le processus d’installation, bien avant la phase de partitionnement.
fdisk n’est pas une commande interne de busybox, inutile d’exécuter help.
C’est quoi cet installateur ? Tu l’as préparé comment ?

C’est l’ISO net install que j’ai mis sur une clef USB bootable.

Mis sur la clé comment ? Méthode standard avec dd ou cp, ou utilisation aléatoire d’un outil du genre unetbootin ou rufus ?

Il y a longtemps que je n’utilise plus que l’image netinst multiarch (j’ai encore quelques machines 32 bits), fdisk a toujours été disponible dans l’installateur et c’est encore le cas avec Debian 10. Je viens de vérifier que le paquet fdisk-udeb est bien présent dans les images netinstall simples i386 et amd64.

Comme tout composant de l’installateur, on peut l’“installer” avec

anna-install fdisk-udeb

Comme alternative, parted est disponible dans les composants additionnels de l’installateur.

anna-install parted-udeb
parted /dev/sda print

mais je fais moins confiance à parted qu’à fdisk pour afficher des informations fiables.

Mis sur la clé avec Win32 Disk Imager.

Pour ce qui est des commandes dans TTY2 ou 3, j’ai l’impression d’être enfermé dans Busybox et de ne pas pouvoir faire d’autre commande que la liste donnée par le ‘help’. Parted n’est pas une commande connu non plus…

EDIT : bon l’installation de la command avec anna-install fonctionne bien.

Voilà le retour de fdisk -l :

2019-08-17_09h50_10

Parted n’est pas installé par défaut. Il faut le sélectionner avec anna-install ou via les composants optionnels en mode expert.

La partition sda1 de 1 Mo n’a toujours pas le bon type “BIOS boot”. “Microsoft basic data” est le type par défaut ou plutôt était avant qu’un type spécifique pour les partitions Linux soit défini. Comment l’as-tu créée ? Via le partitionneur de l’installateur en sélectionnant “créer une nouvelle partition” puis “utiliser comme : partition d’amorçage BIOS” ? Si oui, alors ce partitionneur a un gros problème avec la création d’une partition BIOS boot.

En tout cas tu peux corriger avec fdisk

fdisk /dev/sdX
t (modifier le type)
1 (partition n° 1)
4 (type 4 = BIOS boot)
p (afficher la table pour contrôler)
w (enregistrer et quitter)

A faire pour chaque disque.

Merci. Je viens de faire cela tout manuellement et fdisk montre bien une partition BIOS boot désormais.

Ensuite, je retourne sur l’installateur et GRUB ne fonctionne toujours pas…
2019-08-17_17h56_00

Comment faire?

Mais bizarrement il me demande aussi ça :
2019-08-17_17h56_09

pourquoi?

Tu as sélectionné /dev/sda1 au lieu de /dev/sda. Je ne sais pas si c’est la cause de l’erreur mais de toute façon l’amorçage n’aurait pas fonctionné.

Le message d’erreur “failed to get canonical path of ‘/dev/md0p2’” laisse penser que l’installateur de GRUB ne supporte pas les partitions dans un ensemble RAID logiciel. Il me semblait pourtant avoir vérifié que GRUB lui-même les supportait, avec une version plus ancienne.

A ce propos, comment as-tu fait pour partitionner l’ensemble RAID /dev/md0 ? Je n’ai jamais trouvé comment faire avec le partitionneur de l’installateur Debian. Ceci dit cela ne me manque pas car je préfère utiliser LVM plutôt que des partitions, je trouve que c’est plus souple.

J’ai déjà rencontré ce message incongru “il semble que cette machine soit configurée pour démarrer avec EFI” alors que l’installateur a démarré en mode BIOS. Peut-être à cause du format GPT des disques, la confusion entre GPT et EFI étant fréquente, mais de la part des développeurs Debian cela me peine un peu. Quoi qu’on choisisse, cela n’a de toute façon pas d’influence puisque l’option correspondante ne s’applique qu’à l’installation de GRUB en version EFI.

J’ai bien essayé /dev/sda avant /dev/sda1. Le résultat est le même.

J’ai créé l’ensemble RAID dans l’outil de partitionnement de DEBIAN. On voit le résultat dans l’un de mes screens : Périphérique RAID5 n°0 : 4Gb.

Ok, pour le message de Debian, je peux ignorer alors.

Comment je peux procéder pour la suite du coup?

J’avoue que cela fait 15ans que j’installe du Debian sur des PC pour me faire des serveurs, souvent sur des vieux PC, mais maintenant que je veux faire avec du matos récent et un peu de techno (RAID5), je n’y arrive plus lol, cela me perturbe :thinking: