Liveslak updates! Quite soon after my August ISO refresh, I used some free moments to implement a request of sorts and fix some longstanding bugs.
Version 1.8.0 of the liveslak scripts is now available, containing these enhancements and fixes.
Links to the liveslak git repository and download locations are at the bottom of this post. Of course, the new functionality and fixes are also present in a fresh batch of Slackware Live ISO images.
New features of liveslak 1.8.0
- LUKS encrypted containers for your homedirectory and for persistence are now supporting many more filesystems, not just ext2/4 but also btrfs, f2fs, jfs or xfs. The lack of f2fs support was mentioned by a visitor of this blog and I thought that was useful feedback.
The accompanying scriptsiso2usb.sh
andisocomp.sh
now support this filesystem choice via a new ‘-F
‘ switch.
Note that the Linux partition of a USB Live thumbdrive remains ext4 formatted, because liveslak uses extlinux to boot on a BIOS computer. - The
upslak.sh
script can now extend the size of the LUKS encrypted container files on your USB thumbdrive, in case you run out of storage there. - I fixed the
pxeserver
script and expanded its functionality:- PXE boot of a UEFI computer finally works.
Note that this may not work for you out of the box, because there are two implementations in dnsmasq to support UEFI PXE boot… and sometimes, one will work and the other won’t. So, you may have to open the/usr/local/sbin/pxeserver
script in an editor and look for the section where a number of ‘dhcp-match
‘ and ‘dhcp-boot
‘ lines is commented out. If you remove the comment characters from these 8 lines and instead, add a comment character ‘#’ in front of the ‘dhcp-match
‘ and ‘pxe-service
‘ lines a bit higher up, your UEFI computer might actually succeed in booting over the network. - NAT firewalling can be optionally enabled in case PXE clients wouldn’t have Internet access otherwise.
- PXE boot of a UEFI computer finally works.
- I fixed the hang during shutdown/reboot when liveslak is a PXE client.
- I fixed UEFI boot using GRUB when the live ISO had been ‘dd’-ed or ‘cp’-ed directly to a USB thumbdrive. You would end at the GRUB prompt instead of booting into the OS.
It took me quite a while because this bug was introduced in Feb 2019 (!), and I never found the time to investigate. Eventually looking into it during a weekend of solitude caused an epiphany. - I added support for a dark theme in KDE Plasma based ISOs, with the LEAN ISO as an example (that one also gets a new login/desktop background image taken from my photo collection with every ISO refresh).
- Lots of other small fixes and enhancements, read the Git log for more information.
Booting from an on-disk ISO file
Liveslak supports Ventoy, a multi-boot manager for removable media like USB thumbdrives which lets you boot any ISO image you store on the disk, selecting from a GRUB menu it creates on the fly.
Because liveslak implements the “Ventoy-compatible” guideline, any Slackware Live ISO works out of the box on Ventoy. Support for encrypted persistence and homedirectory containers on a Ventoy disk is offered by the ISO companion script ‘isocomp.sh
‘.
You can find the details in the git commit message.
Install Slackware using a liveslak ISO
A quick reminder that you can use a liveslak ISO to install Slackware to your hard drive from its official package repository (using a network installation from a HTTP, FTP, NFS or Samba server).
You can also install the actual content of the Live ISO to your harddisk if you like. In this case all “live aspects” will be skipped during the copy, so that you will in fact end up with a completely regular Slackware on your harddisk.
The program to run these installations is available on all liveslak ISOs and is called ‘setup2hd
‘. It is derived from the ‘setup
‘ program of a Slackware install media, but has some nice enhancements: it launches cfdisk/cgdisk for you to partition your disks, lets you create a regular user, and allows you to configure a basic firewall.
Best of all, you can run setup2hd in an X-terminal and let the installer chomp through the packages while you browse the internet, watch a video or perform any other kind of leisurely activities on your Live OS.
And by the way: booting Slackware Live is the only way (using setup2hd) to install the official Slackware distro from a network server across a wireless connection. The official Slackware installer only supports wired network connections.
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/ . A fast UK mirror is provided by Darren Austin at https://slackware.uk/liveslak/ .
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 CINNAMON, DAW, LEAN and MATE ISOs that only come in 64bits.
Big thanks to Willy Sudiarto Raharjo (willysr) for maintaining the Mate and Cinnamon Slackware package repositories.
Also have a look in the “bonus” subdirectory! There you’ll find Nvidia graphics and Broadcom wireless binary drivers, Wine 8 and multilib modules to add if you use the persistent version of liveslak.
All ISOs containing a 64bit Live Slackware have support for SecureBoot.
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/
Have fun! Eric
Awesome !
I have been wanting to try Ventoy.
Thanks for making it so easy Eric !!
— kjh
I grabbed a copy of the latest slackware-live-current.iso and ‘cp’d it to my trusty flash stick, which booted up perfectly. Nice to see you have that pesky problem sorted out now. There were a few times over the years where I had to direct people on LQ to use the iso2usb.sh script and not dd/cp.
I’ll still have to make a proper slackware-live usb with iso2usb.sh to check out the luks and filesystem changes of course.
Thanks for the fixes and improvements!
I ended up using the following line to put slackware64-current on my 8GB stick:
sh iso2usb.sh -i /home/bob/Downloads/slackware64-live-current.iso -o /dev/sdd -C 2G -F ext4
I figured using a 2GB persistence file would leave around 1 to 1.5GB for dropping things in addons/ like the nvidia driver. Seems to work fine so far, and boots and runs well on my nvidia desktop machine and laptops.
The ‘-C’ option is documented as “for use on a FAT filesystem”. However, the way I see it is that you can use either ‘-c’ to have a LUKS encrypted file for /home while the rest of persistence is unencrypted, or, use ‘-C’ to have a LUKS encrypted file for all of persistence, which would include /home inside it. Would that be correct?
Also, I ended up using the default ‘ext4’ filesystem format for persistence, though I did a test run with f2fs to see if it worked. Is there a benefit to using alternative filesystems for the /home directory or persistence file filesystems? In the overall scheme, the /home directory or persistence file is mounted in the overlayfs with the ext4 linux system partition and squashfs modules. Would you get a speed benefit from f2fs being used to format the persistence file?
I’d be curious to know what you use for your Slackware Live USB setups.
I did not add the filesystem choice for myself. In fact, I could not care less. I have used ext2/3/4 all my life and that will not change. This was the “implement a request of sorts” thing I mentioned in the first sentence of the blog post.
The statement that the ‘-C’ option is ‘for use on a FAT filesystem’ originates in one of liveslak’s TODO list items, to support any kind of USB stick partitioning and formatting scheme. When you put all your stuff in containers, it does not really matter what the media filesystem is. I would just need to implement an alternative for my choice for extlinux as the BIOS bootloader.
But nowadays I would rather recommend creating a Ventoy disk if you need your USB stick to have a (ex|v)fat filesystem. Lots easier and with full support for encrypted persistence and homedirectory containers.
Thank you Eric!
Thank you Eric.
As always, your contributions are invaluable and appreciated!
Regards.
Liveslak 1.8.0 is wonderbaar
I noticed it is booting faster than 1.7.0 I am glad to have the opportunity to take advantage of this project.
By the way I have to uncomment this line. in order to build my own liveslak
# The rsync URI of our default Slackware mirror server:
#SL_REPO_URL=”rsync.osuosl.org::slackware”
for
SL_REPO_URL=”rsync.slackware.uk::slackware”
due osuosl.org, was very slow or busy yesterday.
Many thanks
Hello Eric,
Like others a massive thank you for all of your work on slackware. I have a question regarding liveslak and more specifically “upslak.sh”.
I have used a usb stick and went via ventoy installation as mentioned above
I also have a home partition on the disk
I have successfully used the usb drive to install slackware and in general use it if required.
I wanted to update the kernel and module, but getting error when running “upslak.sh” saying “*** ./upslak.sh FAILED at line 1098 ***”
Checking that I can see we are expecting three partitions on the disk, how ever I only have two partitions
fdisk -l /dev/sde | grep ^/dev/sde | cut -d” ” -f1
/dev/sde1
/dev/sde2
Is this something that I’ve done wrong?
Once again massive thank you.
Best regards
Upslak.sh script only works on a USB stick with Slackware Live that has been created using the iso2usb.sh script.
I cannot determine from your post how you installed Slackware to that partition. In any case upslak.sh won’t work with the ISO on a Ventoy disk.
Sorry for the delay in response.
Thank you v much for the confirmation. Understood.
typo “Finished” in tools/create_liveslak_iso.sh line 344:
echo “[$(date -u +%Y%m%d_%H%M) UTC] Finshed.” >>${ISODIR}/${PUBLOG}
Hi Eric,
I am using SLACKWARE-CURRENT FOR X86_64 (SLACKWARE LIVE 1.8.1.1) refreshed with Thu Jul 11 19:16:24 UTC 2024. Command used ‘bash iso2usb.sh -i ./slackware64-live-current.iso -o /dev/sdd -r’. I noted that liveslak.der is not present in the the ISO or in the EFI System Partition in /EFI/BOOT/. I was under the impression this file is supposed to be there based on README.txt in your liveslak directory and your Blog post “Secure Boot support landed in liveslak 1.5.0” . It’s a simple task to copy the file on to the USB, but doing a refresh wipes it out and I need to copy it back. I note that liveskak.der is located in /EFI/BOOT in the ktown-current ISO. Did I misunderstand the instruction?
Many Thanks,
Chris
Hi Chris,
I have two kinds of Live ISO images.
One category is the ISO I create myself, manually. You find these in https://slackware.nl/slackware-live/latest/
The other category is the ones that get re-created via a cron job, every time there’s an update in the Slackware ChangeLog.txt. You find those in https://slackware.nl/slackware-live/slackware64-current-live/ (or https://slackware.nl/slackware-live/slackware64-15.0-live/ for Slackware 15.0 based Live ISOs).
The ISOS that are created via cronjobs do not have access to the secret key of my slackware.nl certificate. Therefore they are not enabled for Secure Boot and are missing the liveslak.der public certificate.
I assume that you refreshed your Slackware Live with an ISO taken from that second category? Which would explain the missing certificate and inability to boot on Secure Boot.
This Liveslak 1.8.0 release, is the best of all releases. Ventoy support with ISO companion script ‘isocomp.sh‘. with persist options, let me build a personal liveslak SSD I am very happy with (booting from USB). I just need to update slackware ISO on Ventoy every time you update liveslak current to keep it synchronized wit Slackware Changelog.
Please review ISO generated at 2024-07-19 14:17. Log shows: “/usr/local/bin/create_liveslak_iso.sh: line 334: ./make_slackware_live.sh: No such file or directory
[20240719_2117 UTC] Finshed.”.
Thanks Eric for this release… Iiveslak it is a jewel with all parameters to play with. Thanks again Eric.
Regards, Francisco
Thanks for noticing that! I did an update of Slackware to the latest 15.0 and that seems to have broken the git repositories. Strangely, the cgit interface at https;//git.slackware.nl/ still works perfectly, just “git clone” does not work now and that’s what the ISO creation script does.
I’ll have to debug since I cannot find anything in the logs.
The updated git package in Slackware 15.0 is more picky about file ownership in the git repositories.
I needed to run ‘git-daemon’ as a different user (the account that also owns the repositories) to solve the “fatal: Could not read from remote repository” error when doing a “git clone git://slackware.nl/liveslak.git”