[HowTo] Boot Manjaro ISO directly with GRUB

I probably will in the near future. For now there’s still some stuff I have to figure out and test.
Also if ALMA could support compression and copytoram it might be a better idea.

1 Like

Forgive me: I’m not used to users who come here asking questions. I originally thought you were posting an XY problem, but:

It seems that you’re someone who will be answering questions here…

And even write a tutorial pretty soon!

:+1: :wink:

thank you kind sir, I will try this out and post results, this is great.

or not

Last Post 5 Oct
Seen 7 Oct

:rofl:

Sad but classical hit and run.

1 Like

Would this work for any iso of any distribution?

Mostly yes, but the exact boot entries vary. But in principle, it works. For an example, Fedora entry can look like this:

menuentry 'Fedora Live' --class os --class gnu-linux --class gnu --class os --group group_main {
                set isofile="/live/Fedora-Workstation-Live-x86_64-32-1.6.iso"

         insmod ext2
         insmod loopback
         insmod iso9660      
                loopback loop (hd0,msdos1)$isofile      
                search --no-floppy --fs-uuid --set=root 3b87d941-8ee7-4312-98fc-1f26828d62ab                            
                linux (loop)/isolinux/vmlinuz boot=live fromiso=/dev/sda1/$isofile noconfig=sudo username=root hostname=fedora
                initrd (loop)/isolinux/initrd.img
}

And Kali like this:

menuentry 'Kali Linux Live' --class os --class gnu-linux --class gnu --class os --group group_main {
                set isofile="/live/kali-linux-2020.2-live-i386.iso"

         insmod ext2
         insmod loopback
         insmod iso9660      
                loopback loop (hd0,msdos1)$isofile      
                search --no-floppy --fs-uuid --set=root 3b87d941-8ee7-4312-98fc-1f26828d62ab                            
                linux (loop)/live/vmlinuz boot=live fromiso=/dev/sda1/$isofile noconfig=sudo username=root hostname=kalilinux
                initrd (loop)/live/initrd.img
}
3 Likes

Ok thanks. :+1:

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…) ¹

:slight_smile:

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.

:+1:

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
    OR
  • 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:
Fedora
Linuxfx
Endeavors
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