52 lines
1.4 KiB
Bash
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."
|