Background and problem
I want to experiment with gentoo on a laptop that previously only had ubuntu installed. To be clear; the ubuntu installer configured the entire disk for me. Afterwards I made a partition for gentoo. I've done most of the work for installing gentoo, but I am stuck with setting up the boot process.
Any of the following outcomes would be ok:
- have ubuntu be the OS to manage grub, but giving me the option to boot gentoo too.
- reset everything and have gentoo be the OS to manage grub (preventing ubuntu somehow from overwriting the gentoo config)
- have them be coexisting peacefully somehow maybe some other way
Right now my immediate problem is that I can't get the gentoo installation to show up in the ubuntu-managed grub and neither can I get gentoo to replace the ubuntu grub installation.
disk layout
lsblk
nvme0n1 259:0 0 931.5G 0 disk
├─nvme0n1p1 259:1 0 512M 0 part /boot/efi
├─nvme0n1p2 259:2 0 195.3G 0 part /
├─nvme0n1p3 259:3 0 195.3G 0 part
└─nvme0n1p4 259:4 0 540.4G 0 part
or fdisk -l ...
Disk /dev/nvme0n1: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: MKNSSDHL1TB-D8
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 081...96C951
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 1050623 1048576 512M EFI System
/dev/nvme0n1p2 1050624 410650623 409600000 195.3G Linux filesystem
/dev/nvme0n1p3 410650624 820250623 409600000 195.3G Linux filesystem
...
/dev/nvme0n1p1
is the EFI partition and mounted as/boot/efi
on ubuntu (why?)/dev/nvme0n1p2
is where the ubuntu installation resides/dev/nvme0n1p3
is where gentoo is installed
Content of /boot
The gentoo installation manual specifies to mount the EFI partition on /boot
. I did this and as a result, this is what my /boot
currently contains (as seen from the ubuntu installation)
├── config-5.15.0-50-generic
├── efi
│ ├── config-5.15.69-gentoo
│ ├── config-5.15.69-gentoo.old
│ ├── EFI
│ │ ├── BOOT
│ │ │ ├── BOOTX64.EFI
│ │ │ ├── fbx64.efi
│ │ │ └── mmx64.efi
│ │ ├── EFI
│ │ │ └── gentoo
│ │ │ └── grubx64.efi
│ │ ├── gentoo
│ │ │ └── grubx64.efi
│ │ └── ubuntu
│ │ ├── BOOTX64.CSV
│ │ ├── grub.cfg
│ │ ├── grubx64.efi
│ │ ├── mmx64.efi
│ │ └── shimx64.efi
│ ├── grub
│ │ ├── fonts
│ │ │ └── unicode.pf2
│ │ ├── grub.cfg
│ │ ├── grubenv
│ │ ├── locale
│ │ │ ├── ast.mo
...
│ │ │ └── zh_TW.mo
│ │ ├── themes
│ │ │ └── starfield
│ │ │ ├── blob_w.png
...
│ │ │ └── theme.txt
│ │ └── x86_64-efi
│ │ ├── acpi.mod
...
│ │ └── zstd.mod
│ ├── initramfs-5.15.69-gentoo.img
│ ├── System.map-5.15.69-gentoo
│ ├── System.map-5.15.69-gentoo.old
│ ├── vmlinuz-5.15.69-gentoo
│ └── vmlinuz-5.15.69-gentoo.old
├── grub
│ ├── fonts
│ │ └── unicode.pf2
│ ├── gfxblacklist.txt
│ ├── grub.cfg
│ ├── grubenv
│ ├── locale
│ │ ├── en_AU.mo
│ │ ├── en_CA.mo
│ │ ├── en_GB.mo
│ │ └── [email protected]
│ ├── unicode.pf2
│ └── x86_64-efi
│ ├── acpi.mod
...
│ └── zstd.mod
├── initrd.img -> initrd.img-5.15.0-50-generic
├── initrd.img-5.15.0-47-generic
├── initrd.img-5.15.0-48-generic
├── initrd.img-5.15.0-50-generic
├── initrd.img.old -> initrd.img-5.15.0-48-generic
├── memtest86+.bin
├── memtest86+.elf
├── memtest86+_multiboot.bin
├── System.map-5.15.0-47-generic
├── System.map-5.15.0-48-generic
├── System.map-5.15.0-50-generic
├── vmlinuz -> vmlinuz-5.15.0-50-generic
├── vmlinuz-5.15.0-47-generic
├── vmlinuz-5.15.0-48-generic
├── vmlinuz-5.15.0-50-generic
└── vmlinuz.old -> vmlinuz-5.15.0-48-generic
17 directories, 674 files
I think /boot/efi/EFI/EFI/gentoo
happened when I tried to replicate mounting the boot partition on /boot/efi
on the gentoo side. I am pretty sure that's not the correct way to do it...
I've got os-prober
installed and dis-disabled on both OS's. On both sides when I run the grub-update and grub-install commands, they report seeing the other OS so both OS's are aware of each other. All commands report success, no failures, no warnings. I am stumped.
I just can't get gentoo to show up on the actual grub menu that shows when I boot.
Edit: output of update-grub
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.15.0-50-generic
Found initrd image: /boot/initrd.img-5.15.0-50-generic
Found linux image: /boot/vmlinuz-5.15.0-48-generic
Found initrd image: /boot/initrd.img-5.15.0-48-generic
Found linux image: /boot/vmlinuz-5.15.0-47-generic
Found initrd image: /boot/initrd.img-5.15.0-47-generic
Memtest86+ needs a 16-bit boot, that is not available on EFI, exiting
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
Found Gentoo Linux on /dev/nvme0n1p3
Adding boot menu entry for UEFI Firmware Settings ...
done
Edit: os-prober section of /boot/grub/grub.cfg
Apparently os-prober did not convincingly convince grub that I have another OS to boot.
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###