Skip to content

Feature request: Support mdadm raid for ESP partitions #468

@Halfwalker

Description

@Halfwalker

I build pretty much all my systems as root-on-zfs, using my own setup ZFS-root. It works fine with Secureboot, and for multiple boot disks I use a mdadm mirror of the ESP partitions. The mirrored ESP is seen like this in /proc/mounts

/dev/md127 /boot/efi vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 0

Setup all works, systems boot, all is good. The only thing that doesn't work is sbctl verify which predictably fails with the failed to find EFI system partition error.

Testing in a Virtualbox VM with 4x boot drives (why not hehe) the relevant output of lsblk is as follows

lsblk --json --output PARTTYPE,MOUNTPOINT,PTTYPE,FSTYPE,MOUNTPOINTS,TYPE,PKNAME,KNAME
      :
      },{
         "parttype": "c12a7328-f81f-11d2-ba4b-00a0c93ec93b",
         "mountpoint": null,
         "pttype": "gpt",
         "fstype": "linux_raid_member",
         "mountpoints": [
             null
         ],
         "type": "part",
         "pkname": "sda",
         "kname": "sda1"
      },{
         "parttype": "c12a7328-f81f-11d2-ba4b-00a0c93ec93b",
         "mountpoint": null,
         "pttype": "gpt",
         "fstype": "linux_raid_member",
         "mountpoints": [
             null
         ],
         "type": "part",
         "pkname": "sdb",
         "kname": "sdb1"
      },{
         "parttype": "c12a7328-f81f-11d2-ba4b-00a0c93ec93b",
         "mountpoint": null,
         "pttype": "gpt",
         "fstype": "linux_raid_member",
         "mountpoints": [
             null
         ],
         "type": "part",
         "pkname": "sdc",
         "kname": "sdc1"
      },{
         "parttype": "c12a7328-f81f-11d2-ba4b-00a0c93ec93b",
         "mountpoint": null,
         "pttype": "gpt",
         "fstype": "linux_raid_member",
         "mountpoints": [
             null
         ],
         "type": "part",
         "pkname": "sdd",
         "kname": "sdd1"
      },{
         "parttype": null,
         "mountpoint": "/boot/efi",
         "pttype": null,
         "fstype": "vfat",
         "mountpoints": [
             "/boot/efi"
         ],
         "type": "raid1",
         "pkname": "sda1",
         "kname": "md127"
      },{
         "parttype": null,
         "mountpoint": "/boot/efi",
         "pttype": null,
         "fstype": "vfat",
         "mountpoints": [
             "/boot/efi"
         ],
         "type": "raid1",
         "pkname": "sdb1",
         "kname": "md127"
      },{
         "parttype": null,
         "mountpoint": "/boot/efi",
         "pttype": null,
         "fstype": "vfat",
         "mountpoints": [
             "/boot/efi"
         ],
         "type": "raid1",
         "pkname": "sdc1",
         "kname": "md127"
      },{
         "parttype": null,
         "mountpoint": "/boot/efi",
         "pttype": null,
         "fstype": "vfat",
         "mountpoints": [
             "/boot/efi"
         ],
         "type": "raid1",
         "pkname": "sdd1",
         "kname": "md127"
      },{
      :

4x partitions as raid members with parttype c12a7328-f81f-11d2-ba4b-00a0c93ec93b and pttype gpt. The 4x entries for /boot/efi though are all null for both parttype and pttype.

In general this works well. Much cleaner than using hooks to mount and copy ESP contents around.

What are the chances to have sbctl support this kind of setup fully ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions