I'm trying to follow the instructions here - https://bbs.archlinux.org/viewtopic.php?id=204583 to install linux-lts because of the problem with the new kernels and EFI handover. But my /boot directory doesn't have /boot/grub/grub.cfg. It only has /boot/EFI/{BOOT,ubuntu}. within which I don't see any .cfg files. I have a dual-boot system where the primary OS is Ubuntu, and then I partitioned the HDD and installed Arch Linux on it. Can someone please tell me how to install linux-lts on Arch Linux?
#[Solved] Unable to install linux-lts
46 messages · Page 1 of 1 (latest)
looks like you're not using arch's grub
meaning the distro which actually controls your grub is ubuntu
get it to find and add arch's linux-lts or just ditch grub and use EFISTUB
so i need to try and add the entry when logged into my Ubuntu partition?
yeah, because the grub installed on your ESP was put there by ubuntu
no .csv files on /boot/EFI though?
honestly, EFISTUB is just so much easier
no just a lot of .efi files in both BOOT and ubuntu under /boot/EFI
i'll take a look at EFISTUB
that's weird, are you positive your system still boots fine into ubuntu and arch with regular linux?
WAIT, are you mounting your ESP on /boot?
cuz that looks like it
yes my /dev/sda1 mounts to /boot , i'm able to boot into both ubuntu and arch linux
did you set up that as a mountpoint only on arch?
no thats a mountpoint on ubuntu as well
the thing is: arch installs kernel images under /boot
the pacman packages but vmlinuz-linux there
so like, how the hell are you even booting if they're not there and you're not using EFISTUB?
hmmm i dont know, i followed some instruction guide on how to dual boot Arch Linux nad Ubuntu
can you list the contents of your /boot partition?
EFI initramfs-linux.img initramfs-linux-lts.img vmlinuz-linux
initramfs-linux-fallback.img initramfs-linux-lts-fallback.img intel-ucode.img vmlinuz-linux-lts
oh, so your kernel is there lmao
lts as well too
bruh, with this setup all you need to do to use EFISTUB is run a single command
I'd place the arch kernels in a subdirectory but technically you can use it as-is
i'll take a look at EFISTUB, first time i'm hearing about it
i've used GRUB for a while now
basically, your kernel image (vmlinuz-linux*) is already an efi application
you could just boot it, but you need to pass the kernel cmdline args and most mobos don't let you do that on the BIOS (but they support it)
firstly, paste here your /proc/cmdline contents
/proc/cmdline: BOOT_IMAGE=/vmlinuz-linux root=/dev/dm-2
oh got that's so prone to breakage
get the UUID of your root partition for god's sake
sorry how do i do that?
lsblk -f /dev/dm-2
Make a subdirectory for your arch stuff on the ESP: sudo mkdir /boot/EFI/arch.
Move all the stuff there: sudo mv /boot/*.img /boot/vmlinuz-linux* /boot/EFI/arch
After that, umount your ESP, and edit your fstab to mount it under /efi and add a line to bind-mount /boot to /efi/EFI/arch:
UUID=YOUR-UUID /efi vfat defaults 0 1
/efi/EFI/arch /boot none defaults,bind 0 0
remount your ESP.
Then, get the UUID you obtained from lsblk -f /dev/dm-2.
Also, I noticed you installed intel microcode. Might as well use it:
ROOT_FS_UUID='deadbeef-dead-beef-dead-b1058b4df00d'
CPU_MANUFACTURER='intel'
for KERNEL in "" "-lts"; do
sudo efibootmgr --create --disk /dev/sda --loader '\EFI\arch\vmlinuz-linux'$KERNEL --label 'arch linux'$KERNEL --unicode 'root="UUID='$ROOT_FS_UUID'" rw initrd=\EFI\arch\'$CPU_MANUFACTURER'-ucode.img initrd=\EFI\arch\initramfs-linux'$KERNEL'.img'
done
With this, you should be able to choose what kernel to boot in using your computer's boot menu.
script should be pretty self explanatory, you can also add the options for booting with the fallback initramfs (I just disable them in mkinitcpio since I'm testing lots of kernels and it saves a good amount of space on my ESP)
check some tutorials on efibootmgr, it's a lifesaver tool
once you learn it you'll pretty much never reinstall a bootloader again
thanks for your help @green bramble
s/[ │]([├└]─)?([^ >=]).*/\2/ received a thank you cookie!
Np. Also, with this you should be able to just use recent kernels without EFI handover.