]>
Commit | Line | Data |
---|---|---|
c9c0d073 BB |
1 | #!/bin/bash |
2 | # | |
3 | # A simple script to simply the loading/unloading the ZFS module stack. | |
4 | ||
c552fbc5 | 5 | basedir=$(dirname "$0") |
c9c0d073 BB |
6 | |
7 | SCRIPT_COMMON=common.sh | |
8 | if [ -f "${basedir}/${SCRIPT_COMMON}" ]; then | |
9 | . "${basedir}/${SCRIPT_COMMON}" | |
10 | else | |
11 | echo "Missing helper script ${SCRIPT_COMMON}" && exit 1 | |
12 | fi | |
13 | ||
c552fbc5 | 14 | # shellcheck disable=SC2034 |
c9c0d073 BB |
15 | PROG=zfs.sh |
16 | UNLOAD= | |
17 | ||
18 | usage() { | |
19 | cat << EOF | |
20 | USAGE: | |
21 | $0 [hvud] [module-options] | |
22 | ||
23 | DESCRIPTION: | |
24 | Load/unload the ZFS module stack. | |
25 | ||
26 | OPTIONS: | |
27 | -h Show this message | |
28 | -v Verbose | |
29 | -u Unload modules | |
c9c0d073 BB |
30 | |
31 | MODULE-OPTIONS: | |
32 | Must be of the from module="options", for example: | |
33 | ||
34 | $0 zfs="zfs_prefetch_disable=1" | |
35 | $0 zfs="zfs_prefetch_disable=1 zfs_mdcomp_disable=1" | |
c9c0d073 BB |
36 | |
37 | EOF | |
38 | } | |
39 | ||
c552fbc5 | 40 | while getopts 'hvu' OPTION; do |
c9c0d073 BB |
41 | case $OPTION in |
42 | h) | |
43 | usage | |
44 | exit 1 | |
45 | ;; | |
46 | v) | |
c552fbc5 | 47 | # shellcheck disable=SC2034 |
c9c0d073 BB |
48 | VERBOSE=1 |
49 | ;; | |
50 | u) | |
51 | UNLOAD=1 | |
52 | ;; | |
c9c0d073 BB |
53 | ?) |
54 | usage | |
55 | exit | |
56 | ;; | |
57 | esac | |
58 | done | |
59 | ||
c552fbc5 | 60 | if [ "$(id -u)" != 0 ]; then |
c9c0d073 BB |
61 | die "Must run as root" |
62 | fi | |
63 | ||
64 | if [ ${UNLOAD} ]; then | |
9e246ac3 | 65 | kill_zed |
b9f6a490 | 66 | umount -t zfs -a |
10715a01 | 67 | stack_check |
c9c0d073 BB |
68 | unload_modules |
69 | else | |
10715a01 | 70 | stack_clear |
c9c0d073 | 71 | check_modules || die "${ERROR}" |
443c3f73 BB |
72 | load_modules "$@" || die "Failed to load modules" |
73 | wait_udev /dev/zfs 30 || die "'/dev/zfs' was not created" | |
c9c0d073 BB |
74 | fi |
75 | ||
76 | exit 0 |