#!/bin/sh . /lib/partman/lib/base.sh . /lib/partman/lib/zfs-base.sh for dev in $DEVICES/*; do [ -d $dev ] || continue cd $dev open_dialog PARTITIONS while { read_line num id size type fs path name; [ "$id" ]; }; do [ $fs != free ] || continue [ -f "$id/method" ] || continue [ -f "$id/acting_filesystem" ] || continue method=$(cat $id/method) filesystem=$(cat $id/acting_filesystem) case "$filesystem" in zfs) [ -f "$id/mountpoint" ] || continue mountpoint=$(cat $id/mountpoint) # due to #249322, #255135, #258117: if [ "$mountpoint" = /tmp ]; then rm -f $id/options/noexec fi options=$(get_mountoptions $dev $id) if [ "$options" = defaults ]; then options="rw" fi echo "${path#/dev/zvol/}" "$mountpoint" zfs $options 0 0 ;; esac done close_dialog done # NOTE: This won't work if filesystems isn't created in tree format. local vg lv val mp rootfs for vg in $(vg_list); do for lv in $(vg_list_lvs $vg); do val=`get_lv_value $lv mountpoint` if [ "$val" = "/" -o "$val" = "/target" ]; then # This is the root FS. rootfs=$lv echo "$lv / zfs defaults 0 0" elif [ "$val" = "legacy" -a -n "$rootfs" ]; then mp=$(echo "$lv" | sed "s@$rootfs@@") [ -n "$mp" ] && echo "$lv $mp zfs defaults 0 0" fi done done