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

54 lines
1.5 KiB
Bash

#!/bin/bash
set -e
# Function to unmount overlay and tmpfs, and remove directories
unmount_overlay() {
local target_dir=$1
local base_dir="/overlayfs/${target_dir}"
# Unmount tmpfs
if mountpoint -q "${base_dir}"; then
echo "Unmounting tmpfs from ${base_dir}"
echo "Command: sudo umount -l ${base_dir}"
sudo umount -l "${base_dir}" || { echo "Failed to unmount tmpfs from ${base_dir}"; exit 1; }
echo "Unmounted tmpfs from ${base_dir}"
else
echo "No tmpfs mounted on ${base_dir}"
fi
# Unmount overlay
if mountpoint -q "/${target_dir}"; then
echo "Unmounting overlay from ${target_dir}"
echo "Command: sudo umount -l /${target_dir}"
sudo umount -l /"${target_dir}" || { echo "Failed to unmount overlay from ${target_dir}"; exit 1; }
echo "Unmounted overlay from ${target_dir}"
else
echo "No overlay mounted on ${target_dir}"
fi
# Remove directories
if [ -d "${base_dir}" ]; then
echo "Clearing work and upper directories in ${base_dir}"
sudo rm -rf "${base_dir}/work/*"
sudo rm -rf "${base_dir}/upper/*"
echo "Removed work and upper directories in ${base_dir}"
else
echo "Directory ${base_dir} does not exist"
fi
}
# /var directory
unmount_overlay etc
# /var directory
unmount_overlay var
# /tmp directory
unmount_overlay tmp
# /run directory
unmount_overlay run
echo "OverlayFS cleanup completed successfully."