Setting up an array of (3) 5GB drives using btrfs. It will soon grow to (6) 5GB drives. Starting with raid 1, will rebalance once all the drives are installed to either raid5, 6, or 10.

I will be booting off of this, so I believe I need a bios_grub / BIOS boot partition.

How is this usually done? I'm starting with:

# parted /dev/sda
mklabel gpt
mkpart grub ext3 1M 2M
set 1 bios_grub on
mkpart btrfs btrfs 2M 5001GB

I guess my preference would be that the BIOS boot partition be a raid 1 across all 3 (eventually 6), so there isn't just one drive hosting the boot partition that if it dies preventing booting before re-installing the boot partition to another drive.

mkfs.btrfs won't run on a 1MB partition. Says the minimal size for each btrfs partition is around 16MB.

Syslinux can't boot off btrfs yet, so that's not an option. (In this paragraph, using "boot" not in the sense of the bios_boot partition, bot the rest of the boot sequence.)

Would you increase sdX1 to 20MB, make a 20MB on each drive, and make a btrfs raid1? (The 20MB doesn't matter at all with these sizes.)

Or, would you make a 1MB partition on each, make it ext3, and a mdadm raid1? (Not even sure a mdadm raid can work for a bios_grub partition...)


1 Answer 1


You do not need (and should not create) a filesystem for the BIOS boot partition. The BIOS boot partition holds binary code that is directly accessed by GRUB after it has loaded its first stage in the first sector of the boot drive. The partition should be left unused by anything else because accidental corruption of the boot code can occur otherwise.

You will need hardware RAID if you want the BIOS boot partition to be mirrored. You can, however, install GRUB to multiple drives; just run grub-install in the target OS on each drive that has a BIOS boot partition (give it the entire drive, like /dev/sda, as an argument; grub-install will figure out the location of the BIOS boot partition from the GPT).

Not the answer you're looking for? Browse other questions tagged .