summarylogtreecommitdiffstats
path: root/zfs.install
diff options
context:
space:
mode:
Diffstat (limited to 'zfs.install')
-rw-r--r--zfs.install45
1 files changed, 36 insertions, 9 deletions
diff --git a/zfs.install b/zfs.install
index f406c472032e..b8d2f40ebcd1 100644
--- a/zfs.install
+++ b/zfs.install
@@ -1,17 +1,44 @@
post_install() {
- check_initramfs
+ dkms add zfs/${1%%[-_]*}
+ cat << EOF
+==> To build and install your modules run: dkms install zfs/${1%%[_-]*} -k [KERNEL]
+==> To do this automatically at startup run: systemctl enable dkms.service
+EOF
+ check_initramfs "install"
+}
+
+pre_upgrade() {
+ pre_remove "$2"
}
post_upgrade() {
- check_initramfs
+ post_install "$1"
}
-check_initramfs() {
- echo " >>> To build the module for the current kernel use this command:
- # dkms install zfs/0.6.5.2 -k _KERNEL_VERSION_HERE_
- or just boot to kernel you want to build and do
- # dkms install zfs/0.6.5.2 -k \$(uname -r)
+pre_remove() {
+ [ -n "${1%%[-_]*}" ] && dkms remove zfs/${1%%[-_]*} --all &>/dev/null || true
+}
+
+post_remove() {
+ check_initramfs "remove"
+}
- >>> Always remember to install kernel headers!
-"
+check_initramfs() {
+ if grep -v '#' /etc/mkinitcpio.conf | grep zfs >/dev/null; then
+ if [[ $1 == 'remove' ]]; then
+ echo '==> The ZFS packages have been removed, but "zfs" remains in the "hooks"'
+ echo '==> list in mkinitcpio.conf! You will need to remove "zfs" from the '
+ echo '==> "hooks" list and then regenerate the initial ramdisk.'
+ elif grep -v '#' /etc/mkinitcpio.conf | grep dkms >/dev/null; then
+ echo '==> Generating initial ramdisk automatically (mkinitcpio-dkms found)'
+ for preset in /etc/mkinitcpio.d/*.preset; do
+ mkinitcpio -p "$(basename "$preset" .preset)"
+ done
+ else
+ echo '==> The ZFS packages are installed/updated, you need to (re)generate initial ramdisk yourself'
+ echo '==> After modules are built and installed, run: mkinitcpio -p [PRESET]'
+ echo '==> To do it automatically, you can also install mkinitcpio-dkms package'
+ echo '==> and add "dkms" to HOOKSs (before zfs)'
+ fi
+ fi
}