add use-fuse patch

This commit is contained in:
Antoine Martin 2024-08-21 13:48:46 -04:00
parent fd2276f41b
commit 294d387dec
Signed by: forge
GPG key ID: D62A472A4AA7D541

View file

@ -0,0 +1,152 @@
diff --git a/prepare_image b/prepare_image
index 6334879..de1a2af 100755
--- a/prepare_image
+++ b/prepare_image
@@ -19,6 +19,8 @@ RETCODE=0
. ./builder_setup >/dev/null
. ./umount_kill.sh >/dev/null
+export TEMPLATE_USE_FUSE=1
+
if ! [ $# -eq 1 ]; then
echo "usage ${0} <img_file_name>"
exit
@@ -55,11 +57,20 @@ echo "-> Preparing instalation of ${DIST} template..."
if [ -f "${IMG}" ]; then
echo "-> Image file already exists, assuming *update*..."
if [ "0$TEMPLATE_ROOT_WITH_PARTITIONS" -eq 1 ]; then
- IMG_LOOP=$(/sbin/losetup -P -f --show "$IMG")
- IMG_DEV=${IMG_LOOP}p3
+ if [ "$TEMPLATE_USE_FUSE" -eq 1 ]; then
+ echo "Fuse mode not implemented when TEMPLATE_ROOT_WITH_PARTITIONS is true"
+ exit
+ else
+ IMG_LOOP=$(/sbin/losetup -P -f --show "$IMG")
+ IMG_DEV=${IMG_LOOP}p3
+ fi
else
- IMG_LOOP=$(/sbin/losetup -f --show "$IMG")
- IMG_DEV=${IMG_LOOP}
+ if [ "$TEMPLATE_USE_FUSE" -eq 1 ]; then
+ IMG_DEV=$IMG
+ else
+ IMG_LOOP=$(/sbin/losetup -f --show "$IMG")
+ IMG_DEV=${IMG_LOOP}
+ fi
fi
udevadm settle --exit-if-exists="$IMG_DEV"
else
@@ -78,11 +89,20 @@ size=2MiB, type=21686148-6449-6E6F-744E-656564454649, uuid=1e6c9db4-1e91-46c4-84
type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=693244e6-3e07-47bf-ad79-acade4293fe7, name="Root filesystem"
EOF
- IMG_LOOP=$(/sbin/losetup -P -f --show "$IMG")
- IMG_DEV=${IMG_LOOP}p3
+ if [ "$TEMPLATE_USE_FUSE" -eq 1 ]; then
+ echo "Fuse mode not implemented when TEMPLATE_ROOT_WITH_PARTITIONS is true"
+ exit
+ else
+ IMG_LOOP=$(/sbin/losetup -P -f --show "$IMG")
+ IMG_DEV=${IMG_LOOP}p3
+ fi
else
- IMG_LOOP=$(/sbin/losetup -f --show "$IMG")
- IMG_DEV=${IMG_LOOP}
+ if [ "$TEMPLATE_USE_FUSE" -eq 1 ]; then
+ IMG_DEV=$IMG
+ else
+ IMG_LOOP=$(/sbin/losetup -f --show "$IMG")
+ IMG_DEV=${IMG_LOOP}
+ fi
fi
udevadm settle --exit-if-exists="$IMG_DEV"
@@ -90,7 +110,9 @@ EOF
/sbin/mkfs.ext4 -q -F "${IMG_DEV}" || exit 1
fi
-mount "${IMG_DEV}" "${INSTALLDIR}" || exit 1
+if [ "$TEMPLATE_USE_FUSE" -eq 1 ]; then
+ fuse2fs "${IMG_DEV}" "${INSTALLDIR}" || exit 1
+fi
trap "umount_kill $(readlink -m ${INSTALLDIR})" EXIT
"${SCRIPTSDIR}/01_install_core.sh"
@@ -107,6 +129,8 @@ trap - EXIT
echo "-> Unmounting prepared_image..."
umount_kill "$(readlink -m ${INSTALLDIR})" || true
-/sbin/losetup -d ${IMG_LOOP}
+if [ "$TEMPLATE_USE_FUSE" -ne 1 ]; then
+ /sbin/losetup -d ${IMG_LOOP}
+fi
exit ${RETCODE}
diff --git a/qubeize_image b/qubeize_image
index 19c37cb..7478a9d 100755
--- a/qubeize_image
+++ b/qubeize_image
@@ -13,6 +13,8 @@ export CLEANIMG="$1"
export NAME="$2"
export LC_ALL=POSIX
+export TEMPLATE_USE_FUSE=1
+
. ./builder_setup >/dev/null
. ./umount_kill.sh >/dev/null
@@ -50,7 +52,9 @@ function cleanup() {
trap - ERR
trap
umount_kill "$PWD/mnt" || true
- /sbin/losetup -d ${IMG_LOOP}
+ if [ "$TEMPLATE_USE_FUSE" -ne 1 ]; then
+ /sbin/losetup -d ${IMG_LOOP}
+ fi
exit $errval
}
trap cleanup ERR
@@ -72,14 +76,27 @@ fi
echo "--> Mounting $IMG"
mkdir -p mnt
if [ "0$TEMPLATE_ROOT_WITH_PARTITIONS" -eq 1 ]; then
- IMG_LOOP=$(/sbin/losetup -P -f --show "$IMG")
- IMG_DEV=${IMG_LOOP}p3
+ if [ "$TEMPLATE_USE_FUSE" -eq 1 ]; then
+ echo "Fuse mode not implemented when TEMPLATE_ROOT_WITH_PARTITIONS is true"
+ exit
+ else
+ IMG_LOOP=$(/sbin/losetup -P -f --show "$IMG")
+ IMG_DEV=${IMG_LOOP}p3
+ fi
else
- IMG_LOOP=$(/sbin/losetup -f --show "$IMG")
- IMG_DEV=${IMG_LOOP}
+ if [ "$TEMPLATE_USE_FUSE" -eq 1 ]; then
+ IMG_DEV=$IMG
+ else
+ IMG_LOOP=$(/sbin/losetup -f --show "$IMG")
+ IMG_DEV=${IMG_LOOP}
+ fi
fi
udevadm settle --exit-if-exists="$IMG_DEV"
-mount "$IMG_DEV" mnt || exit 1
+if "$TEMPLATE_USE_FUSE" -eq 1 ]; then
+ fuse2fs "$IMG_DEV" mnt
+else
+ mount "$IMG_DEV" mnt || exit 1
+fi
export INSTALLDIR=mnt
# prepare for template.conf, so the qubeize script may generate it dynamically
@@ -159,7 +176,9 @@ ls -als $IMG
# ------------------------------------------------------------------------------
echo "--> Unmounting $IMG"
umount_kill "$PWD/mnt" || true
-/sbin/losetup -d ${IMG_LOOP}
+if [ "$TEMPLATE_USE_FUSE" -ne 1 ]; then
+ /sbin/losetup -d ${IMG_LOOP}
+fi
echo "Qubeized image stored at: $IMG"