[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 [2017/12/26 12:49 (UTC)] – [Other Slackware based Live distros] Layout fix. alienbobslackware:liveslak [2020/10/05 15:27 (UTC)] – Some updates. alienbob
Line 46: Line 46:
  
 Common download locations are: Common download locations are:
-  * Primary site: http://bear.alienbase.nl/mirrors/slackware-live/ (%%rsync://bear.alienbase.nl/mirrors/slackware-live/%%)+  * Primary site: http://slackware.nl/slackware-live/ (%%rsync://slackware.nl/mirrors/slackware-live/%%)
   * 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/people/alien-slacklive/%%)
   * 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 106: 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's parameters. A script is available which allows you to transfer the ISO image content to a USB stick, making some modifications depending on the script's parameters.
  
-The USB stick will be erased and re-formatted when running this script (except when using the '-r' refresh optoin)!  Before inflicting any irreversible damage, the script will show you a prompt at which point you can evaluate whether it is safe to continue.+The USB stick will be erased and re-formatted when running this script (except when using the '-r' refresh option)!  Before inflicting any irreversible damage, the script will show you a prompt at which point you can evaluate whether it is safe to continue.
  
 This script, called 'iso2usb.sh', accepts the following parameters: <code> This script, called 'iso2usb.sh', accepts the following parameters: <code>
   -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 129: Line 129:
                              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 148:
  
 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 with the exception of the XFCE variant contain a script "setup2hd", a tweaked version of the regular Slackware setup program.\\ The "setup2hd" script 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.
 +
  
 ==== Updating the kernel (and more) on a USB stick ==== ==== Updating the kernel (and more) on a USB stick ====
Line 185: Line 194:
     # ./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 347:
  
 === 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 382: Line 399:
  
 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=os =>
 +  Load OS modules into RAM, but write persistent data to USB.
  
 === Troubleshooting === === Troubleshooting ===
Line 448: Line 472:
  
   * 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 472: Line 496:
     * 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 "0099-slackware_zzzconf-current-x86_64.sxz" or more generically "0099-slackware_zzzconf-$SLACKVERSION}-${ARCH}.sxz"+  * 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 "0099-slackware_zzzconf-current-x86_64.sxz" or more generically "0099-slackware_zzzconf-${SLACKVERSION}-${ARCH}.sxz"
  
  
Line 503: Line 527:
  
 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 580:
 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.  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.
  
  
Line 586: Line 620:
 This section explains how the script modifies the content of the Live USB stick. 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 comtent of the initrd image. Some characteristics of the initrd will be recorded:+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,   * existence of previously backed-up kernel modules is checked,
   * template variables and their values are obtained from the init sctript,   * template variables and their values are obtained from the init sctript,
Line 611: Line 645:
 == Replace the liveslak init script == == Replace the liveslak init script ==
  
-The init script inside the initrd image is the core of liveslak.  The init script prepares the Live filesystem and configures several run-time OS parameters.  If you have made modifications to this init script you can easily replace the default init script with yourw own script using the '-i' option.  The "upslak.sh" script is smart enough to recognize a iveslak template as input.  The ".tpl" extension of some liveslak files means that these are templates.  They are not usable as-is, because they contain placeholder strings like "@VERSION@ or "@DISTRO@" that first need to be replaced with real values.  The "upslak.sh" script will take care of these substitutions.+The init script inside the initrd image is the core of liveslak.  The init script prepares the Live filesystem and configures several run-time OS parameters.  If you have made modifications to this init script you can easily replace the default init script with your own script using the '-i' option.  The "upslak.sh" script is smart enough to recognize a iveslak template as input.  The ".tpl" extension of some liveslak files means that these are templates.  They are not usable as-is, because they contain placeholder strings like "@VERSION@or "@DISTRO@" that first need to be replaced with real values.  The "upslak.sh" script will take care of these substitutions.
  
 == Wrap persistence data into a new squashfs module == == Wrap persistence data into a new squashfs module ==
Line 654: Line 688:
     * 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 "init" script which is copied into the initrd image for the Live OS.  Together with the Slackware generic kernel, the initrd is what boots the computer. The "init" script assembles the Live filesystem from its squashfs modules.+  * liveinit.tpl - this is the template for the "init" script which is copied into the initrd image for the Live OS.  Together with the Slackware generic kernel, the initrd is what boots the computer. The "init" script assembles the Live filesystem from its squashfs modules.
   * make_slackware_live.conf - the configuration file for the "make_slackware_live.sh" script.  You can define defaults for many script parameters here so that you do not have to edit the script itself.   * make_slackware_live.conf - the configuration file for the "make_slackware_live.sh" script.  You can define defaults for many script parameters here so that you do not have to edit the script itself.
   * 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 the script that starts a PXE server allowing other computers to boot Slackware Live over the network. 
-  * setup2hd - 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 - 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.
  
Line 672: Line 706:
  -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     SLACKWARE (full Slack), KDE4 (basic KDE4),  -d desktoptype     SLACKWARE (full Slack), KDE4 (basic KDE4),
                     XFCE (basic XFCE), PLASMA5 (KDE 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).
  -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 'us').
  -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.
Line 695: Line 733:
 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).  //A local mirror of the Slackware repository is mandatory - you have to download these yourself// Any other packages, i.e. those that are used from a 3rd party repository will be downloaded from a remote server as long as a rsync URL for the repository is configured in ./pkglists/*.conf.+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).  If you have not mirrored them locally, then all packages of the Slackware repository as well as those you require from  a 3rd party repository will be downloaded from a remote server as long as a rsync URL for the repository is configured in ./pkglists/*.conf.
  
 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 731: Line 769:
 # 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 825: Line 863:
     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 917:
 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 925:
 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://bear.alienbase.nl/liveslak.git%% +  * Git repository: %%git://slackware.nl/liveslak.git%% 
-  * Git repository (browsable): http://bear.alienbase.nl/cgit/liveslak/+  * Git repository (browsable): http://git.slackware.nl/liveslak/
   * Download mirror: http://www.slackware.com/~alien/liveslak/   * Download mirror: http://www.slackware.com/~alien/liveslak/
  
Line 894: Line 932:
 ====== 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://alien.slackbook.org/blog/slackware-live-edition/]]
 <!-- 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 author_alienbob}}
 slackware:liveslak ()