diff options
author | jack <[email protected]> | 2023-11-20 13:22:56 -0700 |
---|---|---|
committer | jack <[email protected]> | 2023-11-20 13:22:56 -0700 |
commit | 0fd7df369678bb805fbc523b00eded9f0d699f18 (patch) | |
tree | 86c3ba72f43b3087c03fd416c4a8cfb128a30cab /etc/rc.d/init.d/mountvirtfs | |
parent | 381d614a915efefc8edd8e40b810120f66fe7c3c (diff) | |
download | dots-0fd7df369678bb805fbc523b00eded9f0d699f18.tar.gz dots-0fd7df369678bb805fbc523b00eded9f0d699f18.zip |
misc
Diffstat (limited to 'etc/rc.d/init.d/mountvirtfs')
-rwxr-xr-x | etc/rc.d/init.d/mountvirtfs | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/etc/rc.d/init.d/mountvirtfs b/etc/rc.d/init.d/mountvirtfs new file mode 100755 index 00000000..fd797787 --- /dev/null +++ b/etc/rc.d/init.d/mountvirtfs @@ -0,0 +1,104 @@ +#!/bin/sh +######################################################################## +# Begin mountvirtfs +# +# Description : Ensure proc, sysfs, run, and dev are mounted +# +# Authors : Gerard Beekmans - [email protected] +# DJ Lucas - [email protected] +# Update : Bruce Dubbs - [email protected] +# Xi Ruoyao - [email protected] +# +# Version : LFS 12.0 +# +######################################################################## + +### BEGIN INIT INFO +# Provides: mountvirtfs +# Required-Start: $first +# Should-Start: +# Required-Stop: +# Should-Stop: +# Default-Start: S +# Default-Stop: +# Short-Description: Mounts various special fs needed at start +# Description: Mounts /sys and /proc virtual (kernel) filesystems. +# Mounts /run (tmpfs) and /dev (devtmpfs). +# This is done only if they are not already mounted. +# with the kernel config proposed in the book, dev +# should be automatically mounted by the kernel. +# X-LFS-Provided-By: LFS +### END INIT INFO + +. /lib/lsb/init-functions + +case "${1}" in + start) + # Make sure /run is available before logging any messages + if ! mountpoint /run >/dev/null; then + mount /run || failed=1 + fi + + mkdir -p /run/lock + chmod 1777 /run/lock + + log_info_msg "Mounting virtual file systems: ${INFO}/run" + + if ! mountpoint /proc >/dev/null; then + log_info_msg2 " ${INFO}/proc" + mount -o nosuid,noexec,nodev /proc || failed=1 + fi + + if ! mountpoint /sys >/dev/null; then + log_info_msg2 " ${INFO}/sys" + mount -o nosuid,noexec,nodev /sys || failed=1 + fi + + if ! mountpoint /dev >/dev/null; then + log_info_msg2 " ${INFO}/dev" + mount -o mode=0755,nosuid /dev || failed=1 + fi + + mkdir -p /dev/shm + log_info_msg2 " ${INFO}/dev/shm" + mount -o nosuid,nodev /dev/shm || failed=1 + + mkdir -p /sys/fs/cgroup + log_info_msg2 " ${INFO}/sys/fs/cgroup" + mount -o nosuid,noexec,nodev /sys/fs/cgroup || failed=1 + + (exit ${failed}) + evaluate_retval + if [ "${failed}" = 1 ]; then + exit 1 + fi + + log_info_msg "Create symlinks in /dev targeting /proc: ${INFO}/dev/stdin" + ln -sf /proc/self/fd/0 /dev/stdin || failed=1 + + log_info_msg2 " ${INFO}/dev/stdout" + ln -sf /proc/self/fd/1 /dev/stdout || failed=1 + + log_info_msg2 " ${INFO}/dev/stderr" + ln -sf /proc/self/fd/2 /dev/stderr || failed=1 + + log_info_msg2 " ${INFO}/dev/fd" + ln -sf /proc/self/fd /dev/fd || failed=1 + + if [ -e /proc/kcore ]; then + log_info_msg2 " ${INFO}/dev/core" + ln -sf /proc/kcore /dev/core || failed=1 + fi + + (exit ${failed}) + evaluate_retval + exit $failed + ;; + + *) + echo "Usage: ${0} {start}" + exit 1 + ;; +esac + +# End mountvirtfs |