Photo by Christian Joudrey on Unsplash

Preseed Kali Linux from a mini ISO

My journey to a customized automated installation

When I install a new Kali Linux, I like to do it automatically. So I forked a Kali Linux preseed configuration and fitted it to my needs. This was roughly three month before Offensive Security added that preseed configuration to their GitHub. But it did not work with the mini ISO of Kali and the command you have to type was very long and annoying. I got frustrated. So I decided to dive deeper and generate a better preseed configuration. I could have stopped there. It works for me. But I wanted to document at least what I have done, so that the next one facing this problem would have a small guide.

Note: I excluded all dead ends from this article, because there were a lot of them and it would be unbearable to read. I try hard and I fail hard, so I tried harder and failed harder. 🤪

Maybe the preseed configuration I have generated does not fit your needs. It probably wont. This is why I try to explain my way and the finished preseed configuration so that you can change it yourself!


Tailor this to your needs:


This article assumes that you use the mini ISO (~40MB). Maybe other ISOs will work, but you will have to put a bit of work into that. Secondly I use VirtualBox most of the time. So the guest additions will be included. If you use a different hypervisor, you should exchange the package for guest additions.

If you want to install Kali Linux to bare metal, I recommend doing a manual installation. If you need to deploy Kali Linux to large quantities of metal, then you are on your own, but I am sure that you know what you are doing, anyway. 🙂

Manual installation

I recommend to do a minimal manual installation first. Take note of every option you set during the installation. Finish the installation and then list all packages you need to have a fully installed system. This way you can change your custom packages more easily and you have more control over packages, which tend to bloat. For example compare gnome with gnome-core. There is a lot room for optimization, but I recommend solving one problem at a time! For now I use these packages: gnome kali-linux-full virtualbox-guest-x11 This is close to the installation of a regular Kali Linux from a weekly ISO.

Maybe you want to record your installation process with video capturing so you can rewind and play back. I took notes with pen and paper.

Fork an existing preseed configuration

I heavily recommend forking an existing and working preseed configuration! So you want to start with the kali-linux-rolling-preseed.cfg from the Offensive Security GitHub. For a better understanding I compare this to my configuration. I removed all comments, empty lines and sorted it, because I rearranged some lines in my configuration for convenience. Here is the relevant diff in handy chunks:

< d-i console-keymaps-at/keymap select us
< d-i debian-installer/locale string en_US.UTF-8
> d-i console-keymaps-at/keymap select de
> d-i debian-installer/locale string de_DE.UTF-8
< d-i keyboard-configuration/xkb-keymap select us
> d-i keyboard-configuration/xkb-keymap select de
< d-i time/zone string US/Eastern
> d-i time/zone string Europe/Berlin

As you can see, I am from Germany. So you want to use your own keymap, locale and time zone. Here you can refer to your notes from your manual installation.

< d-i mirror/country string enter information manually< d-i mirror/http/proxy string< d-i passwd/make-user boolean false

I also stripped three lines, which (I think) are not needed. Mirrors and user creation work in Kali different than in vanilla Debian. So these lines should not have no effect. If you ever experience problems, please ping me and I will update this guide accordingly.

> wireshark-common wireshark-common/install-setuid boolean true

During the installation wireshark will ask you a question about groups and setuid etc. This answers the question, so that the installation runs without interruption.

> tasksel tasksel/first multiselect minimal
> d-i pkgsel/include string gnome kali-linux-full virtualbox-guest-x11

These two lines are the key difference between a normal installation and a mini ISO installation. If you use the regular preseed file with the mini ISO, you will get nothing but a black terminal. If you add these to your preseed file, it will do a minimal installation and then add all packages which are listed. This is a bit anticlimactic, but I want to point out that you can customize the heck out of it. You can install every package you like, so after the preseed installation has finished, you can start working instead of having the system upgraded and packages installed.

You can replace gnome with a different window manager. For example:


You can replace kali-linux-full with more or less tools as described here:


You should replace virtualbox-guest-x11 with your guest additions, if you use something else than VirtualBox:

open-vm-tools-desktop fuse (VMware)
hyperv-daemons (Hyper-V)


After you created and uploaded your own preseed configuration file, you can boot the mini ISO, press ESC, type auto url=<your-preseed-URL> and hit return. Lean back and enjoy your ride! 😎


The preseeding mechanism comes from the Debian installer and they have nice Wiki:



-- — 1+1=10, Hacker, Nerd, former Soldier, working as InfoSec Pro — München

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

GraphQL, Laravel, and Vue Part 1: Backend

Visibility Modifiers in Kotlin

Someone who likes code

APIs Are Not The Keys To The Integration Kingdom

Mobile databases on iOS

Leveraging AWS to Scale R&D Workflows

EWACS (Early Warning And Control System) - A Preventative self-healing tool for SAP PI environment

Eager Electron 5.2.10113 — Release Notes

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store

honze — 1+1=10, Hacker, Nerd, former Soldier, working as InfoSec Pro — München

More from Medium

How to install Ansible in Windows 11 WSL Windows Subsystem for Linux

How to Install Splunk on Linux

Linux Fundamentals Part-1

Measuring network speed with iperf3