[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.

Welcome to the Slackware Documentation Project

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
slackware:liveslak [2018/02/21 21:18 (UTC)] – Fix a download URL alienbobslackware:liveslak [2021/11/24 06:14 (UTC)] – Updated the rsync URI for slackware.uk alienbob
Line 32: Line 32:
  
 The "liveslak" scripts can generate a variety of Slackware flavors: The "liveslak" scripts can generate a variety of Slackware flavors:
-  - a complete 64bit Slackware-current Live Edition (in a 3.GB ISO);+  - a complete 64bit Slackware-current Live Edition (in a 4.GB ISO);
   - a slimmed-down XFCE ISO (700 MB) with XDM as the graphical login manager.  It fits on a CDROM medium or a 1 GB USB stick;   - a slimmed-down XFCE ISO (700 MB) with XDM as the graphical login manager.  It fits on a CDROM medium or a 1 GB USB stick;
-  -  a ISO image (4.GB) of Slackware64-current containing Plasma 5 instead of KDE 4with an addition of several other packages from the alienBOB repositories: vlc, libreoffice, calibre, qbittorrent, ffmpeg, chromium, openjdkveracrypt+  -  a ISO image (4.GB) of Slackware64-current containing 'ktown' Plasma 5 instead of Slackware'KDE
-  - 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 Plasma5containing a rich software collection for musiciansproducers 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's KDE 4).   - a Cinnamon flavour (a fork of the Gnome 3 Shell replacing Slackware's KDE 4).
   - a [[https://github.com/Dlackware/dlackware|Dlackware]] variant, which is Gnome3 + PAM + systemd on top of Slackware and stripped of KDE4.   - a [[https://github.com/Dlackware/dlackware|Dlackware]] variant, which is Gnome3 + PAM + systemd on top of Slackware and stripped of KDE4.
Line 46: Line 47:
  
 Common download locations are: Common download locations are:
-  * Primary site: http://slackware.nl/slackware-live/ (%%rsync://slackware.nl/mirrors/slackware-live/%%) +  * Primary site: http://download.liveslak.org/ (%%rsync://liveslak.org/liveslak/%%) 
-  * Darren's http://slackware.uk/people/alien-slacklive/ (%%rsync://slackware.uk/people/alien-slacklive/%%)+  * Darren's http://slackware.uk/people/alien-slacklive/ (%%rsync://slackware.uk/liveslak%%)
   * Willy's http://repo.ukdw.ac.id/slackware-live/   * Willy's http://repo.ukdw.ac.id/slackware-live/
-  * Ryan's https://seattleslack.ryanpcmcquen.org/mirrors/slackware-live/ 
   * Shasta's http://ftp.slackware.pl/pub/slackware-live/ (%%rsync://ftp.slackware.pl/slackware-live/%%)   * Shasta's http://ftp.slackware.pl/pub/slackware-live/ (%%rsync://ftp.slackware.pl/slackware-live/%%)
  
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 | XFCE | MATE) Live (depending on which of the ISOs you boot)+  * 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 | XFCE | MATE) Live (depending on which of the ISOs you boot)+  * 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.  In the Syslinux menu, only the keyboard selection menu will return you to the main menu.  Any non-US *language* selection on the other hand will boot you into Slackware Live immediately; without returning to the main menu.  This is a limitation of syslinux which would require exponentially more menu files to construct a menu with more choices.  Grub2 supports variables which make it easy to modify a menu entry's characteristics. 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.  In the Syslinux menu, only the keyboard selection menu will return you to the main menu.  Any non-US *language* selection on the other hand will boot you into Slackware Live immediately; without returning to the main menu.  This is a limitation of syslinux which would require exponentially more menu files to construct a menu with more choices.  Grub2 supports variables which make it easy to modify a menu entry's characteristics.
 +
 +
 +=== UEFI Secure Boot ===
 +
 +
 +On computers with Secure Boot enabled, extra measures may be required to boot an Operating System.  Slackware for instance, is unable to boot on a computer that has Secure Boot enabled. Historic liveslak based ISOs are also not able to boot there. From liveslak-1.5.0 and onwards, Secure Boot is supported for the 64-bit ISO images.
 +
 +Secure Boot enforces that the first-stage bootloader is signed with an encryption key known to Microsoft.  For Linux based Operating Systems, the most widely used solution is to place an small single-purpose bootloader before the regular Linux bootloader.  This EFI bootloader is called 'shim' Shim must be cryptographically signed by Microsoft for it to successfully boot a computer.  This is not a trivial process, Microsoft is very strict about the signing process because in essence your signed bootloader will boot anything on a Secure Boot enabled computer, including malware if that was signed by your 'distro key' That would create a huge security hole and defy the purpose of Secure Boot.
 +
 +Signing your Grub bootloader and your kernel also becomes mandatory, because the 'shim' refuses to load un-signed binaries.  This complicates the process of upgrading to a new kernel further.
 +
 +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.  The Slackware Linux distro does not ship a 'shim' which is signed by Microsoft, so how to get around the dilemma of requiring a signed 'shim'?
 +
 +To realize this, the Slackware Live ISO 'borrows' a 3rd-party 'shim'. The binaryis actually called ''bootx64.efi'' in the ''/EFI/BOOT/'' directory and has been extracted from another distro's officially signed 'shim' package; Fedora by default but the Debian and openSUSE shim are also supported by the ''make_slackware_live.sh'' script.  This 3rd-party 'shim' binary has been signed by 'Microsoft UEFI CA' which will allow it to boot on any computer. We just need to tell it that is OK to load Slackware's Grub and kernel into memory.
 +
 +A distro 'shim' like Fedora's contains an embedded distro SSL certificate and 'shim' will trust the signature of any binary (grub, kernel, etc) which has been signed using that certificate. Of course, 3rd-party 'shim' binaries do not embed a Slackware SSL certificate. Therefore, another means must be used to establish trust.  Secure Boot recognizes additional SSL certificates in the computer's MOK (Machine Owner Key) database as valid.  The 'shim' trusts custom SSL vertificates of signed binaries, if they are present in the MOK database.  It is up to the user (the Machine Owner) to enroll a custom SSL certificate into that database.
 +
 +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.  All liveslak ISOs use this specific certificate plus its associated private key. The private key will of course never be distributed but a 'DER-encoded' version of the public certificate is distributed as part of the ISO.  You can find it as ''/EFI/BOOT/liveslak.der'' inside the ISO. On a persistent USB stick which you created from the ISO, this will be on the second partition (the ESP).
 +
 +== Add the ''liveslak.der'' certificate to the MOK database ==
 +
 +There are two ways to add or enroll this certificate.
 +  * When you boot a Secure Boot enabled liveslak ISO for the first time, the 'shim' will fail to validate the certificate of liveslak's Grub. It will then start the 'MokManager' showing you a nice blue screen with a dialog requesting you to enroll a public key (aka the SSL certificate) from disk. You can use the file selector to browse to the 'efi' partition and there to the ''./EFI/BOOT/'' directory. Select the ''liveslak.der'' and confirm that this is the correct certificate. The computer will then reboot and after reboot, you will automatically end up in the Grub boot menu without any further intervention.
 +  * If you already have a Linux OS up and running on that computer, you can use the program ''mokutil'' to enroll the key before you boot a liveslak ISO:<code>
 +# mokutil --import liveslak.der</code> This command will schedule a request to shim, and the first time you boot a liveslak ISO the MokManager will ask confirmation to enroll the scheduled key.  In other words, you won't have to 'enroll from disk'.
 +
 +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 ''liveslak.der'' certificate and as long as it stays in your computer's MOK database, the 'shim' will load Grub and the kernel without complaint.
 +
 +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.  All you need to do is to enroll the public key (the DER-encoded version of your SSL certificate) into the MOK database of your computer.  The MOK database has room for multiple keys so yours as well as liveslak's keys (and more) will fit there.
 +
 +
 +=== 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's hard drive, you can use this Grub configuration block and add it to your ''/boot/grub/grub.cfg'':<code>
 +menuentry "LIVESLAK ISO" --class gnu-linux --class os --class icon-linux {
 +  set iso='/data/ISOS/slackware64-live-xfce-current.iso'
 +  set bootparms='load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 kbd=us tz=Europe/Amsterdam lang=nl'
 + 
 +  search -f $iso --set=root
 +  loopback loop $iso
 +  linux (loop)/boot/generic livemedia=scandev:$iso $bootparms
 +  initrd (loop)/boot/initrd.img
 +}</code>
 +
 +This example will add a 'LIVESLAK ISO' menu entry to your local computer's boot menu, through which you can start a downloaded XFCE Live ISO pre-configured for a US keyboard, Dutch language and Amsterdam timezone.
  
  
Line 111: Line 157:
   -c|--crypt size|perc       Add a LUKS encrypted /home ; parameter is the   -c|--crypt size|perc       Add a LUKS encrypted /home ; parameter is the
                              requested size of the container in kB, MB, GB,                              requested size of the container in kB, MB, GB,
-                             or as a percentage of free space. +                             or as a percentage of free space 
-                             Examples: '-c 125M', '-c 1.3G', '-c 20%'.+                             (integer numbers only)
 +                             Examples: '-c 125M', '-c 2G', '-c 20%'.
   -d|--devices               List removable devices on this computer.   -d|--devices               List removable devices on this computer.
   -f|--force                 Ignore most warnings (except the back-out).   -f|--force                 Ignore most warnings (except the back-out).
Line 119: Line 166:
   -o|--outdev <filename>     The device name of your USB drive.   -o|--outdev <filename>     The device name of your USB drive.
   -p|--persistence <name>    Custom name of the 'persistence' directory/file.   -p|--persistence <name>    Custom name of the 'persistence' directory/file.
 +                             If it does not exist yet, create it manually.
   -r|--refresh               Refresh the USB stick with the ISO content.   -r|--refresh               Refresh the USB stick with the ISO content.
                              No formatting, do not touch user content.                              No formatting, do not touch user content.
Line 129: Line 177:
                              Use a LUKS-encrypted 'persistence' file instead                              Use a LUKS-encrypted 'persistence' file instead
                              of a directory (for use on FAT filesystem).                              of a directory (for use on FAT filesystem).
 +                             Format for size/percentage is the same
 +                             as for the '-c' parameter.
   -P|--persistfile           Use an unencrypted 'persistence' file instead   -P|--persistfile           Use an unencrypted 'persistence' file instead
                              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 "-P" parameter does not accept a size parameter.  This is because the unencrypted container file is created as a 'sparse' file that starts at zero size and is allowed to grow dynmically to a maximum of 90% of the initial free space on the Linux partition of the USB stick. You might have noticed that the "-P" parameter does not accept a size parameter.  This is because the unencrypted container file is created as a 'sparse' file that starts at zero size and is allowed to grow dynmically to a maximum of 90% of the initial free space on the Linux partition of the USB stick.
 +
 +
 +==== Using the Live OS to install Slackware to hard disk ====
 +
 +All variants of Slackware Live Edition contain a script "setup2hd", a tweaked version of the regular Slackware setup program.
 +The "setup2hd" script supports regular Slackware network installations. In addition it allows you to install the Slackware release on which the Live OS is based, to the computer's local hard disk.  You must boot the Live OS first, and then start ''setup2hd'' either in an X Terminal in your graphical Desktop Environment (aka Runlevel 4), or from the console in Runlevel 3.  The fact that you can start "setup2hd" from a graphical terminal means that during installation, you can continue browsing, listening to music, watching video, reading an e-book or whatever else makes you pass the time.
 +
 +The "setup2hd" script has some capabilities that the original Slackware 'setup' lacks:
 +  * 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 338: Line 400:
  
 === Media tweaks === === Media tweaks ===
 +
 +cfg=[skip|write] =>
 +  Specify 'skip' to skip disk-based configuration file containing
 +  OS parameters; or specify 'write' to write current OS parameters
 +  to disk.
 +
 +domain=your_custom_domain =>
 +  Specify a custom domain name.  Defaults to 'example.net'.
  
 hostname=your_custom_hostname[,qualifier] => hostname=your_custom_hostname[,qualifier] =>
Line 380: Line 450:
   Use this if you are using a different   Use this if you are using a different
   directory/file than "persistence" for storing persistent data.   directory/file than "persistence" for storing persistent data.
 +
 +persistence=/dev/sdX:/path/to/mypersistence
 +persistence=scandev:/path/to/mypersistence =>
 +  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 =>
-  copy the OS from the media to to RAM before running it.+  Copy the OS from the media to to RAM before running it.
   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".
 +
 +toram=core => Load Console OS modules into RAM. Console-only Slackware
 +  loads fast, contains 'setup2hd' and frees up your USB drive so you can
 +  overwrite it with a Persistent Live OS.
 +
 +toram=os =>
 +  Load OS modules into RAM, but write persistent data to USB.
  
 === Troubleshooting === === Troubleshooting ===
Line 448: 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 'root' directory.+  * Every Slackware package set (a, ap, d, ... , y) or package list (min, noxbase, x_base, xapbase, ...) is installed into a separate 'root' directory.
   * Each of those root directories is "squashed" (using squashfs) into a separate squashfs module.  Such a module is a single archive file containing the compressed directory structure of the installed packages.   * Each of those root directories is "squashed" (using squashfs) into a separate squashfs module.  Such a module is a single archive file containing the compressed directory structure of the installed packages.
   * These module files are subsequently loop-mounted and then combined together into a single read-only directory structure using an "overlay mount" The overlayfs is relatively new; earlier Live distros have been using aufs and unionfs to achieve similar functionality, but those were not part of any stock kernel source and therefore custom kernels had to be compiled for such a Live distro.   * These module files are subsequently loop-mounted and then combined together into a single read-only directory structure using an "overlay mount" The overlayfs is relatively new; earlier Live distros have been using aufs and unionfs to achieve similar functionality, but those were not part of any stock kernel source and therefore custom kernels had to be compiled for such a Live distro.
Line 468: Line 555:
     * the desktop environment is pre-configured for first use,     * the desktop environment is pre-configured for first use,
     * the liveslak scripts "makemod", "iso2usb.sh" and "upslak.sh" are copied to "/usr/local/sbin/" in the ISO for your convenience,     * the liveslak scripts "makemod", "iso2usb.sh" and "upslak.sh" are copied to "/usr/local/sbin/" in the ISO for your convenience,
-    * if the Live system contains a huge kernel (all ISO variants except XFCE) then the "setup2hd" script and the Slackware installer files are copied to "/usr/local/sbin" and "/usr/share/liveslak" respectively,+    * the "setup2hd" script and the Slackware installer files are copied to "/usr/local/sbin" and "/usr/share/liveslak" respectively.
     * slackpkg is configured,     * slackpkg is configured,
     * a locate database is created,     * a locate database is created,
Line 503: Line 590:
  
 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 "iso2usb.sh" script wipes and re-partitions the USB stick unless the "-r" or //refresh// parameter is used.  See section "[[#transfering_iso_content_to_usb_stick|Transfering ISO content to USB stick]]" for an explanation of all commandline switches. \\ The script will create 3 partitions:
 +
 +  * First partition: a small (1 MB in size) FAT partition which  is not used for Slackware Live Edition.  It can be used by an alternative bootloader if needed.  You can also store your LUKS keyfile on it to unlock a LUKS-encrypted Slackware Linux computer (see the [[http://ftp.osuosl.org/pub/slackware/slackware64-current/README_CRYPT.TXT|README_CRYPT.TXT]] file on your Slackware DVD for more information on LUKS keyfiles).
 +  * 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's free space to store anything you like.
 +
 +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, rufus, unetbootin) that claim to be able to mix several Live OS'es on a single USB stick and make them all work in a multi-boot setup, are not currently supporting liveslak.
  
 == Mounting a filesystem in an encrypted container == == Mounting a filesystem in an encrypted container ==
Line 546: Line 643:
 The fourth script: The fourth script:
  
-The "setup2hd" script enables you to install the running Live OS to the computer's local hard disk.  The "setup2hd" is a modified Slackware installer, so you will be comfortable with the process.  There is no 'SOURCE' selection because the script knows where to find the squashfs modules.  After you select the target partition(s), every active module of the Live OS variant (SLACKWARE, PLASMA5, MATE, ...) is extracted to the hard drive.  After extraction has completed, the script summarizes how many modules have been extracted.  It will also show an example command to extract any remaining inactive or disabled modules manually.  The final step in the installation is again the stock Slackware installer which kicks off the Slackware configuration scripts.+The "setup2hd" script is a modified Slackware installer, so you will be comfortable with the process.  The 'SOURCE' section offers two types of choices:  a regular Slackware network installation using a NFS, HTTP, FTP or Samba server, as well as a choice of installing the Live OS which you are running. The script knows where to find the squashfs modules, so the "Install Live OS" selection will not prompt further inputs. 
 +  * 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), every active module of the Live OS variant (SLACKWARE, KTOWN, MATE, ...) is extracted to the hard drive.  After extraction has completed, the script summarizes how many modules have been extracted.  It will also show an example command to extract any remaining inactive or disabled modules manually.  The final step in the installation is again the stock Slackware installer which kicks off the Slackware configuration scripts.
  
  
Line 635: 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 "make_slackware_live.sh" script for any Live Desktop Environment (except pure Slackware) that might profit from proprietary driver support.   * graphics/ - squashfs modules for proprietary GPU support (Nvidia) can be placed here. The module(s) will be copied to addons/ by the "make_slackware_live.sh" script for any Live Desktop Environment (except pure Slackware) that might profit from proprietary driver support.
   * local64/ , local/ - these directories can contain Slackware packages considered 'local' i.e. not belonging to any repository.  The package(s) will be converted to squashfs module(s) by the "make_slackware_live.sh" script, copied to the "addons/" subdirectory in the ISO and loaded into the Live filesystem when the OS boots.   * local64/ , local/ - these directories can contain Slackware packages considered 'local' i.e. not belonging to any repository.  The package(s) will be converted to squashfs module(s) by the "make_slackware_live.sh" script, copied to the "addons/" subdirectory in the ISO and loaded into the Live filesystem when the OS boots.
 +  * 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.  You need to pass "load=[mod]" boot parameter to load any of these.   * optional/ - squashfs modules placed in this directory will not automatically be loaded into the Live filesystem when the OS boots.  You need to pass "load=[mod]" boot parameter to load any of these.
 +  * 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 ''setup2hd'' disk installer.
   * skel/ - contains compressed tarballs (whose filenames must match wildcard "skel*.txz"). These files will be extracted to the "/etc/skel" directory in the Live filesystem.   * skel/ - contains compressed tarballs (whose filenames must match wildcard "skel*.txz"). These files will be extracted to the "/etc/skel" directory in the Live filesystem.
   * syslinux/  - contains the skeleton for boot support on BIOS computers.  Some of its files are dynamically generated by the "make_slackware_live.sh" script.   * syslinux/  - contains the skeleton for boot support on BIOS computers.  Some of its files are dynamically generated by the "make_slackware_live.sh" script.
Line 661: 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  - template to generate the script you use to install your Slackware Live to a harddisk.   * setup2hd.tpl  - template to generate the script you use to install your Slackware Live to a harddisk.
-  * setup2hd.local - here a developer of a custom Live OS can override the default post-installation routine by (re-)defining the function "live_post_install()" in the ''setup2hd'' script.+  * setup2hd.local.tpl - here a developer of a custom Live OS can override the default post-installation routine by (re-)defining the function "live_post_install()" in the ''setup2hd'' script
 +  * upslak.sh - a script which allows you to tweak the content of a USB Live stick.
  
  
Line 672: 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     SLACKWARE (full Slack), KDE4 (basic KDE4), + -c comp            Squashfs compression (default: xz). 
-                    XFCE (basic XFCE), PLASMA5 (KDE Plasma5 replaces KDE4), +                    Can be any of 'gzip lzma lzo xz zstd'
-                    MATE (Gnome2 fork replaces KDE4), CINNAMON (fork of Gnome3 + -d desktoptype     SLACKWARE (full Slack), LEAN (basic Plasma5/XFCE), 
-                    Shell replaces KDE4), DLACK (adds Gnome3, PAM and systemd).+                    DAW (Digital Audio Workstation), XFCE (basic XFCE
 +                    stripped), KTOWN (ktown Plasma5 replacement), MATE 
 +                    (Gnome2 fork replaces KDE), CINNAMON (fork of Gnome3 Shell 
 +                    replaces KDE), DLACK (Gnome3 replaces KDE).
  -e                 Use ISO boot-load-size of 32 for computers  -e                 Use ISO boot-load-size of 32 for computers
                     where the ISO won't boot otherwise (default: 4).                     where the ISO won't boot otherwise (default: 4).
  -f                 Forced re-generation of all squashfs modules,  -f                 Forced re-generation of all squashfs modules,
                     custom configurations and new initrd.img.                     custom configurations and new initrd.img.
 + -l <localization>  Enable a different default localization
 +                    (script-default is 'en').
  -m pkglst[,pkglst] Add modules defined by pkglists/<pkglst>,...  -m pkglst[,pkglst] Add modules defined by pkglists/<pkglst>,...
  -r series[,series] Refresh only one or a few package series.  -r series[,series] Refresh only one or a few package series.
  -s slackrepo_dir   Directory containing Slackware repository.  -s slackrepo_dir   Directory containing Slackware repository.
- -t <doc|mandoc>    Trim the ISO (remove man and/or doc).+ -t <none|doc|mandoc|bloat> 
 +                    Trim the ISO (remove man and/or doc and/or bloat).
  -v                 Show debug/error output.  -v                 Show debug/error output.
  -z version         Define your Slackware version (default: current).  -z version         Define your Slackware version (default: current).
 + -C                 Add RAM-based Console OS to boot menu.
  -G                 Generate ISO file from existing directory tree  -G                 Generate ISO file from existing directory tree
  -H <hostname>      Hostname of the Live OS (default: darkstar).  -H <hostname>      Hostname of the Live OS (default: darkstar).
Line 691: Line 802:
  -O <outfile>       Custom filename for the ISO.  -O <outfile>       Custom filename for the ISO.
  -R <runlevel>      Runlevel to boot into (default: 4).  -R <runlevel>      Runlevel to boot into (default: 4).
 + -S privkey:cert    Enable SecureBoot support and sign binaries
 +                    using the full path to colon-separated
 +                    private key and certificate files.
  -X                 Use xorriso instead of mkisofs/isohybrid.  -X                 Use xorriso instead of mkisofs/isohybrid.
 </code> </code>
Line 702: Line 816:
 Another example which creates a MATE variant, configuring runlevel '3' as default and specifying a custom path for the Slackware package repository root (note that the script will look for a subdirectory "slackware64-current" below this directory if you are generating this ISO for slackware64-current): Another example which creates a MATE variant, configuring runlevel '3' as default and specifying a custom path for the Slackware package repository root (note that the script will look for a subdirectory "slackware64-current" below this directory if you are generating this ISO for slackware64-current):
   # ./make_slackware_live.sh -d MATE -R 3 -s ~ftp/pub/Slackware   # ./make_slackware_live.sh -d MATE -R 3 -s ~ftp/pub/Slackware
 +
 +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 'zstd' instead of the default 'xz' and is generated using xorriso instead of mkisofs. You need to provide the full path to a SSL private key and certificate file:
 +  # ./make_slackware_live.sh -d DAW -c zstd -X -S /root/liveslak.key:/root/liveslak.pem
  
 If you want to know what package sets are included in any of these Desktop Environments, run the following command: If you want to know what package sets are included in any of these Desktop Environments, run the following command:
Line 710: Line 827:
  
  
-==== Using the Customization Feature of the Live OS ====+==== Using the Customization Features of the Live OS ==== 
  
 +=== Master configuration file ===
  
 You can create your own custom Live OS by changing its characteristics in the configuration file "''make_slackware_live.conf''". You can create your own custom Live OS by changing its characteristics in the configuration file "''make_slackware_live.conf''".
 Among the things you can change are: Among the things you can change are:
-  * The name of the Desktop variant (the script itself knows "//SLACKWARE//", "//PLASMA5//", "//XFCE//", "//MATE//", "//CINNAMON//", "//STUDIOWARE//" and  "//DLACK//"),+  * The name of the Desktop variant (the script itself knows "//SLACKWARE//", "//KTOWN//", "//DAW//", "//XFCE//", "//MATE//", "//CINNAMON//", "//STUDIOWARE//" and  "//DLACK//"),
   * 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 "//Slackware Live User//"),
   * The name of the useraccount (by default that is "//live//"),   * The name of the useraccount (by default that is "//live//"),
   * The name of the distribution (by default that is "//slackware//"),   * The name of the distribution (by default that is "//slackware//"),
Line 731: Line 851:
 # and "pkglists/cinelerra.lst" defining the package location and package list # and "pkglists/cinelerra.lst" defining the package location and package list
 # respectively): # respectively):
-#SEQ_CUSTOM="min,xbase,xapbase,xfcebase,cinelerra"+#SEQ_CUSTOM="min,noxbase,x_base,xapbase,xfcebase,cinelerra"
  
 # OPTIONAL: # OPTIONAL:
Line 764: Line 884:
 #} #}
 </code> </code>
 +
 +=== 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 ''./media/<variant>/bg/'' where "<variant>" is the lower-case name of the Live variant (variant 'KTOWN' equals directory 'ktown', 'DAW' becomes 'daw', etc).
 +
 +The "make_slackware_live.sh" script will look there for a file named either "background.jpg" or "background.png". If you want, that file can be a symlink to the actual bitmap file. The image will be converted into a set of wallpaper images of different aspect ratios and sizes. The different aspect ratios like 16:9, 16:10 and 4:3 will be achieved by cropping the images if needed, to avoid distortion. The image set will be installed as a Plasma5 wallpaper called "Slackware Live", and configured to be the default Live OS background.
 +
 +
 ==== Internals of Slackware Live Edition ==== ==== Internals of Slackware Live Edition ====
  
Line 799: Line 927:
   * The filesystem of the Live media is made available to the user of the Live OS as "/mnt/livemedia" If the media is a USB stick then you will have write access to "/mnt/livemedia".   * The filesystem of the Live media is made available to the user of the Live OS as "/mnt/livemedia" If the media is a USB stick then you will have write access to "/mnt/livemedia".
   * 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 ''/liveslak/slackware_os.cfg'') exists, its contents will be parsed.  Values of the variables defined in this file overrule any default //liveslak// or boot command-line values.
     * if you specified "swap" on the boot commandline, any available swap partition will be added to "/etc/fstab" in the Live OS.     * if you specified "swap" on the boot commandline, any available swap partition will be added to "/etc/fstab" in the Live OS.
     * if you specified a custom keyboard layout for the console (and optionally another for X) by using the "kbd" and "xkb" boot parameters then these will be confifured in "/etc/rc.d/rc.keymap" and "/etc/X11/xorg.conf.d/30-keyboard.conf" in the Live OS.     * if you specified a custom keyboard layout for the console (and optionally another for X) by using the "kbd" and "xkb" boot parameters then these will be confifured in "/etc/rc.d/rc.keymap" and "/etc/X11/xorg.conf.d/30-keyboard.conf" in the Live OS.
Line 811: 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, /sbin/init).     * 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, /sbin/init).
   * From this moment onward, you are booting a 'normal' Slackware system and the fact that this is actually running in RAM and not from your local harddisk is not noticeable.   * From this moment onward, you are booting a 'normal' Slackware system and the fact that this is actually running in RAM and not from your local harddisk is not noticeable.
 +
 +
 +=== 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.  In the case of //Slackware Live Edition// this file is called ''/liveslak/slackware_os.cfg'' - i.e. is placed in the "''liveslak''" directory of your USB drive.  For custom non-Slackware Live OS-es based on liveslak, the filename may be different.\\ This file contains one or more "VARIABLE=value" lines, where VARIABLE is one of the following variables that are used in the live init script:
 +  * BLACKLIST, KEYMAP, LIVE_HOSTNAME, LOAD, LOCALE, LUKSVOL, NOLOAD, RUNLEVEL, TWEAKS, TZ, XKB.
 +Values for the variables defined in this configuration file override the values already set via liveslak's own defaults or via boot-up command-line parameters.
 +
 +When booting your persistent //Slackware Live Edition//, the optional boot-time parameter "cfg" deals with this OS configuration file. The "cfg" parameter understands two possible argument values:
 +  * "cfg=write" will (over)write the OS configuration file to your USB drive, using the values for all of the above variables that are valid for that particular boot. So if your timezone is "''PST''" then one of the lines in that file will read "''TZ=PST''".
 +  * "cfg=skip" will skip processing of an existing "''/liveslak/slackware_os.cfg''" file.
 +
 +The OS configuration file is not present by default. You either create it at boot-time using "''cfg=write''" (which is a persistent change) or you create it manually using an ASCII text editor, after mounting the USB partition on a computer.  As an example, here is the content of "''/liveslak/slackware_os.cfg''" on my own USB stick: <code>
 +KEYMAP=nl
 +LIVE_HOSTNAME=zelazny
 +LOCALE=nl_NL.utf8
 +TWEAKS=tpb,syn
 +TZ=Europe/Amsterdam</code>
  
  
Line 825: 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 'local' package, i.e. a package found in subdirectory ./local or ./local64 (depending on architecture)     0030-0039 = a 'local' package, i.e. a package found in subdirectory ./local or ./local64 (depending on architecture)
     0099 = liveslak configuration module (contaning all the customizations that change the installed packages into a usable Live OS) </code>     0099 = liveslak configuration module (contaning all the customizations that change the installed packages into a usable Live OS) </code>
Line 879: Line 1026:
 Website: http://slackex.exton.net/ Website: http://slackex.exton.net/
  
-A website offering Live versions based on many regular Linux distributions.  The SlackEX version is loosely based on Slackware with a custom kernel and some tools that are not part of Slackware itself.  I was unable to find the sources for this live distro.+A website offering Live versions based on many regular Linux distributions.  The SlackEX version is loosely based on Slackware with a custom kernel and some tools that are not part of Slackware itself.  I was unable to find the sources for this live distro. Its creator stopped SlackEX development in December 2017.
  
  
Line 887: Line 1034:
 Slackware Live Edition is created by the 'liveslak' scripts developed and maintained by Eric Hameleers aka Alien BOB [[alien@slackware.com]]. Slackware Live Edition is created by the 'liveslak' scripts developed and maintained by Eric Hameleers aka Alien BOB [[alien@slackware.com]].
  
-  * Git repository: %%git://slackware.nl/liveslak.git%% +  * Git repository: %%git://git.liveslak.org/liveslak.git%% 
-  * Git repository (browsable): http://git.slackware.nl/liveslak/+  * Git repository (browsable): http://git.liveslak.org/liveslak/
   * Download mirror: http://www.slackware.com/~alien/liveslak/   * Download mirror: http://www.slackware.com/~alien/liveslak/
  
Line 894: 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://bear.alienbase.nl/cgit/liveslak/tree/README.txt]]+  * Original source: [[https://git.slackware.nl/liveslak/tree/README.txt]] 
 +  * Project landing page: [[https://liveslak.org/]] 
 +  * ISO downloads: [[https://download.liveslak.org/]]
 <!-- Authors are allowed to give credit to themselves! --> <!-- Authors are allowed to give credit to themselves! -->
   * Originally written by [[wiki:user:alienbob | Eric Hameleers]]   * Originally written by [[wiki:user:alienbob | Eric Hameleers]]
-<!-- * Contrbutions by [[wiki:user:yyy | User Y]] -->+<!-- * Contributions by [[wiki:user:yyy | User Y]] -->
  
 <!-- 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 "template" below. Otherwise your page will not show up in the Table of Contents --> <!-- You must also remove the tag-word "template" below. Otherwise your page will not show up in the Table of Contents -->
-{{tag>slackware live author_alienbob}}+{{tag>slackware live overlayfs squashfs author_alienbob}}
 slackware:liveslak ()