How do I create a Custom Fedora ISO

@sreyan32 In your first post you mentioned that you copied the kickstart file. That is what is meant with .ks files, it is just your kickstart file.

Also what you have shown is for GRUB, how do I do that for ISOLINUX ?

You add the same term to the append line.

The documentation is horrible. If I was allowed to swear I would. THE DOCS ARE HORRIBLE.

I am not even sure if this is documented with Fedora. What documentation were you using if I may ask? Also, the RHEL 7 documentation is as usual awesome, and can be easily adopted to Fedora.

I don’t mean anything personally to you, but the I am amazed at how you get around to customizing anything in Fedora.

Personally, why would you try to create customized iso images? If you need to do customization, isn’t the way better way to do a minimum installation and connect the machines to an automation system to do the rest?

Diligence pays off … especially when you’re learning/running Fedora. If you are in a hurry, some documentation will appear aggravating. It becomes easy to miss vital information that is right under your nose. Your questions were actually answered in that page I shared above.

Just before the section titled “Making the Image” you’ll see Creating a kickstart file. That should be relevant too.

For convenience, you can install reference *.ks files for study or composing Spins with dnf. Simply do:

sudo dnf install custom-kickstarts fedora-kickstarts

You can find the reference *.ks files with:
sudo rpm -ql custom-kickstarts

Patience. Enjoy Fedora


Do you really need to create your custom Live ISO or would it be sufficient to be able to install Fedora following a kickstart recipe?


I’m curious. How does a Netinstall route differ from the kickstart recipe?

Fedora Wiki

If I don’t create custom images then how can I install from a Kickstart file ? Tell me something, without using an FTP server how can I load a Kickstart file ?

Please just tell me how I can use a Kickstart file without using a FTP server.

There is no docs that I found that tell me how to use a Kickstart file from the install ISO.

I mean the file has to present for me to do inst.ks=, so how do I supply that to it ?

I am curious as to why you think Netinstall is similar to the kickstart recipe ?

Can you format a partition with LUKS2 in NetInstall ?

You know what I dont like about the Fedora Documentation - its incomplete. Even the tutorial that you shared won’t work.

It itself had a bug that I had to correct:

livecd-creator --verbose \
--config=/path/to/kickstart/file.ks \
--fslabel=Image-Label \
--cache =/var/cache/live

The above won’t work because there is a bug in a dependent package that livecd-creator uses called pykickstart.

Specifically in this line of pykickstart/

def _load_file(filename):
    '''Load a file's contents and return them as a string'''

        if six.PY3:
            with open(filename, 'rb') as fh:
                contents ="utf-8")
            with open(filename, 'r') as fh:
                contents =
    except IOError as e:
        raise KickstartError(_('Error opening file: %s') % str(e))

    return contents

The filename variable is passed in without the path information so every filename refers to the current working directory.

Thankfully, this Python and not C, so I can patch the file without any compilation nonsense.

So I add in the line:

filename = '/use/share/spin-kickstarts/' + filename
just at the start of the function.

But wait, its not over.

Now the livecd-creator command now works, but while running the command I find that

is not found. So I have go into to /usr/share/spin-kickstarts/fedora-disk-base.ks and comment out the above package.

Yeah and all this does not answer my question,

can you add certain files to the custom ISO ?

Wonder if all of Open Source is like this ? :cry:

define “certain files”

Of course you can.

The distribution is only as good as its community. It is the community’s task to fix and complete the documentation. Don’t hesitate to contribute!!


Like adding a kickstart file.

How do I do that ?

Really ? Would you plese tell me how to do that ?

If its anything like this then please note that its LUKS1 and not LUKS2.

But if I am wrong and you know how to create a LUKS2 partition and then use LVM on it, please let me know IMMEDIATELY.

I would LOVE TO.

In fact the documentation is missing certain things like how to create LVM on LUKS and the bug I mentioned earlier. Just tell me how I can contribute. Problem is I have never actually contributed hence I am unfamiliar with the whole process.

For wiki, you need to be in a group other than CLA related ones.

According to this change tracker, the default should be LUKS2. See also

The issue could be the following. Grub cannot yet handle LUKS, so if your /boot resides in the encrypted LUKS2 you won’t be able to boot using Fedora’s default grub. Seems like GNU is working on a fix: See the setup example in the Arch wiki here

May I ask you why LUKS2?

What do you mean by CLA ? I dont understand.

In order to contribute to Fedora, you need to sign a CLA (Contributor License Aggreement) at the FAS website. There are groups in the FAS, and you need to be a member of a group other than CLA related ones in order to edit wiki.

1 Like

The change tracker lists out the exact problem I have. Now, please note that my /boot is in an completely unencrypted partition. Therefore, I can’t understand why you won’t use LUKS2. Also the /boot directory contains all my bootable kernels. So I really don’t see any reason why LUKS2 cannot be used, as it was promised.

Because I want to be on the latest and greatest and seems weird that LUKS2 has been around for a fair amount of time and still not fully supported by Anaconda.

The last post on the above link basically tells you why. Efficiency is the main reason.

This whole process would not have been possible without the help of Thomas Schmitt, the very creator of xorriso.

The easiest way to add a file(s) to an official ISO is by using a program called xorriso, which allows us to add files into ISO images via multisession. The command that worked for me was:

xorriso -indev Fedora-Workstation-Live-x86_64-31-1.9.iso \
          -outdev test.iso \
          -compliance no_emul_toc \
          -map "$file_or_tree_on_disk" "$path_in_iso" \
          -boot_image any replay

I will be wiring a full tutorial after I have ironed out the bugs with the Kickstart install.

1 Like

I would like to add that LUKS2 also supports resilient online re-encryption of your data, which is by far the coolest thing I have seen.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.