NixOS: fix mirrored EFI system partition issue
Signed-off-by: Maurice Zhou <jasper@apvc.uk>
This commit is contained in:
committed by
George Melikov
parent
1fa945ccc3
commit
d4ffbd73a8
@@ -227,6 +227,8 @@ System Configuration
|
|||||||
mkdir -p /mnt/boot/efis/${i##*/}-part1
|
mkdir -p /mnt/boot/efis/${i##*/}-part1
|
||||||
mount -t vfat ${i}-part1 /mnt/boot/efis/${i##*/}-part1
|
mount -t vfat ${i}-part1 /mnt/boot/efis/${i##*/}-part1
|
||||||
done
|
done
|
||||||
|
mkdir -p /mnt/boot/efi
|
||||||
|
mount -t vfat ${INST_PRIMARY_DISK}-part1 /mnt/boot/efi
|
||||||
|
|
||||||
#. Create optional user data datasets to omit data from rollback::
|
#. Create optional user data datasets to omit data from rollback::
|
||||||
|
|
||||||
@@ -321,7 +323,7 @@ System Configuration
|
|||||||
#. Configure GRUB boot loader for both legacy boot and UEFI::
|
#. Configure GRUB boot loader for both legacy boot and UEFI::
|
||||||
|
|
||||||
sed -i '/boot.loader/d' /mnt/etc/nixos/configuration.nix
|
sed -i '/boot.loader/d' /mnt/etc/nixos/configuration.nix
|
||||||
tee -a /mnt/etc/nixos/${INST_CONFIG_FILE} <<EOF
|
tee -a /mnt/etc/nixos/${INST_CONFIG_FILE} <<-'EOF'
|
||||||
boot.loader = {
|
boot.loader = {
|
||||||
generationsDir.copyKernels = true;
|
generationsDir.copyKernels = true;
|
||||||
##for problematic UEFI firmware
|
##for problematic UEFI firmware
|
||||||
@@ -329,7 +331,7 @@ System Configuration
|
|||||||
efi.canTouchEfiVariables = false;
|
efi.canTouchEfiVariables = false;
|
||||||
##if UEFI firmware can detect entries
|
##if UEFI firmware can detect entries
|
||||||
#efi.canTouchEfiVariables = true;
|
#efi.canTouchEfiVariables = true;
|
||||||
efi.efiSysMountPoint = "/boot/efis/${INST_PRIMARY_DISK##*/}-part1";
|
efi.efiSysMountPoint = "/boot/efi";
|
||||||
grub.enable = true;
|
grub.enable = true;
|
||||||
grub.version = 2;
|
grub.version = 2;
|
||||||
grub.copyKernels = true;
|
grub.copyKernels = true;
|
||||||
@@ -338,21 +340,21 @@ System Configuration
|
|||||||
# for systemd-autofs
|
# for systemd-autofs
|
||||||
grub.extraPrepareConfig = ''
|
grub.extraPrepareConfig = ''
|
||||||
mkdir -p /boot/efis
|
mkdir -p /boot/efis
|
||||||
for i in /boot/efis/*; do mount \$i ; done
|
for i in /boot/efis/*; do mount $i ; done
|
||||||
|
'';
|
||||||
|
grub.extraInstallCommands = ''
|
||||||
|
export ESP_MIRROR=$(mktemp -d -p /tmp)
|
||||||
|
cp -r /boot/efi/EFI $ESP_MIRROR
|
||||||
|
for i in /boot/efis/*; do
|
||||||
|
cp -r $ESP_MIRROR/EFI $i
|
||||||
|
done
|
||||||
|
rm -rf $ESP_MIRROR
|
||||||
'';
|
'';
|
||||||
grub.devices = [
|
grub.devices = [
|
||||||
EOF
|
EOF
|
||||||
for i in $DISK; do
|
for i in $DISK; do
|
||||||
printf " \"$i\"\n" >>/mnt/etc/nixos/${INST_CONFIG_FILE}
|
printf " \"$i\"\n" >>/mnt/etc/nixos/${INST_CONFIG_FILE}
|
||||||
done
|
done
|
||||||
tee -a /mnt/etc/nixos/${INST_CONFIG_FILE} <<EOF
|
|
||||||
];
|
|
||||||
grub.mirroredBoots = [
|
|
||||||
EOF
|
|
||||||
for i in $DISK; do
|
|
||||||
printf " { devices = [ \"$i\" ] ; efiSysMountPoint = \"/boot/efis/${i##*/}-part1\"; path = \"/boot\"; }\n" \
|
|
||||||
>>/mnt/etc/nixos/${INST_CONFIG_FILE}
|
|
||||||
done
|
|
||||||
tee -a /mnt/etc/nixos/${INST_CONFIG_FILE} <<EOF
|
tee -a /mnt/etc/nixos/${INST_CONFIG_FILE} <<EOF
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -78,6 +78,7 @@ root pool will be replaced by keyfile, embedded in initrd.
|
|||||||
for i in ${DISK}; do
|
for i in ${DISK}; do
|
||||||
umount /mnt/boot/efis/${i##*/}-part1
|
umount /mnt/boot/efis/${i##*/}-part1
|
||||||
done
|
done
|
||||||
|
umount /mnt/boot/efi
|
||||||
|
|
||||||
#. Destroy boot pool::
|
#. Destroy boot pool::
|
||||||
|
|
||||||
@@ -160,6 +161,8 @@ root pool will be replaced by keyfile, embedded in initrd.
|
|||||||
mount ${i}-part1 /mnt/boot/efis/${i##*/}-part1
|
mount ${i}-part1 /mnt/boot/efis/${i##*/}-part1
|
||||||
done
|
done
|
||||||
|
|
||||||
|
mount -t vfat ${INST_PRIMARY_DISK}-part1 /mnt/boot/efi
|
||||||
|
|
||||||
#. As keys are stored in initrd,
|
#. As keys are stored in initrd,
|
||||||
set secure permissions for ``/boot``::
|
set secure permissions for ``/boot``::
|
||||||
|
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ Finish installation
|
|||||||
#. Unmount EFI system partition::
|
#. Unmount EFI system partition::
|
||||||
|
|
||||||
umount /mnt/boot/efis/*
|
umount /mnt/boot/efis/*
|
||||||
|
umount /mnt/boot/efi
|
||||||
|
|
||||||
#. Export pools::
|
#. Export pools::
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user