[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 [2018/11/04 13:48 (UTC)] – Add support for on-disk OS configuration file alienbob | slackware:liveslak [2021/11/24 06:14 (UTC)] – Updated the rsync URI for slackware.uk alienbob | ||
---|---|---|---|
Line 32: | Line 32: | ||
The " | The " | ||
- | - a complete 64bit Slackware-current Live Edition (in a 3.1 GB ISO); | + | - a complete 64bit Slackware-current Live Edition (in a 4.0 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 (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 ISO image (4.3 GB) of Slackware64-current containing |
- | - a Mate variant (2.2 GB) where KDE 4 has been replaced by Mate (a Gnome 2 fork); | + | - A Digital Audio Workstation (DAW) based on a custom Slackware package set plus a basic Plasma5, containing a rich software collection for musicians, producers and live performance artists. |
+ | - a Mate variant (3.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 [[https:// | ||
Line 46: | Line 47: | ||
Common download locations are: | Common download locations are: | ||
- | * Primary site: http://slackware.nl/ | + | * Primary site: http://download.liveslak.org/ (%%rsync://liveslak.org/liveslak/%%) |
- | * Darren' | + | * Darren' |
* Willy' | * Willy' | ||
- | * Ryan's https:// | ||
* Shasta' | * Shasta' | ||
Line 75: | Line 75: | ||
Syslinux shows a graphical boot menu with a nice Slackware-themed background and several options: | Syslinux shows a graphical boot menu with a nice Slackware-themed background and several options: | ||
- | * Start (SLACKWARE | PLASMA5 | + | * Start (SLACKWARE | KTOWN | XFCE | MATE | DAW) Live (depending on which of the ISOs you boot) |
* Non-US Keyboard selection | * Non-US Keyboard selection | ||
* Non-US Language selection | * Non-US Language selection | ||
Line 89: | Line 89: | ||
On UEFI computers, Grub2 handles the boot and it will show a menu similar (and similarly themed) to the Syslinux menu: | On UEFI computers, Grub2 handles the boot and it will show a menu similar (and similarly themed) to the Syslinux menu: | ||
- | * Start (SLACKWARE | PLASMA5 | + | * Start (SLACKWARE | KTOWN | XFCE | MATE | DAW) Live (depending on which of the ISOs you boot) |
* Non-US Keyboard selection | * Non-US Keyboard selection | ||
* Non-US Language selection | * Non-US Language selection | ||
Line 99: | Line 99: | ||
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. | ||
+ | |||
+ | |||
+ | === UEFI Secure Boot === | ||
+ | |||
+ | |||
+ | On computers with Secure Boot enabled, extra measures may be required to boot an Operating System. | ||
+ | |||
+ | Secure Boot enforces that the first-stage bootloader is signed with an encryption key known to Microsoft. | ||
+ | |||
+ | Signing your Grub bootloader and your kernel also becomes mandatory, because the ' | ||
+ | |||
+ | The Slackware Live OS boots on a Secure Boot enabled computer if created with liveslak-1.5.0 or newer, and only for the 64-bit liveslak ISO images. | ||
+ | |||
+ | To realize this, the Slackware Live ISO ' | ||
+ | |||
+ | A distro ' | ||
+ | |||
+ | The Grub and kernel images of Slackware Live Edition are signed with an 'Alien BOB' SSL certificate and private key. This SSL certificate needs to be added to the MOK database of your Secure Boot enabled computer. | ||
+ | |||
+ | == Add the '' | ||
+ | |||
+ | There are two ways to add or enroll this certificate. | ||
+ | * When you boot a Secure Boot enabled liveslak ISO for the first time, the ' | ||
+ | * If you already have a Linux OS up and running on that computer, you can use the program '' | ||
+ | # mokutil --import liveslak.der</ | ||
+ | |||
+ | Note that MOK key enrollment is a one-time action for the official liveslak based ISOs. All future liveslak ISOs will also be signed using this '' | ||
+ | |||
+ | Note that you can create your own SSL certificate plus private key and use those to generate custom liveslak ISO images with Secure Boot support. | ||
+ | |||
+ | |||
+ | === Boot from an ISO file on disk === | ||
+ | |||
+ | |||
+ | If you downloaded a liveslak ISO file and want to boot that ISO directly from its location on your computer' | ||
+ | menuentry " | ||
+ | set iso='/ | ||
+ | set bootparms=' | ||
+ | |||
+ | search -f $iso --set=root | ||
+ | loopback loop $iso | ||
+ | linux (loop)/ | ||
+ | initrd (loop)/ | ||
+ | }</ | ||
+ | |||
+ | This example will add a ' | ||
Line 111: | Line 157: | ||
-c|--crypt size|perc | -c|--crypt size|perc | ||
| | ||
- | or as a percentage of free space. | + | or as a percentage of free space |
- | | + | |
+ | | ||
-d|--devices | -d|--devices | ||
-f|--force | -f|--force | ||
Line 119: | Line 166: | ||
-o|--outdev < | -o|--outdev < | ||
-p|--persistence < | -p|--persistence < | ||
+ | If it does not exist yet, create it manually. | ||
-r|--refresh | -r|--refresh | ||
No formatting, do not touch user content. | No formatting, do not touch user content. | ||
Line 129: | Line 177: | ||
Use a LUKS-encrypted ' | Use a LUKS-encrypted ' | ||
of a directory (for use on FAT filesystem). | of a directory (for use on FAT filesystem). | ||
+ | | ||
+ | as for the ' | ||
-P|--persistfile | -P|--persistfile | ||
of a directory (for use on FAT filesystem). | of a directory (for use on FAT filesystem). | ||
Line 146: | Line 196: | ||
You might have noticed that the " | You might have noticed that the " | ||
+ | |||
+ | |||
+ | ==== Using the Live OS to install Slackware to hard disk ==== | ||
+ | |||
+ | All variants of Slackware Live Edition contain a script " | ||
+ | The " | ||
+ | |||
+ | The " | ||
+ | * It will launch fdisk/gdisk if you forgot to create Linux partitions in advance; | ||
+ | * It will allow you to create a regular user account and set its password; | ||
+ | * It will prompt you to set the root password in a graphical dialog. | ||
+ | |||
==== Updating the kernel (and more) on a USB stick ==== | ==== Updating the kernel (and more) on a USB stick ==== | ||
Line 185: | Line 247: | ||
# ./upslak.sh -d | # ./upslak.sh -d | ||
* Updating kernel and modules, providing two packages as input and assuming the USB stick is known as /dev/sdX: | * 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.9.50-x86_64-1.txz -k kernel-generic-4.9.50-x86_64-1.txz | + | # ./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: | * 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 | # ./upslak.sh -s -r | ||
Line 343: | Line 405: | ||
OS parameters; or specify ' | OS parameters; or specify ' | ||
to disk. | to disk. | ||
+ | |||
+ | domain=your_custom_domain => | ||
+ | Specify a custom domain name. Defaults to ' | ||
hostname=your_custom_hostname[, | hostname=your_custom_hostname[, | ||
Line 385: | Line 450: | ||
Use this if you are using a different | Use this if you are using a different | ||
directory/ | directory/ | ||
+ | |||
+ | persistence=/ | ||
+ | persistence=scandev:/ | ||
+ | Use this if the persistence directory or container is not located on | ||
+ | the USB stick, but on a local hard disk partition. | ||
+ | Useful for network (PXE) boot where you still want to offer users persistence. | ||
toram => | toram => | ||
- | | + | |
You can remove the boot media after booting. | You can remove the boot media after booting. | ||
+ | |||
+ | toram=all => | ||
+ | Prevent writes to disk since we are supposed to run from RAM; | ||
+ | equivalent to parameter " | ||
+ | |||
+ | toram=core => Load Console OS modules into RAM. Console-only Slackware | ||
+ | loads fast, contains ' | ||
+ | overwrite it with a Persistent Live OS. | ||
+ | |||
+ | toram=os => | ||
+ | Load OS modules into RAM, but write persistent data to USB. | ||
=== Troubleshooting === | === Troubleshooting === | ||
Line 453: | Line 535: | ||
* 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 473: | Line 555: | ||
* 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 " | + | * the " |
* slackpkg is configured, | * slackpkg is configured, | ||
* a locate database is created, | * a locate database is created, | ||
Line 561: | Line 643: | ||
The fourth script: | The fourth script: | ||
- | The " | + | The " |
+ | * The Slackware network installation is identical to that of the official Slackware installation medium. | ||
+ | * If you chose to install the Live OS, then after you select the target partition(s), | ||
Line 650: | Line 734: | ||
* README.txt - this documentation. | * README.txt - this documentation. | ||
* addons/ - squashfs modules placed in this directory will be loaded into the Live filesystem when the OS boots. | * addons/ - squashfs modules placed in this directory will be loaded into the Live filesystem when the OS boots. | ||
+ | * contrib/ - contributed scripts that are not used directly for the creation and usage of a Live ISO. | ||
* graphics/ - squashfs modules for proprietary GPU support (Nvidia) can be placed here. The module(s) will be copied to addons/ by the " | * graphics/ - squashfs modules for proprietary GPU support (Nvidia) can be placed here. The module(s) will be copied to addons/ by the " | ||
* local64/ , local/ - these directories can contain Slackware packages considered ' | * local64/ , local/ - these directories can contain Slackware packages considered ' | ||
+ | * media/ - scripts and images that are specific to a Live variant. | ||
* optional/ - squashfs modules placed in this directory will not automatically be loaded into the Live filesystem when the OS boots. | * optional/ - squashfs modules placed in this directory will not automatically be loaded into the Live filesystem when the OS boots. | ||
+ | * patches/ - patches for Slackware scripts that need modifications to run inside a Live OS. | ||
* pkglists/ - definition files of 3rd party repositories (*.conf) and the package lists to be used from those repositories (*.lst) must be placed in this directory. | * pkglists/ - definition files of 3rd party repositories (*.conf) and the package lists to be used from those repositories (*.lst) must be placed in this directory. | ||
+ | * setup2hd/ - script templates used by the '' | ||
* skel/ - contains compressed tarballs (whose filenames must match wildcard " | * skel/ - contains compressed tarballs (whose filenames must match wildcard " | ||
* syslinux/ | * syslinux/ | ||
Line 676: | Line 764: | ||
* pxeserver.tpl - template to generate the script that starts a PXE server allowing other computers to boot Slackware Live over the network. | * pxeserver.tpl - template to generate the script that starts a PXE server allowing other computers to boot Slackware Live over the network. | ||
* setup2hd.tpl | * 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.tpl - here a developer of a custom Live OS can override the default post-installation routine by (re-)defining the function " |
+ | * upslak.sh - a script which allows you to tweak the content of a USB Live stick. | ||
Line 687: | Line 776: | ||
-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. | ||
- | -d desktoptype | + | -c comp Squashfs compression (default: xz). |
- | XFCE (basic XFCE), | + | Can be any of 'gzip lzma lzo xz zstd' |
- | | + | -d desktoptype |
- | | + | |
+ | stripped), KTOWN (ktown Plasma5 | ||
+ | (Gnome2 fork replaces | ||
+ | replaces | ||
| | ||
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[, | ||
-s slackrepo_dir | -s slackrepo_dir | ||
- | -t < | + | -t <none|doc|mandoc|bloat> |
+ | | ||
| | ||
-z version | -z version | ||
+ | | ||
| | ||
-H < | -H < | ||
Line 706: | Line 802: | ||
-O < | -O < | ||
-R < | -R < | ||
+ | -S privkey: | ||
+ | using the full path to colon-separated | ||
+ | private key and certificate files. | ||
| | ||
</ | </ | ||
Line 717: | Line 816: | ||
Another example which creates a MATE variant, configuring runlevel ' | Another example which creates a MATE variant, configuring runlevel ' | ||
# ./ | # ./ | ||
+ | |||
+ | An example on how to create a DAW Live ISO which supports UEFI SecureBoot (since liveslak 1.5.0 and only for 64-bit), is compressed using ' | ||
+ | # ./ | ||
If you want to know what package sets are included in any of these Desktop Environments, | If you want to know what package sets are included in any of these Desktop Environments, | ||
Line 725: | Line 827: | ||
- | ==== Using the Customization | + | ==== Using the Customization |
+ | === Master configuration file === | ||
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 full name of the user (by default that is "// | ||
* The name of the useraccount (by default that is "// | * The name of the useraccount (by default that is "// | ||
* The name of the distribution (by default that is "// | * The name of the distribution (by default that is "// | ||
Line 746: | Line 851: | ||
# and " | # and " | ||
# respectively): | # respectively): | ||
- | # | + | # |
# OPTIONAL: | # OPTIONAL: | ||
Line 779: | Line 884: | ||
#} | #} | ||
</ | </ | ||
+ | |||
+ | === Custom background images === | ||
+ | |||
+ | The Plasma5 based Live variants allow customization of the background image used for the login greeter, the desktop wallpaper and the lock screen. The image you want to use for this purpose, must have a 16:9 aspect ratio and its dimensions should at least be 1920x1080 pixels. You must store the custom image inside the liveslak source tree: in the subdirectory '' | ||
+ | |||
+ | The " | ||
+ | |||
+ | |||
==== Internals of Slackware Live Edition ==== | ==== Internals of Slackware Live Edition ==== | ||
Line 814: | Line 927: | ||
* The filesystem of the Live media is made available to the user of the Live OS as "/ | * The filesystem of the Live media is made available to the user of the Live OS as "/ | ||
* With the root filesystem assembled, the Live OS is configured before it actually boots: | * With the root filesystem assembled, the Live OS is configured before it actually boots: | ||
+ | * if a OS-specific configuration file (by default ''/ | ||
* if you specified " | * if you specified " | ||
* if you specified a custom keyboard layout for the console (and optionally another for X) by using the " | * if you specified a custom keyboard layout for the console (and optionally another for X) by using the " | ||
Line 826: | Line 940: | ||
* The init script will end by telling the kernel to swith to our new root filesystem (the overlay) and start the Slackware init program (PID 1, / | * The init script will end by telling the kernel to swith to our new root filesystem (the overlay) and start the Slackware init program (PID 1, / | ||
* From this moment onward, you are booting a ' | * From this moment onward, you are booting a ' | ||
+ | |||
+ | |||
+ | === OS configuration file for persistent media === | ||
+ | |||
+ | If present, the liveslak init will load a OS config file from a persistent Live medium such as a USB stick. | ||
+ | * BLACKLIST, KEYMAP, LIVE_HOSTNAME, | ||
+ | Values for the variables defined in this configuration file override the values already set via liveslak' | ||
+ | |||
+ | When booting your persistent //Slackware Live Edition//, the optional boot-time parameter " | ||
+ | * " | ||
+ | * " | ||
+ | |||
+ | The OS configuration file is not present by default. You either create it at boot-time using "'' | ||
+ | KEYMAP=nl | ||
+ | LIVE_HOSTNAME=zelazny | ||
+ | LOCALE=nl_NL.utf8 | ||
+ | TWEAKS=tpb, | ||
+ | TZ=Europe/ | ||
Line 840: | Line 972: | ||
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 902: | Line 1034: | ||
Slackware Live Edition is created by the ' | Slackware Live Edition is created by the ' | ||
- | * Git repository: %%git://slackware.nl/ | + | * Git repository: %%git://git.liveslak.org/ |
- | * Git repository (browsable): | + | * Git repository (browsable): |
* Download mirror: http:// | * Download mirror: http:// | ||
Line 909: | Line 1041: | ||
====== 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://git.alienbase.nl/ | + | * Original source: [[https://git.slackware.nl/ |
+ | * Project landing page: [[https:// | ||
+ | * ISO downloads: [[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> |