From 8905d653ba8ac5f2a70a6df654ebfa2a17206729 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Sat, 14 Mar 2026 19:42:43 +0900 Subject: cmd/earlyinit: mount pseudo-filesystems The proposal for merging both init programs was unanimously accepted, so this is set up here alongside devtmpfs. Signed-off-by: Ophestra --- cmd/earlyinit/main.go | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'cmd') diff --git a/cmd/earlyinit/main.go b/cmd/earlyinit/main.go index 6dc08035..40883302 100644 --- a/cmd/earlyinit/main.go +++ b/cmd/earlyinit/main.go @@ -72,4 +72,40 @@ func main() { } } + // staying in rootfs, these are no longer used + must(os.Remove("/root")) + must(os.Remove("/init")) + + must(os.Mkdir("/proc", 0)) + mustSyscall("mount proc", Mount( + "proc", + "/proc", + "proc", + MS_NOSUID|MS_NOEXEC|MS_NODEV, + "hidepid=1", + )) + + must(os.Mkdir("/sys", 0)) + mustSyscall("mount sysfs", Mount( + "sysfs", + "/sys", + "sysfs", + 0, + "", + )) + +} + +// mustSyscall calls [log.Fatalln] if err is non-nil. +func mustSyscall(action string, err error) { + if err != nil { + log.Fatalln("cannot "+action+":", err) + } +} + +// must calls [log.Fatal] with err if it is non-nil. +func must(err error) { + if err != nil { + log.Fatal(err) + } } -- cgit v1.3.1