A tool to modify live server ISOs

Something that gets asked for reasonably often is a way to make modifications to server ISOs (for example, to add console=foo to the kernel command line, or a way of baking autoinstall config into the ISO).

For a while now I’ve had a bunch of scripts lying around for subiquity testing to do something like this, and I’ve now collected them together (and rewritten in Python) and tried to make them more generally useful. You can find the package on github (https://github.com/mwhudson/livefs-editor) and PyPI (https://pypi.org/project/livefs-edit/). From the README:

There are a few reasons the Ubuntu live server ISOs as shipped may not
quite be what you want. Here are some examples:

  • You want to make an ISO that does a completely automated install

  • You want packages that are not in the package repository by default
    to be available during install, even when there is no network (or
    only a very isolated network).

  • You want to add an argument to the default kernel command line.

  • You want to inject a new version of the subiquity snap for testing.

This script aims to help you making modified versions of the
distributed ISOs with changes such as those above.

Some of the things it does probably work on desktop installer ISOs too
but I haven’t thought very hard about that side of things yet.

At this point this is a bit of a collection of hacks (buyer beware etc), but hopefully useful. Let me know if it is useful for you, or if you find bugs, or there are other modifications it would be useful to make to ISOs.