Est-il possible de convertir btrfs en ext4 sans perdre de données? Je rencontre une très faible vitesse sur les opérations de lecture/écriture sur btrfs.
Je vais juste sur les outils disponibles, pas d'expérience ou de documentation. Vous voudrez peut-être tester cela avec une partition (même juste une image) que vous voudrez bien perdre si tout se passe mal. N'essayez pas ceci sans faire une sauvegarde.
btrfs-convert
a une fonction de restauration pour annuler une conversion. Je ne sais pas si cela fonctionne pour les partitions non converties en btrfs
avec btrfs-convert
.
Commencez par démonter le système de fichiers. Si c'est essentiel pour le système, démarrez un LiveCD.
Installez btrfs-tools
Sudo apt-get install btrfs-tools
Annuler la conversion
Sudo btrfs-convert -r /dev/sdXn
Autant que je sache, vous ne pouvez pas convertir btrfs en un autre système de fichiers.
Je l'ai fait en utilisant un système avec des distributions à démarrage multiple (Ubuntu sur ext4, Xubuntu sur btrfs). Sous Ubuntu, j'ai pris la partition principale Xubuntu btrfs et l'archivée à l'aide de fsarchiver. J'ai ensuite pu le restaurer, en utilisant à nouveau fsarchiver, sur une partition différente et en spécifiant le type de système de fichiers ext4. Cela semblait bien fonctionner.
Toujours dans Ubuntu, j’ai monté la partition racine Xubuntu sur/mnt et édité/mnt/@/etc/fstab pour modifier le montage de/home afin de pointer vers la nouvelle partition ext4, en modifiant à la fois les types UUID et fs et en supprimant les données de sous-volume. J'ai sauvegardé le fichier et redémarré dans Xubuntu.
Une erreur s'est produite lors du démarrage et le démarrage s'est arrêté. L'erreur était que j'avais une autre partition à monter dans mon répertoire ~/Documents qui avait échoué. J'ai choisi de résoudre manuellement le problème. Il se trouve que ma partition racine est correctement installée en tant qu’ext4, mais lorsque j’ai fait une commande de liste, j’ai
#ls /home
@home
La structure de sous-volume btrfs d'origine était donc toujours présente dans le système de fichiers ext4. J'ai émis la commande
mount --bind /home/@home /home
J'ai ensuite appuyé sur ctrl-D pour continuer à démarrer, et Xubuntu a continué à démarrer et tout s'est bien passé. Je ne l'ai pas encore fait, car je suis toujours sur ce démarrage initial, mais je suis certain de pouvoir mettre cette commande bind dans mon fichier fstab. Ou peut-être aurais-je pu laisser les informations de sous-volume dans l'entrée fstab, je ne sais pas.
Ce que je vais faire à la place, cependant (c’est hors sujet), c’est de prendre une instance plus mature de partition/home (ext4) pour Xubuntu depuis un autre ordinateur et de l’utiliser à la place. J'ai déjà prouvé que cela fonctionnerait.