Bug#1078656: grub-pc: please use 'grub-install --disk-module=native /dev/sdX'
Martin-Éric Racine
martin-eric.racine at iki.fi
Wed Aug 14 02:59:35 BST 2024
ke 14. elok. 2024 klo 1.08 Pascal Hambourg (pascal at plouf.fr.eu.org) kirjoitti:
>
> On 13/08/2024 at 22:02, Martin-Éric Racine wrote:
> >
> > I've been trying to implement a chainloader (see below at
> > /etc/grub.d/40_custom) to boot off external USB disks as needed.
> > Finding external disks requires using GRUB's 'nativedisk'
>
> Only with flawed BIOS which cannot boot from USB or do not expose all
> drives. I observed that some BIOS expose only a USB drive when booting
> from it, but others expose all USB drives regardless of the boot device.
This BIOS only shows fd0 and hd0, when I type 'ls' on GRUB's command line...
> > Further investigating this suggests that if Debian used 'grub-install
> > --disk-module=native /dev/sdX' to install GRUB, this would work as
> > expected.
>
> Native disk drivers do not work properly on all machines, so they cannot
> be enabled by default for a rare use case.
... however, typing 'nativedisk' suddenly finds the CD and USB drives,
except that it uses a different naming strategy.
> > menuentry "USB chainloader" {
> > insmod part_msdos
> > insmod ext2
> > insmod fat
> > insmod iso9660
>
> Why do you load these modules ? Chainloading a disk boot sector does not
> require to read any partition table nor filesystem.
> Instead you should load the "chain" module which provides the
> "chainloader" command.
>
> > nativedisk
> > set root='ata0,msdos1'
> > chainloader (usb0)+1
> > }
>
> Why do you set $root to an internal disk partition if you intend to
> chainload a USB drive ? Did you mean to set $prefix so that GRUB can
> find its directory and modules after switching to native disk drivers ?
You're welcome to suggest a better recipe.
Martin-Éric
More information about the Pkg-grub-devel
mailing list