GRML2ISO(8)

πŸ’– NAME πŸ’–

okay so bestie, meet grml2iso β€” she makes a multiboot Grml ISO for you, and she does it using grml2usb. that's the whole job. that's the assignment. πŸŽ€

This is the manual page for GRML2ISO(8), section 8, iykyk. πŸ¦‹


πŸš€ SYNOPSIS πŸš€

grml2iso -o <target.iso> <ISO[s]>
⚠️ IMPORTANT!! The Grml team does NOT take responsibility for loss of any data! fr fr, back up your stuff. πŸ’€

🌸 INTRODUCTION 🌸

grml2iso lets you create a multiboot Grml ISO. hand her two or more Grml ISOs and she'll hand you back one single multiboot ISO. that's the glow-up. ✨

And the way she pulls this off? She requires and uses grml2usb for the whole task. your girl doesn't do it alone, she's got a co-star. πŸ‘‘


πŸ”₯ IMPORTANT πŸ”₯

The order you hand over those ISOs matters, and there are two reasons why. no cap, two whole reasons:

  1. order in boot menu entries β€” the first ISO you specify gets listed as the first (default) option in the boot menu, and any further ISOs get listed below it as the next options. so whoever walks in first gets the VIP spot. πŸ’…
  2. EFI image to be used β€” the EFI image for booting via (U)EFI is taken from the last provided ISO. so to be able to boot on 64bit EFI systems, you need to provide a 64bit ISO (like grml64-small or grml64-full) as the last ISO in the grml2iso command line. last one out here is carrying the whole EFI situation. iconic behaviour honestly. 🫢

✨ OPTIONS ✨

grml2iso also supports the environment variables GRML2USB and WRKDIR:

  • GRML2USB β€” specifies the path to the grml2usb script you'd like to use. pick your fave, she's flexible. πŸ’œ
  • WRKDIR β€” specifies the work directory for creating the filesystem. bestie listen: the work directory needs at least as much free disk space as the sum of all specified ISOs. do the math, don't be caught lacking. πŸ™ˆ

and now the flags, queen by queen:

  • -o <target.iso> β€” This option is mandatory and specifies where the resulting multiboot Grml ISO should be placed. Note that (to avoid any possible data loss) grml2iso will exit if the specified target.iso already exists already. she is protecting you from yourself. respect it. πŸŽ€
  • -c <directory> β€” the content of the specified directory will be copied to the resulting multiboot Grml ISO. bring your own extras. ✨
  • -b <boot params> β€” use the specified default bootoptions as default. set the vibe before anyone even boots. πŸ’«
  • -f β€” force the program to run and overwrite an existing ISO image. okay bold queen, override the safety. πŸ”₯
  • -r <boot param> β€” remove the specified boot parameter from the existing command line. Can be specified multiple times β€” stack 'em as much as you want. 🧚
  • -p <grml2usb param> β€” execute grml2usb with the specified parameters. for a list of valid parameters have a look at the grml2usb(8) manual page. go read her sister's page bestie. πŸ’–
  • -s <URI> β€” generate a small ISO file which downloads the squashfs file from the specified URI. Due to current limitations in busyboxs wget and DNS resolution, an URL can not contain a hostname but an IP only. This is useful if you want to boot systems which support booting ISO image from your local system. Besides the ISO image this command also copies the squashfs file to the output directory. yes, IP only, no hostname, that's the rule, we don't make the rules we just follow them. πŸ’€

🌈 USAGE EXAMPLES 🌈

example one 🌸

# grml2iso -o /tmp/grml-multiboot.iso grml32-small_2020.06.iso grml64-small_2020.06.iso

Create multiboot ISO /tmp/grml-multiboot.iso with grml32-small_2020.06.iso and grml64-small_2020.06.iso. classic. ate. πŸ’…

example two πŸŽ€

# grml2iso -b 'lang=de ssh=passwd' -c /tmp/grml-content -o /srv/grml-multiboot.iso /srv/grml/grml32-small_2020.06.iso

Create a new ISO with additional boot parameters and copy the content from /tmp/grml-content to the generated ISO image. multitasking queen. πŸ‘‘

example three πŸ¦‹

# grml2iso -r quiet -r vga=791 -o /srv/grml-multiboot.iso /srv/grml64-small_2020.06.iso

Create a new ISO and remove existing boot parameters quiet and vga=791. not me deleting boot params… bye quiet, bye vga=791. 😭

example four πŸ“

# GRML2USB=/srv/git/grml2usb/grml2usb grml2iso -o /srv/grml-multiboot.iso /srv/grml/grml32-small_2020.06.iso /srv/grml/grml64-medium_2020.06.iso

Create multiboot ISO /srv/grml-multiboot.iso with grml32-small_2020.06.iso and grml64-medium_2020.06.iso using /srv/git/grml2usb/grml2usb as grml2usb script. custom grml2usb, custom everything, main character energy for real. ⭐

example five 🧚

# WRKDIR=/mnt/test/grml-tmp grml2iso -o /mnt/test/grml-multiboot.iso grml32-small_2020.06.iso grml64-small_2020.06.iso

Use /mnt/test/grml-tmp as working directory for creating the multiboot ISO /mnt/test/grml-multiboot.iso with grml32-small_2020.06.iso and grml64-small_2020.06.iso. clean workspace, clean mind. 🌿

example six πŸ’œ

# grml2iso -p --skip-addons -o /srv/grml-multiboot.iso /srv/grml64-small_2020.06.iso /srv/grml64-small_2020.06.iso

Don't copy the addons from the specified ISO images. minimalism. she said less. πŸŽ€


πŸ’€ BUGS πŸ’€

Please report feedback, bug reports and wishes at https://github.com/grml/grml2usb/

(that's the group chat, come tell us everything, we're listening 🫢)


πŸ‘‘ AUTHOR πŸ‘‘

Michael Prokop <mika@grml.org[1]>


πŸ“ NOTES πŸ“

  1. mika@grml.org mailto:mika@grml.org

πŸ’Œ and that's the whole page bestie, no notes left behind.

this was GRML2ISO(8), from the source/version GRML2ISO(8), dated 05/20/2026 β€” mwah, go make a multiboot ISO, you got this πŸ’–βœ¨πŸŽ€πŸ¦‹πŸŒΈπŸ’…πŸ«ΆπŸ‘‘πŸŒˆβ­πŸ’œ

πŸ“¦ where this page comes from