From 023ef86591a00e0677d3019856770dba186af7a9 Mon Sep 17 00:00:00 2001 From: Nick Chevsky Date: Mon, 25 Nov 2024 22:28:21 -0600 Subject: [PATCH] SystemRescue+ZFS 12.00+2.3.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🌎 External changes: - 🚀 Upgrade SystemRescue to v12.00 and archzfs to v2.3.1. - ➕ Add a no-firewall boot entry to the GRUB and SYSLINUX menus. (If you'd like to vote for this to become the default boot entry, leave a 👀 reaction on this release.) - ðŸŠķ Replace Firefox with the more lightweight GNOME Web (`epiphany`). - ✂ïļ Remove packages `b43-fwcutter`, `darkhttpd`, `discount`, `dkms`, `geany`, `irssi`, `keepassxc`, `linux-atm`, `qtpass`, `xorg-bdftopcf`, `xorg-mkfontscale`, `xorg-sessreg`, `xorg-smproxy`, `xorg-x11perf`, `xorg-xcmsdb`, `xorg-xcursorgen`, `xorg-xdriinfo`, `xorg-xgamma`, `xorg-xkbevd`, `xorg-xkbprint`, `xorg-xkbutils`, `xorg-xlsatoms`, `xorg-xlsclients`, `xorg-xpr`, `xorg-xrefresh`, `xorg-xsetroot`, `xorg-xvinfo`, `xorg-xwd`, `xorg-xwud`, `yubikey-manager`, and `yubikey-personalization-gui`. - 🛠ïļ Fix reference to Featherpad (now Mousepad) left behind in `issue(5)` by v11.02+2.2.6. - 🛠ïļ Make the image's volume label ISO-9660-compliant. Closes #17. --- FUNDING.yml | 2 + README.md | 112 ++++---- VERSION | 2 +- airootfs/etc/issue | 23 +- airootfs/root/.config/mimeapps.list | 7 +- airootfs/root/.config/xfce4/helpers.rc | 3 +- .../panel/launcher-11/15867834691.desktop | 2 +- .../panel/launcher-5/15552316104.desktop | 16 +- .../xfce4-keyboard-shortcuts.xml | 1 - .../xfce-perchannel-xml/xfce4-panel.xml | 6 +- airootfs/root/customize_airootfs.sh | 19 +- airootfs/usr/bin/check-binaries.sh | 1 - .../usr/share/sysrescue/bin/build-zfs-srm | 248 ------------------ build.sh | 33 ++- efiboot/grub/grubsrcd.cfg | 59 +++-- packages | 49 ++-- pacman.conf | 9 +- syslinux/sysresccd_head.cfg | 2 +- syslinux/sysresccd_pxe.cfg | 6 +- syslinux/sysresccd_sys.cfg | 32 +-- syslinux/sysresccd_tail.cfg | 1 + sysrescue.d/999-custom.yaml | 2 + 22 files changed, 211 insertions(+), 424 deletions(-) create mode 100644 FUNDING.yml delete mode 100755 airootfs/usr/share/sysrescue/bin/build-zfs-srm create mode 100644 sysrescue.d/999-custom.yaml diff --git a/FUNDING.yml b/FUNDING.yml new file mode 100644 index 0000000..e828143 --- /dev/null +++ b/FUNDING.yml @@ -0,0 +1,2 @@ +custom: ['http://cash.app/$nchevsky', 'http://paypal.me/nchevsky', 'https://account.venmo.com/u/nchevsky'] +github: nchevsky diff --git a/README.md b/README.md index 472d113..6550243 100644 --- a/README.md +++ b/README.md @@ -1,69 +1,75 @@ -# SystemRescue +# Overview -## Project website -Homepage: https://www.system-rescue.org/ +**SystemRescue+ZFS** is a fork of the [SystemRescue](http://www.system-rescue.org/) distribution (based on [Arch Linux](https://archlinux.org/)) with the following improvements: -## Project sources -This git repository contains SystemRescue sources files. This is based on -https://gitlab.archlinux.org/archlinux/archiso/ +- [ZFS](https://github.com/archzfs/archzfs/) supported out of the box +- [Serial console](#serial-console) enabled for all boot options, including [Memtest86+](https://www.memtest.org/) +- EFI boot progress indicators for the kernel/initramfs/system stages +- [ISO image](https://github.com/nchevsky/systemrescue-zfs/releases) below 1 GiB in size -## Building SystemRescue -SystemRescue can be built for x86_64 or i686 architectures. It must be built -on archlinux if you want to build a 64bit edition, or archlinux32 if you want -to create a 32bit edition. The following packages must be installed on the -build system: archiso, grub, isomd5sum, mtools, edk2-shell, hugo. +# Serial console -You need to use a modified version of archiso for the build to work. This -version is provided in the custom `sysrescuerepo` repository. See the -`pacman.conf` file in the source. Either copy the `sysrescuerepo` section -into your `/etc/pacman.conf` or replace the whole `/etc/pacman.conf` file with -the one from the source. Install archiso afterwards. +A serial terminal is enabled out of the box on `ttyS0`/`COM1` at 115,200 baud. If these settings are unsuitable, adjust the configuration of the appropriate bootloader and the [kernel](https://www.kernel.org/doc/html/latest/admin-guide/serial-console.html), then [build](#building) a new image. -The package list contains packages which are not part of the official binary -package repositories from Arch Linux. These packages are also provided in the -`sysrescuerepo` repository. If you want to rebuild them, see -[systemrescue-custompkg](https://gitlab.com/systemrescue/systemrescue-custompkg). -Create a local repository out of them with `repo-add`, host it on a webserver -and then adapt pacman.conf. +## Bootloader -The build process requires the systemrescue-website repository which is included -as git submodule. So when checking out this repository, make sure to check out -the submodule too. This can be done for example with -`git clone --recurse-submodules https://gitlab.com/systemrescue/systemrescue-sources.git` +| [GRUB](https://www.gnu.org/software/grub/manual/grub/grub.html) (EFI boot) | [SYSLINUX](https://wiki.syslinux.org/wiki/index.php?title=SYSLINUX) (legacy boot) | +| --- | --- | +| 📍 [`efiboot/grub/grubsrcd.cfg`](efiboot/grub/grubsrcd.cfg)
`serial --unit=0 --speed=115200 â€Ķ` | 📍 [`syslinux/sysresccd_head.cfg`](syslinux/sysresccd_head.cfg)
`SERIAL 0 115200` | -The build process can be started by running the build.sh script. It will create -a large "work" sub-directory and the ISO file will be written in the "out" -sub-directory. +## Kernel -## Building SystemRescue with docker -If you are not running archlinux, you can run the build process in docker -containers. You need to have a Linux system running with docker installed -and configured. You can use the scripts provided in the `docker` folder of -this repository. +📍 [`build.sh`](build.sh)
`consoles='console=ttyS0,115200 â€Ķ'` -You must export the environment variable named `sysrescuearch` before you -run the two helper scripts. It should be set as either `x86_64` or `i686` -depending on the target architecture for which you want to build the ISO image. +# Building -After this, you need to run the script which builds a new docker image, and -then the script which uses this docker image to builds the ISO image. The second -script will pass the arguments it receives to the main `build.sh` script. - -For example you can build a 64bit version of SystemRescue in docker using these commands: -``` -export sysrescuearch="x86_64" -./docker/build-docker-image.sh -./docker/build-iso-image.sh -v +```sh +$ sudo ./build.sh [-d] [-v] ``` -## Including your SystemRescueModules -If you want to include your own [SystemRescueModules][srm], place their srm files -in the [srm](./srm) directory of the repository before running the build script. +- `-d`: Use fast compression, significantly speeding up development builds. +- `-v`: Print more information while building (strongly recommended). -[srm]: https://www.system-rescue.org/Modules/ +## Dependencies -## Project sponsors +[Arch Linux](https://archlinux.org/download/) with the following packages installed: +- `arch-install-scripts` +- `archiso` from the custom [SystemRescue repository](https://sysrescuerepo.system-rescue.org/) ⚠ïļ +- `base-devel` +- `edk2-shell` +- `grub` +- `hugo` +- `isomd5sum` +- `mtools` -Infrastructure for SystemRescue is sponsored by: +## Rebuilds -|    [fastly](https://www.fastly.com)    |    [netcup](https://www.netcup.eu)    | +The state of successful [build steps](#steps) is persisted in `work/build.make_*` files. If such a file exists for a given build step, `build.sh` skips that step indefinitely. State files must be manually deleted for any steps that one wants reexecuted. + +### Full rebuild + +```sh +$ sudo rm work/build.make_* +``` + +### Partial rebuild + +Delete the state file for the desired step **and any downstream steps**. For example, if you have customized the GRUB configuration, you must remove `build.make_efi` and its successors `build.make_efiboot` and `build.make_iso`. + +## Steps + +1. `make_pacman_conf` +2. `make_basefs` +3. `make_documentation` +4. `make_packages` +5. `make_customize_airootfs` +6. `make_setup_mkinitcpio` +7. `make_boot` +8. `make_boot_extra` +9. `make_syslinux` +10. `make_isolinux` +11. `make_efi` +12. `make_efiboot` +13. `make_prepare` +14. `make_imageinfo` +15. `make_iso` diff --git a/VERSION b/VERSION index 56ec9a6..d38aec6 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -12.00 +12.00+2.3.1 diff --git a/airootfs/etc/issue b/airootfs/etc/issue index feed99a..e4eabdd 100644 --- a/airootfs/etc/issue +++ b/airootfs/etc/issue @@ -1,14 +1,13 @@ -\e[01;31m ========= \e[01;37mSystemRescue %ISO_VERSION% (%ISO_ARCH%)\e[01;31m ======== \e[01;37m\l\e[00;37m/6\e[01;31m ========= - \e[00;31mhttps://www.system-rescue.org/ +\e[01;31m============== \e[01;37m%ISO_APPLICATION% %ISO_VERSION%\e[01;31m --- \e[01;37m\l \e[01;31m============== + \e[01;31m%ISO_URL% -\e[00;31m*\e[01;31m Console environment\e[00;37m : - Run \e[01;37msetkmap\e[00;37m to choose the keyboard layout (also accessible with the arrow up key) - Run \e[01;37mmanual\e[00;37m to read the documentation of SystemRescue - -\e[00;31m*\e[01;31m Graphical environment\e[00;37m : - Type \e[01;37mstartx\e[00;37m to run the graphical environment - X.Org comes with the XFCE environment and several graphical tools: - \e[00;31m-\e[00;37m Partition manager: .. \e[01;37mgparted\e[00;37m - \e[00;31m-\e[00;37m Web browser: ........ \e[01;37mfirefox\e[00;37m - \e[00;31m-\e[00;37m Text editor: ........ \e[01;37mfeatherpad\e[00;37m +\e[00;31m*\e[01;31m Console environment:\e[00;37m + Run \e[01;37msetkmap\e[00;37m or press ↑ to choose the keyboard layout. + Run \e[01;37mmanual\e[00;37m to read the SystemRescue documentation. +\e[00;31m*\e[01;31m Graphical environment:\e[00;37m + Run \e[01;37mstartx\e[00;37m to start the graphical environment. + X.Org comes with the XFCE environment and several graphical tools: + \e[00;31m-\e[00;37m Partition manager: \e[01;37mGParted\e[00;37m + \e[00;31m-\e[00;37m Web browser: \e[01;37mWeb\e[00;37m + \e[00;31m-\e[00;37m Text editor: \e[01;37mMousepad\e[00;37m diff --git a/airootfs/root/.config/mimeapps.list b/airootfs/root/.config/mimeapps.list index 8c8a31b..b90ccb9 100644 --- a/airootfs/root/.config/mimeapps.list +++ b/airootfs/root/.config/mimeapps.list @@ -1,5 +1,4 @@ [Default Applications] -application/pdf=firefox-esr.desktop - -[Added Associations] -application/pdf=firefox-esr.desktop; +application/pdf=org.gnome.Epiphany.desktop +x-scheme-handler/http=org.gnome.Epiphany.desktop +x-scheme-handler/https=org.gnome.Epiphany.desktop diff --git a/airootfs/root/.config/xfce4/helpers.rc b/airootfs/root/.config/xfce4/helpers.rc index 0d27a76..a83fcea 100644 --- a/airootfs/root/.config/xfce4/helpers.rc +++ b/airootfs/root/.config/xfce4/helpers.rc @@ -1,2 +1 @@ -WebBrowser=custom-WebBrowser - +WebBrowser=epiphany diff --git a/airootfs/root/.config/xfce4/panel/launcher-11/15867834691.desktop b/airootfs/root/.config/xfce4/panel/launcher-11/15867834691.desktop index e29e29c..e142914 100644 --- a/airootfs/root/.config/xfce4/panel/launcher-11/15867834691.desktop +++ b/airootfs/root/.config/xfce4/panel/launcher-11/15867834691.desktop @@ -1,7 +1,7 @@ [Desktop Entry] Name=Manual Comment=SystemRescue manual -Exec=firefox-esr file:///usr/share/sysrescue/html/manual/index.html +Exec=epiphany file:///usr/share/sysrescue/html/manual/index.html Icon=help-browser Terminal=false Type=Application diff --git a/airootfs/root/.config/xfce4/panel/launcher-5/15552316104.desktop b/airootfs/root/.config/xfce4/panel/launcher-5/15552316104.desktop index 9c8ba6f..bf1f34e 100644 --- a/airootfs/root/.config/xfce4/panel/launcher-5/15552316104.desktop +++ b/airootfs/root/.config/xfce4/panel/launcher-5/15552316104.desktop @@ -1,18 +1,12 @@ [Desktop Entry] -Name=FeatherPad +Name=Mousepad GenericName=Text Editor -Comment=Lightweight Qt5 text editor -Exec=featherpad %F -Icon=featherpad +Comment=Simple Text Editor +Exec=mousepad +Icon=org.xfce.mousepad Terminal=false Type=Application MimeType=text/plain; -Categories=Qt;Utility;TextEditor; +Categories=Utility;TextEditor; X-KDE-StartupNotify=false; Keywords=Text;Editor;Plaintext; -Actions=new-window; -X-XFCE-Source=file:///usr/share/applications/featherpad.desktop - -[Desktop Action new-window] -Name=New Window -Exec=featherpad --win diff --git a/airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml b/airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml index a65736b..28bab4f 100644 --- a/airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml +++ b/airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml @@ -33,7 +33,6 @@ - diff --git a/airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml b/airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml index 3b70200..51ec900 100644 --- a/airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml +++ b/airootfs/root/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml @@ -18,7 +18,6 @@ - @@ -36,7 +35,7 @@ - + @@ -59,9 +58,6 @@ - - - diff --git a/airootfs/root/customize_airootfs.sh b/airootfs/root/customize_airootfs.sh index 05832bf..1c130df 100755 --- a/airootfs/root/customize_airootfs.sh +++ b/airootfs/root/customize_airootfs.sh @@ -26,11 +26,8 @@ sed -i 's/#\(HandleSuspendKey=\)suspend/\1ignore/' /etc/systemd/logind.conf sed -i 's/#\(HandleHibernateKey=\)hibernate/\1ignore/' /etc/systemd/logind.conf sed -i 's/#\(HandleLidSwitch=\)suspend/\1ignore/' /etc/systemd/logind.conf -# PulseAudio takes care of volume restore -ln -sf /dev/null /etc/udev/rules.d/90-alsa-restore.rules - # config symlink -mkdir /etc/sysrescue/ +mkdir -p /etc/sysrescue/ ln -sf /run/archiso/config/sysrescue-effective-config.json /etc/sysrescue/sysrescue-effective-config.json # Services @@ -42,7 +39,6 @@ systemctl enable sshd.service systemctl enable sysrescue-initialize-prenet.service systemctl enable sysrescue-initialize-whilenet.service systemctl enable sysrescue-autorun.service -systemctl enable qemu-guest-agent.service systemctl enable var-lib-pacman\\x2drolling-local.mount systemctl set-default multi-user.target @@ -62,6 +58,9 @@ ln -sf /dev/null /etc/systemd/system-generators/systemd-gpt-auto-generator # setup pacman signing key storage /usr/bin/pacman-key --init +pacman-key --recv-keys 3A9917BF0DED5C13F69AC68FABEC0A1208037BE9 DDF7DB817396A49B2A2723F7403BD972F75D9D76 # archzfs (experimental, stable) +pacman-key --lsign-key 3A9917BF0DED5C13F69AC68FABEC0A1208037BE9 # archzfs (experimental) +pacman-key --lsign-key DDF7DB817396A49B2A2723F7403BD972F75D9D76 # archzfs (stable) /usr/bin/pacman-key --populate rm -f /etc/pacman.d/gnupg/*~ @@ -97,7 +96,7 @@ rm -f /usr/share/qt/translations/* # Cleanup XFCE menu sed -i '2 i NoDisplay=true' /usr/share/applications/{xfce4-mail-reader,xfce4-web-browser}.desktop -sed -i "s/^\(Categories=\).*\$/Categories=Utility;/" /usr/share/applications/{geany,*ristretto*,*GHex*}.desktop +sed -i "s/^\(Categories=\).*\$/Categories=Utility;/" /usr/share/applications/{*ristretto*,*GHex*}.desktop # nm-applet with application indicator enabled gives better integration with xfce4-panel's systray mkdir -p /usr/local/share/applications/ @@ -113,6 +112,14 @@ then /usr/bin/localepurge fi +# remove ZFS build dependencies +if [ ! -L "/etc/pacman.d/hooks/71-dkms-remove.hook" ]; then + mkdir -p /etc/pacman.d/hooks + ln -s /dev/null /etc/pacman.d/hooks/71-dkms-remove.hook # suppress automatic removal of zfs-dkms +fi +pacman --noconfirm -Rdds dkms linux-lts-headers || true +rm /etc/pacman.d/hooks/71-dkms-remove.hook + # Update pacman.conf sed -i -e '/# ==== BEGIN sysrescuerepo ====/,/# ==== END sysrescuerepo ====/d' /etc/pacman.conf diff --git a/airootfs/usr/bin/check-binaries.sh b/airootfs/usr/bin/check-binaries.sh index 2b5ee47..037e584 100755 --- a/airootfs/usr/bin/check-binaries.sh +++ b/airootfs/usr/bin/check-binaries.sh @@ -3,7 +3,6 @@ errcnt=0 for curfile in /usr/bin/{*btrfs*,*xfs*,dislocker*,udp*,dump,restore} \ /usr/bin/{ghex,growpart*,hardinfo,*lshw*,ms-sys,nwipe,whdd,zerofree} \ - /opt/firefox*/firefox* \ /usr/lib/ntfs-3g/ntfs-plugin*.so \ /usr/lib/libgbm.so* \ /usr/lib/xorg/modules/drivers/modesetting_drv.so \ diff --git a/airootfs/usr/share/sysrescue/bin/build-zfs-srm b/airootfs/usr/share/sysrescue/bin/build-zfs-srm deleted file mode 100755 index 6b5a4a2..0000000 --- a/airootfs/usr/share/sysrescue/bin/build-zfs-srm +++ /dev/null @@ -1,248 +0,0 @@ -#! /usr/bin/env bash -# -# build-zfs-srm - build ZFS support for SystemRescue -# -# This script builds a SystemRescue Module (SRM) file that adds support -# for the ZFS file system to a running instance of SystemRescue. -# -# Author: Daniel Richard G. -# SPDX-License-Identifier: GPL-3.0-or-later -# -# SystemRescue cannot be distributed with ZFS support due to licensing -# issues, but users are free to build ZFS for SystemRescue themselves. -# As the build process is non-trivial, it has been elaborated in this -# script as a service to the SystemRescue community. -# -# Usage: -# ./build-zfs-srm [--latest] -# -# By default, this script will build the version of ZFS that was current -# (in the AUR repo) at the time of the host system's release. If the -# --latest option is given, then it will instead build the latest version -# available now (when the script is run). -# -# Note that the build is performed reproducibly; i.e. re-running the -# build in the same environment should yield exactly the same output -# file. Thus, builds performed with --latest will produce different -# output as new ZFS versions become available, whereas builds performed -# without should (in theory) remain unchanged in perpetuity. -# -# For more information, refer to -# https://www.system-rescue.org/scripts/build-zfs-srm/ -# - -use_latest_zfs=no - -while [ -n "$1" ] -do - case "$1" in - --latest) use_latest_zfs=yes ;; - -h|--help) echo "$0: see comment header of script for usage info"; exit 0 ;; - -*) echo "$0: error: unrecognized option \"$1\""; exit 1 ;; - *) echo "$0: error: unrecognized argument \"$1\""; exit 1 ;; - esac - shift -done - -# Sanity checks -if [ ! -f /etc/arch-release ] || ! /usr/bin/pacman --version >/dev/null 2>&1 -then - echo "$0: error: this script must be run on SystemRescue / Arch Linux" - exit 1 -fi -if [ $(id -u) -ne 0 ] -then - echo "$0: error: this script must be run as root" - exit 1 -fi -if [ $(awk '$1=="MemAvailable:"{print $2}' /proc/meminfo) -lt 3500000 ] && \ - ! make --version >/dev/null 2>&1 -then - echo "$0: error: not enough RAM available for build, ~4 GB needed" - exit 1 -fi - -set -e -u - -# Use this timestamp for reproducibility -t_epoch=$(stat -c '%Y' /etc/os-release) -t_date=$(date -d @${t_epoch} -R) - -# Are we in an actual live running instance of SystemRescue? -# (The expected alternative is an "archlinux" Docker container) -in_live_system=$(test "_$(findmnt -n -o SOURCE /)" = _airootfs && echo true || echo false) - -srm_file=/tmp/$(. /etc/os-release && echo ${ID}-${VERSION_ID}-zfs.srm) -srm_info=${srm_file%.srm}.txt - -cat <&2 - env "$@" -} - -# Install some prerequisites -run_command pacman -Sy --needed --noconfirm base-devel git - -reinstall_if_missing() -{ - local pkg="$1" - local file="$2" - test -f ${file} || run_command pacman -S --noconfirm ${pkg} -} - -# Many packages in the SystemRescue ISO have had files removed to save on -# space, but we will need to restore some of them to build ZFS. Reinstall -# the following packages as needed: -reinstall_if_missing curl /usr/include/curl/curl.h -reinstall_if_missing glibc /usr/lib/libc_nonshared.a -reinstall_if_missing libtirpc /usr/include/tirpc/rpc/xdr.h -reinstall_if_missing linux-api-headers /usr/include/linux/limits.h -reinstall_if_missing openssl /usr/include/openssl/evp.h -reinstall_if_missing pam /usr/include/security/pam_modules.h -reinstall_if_missing systemd-libs /usr/include/libudev.h -reinstall_if_missing util-linux-libs /usr/include/uuid/uuid.h -reinstall_if_missing zlib /usr/include/zlib.h - -if ${in_live_system} -then - # More disk space is available in a tmpfs - work_dir=/tmp/zfsbuild -else - work_dir=/home/zfsbuild -fi -if [ ! -d ${work_dir} ] -then - run_command useradd --create-home --home-dir ${work_dir} zfsbuild -fi - -run_as_user() -{ - local cmd="$1" - setpriv \ - --reuid=zfsbuild \ - --regid=zfsbuild \ - --init-groups \ - --no-new-privs \ - --reset-env \ - bash -e -x -c "${cmd}" -} - -cd ${work_dir} - -# Build these two essential ZFS packages from the AUR -for aur_pkg in \ - zfs-dkms \ - zfs-utils -do - if [ ! -d ${aur_pkg} ] - then - run_as_user "git clone https://aur.archlinux.org/${aur_pkg}.git" - fi - if [ ! -f ${aur_pkg}.repro.stamp -a ${use_latest_zfs} = no ] - then - run_as_user "cd ${aur_pkg} && rev=\$(git rev-list -n 1 --first-parent --before=@${t_epoch} HEAD) && git checkout \${rev}" - touch ${aur_pkg}.repro.stamp - fi - if [ ! -f ${aur_pkg}.pgp.stamp ] - then - run_as_user ". ${aur_pkg}/PKGBUILD && gpg --recv-keys \${validpgpkeys[*]}" - touch ${aur_pkg}.pgp.stamp - fi - if [ ! -f ${aur_pkg}.build.stamp ] - then - run_as_user "cd ${aur_pkg} && makepkg --clean" - run_as_user "cd ${aur_pkg} && git rev-parse HEAD" > ${aur_pkg}.commit.txt - touch ${aur_pkg}.build.stamp - fi -done - -# Install more prerequisites -run_command pacman -S --needed --noconfirm \ - dkms linux-lts linux-lts-headers squashfs-tools - -# Tweak DKMS configuration -x=/etc/dkms/framework.conf -if ! grep -q '^dkms_tree=' $x && ${in_live_system} -then - # More disk space is available in a tmpfs - mkdir -p /tmp/dkms - (echo; echo 'dkms_tree="/tmp/dkms"') >> $x -fi -if ! grep -q '^sign_file=' $x -then - # Do not sign the kernel modules as this breaks reproducibility - (echo; echo 'sign_file="/nope"') >> $x -fi - -if ! ${in_live_system} -then - # The Docker container does not extract/install man pages from - # packages, but we want the SRM to include those - perl -pi -e '/^NoExtract\s*=/ && m! usr/share/man/! and s/^/#/' \ - /etc/pacman.conf -fi - -# Kernel module builds need the kernel file in the standard location -x=/run/archiso/bootmnt/sysresccd/boot/x86_64/vmlinuz -y=/boot/vmlinuz-linux-lts -if [ -f $x -a ! -f $y ] -then - run_command ln -s $x $y -fi - -# Do not pass the -j option to pahole(1) as it breaks reproducibility -# https://github.com/acmel/dwarves/issues/42 -perl -pi -e 's/^(\s*)(extra_paholeopt=".* -j")/${1}true $2/' \ - /lib/modules/*-lts/build/scripts/pahole-flags.sh - -# Install the newly-built ZFS packages, and let DKMS do its thing -run_command pacman -U --needed --noconfirm \ - zfs-utils/zfs-utils-*.pkg.tar.zst \ - zfs-dkms/zfs-dkms-*.pkg.tar.zst - -# Generate list of files in the zfs-utils package -pacman -Ql zfs-utils \ -| sed 's!^zfs-utils /!!' \ -| grep -v '/$' \ -> zfs-utils.files.txt - -# mksquashfs(1) uses this -export SOURCE_DATE_EPOCH=${t_epoch} - -# Create the SRM file -rm -f ${srm_file} -(cd / && tar cf - --sort=name \ - usr/lib/modules/*-lts/updates/dkms/* \ - usr/lib/modules/*-lts/modules.* \ - -T ${work_dir}/zfs-utils.files.txt) \ -| run_command mksquashfs - ${srm_file} -comp xz -tar -exports - -tee ${srm_info} </dev/null || echo unknown) -zfs-utils version: $(. zfs-utils/PKGBUILD && echo ${pkgver}-${pkgrel}) -* AUR Git commit : $(cat zfs-utils.commit.txt 2>/dev/null || echo unknown) -SRM file location: ${srm_file} -SRM file size : $(stat -c '%s' ${srm_file}) bytes -SRM file SHA-1 : $(sha1sum < ${srm_file} | awk '{print $1}') -SRM file SHA-512 : $(sha512sum < ${srm_file} | awk '{print $1}') - -Please visit https://www.system-rescue.org/Modules/ for instructions on -loading the SRM file into a running instance of SystemRescue. - -END - -# EOF diff --git a/build.sh b/build.sh index 60227e1..07d8ee9 100755 --- a/build.sh +++ b/build.sh @@ -5,12 +5,13 @@ set -e -u script_path=$(readlink -f ${0%/*}) version_file="${script_path}/VERSION" -iso_name=systemrescue +consoles='console=ttyS0,115200 console=tty0' +iso_application="SystemRescue+ZFS" iso_version="$(<${version_file})" -iso_mainver="${iso_version%-*}" -iso_label="RESCUE${iso_mainver//.}" -iso_publisher="SystemRescue " -iso_application="SystemRescue" +iso_name=$(echo "$iso_application" | tr '[:upper:]' '[:lower:]') +iso_label=$(echo "${iso_application}_${iso_version}" | tr "[:lower:].+ -" "[:upper:]_") +iso_url="https://github.com/nchevsky/systemrescue-zfs" +iso_publisher="Nick Chevsky <${iso_url}>" install_dir=sysresccd image_info_file="${install_dir}/.imageinfo" work_dir=work @@ -26,7 +27,7 @@ snapshot_date="" default_kernel_param="iomem=relaxed" documentation_dir="/usr/share/sysrescue/html" mkinitcpio_comp_algo="xz" -mkinitcpio_comp_opts="--threads=0 --verbose" +mkinitcpio_comp_opts="-9e --threads=0 --verbose" mkinitcpio_comp_algo_devel="zstd" mkinitcpio_comp_opts_devel="--threads=0 --fast --verbose" @@ -42,7 +43,6 @@ case ${arch} in mirrorlist_url='https://archlinux.org/mirrorlist/?country=all&protocol=http&use_mirror_status=on' archive_prefix='https://archive.archlinux.org/repos/' archive_mirrorlist_file='mirrorlist-snapshot-x86_64' - mkinitcpio_comp_opts="--threads=0 --lzma2=preset=9e,dict=128MiB --verbose" ;; i686) efiarch="i386-efi" @@ -51,7 +51,6 @@ case ${arch} in mirrorlist_url='https://archlinux32.org/mirrorlist/?country=all&protocol=http&use_mirror_status=on' archive_prefix='https://archive.archlinux32.org/repos/' archive_mirrorlist_file='mirrorlist-snapshot-i686' - mkinitcpio_comp_opts="--threads=0 --verbose" ;; *) echo "ERROR: Unsupported architecture: '${arch}'" @@ -129,9 +128,14 @@ determine_snapshot_date() { # Helper function to run make_*() only one time per architecture. run_once() { + echo -e "\n================================================================================" + echo -e "$1\n================================================================================" if [[ ! -e ${work_dir}/build.${1} ]]; then $1 touch ${work_dir}/build.${1} + echo -e "\nDone." + else + echo -e "\nSkipped. To rebuild this step, delete ${work_dir}/build.${1}." fi } @@ -161,8 +165,8 @@ make_documentation() { fi # is the documentation up to date? ignore for beta and test versions - if ! echo "${iso_version}" | grep -i -q "beta\|test" && \ - ! grep -q "${iso_version}" website/content/Changes-x86/_index.md; then + if ! echo "${iso_version%+*}" | grep -i -q "beta\|test" && \ + ! grep -q "${iso_version%+*}" website/content/Changes-x86/_index.md; then echo "ERROR: current version not in changelog. Did you update the website submodule?" exit 1 fi @@ -201,7 +205,8 @@ make_customize_airootfs() { cp ${version_file} ${work_dir}/${arch}/airootfs/root/version - sed "s|%ARCHISO_LABEL%|${iso_label}|g; + sed "s|%ISO_APPLICATION%|${iso_application}|g; + s|%ISO_URL%|${iso_url}|g; s|%ISO_VERSION%|${iso_version}|g; s|%ISO_ARCH%|${arch}|g; s|%INSTALL_DIR%|${install_dir}|g" \ @@ -304,6 +309,8 @@ make_syslinux() { mkdir -p ${work_dir}/iso/${install_dir}/boot/syslinux for _cfg in ${script_path}/syslinux/*.cfg; do sed "s|%ARCHISO_LABEL%|${iso_label}|g; + s|%CONSOLES%|${consoles}|g; + s|%ISO_APPLICATION%|${iso_application}|g; s|%ISO_VERSION%|${iso_version}|g; s|%ISO_ARCH%|${arch}|g; s|%DEFAULT_KERNEL_PARAM%|${default_kernel_param}|g; @@ -335,6 +342,8 @@ make_efi() { cp -a /usr/lib/grub/${efiarch} ${work_dir}/iso/boot/grub/ cp ${script_path}/efiboot/grub/font.pf2 ${work_dir}/iso/boot/grub/ sed "s|%ARCHISO_LABEL%|${iso_label}|g; + s|%CONSOLES%|${consoles}|g; + s|%ISO_APPLICATION%|${iso_application}|g; s|%ISO_VERSION%|${iso_version}|g; s|%ISO_ARCH%|${arch}|g; s|%DEFAULT_KERNEL_PARAM%|${default_kernel_param}|g; @@ -394,7 +403,7 @@ make_imageinfo() { echo "# SystemRescue imageinfo - used by systemrescue-usbwriter to check compatibility" >"${work_dir}/iso/${image_info_file}" echo "NAME=SystemRescue" >>"${work_dir}/iso/${image_info_file}" - echo "VERSION=${iso_version}" >>"${work_dir}/iso/${image_info_file}" + echo "VERSION=${iso_version%+*}" >>"${work_dir}/iso/${image_info_file}" echo "ARCH=${arch}" >>"${work_dir}/iso/${image_info_file}" echo "SYSLINUX_VERSION=${syslinux_ver}" >>"${work_dir}/iso/${image_info_file}" echo "" >>"${work_dir}/iso/${image_info_file}" diff --git a/efiboot/grub/grubsrcd.cfg b/efiboot/grub/grubsrcd.cfg index f16da12..c9eb3df 100644 --- a/efiboot/grub/grubsrcd.cfg +++ b/efiboot/grub/grubsrcd.cfg @@ -10,7 +10,7 @@ if [ -z "$srcd_skip_init" ]; then # Display settings if loadfont /boot/grub/font.pf2 ; then - set gfxmode=640x480 + set gfxmode=800x600,auto set color_normal=black/cyan set color_highlight=black/light-gray set menu_color_normal=black/cyan @@ -40,60 +40,83 @@ fi # like $archiso_param to be visible in the GRUB editor eval " -menuentry 'Boot SystemRescue using default options' { +menuentry 'Boot %ISO_APPLICATION% %ISO_VERSION% using default options' { set gfxpayload=keep - linux /%INSTALL_DIR%/boot/%ISO_ARCH%/vmlinuz archisobasedir=%INSTALL_DIR% $archiso_param %DEFAULT_KERNEL_PARAM% + echo 'Loading kernel...' + linux /%INSTALL_DIR%/boot/%ISO_ARCH%/vmlinuz archisobasedir=%INSTALL_DIR% $archiso_param %DEFAULT_KERNEL_PARAM% %CONSOLES% + echo 'Loading initramfs...' initrd /%INSTALL_DIR%/boot/intel_ucode.img /%INSTALL_DIR%/boot/amd_ucode.img /%INSTALL_DIR%/boot/%ISO_ARCH%/sysresccd.img + echo 'Booting...' } -menuentry 'Boot SystemRescue and copy system to RAM (copytoram)' { - set gfxpayload=keep - linux /%INSTALL_DIR%/boot/%ISO_ARCH%/vmlinuz archisobasedir=%INSTALL_DIR% $archiso_param %DEFAULT_KERNEL_PARAM% copytoram +menuentry 'Boot %ISO_APPLICATION% %ISO_VERSION% with the firewall disabled (nofirewall)' { + echo 'Loading kernel...' + linux /%INSTALL_DIR%/boot/%ISO_ARCH%/vmlinuz archisobasedir=%INSTALL_DIR% $archiso_param %DEFAULT_KERNEL_PARAM% %CONSOLES% nofirewall + echo 'Loading initramfs...' initrd /%INSTALL_DIR%/boot/intel_ucode.img /%INSTALL_DIR%/boot/amd_ucode.img /%INSTALL_DIR%/boot/%ISO_ARCH%/sysresccd.img + echo 'Booting...' } -menuentry 'Boot SystemRescue and verify integrity of the medium (checksum)' { +menuentry 'Boot %ISO_APPLICATION% %ISO_VERSION% and copy system to RAM (copytoram)' { set gfxpayload=keep - linux /%INSTALL_DIR%/boot/%ISO_ARCH%/vmlinuz archisobasedir=%INSTALL_DIR% $archiso_param %DEFAULT_KERNEL_PARAM% checksum + echo 'Loading kernel...' + linux /%INSTALL_DIR%/boot/%ISO_ARCH%/vmlinuz archisobasedir=%INSTALL_DIR% $archiso_param %DEFAULT_KERNEL_PARAM% %CONSOLES% copytoram + echo 'Loading initramfs...' initrd /%INSTALL_DIR%/boot/intel_ucode.img /%INSTALL_DIR%/boot/amd_ucode.img /%INSTALL_DIR%/boot/%ISO_ARCH%/sysresccd.img + echo 'Booting...' } -menuentry 'Boot SystemRescue using basic display drivers (nomodeset)' { +menuentry 'Boot %ISO_APPLICATION% %ISO_VERSION% and verify integrity of the medium (checksum)' { set gfxpayload=keep - linux /%INSTALL_DIR%/boot/%ISO_ARCH%/vmlinuz archisobasedir=%INSTALL_DIR% $archiso_param %DEFAULT_KERNEL_PARAM% nomodeset + echo 'Loading kernel...' + linux /%INSTALL_DIR%/boot/%ISO_ARCH%/vmlinuz archisobasedir=%INSTALL_DIR% $archiso_param %DEFAULT_KERNEL_PARAM% %CONSOLES% checksum + echo 'Loading initramfs...' initrd /%INSTALL_DIR%/boot/intel_ucode.img /%INSTALL_DIR%/boot/amd_ucode.img /%INSTALL_DIR%/boot/%ISO_ARCH%/sysresccd.img + echo 'Booting...' } -menuentry 'Boot SystemRescue with serial console (ttyS0,115200n8)' { +menuentry 'Boot %ISO_APPLICATION% %ISO_VERSION% using basic display drivers (nomodeset)' { set gfxpayload=keep - linux /%INSTALL_DIR%/boot/%ISO_ARCH%/vmlinuz archisobasedir=%INSTALL_DIR% $archiso_param %DEFAULT_KERNEL_PARAM% console=tty0 console=ttyS0,115200n8 + echo 'Loading kernel...' + linux /%INSTALL_DIR%/boot/%ISO_ARCH%/vmlinuz archisobasedir=%INSTALL_DIR% $archiso_param %DEFAULT_KERNEL_PARAM% %CONSOLES% nomodeset + echo 'Loading initramfs...' initrd /%INSTALL_DIR%/boot/intel_ucode.img /%INSTALL_DIR%/boot/amd_ucode.img /%INSTALL_DIR%/boot/%ISO_ARCH%/sysresccd.img + echo 'Booting...' } -menuentry 'Boot SystemRescue, do not activate md raid or lvm (nomdlvm)' { +menuentry 'Boot %ISO_APPLICATION% %ISO_VERSION% without activating md raid or lvm (nomdlvm)' { set gfxpayload=keep - linux /%INSTALL_DIR%/boot/%ISO_ARCH%/vmlinuz archisobasedir=%INSTALL_DIR% $archiso_param %DEFAULT_KERNEL_PARAM% nomdlvm + echo 'Loading kernel...' + linux /%INSTALL_DIR%/boot/%ISO_ARCH%/vmlinuz archisobasedir=%INSTALL_DIR% $archiso_param %DEFAULT_KERNEL_PARAM% %CONSOLES% nomdlvm + echo 'Loading initramfs...' initrd /%INSTALL_DIR%/boot/intel_ucode.img /%INSTALL_DIR%/boot/amd_ucode.img /%INSTALL_DIR%/boot/%ISO_ARCH%/sysresccd.img + echo 'Booting...' } menuentry 'Boot a Linux operating system installed on the disk (findroot)' { set gfxpayload=keep - linux /%INSTALL_DIR%/boot/%ISO_ARCH%/vmlinuz archisobasedir=%INSTALL_DIR% $archiso_param %DEFAULT_KERNEL_PARAM% findroot + echo 'Loading kernel...' + linux /%INSTALL_DIR%/boot/%ISO_ARCH%/vmlinuz archisobasedir=%INSTALL_DIR% $archiso_param %DEFAULT_KERNEL_PARAM% %CONSOLES% findroot + echo 'Loading initramfs...' initrd /%INSTALL_DIR%/boot/intel_ucode.img /%INSTALL_DIR%/boot/amd_ucode.img /%INSTALL_DIR%/boot/%ISO_ARCH%/sysresccd.img + echo 'Booting...' } menuentry 'Stop during the boot process before mounting the root filesystem' { set gfxpayload=keep - linux /%INSTALL_DIR%/boot/%ISO_ARCH%/vmlinuz archisobasedir=%INSTALL_DIR% $archiso_param %DEFAULT_KERNEL_PARAM% break + echo 'Loading kernel...' + linux /%INSTALL_DIR%/boot/%ISO_ARCH%/vmlinuz archisobasedir=%INSTALL_DIR% $archiso_param %DEFAULT_KERNEL_PARAM% %CONSOLES% break + echo 'Loading initramfs...' initrd /%INSTALL_DIR%/boot/intel_ucode.img /%INSTALL_DIR%/boot/amd_ucode.img /%INSTALL_DIR%/boot/%ISO_ARCH%/sysresccd.img + echo 'Booting...' } source /boot/grub/custom.cfg menuentry 'Memtest86+ memory tester for UEFI' { insmod fat - set gfxpayload=800x600,1024x768 - linux /EFI/memtest.efi keyboard=both + set gfxpayload=640x480,800x600,1024x768,auto + linux /EFI/memtest.efi keyboard=both %CONSOLES% } menuentry 'Start EFI Shell' { diff --git a/packages b/packages index a059704..4ecce2d 100644 --- a/packages +++ b/packages @@ -1,11 +1,9 @@ acpi -alsa-utils amd-ucode archinstall arch-install-scripts at atop -b43-fwcutter bash bash-completion bc @@ -31,13 +29,11 @@ crda cronie cryptsetup curl -darkhttpd dd_rescue ddrescue dhclient dialog diffutils -discount dislocker dmidecode dmraid @@ -51,23 +47,20 @@ efibootmgr efitools efivar elinks +systemrescue+zfs/epiphany ethtool exfatprogs expac f2fs-tools fatresize -featherpad file findutils -firefox-esr-bin flashrom foremost fsarchiver galculator gawk -geany -ghex -git +systemrescue+zfs/ghex gnu-netcat gnupg gpart @@ -79,7 +72,7 @@ grml-zsh-config growpartfs grsync grub -gsettings-desktop-schemas-dummy +gsettings-desktop-schemas gsmartcontrol gzip hardinfo @@ -97,10 +90,8 @@ ipmitool iproute2 iptables iputils -irssi jfsutils jq -keepassxc kexec-tools less lftp @@ -108,12 +99,12 @@ libfaketime libisoburn libldm libvncserver -linux-atm -linux-firmware +systemrescue+zfs/linux-firmware linux-firmware-bnx2x linux-firmware-qlogic linux-firmware-marvell linux-lts +linux-lts-headers lm_sensors localepurge lshw @@ -127,7 +118,6 @@ lvm2 lz4 lzip lzop -m4 man-db man-pages mc @@ -135,12 +125,13 @@ mdadm memtest86+ memtest86+-efi memtester -mesa-minimal +systemrescue+zfs/mesa-minimal minicom mkinitcpio mkinitcpio-nfs-utils mlocate moreutils +mousepad ms-sys mtools mtr @@ -178,7 +169,6 @@ parted partimage pass patch -pavucontrol pciutils pcre perl @@ -193,7 +183,6 @@ ppp pptpclient procps-ng psmisc -pulseaudio-alsa pv python python-llfuse @@ -201,7 +190,6 @@ python-pip python-yaml qemu-guest-agent qemu-img -qtpass rclone rdesktop rdiff-backup @@ -225,7 +213,6 @@ smartmontools smbclient socat speedtest-cli -sqlite squashfs-tools sshfs strace @@ -236,12 +223,10 @@ sudo syslinux sysstat tar -tcl tcpdump testdisk thunar-archive-plugin timeshift -tk tmux traceroute tree @@ -250,7 +235,6 @@ udftools udpcast unrar unzip -usb_modeswitch usbutils util-linux vi @@ -270,9 +254,7 @@ wqy-microhei wvdial x11vnc xarchiver -xfburn xfce4 -xfce4-pulseaudio-plugin xfce4-screenshooter xfce4-taskmanager xfsdump @@ -280,15 +262,26 @@ xfsprogs xkbsel xkeyboard-config xl2tpd -xorg-apps xorg-drivers xorg-server +xorg-setxkbmap +xorg-xauth +xorg-xbacklight +xorg-xdpyinfo +xorg-xev +xorg-xhost xorg-xinit +xorg-xinput +xorg-xkill +xorg-xmodmap +xorg-xprop +xorg-xrandr +xorg-xset +xorg-xwininfo xz yay -yubikey-manager -yubikey-personalization-gui zerofree +zfs-dkms zip zsh zstd diff --git a/pacman.conf b/pacman.conf index e147c94..0908bd6 100644 --- a/pacman.conf +++ b/pacman.conf @@ -76,9 +76,16 @@ Server = https://sysrescuerepo.system-rescue.org/$arch SigLevel = Optional TrustAll # ==== END sysrescuerepo ==== +[archzfs] +Server = https://github.com/archzfs/archzfs/releases/download/experimental +SigLevel = TrustAll + +[systemrescue+zfs] +Server = http://oss.blazis.com/pacman/$repo/$arch +SigLevel = Optional + [core] Include = /etc/pacman.d/mirrorlist [extra] Include = /etc/pacman.d/mirrorlist - diff --git a/syslinux/sysresccd_head.cfg b/syslinux/sysresccd_head.cfg index 231f348..18c609c 100644 --- a/syslinux/sysresccd_head.cfg +++ b/syslinux/sysresccd_head.cfg @@ -1,6 +1,6 @@ SERIAL 0 115200 UI boot/syslinux/vesamenu.c32 -MENU TITLE SYSTEM-RESCUE %ISO_VERSION% %ISO_ARCH% (www.system-rescue.org) +MENU TITLE %ISO_APPLICATION% %ISO_VERSION% MENU BACKGROUND #c000a8a8 TIMEOUT 300 diff --git a/syslinux/sysresccd_pxe.cfg b/syslinux/sysresccd_pxe.cfg index f9f3187..f99049f 100644 --- a/syslinux/sysresccd_pxe.cfg +++ b/syslinux/sysresccd_pxe.cfg @@ -8,7 +8,7 @@ ENDTEXT MENU LABEL Boot SystemRescue (NBD) LINUX boot/%ISO_ARCH%/vmlinuz INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/%ISO_ARCH%/sysresccd.img -APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% archiso_nbd_srv=${pxeserver} %DEFAULT_KERNEL_PARAM% +APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% archiso_nbd_srv=${pxeserver} %DEFAULT_KERNEL_PARAM% %CONSOLES% SYSAPPEND 3 LABEL sysresccd_nfs @@ -19,7 +19,7 @@ ENDTEXT MENU LABEL Boot SystemRescue (NFS) LINUX boot/%ISO_ARCH%/vmlinuz INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/%ISO_ARCH%/sysresccd.img -APPEND archisobasedir=%INSTALL_DIR% archiso_nfs_srv=${pxeserver}:/run/sysresccd/bootmnt %DEFAULT_KERNEL_PARAM% +APPEND archisobasedir=%INSTALL_DIR% archiso_nfs_srv=${pxeserver}:/run/sysresccd/bootmnt %DEFAULT_KERNEL_PARAM% %CONSOLES% SYSAPPEND 3 LABEL sysresccd_http @@ -30,7 +30,7 @@ ENDTEXT MENU LABEL Boot SystemRescue (HTTP) LINUX boot/%ISO_ARCH%/vmlinuz INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/%ISO_ARCH%/sysresccd.img -APPEND archisobasedir=%INSTALL_DIR% archiso_http_srv=http://${pxeserver}/ %DEFAULT_KERNEL_PARAM% +APPEND archisobasedir=%INSTALL_DIR% archiso_http_srv=http://${pxeserver}/ %DEFAULT_KERNEL_PARAM% %CONSOLES% SYSAPPEND 3 INCLUDE boot/syslinux/sysresccd_tail.cfg diff --git a/syslinux/sysresccd_sys.cfg b/syslinux/sysresccd_sys.cfg index 146b9cc..c06a1c1 100644 --- a/syslinux/sysresccd_sys.cfg +++ b/syslinux/sysresccd_sys.cfg @@ -7,7 +7,16 @@ ENDTEXT MENU LABEL Boot SystemRescue using default options LINUX boot/%ISO_ARCH%/vmlinuz INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/%ISO_ARCH%/sysresccd.img -APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% %DEFAULT_KERNEL_PARAM% +APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% %DEFAULT_KERNEL_PARAM% %CONSOLES% + +LABEL sysresccd_nofirewall +TEXT HELP +Boot the SystemRescue live medium with the firewall disabled. +ENDTEXT +MENU LABEL Boot SystemRescue with the firewall disabled (nofirewall) +LINUX boot/%ISO_ARCH%/vmlinuz +INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/%ISO_ARCH%/sysresccd.img +APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% %DEFAULT_KERNEL_PARAM% %CONSOLES% nofirewall LABEL sysresccd_copytoram TEXT HELP @@ -16,7 +25,7 @@ ENDTEXT MENU LABEL Boot SystemRescue and copy system to RAM (copytoram) LINUX boot/%ISO_ARCH%/vmlinuz INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/%ISO_ARCH%/sysresccd.img -APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% %DEFAULT_KERNEL_PARAM% copytoram +APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% %DEFAULT_KERNEL_PARAM% %CONSOLES% copytoram LABEL sysresccd_checksum TEXT HELP @@ -25,7 +34,7 @@ ENDTEXT MENU LABEL Boot SystemRescue and verify integrity of the medium (checksum) LINUX boot/%ISO_ARCH%/vmlinuz INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/%ISO_ARCH%/sysresccd.img -APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% %DEFAULT_KERNEL_PARAM% checksum +APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% %DEFAULT_KERNEL_PARAM% %CONSOLES% checksum LABEL sysresccd_nomodeset TEXT HELP @@ -34,16 +43,7 @@ ENDTEXT MENU LABEL Boot SystemRescue using basic display drivers (nomodeset) LINUX boot/%ISO_ARCH%/vmlinuz INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/%ISO_ARCH%/sysresccd.img -APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% %DEFAULT_KERNEL_PARAM% nomodeset - -LABEL sysresccd-serial -TEXT HELP -Use a serial console. -ENDTEXT -MENU LABEL Boot SystemRescue with serial console (ttyS0,115200n8) -LINUX boot/%ISO_ARCH%/vmlinuz -INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/%ISO_ARCH%/sysresccd.img -APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% %DEFAULT_KERNEL_PARAM% console=tty0 console=ttyS0,115200n8 +APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% %DEFAULT_KERNEL_PARAM% %CONSOLES% nomodeset LABEL sysresccd-nomdlvm TEXT HELP @@ -53,7 +53,7 @@ ENDTEXT MENU LABEL Boot SystemRescue, do not activate md raid or lvm (nomdlvm) LINUX boot/%ISO_ARCH%/vmlinuz INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/%ISO_ARCH%/sysresccd.img -APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% %DEFAULT_KERNEL_PARAM% nomdlvm +APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% %DEFAULT_KERNEL_PARAM% %CONSOLES% nomdlvm LABEL sysresccd_findroot TEXT HELP @@ -62,7 +62,7 @@ ENDTEXT MENU LABEL Boot a Linux operating system installed on the disk (findroot) LINUX boot/%ISO_ARCH%/vmlinuz INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/%ISO_ARCH%/sysresccd.img -APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% %DEFAULT_KERNEL_PARAM% findroot +APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% %DEFAULT_KERNEL_PARAM% %CONSOLES% findroot LABEL sysresccd_break TEXT HELP @@ -71,7 +71,7 @@ ENDTEXT MENU LABEL Stop during the boot process before mounting the root filesystem LINUX boot/%ISO_ARCH%/vmlinuz INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/%ISO_ARCH%/sysresccd.img -APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% %DEFAULT_KERNEL_PARAM% break +APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% %DEFAULT_KERNEL_PARAM% %CONSOLES% break INCLUDE boot/syslinux/sysresccd_custom.cfg diff --git a/syslinux/sysresccd_tail.cfg b/syslinux/sysresccd_tail.cfg index 605c2e6..4ec9e14 100644 --- a/syslinux/sysresccd_tail.cfg +++ b/syslinux/sysresccd_tail.cfg @@ -11,6 +11,7 @@ APPEND hd0 0 LABEL memtest MENU LABEL Run Memtest86+ (RAM test) LINUX boot/memtest +APPEND %CONSOLES% # http://hdt-project.org/ #LABEL hdt diff --git a/sysrescue.d/999-custom.yaml b/sysrescue.d/999-custom.yaml new file mode 100644 index 0000000..ec186ba --- /dev/null +++ b/sysrescue.d/999-custom.yaml @@ -0,0 +1,2 @@ +sysconfig: + bookmarks: false # don't generate Firefox configuration