The install completes but the system is unable to boot and comes up with a
open_ctree failed with an initrd shell. This usually happens when you install with a btrfs handled raid (not a mdadm handled one). You may get the occasional boot success, but the root issue is that one or both disks are not initialised fully by btrfs before the kernel tries to mount the fs.
There are two ways to fix this. The second is the fastest, safest, easiest way
The fix is to append boot commands such as
to the grub entry or
GRUB_CMD in /etc/default/grub. This really needs to be done on install.
(I also had to remove the existing
It seems that all that is required is for
btrfs device scan to be run in the initrd on boot.
Steps to fix new install
NOTE: I have not tried this with
/boot on the root partition, only on a separate partition. I imagine booting from a btrfs raid setup may not actually work. In fact the Oracle website recommends the partitioning below too.
Preferably on a single disk but you can put these on the two disk system; you will need to mirror the partition setup however to help keep things consistent.
/boot/efi, EFI type, can be small (50mb)
/boot, 200mb at least, this is the minimum size for two kernels
- a swap partition, preferably set up as raid 1 through the GUI
- the remainder of space can be simply selected as BTRFS type, and given the
An alternative is to have
/ sized and separate from the remaining disk space - you seem to only need 3GiB.
Once the install is done, don’t reboot yet. Ctrl+Alt+F2 to a terminal then:
lsblkto see which parts are mounted - the part at
/will have a matching part on the other disk. btrfs doesn’t mount both, but uses them both internally.
blkidwill show you the matching partition of the btrfs raid, the two partitions will have the same UUID
blkid |grep /dev/sd[part of / ] >> /etc/default/grub
blkid |grep /dev/sd[matching of / ] >> /etc/default/grub(these two steps are to make editing the grub easier)
You will have lines similar to
/dev/sda2: LABEL="rockstor" UUID="54dcbbf3-1fe0-4b56-befc-8b275120c872" UUID_SUB="8a191f4c-7a12-4d33-ab9c-156ad72598ec" TYPE="btrfs" PARTUUID="0c6cc0a6-d19a-4884-938a-41516ebb4f74" /dev/sdb2: LABEL="rockstor" UUID="54dcbbf3-1fe0-4b56-befc-8b275120c872" UUID_SUB="ab092784-25cc-474a-8967-52316c790b06" TYPE="btrfs" PARTUUID="a5516130-605f-4d70-83aa-5c159380df77"
at the end of the file for referencing. Change the existing
GRUB_CMDLINE_LINUX_DEFAULT= and add a new
GRUB_CMDLINE_LINUX= below. The contents of this line will need to contain references to the PARTUUID of the partitions. This is where your ace ViM skills will come in handy:
And don’t forget to delete the reference lines at the end before you save.
grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
- Enjoy a nice, fast btrfs powered raided NAS.
Better way to fix boot
As above, install, but don’t reboot. Get to console chroot and then;
cp /usr/lib/udev/rules.d/64-btrfs.rules /etc/udev/rules.d/