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 revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
slackware:liveslak [2016/07/08 16:01 (UTC)]
alienbob Needed to fix a header level.
slackware:liveslak [2018/11/04 13:55 (UTC)]
alienbob Updates to sync it with the git version.
Line 6: Line 6:
  
  
-Welcome to the Slackware Live Edition! ​ This is a version of Slackware-current (soon to become ​14.2), that can be run from a DVD or a USB stick. ​ It is an ISO image meant to be a showcase of what Slackware is about. ​ You get the default install, no custom packages or kernel, but with all the power. ​ The ISO is created from scratch using a Slackware package mirror, by the "​liveslak"​ scripts.+Welcome to the Slackware Live Edition! ​ This is a version of Slackware 14.2 (and newer), that can be run from a DVD or a USB stick. ​ It is an ISO image meant to be a showcase of what Slackware is about. ​ You get the default install, no custom packages or kernel, but with all the power of Slackware.  The ISO is created from scratch using a Slackware package mirror, by the "​liveslak"​ scripts.
  
-Slackware Live Edition does not have to be installed to a computer hard drive. ​ You can carry the USB stick version with you in your pocket. ​ You'll have a pre-configured Slackware OS up & running in a minute wherever you can get your hands on a computer with a USB port.+Slackware Live Edition does not have to be installed to a computer hard drive (//however you do have that choice if you want to: using the ''​setup2hd''​ script//).  You can carry the USB stick version with you in your pocket. ​ You'll have a pre-configured Slackware OS up & running in a minute wherever you can get your hands on a computer with a USB port.
  
 The USB version is "​persistent"​ - meaning that the OS stores your updates on the USB stick. ​ The CD/DVD versions (and the USB stick if you configure it accordingly) operate without persistence,​ which means that all the changes you make to the OS are lost when you reboot. The USB version is "​persistent"​ - meaning that the OS stores your updates on the USB stick. ​ The CD/DVD versions (and the USB stick if you configure it accordingly) operate without persistence,​ which means that all the changes you make to the OS are lost when you reboot.
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 2.GB ISO);+  - a complete 64bit Slackware-current Live Edition (in a 3.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 (3.GB) of Slackware64-current containing Plasma 5 instead of KDE 4, with an addition of several other packages from the alienBOB repositories:​ vlc, libreoffice,​ calibre, qbittorrent,​ ffmpeg, chromium, openjdk, veracrypt. +  -  a ISO image (4.GB) of Slackware64-current containing Plasma 5 instead of KDE 4, with an addition of several other packages from the alienBOB repositories:​ vlc, libreoffice,​ calibre, qbittorrent,​ ffmpeg, chromium, openjdk, veracrypt. 
-  - a Mate variant (1.GB) where KDE 4 has been replaced by Mate (a Gnome 2 fork);+  - a Mate variant (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 [[http://​www.studioware.org|StudioWare]] edition containing all the project'​s audio, video and photo editing software packages.
   - a //Custom// variant which you can give your own name, its own package list and custom post-install configuration.   - a //Custom// variant which you can give your own name, its own package list and custom post-install configuration.
  
Line 44: Line 46:
  
 Common download locations are: Common download locations are:
-  * Primary site: http://bear.alienbase.nl/mirrors/​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/​
Line 96: Line 98:
 Editing a Grub menu before booting it is possible by pressing the "​e"​ key.  After making your changes to the boot commandline,​ press <F10> to boot.  To discard your changes, press <​ESC>​. Editing a Grub menu before booting it is possible by pressing the "​e"​ key.  After making your changes to the boot commandline,​ press <F10> to boot.  To discard your changes, press <​ESC>​.
  
-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.
  
  
Line 104: Line 106:
 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! ​ 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>​
Line 111: Line 113:
                              or as a percentage of free space.                              or as a percentage of free space.
                              ​Examples:​ '-c 125M', '-c 1.3G', '-c 20%'.                              ​Examples:​ '-c 125M', '-c 1.3G', '-c 20%'.
 +  -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).
   -h|--help ​                 This help.   -h|--help ​                 This help.
Line 118: Line 121:
   -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.
 +  -s|--scan ​                 Scan for insertion of new USB device instead of
 +                             ​providing a devicename (using option '​-o'​).
   -u|--unattended ​           Do not ask any questions.   -u|--unattended ​           Do not ask any questions.
   -v|--verbose ​              Show verbose messages.   -v|--verbose ​              Show verbose messages.
Line 137: Line 142:
   * Create a USB Live with both the /home and the persistent data encrypted (the persistence filesystem will be 300 MB in size):   * Create a USB Live with both the /home and the persistent data encrypted (the persistence filesystem will be 300 MB in size):
     # ./​iso2usb.sh -i slackware64-live-current.iso -o /dev/sdX -c 30% -C 300M     # ./​iso2usb.sh -i slackware64-live-current.iso -o /dev/sdX -c 30% -C 300M
 +  * Refresh the system modules on a USB Live using a Live ISO as the source. ​ Let the script scan for insertion of a USB stick instead of specifying the device name on the commandline. ​ Note that the addons and optional modules will not be touched by this action:
 +    # ./​iso2usb.sh -i slackware64-live-current.iso -r -s
  
 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.
 +
 +==== Updating the kernel (and more) on a USB stick ====
 +
 +
 +A script is available which allows you to tweak the content of a USB Live stick.
 +
 +Specifically,​ the script is able to:
 +  * Upgrade the kernel and modules, making a backup of the old kernel and modules.
 +  * Restore the backed-up kernel and modules if the new kernel is not working.
 +  * Add network support modules for PXE boot (if missing).
 +  * Increase (or decrease) USB wait time during boot.
 +  * Replace the Live init script inside the initrd image with a new script that you supply.
 +  * Move current persistence data to a new squashfs module in '​addons'​ afther which the persistence store will be re-initialized. ​ The new module'​s name is time-stamped (/​liveslak/​addons/​0099-slackware__customchanges-yymmddHHMMSS.sxz) so that this action can be repeated many times.
 +
 +The script is meant to be used while you are running Slackare Live from that same USB stick but this is not mandatory. With the exception of the '​-p'​ option which moves the persistence data into a squashfs module, its functions can be used on any Linux computer where you can insert the USB stick. ​
 +
 +Before making any modifications,​ the script will show you a prompt at which point you can evaluate whether it is safe to continue.
 +
 +This script, called '​upslak.sh',​ accepts the following parameters: <​code>​
 +  -b|--nobackup ​             Do not try to backup original kernel and modules.
 +  -d|--devices ​              List removable devices on this computer.
 +  -h|--help ​                 This help.
 +  -i|--init <​filename> ​      ​Replacement init script.
 +  -k|--kernel <​filename> ​    The kernel file (or package).
 +  -m|--kmoddir <​name> ​       The kernel modules directory (or package).
 +  -n|--netsupport ​           Add network boot support if not yet present.
 +  -o|--outdev <​filename> ​    The device name of your USB drive.
 +  -p|--persistence ​          Move persistent data into new Live module.
 +  -r|--restore ​              ​Restore previous kernel and modules.
 +  -s|--scan ​                 Scan for insertion of new USB device instead of
 +                             ​providing a devicename (using option '​-o'​).
 +  -v|--verbose ​              Show verbose messages.
 +  -w|--wait<​number> ​         Add <​number>​ seconds wait time to initialize USB.
 +</​code>​
 +Examples:
 +
 +  * Get a listing of all available removable devices on the computer:
 +    # ./upslak.sh -d
 +  * Updating kernel and modules, providing two packages as input and assuming the USB stick is known as /dev/sdX:
 +    # ./upslak.sh -o /dev/sdX -m kernel-modules-4.19.0-x86_64-1.txz -k kernel-generic-4.19.0-x86_64-1.txz
 +  * Restore the previous kernel and modules after a failed update, and let the script scan your computer for the insertion of your USB stick:
 +    # ./upslak.sh -s -r
 +  * Replace the Live init script with the latest template taken from the git repository:
 +    # ./upslak.sh -o /dev/sdX -i liveslak/​liveinit.tpl
  
  
Line 207: Line 258:
 kbd=fr xkb=ch,fr => kbd=fr xkb=ch,fr =>
   Example of custom X keyboard layout.   Example of custom X keyboard layout.
 +  The parameter xkb can be set to "​XkbLayout,​XkbVariant,​XkbOptions"​.
   The boot menus will configure some of these for you but you can   The boot menus will configure some of these for you but you can
   of course always modify the values.   of course always modify the values.
 +  Note that the optional XkbOptions can be several comma-separated values.
 +  The XkbLayout and XkbVariant values must not contain commas.
 +  You can set just the XkbVariant by adding something like "​kbd=ch xkb=,​fr"​
    
 livepw="​somestring"​ => livepw="​somestring"​ =>
Line 265: Line 320:
   Implemented tweaks:   Implemented tweaks:
   nga - no glamor 2D acceleration,​ avoids error "​EGL_MESA_drm_image required"​.   nga - no glamor 2D acceleration,​ avoids error "​EGL_MESA_drm_image required"​.
 +  nsh - no 'new style' sub-pixel hinting in freetype.
   tpb - enable TrackPoint scrolling while holding down middle mouse button.   tpb - enable TrackPoint scrolling while holding down middle mouse button.
   syn - start the syndaemon for better support of Synaptics touchpads.   syn - start the syndaemon for better support of Synaptics touchpads.
Line 282: Line 338:
  
 === 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.
  
 hostname=your_custom_hostname[,​qualifier] => hostname=your_custom_hostname[,​qualifier] =>
Line 296: Line 357:
   Use this if you want to   Use this if you want to
   load the live OS from an ISO file on a local harddisk partition.   load the live OS from an ISO file on a local harddisk partition.
 +
 +livemedia=scandev:/​path/​to/​live.iso =>
 +  Use this if liveslak should
 +  scan all device partitions to locate the ISO file.
  
 livemain=directoryname => livemain=directoryname =>
Line 335: Line 400:
   During init, pause at strategic locations while   During init, pause at strategic locations while
   assembling the overlay filesystem and show mount information.   assembling the overlay filesystem and show mount information.
 +
 +debug=<​number>​ =>
 +  '​2'​ enables verbose script execution;
 +  '​4'​ dumps you into a debug shell right before the switch_root.
  
 rescue => rescue =>
Line 355: Line 424:
   * The boot/ directory contains the syslinux configuration used when the Live OS boots on a computer with a BIOS.  This directory also contains the kernel and initrd files which are used to actually boot the OS.   * The boot/ directory contains the syslinux configuration used when the Live OS boots on a computer with a BIOS.  This directory also contains the kernel and initrd files which are used to actually boot the OS.
   * The liveslak/ directory contains all the squashfs modules which are used to assemble the filesystem of the Live OS, as well as files that are copied directly into the root of the Live filesystem. ​ It contains four subdirectories:​   * The liveslak/ directory contains all the squashfs modules which are used to assemble the filesystem of the Live OS, as well as files that are copied directly into the root of the Live filesystem. ​ It contains four subdirectories:​
-    * addons/ - modules which are stored in this directory will always be added the Live filesystem unless you prevent that with a "​noload="​ boot parameter;+    * addons/ - modules which are stored in this directory will always be added to the Live filesystem unless you prevent that with a "​noload="​ boot parameter;
     * optional/ - modules in this directory will not be added to the filesystem of the Live OS unless you force this with a "​load="​ boot parameter;     * optional/ - modules in this directory will not be added to the filesystem of the Live OS unless you force this with a "​load="​ boot parameter;
     * system/ - this directory contains all the modules which were created by the "​make_slackware_live.sh"​ script. ​ All these modules are numbered and the Live init script will use that to re-assemble the Live filesystem in the exact same order as they were created initially.     * system/ - this directory contains all the modules which were created by the "​make_slackware_live.sh"​ script. ​ All these modules are numbered and the Live init script will use that to re-assemble the Live filesystem in the exact same order as they were created initially.
Line 384: Line 453:
  
   * 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 403: Line 472:
     * an initial environment for the accounts is configured,     * an initial environment for the accounts is configured,
     * the desktop environment is pre-configured for first use,     * the desktop environment is pre-configured for first use,
-    * the liveslak scripts "​makemod" ​and "​iso2usb.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,​     * 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,​
     * slackpkg is configured,     * slackpkg is configured,
     * a locate database is created,     * a locate database is created,
     * etc...     * etc...
-  * All these modifications are written to the writable filesystem that was created in the previous section. This filesystem will also be stored on the ISO as a squashfs module and when the Live OS boots, it will be mounted read-only just like all the other modules. Its name will be "​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 439: Line 508:
  
 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 483: Line 562:
  
 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 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.
- 
- 
  
  
Line 513: Line 590:
 </​code>​ Which shows that the configuration of the Live OS where the PXE server runs is largely determining the configuration of the PXE clients. </​code>​ Which shows that the configuration of the Live OS where the PXE server runs is largely determining the configuration of the PXE clients.
   * Note that when networkbooting,​ the hostname of the Live OS will be suffixed with the machine'​s MAC address to make the hostname of every network-booted computer unique.   * Note that when networkbooting,​ the hostname of the Live OS will be suffixed with the machine'​s MAC address to make the hostname of every network-booted computer unique.
 +
 +
 +=== upslak.sh ===
 +
 +
 +The sixth script:
 +
 +The "​upslak.sh"​ script'​s runtime usage is explained in detail in a previous paragraph "​Updating the kernel (and more) on a 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 content of the initrd image. Some characteristics of the initrd will be recorded:
 +  * existence of previously backed-up kernel modules is checked,
 +  * template variables and their values are obtained from the init sctript,
 +  * the current USB wait time is checked.
 +Depending on the parameters passed to the script, it will then perform one or more of the following actions:
 +
 +== Update the kernel and moules ==
 +
 +You can provide a new kernel and its modules in two ways.  The '​-k'​ option accepts a kernel image file or else a Slackware package contaning a kernel. ​ The '​-m'​ option accepts a directory tree of modules below "/​lib/​modules/,​ or else a Slackware package containing kernel modules.
 +If there is sufficient space on the Linux and EFI partitions, the script will make a backup of the current kernel and modules by renaming the kernel and the module directory with a "​.prev"​ suffix. ​ Sufficient space means that at least 10 MB of free space must remain on the partition(s) after making the backup and installing the new kernel plus modules. If space is an issue, you can skip making a backup by providing the '​-b'​ parameter to the script (a possibly unsafe choice).
 +
 +== Restore backed-up kernel and modules ==
 +
 +If a backup was made of kernel and modules, the upslak.sh script is able to restore these using the '​-r'​ option, thereby removing the replacements. ​ This comes in handy when the replacement kernel turns out to be non-functional.
 +
 +== Add network support modules ==
 +
 +This should normally not be needed. ​ By default, all liveslak ISO images have network support built-in. ​ But customized Live ISO images may be shipped without network support initially. ​ If you want your Live OS to be PXE-bootable you need network support in the kernel. ​ Use the '​-n'​ option.
 +
 +== Increase (or decrease) USB wait time ==
 +
 +Similar to the functionality of the "​iso2usb.sh"​ script, the "​upslak.sh"​ script is able to alter the USB wait time at boot using the '​-w'​ option.
 +
 +== 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 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 ==
 +
 +Persistence data will accumulate over time on the USB stick. ​ That is perfectly OK, and you can wipe it on boot if that is needed. ​ But sometimes you want to capture the packages you installed into the persistent storage, and create a new squashfs module out of them.  The "​upslak.sh"​ script is able to move your persistence data into a new squashfs module using the '​-p'​ option. ​ The new module will be created in the "/​liveslak/​addons/"​ directory so that it will be loaded into the Live OS everytime your USB Live boots up.  After creating the new module, the persistence store will be re-initialized (i.e. its content will be erased on the next boot). ​ The new module'​s name is time-stamped (/​liveslak/​addons/​0099-slackware_customchanges-yyyymmddHHMMSS.sxz where yyyymmddHHMMSS is the timestamp) so that this action can be repeated as many times as you want.
  
  
Line 518: Line 636:
  
  
-Creating an ISO image of Slackware Live Edition requires that you are running Slackware 14.2 (64-bit). ​ Older releases of Slackware have a kernel that is too old to support liveslak'​s use of the "​overlayfs"​ kernel functionality,​ and are lacking the squashfs tools. ​ Likewise, a Slackware Live Edition can only be created for Slackware 14.2 or newer.+Creating an ISO image of Slackware Live Edition requires that you are running Slackware 14.2 or newer (64-bit). ​ Older releases of Slackware have a kernel that is too old to support liveslak'​s use of the "​overlayfs"​ kernel functionality,​ and are lacking the squashfs tools. ​ Likewise, a Slackware Live Edition can only be created for Slackware 14.2 or newer.
  
-You also need the "​liveslak"​ script collection which can be downloaded from any of the links at the bottom of this page.+You also need the "​liveslak"​ script collection which can be downloaded from any of the [[#​liveslak_sources|links at the bottom of this page]].
  
-Liveslak is a directory tree containing scripts, bitmaps and configuration files. ​ Only scripts are meant to be run by you, the user.  These scripts ("​make_slackware_live.sh",​ "​iso2usb.sh",​ "​makemod",​ "​setup2hd" ​and "​pxeserver"​) are explained in more detail in the section "​Scripts and tools" higher up.  When creating a Live ISO from scratch, you only need to run the "​make_slackware_live.sh"​ script.+Liveslak is a directory tree containing scripts, bitmaps and configuration files. ​ Only scripts are meant to be run by you, the user.  These scripts ("​make_slackware_live.sh",​ "​iso2usb.sh",​ "​makemod",​ "​setup2hd"​"​pxeserver" and "​upslak.sh") are explained in more detail in the section "[[#​scripts_and_tools|Scripts and tools]]" higher up.  When creating a Live ISO from scratch, you only need to run the "​make_slackware_live.sh"​ script.
  
  
Line 551: Line 669:
     * 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 569: Line 687:
  -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 (full Plasma5 replaces KDE4),+                    XFCE (basic XFCE), PLASMA5 (KDE Plasma5 replaces KDE4),
                     MATE (Gnome2 fork replaces KDE4), CINNAMON (fork of Gnome3                     MATE (Gnome2 fork replaces KDE4), CINNAMON (fork of Gnome3
-                    Shell replaces KDE4).+                    Shell replaces KDE4), DLACK (adds Gnome3, PAM and systemd).
  ​-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 583: Line 705:
  ​-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).
 + ​-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).
 + ​-M ​                Add multilib (x86_64 only).
  -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).
Line 590: Line 714:
 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. ​ Any packages 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 610: Line 734:
 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//" ​and "//​CINNAMON//"​),​+  * The name of the Desktop variant (the script itself knows "//​SLACKWARE//",​ "//​PLASMA5//",​ "//​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 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//"​),​
   * And finally you can define a function "''​custom_config()''"​ where you can add all your costom post-installation steps that are not covered in the "''​make_slackware_live.sh''"​ script itself.   * And finally you can define a function "''​custom_config()''"​ where you can add all your costom post-installation steps that are not covered in the "''​make_slackware_live.sh''"​ script itself.
Line 625: Line 750:
 # 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: 
 +# Use something else than the name "​min",​ 
 +# for the package list containing the generic kernel: 
 +#​MINLIST="​min"
  
 # OPTIONAL: # OPTIONAL:
 # Your custom distro name (will reflect in boot screen & filenames): # Your custom distro name (will reflect in boot screen & filenames):
 #​DISTRO="​cinelerra"​ #​DISTRO="​cinelerra"​
 +
 +#OPTIONAL:
 +# Name of the '​live'​ user account in the Live image:
 +#​LIVEUID="​live"​
  
 # OPTIONAL: # OPTIONAL:
Line 710: Line 844:
     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 730: Line 864:
 Website: https://​www.slax.org/​ Website: https://​www.slax.org/​
  
-SLAX was the original Live variant of Slackware. ​ The linux-live scripts which are used to create a SLAX ISO were generalized so that they can create a Live version of any OS that is already installed to a harddrive. ​ SLAX development stalled a couple of years ago but its creator seems to have warmed up recently.+SLAX was the original Live variant of Slackware. ​ The linux-live scripts which are used to create a SLAX ISO were generalized so that they can create a Live version of any OS that is already installed to a harddrive. ​ SLAX development stalled a couple of years ago. \\ In 2017 a new release of SLAX became available, however Slackware is no longer ​its parent OS. New SLAX releases are based on Debian.
  
 The Live functionality of SLAX is based on aufs and unionfs which requires a custom-built kernel with aufs support compiled-in. ​ It is small and has its boot scripts tweaked for startup speed. The Live functionality of SLAX is based on aufs and unionfs which requires a custom-built kernel with aufs support compiled-in. ​ It is small and has its boot scripts tweaked for startup speed.
Line 738: Line 872:
  
  
-Website: http://ww.porteus.org/​+Website: http://www.porteus.org/​
  
 Porteus was created as a fork of SLAX by the SLAX community when the development of SLAX seemed to have ended. ​ Porteus has an active user community where it's "all about the modules"​. ​ The use of aufs instead of overlayfs allows Porteus (like SLAX) to add and remove squashfs modules in the running Live system on the fly, which sparked the development of a lot of community modules. ​ It looks like the next generation of Porteus will be based on Arch Linux instead of Slackware: this has to do with the original Porteus developer leaving the team. Porteus was created as a fork of SLAX by the SLAX community when the development of SLAX seemed to have ended. ​ Porteus has an active user community where it's "all about the modules"​. ​ The use of aufs instead of overlayfs allows Porteus (like SLAX) to add and remove squashfs modules in the running Live system on the fly, which sparked the development of a lot of community modules. ​ It looks like the next generation of Porteus will be based on Arch Linux instead of Slackware: this has to do with the original Porteus developer leaving the team.
Line 764: Line 898:
 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 772: Line 906:
 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 779: Line 913:
 ====== 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: [[http://git.alienbase.nl/​liveslak/​tree/​README.txt]]
 <!-- 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]]

In Other Languages
QR Code
QR Code slackware:liveslak (generated for current page)