Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nchevsky/systemrescue-zfs
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.
https://github.com/nchevsky/systemrescue-zfs
archlinux archzfs linux-distribution live-cd rescue zfs
Last synced: about 2 months ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/nchevsky/systemrescue-zfs
- Owner: nchevsky
- License: gpl-3.0
- Created: 2019-09-22T00:07:20.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-01-20T19:15:50.000Z (8 months ago)
- Last Synced: 2024-06-03T09:42:35.979Z (4 months ago)
- Topics: archlinux, archzfs, linux-distribution, live-cd, rescue, zfs
- Language: Shell
- Homepage:
- Size: 523 KB
- Stars: 92
- Watchers: 6
- Forks: 14
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog
- License: LICENSE
Awesome Lists containing this project
README
# Overview
**SystemRescue+ZFS** is a fork of the [SystemRescue](http://www.system-rescue.org/) distribution (based on [Arch Linux](https://www.archlinux.org)) with the following improvements:
- [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
- Headers and done vs. skipped indicators for each build step
- Extra polish# 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](https://www.kernel.org/doc/html/latest/admin-guide/serial-console.html), then [build](#building) a new image.
## Bootloader
| [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` |## Kernel
📍 [`build.sh`](build.sh)
`consoles='console=ttyS0,115200 …'`# Building
```sh
$ sudo ./build.sh [-d] [-v]
```- `-d`: Turn off compression, significantly speeding up development builds.
- `-v`: Print more information while building (strongly recommended).## Dependencies
[Arch Linux](https://www.archlinux.org) 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`## Rebuilds
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`