How can I add another OS to GRUB with boot parameters?

grub

#1

Hi all! First time poster here and new user of Manjaro.

I currently have both Manjaro linux and Parrot OS installed on the same SSD. I began by installing Parrot OS. While installing Parrot OS, there was an error saying that the boot loader couldn’t be installed. I figured I could add it it later to GRUB, so I skipped it. The installer said “You will need to boot manually with the /vmlinuz kernel on partition /dev/sdb3 and root=/dev/sdb3 passed as a kernel argument.” After having finished installing Parrot OS, I installed Manjaro. The installer did detect the Parrot OS installation, but it didn’t add it to grub when I tried to boot. I can successfully boot into Windows and Manjaro from the GRUB boot menu, but Parrot OS is missing.

I already ran update-grub and it detected the /vmlinuz, but I still don’t see Parrot OS in GRUB.

Output of “sudo update-grub” -

"Generating grub configuration file …

Found theme: /usr/share/grub/themes/manjaro/theme.txt

Found linux image: /boot/vmlinuz-4.19-x86_64

Found initrd image: /boot/intel-ucode.img /boot/initramfs-4.19-x86_64.img

Found initrd fallback image: /boot/initramfs-4.19-x86_64-fallback.img

Found Windows Boot Manager on /dev/sdc2@/efi/Microsoft/Boot/bootmgfw.efi

Found memtest86+ image: /boot/memtest86+/memtest.bin

done"

My primary questions are: How can I add Parrot OS to GRUB of Manjaro? and How can I add these kernel arguments that Parrot OS is talking about.

Thanks a lot for any help!

Edit: The issue has been resolved. For those who have the same issue, I resolved my issue by doing the following.

  1. I deleted the partition of my Parrot OS installtion.
  2. I reinstalled Parrot OS on the free space that I just created.
  3. I ran “sudo update-grub” in my Manjaro installtion.

Thanks to everyone who contributed on this issue. Have a good day!


#2

I see that vmlinuz is detected … is it not available in grub? or it fails when you select it ?


#3

There is a way you can manually add a menu entry to grub, which you can manually link to your Parrot booting file. This consists of going into the Grub config file /etc/grub.d/40_custom and adding some text to the file. However, grub is probably not detecting Parrot for another reason which needs fixing. I see your Windows partition is EFI based. Did you install Parrot in a EFI scheme? Are you capable of booting into Parrot by going into your bios interface? Can you check if Parrot has a /boot/efi/ folder: you can probably mount Parrot’s partition while in Manjaro.


#4

Isn’t that Manjaro’s vmlinuz it is detecting?


#5

Could you also run

sudo parted -l

So we know what the installer meant by /dev/sdb3?


#6

:woman_facepalming: … yes.


#7

I just ran “sudo parted -l” Here:
Model: ATA SanDisk SDSSDA12 (scsi)
Disk /dev/sdb: 120GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name Flags
1 1049kB 21.0GB 21.0GB ext4
2 21.0GB 41.9GB 21.0GB ext4
3 41.9GB 62.9GB 21.0GB btrfs
4 62.9GB 63.5GB 538MB fat32 boot, esp
5 63.5GB 112GB 48.1GB ext4
6 112GB 120GB 8452MB linux-swap(v1)

The btrfs should be the partition of Parrot OS, I think.


#8

…so, uhm … did you install parrot in BIOS/legacy mode and manjaro in UEFI ?
Oh look, @gohlip is coming. Probably do whatever they say.


#9

You think? You’re not sure?
Go find out parrot’s stuff.
Where is its /boot kernels, what are they, is that in a subvolume @boot or in root @
don’t forget initrd files as well.
Or are they in separate /boot partition
Parrot’s $esp (EFI), is that sdb4?
And what is manjaro’s $esp, in sda? how about windows? sda too? same partition?
And your cat’s name. Rename him Sylvester

I think (not sure) Manjaro has difficulty getting other OS btrfs grub entry right.
That was in the past. Not sure now. But with the proper info of the stuff you can provide and renaming your cat, we can work it out.

ps: Need sleep, logging off soon.
Will reply to you about 8 hours later.
Morning too much to look at stuff.
And have a morning rendezvous .


#10

No, I install both of them in UEFI.


#11

Alright alright, how about we format this with a bit more structure. Could you create a pastebin (pastebin.com) in which you gives us the output of everrrrything. In other words:

  1. Can you boot in Parrot by using your Bios’es interface?
  2. If you can, paste in the pastebin the output of
    test -d /sys/firmware/efi && echo UEFI || echo BIOS
    .
  3. In Manajaro, copy/Paste in the pastebin
sudo efibootmgr -v
sudo parted -l
sudo blkid
cat /etc/fstab
sudo fdisk
findmnt -s
sudo os-prober
sudo update-grub
test -d /sys/firmware/efi && echo UEFI || echo BIOS
  1. Go into Manjaro’s disk utility which has a nice GUI interface. Mount everything you can using the play button. Look in the folders of each partition, look at the name the utility gives them in order to understand them. In the pastebin, make a note of what each partition does/what it is supposed to contain.
  2. Check if the Parrot partition contains any form of /boot/ or /boot/efi/ folders, and bootmgr or boot.efi files in root. If the Parrot partition does not contain anything which ressembles a booter, tell us that too (maybe the warning during the Parrot install meant that this file/folder was never created). Finally, if you did find something, tell us the exact path of that file.

My best guesses of what the issue is are currently: a. Grub doesnt recognize the btrfs partition(unlikely). b. No boot folder/partition was installed when parrot was installed (maybe it got confused by windows). c. Parrot isn’t used to dual-booting, and needs a direct link to boot into(unlikely). d. Parrot was installed in BIOS mode, and grub doesnt like that. e. Parrot needs to be booted through vmlinuz, as the installation suggested.

My fixes for those would be : a. Doing a menu entry for grub manually. b. Refer to the parrot forums about how to do a proper UEFI Parrot install. Reinstall parrot and make sure you got a boot folder/partition. c. Doing a menu entry for grub manually. d. Reinstall Parrot in EFI mode. e. Find a way to boot vmlinuz, do what they recommended, and refer to the Parrot forums for more info.

But I’ll leave it to gohlip to correctly understand and find a fix. He knows more about this then me ^^.


#12

I was unable to boot into Parrot through the BIOS. I solved the issue by reinstalling Parrot, however this time it installed the boot loader correctly. Then, I ran “sudo grub-update” and now all of my OS are detected. Thank you miclap for the detailed help, but I was able to fix it simply.

Thank you all for your help. It helped alot!


#13

Nice! Now simply mark your own post as solution.


#14

Spoilspots!:stuck_out_tongue_closed_eyes:
But good to hear.