It is official by now that there are maniacs out there who already migrated their root-filesystem on BTRFS. So why not joining those freaks?
Theoretically it shouldn’t be a big hassle: Boot a Live-CD, mount and backup the Linux partitions including their permission stuff to prevent breakage and dangle the Windows space in shape as you already have your hands on it and migrate to BTRFS. Theoretically.
Putting things to work was a smooth thing until I had to change the permissions. Honestly, nothing went okay at the first take. But I guess I should start at the beginning as every report should do. As a Live-Linux I used an USB Stick called ‘Rescue-Me’ which is an Arch-Linux Image done by Chris Mason having the latest BTRFS tools onboard.
Having the system booted with that USB stick, the harddisk is not in use and I could mount and pack it into an archive. Next thing was a reboot to the Acronis Disk Director CD which failed due to my Hardware. I suspect it’s the fault of my VGA card. Switchable graphics are a pain in the ass regarding X11. So back into Windows I had to install Acronis and start to dangle the partitions into shape – an easy task you might say, but that’s where the peck of trouble starts. GRUB, living in the MBR of the disk loads its configuration from the /boot partition which had to be deleted to do the new partition scheme.
I was cursing a lot as I noticed that I rendered my system unbootable, but that wasn’t a big issue. So another boot to the Rescue-Me stick which was equipped with GRUB, so I could use that to get round the missing config by using “chianloder +1” at the GRUB-Shell to get Windows booted again to allow Acronis to finish its work.
As this part was done, I had a backup and plenty of free disk space to be occupied by BTRFS. Not a big deal with the recent tools from the stick. So I did a basic directory structure for the mountpoints and unpacked my backup to it. As a little security improvement, my logfiles are now stored on their own subvolume which disallows the execution of files as it is mounted ‘noexec’, ‘nosuid’ and ‘nodev’.
The final work now is to adjust /etc/fstab to reflect the latest changes and append rootflags to the kernel parameters at the GRUB configuration. A reboot and that blog entry to document the changes are the very last things to be done…