Build a system that can install GRUB2 on UEFI and on legacy systems
grub-efi-amd64
and grub-pc
are not coinstallable. It turns out however that
they do not contain GRUB, but the machinery to keep GRUB configuration up to
date on the current system. If I want to be able to install GRUB on other
systems, I can use the -bin
packages:
apt install grub-common grub2-common grub-efi-amd64-bin grub-pc-bin
That gave me a grub-install command that worked on both kinds of systems.
GRUB configuration on a UEFI system
An old GRUB configuration on a UEFI system gave me this:
error: no suitable mode found
Booting blind
which boots on a blank screen until the kernel reinitialises the video hardware.
The Arch Linux Wiki has excellent documentation for this case, and here's the resulting UEFI GRUB snippet:
insmod efi_gop
insmod efi_uga
insmod font
if loadfont ${prefix}/fonts/unicode.pf2
then
insmod gfxterm
set gfxmode=auto
set gfxpayload=keep
terminal_output gfxterm
fi
# Follow with the usual GRUB menu entries…
Use an unsigned local APT repository for testing/development purposes
I found out today that one can have options in square brackets in sources.list:
# In /etc/apt/sources.list.d/local-devel.list
deb [trusted=yes] http://localhost:1234/debian jessie main
pabs on IRC also mentioned local-apt-repository but I haven't tried it.
Booting Jessie Debian Live with a kernel from jessie-backports
This requires working around #844749 and 844749.
In hooks/9000-fix-bugs.chroot
I ended up having this:
# Workaround per https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=844749
if ! grep -q ^nls_ascii /etc/initramfs-tools/modules
then
echo "nls_ascii" >> /etc/initramfs-tools/modules
fi
# Workaround per https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=844749
if ! grep -q ^overlay /etc/initramfs-tools/modules
then
echo "overlay" >> /etc/initramfs-tools/modules
fi
Using a custom kernel in Jessie Debian Live
How do I have live-build
pick a custom kernel package instead of the default one?
lb config --linux-packages linux-image-$SOMETHING
- Use equivs to build a
linux-image-$SOMETHING-$ARCH
package that depends on the kernel that you built.