Installation issues using custom scripts

I think the major stumbling block for Fedora’s community is the fact that the installation is a nightmare. I’m not referring to the default installation using anaconda GUI on a USB stick. I’m referring to a custom scripted installation from an existing Fedora system.

I wrote a script to do this for personal purposes. And in some ways it is great as are many things related to Linux. But in some ways as it has to do with Fedora it’s not. The script is still not 100% finished today, after many days. It worked but then stopped working.

a) it’s not standardized. I experienced changes in dnf that disrupted installation between several attempts separated temporally.
b) it’s pretty cumbersome. Which goes back to a) a little. There should be a streamlined process to install Fedora that should separate things that are just standard for Linux installations like generating fstab, user and sudo setup, etc that might not be even tinkered with at the getgo and things that are Fedora centric like choosing what to install and what to exclude and what to configure dracut with based on the specific system config and use custom kernel versus the default one easily.
c) anaconda for Fedora installation should be renamed because when googling ‘anaconda script fedora install’ or variations thereof you will get virtually nothing other than installing anaconda the data science package stuff conda (

In a production environment I have always used kickstart for unattended and reproducible installations. Kickstart is well documented and has worked well in my experience.

Can you use kickstart?


Can you please elaborate on what it is you’re using? What is this script? At the moment, there isn’t enough information in your post for folks to help you.

As noted in the above post, kickstart files are the suggested way of managing custom installations.

Re: naming: I’m quite sure anaconda, the installer, was around way before Anaconda, the package management system came up. It’s unfortunate, but one cannot keep changing software names because they get taken up by others too. I do get lots of bits on fedora anaconda when searching btw, maybe try more advanced search strings? On ddg, for example, one can use - to remove any results from that particular website and so on.

1 Like

Just writing my own bash script.

Kickstart may not be a good options either, although it looks sort of kind of in the direction of where it should be heading. Part of the problem with kickstart is documentation in the sense of tutorials.

Not sure about tutorials for kickstart. But the reference docs are first class.

You can ask in a new topic for help with kickstart.

To get you started:

  1. do an manual installation with the options you want to use
  2. use the /root/anaconda-ks.cfg as the starting point for you kickstart file

Do you want to kickstart from a network boot or from physical media (USB-stick, etc)?

I don’t know abut kickstart documentation. I checked it out and I can’t even see where and how to start with it. I’m installing from the hard drive to a USB stick and to a hard drive.

I still think we need some more information here. Are you copying bits (but maybe not everything) over from an existing Fedora installation? As in, you’re not installing from rpms using the package manager, you’re copying over the files that have already been extracted from and installed from rpms?

1 Like

No, chrooting and then using dnf with installroot.

I have been using custom scripts I wrote in Bash years ago, the custom Python scripts as dnf got better and better. Professionally i used kickstart files for unattended, headless, remote, netinstall builds and even using Ansible playbooks for some requested configurations.

What i would like to know is what have you achieved, would like to see or expect from certain commands. So far, I’ve surmised from your post what the pain points were, but no information on the implementation.

Could you describe what your script is, does, or would like for it to do?

1 Like

Just the basic unattended install with partitioning and an ability to throw in some extra things into dracut and have encryption configurations other than LUKS. I don’t think any of your kickstarter or ansible playbooks allow for anything other than LUKS encrypted drives, for example?

Nothing in the kickstart mechanism forces any policy on you.
You are fully in control. No where is LUKS forced.

1 Like

Well, right off the bat - it’s pretty limiting that the only way to do an install using kickstarter is to boot into some preinstalled installation medium and run kickstarter before booting into some functional interface.

Why can’t I run kickstarter from my regular Fedora install and install Fedora that way? Really bizarre that kickstarter would be touted as a great solution then.

By booting into anaconda to run the kickstart file you allow the installation to check hardware and install required software.

Btw no such thing as kickstarter.

Please use systemd/mkosi: :minidisc: Build Bespoke OS Images ( instead if you wish to tailor-fit every aspect of your installation.

1 Like