Skip to content

A fork of SystemRescue (formerly SystemRescueCd) with ZFS built-in and serial console access enabled for all boot options. Download bootable ISOs from the releases page.

License

Notifications You must be signed in to change notification settings

nchevsky/systemrescue-zfs

Repository files navigation

Overview

SystemRescue+ZFS is a fork of the SystemRescue distribution (based on Arch Linux) with the following improvements:

  • ZFS supported out of the box
  • Serial console enabled for all boot options, including Memtest86+
  • EFI boot progress indicators for the kernel/initramfs/system stages
  • ISO image below 1 GiB in size

Serial console

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, then build a new image.

Bootloader

GRUB (EFI boot) SYSLINUX (legacy boot)
📍 efiboot/grub/grubsrcd.cfg
serial --unit=0 --speed=115200 …
📍 syslinux/sysresccd_head.cfg
SERIAL 0 115200

Kernel

📍 build.sh
consoles='console=ttyS0,115200 …'

Building

$ sudo ./build.sh [-d] [-v]
  • -d: Use fast compression, significantly speeding up development builds.
  • -v: Print more information while building (strongly recommended).

Dependencies

Arch Linux with the following packages installed:

  • arch-install-scripts
  • archiso from the custom SystemRescue repository ⚠️
  • base-devel
  • edk2-shell
  • grub
  • hugo
  • isomd5sum
  • mtools

Rebuilds

The state of successful build 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

$ 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