mirror of
https://github.com/xcat2/confluent.git
synced 2024-11-28 12:29:40 +00:00
e0c59cc341
The diskless will use start_root to boot the 'main' OS as a container.
18 lines
705 B
C
18 lines
705 B
C
#include <unistd.h>
|
|
#include <stdio.h>
|
|
#include <sys/mount.h>
|
|
#define __USE_GNU
|
|
#include <sched.h>
|
|
int main(int argc, char* argv[]) {
|
|
unshare(CLONE_NEWNS);
|
|
mount("/dev", "/sysroot/dev", NULL, MS_MOVE, NULL);
|
|
mount("/proc", "/sysroot/proc", NULL, MS_MOVE, NULL);
|
|
mount("/sys", "/sysroot/sys", NULL, MS_MOVE, NULL);
|
|
mount("/run", "/sysroot/run", NULL, MS_MOVE, NULL);
|
|
if (chdir("/sysroot") < 0) { fprintf(stderr, "Unable to chdir!\n"); }
|
|
mount("/sysroot", "/", NULL, MS_MOVE, NULL);
|
|
if (chroot(".") < 0) { fprintf(stderr, "Failed to chroot!\n"); }
|
|
if (chdir("/") < 0) { fprintf(stderr, "Unable to chdir after chroot!\n"); }
|
|
execl("/sbin/init", "/sbin/init", NULL);
|
|
}
|