HEX
Server: nginx/1.22.0
System: Linux iZuf6jdxbygmf6cco977lcZ 5.10.84-10.4.al8.x86_64 #1 SMP Tue Apr 12 12:31:07 CST 2022 x86_64
User: root (0)
PHP: 7.4.29
Disabled: passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,readlink,symlink,popepassthru,stream_socket_server,fsocket,popen
Upload Files
File: //lib/dracut/modules.d/99squash/setup-squash.sh
#!/bin/sh
PATH=/bin:/sbin

SQUASH_IMG=/squash/root.img
SQUASH_MNT=/squash/root
SQUASH_MNT_REC=/squash/mounts
SQUASHED_MNT="usr etc"

echo $SQUASH_MNT > $SQUASH_MNT_REC

# Following mount points are neccessary for mounting a squash image

[ ! -d /proc/self ] && \
    mount -t proc -o nosuid,noexec,nodev proc /proc

[ ! -d /sys/kernel ] && \
    mount -t sysfs -o nosuid,noexec,nodev sysfs /sys

[ ! -e /dev/loop-control ] && \
    mount -t devtmpfs -o mode=0755,noexec,nosuid,strictatime devtmpfs /dev

# Need a loop device backend, overlayfs, and squashfs module
modprobe loop
if [ $? != 0 ]; then
    echo "Unable to setup loop module"
fi

modprobe squashfs
if [ $? != 0 ]; then
    echo "Unable to setup squashfs module"
fi

modprobe overlay
if [ $? != 0 ]; then
    echo "Unable to setup overlay module"
fi

[ ! -d "$SQUASH_MNT" ] && \
	mkdir -m 0755 -p $SQUASH_MNT

# Mount the squashfs image
mount -t squashfs -o ro,loop $SQUASH_IMG $SQUASH_MNT

if [ $? != 0 ]; then
    echo "Unable to mount squashed initramfs image"
fi

for file in $SQUASHED_MNT; do
	lowerdir=$SQUASH_MNT/$file
	workdir=/squash/overlay-work/$file
	upperdir=/$file
	mntdir=/$file

	mkdir -m 0755 -p $workdir
	mkdir -m 0755 -p $mntdir

	mount -t overlay overlay -o\
		lowerdir=$lowerdir,upperdir=$upperdir,workdir=$workdir $mntdir

	echo $mntdir >> $SQUASH_MNT_REC
done