summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog14
-rw-r--r--debian/control2
-rw-r--r--debian/mdadm-shutdown.service20
-rwxr-xr-xdebian/rules1
4 files changed, 36 insertions, 1 deletions
diff --git a/debian/changelog b/debian/changelog
index 7dad63ad..566a9a04 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,17 @@
+mdadm (4.0-2) unstable; urgency=medium
+
+ * Ship mdadm-shutdown.service and suggest dracut-core. Users of systemd
+ with rootfs on Intel Matrix Raid and DDF external metadata-raid arrays
+ that require mdmon monitoring, may wish to install dracut-core package
+ and enable mdadm-shutdown.service. This will create a shutdown
+ initramfs, that systemd-shutdown can pivot to. This may result in an
+ improved shutdown behaviour with less hangs and synced raid
+ arrays. The generated initramfs will takeover mdmon monitoring, wait
+ for the arrays to be clean before stopping them and unmounting
+ everything and finally executing requested shutdown command.
+
+ -- Dimitri John Ledkov <xnox@ubuntu.com> Tue, 10 Oct 2017 11:55:52 +0100
+
mdadm (4.0-1) unstable; urgency=medium
* New upstream release. LP: #1668128
diff --git a/debian/control b/debian/control
index df66b9ad..41dfdc8d 100644
--- a/debian/control
+++ b/debian/control
@@ -13,7 +13,7 @@ Package: mdadm
Architecture: linux-any
Depends: ${shlibs:Depends}, udev, ${misc:Depends}, lsb-base, debconf
Recommends: ${mta:Recommends}, kmod | module-init-tools
-Suggests: ${mta:Suggests}
+Suggests: ${mta:Suggests}, dracut-core
Description: tool to administer Linux MD arrays (software RAID)
The mdadm utility can be used to create, manage, and monitor MD
(multi-disk) arrays for software RAID or multipath I/O.
diff --git a/debian/mdadm-shutdown.service b/debian/mdadm-shutdown.service
new file mode 100644
index 00000000..59762c8f
--- /dev/null
+++ b/debian/mdadm-shutdown.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Prepare mdadm shutdown initramfs
+ConditionFileIsExecutable=/usr/bin/dracut
+After=local-fs.target boot.mount boot.automount
+Wants=local-fs.target
+Conflicts=shutdown.target umount.target
+DefaultDependencies=no
+
+[Service]
+RemainAfterExit=yes
+Type=oneshot
+ExecStart=/bin/true
+ExecStop=/bin/mount -o remount,exec,suid /run
+ExecStop=/bin/mkdir -p /run/initramfs
+ExecStop=/usr/bin/dracut --no-compress --no-kernel --quiet --force --force-add "shutdown mdraid" --omit "caps" /run/initramfs/shutdown.cpio
+ExecStop=/bin/sh -c 'cd /run/initramfs; cpio -id --quiet < shutdown.cpio'
+ExecStop=/bin/rm /run/initramfs/shutdown.cpio
+
+[Install]
+WantedBy=sysinit.target
diff --git a/debian/rules b/debian/rules
index 1ed970a9..b13f218a 100755
--- a/debian/rules
+++ b/debian/rules
@@ -67,6 +67,7 @@ install-arch: build-arch
install -Dm0755 udeb/mdadm $(DESTDIR_UDEB)/sbin/mdadm
install -Dm0755 udeb/mdmon $(DESTDIR_UDEB)/sbin/mdmon
install -Dm0644 udev-md-raid-arrays.rules $(DESTDIR_UDEB)/lib/udev/rules.d/63-md-raid-arrays.rules
+ install -Dm0644 debian/mdadm-shutdown.service $(DESTDIR)/lib/systemd/system/mdadm-shutdown.service
ifeq ($(shell dpkg-vendor --derives-from Ubuntu && echo yes), yes)
install -Dm0644 udev-md-raid-assembly.rules $(DESTDIR_UDEB)/lib/udev/rules.d/64-md-raid-assembly.rules
install -Dm0644 debian/source_mdadm.py $(DESTDIR)/usr/share/apport/package-hooks/source_mdadm.py