From a524b04f8cc05bb901598e76a3dd8f6b77c1cdb3 Mon Sep 17 00:00:00 2001 From: Gao feng Date: Mon, 4 Apr 2016 23:20:23 +0800 Subject: [PATCH 1/3] copy: return error when exec copy failed Signed-off-by: Gao feng --- src/util.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/util.c b/src/util.c index 8ab9d7b..3d8530d 100644 --- a/src/util.c +++ b/src/util.c @@ -96,7 +96,7 @@ int hyper_copy_dir(char *src, char *dest) { perror("exec copy directroy command failed"); } - return 0; + return -1; } int hyper_find_sd(char *addr, char **dev) { From 01a09c9b8fcdc5f5571a672f20b22a207054369c Mon Sep 17 00:00:00 2001 From: Gao feng Date: Mon, 4 Apr 2016 23:20:56 +0800 Subject: [PATCH 2/3] copy: remove .oldroot prefix for busybox path Signed-off-by: Gao feng --- src/util.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/util.c b/src/util.c index 3d8530d..dc4a52b 100644 --- a/src/util.c +++ b/src/util.c @@ -92,7 +92,7 @@ int hyper_copy_dir(char *src, char *dest) { snprintf(cmd, sizeof(cmd), "tar zcf - -C %s . | tar zfx - -C %s", src, dest); fprintf(stdout, "command for copy is %s\n", cmd); - execlp("/.oldroot/busybox", "sh", "-c", cmd, NULL); + execlp("/busybox", "sh", "-c", cmd, NULL); perror("exec copy directroy command failed"); } From e737392fc4d09b7b2987adb29cf2771eb6b3b346 Mon Sep 17 00:00:00 2001 From: Gao feng Date: Mon, 4 Apr 2016 23:22:42 +0800 Subject: [PATCH 3/3] copy: symlink sh and tar to busybox Signed-off-by: Gao feng --- src/init.c | 3 +++ src/util.c | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/init.c b/src/init.c index a93ce9e..ed9d04a 100644 --- a/src/init.c +++ b/src/init.c @@ -1272,6 +1272,9 @@ int main(int argc, char *argv[]) return -1; } + symlink("/busybox", "/sh"); + symlink("/busybox", "/tar"); + cmdline = read_cmdline(); setsid(); diff --git a/src/util.c b/src/util.c index dc4a52b..94d87e3 100644 --- a/src/util.c +++ b/src/util.c @@ -89,7 +89,7 @@ int hyper_copy_dir(char *src, char *dest) { return -1; } else { char cmd[512]; - snprintf(cmd, sizeof(cmd), "tar zcf - -C %s . | tar zfx - -C %s", src, dest); + snprintf(cmd, sizeof(cmd), "/tar cf - -C %s . | /tar fx - -C %s", src, dest); fprintf(stdout, "command for copy is %s\n", cmd); execlp("/busybox", "sh", "-c", cmd, NULL);