blob: 83f01fabde7d4d4bc6cbb891447a1e1bc25eb028
1 | /* vi: set sw=4 ts=4: */ |
2 | /* |
3 | * pivot_root.c - Change root file system. Based on util-linux 2.10s |
4 | * |
5 | * busyboxed by Evin Robertson |
6 | * pivot_root syscall stubbed by Erik Andersen, so it will compile |
7 | * regardless of the kernel being used. |
8 | * |
9 | * Licensed under GPLv2, see file LICENSE in this source tree. |
10 | */ |
11 | |
12 | //usage:#define pivot_root_trivial_usage |
13 | //usage: "NEW_ROOT PUT_OLD" |
14 | //usage:#define pivot_root_full_usage "\n\n" |
15 | //usage: "Move the current root file system to PUT_OLD and make NEW_ROOT\n" |
16 | //usage: "the new root file system" |
17 | |
18 | #include "libbb.h" |
19 | |
20 | extern int pivot_root(const char * new_root,const char * put_old); |
21 | |
22 | int pivot_root_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; |
23 | int pivot_root_main(int argc, char **argv) |
24 | { |
25 | if (argc != 3) |
26 | bb_show_usage(); |
27 | |
28 | if (pivot_root(argv[1], argv[2]) < 0) { |
29 | /* prints "pivot_root: <strerror text>" */ |
30 | bb_perror_nomsg_and_die(); |
31 | } |
32 | |
33 | return EXIT_SUCCESS; |
34 | } |
35 |