wrong BOOT_DEVICE when using nvme
Thomas Lange
lange at cs.uni-koeln.de
Thu Oct 27 21:40:52 CEST 2022
In 2019 I got this bug report on IRC. I now can answer it. sorry for
the delay ;-)
----------------------------------------------------------------------------
07/24/19 [14:02:13] < lindbergio> Hi! The BOOT_DEVICE variable gets the same value as the ROOT_DEVICE in the disk_var.sh file (/dev/vg0/root) while it should be /dev/nvme0n1p1 or the UUID
("5C48-D830"). This results in GRUB not getting installed as it tries to install to $BOOT_DEVICE. Can anyone help me understand why the BOOT_DEVICE
variable gets the wrong value? Here is a paste of the disk_config I use
07/24/19 [14:02:15] < lindbergio> https://paste.debian.net/plain/1092876.
07/24/19 [14:35:22] < lindbergio> It works if I change the mountpoint for the boot partition from "/boot/efi" to "/boot". Then the BOOT_DEVICE=/dev/nvme0n1p1.
07/24/19 [14:36:42] < lindbergio> According to the EFI/ESP example in setup-storage(8) one should use /boot/efi and not /boot.
07/24/19 [16:10:48] < lindbergio> Looks like find_boot_mnt_point() in Fstab.pm only looks for /boot and thus /boot/efi fails. Is that correct?
disk_config disk1 disklabel:gpt fstabkey:uuid bootable:1
primary /boot/efi 500 vfat rw
primary - 0- - -
disk_config lvm always_format:all
vg vg0 disk1.2
vg0-swap swap 8192 swap rw
vg0-var /var 10240 ext4 rw
vg0-home /home 50% ext4 rw
vg0-root / 34816 ext4 rw
----------------------------------------------------------------------------
You are right, the BOOT_DEVICE is set to the same value as
ROOT_PARTITION (btw, ROOT_DEVICE does not exists in FAI).
Here's the disk_var.sh using your disk_config:
BOOT_DEVICE=${BOOT_DEVICE:-"/dev/vg0/root"}
SWAPLIST=${SWAPLIST:-"/dev/vg0/swap"}
ESP_DEVICE=${ESP_DEVICE:-/dev/nvme0n1p1}
ROOT_PARTITION=${ROOT_PARTITION:-/dev/vg0/root}
BUT! In the script GRUB_EFI/10-setup BOOT_DEVICE will be redefined if
BOOT_DEVICE is a link to a /dev/md device. Here's the output with some
added debug output:
===== shell: GRUB_EFI/10-setup =====
ainsl: appending to /target/etc/default/grub: GRUB_DISABLE_OS_PROBER=true
BOOT_DEVICE: /dev/vg0/root
++ readlink -f /dev/vg0/root
+ _bdev=/dev/dm-3
+ '[' /dev/dm = /dev/dm ']'
++ lvs --noheadings -o devices /dev/vg0/root
++ sed -e 's/^*\([^(]*\)(.*$/\1/'
+ BOOT_DEVICE=' /dev/nvme0n1p2(2983)'
BOOT_DEVICE: /dev/nvme0n1p2(2983)
So it's correct the the value is wrong in disk_var.sh but FAI will
correctly install grub into the disks.
--
regards Thomas
More information about the linux-fai
mailing list