Skip to content

SRM kernel modules for SystemRescueCD (Gentoo Linux based) releases, allowing access to zpools running on latest upstream ZFSonLinux code

Notifications You must be signed in to change notification settings

kernelOfTruth/ZFS-for-SystemRescueCD

Repository files navigation

ABOUT
-----------------------------------------------------------------------------------------------------------------------
The ZFS kernel modules provided within this repository (SRM files)
add up-to-date support to SystemRescueCD for accessing current ZFS pools
(by courtesy of the ZFSonLinux and OpenZFS project).

Since some of us are running bleeding-edge, upgraded upstream 
zpools, with the usually provided ZFS support in the liveCDs 
and live-media (v0.6.4, and especially v0.6.5*) access isn't easily 
possible to the stored data, which can be quite troubling in case 
of emergencies.

With the introduction of the SRM (System-Rescue-Modules) it is quite
easy to add additional programs or kernel modules - therefore the
emergence of this project.



CONTENT
-----------------------------------------------------------------------------------------------------------------------
This repository contains the following things:

- Bliss Initramfs Creator - v1.8.1 (bliss-initramfs/1.8.1)

- Kernel Configuration of SysRescCD 4.6.1 kernels (slightly modified to succeed build; kernel-config/config-amd64-*)

- up-to-date ZFS SRM modules for SysRescCD 4.6.1 (spl, zfs-kmod, zfs), as of December 18th (CET) 2015
  (SRM-modules/4.6.1)


SRM-Modules
-----------------------------------------------------------------------------------------------------------------------
Info about the kernel modules:

Toolchain was: Binutils 2.23.2, GCC Hardened 4.8.4 p1.3, pie-0.6.1 [vanilla] (very similar to SystemRescueCD)

CFLAGS: -march=x86-64 -mtune=generic


HOWTO
-----------------------------------------------------------------------------------------------------------------------

- when using SystemRescueCD 4.6.1 on an USB stick - everything needed to do is
 
- follow the instructions from http://www.sysresccd.org/Sysresccd-manual-en_How_to_install_SystemRescueCd_on_an_USB-stick

- have the usbstick mounted (mount -t vfat /dev/sdf1 /mnt/usbstick)

- then copy over the zfs-core and zfs-kmod SRM files to the root of the usbstick(zfs-core-3.14.56-std461-amd64.srm, 
  zfs-core-4.1.12-alt461-amd64.srm, zfs-kmod-3.14.56-std461-amd64.srm, zfs-kmod-4.1.12-alt461-amd64.srm)
  
- make sure that the usbstick is bootable, otherwise rewrite syslinux to the device (e.g. syslinux /dev/sdf1 && sync)

- ...

- during boot choose the 64bit versions (both default and alternative are supported), pick your keymap configuration

- after boot has finished run 'depmod'

- then a simple 'modprobe zfs' should be enough

- check state and version of zfs with 'zpool upgrade -v'

- Enjoy !


KERNEL BUILD
-----------------------------------------------------------------------------------------------------------------------
To avoid the '+' being appended to the kernel version string,
(http://stackoverflow.com/questions/19333918/dont-add-to-linux-kernel-version)
make sure you have, e.g.

CONFIG_LOCALVERSION="-alt461-amd64"
# CONFIG_LOCALVERSION_AUTO is not set

set in the kernel config (.config),

"EXTRAVERSION =" in Makefile (without the quotation marks),

and (to be *really* sure), copy over the kernel directory and then delete the .git folder and .gitignore file - 
so essentially rm -rf .git*

Be sure to have backups of your git folder and know what you are doing otherwise you might LOSE ALL YOUR GIT DATA !


LICENSES, COPYRIGHT
-----------------------------------------------------------------------------------------------------------------------

SPL:
----------------------------------------------------------------------
https://github.com/zfsonlinux/spl/blob/master/COPYING

ZFS:
----------------------------------------------------------------------
https://github.com/zfsonlinux/zfs/blob/master/COPYRIGHT


Below is the README of Bliss Initramfs 1.8.1, which was referenced in
http://www.funtoo.org/Creating_System_Rescue_CD_ZFS_Modules and
was downloaded from https://github.com/fearedbliss/bliss-initramfs

Bliss Initramfs:
----------------------------------------------------------------------
Bliss Initramfs Creator - v1.8.1
Jonathan Vasquez <[email protected]>
Funtoo Linux @ ZoL 0.6.1

Distributed under the Simplified BSD License which can be found in the LICENSE file.

This script generates an initramfs image with all the included files and 
dependencies needed to mount your zpool.

You will need a few programs already installed on your computer since this 
script just automates the process of you actually going into your filesystem,
and getting all those files.

Please have the following installed:

- Linux Kernel
  ZLIB_INFLATE/DEFLATE must be compiled into the kernel (not as a module).
  > ZLIB_INFLATE [=y], ZLIB_DEFLATE [=y]
  
  General setup --->
  > [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
  > () Initramfs source file(s)

  Device Drivers --->
  > Generic Driver Options --->
  >> [*] Maintain a devtmpfs filesystem to mount at /dev
  >> [*] Automount devtmpfs at /dev, after the kernel mounted the rootfs

  # Only if you want to make an SRM
  > File systems --->
  >> Miscellaneous filesystems --->
  >>> <*> SquashFS 4.0 - Squashed file system support
  >>> [*] Squashfs XATTR support
  >>> [*] Include support for ZLIB compressed file systems
  >>> [*] Include support for LZO compressed file systems
  >>> [*] Include support for XZ compressed file systems

  * All other drivers required to see your PATA/SATA drives must be compiled in.

- app-arch/cpio
- sys-apps/busybox
- sys-kernel/spl
- sys-fs/zfs
- sys-fs/zfs-kmod

For SRM creation:
- sys-fs/squashfs-tools

For LUKS support:
- sys-fs/cryptsetup

- Linux Kernel
  Device Drivers --->
  [*] Multiple devices driver support (RAID and LVM) --->
  <*> Device mapper support
  <*> Crypt target support

  Cryptographic API --->
  <*> XTS support
  -*- AES cipher algorithms

For more information/instructions check the USAGE file.



SOURCES
-----------------------------------------------------------------------------------------------------------------------
Kernel sources (at least for 4.6.1) can be found at:
https://github.com/kernelOfTruth/linux/commits/linux-3.14.56-std461-amd64
https://github.com/kernelOfTruth/linux/commits/linux-4.1.12-alt461-amd64

Sources for SPL and ZFS can be found at (mirrored from the ZFS upstream repos):
https://github.com/kernelOfTruth/zfs/commits/zfs_master_18.12.2015_sysresccd461
https://github.com/kernelOfTruth/spl/commits/spl_master_18.12.2015


CHANGES
-----------------------------------------------------------------------------------------------------------------------
the history of changes is listed in the CHANGES file

About

SRM kernel modules for SystemRescueCD (Gentoo Linux based) releases, allowing access to zpools running on latest upstream ZFSonLinux code

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published