[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
slackware:liveslak [2017/02/02 12:55 (UTC)] – [Creating a Live ISO from scratch] provide a bit more info through links. alienbob | slackware:liveslak [2020/03/25 06:52 (UTC)] – [Downloading ISO images] remove dead mirror. alienbob | ||
---|---|---|---|
Line 32: | Line 32: | ||
The " | The " | ||
- | - a complete 64bit Slackware-current Live Edition (in a 2.6 GB ISO); | + | - a complete 64bit Slackware-current Live Edition (in a 3.1 GB ISO); |
- a slimmed-down XFCE ISO (700 MB) with XDM as the graphical login manager. | - a slimmed-down XFCE ISO (700 MB) with XDM as the graphical login manager. | ||
- | - a ISO image (3.1 GB) of Slackware64-current containing Plasma 5 instead of KDE 4, with an addition of several other packages from the alienBOB repositories: | + | - a ISO image (4.6 GB) of Slackware64-current containing Plasma 5 instead of KDE 4, with an addition of several other packages from the alienBOB repositories: |
- | - a Mate variant (1.7 GB) where KDE 4 has been replaced by Mate (a Gnome 2 fork); | + | - a Mate variant (2.2 GB) where KDE 4 has been replaced by Mate (a Gnome 2 fork); |
- a Cinnamon flavour (a fork of the Gnome 3 Shell replacing Slackware' | - a Cinnamon flavour (a fork of the Gnome 3 Shell replacing Slackware' | ||
+ | - a [[https:// | ||
+ | - a [[http:// | ||
- a //Custom// variant which you can give your own name, its own package list and custom post-install configuration. | - a //Custom// variant which you can give your own name, its own package list and custom post-install configuration. | ||
Line 44: | Line 46: | ||
Common download locations are: | Common download locations are: | ||
- | * Primary site: http://bear.alienbase.nl/mirrors/ | + | * Primary site: http://slackware.nl/ |
* Darren' | * Darren' | ||
* Willy' | * Willy' | ||
- | * Ryan's https:// | ||
* Shasta' | * Shasta' | ||
Line 96: | Line 97: | ||
Editing a Grub menu before booting it is possible by pressing the " | Editing a Grub menu before booting it is possible by pressing the " | ||
- | Another difference between Syslinux and Grub2 menus: in Grub2 you can select a non-US keyboard, language and/or timezone and you will return to the main menu every time. You still have to select "Start SLACKWARE Live" to boot the computer. | + | Another difference between Syslinux and Grub2 menus: in Grub2 you can select a non-US keyboard, language and/or timezone and you will return to the main menu every time. You still have to select "Start SLACKWARE Live" to boot the computer. |
Line 104: | Line 105: | ||
A script is available which allows you to transfer the ISO image content to a USB stick, making some modifications depending on the script' | A script is available which allows you to transfer the ISO image content to a USB stick, making some modifications depending on the script' | ||
- | The USB stick will be erased and re-formatted when running this script! | + | The USB stick will be erased and re-formatted when running this script |
This script, called ' | This script, called ' | ||
Line 111: | Line 112: | ||
or as a percentage of free space. | or as a percentage of free space. | ||
| | ||
+ | -d|--devices | ||
-f|--force | -f|--force | ||
-h|--help | -h|--help | ||
Line 118: | Line 120: | ||
-r|--refresh | -r|--refresh | ||
No formatting, do not touch user content. | No formatting, do not touch user content. | ||
+ | -s|--scan | ||
+ | | ||
-u|--unattended | -u|--unattended | ||
-v|--verbose | -v|--verbose | ||
Line 137: | Line 141: | ||
* Create a USB Live with both the /home and the persistent data encrypted (the persistence filesystem will be 300 MB in size): | * Create a USB Live with both the /home and the persistent data encrypted (the persistence filesystem will be 300 MB in size): | ||
# ./ | # ./ | ||
+ | * Refresh the system modules on a USB Live using a Live ISO as the source. | ||
+ | # ./ | ||
You might have noticed that the " | You might have noticed that the " | ||
+ | |||
+ | ==== Updating the kernel (and more) on a USB stick ==== | ||
+ | |||
+ | |||
+ | A script is available which allows you to tweak the content of a USB Live stick. | ||
+ | |||
+ | Specifically, | ||
+ | * Upgrade the kernel and modules, making a backup of the old kernel and modules. | ||
+ | * Restore the backed-up kernel and modules if the new kernel is not working. | ||
+ | * Add network support modules for PXE boot (if missing). | ||
+ | * Increase (or decrease) USB wait time during boot. | ||
+ | * Replace the Live init script inside the initrd image with a new script that you supply. | ||
+ | * Move current persistence data to a new squashfs module in ' | ||
+ | |||
+ | The script is meant to be used while you are running Slackare Live from that same USB stick but this is not mandatory. With the exception of the ' | ||
+ | |||
+ | Before making any modifications, | ||
+ | |||
+ | This script, called ' | ||
+ | -b|--nobackup | ||
+ | -d|--devices | ||
+ | -h|--help | ||
+ | -i|--init < | ||
+ | -k|--kernel < | ||
+ | -m|--kmoddir < | ||
+ | -n|--netsupport | ||
+ | -o|--outdev < | ||
+ | -p|--persistence | ||
+ | -r|--restore | ||
+ | -s|--scan | ||
+ | | ||
+ | -v|--verbose | ||
+ | -w|--wait< | ||
+ | </ | ||
+ | Examples: | ||
+ | |||
+ | * Get a listing of all available removable devices on the computer: | ||
+ | # ./upslak.sh -d | ||
+ | * Updating kernel and modules, providing two packages as input and assuming the USB stick is known as /dev/sdX: | ||
+ | # ./upslak.sh -o /dev/sdX -m kernel-modules-4.19.0-x86_64-1.txz -k kernel-generic-4.19.0-x86_64-1.txz | ||
+ | * Restore the previous kernel and modules after a failed update, and let the script scan your computer for the insertion of your USB stick: | ||
+ | # ./upslak.sh -s -r | ||
+ | * Replace the Live init script with the latest template taken from the git repository: | ||
+ | # ./upslak.sh -o /dev/sdX -i liveslak/ | ||
Line 269: | Line 319: | ||
Implemented tweaks: | Implemented tweaks: | ||
nga - no glamor 2D acceleration, | nga - no glamor 2D acceleration, | ||
+ | nsh - no 'new style' sub-pixel hinting in freetype. | ||
tpb - enable TrackPoint scrolling while holding down middle mouse button. | tpb - enable TrackPoint scrolling while holding down middle mouse button. | ||
syn - start the syndaemon for better support of Synaptics touchpads. | syn - start the syndaemon for better support of Synaptics touchpads. | ||
Line 286: | Line 337: | ||
=== Media tweaks === | === Media tweaks === | ||
+ | |||
+ | cfg=[skip|write] => | ||
+ | Specify ' | ||
+ | OS parameters; or specify ' | ||
+ | to disk. | ||
hostname=your_custom_hostname[, | hostname=your_custom_hostname[, | ||
Line 300: | Line 356: | ||
Use this if you want to | Use this if you want to | ||
load the live OS from an ISO file on a local harddisk partition. | load the live OS from an ISO file on a local harddisk partition. | ||
+ | |||
+ | livemedia=scandev:/ | ||
+ | Use this if liveslak should | ||
+ | scan all device partitions to locate the ISO file. | ||
livemain=directoryname => | livemain=directoryname => | ||
Line 339: | Line 399: | ||
During init, pause at strategic locations while | During init, pause at strategic locations while | ||
assembling the overlay filesystem and show mount information. | assembling the overlay filesystem and show mount information. | ||
+ | |||
+ | debug=< | ||
+ | ' | ||
+ | ' | ||
rescue => | rescue => | ||
Line 359: | Line 423: | ||
* The boot/ directory contains the syslinux configuration used when the Live OS boots on a computer with a BIOS. This directory also contains the kernel and initrd files which are used to actually boot the OS. | * The boot/ directory contains the syslinux configuration used when the Live OS boots on a computer with a BIOS. This directory also contains the kernel and initrd files which are used to actually boot the OS. | ||
* The liveslak/ directory contains all the squashfs modules which are used to assemble the filesystem of the Live OS, as well as files that are copied directly into the root of the Live filesystem. | * The liveslak/ directory contains all the squashfs modules which are used to assemble the filesystem of the Live OS, as well as files that are copied directly into the root of the Live filesystem. | ||
- | * addons/ - modules which are stored in this directory will always be added t the Live filesystem unless you prevent that with a " | + | * addons/ - modules which are stored in this directory will always be added to the Live filesystem unless you prevent that with a " |
* optional/ - modules in this directory will not be added to the filesystem of the Live OS unless you force this with a " | * optional/ - modules in this directory will not be added to the filesystem of the Live OS unless you force this with a " | ||
* system/ - this directory contains all the modules which were created by the " | * system/ - this directory contains all the modules which were created by the " | ||
Line 388: | Line 452: | ||
* The script reads a package sequence for the Live variant and installs all packages in this sequence to subdirectories of a temporary directory tree. | * The script reads a package sequence for the Live variant and installs all packages in this sequence to subdirectories of a temporary directory tree. | ||
- | * Every Slackware package set (a, ap, d, ... , y) or package list (min, xbase, xapbase, ...) is installed into a separate ' | + | * Every Slackware package set (a, ap, d, ... , y) or package list (min, noxbase, x_base, xapbase, ...) is installed into a separate ' |
* Each of those root directories is " | * Each of those root directories is " | ||
* These module files are subsequently loop-mounted and then combined together into a single read-only directory structure using an " | * These module files are subsequently loop-mounted and then combined together into a single read-only directory structure using an " | ||
Line 407: | Line 471: | ||
* an initial environment for the accounts is configured, | * an initial environment for the accounts is configured, | ||
* the desktop environment is pre-configured for first use, | * the desktop environment is pre-configured for first use, | ||
- | * the liveslak scripts " | + | * the liveslak scripts " |
* if the Live system contains a huge kernel (all ISO variants except XFCE) then the " | * if the Live system contains a huge kernel (all ISO variants except XFCE) then the " | ||
* slackpkg is configured, | * slackpkg is configured, | ||
* a locate database is created, | * a locate database is created, | ||
* etc... | * etc... | ||
- | * All these modifications are written to the writable filesystem that was created in the previous section. This filesystem will also be stored on the ISO as a squashfs module and when the Live OS boots, it will be mounted read-only just like all the other modules. Its name will be " | + | * All these modifications are written to the writable filesystem that was created in the previous section. This filesystem will also be stored on the ISO as a squashfs module and when the Live OS boots, it will be mounted read-only just like all the other modules. Its name will be " |
Line 443: | Line 507: | ||
This section explains how the script modifies the ISO for the enhanced USB functionality. | This section explains how the script modifies the ISO for the enhanced USB functionality. | ||
+ | |||
+ | == Layout of the USB stick == | ||
+ | |||
+ | The " | ||
+ | |||
+ | * First partition: a small (1 MB in size) FAT partition which is not used for Slackware Live Edition. | ||
+ | * Second partition: a 100 MB VFAT partition containing the kernel, initrd and all the other stuff required by syslinux and grub2 to boot Slackware Live Edition. | ||
+ | * Third partition: a Linux partition taking up all of the remaining space. It contains the actual liveslak modules, the persistent live storage and optionally your encrypted homedirectory. You can use the remainder of this Linux //ext4// filesystem' | ||
+ | |||
+ | Note that this script is the only supported method of transfering the liveslak ISO content to a USB stick and make that USB stick into a persistent live OS. Several 3rd party tools (like multibootusb, | ||
== Mounting a filesystem in an encrypted container == | == Mounting a filesystem in an encrypted container == | ||
Line 487: | Line 561: | ||
The " | The " | ||
- | |||
- | |||
Line 517: | Line 589: | ||
</ | </ | ||
* Note that when networkbooting, | * Note that when networkbooting, | ||
+ | |||
+ | |||
+ | === upslak.sh === | ||
+ | |||
+ | |||
+ | The sixth script: | ||
+ | |||
+ | The " | ||
+ | |||
+ | This section explains how the script modifies the content of the Live USB stick. | ||
+ | |||
+ | When the script is started, it will do some sanity checks and then extracts the content of the initrd image. Some characteristics of the initrd will be recorded: | ||
+ | * existence of previously backed-up kernel modules is checked, | ||
+ | * template variables and their values are obtained from the init sctript, | ||
+ | * the current USB wait time is checked. | ||
+ | Depending on the parameters passed to the script, it will then perform one or more of the following actions: | ||
+ | |||
+ | == Update the kernel and moules == | ||
+ | |||
+ | You can provide a new kernel and its modules in two ways. The ' | ||
+ | If there is sufficient space on the Linux and EFI partitions, the script will make a backup of the current kernel and modules by renaming the kernel and the module directory with a " | ||
+ | |||
+ | == Restore backed-up kernel and modules == | ||
+ | |||
+ | If a backup was made of kernel and modules, the upslak.sh script is able to restore these using the ' | ||
+ | |||
+ | == Add network support modules == | ||
+ | |||
+ | This should normally not be needed. | ||
+ | |||
+ | == Increase (or decrease) USB wait time == | ||
+ | |||
+ | Similar to the functionality of the " | ||
+ | |||
+ | == Replace the liveslak init script == | ||
+ | |||
+ | The init script inside the initrd image is the core of liveslak. | ||
+ | |||
+ | == Wrap persistence data into a new squashfs module == | ||
+ | |||
+ | Persistence data will accumulate over time on the USB stick. | ||
Line 526: | Line 639: | ||
You also need the " | You also need the " | ||
- | Liveslak is a directory tree containing scripts, bitmaps and configuration files. | + | Liveslak is a directory tree containing scripts, bitmaps and configuration files. |
Line 555: | Line 668: | ||
* locale = the locale used in the country | * locale = the locale used in the country | ||
* xkb = optional custom X keyboard variant for the language | * xkb = optional custom X keyboard variant for the language | ||
- | * liveinit - this is the " | + | * liveinit.tpl - this is the template for the " |
* make_slackware_live.conf - the configuration file for the " | * make_slackware_live.conf - the configuration file for the " | ||
* make_slackware_live.sh - the script that generates the Live ISO. | * make_slackware_live.sh - the script that generates the Live ISO. | ||
* makemod - this script creates a squashfs module out of a Slackware package (or out of a directory tree). | * makemod - this script creates a squashfs module out of a Slackware package (or out of a directory tree). | ||
* menu.tpl - template which is used to generate the syslinux boot menu for BIOS computers. | * menu.tpl - template which is used to generate the syslinux boot menu for BIOS computers. | ||
- | * pxeserver - the script that starts a PXE server allowing other computers to boot Slackware Live over the network. | + | * pxeserver.tpl - template to generate |
- | * setup2hd - the script you use to install your Slackware Live to a harddisk. | + | * setup2hd.tpl |
* setup2hd.local - here a developer of a custom Live OS can override the default post-installation routine by (re-)defining the function " | * setup2hd.local - here a developer of a custom Live OS can override the default post-installation routine by (re-)defining the function " | ||
Line 573: | Line 686: | ||
-a arch Machine architecture (default: x86_64). | -a arch Machine architecture (default: x86_64). | ||
Use i586 for a 32bit ISO, x86_64 for 64bit. | Use i586 for a 32bit ISO, x86_64 for 64bit. | ||
+ | -c comp Squashfs compression (default: xz). | ||
+ | Can be any of 'gzip lzma lzo xz zstd'. | ||
-d desktoptype | -d desktoptype | ||
- | XFCE (basic XFCE), PLASMA5 (full Plasma5 replaces KDE4), | + | XFCE (basic XFCE), PLASMA5 (KDE Plasma5 replaces KDE4), |
MATE (Gnome2 fork replaces KDE4), CINNAMON (fork of Gnome3 | MATE (Gnome2 fork replaces KDE4), CINNAMON (fork of Gnome3 | ||
- | Shell replaces KDE4). | + | Shell replaces KDE4), DLACK (adds Gnome3, PAM and systemd). |
| | ||
where the ISO won't boot otherwise (default: 4). | where the ISO won't boot otherwise (default: 4). | ||
| | ||
custom configurations and new initrd.img. | custom configurations and new initrd.img. | ||
+ | -l < | ||
+ | (script-default is ' | ||
-m pkglst[, | -m pkglst[, | ||
-r series[, | -r series[, | ||
Line 596: | Line 713: | ||
The script uses package repositories to create a Live ISO. The packages will be installed into a temporary directory. | The script uses package repositories to create a Live ISO. The packages will be installed into a temporary directory. | ||
- | In order to create a Live ISO for any of these variants, the package repositories that are required must be available as a local directory (this can be a network-mounted directory). | + | In order to create a Live ISO for any of these variants, the package repositories that are required must be available as a local directory (this can be a network-mounted directory). |
When all pre-reqs are met, you issue a single command to generate the ISO. The following example will create a pure Slackware Live Edition: | When all pre-reqs are met, you issue a single command to generate the ISO. The following example will create a pure Slackware Live Edition: | ||
Line 616: | Line 733: | ||
You can create your own custom Live OS by changing its characteristics in the configuration file "'' | You can create your own custom Live OS by changing its characteristics in the configuration file "'' | ||
Among the things you can change are: | Among the things you can change are: | ||
- | * The name of the Desktop variant (the script itself knows "// | + | * The name of the Desktop variant (the script itself knows "// |
* The list(s) of packages used for your custom distribution, | * The list(s) of packages used for your custom distribution, | ||
* The name of the useraccount (by default that is "// | * The name of the useraccount (by default that is "// | ||
Line 632: | Line 749: | ||
# and " | # and " | ||
# respectively): | # respectively): | ||
- | # | + | # |
# OPTIONAL: | # OPTIONAL: | ||
Line 726: | Line 843: | ||
0000 = contains the Slackware /boot directory | 0000 = contains the Slackware /boot directory | ||
0010-0019 = packages installed from a Slackware tagfile (a,ap,d, ... , y series) | 0010-0019 = packages installed from a Slackware tagfile (a,ap,d, ... , y series) | ||
- | 0020-0029 = packages installed from a package list as found in the ./pkglists subdirectory of the liveslak sources (min, xbase, xapbase, xfcebase etc) | + | 0020-0029 = packages installed from a package list as found in the ./pkglists subdirectory of the liveslak sources (min, noxbase, x_base, xapbase, xfcebase etc) |
0030-0039 = a ' | 0030-0039 = a ' | ||
0099 = liveslak configuration module (contaning all the customizations that change the installed packages into a usable Live OS) </ | 0099 = liveslak configuration module (contaning all the customizations that change the installed packages into a usable Live OS) </ | ||
Line 746: | Line 863: | ||
Website: https:// | Website: https:// | ||
- | SLAX was the original Live variant of Slackware. | + | SLAX was the original Live variant of Slackware. |
The Live functionality of SLAX is based on aufs and unionfs which requires a custom-built kernel with aufs support compiled-in. | The Live functionality of SLAX is based on aufs and unionfs which requires a custom-built kernel with aufs support compiled-in. | ||
Line 780: | Line 897: | ||
Website: http:// | Website: http:// | ||
- | A website offering Live versions based on many regular Linux distributions. | + | A website offering Live versions based on many regular Linux distributions. |
Line 788: | Line 905: | ||
Slackware Live Edition is created by the ' | Slackware Live Edition is created by the ' | ||
- | * Git repository: %%git://bear.alienbase.nl/ | + | * Git repository: %%git://slackware.nl/ |
- | * Git repository (browsable): | + | * Git repository (browsable): |
* Download mirror: http:// | * Download mirror: http:// | ||
Line 795: | Line 912: | ||
====== Sources ====== | ====== Sources ====== | ||
<!-- If you copy information from another source, then specify that source --> | <!-- If you copy information from another source, then specify that source --> | ||
- | * Original source: [[http://bear.alienbase.nl/cgit/ | + | * Original source: [[https://git.slackware.nl/ |
+ | * Project landing page: [[https:// | ||
<!-- Authors are allowed to give credit to themselves! --> | <!-- Authors are allowed to give credit to themselves! --> | ||
* Originally written by [[wiki: | * Originally written by [[wiki: | ||
- | <!-- * Contrbutions | + | <!-- * Contributions |
<!-- Please do not modify anything below, except adding new tags.--> | <!-- Please do not modify anything below, except adding new tags.--> | ||
<!-- You must also remove the tag-word " | <!-- You must also remove the tag-word " | ||
{{tag> | {{tag> |