| Commit message (Expand) | Author | Age | Files | Lines |
* | liveinit: fix a missing '/'...This was changed in commit dd0327d77f2741474245ecd3026cf66e55581733 when
adding full Ventoy support but I had not thought through all the consequences.
| Eric Hameleers | 2022-09-14 | 1 | -1/+1 |
* | Full support for Ventoy; encrypted OS persistence/homedirectory for ISO boot...New features:
Ventoy is now fully supported.
Liveslak implements the "Ventoy-compatible" guideline. There is nothing you
have to do, this works out of the box.
When you are booting from an ISO file (whether via Ventoy, or through your own
hand-crafted Grub menu entry, or Windows BCD), Operating System persistence
and an encrypted homedirectory are now supported, as well as the ability
to load additional live modules (as 'addons' or 'optional') that are not
part of the ISO.
All of this is possible without the need for any modification to the ISO image.
The configuration is stored in a file next to the ISO.
A new script, "isocomp.sh" aka the ISO Companion script, has been added.
Like with all of my scripts, it accepts a "--help" parameter which will
show you how to use it.
This script allows you to:
- create encrypted containers for OS persistence and a persistent homedirectory
(actually not just for /home but you can create as many containers as
fit on the disk and mount them wherever you want)
- size extension of existing encrypted containers if they threaten to run
out of space
- creating a secondary liveslak root on the disk partition where you can
add more (optional/add-on) live modules that you need in the Live OS
but are not contained in the ISO
The configuration of these new features is stored in a file with the same
name and full path as the ISO file but with a ".cfg" file extension instead
of ".iso". The "isocomp.sh" script manages this configuration file for you,
but you can safely edit and modify it manually if you want to. The "isocomp.sh"
script will leave your customizations alone.
Here is an example of such a configuration file; it is copied from
my own Ventoy disk, for a Slackware LEAN Live ISO image:
LIVESLAKROOT=/liveslak
LUKSVOL=/liveslak/myhome.icc:/home
ISOPERSISTENCE=/liveslak/persistence.icc
TZ=Europe/Amsterdam
LIVE_HOSTNAME=zelazny
I added the variables "TZ" and "LIVE_HOSTNAME" manually by opening the
configuration file in an editor.
The following variables are supported in the isocomp configuration file,
but not managed by "isocomp.sh"; they all correspond to liveslak
boot parameters by the way:
BLACKLIST, KEYMAP, LIVE_HOSTNAME, LOAD, LOCALE,
NOLOAD, RUNLEVEL, TWEAKS, TZ and XKB.
The value of the "LUKSVOL" variable can hold multiple
"containerfile:mountpoint" definitions, separated by commas.
The variable "LIVESLAKROOT" defines the root of a secondary liveslak
directory tree on your disk.
| Eric Hameleers | 2022-08-15 | 1 | -49/+227 |
* | liveinit: define the omitted CPATHINTERNAL variable | Eric Hameleers | 2022-08-14 | 1 | -0/+6 |
* | liveinit: explain debug= boot parameter values in more detail | Eric Hameleers | 2022-08-14 | 1 | -3/+5 |
* | liveinit: LUKS volumes need to be mounted before we write to the overlay | Eric Hameleers | 2022-08-12 | 1 | -36/+36 |
* | liveinit: require debug=5 to save init debug output to file | Eric Hameleers | 2022-08-12 | 1 | -2/+3 |
* | liveinit: use 'persistence' instead of ${PERSISTENCE} here...Because the used $PERSISTENCE value can have a pathname component,
and the custom naming does not add value anyway.
| Eric Hameleers | 2022-08-02 | 1 | -2/+2 |
* | liveinit: some prettifying of comments...Helps visually dividing the script in sections
| Eric Hameleers | 2022-08-02 | 1 | -6/+14 |
* | liveinit: fix a logic error...Parameter values should only be set from ${DISTRO}_os.cfg if they have
not already been dedfined by commandline parameters.
| Eric Hameleers | 2022-08-02 | 1 | -1/+1 |
* | live init: optionally specify RAM % to use in the 'toram' parameter...toram=
Generic syntax: toram=type[,memperc]
- type: string value; os,core,all,none
- memperc: integer value, percentage RAM to reserve for liveslak
You can use a 'memperc' value for the 'toram' parameter to change
the percentage RAM used by liveslak, which is 50% of all available RAM
for normal operation.
For instance when you have 128 GB of RAM, you can specify a much lower
percentage to be reserved for liveslak. RAM will specifically be used
if you run liveslak without persistence, which means that any changes are
accumulating in RAM instead of on-disk.
Example:
Give liveslak ~6 GB (5%) to run the OS on a computer with 128 GB of RAM:
'toram=none,5'
| Eric Hameleers | 2022-08-02 | 1 | -5/+21 |
* | liveinit: start ash bash-compatible and save init debug output to file...When the value of 'debug' parameter is equal to or greater than '2',
the init script enables 'set -x' which results in verbose output of
init script execution. When the 'ash' shell is started as '/bin/sh' instead
of '/bin/ash', it enables bash-compatible mode. Then the script can use
'BASH_XTRACEFD' to log the verbose script output to a file '/debug_init.log'.
This is extremely useful for init debugging. Logging to file is enabled when
the value of 'debug' is '4' or higher.
When you boot with 'debug=4, you will end up in the rescue shell of the initrd.
You can then inspect '/debug_init.log' to diagnose issues with the boot-up,
and you can copy that logfile for instance to /mnt/overlay/root/ if you want
to preserve it. After typing 'exit', the live init will hand-over to
the Slackware OS initialization and after logging in you can copy the logfile
to a network location if you want.
| Eric Hameleers | 2022-08-02 | 1 | -2/+12 |
* | liveinit: add support for ISO boot under Ventoy USB boot manager | Eric Hameleers | 2022-07-13 | 1 | -2/+21 |
* | On boot, inform user about the amount of seconds of rootdelay | Eric Hameleers | 2022-07-13 | 1 | -0/+1 |
* | Update copyright years in iso2usb.sh, liveinit.tpl, upslak.sh | Eric Hameleers | 2022-07-13 | 1 | -1/+1 |
* | liveinit: remount live media read-only when running from RAM...This so that the live medium can be ejected after booting.
| Eric Hameleers | 2022-05-14 | 1 | -0/+2 |
* | init: show message when loading Core OS into RAM | Eric Hameleers | 2021-12-20 | 1 | -0/+1 |
* | liveinit.tpl: add support for persistence on local non-live harddisks...The syntax for the 'persistence' boot parameter has been extended.
The persistence directory/container no longer needs to be in the root
of the filesystem; you can specify an absolute path.
Additionally, you can specify the partition containing the filesystem
on which the persistence is located, or simply specify 'scandev',
to request that liveslak tries to find the partition for you:
persistence=/dev/sdX:/path/to/mypersistence
persistence=scandev:/path/to/mypersistence
In addition, a UUID or LABEL value of the filesystem will be accepted:
persistence=cd68b6f5-5b5a-4d27-9649-7827489f94a5:/path/to/mypersistence
This functionality will be useful if you need the persistence directory
or container to be located somewhere else than on the Live USB stick,
for instance on a local hard disk partition.
Useful for network (PXE) boot because the overlayfs does not support a
writable upper layer of your live filesystem over NFS. If you still want
to offer persistence to users of PXE-booted Slackware Live, you can now
use the local harddisk partitions or a local USB stick for persistence.
| Eric Hameleers | 2021-10-26 | 1 | -35/+160 |
* | Allow for empty password for the live and root accounts | Eric Hameleers | 2021-09-08 | 1 | -2/+15 |
* | liveinit.tpl: add mount options also found in Slackware's own init | Eric Hameleers | 2021-05-05 | 1 | -2/+2 |
* | Change domain 'example.net' to 'home.arpa' following RFC8375...Excerpt from RFC 8375 (https://tools.ietf.org/html/rfc8375):
Users and devices within a home network (hereafter referred to as
"homenet") require devices and services to be identified by names
that are unique within the boundaries of the homenet [RFC7368]. The
naming mechanism needs to function without configuration from the
user. While it may be possible for a name to be delegated by an ISP,
homenets must also function in the absence of such a delegation.
This document reserves the name 'home.arpa.' to serve as the default
name for this purpose, with a scope limited to each individual
homenet.
| Eric Hameleers | 2021-03-06 | 1 | -1/+1 |
* | Implement a small Console OS - a rescue environment in RAM...This uses two squashfs modules that are currently only found in the
LEAN and XFCE images: 'min' and 'noxbase'.
These two provide a functional console-only Slackware with a lot of useful
programs. It will connect to a DHCP server automatically and it also
contains the 'setup2hd' script to be able to install Slackware from a network
mirror.
And since the Console OS gets loaded into RAM, you can remove your USB stick
after booting and use that stick for other purposes.
Use-case:
- You have one computer with a network connection and one USB stick, and want
to create a persistent Slackware Live on USB.
- Download an ISO supporting 'Console OS' to the computer's hard drive, and
transfer the ISO to the USB stick using the computer's ISO imaging tools,
making the stick bootable but not persistent.
- Boot from the USB stick, select the "Console OS in RAM" option.
- After you logged into the Console Slackware, mount the computer's hard drive.
- Use the 'iso2usb.sh' script that comes with liveslak to extract the ISO
content to the USB stick, making it persistent. See the README.txt for
instructions.
-----------------------------------------------------------------------------
Implemented as an extension of the liveslak 'toram' boot parameter.
Adding 'toram=core' to the boot commandline will load circa 500 MB of squashfs
modules into RAM and boot into a sparse but functional console environment.
For supported Live variants (currently LEAN and XFCE) the script
'make_slackware_live.sh' will automatically add a menu item "Console OS in RAM"
to the Syslinux and Grub bootloaders, using this 'toram=core' parameter.
TODO: add this as an option to all liveslak variants. Not so trivial to do.
1.3.9 | Eric Hameleers | 2021-01-12 | 1 | -26/+58 |
* | liveinit: avoid an error visible during boot | Eric Hameleers | 2021-01-12 | 1 | -1/+2 |
* | Fix /etc/localtime file, needs to be a symlink | Eric Hameleers | 2021-01-06 | 1 | -3/+2 |
* | liveinit: fix a chown command | Eric Hameleers | 2020-12-28 | 1 | -1/+1 |
* | liveinit: cosmetics | Eric Hameleers | 2020-09-05 | 1 | -1/+1 |
* | Expand the capabilities of the 'toram' boot parameter...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.
| Eric Hameleers | 2020-09-05 | 1 | -4/+17 |
* | Allow a custom domain name for the live host...New boot parameter: "domain=your_custom_domain",
The domain component defaults to 'example.net'.
| Eric Hameleers | 2020-09-05 | 1 | -2/+16 |
* | liveinit: the chown in busybox does not understand '--reference' | Eric Hameleers | 2020-06-16 | 1 | -1/+1 |
* | liveinit: give .Xresources file the correct ownership | Eric Hameleers | 2020-05-12 | 1 | -0/+1 |
* | Make "load=nvidia" work...Using a squashfs module created from nvidia-kernel and nvidia-driver packages.
A sample script for creating this nvidia module was added to liveslak, see:
./contrib/scripts/makemod_nvidia.
These two packages were created using the scripts from slackbuilds.org:
https://slackbuilds.org/repository/14.2/system/nvidia-kernel/
https://slackbuilds.org/repository/14.2/system/nvidia-driver/
Note that the nvidia-driver package was created on a multilib system so that
it could pick up 32bit compat libraries (needed for Steam among others),
and the CURRENT variable was set to 'yes' so that the nvidia drivers are
fully separated from mesa and xorg-server and do not overwrite system libraries:
# COMPAT32="yes" CURRENT="yes" ./nvidia-driver.SlackBuild
| Eric Hameleers | 2020-04-30 | 1 | -0/+8 |
* | Correctly read OS configuration from disk file if present...Liveslak can optionally load a OS config file "@DISTRO@_os.cfg" from within
the 'livemain' directory on the boot medium, which contains "VARIABLE=value"
lines, where VARIABLE is one of the following variables:
BLACKLIST, KEYMAP, LIVE_HOSTNAME, LOAD, LOCALE, LUKSVOL,
NOLOAD, RUNLEVEL, TWEAKS, TZ, XKB.
During boot, any variable from that file will be set in the boot environment
if it has not yet been defined in the init script.
You can prevent this behaviour by adding 'cfg=skip' to the boot commandline.
| Eric Hameleers | 2020-03-31 | 1 | -2/+2 |
* | liveinit.tpl: cleanup some code...These lines became obsolete with Linux kernel 2.6 (Slackware >= 11)
when the kernel module extension changed from .o to .ko.
| Eric Hameleers | 2019-11-02 | 1 | -8/+0 |
* | liveinit.tpl: explicitly tell udevadm to add newly detected hardware...The default for 'udevadm trigger' is 'change', not 'add', so the scriptline
basically did nothing. This prevented some network devices from getting
initialized because their subsystem is 'pci' and not 'net'.
Thanks to Kanaya for debugging this with his Nvidia MCP51 ethernet device.
| Eric Hameleers | 2019-11-02 | 1 | -1/+1 |
* | liveinit: correctly scan partitions and block devices...Do not make assumptions about how partitions and block devices are named.
but check the OS instead (in /sys/block and /sys/class/block).
| Eric Hameleers | 2019-05-11 | 1 | -7/+37 |
* | Fix PXE boot. Fix pxeserver. Add support for PXE-booting UEFI-based PC's...Note that UEFI PXE-boot is not yet working, I do not know why.
| Eric Hameleers | 2019-02-15 | 1 | -10/+23 |
* | Quell the noise generated by dhcpcd on boot | Eric Hameleers | 2019-01-23 | 1 | -2/+2 |
* | liveinit: add debug pause for PXE network configuration | Eric Hameleers | 2019-01-22 | 1 | -0/+4 |
* | liveinit: mention on-screen that eth0 is fallback for failed nic detection | Eric Hameleers | 2019-01-22 | 1 | -1/+1 |
* | liveinit: fix a bug in PXE network device configuration | Eric Hameleers | 2019-01-22 | 1 | -1/+2 |
* | liveinit: clean up that remount command | Eric Hameleers | 2019-01-17 | 1 | -1/+1 |
* | Follow the Slackware init with respect to readonly root on boot...The live init script creates a /etc/fastboot file to prevent any
file system check on boot. This is cleaner than hacking rc.S and failing.
| Eric Hameleers | 2019-01-17 | 1 | -4/+5 |
* | init: the dhcpcd 'pid' file is in another location now. | Eric Hameleers | 2019-01-05 | 1 | -4/+15 |
* | Make the default language of the Live ISO configurable...Added a new parameter to 'make_slackware_live.sh' script:
-l <localization>
For example, create a liveslak ISO with dutch as the default language
instead of US english:
# ./make_slackware_live.sh -l nl
Using this parameter you can onfigure a different default language
for the resulting ISO image. The default localization if you do not
supply this parameter remains "us" as before.
The boot menu offers a selection of other languages/localizations
to pick from (currently you can select any of 'be br da gb de de_ch es
fr fr_ch it ja nl pt ru se us') but now you can create your own brand
of liveslak ISO with your own language as the default.
| Eric Hameleers | 2018-09-04 | 1 | -6/+23 |
* | On loading of 'distro_os.cfg' do not overwrite pre-defined values...Variables defined on the boot commandline have preference over
any variable set in the .cfg file.
| Eric Hameleers | 2018-09-04 | 1 | -4/+13 |
* | liveinit: cosmetical re-arrangement | Eric Hameleers | 2018-09-04 | 1 | -2/+3 |
* | Finish the zstd compression implementation in liveslak...The new zstd compression support for squashfs modules allows for a much
snappier system because zstd decompression is 5 times faster than that of
xz (see https://sourceforge.net/p/squashfs/mailman/message/35989805/), but
at the expense of ISO sizes that are at least 10% bigger. The latter means
that we have to do some more pruning of the XFCE and PLASMA5 images to make
these fit in a CDROM and DVD image, respectively.
Here are some initial benchmarks with PLASMA5 Live ISO images,
booting in QEMU (times are in minutes:seconds):
Stage ZSTD XZ
---------------------------------------
Boot to runlevel 4 start 0:39 0:50
SDDM Login Manager visible 0:55 1:26
Plasma5 desktop ready 1:42 3:17
I also tested two of the bigger applications, measuring the time between
entering the command in a terminal and having a usable application window:
Stage ZSTD XZ
----------------------------------------
LO Writer window visible 0:17 0:34
Chromium window visible 0:09 0:14
It is obvious that a big Desktop Environment like Plasma5 where a lot of
binaries have to be loaded from their squashfs modules benefits a lot
from zstd, because after booting, the Plasma5 DE is available in
roughly 53% of the time it takes when using xz compression.
Zstd support in squashfs was added to Linux kernel 4.14. That means,
no customimzation of Slackware is required to make the Live OS work from
zstd-compressed squashfs modules.
In order to *create* these zstd-compressed squashfs modules, you will need
some custom packages at the moment, until they get added to Slackware-current:
zstd and a rebuild squashfs-tools to add the lacking zstd support to
mksqhashfs/unsquashfs.
| Eric Hameleers | 2018-09-01 | 1 | -4/+23 |
* | Add support for on-disk OS configuration file...The configuration file must be in the liveslak main directory ('/liveslak'
by default) and be called 'DISTRO_os.cfg' where DISTRO is the lower-case
name of the distro ('slackware' by default).
The following variables can be defined in the configuration file,
one per line, in the format VAR=value:
BLACKLIST, INIT, KEYMAP, LIVE_HOSTNAME, LOAD, LOCALE, LUKSVOL, NOLOAD,
RUNLEVEL, TWEAKS, TZ, XKB.
Since the configuration file is sourced by the live init script, it is OK
to have comments in it that are prefixed with '#'.
| Eric Hameleers | 2018-06-15 | 1 | -1/+37 |
* | Adapt to new behaviour of glibc-zoneinfo and the timeconfig script | Eric Hameleers | 2018-03-31 | 1 | -1/+1 |
* | liveinit.tpl: fix a sed syntax error in find_loop() | Eric Hameleers | 2017-09-23 | 1 | -1/+1 |
* | Add upslak.sh, a script to tweak the Live USB stick....Purpose: to update the content of a Slackware Live USB stick.
upslak.sh accepts the following parameters:
-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.
| Eric Hameleers | 2017-09-19 | 1 | -10/+26 |