liveslak-1.3.0 with speed improvements
There was no August release of a Plasma5 Live ISO as you will probably have noticed. The reason was that around the time when I released the August update of Plasma5 for Slackware, I was working on new liveslak functionality and wanted to finish that before releasing new ISOs. The testing took some more time than I anticipated due to increased work load in my day job. But I finished what I wanted to have in a new liveslak release, and today I want to write a post about the new stuff.
To accompany the new liveslak-1.3.0 I have uploaded fresh ISO images for the Slackware Live Edition. They are based on the latest Slackware-current dated “Fri Sep 7 23:00:06 UTC 2018″.
The available ISO variants on https://slackware.nl/slackware-live/latest/ are:
- Full unmodified Slackware (64bit).
- Stripped-down XFCE (32bit as well as 64bit), this ISO will fit on a CDROM medium.
- Slackware with MATE 1.20 instead of KDE4 (64bit). Thanks to Willy Sudiarto Raharjo for the packaging.
- Slackware with Plasma 5 instead of KDE4 (64bit) to showcase the KDE Plasma 5_18.09 desktop. This ISO also contains Calibre 3.30.0, Chromium 69, LibreOffice 6.1.0, and VLC 3.0.4 among many others.
The new liveslak version 1.3.0 has several memorable updates:
- Support for a new compression tool ‘zstd’ that will increase the speed of extracting squashfs modules greatly (and ‘paying’ for the increased decompression speed with an increase of compressed size with around 10%). The “make_slackware_live.sh” script was enhanced with a new commandline parameter “-c” with which you can indicate a non-default compressor (xz being the default and zstd, gzip, lzo as the alternatives).
Raw decompression speed is up to 5 times faster using zstd compared with an xz-compressed squashfs modules, but due to the nature of the storage medium, OS kernel and program execution times, the observed speed gains for the actual Slackware Live Edition vary from 20% to 80%. Largest speed gains are found when you boot a Live ISO in a virtual machine; the smallest speed gains will be found when you boot Slackware Live from a USB medium where the medium’s read speed is the limiting factor.
- During ISO creation you can now specify your own custom default country/language. The script default is still “us” but you can select any of the other languages that are supported on boot, for instance to have a Live OS that boots into German localization and language settings without any input.
A new commandline parameter “-l” to the “make_slackware_live.sh” script enables you to specify the ISO default language.
- Due to changes in package lists (mostly adding new packages introduced in slackware-current) make it hard to keep the XFCE ISO below 700 MB. That was not different this time. Continuous pruning in the filesystem is unavoidable. But I think I have reached the limit of what I can cut away in relation to unneeded libraries and stuff. The ever growing footprint of Slackware-current’s applications demands that eventually I may have to start removing complete packages from the XFCE live ISO. Any thoughts as to what you find least relevant in a small ISO? Is it the GCC compiler? Is it the Asian TrueType fonts? Is it Firefox, ImageMagick, …? To me all of those are equally important and yet I may have to decide on their removal eventually.
Compression of the ISOs
I have used ‘zstd’ compression for the SLACKWARE, PLASMA5, MATE ISO images. You will notice substantially reduced boot-up times.
The XFCE images are still compressed with ‘xz’ but as a curious test, I have re-compressed the “min” module of the 64bit XFCE ISO with zstd. That increased its size with 21 MB but it’s still below CDROM size. There is a noticeable speed increase even by just using zstd on the “min” module – I get a 10% faster bootup of the XFCE Live OS in a virtual machine.
In order to keep the PLASMA5 ISO fitting on a DVD, I had to take the multilib module out. If you need multilib in a Slackware Live Edition and you are running it off a USB stick, you can simply download the module from the ‘bonus‘ directory on the mirrror server, and copy it to the “/liveslak/addons/” directory on the Linux partition of the USB stick so that it will load automatically when the Live OS boots.
The ‘testing’ branch in my ‘kown’ repository is currently identical to the ‘latest’ branch, so there is no Wayland support in it now. For a future ‘testing’ release I’ll most likely re-visit Wayland but I want Patrick to add Plasma 5 to Slackware first so I can do my own stuff in just the ‘latest’ branch again and use ‘testing’ for actual tests.
Where to get the ISOs
Some download locations (mirrors may need 24 hours to catch up) for the Live ISOs are:
- https://slackware.nl/slackware-live/ (master location)
A copy of the liveslak sources and scripts can be found here:
You can follow the liveslak development in git: https://git.slackware.nl/liveslak/
The use of zstd
The ISO images which I created with zstd compression are all using Slackware-current. Because zstd support for squashfs was added to the Linux 4.14 kernel and Slackware is using these kernels. no modifications were required for the Live ISOs to work with this new compression type. A package for ‘zstd’ or a recompilation of ‘squashfs-tools’ to add zstd support is only needed when creating the ISO. When the Live OS boots, the Linux kernel takes care of the compressed squashfs filesystem transparently.
In order to extract data from a zstd-compressed squashfs module you will of course need a squashfs-tools package with support for zstd. Therefore I have both a ‘zstd‘ and a ‘squashfs-tools‘ package for Slackware-current in my repository. I am not providing these for Slackware 14.2 because its older kernel (4.4.x) is not supporting zstd anyway.
Refreshing your USB stick instead of re-formatting
If you already use a Slackware Live USB stick that you do not want to re-format, you should use the “-r” parameter to the “iso2usb.sh” script. The “-r” or refresh parameter allows you to refresh the liveslak files on your USB stick without touching your custom content. If you want to modify other parameters of your USB stick, use the script “upslak.sh“. It’s main feature is that it can update the kernel on the USB stick, but it also can replace the Live init script. As with most (if not all) of my scripts, use the “-h” parameter to get help on its functionality.
Historical info on liveslak
More detail about the features of Slackware Live Edition can be found in previous posts here on the blog.