From: "Darrick J. Wong" <darrick.wong@oracle.com>
To: Eric Sandeen <sandeen@redhat.com>
Cc: xfs <linux-xfs@vger.kernel.org>
Subject: [PATCH] xfs: add debian initramfs hook to package
Date: Thu, 26 Jul 2018 14:51:54 -0700 [thread overview]
Message-ID: <20180726215154.GI30972@magnolia> (raw)
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
next reply other threads:[~2018-07-26 23:10 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-26 21:51 Darrick J. Wong [this message]
2018-07-27 14:28 ` [PATCH] xfs: add debian initramfs hook to package 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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180726215154.GI30972@magnolia \
--to=darrick.wong@oracle.com \
--cc=linux-xfs@vger.kernel.org \
--cc=sandeen@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).