xref: /freebsd/sys/contrib/openzfs/contrib/dracut/90zfs/zfs-env-bootfs.service.in (revision 315ee00fa9616b0a192b6834911f98bcf5316a6b)
1eda14cbcSMatt Macy[Unit]
2d411c1d6SMartin MatuskaDescription=Set BOOTFS and BOOTFSFLAGS environment variables for dracut
3eda14cbcSMatt MacyDefaultDependencies=no
4eda14cbcSMatt MacyAfter=zfs-import-cache.service
5eda14cbcSMatt MacyAfter=zfs-import-scan.service
6eda14cbcSMatt MacyBefore=zfs-import.target
7eda14cbcSMatt Macy
8eda14cbcSMatt Macy[Service]
9eda14cbcSMatt MacyType=oneshot
10d411c1d6SMartin MatuskaExecStart=/bin/sh -c '                                                                         \
11d411c1d6SMartin Matuska    . /lib/dracut-zfs-lib.sh;                                                                  \
12d411c1d6SMartin Matuska    decode_root_args || exit 0;                                                                \
13d411c1d6SMartin Matuska    [ "$root" = "zfs:AUTO" ] && root="$(@sbindir@/zpool list -H -o bootfs | grep -m1 -vFx -)"; \
14d411c1d6SMartin Matuska    rootflags="$(getarg rootflags=)";                                                          \
15*315ee00fSMartin Matuska    [ "$(@sbindir@/zfs get -H -o value mountpoint "$root")" = legacy ] ||                      \
16d411c1d6SMartin Matuska        case ",$rootflags," in                                                                 \
17d411c1d6SMartin Matuska            *,zfsutil,*) ;;                                                                    \
18d411c1d6SMartin Matuska            ,,) rootflags=zfsutil ;;                                                           \
19d411c1d6SMartin Matuska            *)  rootflags="zfsutil,$rootflags" ;;                                              \
20d411c1d6SMartin Matuska        esac;                                                                                  \
21d411c1d6SMartin Matuska    exec systemctl set-environment BOOTFS="$root" BOOTFSFLAGS="$rootflags"'
22eda14cbcSMatt Macy
23eda14cbcSMatt Macy[Install]
24eda14cbcSMatt MacyWantedBy=zfs-import.target
25