Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

Is it possible to convert btrfs to ext4 without losing data? I'm experiencing a very low speed on read/write operations on btrfs.

share|improve this question

3 Answers 3

I'm just going on the available tools, not experience or documentation. You might want to test this with a partition (even just an image) you don't mind losing if it all goes wrong. Don't attempt this without taking a backup.

btrfs-convert has a roll-back function to undo a conversion. I'm not sure if this works for partitions that weren't converted to btrfs with btrfs-convert.

  1. Start by unmounting the filesystem. If it's essential to the system, boot into a LiveCD.

  2. Install btrfs-tools

    sudo apt-get install btrfs-tools
    
  3. Roll back the conversion

    sudo btrfs-convert -r /dev/sdXn
    
share|improve this answer
5  
Note, that this will only work with converted filesystems and only if you haven't deleted the snapshot of the original ext3/4 filesystem. –  htorque Apr 21 '11 at 15:19
    
Thank you but unfortunately this doesn't work for a btrfs partition not converted from other file systems. H guess I have to reinstall. –  mFat Apr 23 '11 at 4:14
4  
Be aware that this will discard any changes made on the filesystem since you converted it. It will be restored to the contents of the ext2/3 filesystem as it was before you converted. –  poolie Jan 27 '12 at 9:07

As far as I know you cannot convert btrfs to any other filesystem.

share|improve this answer
    
not true if you converted ext to btrfs! you would have a snapshot to roll back the changes –  Fookatchu Mar 21 '14 at 17:55

I did this using a system with multiboot distros (Ubuntu on ext4, Xubuntu on btrfs). Running Ubuntu, I have taken the Xubuntu btrfs home partition, and archived it using fsarchiver. I was then able to restore it, again using fsarchiver, to a different partition and specify ext4 filesystem type. That seemed to work okay.

Still in Ubuntu, I mounted the Xubuntu root partition on /mnt, and edited /mnt/@/etc/fstab to change the mount for /home to point to the new ext4 partition, changing both the UUID and the fs type, and deleting the subvolume data. I saved the file, and rebooted into Xubuntu.

There was an error in booting, and booting halted. The error was that I had another partition I wanted to mount to my ~/Documents directory which failed. I selected to manually fix the problem. It turns out that my root partition mounted okay as ext4, but when I did a list command I got

#ls /home
@home

So the original btrfs subvolume structure was still there in the ext4 filesystem. I issued the command

mount --bind /home/@home /home

I then pressed ctrl-D to continue booting, and Xubuntu continued booting and everything came up fine. I haven't done it yet, as I'm still on this initial boot, but I'm certain I could put that bind command in my fstab file. Or perhaps I could have left the subvolume info in the fstab entry, I don't know.

What I will do instead, however (this is off-topic), is take a more mature instance of a /home (ext4) partition for Xubuntu from another computer and use that instead. I've already proven that this will work.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.