Перенёс всё/на… BTRFS. Самым сложным внезапно оказалось установить загрузчик правильно.
Раза три перезагружался, пока нашёл правильное положение рук. У меня ESP на RAID1, баг с grub-install и рейдами на UEFI так и не поправили.
В сухом остатке:
1. Монтируем будущий корень BTRFS на /mnt
mount /dev/md3 /mnt -o subvol=/root,rw,acl
2. Перевязываем /run, /proc, /sys, /dev, /dev/pts на /mnt
for m in /run /proc /sys /dev /dev/pts; do mount --bind $m /mnt$m; done
3. Отмонтируем /boot/efi и останавливаем /dev/md0 (EFI raid).
umount /boot/efi; mdadm --stop /dev/md0
4. Монтируем /dev/sda1 в /mnt/boot/efi (руками-с)
mount /dev/sda1 /mnt/boot/efi -t vfat -o rw,utf8
5. Чрутимся в /mnt
chroot /mnt su -
6. Исправляем /etc/fstab и /etc/mdadm/mdadm.conf
7. Делаем дамп блочных устройств, внимательно смотрим на UUID BTRFS раздела.
lsblk -o NAME,TYPE,SIZE,FSTYPE,UUID,MOUNTPOINT
8. Ставим grub
grub-install /dev/md3
9. Проверяем, что /boot/efi/EFI/ubuntu/grub.cfg содержит UUID BTRFS раздела.
10. Проверяем, что /boot/grub/grub.cfg содержит инструкции для подгрузки модулей btrfs.
11. Выходим из chroot.
12. Собираем md0 из одного диска(!)
umount /dev/sda1; mdadm --assemble /dev/md0 /dev/sda1
13. А вот теперь добавляем к md0 остальные диски (да, у меня RAID1 на 4 дисках)
mdadm /dev/md0 --add /dev/sdb1 /dev/sdc1 /dev/sdd1
14. Монтируем /boot/efi в[обратно] и перепроверяем, что у нас ничего не слетело и /boot/efi/EFI/ubuntu/grub.cfg по-прежнему содержит UUID BTRFS раздела.
mount /dev/md0 /boot/efi -t vfat -o rw,utf8
15. Перезагружаемся и… надеюсь, на этот раз всё сработает.