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, LOCALE,Β NOLOAD,Β RUNLEVEL, 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
Thank you for everything you are doing. Personally i will use it and give you a feed back as soon as possible.
Awesome Concept Eric !
I’ll Check it out ASAP,
Thanks for all you do.
— kjh
A year or so ago I tried to add a Slackware(-based) ISO to Ventoy. I had to do some non-trivial scripting to get persistence to work. I concluded that for me things were not worth the trouble and stopped the experiment.
I will have a look at your resolution.
Regards, Dick
π
Impeccable work, as usual.
I’m so glad you changed your mind about ventoy as it is, really, a very handy tool to have in your arsenal π
I use it for work almost every day, be it reviving some some crashed computer, date recovery, virus cleaning of windows PCs…
I even used it one time to clone the HD of one of our CNC milling machines (the controller PC runs linux)
Having a Slackware live “CD” in it is just icing on the cake.
I’ll try these latest versions ASAP (the previous ones were already working for me)
Thanks a lot for your great work!
Dear Eric,
Thank you very much for providing this new iso. Very nice! Thank you as well for the info on Ventoy
Have installed the iso on a 16G usb-stick. Works nicely.
However have problems to create the ‘persistence’-file ;
[quote] isocomp.sh -p /mnt/supermedia/persistence.icc -P 2G -i /mnt/supermedia/slackware64-live-current.iso
[unquote]
No errors but there is no ‘persistence.icc ‘-file on /mnt/supermedia/.
Any help?
Thank you for kind attention. Dank!
Regards,
Georges.
You can run the script with verbose execution so that you may get clues about what is failing:
# sh -x isocomp.sh -p /mnt/supermedia/persistence.icc -P 2G -i /mnt/supermedia/slackware64-live-current.iso
If you want to post the output of that, use a pastebin and do not copy it here in the comments section.
Nice one Eric !
Thanks for the hint: sh -x <>
Sure beats editing the script and inserting a `set -x` line π
— kjj
Cinnamon packages are now bumped to 5.4.x, their latest release and it’s up and ready to be packed into the Live ISO
I’ll generate a new Cinnamon ISO soon(-ish), thanks Willy for the updated packages!
Dear Eric,
Thank you for your good advice. Was able to create the ‘persistence.icc’-file after remounting “/mnt/supermedia” to read-write.
However no persistence! Do I need a special bootcode or is the reason that the iso-file and the ‘persistence.icc-file are both on the same usb-stick which is read-only by default.
Thank you for any hint.
Regards,
The script should indeed check whether you mounted the USB partition read-write. I had thought it would be obvious that creating a persistence file meant that the stick needed to be writable π But that’s a check which will get into the next update of isocomp.sh.
No persistence in the Live OS while the file is there, might mean that your USB interface is too slow, and liveslak needs to give the kernel some more time to initialize the USB subsystem. During boot you should see warning messages about inavailability of the USB, but then the Live OS would not boot either, so hm.
Still, does it work if you add “rootdelay=15” as an additional bootparameter for syslinux/grub?
You say that the USB stick is readonly by default, but that only is relevant if you access it from another OS. But then, I see that you are trying to run the isocomp.sh script from within the Live OS. That would create the persistence container, and update the configuration, but you will not have persistence until you reboot. And /mnt/supermedia is indeed mounted readonly unless there’s a LUKS container on it that is to be used in the Live OS (either OS persistence or an external /home).
Dear Eric,
Thank you for your efforts to try to solve the persistence problem.
During boot I don’t see any warning messages about inavailability of the USB nor loading the persistence file. Adding βrootdelay=15β as an additional bootparameter for grub doesn’t help.
Tried to create a persistence file on /dev/sda4, a partition of the hard disk ;
” /usr/local/sbin/isocomp.sh -p /mnt/sda4/persistence.icc -P 2G -i /mnt/supermedia/slackware64-live-current.iso”
This is impossible : because ‘ps -aux’ shows :
“dd of=/mnt/supermedia/mnt/sda4/persistence.icc bs=1M count=0 seek=2048”
Any more hints?
Thanking you for kind attention.
Regards,
Yeah that will not work. The isocomp.sh script is exclusively meant to create persistence and other containers on the same partition as the ISO file.
Does mount say the device is mounted read/write?
If the USB partition has the dirty bit set (if dmesg says it was not properly unmounted and therefor the partition wss mounted read only), you can try dosfsck to fix it.
Have you considered a gnome liveslack? I’m running slackware64-current with gnome-light 42 and it runs well.
I dislike Gnome, but I have Mate and Cinnamon ISOs because I know that I can use a reliable package repository for those desktop environ,ents, and I know its maintainer.
There used to be Dlackware; and liveslak supports it, because I knew its maintainer and we worked out together how to get it running as a Live system; but its development stalled.
I do not know of any GNOME package repository for Slackware. So no GNOME support in Slackware, nor a GNOME ISO.
I did find a slackware-live gnome edition iso . I think its your work with gnome added.
It boots and runs well. I can post the link if that doesn’t break the posting rules.
You can post the link, no problem. I recently had some exchange of emails with a team that is working on a GNOME for Slackware package set, perhaps it’s the same team. Their package repository is http://reddoglinux.ddns.net/linux/gnome/
I think it’s the same group.
I am assuming you’ve found my isos here: https://lngn.net/slackware/liveslak/ ? This project was handed to me after the original hacker, rizitis, hit a brick wall with what he could do. I’ve extended and improved things (but there’s still more to be done!)
Just to clarify, it IS liveslak 1.6.0 I’m using to create the isos, I’ve modified the script a little bit to suit my needs as well. I’m just not 100% on my how/why with what I’ve modified, as in…. I don’t think alienbob would do it the same and it’s far from a “proper” way to do it at this time. I’m working on fixing this as I go, we still haven’t really discussed a proper repo yet either. The reddog repo is based on the same work, but there may be differences in packages. This is something that was requested to officially add support in the end. I mainly just make the isos to help us and to help spread the word… gnome is back! π
I fully hope we can soon get things organized enough for it to be added officially, as I have a number of people who’ve tried it and think it’s really good, (though to be honest, it’s liveslak that’s really good). I just want to make sure the package set is sane first. The biggest hurdle seems to be internationalization so far. But liveslak has proven invaluable to me for development, and alienbob’s work is beyond incredible!
Basically I am not interested in the ISOs (I am not interested in running or using GNOME) but I am curious to see the source to create that ISO, because if there’s something I can add to liveslak to help you, that would be the scope of my involvement.
Eric, Thank you for all the support you provide to Slackware. I have one question with the new release and Ventoy, does the USB stick loose the 1st DOS partition when setting it up as Ventoy? I still use that partition to store my LUKS passphrase for reboot of my main desktop and would like to keep it that way. Thanks, BrianA_MN
Installing Ventoy means that your USB stick is wiped and re-formatted. The first partition will in fact be the partition to store ISO images and persistence containers, and it will be formatted with EXFAT. The second smaller partition is formatted as FAT and t will contain the EFI bootloader.
That second partition is what you can use to store your LUKS key.
But there’s also an option while installing Ventoy to the USB stick to reserve the final 2 GB of your stick for you. Ventoy will leave that 2 GB un-partitioned so that you can create an additional (VFAT) partition there to store your LUKS key.
Hi Eric.
Thanks for supporting Ventoy. Very useful in my wallet.
Thanks for all your effort and dedication.
Hi alienbob,
Thank you for releasing a new liveslack version.
I found a bug in the init script which prevents opening encrypted LUKS containers – like the home directory,
losetup $lodev ${CPATHINTERNAL}$luksfil
should be
losetup $lodev ${CPATHINTERNAL}/$luksfil
Regards
Hi Sebastian,
The “$luksfil” variable should be an absolute path, i.e. it should begin with a slash “/”. What is its value in your case?
Hi alienbob
I my case $luksfil seems to be slhome.img.
The error message mentions that /mnt/mediaslhome.img cannot be opened by cryptsetup. This is why I added the ‘/’
I think I need to something smart here to cover all cases.
I had removed it because when the path is printed on screen during boot, you would see a double slash, but I now realize that the iso2usb.sh script creates a “slhome.img” by default instead of calling it “/slhome.img”.
I can check for a leading slash in “$luksfil” and prepend a slash if it is not present.
Thanks for addressing the issue
I used liveslak to install Slackware on a new machine. In windows 11, I created some empty space on the nvme disk, and used the Install Slackware icon on the desktop, created some partitions with the installer. It went well but I note two issues.
1. The dialogs for entering new user and password didnt work well or intuitively. Somehow i was able to succeed on 2nd install attempt.
2. I opted for a rather restrictive firewall which i now regret. How can i undo that without restalling?
About (1): an ncurses dialog is not ideal for password entry. The actions connected with TAB and ENTER keys are different from a regular Qt or GTK based dialog window. You’ll have to grin and bear that.
About (2): to disable the firewall completely, all you need to do is a “chmod -x /etc/rc.d/rc.firewall”. But perhaps better would be, to keep the firewall active but less restricted by running “myfwconf” as root and going through the firewall configuration dialogs again (and making different choices this time).
hi I did get my firewall fixed via pkgtool already.
Already grinning because of utility of liveslak. thanks
I can bear with it. I got all up and going.
After installing liveslack to the hard drive, how do I install extra sxz modules separately at a later date?
Hi Alan.
When you install liveslak to a hard drive, it ceases to be a Live version of Slackware. The installed system is a 100% Slackware. You can not install liveslak’s .sxz modules onto it, you’ll have to install your software as regular Slackware packages.
OK Thanks
Hi Eric, I used the liveslak 1.5.3 iso2usb.sh script to upgrade (-r -s) the image of the usbstick to slackware64-15.0. The results are that a the USBStick partition format wasn’t changed and the DOS/EFI/Liveslack partiions remained in tack. But I also lost the persitence.img during boot now. The boot up shows Liveslak 1.6.0, but no warnings abot persistence or slhome.img being loaded. Is there are script to convert both img’s to icc and then have them included in the boot-up? Thanks, BrianA_MN
This may be the same issue reported by Sebastian higher up.
Download the liveinit.tpl from http://www.slackware.com/~alien/liveslak/liveinit.tpl . This is a template for the init script in the ISO.
Then look in that “liveinit.tpl” file for the line:
losetup $lodev ${CPATHINTERNAL}$luksfil
and add a slash like so:
losetup $lodev ${CPATHINTERNAL}/$luksfil
Then use upslak.sh to replace the init script within the Live ISO with this fixed init script:
# ./upslak.sh -s -i /path/to/modified/liveinit.tpl
The “-s” parameter causes the script to pause, waiting for the USB stick, and once you insert the stick the script will continue
If that missing slash was causing the issue, it should now be fixed.
Hello friends, I don’t know if it only happens to me or someone else, yesterday I downloaded the iso current, (slackware64-current-install-dvd and when I go to select the keyboard my keyboard turns off, as if it was disconnected.
On the screen that I attached, the installation hangs there: Enter key 1 to select keyboard map.
Happens to you too? Can someone help me with this?
Perhaps there is an update that causes problems with older equipment (2nd generation i5)?
So this doesn’t happen if you use an older ISO?
It is right,
It only happens with ISO 21-09 / 22-09
I even opened a thread on linuxquestions.
https://www.linuxquestions.org/questions/showthread.php?p=6382083#post6382083
Please discuss this topic only in the LinuxQuestions thread. Your question has no relevance to my article on Liveslak above. This blog is not meant as a replacement for LQ.org.
Hi!
I recall some time ago there were more than one flavour of the live (KF5 etc). Flavouring is no longer in place?
There was a liveslak variant called KTOWN which contained KDE Plasma5. That was during the time that Slackware was still stuck on KDE4.
Since the adoption of my ‘ktown’ KDE Plasma5 into Slackware, the liveslak KTOWN variant is now redundant and no longer distributed. Use the regular full Slackware variant instead.
Hi Eric, I can see why this is a fun project. You have crafted Liveslak so very well. I love it that the iso images are updated daily and you have a reliable US mirror now. This facilitates a really simple way to install a snapshot of ‘current’ on new boxes. The pre-installed gparted makes it so easy for installing along windows as you can safely and easily resize the windows partition to free up space for slackware.
IDK why but I have trouble with dd for piping the iso image directly onto a flash drive on my systems and then making it bootable. The below instantiation doesn’t seem to want to boot: my systems:
dd if= of=/dev/sdb
For that reason I am relegated to using windows rufus to make sure the partition table is GPT and the boot partition is not empty. I have tried the “Linux” versions of rufus with no success. Perhaps I am not using dd correctly and it needs other switches. Below is a comparison of partition reads for rufus vs dd:
rufus
Disk /dev/sdb: 29.3 GiB, 31457280000 bytes, 61440000 sectors
/dev/sdb1 2048 59342818 59340771 28.3G Microsoft basic data
/dev/sdb2 59342819 61439962 2097144 1024M Microsoft basic data
dd
Disk /dev/sdb: 29.3 GiB, 31457280000 bytes, 61440000 sectors
/dev/sdb1 * 0 8585215 8585216 4.1G 0 Empty
/dev/sdb2 3092 5971 2880 1.4M ef EFI (FAT-12/16/32)
I have had some discussions with others here on the blog about that issue with dd-ing the ISO to a flash disk resulting in a non-bootable disk. It may have to do with something I changed in the Grub configuration to fix PXE booting. Years ago already but never nailed it down.
Two options that always work:
(1) use iso2usb.sh to create the bootable USB stick (you get persistence as a bonus)
(2) use Ventoy as the bootmanager for the USB stick and then simply copy the Live ISO file anywhere on the disk. Liveslak together with Ventoy also provides persistence (read the docs on that).
above instantiation was supposed to read:
dd if=image.iso of=/dev/sdb