[HowTo] Boot Manjaro ISO directly with GRUB

Instead of:

you should use the grub environment variable $root like this:

loopback loop ($root)$ISOFile

as that is more hardware independent (and most people nowadays aren’t familiar with the old-style hd0 terminology any more as we’ve all got /dev/sdY SATA / SCSI disks now instead of the old MFM/RLL /dev/hdY ones…) ¹


Note 1: You old fart! :joy: :grin:

1 Like

works great, thank you so much

I can’t start, I get a message that says:
error: invalid file name `’.

error: disk `loop’ not found.
error: you need to load the kernel first.

Double-check the file location and file name in

set isofile="/miso/manjaro-gnome-20.1-stable-x86_64.iso"

and adapt to your specific system settings.


The file location and file name are correct.

Are you using btrfs subvolumes?

No i use xfs.

Can you post your custom.conf?

menuentry 'Fedora Live' --class os --class gnu-linux --class gnu --class os --group group_main {
                set isofile="/live/fedora.iso"
                set dri="free"
                set lang="es_ES"
		set keytable="es"
	        set timezone="Europe/Madrid"
	        search --no-floppy -f --set=root $isofile
                probe -u $root --set=abc

         insmod ext2
         insmod loopback
         insmod iso9660      
                loopback loop ($root)$ISOFile
                search --no-floppy --fs-uuid --set=root 9144410b-9b1b-48b5-909b-0195a8dd1f94
                linux (loop)/isolinux/vmlinuz boot=live fromiso=/dev/nvme0n1p6/$isofile noconfig=sudo username=root hostname=fedora
                initrd (loop)/isolinux/initrd.img

The uuid is that of the root partition.

  • The .iso file needs to be on an EXT2/3/4 or FAT partition
  • You need to do an
    insmod xfs
    insmod lvm
    instead of insmod ext2 as per Fedora’s documentation

Cc @Chrysostomus I’ve edited above into your HowTo

1 Like

I have tried three distributions:
With all three I get it to boot, but in the boot process an error always appears and does not complete.
What I have learned is that the custom.cfg file has to look something like this:

menuentry 'Endeavoros Live' --class os --class gnu-linux --class gnu --class os --group group_main {
                set isofile = "/ live / Endeavouros.iso"
                set dri = "free"
                set lang = "es_ES"
set keytable = "es"
set timezone = "Europe / Madrid"
search --no-floppy -f --set = root $ isofile
                probe -u $ root --set = abc
insmod gzio
insmod part_gpt
         insmod xfs
         insmod loopback
         insmod iso9660
                loopback loop ($ root) $ isofile
                search --no-floppy --fs-uuid --set = root 9144410b-9b1b-48b5-909b-0195a8dd1f94
                linux (loop) / arch / boot / x86_64 / vmlinuz-linux boot = live fromiso = / dev / nvme0n1p6 / $ isofile noconfig = sudo username = root hostname = endeavouros
                initrd (loop) /arch/boot/x86_64/archiso.img

You have to take into account the file system where you have the iso file, to put the corresponding insmod and the type of partition as well. First you have to find out what the grub.cfg file of the iso file is like, to know in which path and what binary (usually vmlinuz) it uses to boot, but as you can see, Endeavoros uses vmlinuz-linux and what image it uses. What I have done is mount the iso file in the file manager and thus be able to see all this that I just mentioned. I also advise you to put this line like this: loopback loop ($ root) $ isofile
Because if you have several HD on the computer, as is my case, you will not have to find out if it is (hd5, gpt6) as is my case, or another, this way you can forget.
I have not managed to get any of the three start, but I will continue investigating and if I discover something interesting or od I will comment on it.
Thanks everyone for your help.

2 posts were merged into an existing topic: How to format disk and install manjaro (or other linux) without pendrive?

A post was split to a new topic: ISO image on LUK-encrypted partition

i got 3 error
vmlinuz-x86_64 not found
kernel needs to be loaded first
and another error i don’t remember

2 posts were split to a new topic: Cannot load Manjaro cinnamon ISO in grub

Anyone had a try at adding the Hiren Boot CD as a menu entry? I tried but failed as I don’t understand what I’m doing. I can boot it from USB when needed (for motherboard Windows tool for example), but it would be cool to be able to add it to GRUB directly for convenience and performance.

Windows (any version) is difficult to fit into GRUB… It’s also off-topic here, but not there

“insmod” does not seem to work and the help says it wants a filename and args.and is probably why it doesn’t work.
Any other commands to tell it about file systems?

It still works, but would like to get rid of the warnings.

It doesn’t seem to work anymore. I get this:

:: Mounting '' to /run/miso/img_dev'
Waiting 30 seconds for device ...
ERROR: '' device did not show up after 30 seconds...

Apparently this set pqr="/dev/disk/by-uuid/$abc" bit fails, but I don’t know how to fix it.

I figured it out. It’s no longer possible to boot from an ntfs drive, because there is no ntfs driver since kernel 5.15 - it’s called ntfs3 now and that causes issues like this.