diff options
Diffstat (limited to 'cmd/earlyinit/main.go')
| -rw-r--r-- | cmd/earlyinit/main.go | 36 |
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) + } } |
