linux-xfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] xfs: add debian initramfs hook to package
@ 2018-07-26 21:51 Darrick J. Wong
  2018-07-27 14:28 ` Bill O'Donnell
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Darrick J. Wong @ 2018-07-26 21:51 UTC (permalink / raw)
  To: Eric Sandeen; +Cc: xfs

From: Darrick J. Wong <darrick.wong@oracle.com>

In Debian bug 904086, the reporter complained that xfs_repair wasn't
present in the initramfs, which prevented him from using shutdown -F to
force a filesystem fsck after a reboot.  Add a hook to put the xfs
utilities in the initramfs if xfs is the root filesystem.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
---
 debian/local/initramfs.hook |   47 +++++++++++++++++++++++++++++++++++++++++++
 debian/rules                |    1 +
 2 files changed, 48 insertions(+)
 create mode 100644 debian/local/initramfs.hook

diff --git a/debian/local/initramfs.hook b/debian/local/initramfs.hook
new file mode 100644
index 00000000..20df5d69
--- /dev/null
+++ b/debian/local/initramfs.hook
@@ -0,0 +1,47 @@
+#!/bin/sh
+
+# Put XFS utilities in initramfs if the root fs is XFS.
+
+PREREQ=""
+
+prereqs()
+{
+	echo "$PREREQ"
+}
+
+case $1 in
+prereqs)
+	prereqs
+	exit 0
+	;;
+esac
+
+fstab_files()
+{
+	echo /etc/fstab
+	if [ -d /etc/fstab.d ]; then
+		ls -1 /etc/fstab.d | grep '\.fstab$' | sed -e 's;^;/etc/fstab.d/;'
+	fi
+}
+
+rootfs_type() {
+	fstab_files | while read file; do
+		test ! -f "$file" && continue
+
+		while read MNT_FSNAME MNT_DIR MNT_TYPE MNT_OPTS MNT_FREQ MNT_PASS MNT_JUNK; do
+			test "$MNT_DIR" != "/" && continue
+			echo "$MNT_TYPE"
+			break;
+		done < "$file"
+	done
+}
+
+. /usr/share/initramfs-tools/scripts/functions
+. /usr/share/initramfs-tools/hook-functions
+
+if [ "$(rootfs_type)" = "xfs" ]; then
+	copy_exec /sbin/xfs_repair
+	copy_exec /usr/sbin/xfs_db
+	copy_exec /usr/sbin/xfs_metadump
+fi
+exit 0
diff --git a/debian/rules b/debian/rules
index cb4fa22c..4c50654c 100755
--- a/debian/rules
+++ b/debian/rules
@@ -77,6 +77,7 @@ binary-arch: checkroot built
 	$(pkgdev) $(MAKE) -C . install-dev
 	$(pkgdi)  $(MAKE) -C debian install-d-i
 	$(pkgme)  $(MAKE) dist
+	install -D -m 0755 debian/local/initramfs.hook debian/xfsprogs/usr/share/initramfs-tools/hooks/xfs
 	rmdir debian/xfslibs-dev/usr/share/doc/xfsprogs
 	rm -f debian/xfslibs-dev/lib/libhandle.la
 	rm -fr debian/xfslibs-dev/usr/lib

^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2018-07-30 17:39 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-07-26 21:51 [PATCH] xfs: add debian initramfs hook to package Darrick J. Wong
2018-07-27 14:28 ` Bill O'Donnell
2018-07-28  0:13 ` Eric Sandeen
2018-07-28  0:22   ` Eric Sandeen
2018-07-28  7:44   ` Darrick J. Wong
2018-07-28 15:47     ` Eric Sandeen
2018-07-28 18:35       ` Darrick J. Wong
2018-07-28 18:36 ` [PATCH v2] " Darrick J. Wong
2018-07-30 16:04   ` Eric Sandeen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).