aboutsummaryrefslogtreecommitdiffhomepage
path: root/cmd/earlyinit/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/earlyinit/main.go')
-rw-r--r--cmd/earlyinit/main.go36
1 files changed, 36 insertions, 0 deletions
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)
+ }
}