-
-
Notifications
You must be signed in to change notification settings - Fork 289
Open
Description
I'm working on some docs and scripts to streamline NixOS installation on Hetzner bare metal servers: https://github.com/rochecompaan/hetzner-nixos-deploy.
I have mixed results with systemd as a boot loader for RAID1 configs. Sometimes it works, and sometimes it doesn't. Even for servers where the BIOS claims to support UEFI, it doesn't always work. I have much better results with Grub and will likely make it the default in the Disko config generated, but I want to ensure I'm not missing something obvious. Here is an example of the generated systemd config:
{
boot = {
loader = {
systemd-boot = {
enable = true;
};
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot";
};
};
};
disko.devices = {
disk = {
nvme0n1 = {
type = "disk";
device = "/dev/nvme0n1";
content = {
type = "gpt";
partitions = {
boot = {
size = "1G";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
};
};
raid = {
size = "100%";
content = {
type = "mdraid";
name = "raid1";
};
};
};
};
};
nvme1n1 = {
type = "disk";
device = "/dev/nvme1n1";
content = {
type = "gpt";
partitions = {
raid = {
size = "100%";
content = {
type = "mdraid";
name = "raid1";
};
};
};
};
};
};
mdadm = {
raid1 = {
type = "mdadm";
level = 1;
metadata = "1.2";
content = {
type = "gpt";
partitions = {
root = {
size = "100%";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
};
};
};
};
};
};
};
}
Here is the equivalent Grub config:
{
boot = {
loader = {
grub = {
enable = true;
devices = [ "/dev/nvme0n1" "/dev/nvme1n1" ];
efiSupport = true;
efiInstallAsRemovable = true;
};
efi = {
efiSysMountPoint = "/boot/efi";
};
};
};
disko.devices = {
disk = {
nvme0n1 = {
type = "disk";
device = "/dev/nvme0n1";
content = {
type = "gpt";
partitions = {
BOOT = {
size = "1M";
type = "EF02"; # for grub MBR
};
ESP = {
size = "1G";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot/efi";
};
};
raid = {
size = "100%";
content = {
type = "mdraid";
name = "raid1";
};
};
};
};
};
nvme1n1 = {
type = "disk";
device = "/dev/nvme1n1";
content = {
type = "gpt";
partitions = {
BOOT = {
size = "1M";
type = "EF02"; # for grub MBR
};
ESP = {
size = "1G";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot-fallback/efi";
};
};
raid = {
size = "100%";
content = {
type = "mdraid";
name = "raid1";
};
};
};
};
};
};
mdadm = {
raid1 = {
type = "mdadm";
level = 1;
metadata = "1.2";
content = {
type = "gpt";
partitions = {
root = {
size = "100%";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
};
};
};
};
};
};
};
}
I haven't tried mirrored boots with Grub yet, hence the hacky /boot-fallback mount point for the second drive.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels