54 lines
1.5 KiB
Bash
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."
|