# HG changeset patch # User Franz Glasner # Date 1660631674 -7200 # Node ID 6782ac823f86b8429a1e1a193cfe794e946bce80 # Parent b7b9d84dff9bc4063e8597c3fd7bc475fa59a9c7 Handle /var/empty more sanely when populating datasets from a base.txz image diff -r b7b9d84dff9b -r 6782ac823f86 sbin/fjail --- a/sbin/fjail Thu Dec 17 08:50:50 2020 +0100 +++ b/sbin/fjail Tue Aug 16 08:34:34 2022 +0200 @@ -220,7 +220,22 @@ return 1 fi + # + # Handle /var/empty separately later: could be already there and + # mounted read-only. + # tar -C "${_mp}" --exclude=./var/empty -xJp -f "${_basetxz}" || { echo "ERROR: tar encountered errors" >&2; return 1; } + if [ -d "${_mp}/var/empty" ]; then + # + # If /var/empty exists already try to extract with changing the + # flags (e.g. `schg'). But be tolerant with errors here. + # + tar -C "${_mp}" -xJp -f "${_basetxz}" ./var/empty + else + # Just extract /var/empty normally + tar -C "${_mp}" -xJp -f "${_basetxz}" ./var/empty || { echo "ERROR: tar encountered errors" >&2; return 1; } + fi + find "${_mp}/boot" -type f -delete }