You are not logged in.
I've been scratching my head at this for a lil bit.
I have a cheapo thinkpad that I want to get running Arch and to that end I've been going through the install guide, but for some reason I've run into this issue that I've never seen before (granted I have only installed Arch a few times prior but still).
Whenever I got through the process ostensibly seamlessly (without the archinstall script if that's any difference) I reboot everything and alas, Grub doesn't show me Arch. I pacstrapped both grub and efibootmgr
The output of lsblk (on the USB live disk)
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 795.7M 1 loop /run/archiso/airootfs
sda 8:0 1 0B 0 disk
sdb 8:16 1 59.8G 0 disk
└─sdb1 8:17 1 59.8G 0 part
nvme0n1 259:0 0 238.5G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /mnt/boot/efi
├─nvme0n1p2 259:2 0 4G 0 part [SWAP]
└─nvme0n1p3 259:3 0 233.5G 0 part /mntThe output of mount (on the USB)
/dev/nvme0n1p3 on / type ext4 (rw,relatime)
/dev/nvme0n1p1 on /boot/efi type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sys on /sys type sysfs (ro,nosuid,nodev,noexec,relatime)
efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=3927588k,nr_inodes=981897,mode=755,inode64)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
shm on /dev/shm type tmpfs (rw,nosuid,nodev,relatime,inode64)
run on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755,inode64)
tmp on /tmp type tmpfs (rw,nosuid,nodev,inode64)
run on /etc/resolv.conf type tmpfs (rw,nosuid,nodev,relatime,mode=755,inode64)
/dev/nvme0n1p1 on /boot/efi type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro)The output of fdisk -l (still on the USB)
Disk /dev/nvme0n1: 238.47 GiB, 256060514304 bytes, 500118192 sectors
Disk model: SAMSUNG MZVLW256HEHP-000L7
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: F99F34A2-D329-40A0-AF99-6EC524992C57
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 2099199 2097152 1G EFI System
/dev/nvme0n1p2 2099200 10487807 8388608 4G Linux swap
/dev/nvme0n1p3 10487808 500117503 489629696 233.5G Linux root (x86-64)
Disk /dev/sdb: 59.75 GiB, 64160400896 bytes, 125313283 sectors
Disk model: Flash Drive
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: dos
Disk identifier: 0x328a2f3b
Device Boot Start End Sectors Size Id Type
/dev/sdb1 * 2048 125313282 125311235 59.8G c W95 FAT32 (LBA)
Disk /dev/loop0: 795.73 MiB, 834379776 bytes, 1629648 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesIn summary, /dev/nvme0n1p3 is my root and mounted at /mnt, /dev/nvme0n1p1 is my boot on /mnt/boot/efi, nvme0n1p2 is my swap.
Now I arch-chroot /mnt onto my Arch install and run the grub-install with the flags specified in the Grub installation:
https://wiki.archlinux.org/title/GRUB#Installation
[root@archiso /]# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB
Installing for x86_64-efi platform.
Installation finished. No error reported.Next I run grub-mkconfig, again referencing the grub installation document
[root@archiso /]# grub-mkconfig -o /boot/grub/grub.cfg
Generating grub configuration file ...
Warning: os-prober will not be executed to detect other bootable partitions.
systems on them will not be added to the GRUB boot configuration.
Check Grub_DISABLE_OS_PROBER documentation entry
Adding boot menu entry for UEFI Firmware Settings ...
doneEverything I've read says this is a perfectly normal thing to see, and I'm not dual booting so I don't need to worry.
This is the grub.cfg that gets produced
#
# 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 ###
insmod part_gpt
insmod part_msdos
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
}
if [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 887d2375-7c4d-4ace-9121-8d6de5a70fa5
font="/usr/share/grub/unicode.pf2"
fi
if loadfont $font ; then
set gfxmode=auto
load_video
insmod gfxterm
fi
terminal_input console
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 ###
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/25_bli ###
if [ "$grub_platform" = "efi" ]; then
insmod bli
fi
### END /etc/grub.d/25_bli ###
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/30_uefi-firmware ###
if [ "$grub_platform" = "efi" ]; then
fwsetup --is-supported
if [ "$?" = 0 ]; then
menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
fwsetup
}
fi
fi
### 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 ###At this point I exit the arch installation and reboot. When I reach the boot menu though, I don't see any other options than "UEFI settings".
Last edited by Burwicke (2024-07-06 06:46:27)
Offline
Hey! I solved it!
Okay the one thing I didn't check was the output of efibootmgr. When I did, I noted a very conspicuous absence of arch. Why? Shouldn't it be added during grub-install? Who knows. I manually added it with the command:
efibootmgr --create --disk=/dev/nvme0n1 --part=1 --label="arch" --loader='\boot\grub\efi\EFI\arch\grubx64.efi'
(I also got rid of some old EFI records like old distros and Windows boot manager that's been polluting the bootloader for I'm sure a while now)
When I rebooted, it went to the grub screen and I saw Arch.
Last edited by Burwicke (2024-07-06 06:46:40)
Offline
this looks like you have installed multiple boot loaders in several difrerent directories - and have missed installing any kernel
the path you've given to efibootmgr also looks very wrong
also: you specified --bootloader-id=GRUB - so it will show up as GRUB
in the manual line you give it the label arch - hence it shows up as arch
you seem to messed up something at some point - fix will be easy from a booted archiso: clean up the messed up boot entries, wipe the esp and /boot and do a clean install
also: mount the esp only once
Offline