aboutsummaryrefslogtreecommitdiff
path: root/debian-container/lib/mount.sh
diff options
context:
space:
mode:
authorRichard Qin <richard.qin.x@gmail.com>2026-10-28 23:13:09 +0800
committerRichard Qin <richard.qin.x@gmail.com>2026-10-28 23:13:09 +0800
commite7236907dfe3e9130d532d5e8a7f2b17af13df1c (patch)
tree3548beab69f96ad5d669152b248d0ab15769dafe /debian-container/lib/mount.sh
parent36cf23ae3ba7295ca4021258681996fbbba9b14d (diff)
downloadrutils-e7236907dfe3e9130d532d5e8a7f2b17af13df1c.tar.gz
rutils-e7236907dfe3e9130d532d5e8a7f2b17af13df1c.tar.xz
Refactor Debian container script into modular components with configurable paths and documentation.
Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
Diffstat (limited to 'debian-container/lib/mount.sh')
-rw-r--r--debian-container/lib/mount.sh30
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"
+}
+