Siduction Forum

Siduction Forum => Software - Support => Topic started by: eriefisher on 2026/05/25, 14:28:04

Title: grub2-fll-fromiso
Post by: eriefisher on 2026/05/25, 14:28:04
Can grub2-fll-fromiso be used for iso's other than Siduction? If so, how?
I just tried to add an MX iso but it's not recognized. The Siduction iso's I have show up fine.
Title: Re: grub2-fll-fromiso
Post by: Teriarch on 2026/05/26, 18:05:53
AFAIK grub2-fll-fromiso is not part of the siduction but rather part of the aptosid repository.
Anyway, can you post the name of your iso image (including full path) as
well as the content of /etc/default/grub2-fll-fromiso?
Title: Re: grub2-fll-fromiso
Post by: eriefisher on 2026/05/27, 00:34:08
I can post what you ask if necessary but it works just fine. The problem is it only shows Siduction iso's.  I followed the section in the Siduction manual and like I said I got the expected results but it won't produce non-Siduction iso's in the menu.
# Defaults for grub2-fll-fromiso update-grub helper
# sourced by grub2's update-grub
# installed at /etc/default/grub2-fll-fromiso by the maintainer scripts

#
# This is a POSIX shell fragment
#

# specify where to look for the ISO
# default: /srv/ISO
#FLL_GRUB2_ISO_LOCATION="/srv/ISO"
FLL_GRUB2_ISO_LOCATION="/media/data/isos"

# array for defining ISO prefices --> siduction-*.iso, non-recursive
# default: "siduction- fullstory-"
FLL_GRUB2_ISO_PREFIX="siduction-"
#FLL_GRUB2_ISO_PREFIX="winux-"
#FLL_GRUB2_ISO_PREFIX="MX-"

# set default language
# default: en_US
#FLL_GRUB2_LANG="de_DE"
FLL_GRUB2_LANG="en_US"

# override the default timezone.
# default: UTC
#FLL_GRUB2_TZ="Europe/Berlin"
FLL_GRUB2_TZ="America/Toronto"

# additional cheatcodes
# default: quiet systemd.show_status=1 noeject
FLL_GRUB2_CHEATCODE="quiet systemd.show_status=1 noeject"
You'll see currently the MX- entry is commented out, on purpose. The path to all my iso's is /media/data/isos. I'm thinking there is something hard coded to Siduction only? 
Title: Re: grub2-fll-fromiso
Post by: der_bud on 2026/05/27, 11:14:44
Quote from: eriefisher on 2026/05/27, 00:34:08...  The path to all my iso's is /media/data/isos. ...
Is /media/data already mounted when grub menu is active? The isos should reside on an accessible path.
(Well, from the default path '/srv/ISO' I would also think it should work, but better test with an ISO in for example /boot/grub/ISO)
Title: Re: grub2-fll-fromiso
Post by: scholle1 on 2026/05/27, 12:11:34
Quote from: eriefisher on 2026/05/27, 00:34:08# array for defining ISO prefices --> siduction-*.iso, non-recursive
# default: "siduction- fullstory-"
FLL_GRUB2_ISO_PREFIX="siduction-"
#FLL_GRUB2_ISO_PREFIX="winux-"
#FLL_GRUB2_ISO_PREFIX="MX-"
You'll see currently the MX- entry is commented out, on purpose. The path to all my iso's is /media/data/isos. I'm thinking there is something hard coded to Siduction only? 
Yes it is 'hard' configured in
FLL_GRUB2_ISO_PREFIX="siduction-"Did you test the array notation shown in the previous line? For example
FLL_GRUB2_ISO_PREFIX="siduction- winux- MX-"
Title: Re: grub2-fll-fromiso
Post by: Teriarch on 2026/05/27, 12:34:11
With scholle1's suggestions it works for me in both cases (mx- and siduction-). Just to be on the same page, I used
 
grub2-fll-fromiso_0.6.1_all.deb with md5sum 8fdebe850efea744b9a3a3a4b176f022
 
After an update-grub it created the following additional entry in /boot/grub.cfg:
 
### BEGIN /etc/grub.d/60_fll-fromiso ###
submenu "siduction-2026.1.0-Big_Crime-kde-amd64-202605151306.iso" {
menuentry "Boot: siduction.amd64 kde " --class=siduction.amd64 "$title" {# set arguments above with the editor
        insmod iso9660
        insmod part_gpt
        insmod ext2
        set root='hd1,gpt6'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint='hd1,gpt6'  4ef9dea2-cfd6-4a1e-ad54-ba53b078cf63
        else
          search --no-floppy --fs-uuid --set=root 4ef9dea2-cfd6-4a1e-ad54-ba53b078cf63
        fi
        loopback loop /srv/iso/siduction-2026.1.0-Big_Crime-kde-amd64-202605151306.iso
        linux (loop)/boot/vmlinuz-$2 fromhd=UUID=4ef9dea2-cfd6-4a1e-ad54-ba53b078cf63 fromiso=/srv/iso/siduction-2026.1.0-Big_Crime-kde-amd64-202605151306.iso lang=de_DE tz=Europe/Be
rlin
        initrd (loop)/boot/initrd.img-7.0.7-1-siduction-amd64
}
}
submenu "mx-2026.1.0-Big_Crime-kde-amd64-202605151306.iso" {
menuentry "Boot: siduction.amd64 kde " --class=siduction.amd64 "$title" {# set arguments above with the editor
        insmod iso9660
        insmod part_gpt
        insmod ext2
        set root='hd1,gpt6'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint='hd1,gpt6'  4ef9dea2-cfd6-4a1e-ad54-ba53b078cf63
        else
          search --no-floppy --fs-uuid --set=root 4ef9dea2-cfd6-4a1e-ad54-ba53b078cf63
        fi
        loopback loop /srv/iso/mx-2026.1.0-Big_Crime-kde-amd64-202605151306.iso
        linux (loop)/boot/vmlinuz-$2 fromhd=UUID=4ef9dea2-cfd6-4a1e-ad54-ba53b078cf63 fromiso=/srv/iso/mx-2026.1.0-Big_Crime-kde-amd64-202605151306.iso lang=de_DE tz=Europe/Berlin
        initrd (loop)/boot/initrd.img-7.0.7-1-siduction-amd64
}
}
### END /etc/grub.d/60_fll-fromiso ###
 
The only reason for failure I can think of is a missing or somehow malformed bootloader
during the check of your mx- file. If so can you point us to the download location of your
mx- file?

PS.: I also checked siduction version grub2-fll-fromiso_0.3.12_all.deb (md5sum
     d693f83fdc29849325d8fd2bcd738ff9) with same result.
 
 
Title: Re: grub2-fll-fromiso
Post by: eriefisher on 2026/05/27, 13:19:34
Quote from: scholle1 on 2026/05/27, 12:11:34
Quote from: eriefisher on 2026/05/27, 00:34:08# array for defining ISO prefices --> siduction-*.iso, non-recursive
# default: "siduction- fullstory-"
FLL_GRUB2_ISO_PREFIX="siduction-"
#FLL_GRUB2_ISO_PREFIX="winux-"
#FLL_GRUB2_ISO_PREFIX="MX-"
You'll see currently the MX- entry is commented out, on purpose. The path to all my iso's is /media/data/isos. I'm thinking there is something hard coded to Siduction only?
Yes it is 'hard' configured in
FLL_GRUB2_ISO_PREFIX="siduction-"Did you test the array notation shown in the previous line? For example
FLL_GRUB2_ISO_PREFIX="siduction- winux- MX-"
I will try it all on one line as you show it there. As you can see I just created a new line for MX which didn't work.
Title: Re: grub2-fll-fromiso
Post by: eriefisher on 2026/05/27, 13:48:37
Quote from: der_bud on 2026/05/27, 11:14:44
Quote from: eriefisher on 2026/05/27, 00:34:08...  The path to all my iso's is /media/data/isos. ...
Is /media/data already mounted when grub menu is active? The isos should reside on an accessible path.
(Well, from the default path '/srv/ISO' I would also think it should work, but better test with an ISO in for example /boot/grub/ISO)
Mounted? I'm not sure but grub see's the Siduction iso's in that directory without issue. I think the problem is I need to create a config file for other menu entries. Like I said, I'm just following the Siduction manual and I assume it's previously set up to boot Siduction but not another iso. Which is fine, I can work with that.
Title: Re: grub2-fll-fromiso
Post by: eriefisher on 2026/05/27, 13:49:54
Quote from: Teriarch on 2026/05/27, 12:34:11With scholle1's suggestions it works for me in both cases (mx- and siduction-). Just to be on the same page, I used
 
grub2-fll-fromiso_0.6.1_all.deb with md5sum 8fdebe850efea744b9a3a3a4b176f022
 
After an update-grub it created the following additional entry in /boot/grub.cfg:
 
### BEGIN /etc/grub.d/60_fll-fromiso ###
submenu "siduction-2026.1.0-Big_Crime-kde-amd64-202605151306.iso" {
menuentry "Boot: siduction.amd64 kde " --class=siduction.amd64 "$title" {# set arguments above with the editor
        insmod iso9660
        insmod part_gpt
        insmod ext2
        set root='hd1,gpt6'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint='hd1,gpt6'  4ef9dea2-cfd6-4a1e-ad54-ba53b078cf63
        else
          search --no-floppy --fs-uuid --set=root 4ef9dea2-cfd6-4a1e-ad54-ba53b078cf63
        fi
        loopback loop /srv/iso/siduction-2026.1.0-Big_Crime-kde-amd64-202605151306.iso
        linux (loop)/boot/vmlinuz-$2 fromhd=UUID=4ef9dea2-cfd6-4a1e-ad54-ba53b078cf63 fromiso=/srv/iso/siduction-2026.1.0-Big_Crime-kde-amd64-202605151306.iso lang=de_DE tz=Europe/Be
rlin
        initrd (loop)/boot/initrd.img-7.0.7-1-siduction-amd64
}
}
submenu "mx-2026.1.0-Big_Crime-kde-amd64-202605151306.iso" {
menuentry "Boot: siduction.amd64 kde " --class=siduction.amd64 "$title" {# set arguments above with the editor
        insmod iso9660
        insmod part_gpt
        insmod ext2
        set root='hd1,gpt6'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint='hd1,gpt6'  4ef9dea2-cfd6-4a1e-ad54-ba53b078cf63
        else
          search --no-floppy --fs-uuid --set=root 4ef9dea2-cfd6-4a1e-ad54-ba53b078cf63
        fi
        loopback loop /srv/iso/mx-2026.1.0-Big_Crime-kde-amd64-202605151306.iso
        linux (loop)/boot/vmlinuz-$2 fromhd=UUID=4ef9dea2-cfd6-4a1e-ad54-ba53b078cf63 fromiso=/srv/iso/mx-2026.1.0-Big_Crime-kde-amd64-202605151306.iso lang=de_DE tz=Europe/Berlin
        initrd (loop)/boot/initrd.img-7.0.7-1-siduction-amd64
}
}
### END /etc/grub.d/60_fll-fromiso ###
 
The only reason for failure I can think of is a missing or somehow malformed bootloader
during the check of your mx- file. If so can you point us to the download location of your
mx- file?

PS.: I also checked siduction version grub2-fll-fromiso_0.3.12_all.deb (md5sum
    d693f83fdc29849325d8fd2bcd738ff9) with same result.
 
 
Looks like the new entry is just a renamed previous entry but the same iso?
Title: Re: grub2-fll-fromiso
Post by: Teriarch on 2026/05/27, 14:53:27
> Looks like the new entry is just a renamed previous entry but the same iso?
 
And that's all that is needed to check the functionality of grub2-fll-fromiso.
Here is the course of action:
 
update-grub is a frontend to grub-mkconfig and its only purpose is the creation
of /boot/grub/grub.cfg, which is used at boottime by either mbr or efi bootloader grub
to start module normal, which in turn searches for grub.cfg (using a hardcoded prefix)
to present you with the boot menu.
 
grub2-fll-fromiso consists of a configuration file /etc/default/grub2-fll-fromiso
used by shell script /etc/grub.d/60_fll-fromiso invoked when grub-mkconfig scans
and executes all shell scripts within /etc/grub.d. If it finds an iso file in accordance
with the configuration it creates an enty in /boot/grub/grub.cfg provided the iso file
contains a valid bootloader, kernel and initrd, hence my question regarding your mx- file.
 
der_bud had a valid point though when asking about the mounted iso directories. During the scan
they must be seen by grub-mkconfig in order to be present in grub.cfg.
 
HTH
 
Title: Re: grub2-fll-fromiso
Post by: eriefisher on 2026/05/27, 16:28:37
As I mentioned earlier, the script works fine, for Siduction iso's. I am following the instructions from the manual, designed for Siduction. There is no mention of adding other non Siduction iso's. After some other research it seems I need to create the conf file so that the menu will reflect a non Siduction iso. I have seen now what is required and how to get it but this is with straight up grub2. So this is the confusion. Either way I need to create the config for the menu entry.
Quoteder_bud had a valid point though when asking about the mounted iso directories. During the scan
they must be seen by grub-mkconfig in order to be present in grub.cfg.
The location is not a problem it seems. The two Siduction iso's are found, added to the menu and boot fine. The MX and other iso's are in the same directory. /media/data/isos.
I suppose the Siduction manual entry for grub2-fll-fromiso should be edited to reflect that as is it only works with Siduction iso's.
Thank for the input everybody.
Title: Re: grub2-fll-fromiso
Post by: Teriarch on 2026/05/27, 19:59:20
When /etc/grub.d/60_fll-fromiso is executed by grub-mkconfig it scans for kernels /boot/vmlinuz*
in the iso file at line 88. Unfortunately the kernels of MX- images are contained in directory /antiX
of the MX- iso image, hence it fails to detect the kernels (It could easily be fixed, though).
Title: Re: grub2-fll-fromiso
Post by: eriefisher on 2026/05/27, 23:30:08
I was thinking it might be something like that but wasn't sure and had not looked into it....yet. Thanks for the clarity.
Title: Re: grub2-fll-fromiso
Post by: der_bud on 2026/05/29, 07:58:22
Github of the original project (https://github.com/fullstory) has a more current/updated version of 60_fll-fromiso. I cannot really tell, but think the code to detect kernels is slightly different. It should be possible to just replace the file and test it. =>  https://github.com/fullstory/grub2-fll-fromiso/blob/master/60_fll-fromiso 
Title: Re: grub2-fll-fromiso
Post by: eriefisher on 2026/05/29, 12:59:14
I will have a look. Thanks
Title: Re: grub2-fll-fromiso
Post by: Teriarch on 2026/05/29, 14:10:05
Unfortunately it won't work:
$ sudo ./60_fll-fromiso  
Found fromiso: MX-25.2_KDE_x64.iso on /dev/nvme0n1p4: /srv/ISO/MX-25.2_KDE_x64.iso
Detected bootloader: unknown in MX-25.2_KDE_x64.iso
Skipping MX-25.2_KDE_x64.iso: unrecognised bootloader layout
For some reason MX-* iso images are not "Full Story" compatible.
Title: Re: grub2-fll-fromiso
Post by: hendrikL on 2026/05/29, 16:47:54
http://aptosid.com/debian/pool/main/g/grub2-fll-fromiso/

I think you should fetch the whole program, do not pick the cherries.
And I would read the changlog first.

https://github.com/fullstory/grub2-fll-fromiso/blob/master/debian/changelog
Title: Re: grub2-fll-fromiso
Post by: Teriarch on 2026/05/29, 18:21:23
Well, they say: "The chain is only as strong as its weakest link" and considering
there is only one (apart from the trivial config file), we can even dive deeper
into the detection logic in order to find it:
detect_bootloader.sh (stripped from /etc/grub.d/60_fll-fromiso):
#!/bin/sh -e
 
ISOINFO="$(which isoinfo)"
OSIRROX="$(which osirrox)"
 
extract_efi_img() {
        local iso="$1"
        local efi_tmp
        efi_tmp=/tmp/efi.img
        if "${OSIRROX}" -indev "${iso}" -extract /efi.img "${efi_tmp}" \
                        >/dev/null 2>&1 && [ -s "${efi_tmp}" ]; then
                echo "${efi_tmp}"
        else
                rm -f "${efi_tmp}"
        fi
}
 
detect_iso_bootloader() {
        local iso="$1"
        echo Iso Image: $iso
        local efi_img="$(extract_efi_img $iso)" # path to extracted efi.img, or empty
        echo Efi Image: $efi_img
        # grub (BIOS hybrid): kernels.cfg on the ISO9660 layer
        if "${ISOINFO}" -R -i "${iso}" -f 2>/dev/null \
                        | grep -q '^/boot/grub/kernels.cfg$'; then
                echo "grub"
                return
        fi
        # ESP-based: distinguish by FAT contents
        if [ -n "${efi_img}" ]; then
                # grub-efi: kernels.cfg inside FAT under /boot/grub/
                if "${MDIR}" -i "${efi_img}" '::/boot/grub/kernels.cfg' >/dev/null 2>&1; then
                        echo "grub-efi"
                        return
                fi
                # systemd-boot: /loader/loader.conf inside FAT
                if "${MDIR}" -i "${efi_img}" '::/loader/loader.conf' >/dev/null 2>&1; then
                        echo "systemd-boot"
                        return
                fi
                # refind: /EFI/BOOT/refind.conf inside FAT
                if "${MDIR}" -i "${efi_img}" '::/EFI/BOOT/refind.conf' >/dev/null 2>&1; then
                        echo "refind"
                        return
                fi
        fi
 
        echo "unknown"
}
 
detect_iso_bootloader $1
Let's see:
$ ./detect_bootloader.sh /srv/ISO//siduction-2025.1.0-Shine_on-kde-amd64-202604141203.iso
Iso Image: /opt/sda5/opt/linux/siduction-2025.1.0-Shine_on-kde-amd64-202604141203.iso
Efi Image: /tmp/efi.img
grub

vs.

./detect_bootloader.sh /srv/ISO/MX-25.2_KDE_x64.iso  
Iso Image: /srv/ISO/MX-25.2_KDE_x64.iso
Efi Image:
unknown

Neither does the code detect the /boot/grub/kernels.cfg in the isofs
(well, there is none), nor is he able to extract the efi partition
(though there is one). Do you really think the whole program could
improve on that?
Title: Re: grub2-fll-fromiso
Post by: hendrikL on 2026/05/29, 18:31:24
Quote from: Teriarch on 2026/05/29, 18:21:23...
Well, they say: "The chain is only as Do you really think the whole program could
improve on that?

I don't know, never tried that, nor do I feel to investigate my spare lifetime on it.
It is interesting, for shure.

My intention is to use the whole thing, because the different parts could fit together. And it is not a problem to downgrade when it doesn't work, or?
Title: Re: grub2-fll-fromiso
Post by: Teriarch on 2026/05/29, 19:11:46
> I don't know, never tried that, nor do I feel to investigate my spare lifetime on it.
> It is interesting, for sure. 
We definitely agree on that. As soon as it interests me I pick the problems from
the forum like puzzles waiting to be solved. I don't care whether it's useful or not,
they have intrinsic value far beyond their usefulness in showing how to approach
a problem and developing solution techniques. And if somebody profits, the better... 
Title: Re: grub2-fll-fromiso
Post by: eriefisher on 2026/05/29, 23:26:52
Either way, it seems that the fll tools will only work with fll built iso's. There is still away to do it with grub2 so I'll go that route. I still think there should be mention of it in the manual under the grub2-fll-fromiso section. Just to prevent someone else going down this road.
Title: Re: grub2-fll-fromiso
Post by: Teriarch on 2026/05/30, 17:51:36
Here is my /etc/grub.d/40_custom entry modification, which I put at the very end of that file:
menuentry "MX Linux - Native Loopback Menu" {
    # 1. You MUST name it 'iso_path' so the script inside the ISO can read it
    set iso_path="/srv/ISO/MX-25.2_KDE_x64.iso"
    export iso_path
   
    # 2. Locate the physical partition housing the file
    search --no-floppy --fs-uuid --set=root 5ebb0972-4bac-423f-8890-f7dacea82935 
 
    # 3. CRITICAL: Extract the partition UUID and export it as buuid for the kernel
    insmod probe
    probe -u $root --set=buuid
    export buuid
 
    # 4. Mount the ISO virtually inside GRUB
    loopback loop $iso_path
   
    # 5. Hand off root control to the loop mount
    set root=loop
   
    # 6. Execute the file you found
    configfile /boot/grub/loopback.cfg
}
You can easily adapt it to your heart's content. After an "update-grub" it worked for me
and all that remains is a modification of grub2-fll-fromiso to include the MX- ISO's.
Title: Re: grub2-fll-fromiso
Post by: eriefisher on 2026/05/30, 19:37:25
Quote# 6. Execute the file you found
    configfile /boot/grub/loopback.cfg

Is this generated or pre-existing?
Title: Re: grub2-fll-fromiso
Post by: Teriarch on 2026/05/30, 21:23:10
> Is this generated or pre-existing?
It's preexisting on the MX- iso image waiting to be called upon
for exactly the purpose implied by its name. Once started it does
all the heavy lifting in order to present you with the MX boot menu.

Grub passes the buuid Variable on to the linux kernel, which is used
by the initrd init script to loopback mount the iso image and search
for the squashed linuxfs file system. All the work done by grub is lost
after control is handed on to the kernel, hence all the work has to be
redone by the init script of the ramdisk. buuid are the only remains
passed on from the grub universe to the kernel as remains of a better
world. It's almost epic.

PS.: Now I'm almost certain that grub2-fll-fromiso can be improved 
to account for MX ISO's
Title: Re: grub2-fll-fromiso
Post by: Teriarch on 2026/05/31, 19:25:37
Here are the instructions for making grub2-fll-fromiso work with MX-ISO images
(I chose version 0.6.1 (identical to the current github version), because it's
more recent, but similar changes would also work for siduction version 0.3.12:
 
Download the following patch to /tmp and save it to /tmp/patch:
diff -Nurp a/60_fll-fromiso b/60_fll-fromiso
--- a/60_fll-fromiso    2026-05-31 18:45:17.833141214 +0200
+++ b/60_fll-fromiso    2026-05-31 18:49:46.070668509 +0200
@@ -98,6 +98,11 @@ detect_iso_bootloader() {
                echo "grub"
                return
        fi
+      if "${ISOINFO}" -R -i "${iso}" -f 2>/dev/null \
+                      | grep -q '^/boot/grub/loopback.cfg$'; then
+              echo "grub_mx"
+              return
+      fi
 
        # ESP-based: distinguish by FAT contents
        if [ -n "${efi_img}" ]; then
@@ -211,6 +216,29 @@ fromiso_stanzas_grub_hybrid() {
                        "$(basename "${iso_image}")" "${boot_cache}" 0
 }
 
+fromiso_stanzas_grub_mx() {
+      local iso_image="$1"
+      local cur_fromhd="$2"
+      local stripped_path="$3"
+      local boot_cache="$4"
+      iso_label="$(basename "${iso_image}")"
+      local uuid_fromhd=$(echo $cur_fromhd|sed -e 's/UUID=//')
+
+
+      echo menuentry \"MX Linux - Native Loopback Menu, $iso_label\" {
+        echo '\t' set iso_path=\"$stripped_path\"
+        echo '\t' export iso_path
+        echo '\t' search --no-floppy --fs-uuid --set=root $uuid_fromhd
+        echo '\t' insmod probe
+        echo '\t' probe -u '$root' --set=buuid
+        echo '\t' export buuid
+        echo '\t' loopback loop $stripped_path 
+        echo '\t' set root=loop
+        echo '\t' sleep 5
+        echo '\t' configfile /boot/grub/loopback.cfg
+        echo }
+}
+
 fromiso_stanzas_grub_efi() {
        local iso_image="$1"
        local efi_img="$2"
@@ -422,6 +450,16 @@ for iso_image in $FROMISO; do
                                "${cur_fromhd}" "${stripped_path}" "${boot_cache}"
                        if [ "${FLL_GRUB2_SUBMENU}" = "true" ]; then
                                printf '}\n'
+                      fi
+                      ;;
+              grub_mx)
+                      if [ "${FLL_GRUB2_SUBMENU}" = "true" ]; then
+                              printf 'submenu "%s" {\n' "$(basename ${iso_image})"
+                      fi
+                      fromiso_stanzas_grub_mx "${iso_image}" \
+                              "${cur_fromhd}" "${stripped_path}" "${boot_cache}"
+                      if [ "${FLL_GRUB2_SUBMENU}" = "true" ]; then
+                              printf '}\n'
                        fi
                        ;;
                grub-efi)
Apply the patch after saving the original file 60_fll-fromiso as backup:
$ cd /tmp
$ wget http://aptosid.com/debian/pool/main/g/grub2-fll-fromiso_0.6.1_all.deb
$ sudo dpkg -i grub2-fll-fromiso_0.6.1_all.deb
$ cd /etc/grub.d
$ sudo patch -p1 < /tmp/patch
 
Adjust file /etc/default/grub2-fll-fromiso to reflect your settings (esp. add
"MX-" to FLL_GRUB2_ISO_PREFIX).
 
Run update-grub:
 
$ sudo update-grub
 
Enjoy!
Title: Re: grub2-fll-fromiso
Post by: eriefisher on 2026/06/02, 13:10:29
A couple things here. first, your link is incomplete.
http://aptosid.com/debian/pool/main/g/grub2-fll-fromiso/grub2-fll-fromiso_0.6.1_all.deb (http://aptosid.com/debian/pool/main/g/grub2-fll-fromiso_0.6.1_all.deb)
Two, the patch fails for some reason.
sudo patch -p1 < /tmp/patch
patching file 60_fll-fromiso
Hunk #1 FAILED at 98.
Hunk #2 FAILED at 211.
Hunk #3 FAILED at 422.
3 out of 3 hunks FAILED -- saving rejects to file 60_fll-fromiso.rej
Title: Re: grub2-fll-fromiso
Post by: Teriarch on 2026/06/02, 13:44:33
> [...] first, your link is incomplete.
I think the link is fine as long as you use wget or open a new browser
window with the link. I couldn't find a tls link and the siduction server
somehow blocks http links (maybe a question for hausmeister...)
 
> Two, the patch fails for some reason.
Let me recheck, maybe I confused my intermediate debug versions of 60_fll_fromiso
with the original during the diffs...
Title: Re: grub2-fll-fromiso
Post by: Teriarch on 2026/06/02, 14:35:27
> Two, the patch fails for some reason.
You are right. I somehow messed it up with an intermediate. In the meantime
I cleaned up the code a little since I realized that version 0.6.1 couldn't handle
siduction images either. Now the same code works for MX- and siduction- ISO's
(the same instructions apply)
patch:

--- a/60_fll-fromiso    2026-05-24 20:14:00.000000000 +0200
+++ b/60_fll-fromiso    2026-06-02 14:22:21.927229518 +0200
@@ -98,6 +98,11 @@ detect_iso_bootloader() {
                echo "grub"
                return
        fi
+      if "${ISOINFO}" -R -i "${iso}" -f 2>/dev/null \
+                      | grep -q '^/boot/grub/loopback.cfg$'; then
+              echo "grub_mx"
+              return
+      fi
 
        # ESP-based: distinguish by FAT contents
        if [ -n "${efi_img}" ]; then
@@ -211,6 +216,28 @@ fromiso_stanzas_grub_hybrid() {
                        "$(basename "${iso_image}")" "${boot_cache}" 0
 }
 
+fromiso_stanzas_grub_mx() {
+      local iso_image="$1"
+      local cur_fromhd="$2"
+      local stripped_path="$3"
+      local boot_cache="$4"
+      iso_label="$(basename "${iso_image}")"
+      local uuid_fromhd=$(echo $cur_fromhd|sed -e 's/UUID=//')
+
+      echo menuentry \"MX Linux - Native Loopback Menu, $iso_label\" {
+        echo '\t' set iso_path=\"$stripped_path fromhd=$cur_fromhd\"
+        echo '\t' export iso_path
+        echo '\t' search --no-floppy --fs-uuid --set=root $uuid_fromhd
+        echo '\t' insmod probe
+        echo '\t' probe -u '$root' --set=buuid
+        echo '\t' export buuid
+        echo '\t' loopback loop $stripped_path
+        echo '\t' set root=loop
+        echo '\t' sleep 5
+        echo '\t' configfile /boot/grub/loopback.cfg
+        echo }
+}
+
 fromiso_stanzas_grub_efi() {
        local iso_image="$1"
        local efi_img="$2"
@@ -418,7 +445,17 @@ for iso_image in $FROMISO; do
                        if [ "${FLL_GRUB2_SUBMENU}" = "true" ]; then
                                printf 'submenu "%s" {\n' "$(basename ${iso_image})"
                        fi
-                      fromiso_stanzas_grub_hybrid "${iso_image}" \
+                      fromiso_stanzas_grub_mx "${iso_image}" \
+                              "${cur_fromhd}" "${stripped_path}" "${boot_cache}"
+                      if [ "${FLL_GRUB2_SUBMENU}" = "true" ]; then
+                              printf '}\n'
+                      fi
+                      ;;
+              grub_mx)
+                      if [ "${FLL_GRUB2_SUBMENU}" = "true" ]; then
+                              printf 'submenu "%s" {\n' "$(basename ${iso_image})"
+                      fi
+                      fromiso_stanzas_grub_mx "${iso_image}" \
                                "${cur_fromhd}" "${stripped_path}" "${boot_cache}"
                        if [ "${FLL_GRUB2_SUBMENU}" = "true" ]; then
                                printf '}\n'

Let me know, if it works for you.
PS:
Use the following link instead (the old was indeed broken):
<http://aptosid.com/debian/pool/main/g/grub2-fll-fromiso/grub2-fll-fromiso_0.6.1_all.deb>
 
Title: Re: grub2-fll-fromiso
Post by: Teriarch on 2026/06/02, 23:38:28
And while I'm at it: Here is the corresponding patch of grub2-fll-fromiso for siduction version 0.3.12 from
<https://packages.siduction.org/extra/pool/main/g/grub2-fll-fromiso/grub2-fll-fromiso_0.3.12_all.deb>
or by apt-get with the same instructions as above:

--- a/60_fll-fromiso    2016-06-25 18:57:32.000000000 +0200
+++ b/60_fll-fromiso    2026-06-02 22:30:37.560696874 +0200
@@ -84,7 +84,23 @@ for iso_image in $FROMISO; do
        if [ "${mountpoint}" = "/"  ]; then
                stripped_path="/${stripped_path}"
        fi
-
+        loopback="$( ( ${ISOINFO} -J -f -i ${iso_image} 2>/dev/null || ${ISOINFO} -R -f -i ${iso_image} 2>/dev/null || ${ISOINFO} -f -i ${iso_image} ) | sed -n -e 's|\;[0-9]*$||' -e 'y|ABCDEFGHIJKLMNOPQRSTUVWXYZ|abcdefghijklmnop
qrstuvwxyz|' -e 's|\(/boot/grub/loopback.cfg\)|\1|p')"
+        if [ -n "$loopback" ]; then
+               iso_label="$(basename "${iso_image}")"
+               uuid_fromhd=$(echo $cur_fromhd|sed -e 's/UUID=//')
+               echo menuentry \"Native Loopback Menu, $iso_label\" {
+               echo '\t' set iso_path=\"$stripped_path fromhd=$cur_fromhd\"
+               echo '\t' export iso_path
+               echo '\t' search --no-floppy --fs-uuid --set=root $uuid_fromhd
+               echo '\t' insmod probe
+               echo '\t' probe -u '$root' --set=buuid
+               echo '\t' export buuid
+               echo '\t' loopback loop $stripped_path
+               echo '\t' set root=loop
+               echo '\t' sleep 5
+               echo '\t' configfile /boot/grub/loopback.cfg
+               echo }
+        else
        kernels="$( ( ${ISOINFO} -J -f -i ${iso_image} 2>/dev/null || ${ISOINFO} -R -f -i ${iso_image} 2>/dev/null || ${ISOINFO} -f -i ${iso_image} ) | sed -n -e 's|\;[0-9]*$||' -e 'y|ABCDEFGHIJKLMNOPQRSTUVWXYZ|abcdefghijklmnopqr
stuvwxyz|' -e 's|/boot/\(vmlinuz.*\)|\1|p')"
        if ( ${ISOINFO} -J -l -i ${iso_image} 2> /dev/null || ${ISOINFO} -R -l -i ${iso_image} 2>/dev/null || ${ISOINFO} -l -i ${iso_image}) | tr A-Z a-z | grep -q initrd\\.img; then
                initrd_suffix=".img"
@@ -104,6 +120,7 @@ for iso_image in $FROMISO; do
 EOF
        echo "Found fromiso: $(basename ${iso_image}) on ${cur_device}" >&2
        done
+        fi
 done
  
 rm -f "${DEVICE_MAP_TMP}"

 
 
Title: Re: grub2-fll-fromiso
Post by: Teriarch on 2026/06/03, 01:53:38
I just realized, that the Code selection from the menu bar replaced all the TAB's by blanks,
which is a very stupid thing to do to a patch. Maybe someone can fix this or show a way to
avoid it.
Title: Re: grub2-fll-fromiso
Post by: towo on 2026/06/03, 09:11:47
I forum is never a good place for software development.
Why you do not use https://github.com/siduction/grub2-fll-fromiso for helping us improove that package?
Title: Re: grub2-fll-fromiso
Post by: Teriarch on 2026/06/03, 14:06:53
Done! I opened an issue and appended the patch. Hopefully someone will react.
Title: Re: grub2-fll-fromiso
Post by: Teriarch on 2026/06/03, 15:31:27
Great! I am impressed. Now eriefisher can try it out the official way.
I was to blind to see the obvious. But as they say:

"If your only tool is a hammer,
 every problem seems to be like a nail."
Title: Re: grub2-fll-fromiso
Post by: eriefisher on 2026/06/03, 19:26:39
Thanks for the effort. I haven't tried the latest iteration yet but will in the next few days. Too busy for a retired guy.
Title: Re: grub2-fll-fromiso
Post by: Teriarch on 2026/06/03, 21:49:56
> Thanks for the effort. I haven't tried the latest iteration yet but will in the next few days.
You are welcome. Famous last words:

I completely reinstalled version 0.3.13 (the recent version on the siduction server, which towo
so kindly updated) on some virtual machine and tried all my iso images (siduction-, aptosid-, MX-).
They all booted perfectly. In all fairness I also suggested the necessary code changes to the aptosid/FULLSTORY
team on github, but had no response yet. Their version 0.6.1 uses program awk to detect the kernel
parameters with all the awk-ward consequences that implies (no luck for siduction images, e.g.).
So siduction is still ahead with version 0.3.13.

One little thing for all who want to try out additional iso images:  FLL_GRUB2_ISO_LOCATION must be set to
include a possible mountpoint (/mnt/srv/ISO if mounted on /mnt, e.g.) for the iso images. It will be stripped
away by the code. update-grub will only insert the additional menu entries if the images are present or mounted
at the call. I suppose with little changes the code can also handle other ISO's. So feel free to try it out!
Title: Re: grub2-fll-fromiso
Post by: eriefisher on 2026/06/09, 14:47:34
I finally had a chance to test it out. I went back to the default Siduction version as you did and MX boots just fine, as well as Siduction iso's. 
Thanks again for the assistance and effort.
Title: Re: grub2-fll-fromiso
Post by: Teriarch on 2026/06/09, 16:55:05
Glad to hear. In the meantime I applied some little improvements to the code and opened
another issue on <https://github.com/siduction/grub2-fll-fromiso>. Besides siduction, aptosid
and MX  it should now also work for archlinux, linuxmint and ubuntu ISO's, tested on various
legacy and efi bioses. Maybe towo could have another look...
Title: Re: grub2-fll-fromiso
Post by: Teriarch on 2026/06/12, 16:51:01
@towo
Did you already happen to consider the open issue at <https://github.com/siduction/grub2-fll-fromiso>?
No pressure though.
Title: Re: grub2-fll-fromiso
Post by: hendrikL on 2026/06/13, 16:25:40
@Teriarch
First great work!

The best practice is to fork the repository via GitHub, insert/merge your patch in that fork, and make a pull request.
So it is much easier for us to merge it and build a new package.

It will make our lives much easier.

For the next time, and if towo doesn't build it yet, you can try to make a pull request from it.
Title: Re: grub2-fll-fromiso
Post by: Teriarch on 2026/06/13, 18:46:30
Launched the pull request and went through the github nightmare as requested.
Title: Re: grub2-fll-fromiso
Post by: hendrikL on 2026/06/14, 20:46:45
apt policy grub2-fll-fromiso
grub2-fll-fromiso:
  Installed: 0.3.14
  Candidate: 0.3.14