#Arch not booting with grub(installed on ubuntu)
74 messages · Page 1 of 1 (latest)
Does GRUB run the kernel with correct parameters, especially initrd?
yo i am like stupid
whats this in English (Easy)
Tell me please, do you have any prior experience with Arch or any other Linux distros?
From what I understand, you want to dual boot Arch and Ubuntu, is that right?
Yes I want to triple boot Ubuntu Windows and Arch, I already have a dual boot working on Ubuntu with Windows but I cant add arch to it, I have it on the option list but when I select it I get the error
I can still launch Arch by changing boot order
But it does not launch on the grub dual boot
/tripleboot
I assume that all 3 OSes are booted in UEFI mode, not Legacy BIOS, right? Do you have one EFI System Partition (ESP) for all 3 of them? Are kernel images and initramfs'es stored on ESP or in the root filesystem of Ubuntu and Arch, respectively?
I belive so unless I did it wrong
I have 3 EFI system partitions
and i remember making each one with each OS
And GRUB is managed by Ubuntu, right?
Could you show me the contents of Arch's ESP? Is it mounted to /boot/ or some other directory?
How do I check that, sorry I am a complete bot what OS do you want me to be on Arch or Ubuntu?
I do remember doing sm like that on the arch setup
Any of them, just not Windows. Mount the Arch's EFI System Partition in, say, /mnt/arch-esp, unless it's already mounted somewhere (you can check with findmnt). Show me its contents. Are there a kernel image (vmlinuz-linux) and an initramfs?
yo i am like slow
i cant find arch-esp
├─nvme0n1p1 vfat FAT32 SYSTEM 4C5E-0C9B 198.3M 23% /boot/efi
├─nvme0n1p2
├─nvme0n1p3 ntfs Windows 2264607E64605717
├─nvme0n1p4 vfat FAT32 ISO F865-8564
├─nvme0n1p5 vfat FAT32 UUI 00FC-12CE
├─nvme0n1p6 ext4 1.0 68c428a3-854a-4b11-b15c-1626bec79ea2 87.2G 33% /
├─nvme0n1p7 vfat FAT32 03B7-2531
└─nvme0n1p8 ext4 1.0 eb9ebf11-d239-45a8-9b37-28280742ef3b ```
idk if that helps
;-;
Did you run that on Ubuntu?
Command mount has a --mkdir flag that creates the mountpoint if it doesn't exist yet.
yes
I suppose that nvme0n1p1 is Ubuntu ESP, nvme0n1p6 is Ubuntu root filesystem, nvme0n1p7 is Arch ESP and nvme0n1p8 is Arch root filesystem. Is that right?
Yes on the last 3 1 I have no clue because i followed some tutourial to try fix and
yeah
it was windows i thing
think
idk probably is
Okay. So while you're still running Ubuntu, run mount /dev/nvme0n1p7 /mnt/arch-esp --mkdir
skylord-ubuntu@skylord-ubuntu-Legion-T5-26IOB6:~$ mount /dev/nvme0n1p7 /mnt/arch-esp --mkdir
mount: /mnt/arch-esp: operation permitted for root only.
sudo mount /dev/nvme0n1p7 /mnt/arch-esp --mkdir
mount: /mnt/arch-esp: /dev/nvme0n1p7 already mounted on /mnt/arch-esp.
dmesg(1) may have more information after failed mount system call.
Okay, so you've already done that before. Run ls /mnt/arch-esp/
skylord-ubuntu@skylord-ubuntu-Legion-T5-26IOB6:~$ ls /mnt/arch-esp/
EFI grub initramfs-linux.img intel-ucode.img loader 'System Volume Information' vmlinuz-linux
skylord-ubuntu@skylord-ubuntu-Legion-T5-26IOB6:~$
Okay. This suggests that your Arch mounts ESP at /boot, so it stores both the kernel, the initramfs and the bootloader (GRUB in your case).
Still on Ubuntu, could you show the content of /boot/grub/grub.cfg? This is the config file of GRUB managed by Ubuntu.
When Ubuntu regenerates that config file, it should use os-prober to detect other operating systems - Windows and Arch in your case. As we can see, it does detect Arch, but it seems like it passes wrong root filesystem UUID.
The UUID in the kernel panic report you've sent appears to match your nvme0n1p8 partition.
Try to run sudo mount /dev/nvme0n1p8 /mnt/arch-root . This will mount Arch root fs. Then run sudo update-grub .
skylord-ubuntu@skylord-ubuntu-Legion-T5-26IOB6:~$ sudo mount /dev/nvme0n1p8 /mnt/arch-root
mount: /mnt/arch-root: mount point does not exist.
dmesg(1) may have more information after failed mount system call.
this fine?
According to this Arch Wiki page, other OS' partitions should be mounted when os-prober runs.
Again, add --mkdir flag.
skylord-ubuntu@skylord-ubuntu-Legion-T5-26IOB6:~$ sudo update-grub
Sourcing file `/etc/default/grub'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.14.0-37-generic
Found initrd image: /boot/initrd.img-6.14.0-37-generic
Found memtest86+ 64bit EFI image: /boot/memtest86+x64.efi
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 Windows Boot Manager on /dev/nvme0n1p1@/EFI/Microsoft/Boot/bootmgfw.efi
Found Arch Linux on /dev/nvme0n1p8
Adding boot menu entry for UEFI Firmware Settings ...
done
skylord-ubuntu@skylord-ubuntu-Legion-T5-26IOB6:~$
Send /boot/grub/grub.cfg once again. We'll see if it changed. Specifically, we'd expect the search command before Arch boot to have UUID of nvme0n1p8, not nvme0n1p7.
Maybe try to edit /boot/grub/grub.cfg and change line 232 from:
search --no-floppy --fs-uuid --set=root 03B7-2531
to
search --no-floppy --fs-uuid --set=root eb9ebf11-d239-45a8-9b37-28280742ef3b
Done
should I try grub?
This is only a temporary fix.
According to this Unix StackExchange post, os-prober can take informations from other grub.cfg files. You could try to rename /mnt/arch-esp/grub/grub.cfg to /mnt/arch-esp/grub/grub.cfg.bak and run sudo update-grub in Ubuntu once more.
Okay, try to reboot.
Ah, I think it was supposed to be the ESP UUID in that search command. Revert the previous change.
But I'm not sure why is there initrd /intel-ucode.img /boot/initramfs-linux.img a few lines below that. I think that it should be initrd /intel-ucode.img /initramfs-linux.img, because initramfs is directly in the boot partition, not in a boot/ subdirectory.
so i cange initrd /intel-ucode.img /boot/initramfs-linux.img to initrd /intel-ucode.img /initramfs-linux.img
and test
Yes
line 234
Yes
But this is only a temporary fix. When Ubuntu updates grub.cfg, those changes will be overwritten.
It looks like a bug in os-prober perhaps.
The StackExchange post I linked above mentions that you should delete (or rename) Arch's grub.cfg, so os-prober doesn't get confused.
Try doing that ^
So you've renamed grub.cfg on Arch's ESP (so it doesn't mess with Ubuntu's os-prober and then regenerated Ubuntu's grub.cfg by running sudo update-grub - right?
If you can now boot Arch successfully, then it seems like you're good!