Le contexte : il y a quelques jours j'ai commencé à réinstaller magma avec Arch Linux. Le sous-système RAID fonctionnant bien, je ne m'attendais qu'à devoir formater les LV sur lequels sont montés /boot et / sans toucher à /home. Les emmerdes ont commencé lorsqu'en bootant sur l'installer, dmraid (l'utilitaire de gestion du RAID semi-matériel sous Linux) ne "voyait" plus tous mes volumes RAID. Ce qui m'intriguait le plus, c'est que mon setup fonctionnait encore parfaitement sur ma Gentoo (à jour, je prends la peine de le préciser) :

gore@magma:~% sudo dmraid -tay
nvidia_diabcbgj: 0 488395053 mirror core 2 131072 nosync 2 /dev/sda 0 /dev/sdb 0
nvidia_diabcbgj1: 0 80262 linear /dev/mapper/nvidia_diabcbgj 63
nvidia_diabcbgj2: 0 4883760 linear /dev/mapper/nvidia_diabcbgj 80325
nvidia_diabcbgj3: 0 483427980 linear /dev/mapper/nvidia_diabcbgj 4964085
gore@magma:~%

Avec le liveUSB d'Arch :

[root@archiso ~]# dmraid -tay
nvidia_diabcbgj: 0 488395053 mirror core 2 131072 nosync 2 /dev/sda 0 /dev/sdb 0 1 handle_errors
nvidia_diabcbgjp1: 0 321849 linear /dev/mapper/nvidia_diabcbgj 63
[root@archiso ~]#

J'ai même poussé le délire à télécharger la dernière version de dmraid sur le site du développeur et la patcher après avoir pris connaissance de ce bug, sans succès. J'ai contacté le mainteneur du paquet dmraid chez Arch, qui outre de m'avoir conseillé de réessayer avec la toute dernière version de l'ISO de l'installer sortie la veille a conclu son mail d'un laconique "Hope this helps,dmraid is a very strange program...". Résigné, j'ai décidé de péter tout mon setup et de repartir sur du RAID logiciel avec mdadm.

À ce stade, je pensais être sorti d'affaire et qu'à partir de maintenant tout aller rouler sans problèmes jusqu'au prochain reboot... J'empoigne donc le guide d'installation de Arch Linux sur du RAID logiciel+LVM et commence par la création des volumes RAID après avoir créé les partitions de type fd (Linux raid autodetect) sur mes deux skeudurs :

[root@archiso ~]# mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
mdadm: cannot open device /dev/sda1: Device or ressource busy
mdadm: cannot open device /dev/sdb1: Device or ressource busy
[root@archiso ~]#

Damnaide, ça sent du slip cette histoire. Un coup de google-fu plus tard, je trouve l'explicazione. Pour faire court, au boot l'initrd chargeait le module dmraid qui reconnaissait les metadata nvraid contenues dans les premiers blocs des disques durs et créait à la volée les volumes dmraid correspondant — du moins ce qu'il en reconnaissait —, entravant l'accès aux partitions à mdadm. Toutefois et contrairement au cas de figure décrit dans le billet je ne pouvais pas empêcher l'exécution du module dmraid — le paramètre nodmraid au kernel n'avait aucun effet —, et pire que tout : je n'arrivais pas à désactiver le volume RAID créé par dmraid une fois le système lancé, ce dernier invoquant une esquive du genre qu'il ne sait pas exécuter cette commande sur un chipset NVidia. La bonne affaire...

J'ai finalement trouvé mon salut in extrémiste dans un coin de l'interweb, grâce à un brave homme confronté à un problème similaire qui explique comment détruire définitivement les metadata de nvraid histoire de pouvoir utiliser tranquille le chat mdadm. Effectivement, après avoir exécuté la commande magique...

[root@archiso ~]# dmraid -r -E

...puis validé ma décision de supprimer ces metadata[1], le mdadm --create passe comme une lettre à la Steupo.

Pour le reste, tout s'est presque bien passé : après un premier setup utilisant un seul volume RAID0 /dev/md0 utilisé comme PV avec LVM, il s'avère que Grub n'aime pas du tout booter sur un device RAID0.[2] Dès lors, j'ai créé un device RAID1 spécialement pour /boot et collé le reste dans un PV sur un second device RAID0.

Et LÀ, ça le fait.

Notes

[1] Pour ceux qui se demanderaient à juste titre pourquoi je n'ai pas tout simplement supprimé les volumes RAID à l'aide de l'utilitaire de configuration SATA RAID du BIOS, sachez que cette interface a juste disparu. Elle n'apparait plus au boot après le POST, et ce n'est pas faute d'avoir retourné le BIOS pour la retrouver/réactiver...

[2] Je ne retrouve plus la page sur laquelle j'ai lu ça, j'éditerai ce billet si je remets la main dessus.