Printio/systemd/bash/overlayfs_mount.sh
2025-03-20 00:07:07 -07:00

52 lines
1.4 KiB
Bash

#!/bin/bash
set -e
# Function to create and mount overlay
mount_overlay() {
local target_dir=$1
local size=$2
# Create base directory
if [ ! -d "/overlayfs/${target_dir}" ]; then
sudo mkdir -p "/overlayfs/${target_dir}"
sudo chmod 755 "/overlayfs/${target_dir}"
fi
# Mount tmpfs
if ! mountpoint -q "/overlayfs/${target_dir}"; then
sudo mount -t tmpfs -o size=${size} tmpfs "/overlayfs/${target_dir}" -o mode=0755
echo "mounted tmpfs ${target_dir}"
fi
# Create upper and work directories
if [ ! -d "/overlayfs/${target_dir}/upper" ]; then
sudo mkdir -p "/overlayfs/${target_dir}/upper"
sudo chmod 755 "/overlayfs/${target_dir}/upper"
fi
if [ ! -d "/overlayfs/${target_dir}/work" ]; then
sudo mkdir -p "/overlayfs/${target_dir}/work"
sudo chmod 755 "/overlayfs/${target_dir}/work"
fi
# Mount overlay
if ! mountpoint -q "${target_dir}"; then
sudo mount -t overlay overlay -o lowerdir="${target_dir}",upperdir="/overlayfs/${target_dir}/upper",workdir="/overlayfs/${target_dir}/work" "${target_dir}"
echo "mounted overlay ${target_dir}"
fi
}
# /var directory with max RAM size
#mount_overlay /etc 100M
# /var directory with max RAM size
mount_overlay /var 200M
# /tmp directory with max RAM size
mount_overlay /tmp 100M
# /run directory with max RAM size
mount_overlay /run 100M
echo "OverlayFS setup completed successfully."