grml / grml-debootstrap

wrapper around debootstrap
59 stars 27 forks source link

GRUB: use persistent device names under /dev/disk/by-id/ for install_devices #207

Closed mika closed 1 year ago

mika commented 1 year ago

We pass the requested --grub … device argument to the GRUB package configuration, like:

| # debconf-show grub-pc | grep grub-pc/install_devices: | * grub-pc/install_devices: /dev/sda

But the GRUB package tries to use /dev/disk/by-id/... for install_devices setting (since 2010 and Debian/squeeze AFAICS), as can be observed by reconfiguring the GRUB package (which then automatically converts the /dev/sdX to the proper /dev/disk/by-id/... device when being asked in the debconf prompt):

| # dpkg-reconfigure grub-pc
| grub-pc: Running grub-install ...
| [...]
| # debconf-show grub-pc | grep grub-pc/install_devices: | * grub-pc/install_devices: /dev/disk/by-id/ata-VBOX_HARDDISK_VBf4f4391c-6316fa69

The available_ids() and device_to_id() helper functions are based on code by Colin Watson cjwatson@debian.org in GRUB's postinst script of the Debian package, see git commits 4830efd9e + ce2a43c85 at https://salsa.debian.org/grub-team/grub.git.

Closes: https://github.com/grml/grml-debootstrap/issues/206