lilac/repo/bcachefs-tools-git/add-mkinitcpio-hook-for-Arch.patch

131 lines
4.2 KiB
Diff

From ad41c2fb76a96f772d75f3b4b7687fcd29aa0574 Mon Sep 17 00:00:00 2001
From: Christophe B Billheimer <cbillhei@gmu.edu>
Date: Sat, 28 Jul 2018 22:54:36 -0400
Subject: [PATCH] add mkinitcpio hook for Arch and sample /etc/mkinitcpio.conf
---
arch/etc/initcpio/hooks/bcachefs | 14 +++++++
arch/etc/initcpio/install/bcachefs | 17 ++++++++
arch/etc/mkinitcpio.conf | 66 ++++++++++++++++++++++++++++++
3 files changed, 97 insertions(+)
create mode 100644 arch/etc/initcpio/hooks/bcachefs
create mode 100644 arch/etc/initcpio/install/bcachefs
create mode 100644 arch/etc/mkinitcpio.conf
diff --git a/arch/etc/initcpio/hooks/bcachefs b/arch/etc/initcpio/hooks/bcachefs
new file mode 100644
index 0000000..cc2ed7e
--- /dev/null
+++ b/arch/etc/initcpio/hooks/bcachefs
@@ -0,0 +1,14 @@
+#!/usr/bin/ash
+
+run_hook() {
+
+# check if $root needs unlocking
+if bcachefs unlock -c $root >/dev/null 2>&1; then
+ echo "Unlocking $root:"
+ while true; do
+ bcachefs unlock $root && break
+ done
+fi
+}
+
+# vim: set ft=sh ts=4 sw=4 et:
diff --git a/arch/etc/initcpio/install/bcachefs b/arch/etc/initcpio/install/bcachefs
new file mode 100644
index 0000000..67ce186
--- /dev/null
+++ b/arch/etc/initcpio/install/bcachefs
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+build() {
+ add_module "bcachefs"
+ add_binary "bcachefs"
+
+ add_runscript
+
+}
+
+help() {
+ cat <<HELPEOF
+This hook is for getting the bcachefs unlock prompt at boot
+HELPEOF
+}
+
+# vim set ft=sh ts=4 sw=4 et:
diff --git a/arch/etc/mkinitcpio.conf b/arch/etc/mkinitcpio.conf
new file mode 100644
index 0000000..f395e18
--- /dev/null
+++ b/arch/etc/mkinitcpio.conf
@@ -0,0 +1,66 @@
+# vim:set ft=sh
+# MODULES
+# The following modules are loaded before any boot hooks are
+# run. Advanced users may wish to specify all system modules
+# in this array. For instance:
+# MODULES=(piix ide_disk reiserfs)
+MODULES=(bcachefs)
+
+# BINARIES
+# This setting includes any additional binaries a given user may
+# wish into the CPIO image. This is run last, so it may be used to
+# override the actual binaries included by a given hook
+# BINARIES are dependency parsed, so you may safely ignore libraries
+BINARIES=(bcachefs)
+
+# FILES
+# This setting is similar to BINARIES above, however, files are added
+# as-is and are not parsed in any way. This is useful for config files.
+FILES=()
+
+# HOOKS
+# This is the most important setting in this file. The HOOKS control the
+# modules and scripts added to the image, and what happens at boot time.
+# Order is important, and it is recommended that you do not change the
+# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
+# help on a given hook.
+# 'base' is _required_ unless you know precisely what you are doing.
+# 'udev' is _required_ in order to automatically load modules
+# 'filesystems' is _required_ unless you specify your fs modules in MODULES
+# Examples:
+## This setup specifies all modules in the MODULES setting above.
+## No raid, lvm2, or encrypted root is needed.
+# HOOKS="base"
+#
+## This setup will autodetect all modules for your system and should
+## work as a sane default
+# HOOKS="base udev autodetect block filesystems"
+#
+## This setup will generate a 'full' image which supports most systems.
+## No autodetection is done.
+# HOOKS="base udev block filesystems"
+#
+## This setup assembles a pata mdadm array with an encrypted root FS.
+## Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
+# HOOKS="base udev block mdadm encrypt filesystems"
+#
+## This setup loads an lvm2 volume group on a usb device.
+# HOOKS="base udev block lvm2 filesystems"
+#
+## NOTE: If you have /usr on a separate partition, you MUST include the
+# usr, fsck and shutdown hooks.
+HOOKS=(base udev autodetect modconf block filesystems bcachefs keyboard fsck)
+
+# COMPRESSION
+# Use this to compress the initramfs image. By default, gzip compression
+# is used. Use 'cat' to create an uncompressed image.
+#COMPRESSION="gzip"
+#COMPRESSION="bzip2"
+#COMPRESSION="lzma"
+#COMPRESSION="xz"
+#COMPRESSION="lzop"
+#COMPRESSION="lz4"
+
+# COMPRESSION_OPTIONS
+# Additional options for the compressor
+#COMPRESSION_OPTIONS=""