aboutsummaryrefslogtreecommitdiffstats
path: root/bootscripts
diff options
context:
space:
mode:
authorXi Ruoyao <xry111@xry111.site>2023-07-22 23:40:32 +0800
committerXi Ruoyao <xry111@xry111.site>2023-07-22 23:40:32 +0800
commit8435a70be4cc12621cfd3b8f500df85f8d79b2fd (patch)
tree47ea2172e50cd92df5ecefd9acf35952b12b4862 /bootscripts
parent0d824c52807e3060f19e5ba5c7408905cd3aa4c2 (diff)
bootscripts: mountvirtfs: Create essential symlinks in /dev targeting /proc
These were handled by Eudev, but systemd-udevd stopped to creating them since 2020.
Diffstat (limited to 'bootscripts')
-rw-r--r--bootscripts/ChangeLog4
-rw-r--r--bootscripts/lfs/init.d/mountvirtfs26
2 files changed, 29 insertions, 1 deletions
diff --git a/bootscripts/ChangeLog b/bootscripts/ChangeLog
index 0c1d33f6d..efff97b83 100644
--- a/bootscripts/ChangeLog
+++ b/bootscripts/ChangeLog
@@ -1,3 +1,7 @@
+2023-07-22 Xi Ruoyao <xry111@xry111.site>
+ * In mountvirtfs, create symlinks /dev/{fd,std{in,out,err}} and
+ /dev/core (optional).
+
2023-07-15 Xi Ruoyao <xry111@xry111.site>
* Use /bin/udevadm instead of /sbin/udevadm.
diff --git a/bootscripts/lfs/init.d/mountvirtfs b/bootscripts/lfs/init.d/mountvirtfs
index 21d98a05d..bbf30cf90 100644
--- a/bootscripts/lfs/init.d/mountvirtfs
+++ b/bootscripts/lfs/init.d/mountvirtfs
@@ -7,8 +7,9 @@
# Authors : Gerard Beekmans - gerard@linuxfromscratch.org
# DJ Lucas - dj@linuxfromscratch.org
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
+# Xi Ruoyao - xry111@xry111.site
#
-# Version : LFS 7.0
+# Version : LFS 12.0
#
########################################################################
@@ -64,6 +65,29 @@ case "${1}" in
(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
;;