Daily Archives: August 15, 2022

liveslak 1.6.0 feature release, plus a new set of ISOs for Slackware Live Edition

Liveslak is my favorite project, it’s fully under my control, I built it from scratch, I get good improvement ideas from its users and Patrick helps when liveslak needs something new from Slackware.
There are times that it gets less attention though, and in the first half of 2022 there was not much activity – some minor updates whenever I needed to release a fresh batch of Live ISO images. Most of that inactivity was caused by burnout.

But then someone mentioned Ventoy to me, because liveslak ISOs would not boot from a Ventoy disk and they hoped I would be able to fix that. At first I was like “I don’t care for it, why should I put effort in supporting it” but on second thought and reading through its web pages, my opinion changed in favor of Ventoy. In fact, it is a quite the unique piece of software and I am using it myself now.

So what does it do? Ventoy takes a USB stick, formats it and puts a Linux kernel, a Grub bootloader and some smart tools on it. Then you can put as many bootable images (ISOs, IMGs and so on) on its first exfat-formatted partition as there is room. Ventoy will automatically populate the Grub boot selection screen with all bootable images it could find on that partition. You can then boot any ISO straight from that menu.

Ventoy supports a lot of Operating Systems out of the box, in particular when the OS on the bootable image does not have to know it is chainloaded by Ventoy. Mostly installation ISOs work without issue.
For Live ISOs the situation is more delicate. A Live OS which starts from an ISO needs to know that it boots from an ISO, because its initrd will have to find that ISO file’s location on disk and then mount it in order to start the actual Live OS. Ventoy provides “hooks” for a lot of Live OS-es that it already knows about and validated. It is fairly trivial for a Live OS maintainer to add support for Ventoy.
And actually that’s exactly what I did between the releases of liveslak 1.5.3 and 1.5.4. The liveslak ISO images that are generated automatically after every update for Slackware-current already support booting from a Ventoy disk since a month ago.
You get these Slackware-current Live ISOs from https://download.liveslak.org/slackware64-current-live/ or from https://us.liveslak.org/slackware64-current-live/ by the way, if you are curious and want to test the latest & greatest of Slackware straight from the press.

After releasing liveslak-1.5.4 I took its Ventoy support to the next level and used the opportunity to add a whole new feature set to liveslak.

New features of liveslak 1.6.0

  • Ventoy is now fully supported. Liveslak 1.6.0 implements the “Ventoy-compatible” guideline. This means, Ventoy won’t apply any “hooks” to liveslak when it boots its ISO image, and liveslak figures out for itself how to boot. You’ll see the message “SLACKWARELIVE: (UEFI) Ventoy ISO boot detected…” (or ‘BIOS’ instead of ‘UEFI’ if you have an older computer). There is nothing you have to do, this works out of the box.
  • When you are booting from an ISO file (whether via Ventoy, or through your own hand-crafted Grub menu entry, or Windows BCD), Operating System persistence and an encrypted homedirectory are now supported, as well as the ability to load additional live modules (as ‘addons’ or ‘optional’) that are not part of the ISO. All of this is possible without the need for any modification to the ISO image.
  • A new script, “isocomp.sh” aka the ISO Companion script, has been added to liveslak. Like with all of my scripts, it accepts a “–help” parameter which will show you how to use it.
    This script manages everything mentioned in the previous bullet:

    • creation of encrypted containers for OS persistence and a persistent homedirectory (actually not just for /home but you can create as many containers as fit on the disk and mount them wherever you want)
    • size extension of existing encrypted containers if they threaten to run out of space
    • creating a secondary liveslak root on the disk partition where you can add more optional/add-on live modules that you need in the Live OS but are not contained in the ISO
  • Containerfiles managed by “isocomp.sh” have the filename extension “.icc” which is shorthand for “ISO Companion Container” 😉
    This differs from containerfiles on a persistent USB stick created with “iso2usb.sh” where the container file extension is “.img”.
  • The configuration of all these new features is stored in a file with the same name and full path as the ISO file but with a “.cfg” file extension instead of “.iso”. The “isocomp.sh” script manages this configuration file for you, but you can safely edit and modify it manually if you want to. The script will leave your customizations alone.
    Here is an example of such a configuration file; it is copied from my Ventoy disk, for a Slackware LEAN Live ISO image:
    # Liveslak ISO configuration file for SLACKWARE-CURRENT FOR X86_64 (LEAN LIVE 1.6.0)
    # Generated by isocomp.sh on 20220815_0654
    LIVESLAKROOT=/liveslak
    LUKSVOL=/liveslak/myhome.icc:/home
    ISOPERSISTENCE=/liveslak/persistence.icc
    TZ=Europe/Amsterdam
    LIVE_HOSTNAME=zelazny

    I added the variables “TZ” and “LIVE_HOSTNAME” manually by opening the configuration file in an editor.
    The following variables are also supported in this configuration file – but not managed by “isocomp.sh” – they all correspond to liveslak boot parameters by the way: BLACKLIST, KEYMAP, LIVE_HOSTNAME, LOAD, LOCALENOLOADRUNLEVEL, TWEAKS, TZ and XKB.
    The value of the “LUKSVOL” variable can hold multiple “containerfile:mountpoint” definitions, separated by commas. You can use the script to add more, or add them manually if you prefer.
    The “LIVESLAKROOT” variable points to the root of a secondary liveslak directory tree on your disk.
    And the “ISOPERSISTENCE” variable holds the path to a persistence file (also an encrypted container) as its value.

Summarizing, there is now a second way to get persistence in Slackware Live Edition.

Of course you can still use ‘iso2usb.sh” to create a dedicated Live USB stick, this remains fully supported; but especially putting Ventoy on a USB stick gives you a portable media with an EXFAT-formatted partition, meaning you can not just have multiple persistent Slackware Live environments on one disk, but in addition you can store data on that partition which can also be read and written on MS Windows or Apple computers.

Get liveslak ISOs

The various variants of Slackware Live Edition can be found in the “latest” subdirectory at https://download.liveslak.org/ or its US mirror https://us.liveslak.org/ . This time, there’s no Cinnamon ISO, because its graphical user interface won’t start, perhaps due to missing packages in its repository. I already alerted the package maintainer Willy Sudiarto Raharjo, and he is looking into it.
You’ll be able to download ISO Live images of 32bit and 64bit Slackware proper, also of the small XFCE variant for (both architectures), and then DAW, LEAN and MATE ISOs that only come in 64bits. All ISOs containing a 64bit Slackware have support for SecureBoot.
Also have a look in the “bonus” subdirectory!

Get liveslak sources

The liveslak project is hosted in git. Its browsable cgit interface is here: https://git.liveslak.org/liveslak/

A set of the liveslak scripts can also be downloaded from http://www.slackware.com/~alien/liveslak/ or https://slackware.nl/people/alien/liveslak/

To conclude…

Let me know if you run into bugs. I tested all the permutations I could think of on several computers here in the house, but I know that you people out there always come up with scenarios I could not dream of. The live init script has been extensively updated and re-written, and the logic flow had to be changed, but I believe it’s solid.

Have fun! Eric