Cannot boot ISOs using Super Grub 2 | ISO and container filesystem does not mount automatically

I cannot boot the new ISOs using Super Grub 2 disk (same ideas as ventoy). It just hangs on a black screen. I do not generally burn my images, but instead copy the file, and boot it using grub 2 command line.

Hi @slayerproof32, I moved your comment to a new topic because it is not related to the topic you posted in.

It sounds like Super Grub 2 is not working well for this purpose. Try Ventoy instead, it is known to be a solution that works well for this distro.


I’m getting dracut errors trying to boot this using the Grub 2 loop back loop $isofile method. Any ideas how to fix?

I'm not sure if the comment above is related to this same issue, but it is definitely not related to the post you added it to. Please stop adding vague comments about a non-specific issue to random threads like that, it is not a good way to find a solution.

This is not enough information to troubleshoot. You will need to paste the error messages into the thread so we can see what they say if this is something you want help with.

This method is not needed for booting Garuda Linux. Try using a Ventoy stick instead, as mentioned above.


Ok. Ill give it a shot

Use normal boot on ventoy not grub2.
It works for me but did not respect my language/time settings.


I'll have to try it again, last time it worked, booting Super Grub 2 from a CD.
If I recall correctly, Super Grub 2 cannot boot images if itself was booted from an image.
Or you can loopback the Garuda .iso directly in normal Grub.

It's a dracut issue. I have normally booted Garuda using a pre installed grub (often from another OS) and a custom CFG. Even when chainloading the Garuda ISO, I get this error.

[  239.730639] dracut Warning: Could not boot.
[  239.755061] dracut Warning: /dev/disk/by-label/GARUDA_DR460NIZEDGAMING_RAPTOR does not exist

Seems to be related to dracut's requirement to specify a root. That root is being specified as if it's been burned to disk and not a ISO file. Due to my lack of knowledge, I cannot figure out how to get past this issue.

Here is the custom CFG that used to work.

menuentry "Boot Garuda os" --class arch  {
    set root=($drive)
    set isofile="/boot-isos/garuda.iso"
    set dri="free"
    search --no-floppy -f --set=root $isofile
    probe -u $root --set=abc
    set pqr="/dev/disk/by-uuid/$abc"
    loopback loop $isofile
    echo Booting Arch! Enjoy :)
    sleep 1
    linux  (loop)/boot/vmlinuz-x86_64  img_dev=$pqr img_loop=$isofile  driver=$dri 
    initrd  (loop)/boot/intel_ucode.img (loop)/boot/amd_ucode.img (loop)/boot/initramfs-x86_64.img
1 Like

Interesting, so that fails only with the new .iso images, both with installed GRUB and Super Grub 2?
I just tried (in GRUB using very similar commands) :
garuda-sway-linux-zen-220909.iso works
garuda-sway-linux-zen-230319.iso does not boot
garuda-dr460nized-linux-zen-230319.iso does not boot
but mine fail to boot even earlier, hang on a black screen just after "Starting systemd-udev" or something like that. :thinking:

edit: can you try with the commands I'm using? I think that 1) I have a different problem 2) maybe export rootuuid makes a difference, but I forgot why I put it there, I have to RTFM.

If you wait like 5 minutes after it hangs on "starting version," you should see dracut kicking out the errors above. I just got a new computer to play with so I'll give your commands a shot and let you know what I find!

I think I figure out what the issue is. The question is how to fix it.

The initramfs loads (dracut). The kernel starts preparing everything, then attempts to hand things off to the rootfs. This is where the hang and eventual boot failure occurs.

However for some reason the root (iso image file) or the container (partition with the iso image file) is never getting mounted.

This is confirmed by running cat /etc/mtab when in the dracut rescue prompt, which shows no disks are mounted, just virtual devices.

The hacky "workaround" is to mount the container filesystem ex: mkdir fs && mount /dev/sdc3 fs then mount the iso as a loop device mkdir garuda-iso && mount /fs/boot-isos/garuda.iso garuda-iso -o loop

After this, exit the dracut rescue prompt and the system will boot normally...

The question becomes why doesn't the iso mount on boot? I've already tried dracut's iso-scan/filesystem=/boot-isos/garuda.iso boot argument

1 Like

Update: with the two 230319 ISOs I tried before, computer reboots itself without any indication of what went wrong after less than 2 minutes. Maybe it's just an out of memory, given I have only 3.8 GB RAM.

BUT, with the new garuda-sway-linux-zen-230426.iso image, I get the same problem, /dev/disk/by-label/GARUDA_SWAY_RAPTOR does not exist.

Which means, export rootuuid doesn't do ----.

On a side note, the new image takes like 3 or 4 times to boot on loopback than the previous working one, and the emergency console doesn't echo what I type, which makes it all more entertaining...

I hope to find time to bang my head on this, the first thing that comes to my mind is that it's something that should be taken care of in the loopback.cfg on the ISO, but maybe (haven't checked yet) our loopback commands just need to be updated.

Just for your information, the ISO boots here without problems.
Notebook, free driver, 16 GB RAM.
No inxi, does your GPU use RAM too?

1 Like

Not sure about GPU using RAM, I'll check (I think it's likely, it's an iGPU).
But that (as I indeed suspect) would explain the reboot, not the GARUDA_SWAY_RAPTOR does not exist?

  Kernel: 6.2.12-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 12.2.1
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
    root=UUID=592f1813-a12e-4fe0-a4bb-da4e2ce4dbea rw [email protected]
    quiet splash vt.global_cursor_default=0 loglevel=3 rd.udev.log_priority=3
    acpi_osi=Linux systemd.unified_cgroup_hierarchy=1
    resume=UUID=B5F8F072-9672-D546-B5BA-E3A0B73B9458 ibt=off
  Desktop: sway v: 1.8.1 info: waybar vt: 1 dm: greetd Distro: Garuda Linux
    base: Arch Linux
  Type: Laptop System: TOSHIBA product: Satellite L500 v: PSLS3E-03V00TIT
    serial: <superuser required> Chassis: type: 10 serial: <superuser required>
  Mobo: TOSHIBA model: KSWAA v: 1.00 serial: <superuser required>
    BIOS: TOSHIBA v: 1.90 date: 12/17/2009
  ID-1: BAT1 charge: 36.5 Wh (100.0%) condition: 36.5/43.2 Wh (84.5%)
    volts: 12.4 min: 10.8 model: TOSHIBA PA3534U-1BRS type: Li-ion
    serial: <filter> status: not charging
  Info: model: Pentium T4400 bits: 64 type: MCP arch: Penryn level: v1
    built: 2008 process: Intel 45nm family: 6 model-id: 0x17 (23)
    stepping: 0xA (10) microcode: 0xA0B
  Topology: cpus: 1x cores: 2 smt: <unsupported> cache: L1: 128 KiB
    desc: d-2x32 KiB; i-2x32 KiB L2: 1024 KiB desc: 1x1024 KiB
  Speed (MHz): avg: 1596 min/max: 1200/2200 scaling: driver: acpi-cpufreq
    governor: schedutil cores: 1: 1596 2: 1596 bogomips: 8777
  Flags: ht lm nx pae sse sse2 sse3 ssse3
  Vulnerabilities: <filter>
  Device-1: AMD RV710/M92 [Mobility Radeon HD 4530/4570/5145/530v/540v/545v]
    vendor: Toshiba driver: radeon v: kernel alternate: amdgpu arch: TeraScale
    code: R6xx/RV6xx/RV7xx process: TSMC 55-65nm built: 2005-13 pcie: gen: 1
    speed: 2.5 GT/s lanes: 16 ports: active: HDMI-A-1,LVDS-1 empty: DP-1,VGA-1
    bus-ID: 01:00.0 chip-ID: 1002:9553 class-ID: 0300
  Device-2: Suyin USB 2.0 Camera type: USB driver: uvcvideo bus-ID: 7-6:2
    chip-ID: 064e:d104 class-ID: 0e02 serial: <filter>
  Display: wayland server: Xwayland v: 23.1.1 compositor: sway v: 1.8.1
    driver: gpu: radeon d-rect: 1366x1536 display-ID: 1
  Monitor-1: HDMI-A-1 pos: primary,top model: LG (GoldStar) TV
    serial: <filter> built: 2009 res: 1360x768 hz: 60 dpi: 49 gamma: 1.2
    scale: 1 size: 700x390mm (27.56x15.35") diag: 802mm (31.6") ratio: 16:9
    modes: max: 1360x768 min: 720x400
  Monitor-2: LVDS-1 pos: bottom model: LG Display LP156WH2-TLAA built: 2009
    res: 1366x768 hz: 60 dpi: 101 gamma: 1.2 scale: 1
    size: 344x194mm (13.54x7.64") diag: 395mm (15.5") ratio: 16:9 modes:
    max: 1366x768 min: 640x480
  API: OpenGL v: 3.3 Mesa 23.0.3 renderer: AMD RV710 (DRM 2.50.0 /
    6.2.12-zen1-1-zen LLVM 15.0.7) compat-v: 3.0 direct-render: Yes
  Device-1: Intel 82801I HD Audio vendor: Toshiba driver: snd_hda_intel
    v: kernel bus-ID: 00:1b.0 chip-ID: 8086:293e class-ID: 0403
  Device-2: AMD RV710/730 HDMI Audio [Radeon HD 4000 series] vendor: Toshiba
    driver: snd_hda_intel v: kernel pcie: gen: 1 speed: 2.5 GT/s lanes: 16
    bus-ID: 01:00.1 chip-ID: 1002:aa38 class-ID: 0403
  API: ALSA v: k6.2.12-zen1-1-zen status: kernel-api tools: alsamixer,amixer
  Server-1: sndiod v: N/A status: off tools: aucat,midicat,sndioctl
  Server-2: PipeWire v: 0.3.70 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
    4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl
  Device-1: Realtek RTL810xE PCI Express Fast Ethernet vendor: Toshiba
    driver: r8169 v: kernel pcie: gen: 1 speed: 2.5 GT/s lanes: 1 port: 4000
    bus-ID: 0e:00.0 chip-ID: 10ec:8136 class-ID: 0200
  IF: enp14s0 state: up speed: 100 Mbps duplex: full mac: <filter>
  Device-2: Realtek RTL8191SEvB Wireless LAN driver: rtl8192se v: kernel
    pcie: gen: 1 speed: 2.5 GT/s lanes: 1 port: 5000 bus-ID: 14:00.0
    chip-ID: 10ec:8172 class-ID: 0280
  IF: wlp20s0 state: down mac: <filter>
  Local Storage: total: 298.09 GiB used: 78.79 GiB (26.4%)
  SMART Message: Required tool smartctl not installed. Check --recommends
  ID-1: /dev/sda maj-min: 8:0 vendor: Toshiba model: MK3263GSXN
    size: 298.09 GiB block-size: physical: 512 B logical: 512 B speed: 3.0 Gb/s
    type: N/A serial: <filter> rev: 2M scheme: GPT
  ID-1: / raw-size: 42 GiB size: 42 GiB (100.00%) used: 28.36 GiB (67.5%)
    fs: btrfs dev: /dev/sda3 maj-min: 8:3
  ID-2: /home raw-size: 85.04 GiB size: 85.04 GiB (100.00%)
    used: 17.04 GiB (20.0%) fs: btrfs dev: /dev/sda4 maj-min: 8:4
  ID-3: /var/log raw-size: 42 GiB size: 42 GiB (100.00%)
    used: 28.36 GiB (67.5%) fs: btrfs dev: /dev/sda3 maj-min: 8:3
  ID-4: /var/tmp raw-size: 42 GiB size: 42 GiB (100.00%)
    used: 28.36 GiB (67.5%) fs: btrfs dev: /dev/sda3 maj-min: 8:3
  Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)
  ID-1: swap-1 type: zram size: 3.79 GiB used: 1024 KiB (0.0%) priority: 100
    dev: /dev/zram0
  ID-2: swap-2 type: partition size: 8 GiB used: 0 KiB (0.0%) priority: -2
    dev: /dev/sda5 maj-min: 8:5
  System Temperatures: cpu: 45.0 C mobo: N/A
  Fan Speeds (RPM): N/A
  Processes: 215 Uptime: 1h 57m wakeups: 1 Memory: 3.79 GiB
  used: 1.72 GiB (45.3%) Init: systemd v: 253 default: graphical
  tool: systemctl Compilers: gcc: 12.2.1 clang: 15.0.7 Packages: pm: pacman
  pkgs: 2100 libs: 400 tools: octopi,paru Shell: fish v: 3.6.1 default: Bash
  v: 5.1.16 running-in: alacritty inxi: 3.3.26
Garuda (2.6.16-1):
  System install date:     2021-12-03
  Last full system update: 2023-04-27
  Is partially upgraded:   No
  Relevant software:       snapper NetworkManager mkinitcpio
  Windows dual boot:       <superuser required>
  Failed units:            

Did you check sha sum?
Iso on Ventoy (stick)?
Can you test it on another PC?

So it can't be the ISO, if it works for me. :person_shrugging:

1 Like

SHA sum, good.
No Ventoy, this thing can't boot USB (and the DVD is toast).
No other PC to test at the moment, but I can borrow one.
When you say "works for me", you mean Ventoy not loopback, right?
That's a thing I should look into, how Ventoy boots images.
edit (again) : Oh, I see Ventoy can be installed to HD too... will give it a try.

1 Like

Yes, ventoy and sway starts and opens the installation program calamares.

1 Like

The real question is what is Ventoy doing that loopback doesn't? I'd assume somehow Ventoy is injecting something during boot that mounts the iso itself. I'd think we'd want to focus on my discovery of mounting the ISO during the boot process actually loads everything properly. I even tried an install using the method above from ISO. No issues.

1 Like

I looked at Ventoy briefly, and unless I'm mistaken, what it does is emulating a CD drive rather than using loopback.
Functionally, it does the same thing but does it differently, and should be able to boot just about anything that boots from a real CD.
On a side note, Ventoy on HD does not look like a practical alternative, at least not on my legacy BIOS system with only one HD, but I have not tried (maybe I'm missing something, perhaps going from GRUB to Ventoy works, but until I'm sure I'm wary of hosing my only functioning box).

I have had little time to look into this, my understanding is that there should be some form of support in the ISO itself, likely in the form of a mount or pre-mount hook (lib/dracut/hooks/ in the initramfs).

It also looks like none of the "usual" parameters like iso-scan/filename=, findiso=, isofrom=, img_dev=, img_loop=, loop= are recognized.

It's worth noting that I'm utterly ignorant about all this though, I feel like there's something in front of me that I can't see.

One crazy idea I have is using linux and initrd GRUB commands rather than configfile (this works, and leads to the same error) but adding a custom initram to just remount the ISO and pass the ball to the real one. That is, make it work without having to unpack the ISO nor modify it in any way. I have not tried yet though, the rabbit hole is deep, my understanding is not clear, and time is a scarce resource (does not mean I gave up though).
It doesn't help that every distro does it differently, and most info online is about Fedora and Ubuntu.

I have found the same thing. The custom INITRD thing is an interesting idea and worth trying maybe.