Hypothèse de départ : vous disposez d’une distrib Linux récente avec une partition linux root au format ext4 que vous souhaitez migrer vers le système de fichiers btrfs pour bénéficier de ses nombreuses fonctionnalités (snapshot, défragmentation, retaillage à chaud…).

J’ai personnellement testé cette migration sous une distrib Xubuntu 12.10, disposant d’une version 2 de Grub. Dans la procédure de migration que j’ai appliquée ci-dessous, ma partition root est sous /dev/sda3 au format ext4 : naturellement vous devrez adapter en conséquence le nom de votre propre partition root.

Procédure :

  1. booter sur une distrib Live installée sur une clé usb ou un cdrom
  2. ouvrir un terminal de commande
  3. si nécessaire télécharger le package btrfs-tools :
    apt-get install btrfs-tools
  4. faire un check disk de votre partition root :
    fsck -f /dev/sda3
  5. convertir la partition root au format btrfs (en fonction de la taille de la partition cela peut prendre quelques minutes :
    btrfs-convert /dev/sda3
  6. créer un répertoire temporaire qu’on va utiliser pour monter notre partition root puis « chrooter » ce répertoire :
    mkdir /mnt
    mount /dev/sda3 /mnt
    mount -o bind /dev /mnt/dev
    mount -o bind /sys /mnt/sys
    mount -o bind /proc /mnt/proc
    chroot /mnt
  7.  modifier le fichier /etc/fstab :
  8. trouver la ligne du montage root (/) pour y changer l’UUID en mettant la partition complète /dev/sda3, le système de fichier de ext4 en btrfs, puis en mettant les options minimales.
    Ex de ligne changée dans /etc/fstab : 

    /dev/sda3         /         ext4         defaults 0 1

    Remarque : pour obtenir le nouvel UUID de votre partition, tapez la commande suivante :

    blkid /dev/sda3

    Vous pourrez ensuite changer dans le fichier /etc/fstab le « /dev/sda3″ par « UUID=resultat-uuid-obtenu-par-blkid »

  9. mettre à jour grub :
    update-grub2
  10. réinstaller grub dans la partition root :
    grub-install /dev/sda3
  11. démonter /mnt :
    umount /mnt
  12. rebooter (ne pas oublier ensuite de retirer votre clé usb ou cdrom contenant la distrib Live) :
    reboot now
  13. c’est tout !!! Pour ma part cette conversion s’est faite sans aucun soucis. J’en ai profité ensuite pour ajuster/optimiser les options de montage de ma partition btrfs figurant dans le fichier /etc/fstab et faire connaissance ensuite avec toutes les fonctionnalités étonnantes de ce nouveau système de fichiers promis à un bel avenir.

Remarques importantes :

  • après la convertion au format btrfs et le reboot, si grub vous affiche au démarrage le message d’avertissement suivant « Sparse file not allowed » cf. la solution simple fournie sur http://askubuntu.com/questions/100329/message-sparse-file-not-allowed-after-succesfull-install-without-swap-partition
  • si jamais vous n’arriviez pas à booter sur votre partition convertie au format btrfs, vous pouvez toujours revenir en arrière en remettant cette partition au format ext4 très simplement, c’est ça la magie de btrfs :-).Procédure de retour en arrière (btrfs vers ext4):
    1. rebooter sur votre distrib Live installée sur clé usb ou cdrom
    2. ouvrir un terminal de commande
    3. si nécessaire re-télécharger le package btrfs-tools :
      apt-get install btrfs-tools
    4. la reconvertion de votre partition root du format btrfs vers ext4 s’effectue tout simplement par :
      btrfs-convert -r /dev/sda3

      C’est aussi simple que cela

    5. rebooter en n’oubliant pas ensuite de retirer votre clé usb ou cdrom contenant la distrib Live