Page 1 of 2 12 LastLast
Results 1 to 10 of 16

Thread: Ubuntu UEFI grub does not add Arch Linux correctly

  1. #1
    Join Date
    Aug 2009
    Beans
    Hidden!
    Distro
    Xubuntu 20.04 Focal Fossa

    Ubuntu UEFI grub does not add Arch Linux correctly

    If you have Arch Linux installed in UEFI/GPT mode on SSD, when you add any version of Ubuntu in UEFI/GPT mode, it does not create the correct initrd boot line correctly for Arch leaving just the ability to boot into the fallback kernel.
    Ubuntu Grub adds this:
    Code:
    initrd    /intel-ucode.img
    However with the Grub on Arch Linux, it creates the correct initrd boot line:
    Code:
    initrd    /intel-ucode.img /initramfs-linux.img
    I create a bug on Ubuntu grub to hopefully get this fixed. If you have this problem add your name.

    https://bugs.launchpad.net/ubuntu/+s...r/+bug/1772314

  2. #2
    Join Date
    Aug 2009
    Beans
    Hidden!
    Distro
    Xubuntu 20.04 Focal Fossa

    Re: Ubuntu UEFI grub does not add Arch Linux correctly

    Not many people using Ubuntu along with Arch?

  3. #3
    Join Date
    Aug 2009
    Beans
    Hidden!
    Distro
    Xubuntu 20.04 Focal Fossa

    Re: Ubuntu UEFI grub does not add Arch Linux correctly

    FWIW, this bug was fixed in openSUSE last week.

  4. #4
    Join Date
    Mar 2013
    Location
    West Yorkshire
    Beans
    102
    Distro
    Ubuntu Development Release

    Re: Ubuntu UEFI grub does not add Arch Linux correctly

    same problem with antergos..

  5. #5
    Join Date
    Aug 2009
    Beans
    Hidden!
    Distro
    Xubuntu 20.04 Focal Fossa

    Re: Ubuntu UEFI grub does not add Arch Linux correctly

    Quote Originally Posted by JonPaul View Post
    same problem with antergos..
    Same problem in every Linux system there is, I'm pretty sure.
    I've installed openSUSE Tumbleweed, Fedora 28, CentOS, Sabayon Linux and all Debian based systems, possibly a few others have this same problem.

    They do not take into account the possibility that the initrd could have 2 .img entries.

    openSUSE is the only one I'm aware of that has fixed this.

  6. #6
    Join Date
    Nov 2009
    Beans
    3,336

    Re: Ubuntu UEFI grub does not add Arch Linux correctly

    Its almost every linux system that seems not to want to include arch or manjaro .......

    In the past I have just kept manjaro as the first bootloader ..... but as you say ...... by now it should have been included.

    Maybe we all just get used to our own workarounds ...... but it would be helpful to get it fixed properly if anyone can do that please.

  7. #7
    Join Date
    Aug 2009
    Beans
    Hidden!
    Distro
    Xubuntu 20.04 Focal Fossa

    Re: Ubuntu UEFI grub does not add Arch Linux correctly

    Quote Originally Posted by JonPaul View Post
    same problem with antergos..
    I got to thinking later, Antergos is based on Arch so, that's crazy.

    Quote Originally Posted by 23dornot23d View Post
    Its almost every linux system that seems not to want to include arch or manjaro .......

    In the past I have just kept manjaro as the first bootloader ..... but as you say ...... by now it should have been included.

    Maybe we all just get used to our own workarounds ...... but it would be helpful to get it fixed properly if anyone can do that please.
    I opened up the bug on Ubuntu and it isn't going any where. I opened the same bug on openSUSE and Michael Chang, the developer worked with me to fix it and so that is one down.

    My workaround is to make a custom grub on every system I install because unlike the Legacy/MBR partitioning, with UEFI you cannot keep your grub on any one system.
    If a system updates it's grub, it also installs it there and I hate typing in "/initramfs-linux.img" on the Arch menuentry. Also, surprisingly most of the other menuentries are wrong on other distros.

    I've learned a lot like how to customize each grub on each system I have - Ubuntu, Arch Linux, openSUSE, Fedora and CentOS.
    But, I dropped CentOS when I found that it isn't good for a desktop OS more for a server. The conky version was 1.9 I'm pretty sure.

    I installed Xubuntu 18.04 this morning and my custom entries would be this (using UUIDs):
    Code:
    cavsfan@cavsfan-xubuntu:~$ sudo blkid | grep sdc
    [sudo] password for cavsfan: 
    /dev/sdc1: UUID="688D-126B" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="3c1b6d6f-8a24-43da-b595-8c304ceee48d"
    /dev/sdc2: PARTLABEL="Microsoft reserved partition" PARTUUID="49992d5b-79cd-4934-a12f-11782bb345bd"
    /dev/sdc3: LABEL="C:" UUID="C4968A52968A44C0" TYPE="ntfs" PARTLABEL="Windows_10" PARTUUID="345c85f4-bce7-4bc7-bbe0-db03eb319cad"
    /dev/sdc4: UUID="bbc771f8-ba61-4e50-aeca-d2754b112aee" TYPE="swap" PARTLABEL="swap" PARTUUID="c39d976b-91cd-4d59-a270-91398b764d3f"
    /dev/sdc5: LABEL="ArchLinux" UUID="bbca28b2-503e-4dc8-9850-c54bd0492da8" TYPE="ext4" PARTLABEL="Arch_Linux" PARTUUID="5312b771-0835-4957-80a6-9a8a7107f24a"
    /dev/sdc6: LABEL="Media" UUID="840ac879-510a-4b8d-be01-9d3a5f37dbb2" TYPE="ext4" PARTLABEL="Media" PARTUUID="61e2e7f9-1a98-44f7-881e-ae85fceaf994"
    /dev/sdc7: LABEL="openSUSE" UUID="06d2aa5d-5c70-4916-9f8f-219f93668d52" TYPE="ext4" PARTLABEL="openSUSE" PARTUUID="6c7b8cd9-4350-4600-8e9e-ff1eb2933c9f"
    /dev/sdc8: LABEL="Fedora" UUID="56ffa54a-e3c5-4b5d-9a21-fc14f662f7bb" TYPE="ext4" PARTLABEL="Fedora" PARTUUID="887a3d2f-73ed-4894-b566-3e37294757e7"
    /dev/sdc9: UUID="27fb4082-7bd3-4974-9fa5-d2b43886513b" TYPE="ext4" PARTUUID="2edba524-105d-40b4-9242-530ca362a32a"
    /etc/grub.d/06_custom:
    Code:
    #!/bin/sh
    echo 1>&2 "Adding Arch Linux, Fedora 28 (Workstation), openSUSE Tumbleweed, Xubuntu 18.04 and Windows 10"
    exec tail -n +4 $0
    # 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.
    menuentry 'Arch Linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-bbca28b2-503e-4dc8-9850-c54bd0492da8' {
         load_video
         set gfxpayload=keep
         insmod gzio
         insmod part_gpt
         insmod fat
         set root='hd2,gpt1'
         search --no-floppy --fs-uuid --set=root 688D-126B
         linux  /vmlinuz-linux root=UUID=bbca28b2-503e-4dc8-9850-c54bd0492da8 rw  quiet
         initrd /intel-ucode.img /initramfs-linux.img
    }
    menuentry 'Arch Linux (fallback kernel)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-fallback-bbca28b2-503e-4dc8-9850-c54bd0492da8' {
         load_video
         set gfxpayload=keep
         insmod gzio
         insmod part_gpt
         insmod fat
         set root='hd2,gpt1'
         search --no-floppy --fs-uuid --set=root 688D-126B
         linux  /vmlinuz-linux root=UUID=bbca28b2-503e-4dc8-9850-c54bd0492da8 rw  quiet
         initrd /initramfs-linux-fallback.img
    }
    menuentry 'Fedora (Workstation)' --class fedora --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-simple-9084e0b8-b05b-41af-a4eb-902a0bebe70a' {
         load_video
         set gfxpayload=keep
         insmod gzio
         insmod part_gpt
         insmod ext2
         set root='hd2,gpt8'
         search --no-floppy --fs-uuid --set=root 9084e0b8-b05b-41af-a4eb-902a0bebe70a
         linux  /boot/vmlinuz root=UUID=9084e0b8-b05b-41af-a4eb-902a0bebe70a ro rd.driver.blacklist=nouveau resume=UUID=bbc771f8-ba61-4e50-aeca-d2754b112aee rhgb quiet
         initrd /boot/initrd
    }
    menuentry 'openSUSE Tumbleweed' --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-06d2aa5d-5c70-4916-9f8f-219f93668d52' {
         insmod part_gpt
         insmod ext2
         set root='hd2,gpt7'
         search --no-floppy --fs-uuid --set=root 06d2aa5d-5c70-4916-9f8f-219f93668d52
         linux  /boot/vmlinuz root=/dev/sdc7 splash=silent resume=/dev/disk/by-uuid/bbc771f8-ba61-4e50-aeca-d2754b112aee quiet
         initrd /boot/initrd
    }
    menuentry 'Xubuntu 18.04' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-27fb4082-7bd3-4974-9fa5-d2b43886513b' {
         recordfail
         load_video
         gfxmode $linux_gfx_mode
         insmod gzio
         insmod part_gpt
         insmod ext2
         set root='hd2,gpt9'
         search --no-floppy --fs-uuid --set=root 27fb4082-7bd3-4974-9fa5-d2b43886513b
         linux  /boot/vmlinuz root=UUID=27fb4082-7bd3-4974-9fa5-d2b43886513b ro quiet splash $vt_handoff
         initrd /boot/initrd.img
    }
    menuentry 'Windows 10' --class windows --class os $menuentry_id_option 'osprober-efi-688D-126B' {
         insmod part_gpt
         insmod fat
         set root='hd2,gpt1'
         search --no-floppy --fs-uuid --set=root 688D-126B
         chainloader /EFI/Microsoft/Boot/bootmgfw.efi
    }
    The resume=UUID=bbc771f8-ba61-4e50-aeca-d2754b112aee part from the openSUSE vmlinuz worked on 18.10 yesterday.
    Also, the resume=/dev/disk/by-uuid//bbc771f8-ba61-4e50-aeca-d2754b112aee part from the Fedora vmlinuz line would probably work too on the Ubuntu vmlinuz line.
    It points to the swap file for resume after suspend.

  8. #8
    Join Date
    Jun 2009
    Location
    SW Forida
    Beans
    Hidden!
    Distro
    Ubuntu

    Re: Ubuntu UEFI grub does not add Arch Linux correctly

    Why not use a Windows type entry that boots into the other install's UEFI entry.
    Code:
    menuentry "Fedora UEFI" {
      search --file --no-floppy --set=root F496-1330
      chainloader (${root})/efi/fedora/grub.cfg
    }
    Or a configfile entry to boot the other grub.cfg or whatever they use?

    I only have Ubuntu and first thing I do is turn off os-prober and add my own 40_custom. Most are configfile as Ubuntu's grub only installs to /EFI/ubuntu.

    I am in process of changing to use labels, but some are still like this:


    Code:
     menuentry "Cosmic 18.10 on sdb12" { 
    
      configfile (hd2,gpt12)/boot/grub/grub.cfg 
      }
    Then you get the full grub from your other install.

    label version:
    https://askubuntu.com/questions/3441...on-a-usb-drive
    Last edited by oldfred; November 14th, 2018 at 05:11 AM.
    For more info on UEFI boot install & repair - Regularly Updated :
    http://ubuntuforums.org/showthread.php?t=2147295
    Please use Thread Tools above first post to change to [Solved] when/if answered completely.

  9. #9
    Join Date
    Jun 2007
    Location
    Arizona U.S.A.
    Beans
    4,531

    Re: Ubuntu UEFI grub does not add Arch Linux correctly

    Why not use a Windows type entry that boots into the other install's UEFI entry.
    I agree. This is the only way I know to have a maintenance-free UEFI multiboot setup that includes Fedora. Works with other OS too. In particular, I also use it for Arch-based Manjaro. This was discussed extensively last year in this thread:
    https://ubuntuforums.org/showthread.php?t=2355551
    If you should have two Fedora installations, you can still make the custom menu totally maintenance-free by using two EFI system partitions!
    My own working entry:
    Code:
    #!/bin/sh
    exec tail -n +3 $0
    # 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.
    menuentry 'FEDORA 28            lvm - menu' {
    insmod part_gpt 
    insmod fat
    search --no-floppy --fs-uuid --set=root DE47-135A
    chainloader /EFI/fedora/shimx64.efi 
    }
    This method was proposed for multi-booting by J.A. Watson in his ZDNet columns:
    https://www.zdnet.com/blog/jamies-mostly-linux-stuff/
    In particular, see the Mar. 24,26,30, 2015 columns.
    Last edited by Dennis N; November 14th, 2018 at 03:37 PM.

  10. #10
    Join Date
    Aug 2009
    Beans
    Hidden!
    Distro
    Xubuntu 20.04 Focal Fossa

    Re: Ubuntu UEFI grub does not add Arch Linux correctly

    Quote Originally Posted by oldfred View Post
    Why not use a Windows type entry that boots into the other install's UEFI entry.
    Code:
    menuentry "Fedora UEFI" {
      search --file --no-floppy --set=root F496-1330
      chainloader (${root})/efi/fedora/grub.cfg
    }
    Or a configfile entry to boot the other grub.cfg or whatever they use?

    I only have Ubuntu and first thing I do is turn off os-prober and add my own 40_custom. Most are configfile as Ubuntu's grub only installs to /EFI/ubuntu.

    I am in process of changing to use labels, but some are still like this:


    Code:
     menuentry "Cosmic 18.10 on sdb12" { 
    
      configfile (hd2,gpt12)/boot/grub/grub.cfg 
      }
    Then you get the full grub from your other install.

    label version:
    https://askubuntu.com/questions/3441...on-a-usb-drive
    I know you are light years ahead of most of us, myself included. This is a great idea. I will definitely look into it more.

    Quote Originally Posted by Dennis N View Post
    I agree. This is the only way I know to have a maintenance-free UEFI multiboot setup that includes Fedora. Works with other OS too. In particular, I also use it for Arch-based Manjaro. This was discussed extensively last year in this thread:
    https://ubuntuforums.org/showthread.php?t=2355551
    If you should have two Fedora installations, you can still make the custom menu totally maintenance-free by using two EFI system partitions!
    My own working entry:
    Code:
    #!/bin/sh
    exec tail -n +3 $0
    # 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.
    menuentry 'FEDORA 28            lvm - menu' {
    insmod part_gpt 
    insmod fat
    search --no-floppy --fs-uuid --set=root DE47-135A
    chainloader /EFI/fedora/shimx64.efi 
    }
    This method was proposed for multi-booting by J.A. Watson in his ZDNet columns:
    https://www.zdnet.com/blog/jamies-mostly-linux-stuff/
    In particular, see the Mar. 24,26,30, 2015 columns.
    Sweet. I guess there are more than one way to accomplish this. Arch already uses the EFI UUID, which is probably why it works so well.

    I will definitely look into this.

    I was just happy to be able to create a custom grub period that did not need to be changed but, this looks like the best idea.

    Thanks Fred and Dennis!

    Last night, I put together a custom menu that boots into Xubuntu's new kernel, recovery and the backup kernel.
    I booted into the backup kernel at present so it works.
    FWIW:
    Code:
    #!/bin/sh
    echo 1>&2 "Adding Arch Linux, Fedora 28 (Workstation), openSUSE Tumbleweed, Xubuntu 18.04 and Windows 10"
    exec tail -n +3 $0
    # 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.
    menuentry 'Arch Linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-bbca28b2-503e-4dc8-9850-c54bd0492da8' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_gpt
        insmod fat
        set root='hd2,gpt1'
        search --no-floppy --fs-uuid --set=root 688D-126B
        linux  /vmlinuz-linux root=UUID=bbca28b2-503e-4dc8-9850-c54bd0492da8 rw  quiet
        initrd /intel-ucode.img /initramfs-linux.img
    }
    menuentry 'Arch Linux (fallback kernel)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-fallback-bbca28b2-503e-4dc8-9850-c54bd0492da8' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_gpt
        insmod fat
        set root='hd2,gpt1'
        search --no-floppy --fs-uuid --set=root 688D-126B
        linux  /vmlinuz-linux root=UUID=bbca28b2-503e-4dc8-9850-c54bd0492da8 rw  quiet
        initrd /initramfs-linux-fallback.img
    }
    menuentry 'Fedora (Workstation)' --class fedora --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-simple-9084e0b8-b05b-41af-a4eb-902a0bebe70a' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_gpt
        insmod ext2
        set root='hd2,gpt8'
        search --no-floppy --fs-uuid --set=root 9084e0b8-b05b-41af-a4eb-902a0bebe70a
        linux  /boot/vmlinuz root=UUID=9084e0b8-b05b-41af-a4eb-902a0bebe70a ro rd.driver.blacklist=nouveau resume=UUID=bbc771f8-ba61-4e50-aeca-d2754b112aee rhgb quiet
        initrd /boot/initrd
    }
    menuentry 'openSUSE Tumbleweed' --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-06d2aa5d-5c70-4916-9f8f-219f93668d52' {
        insmod part_gpt
        insmod ext2
        set root='hd2,gpt7'
        search --no-floppy --fs-uuid --set=root 06d2aa5d-5c70-4916-9f8f-219f93668d52
        linux  /boot/vmlinuz root=/dev/sdc7 splash=silent resume=/dev/disk/by-uuid/bbc771f8-ba61-4e50-aeca-d2754b112aee quiet
        initrd /boot/initrd
    }
    menuentry 'Xubuntu 18.04' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-27fb4082-7bd3-4974-9fa5-d2b43886513b' {
        recordfail
        load_video
        gfxmode $linux_gfx_mode
        insmod gzio
        insmod part_gpt
        insmod ext2
        set root='hd2,gpt9'
        search --no-floppy --fs-uuid --set=root 27fb4082-7bd3-4974-9fa5-d2b43886513b
        linux  /vmlinuz root=UUID=27fb4082-7bd3-4974-9fa5-d2b43886513b ro quiet splash $vt_handoff
        initrd /initrd.img
    }
    menuentry 'Ubuntu (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-39-generic-recovery-27fb4082-7bd3-4974-9fa5-d2b43886513b' {
        recordfail
        load_video
            gfxmode $linux_gfx_mode
        insmod gzio
        insmod part_gpt
        insmod ext2
        set root='hd2,gpt9'
        search --no-floppy --fs-uuid --set=root 27fb4082-7bd3-4974-9fa5-d2b43886513b
            linux    /vmlinuz root=UUID=27fb4082-7bd3-4974-9fa5-d2b43886513b ro recovery nomodeset 
        initrd    /initrd.img
    }
    menuentry 'Xubuntu 18.04 (backup kernel)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-27fb4082-7bd3-4974-9fa5-d2b43886513b' {
        recordfail
        load_video
        gfxmode $linux_gfx_mode
        insmod gzio
        insmod part_gpt
        insmod ext2
        set root='hd2,gpt9'
        search --no-floppy --fs-uuid --set=root 27fb4082-7bd3-4974-9fa5-d2b43886513b
        linux  /vmlinuz.old root=UUID=27fb4082-7bd3-4974-9fa5-d2b43886513b ro quiet splash $vt_handoff
        initrd /initrd.img.old
    }
    menuentry 'Windows 10' --class windows --class os $menuentry_id_option 'osprober-efi-688D-126B' {
        insmod part_gpt
        insmod fat
        set root='hd2,gpt1'
        search --no-floppy --fs-uuid --set=root 688D-126B
        chainloader /EFI/Microsoft/Boot/bootmgfw.efi
    }

Page 1 of 2 12 LastLast

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •