Merge 9f2fd4682d
into 7ca7bb7fd7
This commit is contained in:
commit
231e8a8de1
|
@ -50,6 +50,24 @@ find_zfs_block_devices() {
|
||||||
done < /proc/self/mountinfo
|
done < /proc/self/mountinfo
|
||||||
}
|
}
|
||||||
|
|
||||||
|
find_add_zpool_mps() {
|
||||||
|
local dev
|
||||||
|
local mp
|
||||||
|
local fstype
|
||||||
|
local _
|
||||||
|
numfields="$(awk '{print NF; exit}' /proc/self/mountinfo)"
|
||||||
|
if [ "$numfields" = "10" ] ; then
|
||||||
|
fields="_ _ _ _ mp _ _ fstype dev _"
|
||||||
|
else
|
||||||
|
fields="_ _ _ _ mp _ _ _ fstype dev _"
|
||||||
|
fi
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
while read -r ${fields?} ; do
|
||||||
|
[ "$fstype" = "zfs" ] || continue
|
||||||
|
[ "$dev" = "$1" ] && echo "$mp"
|
||||||
|
done < /proc/self/mountinfo
|
||||||
|
}
|
||||||
|
|
||||||
array_contains () {
|
array_contains () {
|
||||||
local e
|
local e
|
||||||
for e in "${@:2}"; do [[ "$e" == "$1" ]] && return 0; done
|
for e in "${@:2}"; do [[ "$e" == "$1" ]] && return 0; done
|
||||||
|
@ -75,6 +93,14 @@ check() {
|
||||||
# shellcheck disable=SC2154
|
# shellcheck disable=SC2154
|
||||||
if [[ -n "$hostonly" ]]; then
|
if [[ -n "$hostonly" ]]; then
|
||||||
|
|
||||||
|
if [ -f @sysconfdir@/default/zfs ]; then
|
||||||
|
. @sysconfdir@/default/zfs
|
||||||
|
if [ -n "$ZFS_INITRD_ADDITIONAL_DATASETS" ]; then
|
||||||
|
for add_zpool in $ZFS_INITRD_ADDITIONAL_DATASETS; do
|
||||||
|
add_mps+=$(find_add_zpool_mps "$add_zpool")
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
fi
|
||||||
for mp in \
|
for mp in \
|
||||||
"/" \
|
"/" \
|
||||||
"/etc" \
|
"/etc" \
|
||||||
|
@ -87,7 +113,8 @@ if [[ -n "$hostonly" ]]; then
|
||||||
"/usr/sbin" \
|
"/usr/sbin" \
|
||||||
"/usr/lib" \
|
"/usr/lib" \
|
||||||
"/usr/lib64" \
|
"/usr/lib64" \
|
||||||
"/boot";
|
"/boot" \
|
||||||
|
"${add_mps[@]}";
|
||||||
do
|
do
|
||||||
mp=$(readlink -f "$mp")
|
mp=$(readlink -f "$mp")
|
||||||
mountpoint "$mp" >/dev/null 2>&1 || continue
|
mountpoint "$mp" >/dev/null 2>&1 || continue
|
||||||
|
|
|
@ -64,7 +64,8 @@ install() {
|
||||||
# -o ensures there is no error upon absence of these files
|
# -o ensures there is no error upon absence of these files
|
||||||
inst_multiple -o -H \
|
inst_multiple -o -H \
|
||||||
"@sysconfdir@/zfs/zpool.cache" \
|
"@sysconfdir@/zfs/zpool.cache" \
|
||||||
"@sysconfdir@/zfs/vdev_id.conf"
|
"@sysconfdir@/zfs/vdev_id.conf" \
|
||||||
|
"@sysconfdir@/default/zfs"
|
||||||
|
|
||||||
# Synchronize initramfs and system hostid
|
# Synchronize initramfs and system hostid
|
||||||
if ! inst_simple -H @sysconfdir@/hostid; then
|
if ! inst_simple -H @sysconfdir@/hostid; then
|
||||||
|
|
|
@ -922,6 +922,15 @@ mountroot()
|
||||||
ZFS_RPOOL="${pool}"
|
ZFS_RPOOL="${pool}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# We need to import additional zpools which aren't under root zpool, before mount_fs()
|
||||||
|
for add_zpool in $ZFS_INITRD_ADDITIONAL_DATASETS; do
|
||||||
|
add_zpool_base="${add_zpool%%/*}"
|
||||||
|
|
||||||
|
if [ "$add_zpool_base" != "$ZFS_RPOOL" ]
|
||||||
|
then
|
||||||
|
import_pool "${add_zpool_base}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
# ----------------------------------------------------------------
|
# ----------------------------------------------------------------
|
||||||
# P R E P A R E R O O T F I L E S Y S T E M
|
# P R E P A R E R O O T F I L E S Y S T E M
|
||||||
|
|
Loading…
Reference in New Issue