diff --git a/sbin/newfs/newfs.c b/sbin/newfs/newfs.c --- a/sbin/newfs/newfs.c +++ b/sbin/newfs/newfs.c @@ -342,6 +342,11 @@ } pp = NULL; lp = getdisklabel(); + /* + * set filesystem size from file size when a bsdlabel isn't present + */ + if (lp == NULL && is_file) + fssize = mediasize / sectorsize; if (lp != NULL) { if (!is_file) /* already set for files */ part_name = special[strlen(special) - 1]; @@ -431,7 +436,7 @@ bootarea + (0 /* labeloffset */ + 1 /* labelsoffset */ * sectorsize), &lab, MAXPARTITIONS)) - errx(1, "no valid label found"); + return (NULL); lp = &lab; return &lab;