2010-08-01 Robert Millan <rmh@gnu.org>
* util/grub.d/10_kfreebsd.in: Initialize ${kfreebsd_device} as the kFreeBSD device name, except on ZFS where the filesystem label is used. (kfreebsd_entry): On ZFS root, load `opensolaris.ko', `zfs.ko' and `/boot/zfs/zpool.cache'. Set mountfrom kernel variable using ${kfreebsd_device}.
This commit is contained in:
parent
f7abdefbdd
commit
c7db243b92
2 changed files with 34 additions and 1 deletions
|
@ -1,3 +1,12 @@
|
||||||
|
2010-08-01 Robert Millan <rmh@gnu.org>
|
||||||
|
|
||||||
|
* util/grub.d/10_kfreebsd.in: Initialize ${kfreebsd_device} as the
|
||||||
|
kFreeBSD device name, except on ZFS where the filesystem label is
|
||||||
|
used.
|
||||||
|
(kfreebsd_entry): On ZFS root, load `opensolaris.ko', `zfs.ko' and
|
||||||
|
`/boot/zfs/zpool.cache'.
|
||||||
|
Set mountfrom kernel variable using ${kfreebsd_device}.
|
||||||
|
|
||||||
2010-08-01 Robert Millan <rmh@gnu.org>
|
2010-08-01 Robert Millan <rmh@gnu.org>
|
||||||
|
|
||||||
Make it even harder to use uninitialized `libzfs_handle' (and
|
Make it even harder to use uninitialized `libzfs_handle' (and
|
||||||
|
|
|
@ -74,8 +74,27 @@ EOF
|
||||||
EOF
|
EOF
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
case "${kfreebsd_fs}" in
|
||||||
|
zfs)
|
||||||
|
test -e "${module_dir}/opensolaris.ko"
|
||||||
|
test -e "${module_dir}/zfs.ko"
|
||||||
|
test -e "${dirname}/zfs/zpool.cache"
|
||||||
|
|
||||||
|
printf '%s\n' "${prepare_module_dir_cache}"
|
||||||
|
cat << EOF
|
||||||
|
kfreebsd_module_elf ${module_dir_rel}/opensolaris.ko
|
||||||
|
kfreebsd_module_elf ${module_dir_rel}/zfs.ko
|
||||||
|
EOF
|
||||||
|
|
||||||
|
printf '%s\n' "${prepare_boot_cache}"
|
||||||
cat << EOF
|
cat << EOF
|
||||||
set kFreeBSD.vfs.root.mountfrom=${kfreebsd_fs}:${GRUB_DEVICE}
|
kfreebsd_module ${rel_dirname}/zfs/zpool.cache type=/boot/zfs/zpool.cache
|
||||||
|
EOF
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
cat << EOF
|
||||||
|
set kFreeBSD.vfs.root.mountfrom=${kfreebsd_fs}:${kfreebsd_device}
|
||||||
set kFreeBSD.vfs.root.mountfrom.options=rw
|
set kFreeBSD.vfs.root.mountfrom.options=rw
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
|
@ -105,6 +124,11 @@ while [ "x$list" != "x" ] ; do
|
||||||
*) kfreebsd_fs=${GRUB_FS} ;;
|
*) kfreebsd_fs=${GRUB_FS} ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
case ${GRUB_FS} in
|
||||||
|
zfs) kfreebsd_device=$(grub-probe -t label --device ${GRUB_DEVICE}) ;;
|
||||||
|
*) kfreebsd_device=${GRUB_DEVICE} ;;
|
||||||
|
esac
|
||||||
|
|
||||||
version=`echo $basename | sed -e "s,^[^0-9]*-,,g;s/\.gz$//g"`
|
version=`echo $basename | sed -e "s,^[^0-9]*-,,g;s/\.gz$//g"`
|
||||||
alt_version=`echo $version | sed -e "s,\.old$,,g"`
|
alt_version=`echo $version | sed -e "s,\.old$,,g"`
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue