diff options
Diffstat (limited to 'debian-container/lib/mount.sh')
| -rw-r--r-- | debian-container/lib/mount.sh | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/debian-container/lib/mount.sh b/debian-container/lib/mount.sh new file mode 100644 index 0000000..0b623c8 --- /dev/null +++ b/debian-container/lib/mount.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash +# SPDX-License-Identifier: GPL-3.0-or-later +# Copyright (C) 2026 by Richard Qin + +dc_cleanup_mounts() { + umount "$DC_ROOT/dev/pts" 2>/dev/null || true + umount "$DC_ROOT/dev" 2>/dev/null || true + umount "$DC_ROOT/proc" 2>/dev/null || true + umount "$DC_ROOT" 2>/dev/null || true +} + +dc_mount_root() { + mkdir -p "$DC_ROOT" + mount -o loop "$DC_IMAGE" "$DC_ROOT" + mkdir -p "$DC_ROOT/proc" "$DC_ROOT/dev" +} + +dc_mount_virtual_filesystems() { + mount -t proc -o ro,nosuid,nodev,noexec proc "$DC_ROOT/proc" + mount -t tmpfs -o mode=0755,nosuid tmpfs "$DC_ROOT/dev" + mknod -m 0666 "$DC_ROOT/dev/null" c 1 3 + mknod -m 0666 "$DC_ROOT/dev/zero" c 1 5 + mknod -m 0666 "$DC_ROOT/dev/random" c 1 8 + mknod -m 0666 "$DC_ROOT/dev/urandom" c 1 9 + mknod -m 0666 "$DC_ROOT/dev/tty" c 5 0 + mkdir -p "$DC_ROOT/dev/pts" + mount -t devpts -o newinstance,ptmxmode=0666,mode=0620 devpts "$DC_ROOT/dev/pts" + ln -s pts/ptmx "$DC_ROOT/dev/ptmx" +} + |
