On Mar 13, 2014, at 4:56 AM, Patrick O'Callaghan <pocallaghan(a)gmail.com> wrote:
$ sudo btrfs fi df /
ERROR: couldn't get space info - Inappropriate ioctl for device
ERROR: get_df failed Inappropriate ioctl for device
Right that should have been /home but you already provided that info.
>
> So if yours is configured this way, it's probably not critical to change it. The
metadata going to the SSD isn't much, and since the HDD has much more space probably
all data chunks are allocated on it for the near/medium term. But conversion to single
device Btrfs is straightforward, three btrfs commands will do it. And then some extras to
reclaim the space on the SSD for /var or / or whatever.
I'm willing to try it if you give me step-by-step instructions. I have
daily backups on a NAS so I can recover from disasters.
Based on your lsblk -fs results, /dev/sda1 is /boot and there's probably no point in
growing it by 4GB which is the size of /dev/sda2 the btrfs /home. Gparted has a way to
first move a volume then resize it. It appears as a single operation in the UI. But this
is what you'd need to do to use this extra space for what's currently /dev/sda3,
root.
If the SSD dies, most of the /home data is on the HDD, and since the file system is raid1,
the btrfs volume will still work if mounted with -o degraded. Any broken files (partly or
fully on the SSD) will return an error - it's not like you'll get corrupted data
returned by the file system.
So really it's up to you. But first, the way to get back to a single device Btrfs
/home is:
btrfs balance start -mconvert=single /home --force
btrfs device delete /dev/sda2 /home
btrfs balance start -mconvert=dup /home
1. Converts metadata from raid1 to single copy, which requires force since redundancy is
reduced.
2. Migrates any data/metadata from /dev/sda2 and also deletes it from the volume.
3. Converts metadata from single copy to duplicate, which is the default for mkfs on
HDDs.
When it's done you can post a new:
btrfs fi show
btrfs fi df /home
Check to make sure your /etc/fstab is using UUID for /home and not /dev/sda2 or it will
fail to mount. I don't know why but sometimes anaconda is creating fstab entries with
/dev/ designations instead of UUIDs. If it is, then you can use blkid to find the volume
uuid for /home (not the UUID_SUB or PARTUUID).
Chris Murphy