How do I boot 2nd distro I installed on my Zorin machine?

Hi,

I first installed and updated Zorin as the only distro on my machine.

Then I shut down, installed another distro, and shut down again.

Now, when I reboot the machine Zorin loads automatically - without giving me an option to boot into the other distro.

How do I fix this? I mean fix it so I can choose which distro to boot into?

I'm totally new at this. Any help would be much appreciated.

~ Jeff

___ Edited to add ___

Further research suggests something like this might work. But having already borked one machine trying to set up a persistent usb, I'd like to get some confirmation/advice before trying it out. :stuck_out_tongue:

#GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=15
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

You may also need to go into the bios and make sure that the other distro is listed there. You may be able to fix it without editing the grub by running boot repair on the second distro. Changing the grub timeout to 15 secs will give you more time to choose distros, if it's listed. One will always be set to default and automatically boot into it after the timeout. Make sure to run sudo update-grub after making changes to grub.

Those changes will not trash your system.

Yes if you boot into Zorin and

sudo update-grub

In Terminal it should pickup the other distro by stating

"Found Linux2 on sda#"

Next time you boot this should show up in GRUB menu.

Thanks 337harvey.

When I tried to save the grub file before rebooting, I was told it was read-only.

I tried right-clicking on the Folder & File in the GUI, but this did not give me the option of opening them as root.

Is there some way in the Zorin GUI to open folders & files as root?

Thanks swarfendor437,

I could not save the grub file (see above) but ran sudo update-grub anyway.

It seemed to recognise the Manjaro distro ok as sda3.

Also, the grub menu did appear when I rebooted.

However, when I tried to boot into Manjaro from the grub menu I got 2 error messages:

  1. /boot/vmlinuz-5.15-x86_64 has invalid signature.
  2. You need to load the kernel first.

The signature part might be to do with efi. Loon inside BIOS on next boot and see if you have two manjaro entries. Try the one marked efi if it exists and update GRUB for manjaro and see if that works.

As to #1:
You could have secure boot enabled. You need to turn it off to boot Manjaro.

As to #2:

Zorin (or Ubuntu) grub will not make a correct menu entry for some other distros like Fedora and Manjaro.

The best way to dual boot these is to use chain loading. This only works if you are using UEFI.

My menu entry to boot Manjaro GNOME:

manjaro-chainload

DE47-135A is the UUID of the EFI system partition. Change this UUID to yours.

In Zorin, add the menu entry to existing file /etc/grub.d/40_custom, save, and be sure it's executable. run sudo update-grub. Reboot and the menu entry 'Manjaro GNOME' should show in Zorin grub menu.

Ok. I'm in the BIOS now. It's an old Win8 machine. It's a UEFI BIOS. The display shows the old-style arrow & function key controls. Where do I find the 'Manjaro' part?

My bad, not thinking as I use separate drives for different distros. I never share a drive these days between distros. I think you may need to reinstall manjaro again with EFI - use the same EFI partition that Zorin uses. I believe you can have a number of entries in EFI partition but never done it personally. Not read through this but it might help.

Thanks Topaz.

As to # 1:

Yes, when I disabled secure boot, that 1st error disappeared. When I then tried to boot Manjaro, I got a different error message, the last line of which was, "5.9685041] ---[ end Kernel panic - not synching: VFS: Unable to mount root fs on unkown-block(0,0) ]---"

As to # 2:

In Mint I can right-click on a folder in the file manager and get a an option to open it as root.

Is there some way to do this in Zorin, so I can make the changes you suggest, and then actually save the file?


Meanwhile... I kept pressing esc during the boot, then pressed F9 to get into the boot section. This offered the option to boot Manjaro. Which worked fine, and it is now loaded. So at least there is a work-around. :stuck_out_tongue_winking_eye:

Install the package nautilus-admin
Then, right-clicking on a file will have an option "Edit as administrator" and it will open in the Text Editor (gedit). Right-clicking on a folder will allow "Open as Administrator".

Comment:
I would recommend you learn to use a terminal-based text editor like nano to edit system files. Linux users should know how to do this.

Hi /Topaz,

I modified /etc/grub.d/40_custom as you suggested, and ran sudo update-grub.

The Manjaro option was available. But when I selected it I got the same 'kernel panic' message I was getting before.

Thanks for all your help on this. For now, I think I'll just keep on using the "escape into the boot menu" work-around when I want to load Mangaro. Then maybe later I'll try installing Manjaro as the only distro on the machine, and see Manjaro will let me boot Zorin when I install Zorin as my second distro.

Thanks again for all your help.

You probably have two Manjaro entries in Grub menu. The second one is the one you want, which is the chain loader entry.

How to fix:

Turn off os-prober with command below and then run sudo update-grub again to eliminate the old entry:

sudo chmod -x /etc/grub.d/30_os-prober

Then it should work.

Nope. I ran the 1st command, then did update-grub. Now there is no grub menu at all. It just boots straight into Zorin.

Did you have two entries for Manjaro before turning off os-prober?

If so, the chain loader entry should remain, since menu entries from 40_custom are not affected by the status of os-prober, and are just directly copied into /boot/grub/grub.cfg (which makes the grub menu).

Check if the chain loader menu entry is actually in /boot/grub/grub.cfg. If it's not there, the 40_custom file may not be executable.

There could be something wrong with your typed entry in 40_custom. Check carefully. Don't leave a space between the existing top 5 lines in that file and your typed menu entry. Do you have the right UUID for your EFI system partition? (don't use what I show there)

You can post 40_custom here and we'll have a look.

I'm fairly sure I started with 2 entries for Manjaro - but I am not dead certain this is the case.

Here's the (hopefully) relevant entry in the /boot/grub/grub.cfg file:

### 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.
menuentry 'Manjaro GNOME' {
insmod part_gpt
insmod flat
search --no-floppy --fs-uuid --set=root CC9E-E20C
chainloader /EFI/MANJARO/grubx64.efi
}
### END /etc/grub.d/40_custom ###

Here's the 40_custom file contents:

#!/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 'Manjaro GNOME' {
insmod part_gpt
insmod flat
search --no-floppy --fs-uuid --set=root CC9E-E20C
chainloader /EFI/MANJARO/grubx64.efi
}

Here's the UUID info:

/dev/sda2: UUID="6ab38a91-1926-45ac-9b39-7dc0709cc1b9" TYPE="ext4" PARTUUID="056bd307-ccad-463d-88e6-f65f1d6ed0c1"
/dev/sda1: UUID="CC9E-E20C" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="302b350d-995c-4f95-9361-f5a9195beaec"
/dev/sda3: UUID="3102b908-8dd9-4b89-ae1d-f2419669b780" TYPE="ext4" PARTLABEL="root" PARTUUID="31f90408-cf71-b84e-ab62-af0d233d2f6d"

You have insmod flat in your 40_custom file.
It should be insmod fat
Fix that in 40_custom, then run sudo update-grub again.
Restart, and see if 'Manjaro GNOME' appears now in you grub menu (near or at the bottom).

Besides the above, you have MANJARO in the last line of 40_custom. It should be Manjaro. Fix that too.

Edit - a test shows this difference is not a problem, since the EFI system partition is FAT32 - not case sensitive.

The custom_40 file now reads:

#!/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 'Manjaro GNOME' {
insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set=root CC9E-E20C
chainloader /EFI/Manjaro/grubx64.efi
}

The sudo update-grub response is:

Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found theme: /usr/share/grub/themes/zorin/theme.txt
Found linux image: /boot/vmlinuz-5.15.0-43-generic
Found initrd image: /boot/initrd.img-5.15.0-43-generic
Found linux image: /boot/vmlinuz-5.13.0-30-generic
Found initrd image: /boot/initrd.img-5.13.0-30-generic
Adding boot menu entry for UEFI Firmware Settings
done

Unfortunately, I still see no grub menu. When I boot, the machine just loads Zorin straight off - without presenting any menu at all.

OK, This is what you should see for the grub menu:

Zorin-Menu-with-Manjaro

The menu should always be appearing with two OS installed, even with the style being 'hidden'. Using the Manjaro entry here chain loads Manjaro's own grub menu, and you start Manjaro from that.

Is your /boot/grub/grub.cfg section for 40_custom still there and correct? Check against this copy below. The only difference should be the UUID.

###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.
menuentry 'Manjaro' {
insmod part_gpt 
insmod fat
search --no-floppy --fs-uuid --set=root 84CB-30D8
chainloader /EFI/Manjaro/grubx64.efi 
}
### END /etc/grub.d/40_custom ###

If this checks out, the only thing I see you are doing differently is using gedit to edit the 40_custom file. Possibly it introduces some unwanted hidden characters when the file is saved that confuse grub. I used the nano editor to write my 40_custom file.