A little question about safe mode
Andriy Gapon
avg at FreeBSD.org
Thu Oct 18 15:33:17 UTC 2012
on 18/10/2012 18:20 Andriy Gapon said the following:
> My guess is that the easiest way to avoid this ambiguity and the confusion that it
> causes (like the problem you described above) is to prepend "/dev/", if it's
> missing, right in vfs_mountroot.c before calling kernel_mount().
A patch (not tested):
--- a/sys/kern/vfs_mountroot.c
+++ b/sys/kern/vfs_mountroot.c
@@ -676,6 +676,7 @@ static int
parse_mount(char **conf)
{
char errmsg[255];
+ char devbuf[MNAMELEN];
struct mntarg *ma;
char *dev, *fs, *opts, *tok;
int delay, error, timeout;
@@ -693,6 +694,11 @@ parse_mount(char **conf)
parse_advance(&tok);
dev = tok;
+ if (dev[0] != '\0' && strncmp(dev, "/dev/", 5) != 0) {
+ snprintf(devbuf, sizeof(devbuf), "/dev/%s", dev);
+ dev = devbuf;
+ }
+
if (root_mount_mddev != -1) {
/* Handle substitution for the md unit number. */
tok = strstr(dev, "md#");
--
Andriy Gapon
More information about the freebsd-current
mailing list