summaryrefslogtreecommitdiff
path: root/zfs-utils.initcpio.hook
diff options
context:
space:
mode:
authorIacopo Isimbaldi <isiachi@rhye.it>2016-01-11 23:14:23 +0100
committerIacopo Isimbaldi <isiachi@rhye.it>2016-01-11 23:31:13 +0100
commitaaebb1b66ed84a14a7dcbd070afab3c5334880ac (patch)
tree5dd83f7db25d906fffcc8482543a57e23b8e253f /zfs-utils.initcpio.hook
parentremove git from makedeps (diff)
downloadzfs-dkms-aaebb1b66ed84a14a7dcbd070afab3c5334880ac.tar.xz
Updated zfs.install and hook
Dropped "mkinitcpio-dkms" dep, replaced by zfs hook
Diffstat (limited to 'zfs-utils.initcpio.hook')
-rw-r--r--zfs-utils.initcpio.hook100
1 files changed, 0 insertions, 100 deletions
diff --git a/zfs-utils.initcpio.hook b/zfs-utils.initcpio.hook
deleted file mode 100644
index 3a92894..0000000
--- a/zfs-utils.initcpio.hook
+++ /dev/null
@@ -1,100 +0,0 @@
-ZPOOL_FORCE=""
-ZPOOL_IMPORT_FLAGS=""
-
-zfs_get_bootfs () {
- for zfs_dataset in $(/usr/bin/zpool list -H -o bootfs); do
- case ${zfs_dataset} in
- "" | "-")
- # skip this line/dataset
- ;;
- "no pools available")
- return 1
- ;;
- *)
- ZFS_DATASET=${zfs_dataset}
- return 0
- ;;
- esac
- done
- return 1
-}
-
-zfs_mount_handler () {
- local node=$1
- if [ "$ZFS_DATASET" = "bootfs" ] ; then
- if ! zfs_get_bootfs ; then
- # Lets import everything and try again
- /usr/bin/zpool import $ZPOOL_IMPORT_FLAGS -N -a $ZPOOL_FORCE
- if ! zfs_get_bootfs ; then
- echo "ZFS: Cannot find bootfs."
- return 1
- fi
- fi
- fi
-
- local pool="${ZFS_DATASET%%/*}"
- local rwopt_exp=${rwopt:-ro}
-
- if ! "/usr/bin/zpool" list -H $pool 2>&1 > /dev/null ; then
- if [ "$rwopt_exp" != "rw" ]; then
- msg "ZFS: Importing pool $pool readonly."
- ZPOOL_IMPORT_FLAGS="$ZPOOL_IMPORT_FLAGS -o readonly=on"
- else
- msg "ZFS: Importing pool $pool."
- fi
-
- if ! "/usr/bin/zpool" import $ZPOOL_IMPORT_FLAGS -N $pool $ZPOOL_FORCE ; then
- echo "ZFS: Unable to import pool $pool."
- return 1
- fi
- fi
-
- local mountpoint=$("/usr/bin/zfs" get -H -o value mountpoint $ZFS_DATASET)
- if [ "$mountpoint" = "legacy" ] ; then
- mount -t zfs -o ${rwopt_exp} "$ZFS_DATASET" "$node"
- else
- mount -o zfsutil,${rwopt_exp} -t zfs "$ZFS_DATASET" "$node"
- fi
-}
-
-run_hook() {
- # Force import the pools, useful if the pool has not properly been exported
- # using 'zpool export <pool>'
- [[ $zfs_force == 1 ]] && ZPOOL_FORCE='-f'
- [[ "$zfs_import_dir" != "" ]] && ZPOOL_IMPORT_FLAGS="$ZPOOL_IMPORT_FLAGS -d $zfs_import_dir"
-
- if [ "$root" = 'zfs' ]; then
- mount_handler='zfs_mount_handler'
- fi
-
- case $zfs in
- "")
- # skip this line/dataset
- ;;
- auto|bootfs)
- ZFS_DATASET='bootfs'
- mount_handler="zfs_mount_handler"
- ;;
- *)
- ZFS_DATASET=$zfs
- mount_handler="zfs_mount_handler"
- ;;
- esac
-
- if [ ! -f "/etc/hostid" ] ; then
- echo "ZFS: No hostid found on kernel command line or /etc/hostid. ZFS pools may not import correctly."
- fi
-
- # Allow up to 10 seconds for zfs device to show up
- for i in 1 2 3 4 5 6 7 8 9 10; do
- [ -c "/dev/zfs" ] && break
- sleep 1
- done
-}
-
-
-run_latehook () {
- /usr/bin/zpool import -N -a $ZPOOL_FORCE
-}
-
-# vim:set ts=4 sw=4 ft=sh et: