add hack from sources for partfs. we're using sdloop for this, so this should not be necessary. but it's not worth incompatability, either. Reference: /n/atom/patch/applied/partfshack Date: Sat Mar 1 16:25:51 CET 2014 Signed-off-by: quanstro@quanstro.net --- /sys/src/cmd/disk/partfs.c Sat Mar 1 16:25:18 2014 +++ /sys/src/cmd/disk/partfs.c Sat Mar 1 16:25:19 2014 @@ -107,6 +107,27 @@ } static void +addparts(char *buf) +{ + char *f[4], *p, *q; + + /* + * Use partitions passed from boot program, + * e.g. + * sdC0part=dos 63 123123/plan9 123123 456456 + * This happens before /boot sets hostname so the + * partitions will have the null-string for user. + */ + for(p = buf; p != nil; p = q){ + if(q = strchr(p, '/')) + *q++ = '\0'; + if(tokenize(p, f, nelem(f)) >= 3 && + addpart(f[0], strtoull(f[1], 0, 0), strtoull(f[2], 0, 0)) < 0) + fprint(2, "%s: addpart %s: %r\n", argv0, f[0]); + } +} + +static void ctlwrite0(Req *r, char *msg, Cmdbuf *cb) { vlong start, end; @@ -253,12 +274,6 @@ return 0; } -void* -evommem(void *a, void *b, ulong n) -{ - return memmove(b, a, n); -} - int rdwrpart(Req *r) { @@ -491,8 +506,8 @@ void usage(void) { - fprint(2, "usage: %s [-Dr] [-d sdname] [-m mtpt] [-s srvname] diskimage\n", - argv0); + fprint(2, "usage: %s [-Dr] [-d sdname] [-m mtpt] [-p 9parts] " + "[-s srvname] diskimage\n", argv0); fprint(2, "\tdefault mtpt is /dev\n"); exits("usage"); } @@ -501,11 +516,12 @@ main(int argc, char **argv) { int isdir; - char *file, *cname; + char *file, *cname, *parts; Dir *dir; quotefmtinstall(); time0 = time(0); + parts = nil; ARGBEGIN{ case 'D': @@ -517,6 +533,9 @@ case 'm': mtpt = EARGF(usage()); break; + case 'p': + parts = EARGF(usage()); + break; case 'r': rdonly = 1; break; @@ -556,6 +575,12 @@ tab[0].name = estrdup9p("data"); tab[0].mode = 0666; tab[0].length = nsect; + + /* + * hack for booting from usb: add 9load partitions. + */ + if(parts != nil) + addparts(parts); postmountsrv(&fs, srvname, mtpt, MBEFORE); exits(nil);