Volume Btrfs sur disques SATA et PATA
Jouons un peu avec btrfs.
Le plan
Une vieille machine de bureau Dell a fini entre mes mains. Il y avait longtemps que je n'avais plus que des laptops, mon vieux Dell —il semble que je sois abonné à cette marque pour les desktops– m'ayant abandonné par petite pièce au fil du temps.
Cette nouvelle machine est prédestinée à faire du stockage car un P4, même de dernière génération, est devenu désormais léger pour une utilisation courante. Elle contient un disque SATA de 160 Go, ce qui est déjà suffisant pour un usage courant, si on n'installe pas de jeux prenant 40 Go et qu'on télécharge des blurays.
Ce serait simple si je ne voulais pas que cette machine puisse disposer d'un espace de stockage évolutif. En effet, je suis parfois conduit à stocker de plus grande quantité de données. Pour faire varier l'espace de stockage, il y a deux disques IDE de bonne facture de 160 Go qui attendent dans une armoire. Mon plan : conserver le disque SATA comme disque principal, le formater en btrfs, et agrandir le volume btrfs à la demande en connectant un ou deux des disques IDE sur le port PATA de la machine.
la réalisation
Je monte le disque SATA sur la machine et fait une copie avec Clonezilla du disque d'un portable. L'opération se passe bien, je monte un des disques IDE de réserve, fais une copie des données qui m’intéresseront peut-être dans un futur plus ou moins proche, supprime le formatage et l'ajoute au volume btrfs avec la commande btrfs device add -f /dev/sdX
. L'option -f est là pour éviter que btrfs hurle qu'il existe une table de partition sur le disque. Me voilà donc avec un volume btrfs de près de 300 Go (160 Go étiquette + 160 Go étiquette ≈ 300 Go effectifs).
Pour couronner le tout, je répartis les données sur les deux disques avec btrfs balance start /home
. Ça gratte, ça gratte et ça gratte, puis au bout de quelques longues minutes une erreur s'affiche : le système de fichier est corrompu. Je sauvegarde immédiatement les données qui se trouvaient sur le disque IDE, supprime le disque du volum et tente de réparer le système de fichier. Là, j'ai merdoyé car les quelques messages d'erreur rapportés par btrfsck se transforment en une pléiade de messages d'erreur. J’enquête pour trouver la source des problèmes et trouve que le disque du portable en est la cause ; Clonezilla a fait son travail de copie brute et a recopié un système de fichiers corrompu. Exit Clonezilla, je fais l'installation à la vieille méthode en recopiant les données à la main avec rsync
après avoir créé les sous-volumes btrfs.
Après les corrections nécessaires d'UUID dans /etc/fstab
, le fichier syslinux.cfg
et après installation de syslinux dans le MBR du disque SATA, l'Archlinux redémarre en fanfare. Je retombe la sauvegarde des données du disque IDE, remonte le disque dur IDE et balance le tout… heu… refais un btrfs balance start /home
. Grattouilles pendant de longues minutes, puis le programme fini victorieusement, me décrochant un sourire. Petite réinstallation des paquets archlinux afin de ne pas avoir de mauvaises surprises en cas de corruption rampante, puis vérification à l'aide de btrfs scrub
pour être sûr d'être certain de l'état du système de fichiers.
Ok, machine bonne pour le service.
Bilan de l'opération
Pas mal de temps perdu et un week-end bien entamé. La machine fonctionne bien malgré l'apparence un peu bancale du système (vieux disques, mélange de technologie). Ce n'est pas la panacée mais je peux actuellement monter à une capacité de stockage 450 Go pour une consommation électrique triple à celle d'un disque dur moderne de taille supérieur. Ça peut faire sourire, mais c'était un bon moyen de remettre en marche ces vieux disques qui prenaient la poussière. Dans le future, je pourrais mettre dans cette machine plusieurs disques bien plus gros
Puis cela a été utile car cette machine m'aide actuellement pour la récupération de données sur un disque d'un To ayant sauté sans parachute.
Concernant le disque dur du portable à l'origine de la corruption, je vais patienter pour celui-ci, peut-être refaire l'opération de récupération de récupération du système de fichiers sans tout mettre en l'air ou simplement récupérer les données du disque du desktop pour gagner du temps.