Skip to content

remastering

Chris Hofstaedtler edited this page Aug 17, 2024 · 3 revisions

Remastering Grml

Full Remaster

This is the recommended way, using grml-live. This process is a full rebuild, building a completely new squashfs. It gives you full control about the result, including removing and adding packages, configuration etc.

To remaster, you need a Debian testing/sid installation or a current grml itself. Running the installation system in a VM is fine. The remastering process doesn't anything weird outside the build directory. It is generally assumed that you use the version of grml-live that was released with the version of grml you're trying to remaster, though any later version should work as well.

  • Download grml iso and the assocaited sha1.asc signature from a mirror.
  • Please, verify the downloaded file:
$ gpg --verify grml64_2011.12.iso.sha1.asc
  • Then, as root:
  • Edit config in /etc/grml/grml-live.local and /etc/grml/fai/* to your liking.
    • Also take a look at CHROOT_INSTALL in grml-live.local.
  • Build:
# grml-live -A -V -u -e ~/Downloads/grml64_2011.12.iso -s testing -c DEBORPHAN,GRMLBASE,GRML_FULL,RELEASE,AMD64,IGNORE -r "Remastered" -g grml64 -o /tmp/grml64
  • Enjoy your new ISO in /tmp/grml64/grml_isos/

The list of FAI recipies after the -c option can be taken from the following table:

grml version FAI list
full 2017.05 insert here
small 2017.05 insert here

The next grml release following 2017.05 will have the list of FAI recipies that were used to build the image inside the iso in *insert path here*

If you have trouble using these instructions, please join our IRC support channel.

Remaster "light" with unchanged squashfs

If you only want to do small changes, for example change the default parameters grml starts with or add a grml.sh file for initialization, use the process from this paragraph to re-build the .iso, giving you the possibility for changes that happen outside the squashfs, while keeping the original squashfs intact. This way, your image stays as close as possible to the respective grml release.

This paragraph is a stub. If somebody knows how to do this "remaster light" process, please document here. If the grml project does not want "remaster light" to be documented, please remove the entire paragraph.

Directly patching the .iso for isolinux configuration

This merge request makes it much easier to do local, simple patches for the isolinux.cfg directly in the downloaded grml iso. This makes it, for example possible to create a grml .iso that is directly useable on a serial console.

This merge request is not in grml 2017.05 but will likely be in the following grml release. Its validity has been verified with the daily snapshot on 2018-08-06.

Use case: iso that offers boot options on serial console

In some situations you want to boot up grml-small directly on a serial console without having to select "serial" on the graphical console first - for example in cases where the only access you have is a serial port (virtualization, housing).

To do this, do:

  • download any grml-small iso later than 2018-08-06. The 2017.05 release will not do
  • open the iso in a hex editor such as dhex or hte
  • Be careful to only overwrite contents, not delete or insert. Moving the file contents will destroy the iso image.
  • Search for the string a8bd612867ae71d0b17f9d33f80f61ab261aa354 or a shorter substring thereof.
  • This will lead you to the live instance of the file isolinux.cfg
  • In this file, slightly above the hex marker string, replace the # sign in front of "serial 0 9600" so that the line now reads " serial 0 9600". Leaving the two spaces in prevents the rest of the image contents from being moved, they're ignored.
  • Slightly lower than the hex marker string, replace "vesamenu.cfg" with " console.cfg", again noting the extra space to avoid movement of the image contents
  • For more complex changes, there are 10 lines of 70 characters that you can arbitrarily replace.

Booting this image directly displays a "boot:" prompt on both the serial and graphical consoles. <TAB> will give you the (long) list of available options. Typing "serial" will fire up a grml with the serial console as system console, giving you all boot output and finally a grml root shell on the serial console.

Clone this wiki locally