X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=src%2Finspect_fs.c;fp=src%2Finspect_fs.c;h=68e2ddb7083c3eacd1ba7cbd4f1cc47aace38b1f;hp=25336265f9d24144a22631ed436588c5b4b67338;hb=05a8359c7cf98fdcf75628299dd3e64401f07ee4;hpb=15d79b5ea95ba28ebf6d8bb7542d86702edc1e8f diff --git a/src/inspect_fs.c b/src/inspect_fs.c index 2533626..68e2ddb 100644 --- a/src/inspect_fs.c +++ b/src/inspect_fs.c @@ -120,9 +120,16 @@ guestfs___check_for_filesystem_on (guestfs_h *g, const char *device, /* Try mounting the device. As above, ignore errors. */ g->error_cb = NULL; - int r = guestfs_mount_ro (g, device, "/"); - if (r == -1 && vfs_type && STREQ (vfs_type, "ufs")) /* Hack for the *BSDs. */ + int r; + if (vfs_type && STREQ (vfs_type, "ufs")) { /* Hack for the *BSDs. */ + /* FreeBSD fs is a variant of ufs called ufs2 ... */ r = guestfs_mount_vfs (g, "ro,ufstype=ufs2", "ufs", device, "/"); + if (r == -1) + /* while NetBSD and OpenBSD use another variant labeled 44bsd */ + r = guestfs_mount_vfs (g, "ro,ufstype=44bsd", "ufs", device, "/"); + } else { + r = guestfs_mount_ro (g, device, "/"); + } free (vfs_type); g->error_cb = old_error_cb; if (r == -1)