wrong BOOT_DEVICE when using nvme

Thomas Lange <[email protected]>
Newsgroups gmane.linux.debian.fai
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.