diff --git a/srcpkgs/btrfs-progs/files/btrfs.initramfs-hook b/srcpkgs/btrfs-progs/files/btrfs.initramfs-hook
new file mode 100644
index 00000000000..3fd4b39e4a1
--- /dev/null
+++ b/srcpkgs/btrfs-progs/files/btrfs.initramfs-hook
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+PREREQ=""
+
+prereqs()
+{
+	echo "$PREREQ"
+}
+
+case $1 in
+# get pre-requisites
+prereqs)
+	prereqs
+	exit 0
+	;;
+esac
+
+. /usr/share/initramfs-tools/hook-functions
+
+if [ -x /usr/bin/btrfs ]; then
+	force_load btrfs
+	copy_exec /usr/bin/btrfs sbin
+fi
+
+exit 0
diff --git a/srcpkgs/btrfs-progs/files/btrfs.initramfs-local-top b/srcpkgs/btrfs-progs/files/btrfs.initramfs-local-top
new file mode 100644
index 00000000000..e6538cf314e
--- /dev/null
+++ b/srcpkgs/btrfs-progs/files/btrfs.initramfs-local-top
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+PREREQS=""
+prereqs()
+{
+	echo $PREREQS
+}
+
+case $1 in
+# get pre-requisites
+prereqs)
+	prereqs
+	exit 0
+	;;
+esac
+
+# Activate btrfs multi-volumes.
+. /scripts/functions
+
+_log_msg "Activating btrfs multi-volumes..."
+/sbin/btrfs device scan