Creating bootable images in a GUI
A Kinder dd
Kindd offers a GUI alternative to the ubiquitous dd command-line tool, offering a risk-free option for transferring bootable images to USB sticks.
When it comes to managing Linux computers, two frequently used commands, rm
(remove) and dd
(disk dump), require special attention. These two very powerful tools are potentially destructive. If they are not used carefully, data can be very quickly lost. While rm
has an integrated emergency brake for the root partition, dd
overwrites specified partitions without asking, causing some users to interpret dd
's name as an acronym for "destroy data."
To prevent specifying the wrong partition (and the resulting data loss), graphical user interface (GUI) tools can be helpful for creating bootable distribution images on external media, such as USB sticks or SD cards. In addition to some distribution-specific solutions, these tools include UNetbootin [1], which is not supported by all distributions; Rufus [2], which is only available for Windows; and Etcher [3], which has gained in popularity recently. Because these applications only offer external devices as options for where to write the data, users are prevented from accidentally overwriting partitions.
The basically excellent Etcher can be used on almost all distributions due to its packaging as an AppImage. However, since it was developed with the Electron framework [4], it needs many dependencies, which inflate the AppImage's size to about 100MB.
Another dd
alternative, the relatively new Kindd [5], described as "A kindful DD GUI written in Qt Quick," makes do with considerably less disk space. If you remove the unnecessary folder with screenshots after compiling the application, the space requirement can be reduced to a manageable 30MB.
Kindd is ideally suited for desktop environments like Plasma or LXQt and requires at least Qt 5.13. Since Qt 5.13 is not yet available in all distributions, Arch Linux is currently the best distribution choice for running Kindd. In Arch, you will find Kindd in the Arch User Repository (AUR) both as a release version and as a Git excerpt. For all other distributions that already offer Qt 5.13.x or 5.14, you will need to build the software yourself from the source code.
Kindd still lacks important documentation on GitHub, mainly in terms of dependencies needed to compile Kindd. The tool was developed on Void Linux, which is not too widespread, and the developer only lists dependencies for Void. However, I found additional dependencies that needed resolving.
Build-It-Yourself
In addition to the packages listed on Kindd's GitHub page, I also needed to install the following on Void Linux at the time of my test: git, qt5-qmake, qt5-declarative-devel, and qt5-quickcontrols2-devel. I built Kindd on a KDE neon User Edition, which is based on the latest long-term support (LTS) version of Ubuntu and has Qt 5.13, resulting in additional dependencies (see the "Dependencies on Debian Derivatives" box).
Dependencies on Debian Derivatives
You will need to resolve the following dependencies to build and run Kindd on Debian and its derivatives: git, gcc, g++, make, qt5-default, libpolkit-qt5-dev, qml-module-qt-labs-platform, libqtquickcontrols2-5, qtquickcontrols2-5-dev, qml-module-qtgraphicaleffects, and qtdeclarative5-dev.
One general annoyance when it comes to building packages on different distributions is the different names used for the required libraries. One distribution uses -dev
as part of the name, the next -devel
, and, in some cases, -qt
is found in different parts of the name.
As a helper for finding the correct package names, Debian uses apt search
and apt-file search
, where you first have to install the apt-file package and load the package list by typing apt-file update
. Google can also help here, if you combine a name known from another distribution with the term "Debian." In any case, this is often a time-consuming task, even if you work with distributions, like KDE neon, with a fairly short package lists.
After installing all the dependencies, it's time to fetch the source code from GitHub. You can do this either via Kindd's GitHub page [5] by clicking on Clone or download, or you can use git
in the terminal (Listing 1, line 1). Next, go to Kindd's source code folder and call qmake
(lines 2 and 3). In my test, I got a prompt back immediately. The following command make
takes a little longer (line 4). If you see an error message here, you're probably missing a dependency.
Listing 1
Downloading Kindd
01 $ git clone https://github.com/LinArcX/Kindd/ 02 $ cd Kindd/ 03 $ qmake 04 $ make
If you use a window manager like i3 instead of a full desktop environment, see the polkit notes on the GitHub project page.
Simple Interface
After successfully navigating the installation, start the application by calling ./kindd
. The very simple interface (Figure 1) needs virtually no explanation. In contrast to other GUIs that also use dd
, Kindd lets you adjust the block size; this corresponds to the bs=
option in the command-line variant.
The Block Size option defines the size of the blocks that Kindd reads from the input file and writes to the output device. Instead of the default 5MB, 4MB is a better choice for an ISO image. This is an exact multiple of the 4KB block size of the ext4 filesystem and ensures efficient read and write speeds [6].
The middle selection field, Choose Input .iso file, lets you select the image to be copied. Choose Target Path lists any connected external devices, such as USB sticks, SD cards, or external hard disks. If there are several external data storage devices on the computer, the sudo fdisk -l
command can help you decide on the right target.
Transfer
Clicking on the Convert/Copy button at the bottom of the application window starts copying the image after you have confirmed another prompt and entered the root password. Kindd displays a progress bar during the process (Figure 2). Upon completion, a small window saying Congratulations appears to confirm that the image has been successfully transferred.
If you want to select a different image to be copied, pressing the ISO button in the top left corner takes you back to an empty selection mask. The colored ball bottom left takes you to the configuration dialog (Figure 3) where you can change the GUI's look in terms of theme and font type and size. You will want to set the default block size to 4MB and save the settings.
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
News
-
Fedora Asahi Remix 41 Available for Apple Silicon
If you have an Apple Silicon Mac and you're hoping to install Fedora, you're in luck because the latest release supports the M1 and M2 chips.
-
Systemd Fixes Bug While Facing New Challenger in GNU Shepherd
The systemd developers have fixed a really nasty bug amid the release of the new GNU Shepherd init system.
-
AlmaLinux 10.0 Beta Released
The AlmaLinux OS Foundation has announced the availability of AlmaLinux 10.0 Beta ("Purple Lion") for all supported devices with significant changes.
-
Gnome 47.2 Now Available
Gnome 47.2 is now available for general use but don't expect much in the way of newness, as this is all about improvements and bug fixes.
-
Latest Cinnamon Desktop Releases with a Bold New Look
Just in time for the holidays, the developer of the Cinnamon desktop has shipped a new release to help spice up your eggnog with new features and a new look.
-
Armbian 24.11 Released with Expanded Hardware Support
If you've been waiting for Armbian to support OrangePi 5 Max and Radxa ROCK 5B+, the wait is over.
-
SUSE Renames Several Products for Better Name Recognition
SUSE has been a very powerful player in the European market, but it knows it must branch out to gain serious traction. Will a name change do the trick?
-
ESET Discovers New Linux Malware
WolfsBane is an all-in-one malware that has hit the Linux operating system and includes a dropper, a launcher, and a backdoor.
-
New Linux Kernel Patch Allows Forcing a CPU Mitigation
Even when CPU mitigations can consume precious CPU cycles, it might not be a bad idea to allow users to enable them, even if your machine isn't vulnerable.
-
Red Hat Enterprise Linux 9.5 Released
Notify your friends, loved ones, and colleagues that the latest version of RHEL is available with plenty of enhancements.