Subj : nvme grub2 efi boot To : Benny Pedersen From : Maurice Kinal Date : Sat Jul 16 2022 09:00 pm Hey Benny! I have it booting to 4k with a 32p font I created from terminus-font's ter-u32b.bdf since regular console-fonts won't work with grub2 efi boots. This works; grub-mkfont -o /boot/efi/EFI/ZNVER2_NVME/test32.ttf ter-u32b.bdf Now the /etc/default/grub looks like this; -={ /etc/default/grub starts }=- GRUB_DISABLE_LINUX_UUID=true GRUB_DISABLE_LINUX_PARTUUID=false GRUB_GFXMODE=auto GRUB_GFXPAYLOAD_LINUX=keep GRUB_TERMINAL_OUTPUT="gfxterm" GRUB_FONT=/boot/efi/EFI/ZNVER2_NVME/test.ttf -={ /etc/default/grub ends }=- Running 'grub-mkconfig -o /boot/grub/grub.cfg' results in; -={ /boot/grub/grub.cfg starts }=- # # DO NOT EDIT THIS FILE # # It is automatically generated by grub-mkconfig using templates # from /etc/grub.d and settings from /etc/default/grub # ### BEGIN /etc/grub.d/00_header ### if [ -s $prefix/grubenv ]; then load_env fi if [ "${next_entry}" ] ; then set default="${next_entry}" set next_entry= save_env next_entry set boot_once=true else set default="0" fi if [ x"${feature_menuentry_id}" = xy ]; then menuentry_id_option="--id" else menuentry_id_option="" fi export menuentry_id_option if [ "${prev_saved_entry}" ]; then set saved_entry="${prev_saved_entry}" save_env saved_entry set prev_saved_entry= save_env prev_saved_entry set boot_once=true fi function savedefault { if [ -z "${boot_once}" ]; then saved_entry="${chosen}" save_env saved_entry fi } function load_video { if [ x$feature_all_video_module = xy ]; then insmod all_video else insmod efi_gop insmod efi_uga insmod ieee1275_fb insmod vbe insmod vga insmod video_bochs insmod video_cirrus fi } insmod part_gpt insmod fat search --no-floppy --fs-uuid --set=root DD27-C0CC if loadfont /EFI/ZNVER2_NVME/test.ttf ; then set gfxmode=3840x2160x32,2560x1440x32,1920x1080x32,1280x800x32,1024x768x32,800x600x32,auto load_video insmod gfxterm set locale_dir=$prefix/locale set lang=en_CA insmod gettext fi terminal_output gfxterm if [ x$feature_timeout_style = xy ] ; then set timeout_style=menu set timeout=5 # Fallback normal timeout code in case the timeout_style feature is # unavailable. else set timeout=5 fi ### END /etc/grub.d/00_header ### ### BEGIN /etc/grub.d/10_linux ### menuentry 'GNU/Linux' --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-86518520-dafc-40ae-b4d5-47a565bdb0ab' { load_video set gfxpayload=keep insmod gzio insmod part_gpt insmod ext2 search --no-floppy --fs-uuid --set=root 86518520-dafc-40ae-b4d5-47a565bdb0ab echo 'Loading Linux 5.18.12 ...' linux /boot/vmlinuz-5.18.12 root=PARTUUID=4353f2c2-f6eb-bb2d-da55-21dff4f1b9eb ro } submenu 'Advanced options for GNU/Linux' $menuentry_id_option 'gnulinux-advanced-86518520-dafc-40ae-b4d5-47a565bdb0ab' { menuentry 'GNU/Linux, with Linux 5.18.12' --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.18.12-advanced-86518520-dafc-40ae-b4d5-47a565bdb0ab' { load_video set gfxpayload=keep insmod gzio insmod part_gpt insmod ext2 search --no-floppy --fs-uuid --set=root 86518520-dafc-40ae-b4d5-47a565bdb0ab echo 'Loading Linux 5.18.12 ...' linux /boot/vmlinuz-5.18.12 root=PARTUUID=4353f2c2-f6eb-bb2d-da55-21dff4f1b9eb ro } menuentry 'GNU/Linux, with Linux 5.18.12 (recovery mode)' --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.18.12-recovery-86518520-dafc-40ae-b4d5-47a565bdb0ab' { load_video set gfxpayload=keep insmod gzio insmod part_gpt insmod ext2 search --no-floppy --fs-uuid --set=root 86518520-dafc-40ae-b4d5-47a565bdb0ab echo 'Loading Linux 5.18.12 ...' linux /boot/vmlinuz-5.18.12 root=PARTUUID=4353f2c2-f6eb-bb2d-da55-21dff4f1b9eb ro single } } ### END /etc/grub.d/10_linux ### ### BEGIN /etc/grub.d/20_linux_xen ### ### END /etc/grub.d/20_linux_xen ### ### BEGIN /etc/grub.d/30_os-prober ### ### END /etc/grub.d/30_os-prober ### ### BEGIN /etc/grub.d/30_uefi-firmware ### ### END /etc/grub.d/30_uefi-firmware ### ### BEGIN /etc/grub.d/40_custom ### # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above. ### END /etc/grub.d/40_custom ### ### BEGIN /etc/grub.d/41_custom ### if [ -f ${config_directory}/custom.cfg ]; then source ${config_directory}/custom.cfg elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then source $prefix/custom.cfg fi ### END /etc/grub.d/41_custom ### -={ /boot/grub/grub.cfg ends }=- I also have an uefi for the sata interface and can successfully install to a hotswapped 2.5" SSD on my so-called file server and then pop it into the target system - ASRock 4X4-4000 Series for example - and boot it up. That is what I initially did in order to create the above ZNVER2_NVME. Note that in the above cfg there are no references to /dev/nvme0n1p2 where the rootfs is installed to. For cross-referencing here is the output of 'blkid' for the installed nvme disk; -={ Output for 'blkid | grep /dev/nvme0n1 | sort' starts }=- /dev/nvme0n1p1: SEC_TYPE="msdos" UUID="DD27-C0CC" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="6f48dbf7-ebc9-a034-7832-03775ede9c0f" /dev/nvme0n1p2: UUID="86518520-dafc-40ae-b4d5-47a565bdb0ab" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="4353f2c2-f6eb-bb2d-da55-21dff4f1b9eb" /dev/nvme0n1p3: UUID="ee7bea5d-bb38-406c-a06c-74b421aee28e" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="Linux filesystem" PARTUUID="1476b6d6-d193-fa1d-7412-e1a92383cba0" /dev/nvme0n1p4: UUID="a9da5078-a289-4ad6-8d3c-ae3d49fe60d8" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="Linux filesystem" PARTUUID="263c2db0-ac4a-5055-2e63-2ed757ee5b2e" /dev/nvme0n1p5: UUID="98283d9d-4d0d-43e6-b204-751f588fc4fb" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="Linux filesystem" PARTUUID="3842d1a5-5fa3-1733-7214-c195988d3648" -={ Output for 'blkid | grep /dev/nvme0n1 | sort' ends }=- I can also do the above for the 2.5" SSD if you think there might be some help in that. It is DEFINETLY different and I think the nvme disks are handling uefi boots far better than sata. The switch from grub to the linux terminal isn't seamless as such but is far less noticable than not supplying a more or less matching sized console-font such as latarcyrheb-sun32 which is what I am deploying. The boot penguins get displayed as part of the grub display just before the real terminal display kicks in. Life is good, Maurice .... ðone wisdom ðe ðe God sealde ðær ðær ðu hiene befæstan mæge, befæste. Wherever you can use the wisdom God gave you, use it. --- GNU bash, version 5.1.16(1)-release (x86_64-znver1-linux-gnu) * Origin: Little Mikey's EuroPoint @ (2:280/464.113) .