12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- commit 75c2fb953c99bba008f1ef72ee71136002749f51
- Author: Richard Yao <ryao@cs.stonybrook.edu>
- Date: Tue May 28 20:08:15 2013 -0400
- Improve OpenRC init script
-
- The current zfs OpenRC script's dependencies cause OpenRC to attempt to
- unmount ZFS filesystems at shutdown while things were still using them,
- which would fail. This is a cosmetic issue, but it should still be
- addressed. It probably does not affect systems where the rootfs is a
- legacy filesystem, but any system with the rootfs on ZFS needs to run
- the ZFS init script after the system is ready to shutdown filesystems.
-
- OpenRC's shutdown process occurs in the reverse order of the startup
- process. Therefore running the ZFS shutdown procedure after filesystems
- are ready to be unmounted requires running the startup procedure before
- fstab. This patch changes the dependencies of the script to expliclty
- run before fstab at boot when the rootfs is ZFS and to run after fstab
- at boot whenever the rootfs is not ZFS. This should cover most use
- cases.
-
- The only cases not covered well by this are systems with legacy
- root filesystems where people want to configure fstab to mount a non-ZFS
- filesystem off a zvol and possibly also systems whose pools are stored
- on network block devices. The former requires that the ZFS script run
- before fstab, which could cause ZFS datasets to mount too early and
- appear under the fstab mount points. The latter requires that the ZFS
- script run after networking starts, which precludes the ability to store
- any system information on ZFS. An additional OpenRC script could be
- written to handle non-root pools on network block devices, but that will
- depend on user demand and developer time.
-
- Signed-off-by: Richard Yao <ryao@cs.stonybrook.edu>
- diff --git a/etc/init.d/zfs.gentoo.in b/etc/init.d/zfs.gentoo.in
- index 5b8671e..0034e02 100644
- --- a/etc/init.d/zfs.gentoo.in
- +++ b/etc/init.d/zfs.gentoo.in
- @@ -10,9 +10,16 @@ fi
-
- depend()
- {
- + # Try to allow people to mix and match fstab with ZFS in a way that makes sense.
- + if [ "$(mountinfo -s /)" = 'zfs' ]
- + then
- + before localmount
- + else
- + after localmount
- + fi
- +
- # bootmisc will log to /var which may be a different zfs than root.
- - before net bootmisc
- - after udev localmount
- + before bootmisc logger
- keyword -lxc -openvz -prefix -vserver
- }
-
|