blob: b8d2f40ebcd10428a68cdd578c4cd9934404e025 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
post_install() {
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() {
post_install "$1"
}
pre_remove() {
[ -n "${1%%[-_]*}" ] && dkms remove zfs/${1%%[-_]*} --all &>/dev/null || true
}
post_remove() {
check_initramfs "remove"
}
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
}
|