VirtualBox

Ignore:
Timestamp:
Dec 5, 2018 12:30:09 PM (6 years ago)
Author:
vboxsync
Message:

Rename vboxraw to vboximg-mount and make it possible to build it by giving VBOX_WITH_VBOXIMGMOUNT=1 on the command line

Location:
trunk/src/VBox/ImageMounter/vboximg-mount
Files:
2 added
1 deleted
1 edited
1 copied
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ImageMounter/vboximg-mount/Makefile.kmk

    r75815 r75970  
    11# $Id$
    22## @file
    3 # Sub-Makefile for the vboxraw Program.
     3# Sub-Makefile for the vboximg-mount Program.
    44
    55#
     
    2020
    2121#
    22 # vboxraw - Disk Image Flatting FUSE Program.
     22# vboximg-mount - Disk Image Flatting FUSE Program.
    2323#
    24 PROGRAMS += vboxraw
     24PROGRAMS += vboximg-mount
    2525
    26 vboxraw_TEMPLATE =  VBOXMAINCLIENTEXE
    27 vboxraw_DEFS.darwin = __FreeBSD_==10
    28 vboxraw_DEFS        = _FILE_OFFSET_BITS=64
     26vboximg-mount_TEMPLATE =  VBOXMAINCLIENTEXE
     27vboximg-mount_DEFS.darwin = __FreeBSD_==10
     28vboximg-mount_DEFS        = _FILE_OFFSET_BITS=64
    2929
    30 vboxraw_SOURCES = \
    31     vboxraw.cpp \
    32     vboxraw.h \
     30vboximg-mount_SOURCES = \
     31    vboximg-mount.cpp \
     32    vboximg-mount.h \
    3333    SelfSizingTable.h
    3434
    35 vboxraw_LIBS = \
     35vboximg-mount_LIBS = \
    3636        $(LIB_DDU) \
    3737        $(LIB_RUNTIME)
    3838
    39 vboxraw_INCS.darwin = \
     39vboximg-mount_INCS.darwin = \
    4040    /usr/local/include \
    4141    /usr/local/include/osxfuse \
    42 vboxraw_CXXFLAGS.darwin = -std=c++11
     42vboximg-mount_CXXFLAGS.darwin = -std=c++11
    4343
    44 vboxraw_LIBS.darwin = /usr/local/lib/libosxfuse.dylib
    45 vboxraw_LIBS.linux = fuse
    46 vboxraw_LIBS.freebsd = fuse
     44vboximg-mount_LIBS.darwin = /usr/local/lib/libosxfuse.dylib
     45vboximg-mount_LIBS.linux = fuse
     46vboximg-mount_LIBS.freebsd = fuse
    4747
    4848include $(FILE_KBUILD_SUB_FOOTER)
  • trunk/src/VBox/ImageMounter/vboximg-mount/vboximg-mount.cpp

    r75968 r75970  
    11/* $Id$ */
    22/** @file
    3  * vboxraw - Disk Image Flattening FUSE Program.
     3 * vboximg-mount - Disk Image Flattening FUSE Program.
    44 */
    55
     
    7575#include <iprt/utf16.h>
    7676
    77 #include "vboxraw.h"
     77#include "vboximg-mount.h"
    7878#include "SelfSizingTable.h"
    7979
     
    9191} g_u;
    9292
     93#if 0 /* unused */
    9394const uint64_t KB = 1024;
    9495const uint64_t MB = KB * KB;
     
    9697const uint64_t TB = GB * KB;
    9798const uint64_t PB = TB * KB;
     99#endif
    98100
    99101enum { PARTITION_TABLE_MBR = 1, PARTITION_TABLE_GPT = 2 };
     
    102104#define MBR_PARTITIONS_MAX          4                /** Fixed number of partitions in Master Boot Record */
    103105#define BASENAME_MAX                256              /** Maximum name for the basename of a path (for RTStrNLen()*/
    104 #define VBOXRAW_PARTITION_MAX       256              /** How much storage to allocate to store partition info */
     106#define VBOXIMG_PARTITION_MAX       256              /** How much storage to allocate to store partition info */
    105107#define PARTITION_NAME_MAX          72               /** Maximum partition name size (accomodates GPT partition name) */
    106108#define BLOCKSIZE                   512              /** Commonly used disk block size */
     
    124126#define CSTR(arg)     Utf8Str(arg).c_str()          /* Converts XPCOM string type to C string type */
    125127
    126 static struct fuse_operations g_vboxrawOps;         /** FUSE structure that defines allowed ops for this FS */
     128static struct fuse_operations g_vboximgOps;         /** FUSE structure that defines allowed ops for this FS */
    127129
    128130/* Global variables */
     
    164166} PARTITIONINFO;
    165167
    166 PARTITIONINFO g_aParsedPartitionInfo[VBOXRAW_PARTITION_MAX + 1]; /* Note: Element 0 reserved for EntireDisk partitionEntry */
    167 
    168 static struct vboxrawOpts {
     168PARTITIONINFO g_aParsedPartitionInfo[VBOXIMG_PARTITION_MAX + 1]; /* Note: Element 0 reserved for EntireDisk partitionEntry */
     169
     170static struct vboximgOpts {
    169171     char         *pszVm;                   /** optional VM UUID */
    170172     char         *pszImage;                /** Virtual Disk image UUID or path */
     
    180182     uint32_t      fBriefUsage;             /** Flag to display only FS-specific program usage options */
    181183     uint32_t      fVerbose;                /** Make some noise */
    182 } g_vboxrawOpts;
    183 
    184 #define OPTION(fmt, pos, val) { fmt, offsetof(struct vboxrawOpts, pos), val }
    185 
    186 static struct fuse_opt vboxrawOptDefs[] = {
     184} g_vboximgOpts;
     185
     186#define OPTION(fmt, pos, val) { fmt, offsetof(struct vboximgOpts, pos), val }
     187
     188static struct fuse_opt vboximgOptDefs[] = {
    187189    OPTION("-l",              fListMediaBrief,   1),
    188190    OPTION("-L",              fListMedia,        1),
     
    211213briefUsage()
    212214{
    213     RTPrintf("usage: vboxraw [options] <mountpoint>\n\n"
    214         "vboxraw options:\n\n"
     215    RTPrintf("usage: vboximg-mount [options] <mountpoint>\n\n"
     216        "vboximg-mount options:\n\n"
    215217        "    [ -l ]                                     List virtual disk media (brief version)\n"
    216218        "    [ -L ]                                     List virtual disk media (long version)\n"
     
    258260
    259261static int
    260 vboxrawOptHandler(void *data, const char *arg, int optKey, struct fuse_args *outargs)
     262vboximgOptHandler(void *data, const char *arg, int optKey, struct fuse_args *outargs)
    261263{
    262264    (void) data;
     
    267269            briefUsage();
    268270            fuse_opt_add_arg(outargs, "-ho");
    269             fuse_main(outargs->argc, outargs->argv, &g_vboxrawOps, NULL);
     271            fuse_main(outargs->argc, outargs->argv, &g_vboximgOps, NULL);
    270272            break;
    271273    }
     
    274276
    275277/** @copydoc fuse_operations::open */
    276 static int vboxrawOp_open(const char *pszPath, struct fuse_file_info *pInfo)
     278static int vboximgOp_open(const char *pszPath, struct fuse_file_info *pInfo)
    277279{
    278280    (void) pInfo;
     
    336338
    337339/** @todo Remove when VD I/O becomes threadsafe */
    338 static DECLCALLBACK(int) vboxrawThreadStartRead(void *pvUser)
     340static DECLCALLBACK(int) vboximgThreadStartRead(void *pvUser)
    339341{
    340342    PRTCRITSECT vdioLock = (PRTCRITSECT)pvUser;
     
    342344}
    343345
    344 static DECLCALLBACK(int) vboxrawThreadFinishRead(void *pvUser)
     346static DECLCALLBACK(int) vboximgThreadFinishRead(void *pvUser)
    345347{
    346348    PRTCRITSECT vdioLock = (PRTCRITSECT)pvUser;
     
    348350}
    349351
    350 static DECLCALLBACK(int) vboxrawThreadStartWrite(void *pvUser)
     352static DECLCALLBACK(int) vboximgThreadStartWrite(void *pvUser)
    351353{
    352354    PRTCRITSECT vdioLock = (PRTCRITSECT)pvUser;
     
    354356}
    355357
    356 static DECLCALLBACK(int) vboxrawThreadFinishWrite(void *pvUser)
     358static DECLCALLBACK(int) vboximgThreadFinishWrite(void *pvUser)
    357359{
    358360    PRTCRITSECT vdioLock = (PRTCRITSECT)pvUser;
     
    362364
    363365/** @copydoc fuse_operations::release */
    364 static int vboxrawOp_release(const char *pszPath, struct fuse_file_info *pInfo)
     366static int vboximgOp_release(const char *pszPath, struct fuse_file_info *pInfo)
    365367{
    366368    (void) pszPath;
     
    571573
    572574/** @copydoc fuse_operations::read */
    573 static int vboxrawOp_read(const char *pszPath, char *pbBuf, size_t cbBuf,
     575static int vboximgOp_read(const char *pszPath, char *pbBuf, size_t cbBuf,
    574576                           off_t offset, struct fuse_file_info *pInfo)
    575577{
     
    602604
    603605/** @copydoc fuse_operations::write */
    604 static int vboxrawOp_write(const char *pszPath, const char *pbBuf, size_t cbBuf,
     606static int vboximgOp_write(const char *pszPath, const char *pbBuf, size_t cbBuf,
    605607                           off_t offset, struct fuse_file_info *pInfo)
    606608{
     
    617619
    618620    int rc = 0;
    619     if (!g_vboxrawOpts.fRW) {
    620         LogFlowFunc(("WARNING: vboxraw (FUSE FS) --rw option not specified\n"
     621    if (!g_vboximgOpts.fRW) {
     622        LogFlowFunc(("WARNING: vboximg-mount (FUSE FS) --rw option not specified\n"
    621623                     "              (write operation ignored w/o error!)\n"));
    622624        return cbBuf;
     
    638640/** @copydoc fuse_operations::getattr */
    639641static int
    640 vboxrawOp_getattr(const char *pszPath, struct stat *stbuf)
     642vboximgOp_getattr(const char *pszPath, struct stat *stbuf)
    641643{
    642644    int rc = 0;
     
    670672         * representing the offset range of the partition.
    671673         *
    672          *  $ vboxraw -i /stroll/along/the/path/simple_fixed_disk.vdi -p 1 /mnt/tmpdir
     674         *  $ vboximg-mount -i /stroll/along/the/path/simple_fixed_disk.vdi -p 1 /mnt/tmpdir
    673675         *  $ ls /mnt/tmpdir
    674676         *  simple_fixed_disk.vdi[20480:2013244928]    vhdd
     
    690692/** @copydoc fuse_operations::readdir */
    691693static int
    692 vboxrawOp_readdir(const char *pszPath, void *pvBuf, fuse_fill_dir_t pfnFiller,
     694vboximgOp_readdir(const char *pszPath, void *pvBuf, fuse_fill_dir_t pfnFiller,
    693695                              off_t offset, struct fuse_file_info *pInfo)
    694696
     
    734736/** @copydoc fuse_operations::readlink */
    735737static int
    736 vboxrawOp_readlink(const char *pszPath, char *buf, size_t size)
     738vboximgOp_readlink(const char *pszPath, char *buf, size_t size)
    737739{
    738740    (void) pszPath;
     
    792794                if (ancestorNumber == 0)
    793795                {
    794                     if (!g_vboxrawOpts.fListMediaBrief)
     796                    if (!g_vboximgOpts.fListMediaBrief)
    795797                    {
    796798                        RTPrintf("   -----------------------\n");
     
    810812                else
    811813                {
    812                     if (!g_vboxrawOpts.fListMediaBrief)
     814                    if (!g_vboximgOpts.fListMediaBrief)
    813815                    {
    814816                        RTPrintf("     Diff %d:\n", ancestorNumber);
     
    855857                CHECK_ERROR(pMachine, COMGETTER(SettingsFilePath)(pMachineLocation.asOutParam()));
    856858
    857                 if (   g_vboxrawOpts.pszVm == NULL
    858                     || RTStrNCmp(CSTR(pMachineUuid), g_vboxrawOpts.pszVm, MAX_UUID_LEN) == 0
    859                     || RTStrNCmp((const char *)pMachineName.raw(), g_vboxrawOpts.pszVm, MAX_UUID_LEN) == 0)
     859                if (   g_vboximgOpts.pszVm == NULL
     860                    || RTStrNCmp(CSTR(pMachineUuid), g_vboximgOpts.pszVm, MAX_UUID_LEN) == 0
     861                    || RTStrNCmp((const char *)pMachineName.raw(), g_vboximgOpts.pszVm, MAX_UUID_LEN) == 0)
    860862                {
    861                     if (!g_vboxrawOpts.fListMediaBrief)
     863                    if (!g_vboximgOpts.fListMediaBrief)
    862864                    {
    863865                        RTPrintf("------------------------------------------------------\n");
     
    990992            RTPrintf("   UUID: %s\n\n", g_pvDiskUuid);
    991993
    992         if (g_vboxrawOpts.fVerbose)
     994        if (g_vboximgOpts.fVerbose)
    993995        {
    994996            RTPrintf("   GPT Partition Table Header:\n\n");
     
    10561058
    10571059        for (int idxPartition = 5;
    1058                  idxPartition <= VBOXRAW_PARTITION_MAX;
     1060                 idxPartition <= VBOXIMG_PARTITION_MAX;
    10591061                 idxPartition++)
    10601062        {
     
    12411243        return RTMsgErrorExitFailure("VDInit failed, rc=%Rrc\n", rc);
    12421244
    1243     memset(&g_vboxrawOps, 0, sizeof(g_vboxrawOps));
    1244     g_vboxrawOps.open        = vboxrawOp_open;
    1245     g_vboxrawOps.read        = vboxrawOp_read;
    1246     g_vboxrawOps.write       = vboxrawOp_write;
    1247     g_vboxrawOps.getattr     = vboxrawOp_getattr;
    1248     g_vboxrawOps.release     = vboxrawOp_release;
    1249     g_vboxrawOps.readdir     = vboxrawOp_readdir;
    1250     g_vboxrawOps.readlink    = vboxrawOp_readlink;
     1245    memset(&g_vboximgOps, 0, sizeof(g_vboximgOps));
     1246    g_vboximgOps.open        = vboximgOp_open;
     1247    g_vboximgOps.read        = vboximgOp_read;
     1248    g_vboximgOps.write       = vboximgOp_write;
     1249    g_vboximgOps.getattr     = vboximgOp_getattr;
     1250    g_vboximgOps.release     = vboximgOp_release;
     1251    g_vboximgOps.readdir     = vboximgOp_readdir;
     1252    g_vboximgOps.readlink    = vboximgOp_readlink;
    12511253
    12521254    struct fuse_args args = FUSE_ARGS_INIT(argc, argv);
    1253     memset(&g_vboxrawOpts, 0, sizeof(g_vboxrawOpts));
    1254 
    1255     rc = fuse_opt_parse(&args, &g_vboxrawOpts, vboxrawOptDefs, vboxrawOptHandler);
    1256 
    1257     if (g_vboxrawOpts.fAllowRoot)
     1255    memset(&g_vboximgOpts, 0, sizeof(g_vboximgOpts));
     1256
     1257    rc = fuse_opt_parse(&args, &g_vboximgOpts, vboximgOptDefs, vboximgOptHandler);
     1258
     1259    if (g_vboximgOpts.fAllowRoot)
    12581260        fuse_opt_add_arg(&args, "-oallow_root");
    12591261
    12601262    if (rc == -1)
    12611263        return RTMsgErrorExitFailure("Couldn't parse fuse options, rc=%Rrc\n", rc);
    1262     if (g_vboxrawOpts.fBriefUsage)
     1264    if (g_vboximgOpts.fBriefUsage)
    12631265    {
    12641266        briefUsage();
     
    12971299        return RTMsgErrorExit(RTEXITCODE_FAILURE, "Failed to get IVirtualBox object! (hrc=%Rhrc)", hrc);
    12981300
    1299     if (g_vboxrawOpts.fVerbose)
    1300         RTPrintf("vboxraw: VirtualBox XPCOM object created\n");
    1301 
    1302     if (g_vboxrawOpts.fListMedia || g_vboxrawOpts.fListMediaBrief)
     1301    if (g_vboximgOpts.fVerbose)
     1302        RTPrintf("vboximg: VirtualBox XPCOM object created\n");
     1303
     1304    if (g_vboximgOpts.fListMedia || g_vboximgOpts.fListMediaBrief)
    13031305    {
    13041306        listVMs(pVirtualBox);
     
    13071309
    13081310
    1309     if (g_vboxrawOpts.pszImage == NULL)
     1311    if (g_vboximgOpts.pszImage == NULL)
    13101312    {
    13111313        RTMsgErrorExitFailure("To list partitions, must also specify --i or --image option\n");
     
    13151317    char    *pszFormat;
    13161318    VDTYPE  enmType;
    1317     searchForBaseImage(pVirtualBox, g_vboxrawOpts.pszImage, &pBaseImageMedium);
     1319    searchForBaseImage(pVirtualBox, g_vboximgOpts.pszImage, &pBaseImageMedium);
    13181320    if (pBaseImageMedium == NULL)
    13191321    {
     
    13221324         * resolving symlinks back to hard path.
    13231325         */
    1324         int cbNameMax = pathconf(g_vboxrawOpts.pszImage, _PC_PATH_MAX);
     1326        int cbNameMax = pathconf(g_vboximgOpts.pszImage, _PC_PATH_MAX);
    13251327        if (cbNameMax < 0)
    13261328            return cbNameMax;
    13271329
    1328         g_pszBaseImagePath = RTStrDup(g_vboxrawOpts.pszImage);
     1330        g_pszBaseImagePath = RTStrDup(g_vboximgOpts.pszImage);
    13291331        if (g_pszBaseImagePath == NULL)
    13301332            return RTMsgErrorExitFailure("out of memory\n");
     
    13371339                    "Virtual disk image not readable: \"%s\"\n", g_pszBaseImagePath);
    13381340
    1339         if (g_vboxrawOpts.fRW && access(g_vboxrawOpts.pszImage, W_OK) < 0)
     1341        if (g_vboximgOpts.fRW && access(g_vboximgOpts.pszImage, W_OK) < 0)
    13401342             return RTMsgErrorExitFailure(
    13411343                    "Virtual disk image not writeable: \"%s\"\n", g_pszBaseImagePath);
     
    14211423                    return RTMsgErrorExitFailure("VDGetFormat(,,%s,,) "
    14221424                        "failed (during HDD container creation), rc=%Rrc\n", g_pszBaseImagePath, rc);
    1423                 if (g_vboxrawOpts.fVerbose)
     1425                if (g_vboximgOpts.fVerbose)
    14241426                    RTPrintf("Creating container for base image of format %s\n", pszFormat);
    14251427                /** @todo Remove I/O CB's and crit sect. when VDRead()/VDWrite() are made threadsafe */
     
    14271429                if (RT_SUCCESS(rc))
    14281430                {
    1429                     g_VDIfThreadSync.pfnStartRead   = vboxrawThreadStartRead;
    1430                     g_VDIfThreadSync.pfnFinishRead  = vboxrawThreadFinishRead;
    1431                     g_VDIfThreadSync.pfnStartWrite  = vboxrawThreadStartWrite;
    1432                     g_VDIfThreadSync.pfnFinishWrite = vboxrawThreadFinishWrite;
    1433                     rc = VDInterfaceAdd(&g_VDIfThreadSync.Core, "vboxraw_ThreadSync", VDINTERFACETYPE_THREADSYNC,
     1431                    g_VDIfThreadSync.pfnStartRead   = vboximgThreadStartRead;
     1432                    g_VDIfThreadSync.pfnFinishRead  = vboximgThreadFinishRead;
     1433                    g_VDIfThreadSync.pfnStartWrite  = vboximgThreadStartWrite;
     1434                    g_VDIfThreadSync.pfnFinishWrite = vboximgThreadFinishWrite;
     1435                    rc = VDInterfaceAdd(&g_VDIfThreadSync.Core, "vboximg_ThreadSync", VDINTERFACETYPE_THREADSYNC,
    14341436                                        &g_vdioLock, sizeof(VDINTERFACETHREADSYNC), &g_pVdIfs);
    14351437                }
     
    14451447            /** @todo (end of to do section) */
    14461448
    1447             if ( g_vboxrawOpts.cHddImageDiffMax != 0 && diffNumber > g_vboxrawOpts.cHddImageDiffMax)
     1449            if ( g_vboximgOpts.cHddImageDiffMax != 0 && diffNumber > g_vboximgOpts.cHddImageDiffMax)
    14481450                break;
    14491451
    1450             if (g_vboxrawOpts.fVerbose)
     1452            if (g_vboximgOpts.fVerbose)
    14511453            {
    14521454                if (diffNumber == 0)
    1453                     RTPrintf("\nvboxraw: Opening base image into container:\n       %s\n",
     1455                    RTPrintf("\nvboximg-mount: Opening base image into container:\n       %s\n",
    14541456                        g_pszBaseImagePath);
    14551457                else
    1456                     RTPrintf("\nvboxraw: Opening difference image #%d into container:\n       %s\n",
     1458                    RTPrintf("\nvboximg-mount: Opening difference image #%d into container:\n       %s\n",
    14571459                        diffNumber, g_pszBaseImagePath);
    14581460            }
     
    14841486    g_cbEntireVDisk  = VDGetSize(g_pVDisk, 0 /* base */);
    14851487
    1486     if (g_vboxrawOpts.fListParts)
     1488    if (g_vboximgOpts.fListParts)
    14871489    {
    14881490        if (g_pVDisk == NULL)
     
    15051507        return 0;
    15061508    }
    1507     if (g_vboxrawOpts.idxPartition >= 0)
    1508     {
    1509         if (g_vboxrawOpts.offset)
     1509    if (g_vboximgOpts.idxPartition >= 0)
     1510    {
     1511        if (g_vboximgOpts.offset)
    15101512            return RTMsgErrorExitFailure("--offset and --partition are mutually exclusive options\n");
    15111513
    1512         if (g_vboxrawOpts.size)
     1514        if (g_vboximgOpts.size)
    15131515            return RTMsgErrorExitFailure("--size and --partition are mutually exclusive options\n");
    15141516
     
    15211523        if (rc < 0)
    15221524            return RTMsgErrorExitFailure("Error parsing disk MBR/Partition table\n");
    1523         int partNbr = g_vboxrawOpts.idxPartition;
     1525        int partNbr = g_vboximgOpts.idxPartition;
    15241526
    15251527        if (partNbr < 0 || partNbr > g_lastPartNbr)
     
    15301532            g_vDiskOffset = 0;
    15311533            g_vDiskSize = VDGetSize(g_pVDisk, 0);
    1532             if (g_vboxrawOpts.fVerbose)
     1534            if (g_vboximgOpts.fVerbose)
    15331535                RTPrintf("Partition 0 specified - Whole disk will be accessible\n");
    15341536        } else {
    15351537            for (int i = 0; i < g_lastPartNbr; i++)
    15361538            {
    1537                 /* If GPT, display vboxraw's representation of partition table starts at partition 2
     1539                /* If GPT, display vboximg's representation of partition table starts at partition 2
    15381540                 * but the table is displayed calling it partition 1, because the protective MBR
    15391541                 * record is relatively pointless to display or reference in this context */
     
    15431545                     g_vDiskOffset = g_aParsedPartitionInfo[i].offPartition;
    15441546                     g_vDiskSize = g_vDiskOffset + g_aParsedPartitionInfo[i].cbPartition;
    1545                      if (g_vboxrawOpts.fVerbose)
     1547                     if (g_vboximgOpts.fVerbose)
    15461548                        RTPrintf("Partition %d specified. Only sectors %llu to %llu of disk will be accessible\n",
    1547                             g_vboxrawOpts.idxPartition, g_vDiskOffset / BLOCKSIZE, g_vDiskSize / BLOCKSIZE);
     1549                            g_vboximgOpts.idxPartition, g_vDiskOffset / BLOCKSIZE, g_vDiskSize / BLOCKSIZE);
    15481550                }
    15491551            }
    15501552        }
    15511553    } else {
    1552         if (g_vboxrawOpts.offset) {
    1553             if (g_vboxrawOpts.offset < 0 || g_vboxrawOpts.offset + g_vboxrawOpts.size > g_cbEntireVDisk)
     1554        if (g_vboximgOpts.offset) {
     1555            if (g_vboximgOpts.offset < 0 || g_vboximgOpts.offset + g_vboximgOpts.size > g_cbEntireVDisk)
    15541556                return RTMsgErrorExitFailure("User specified offset out of range of virtual disk\n");
    15551557
    1556             if (g_vboxrawOpts.fVerbose)
     1558            if (g_vboximgOpts.fVerbose)
    15571559                RTPrintf("Setting r/w bias (offset) to user requested value for sector %llu\n", g_vDiskOffset / BLOCKSIZE);
    15581560
    1559             g_vDiskOffset = g_vboxrawOpts.offset;
    1560         }
    1561         if (g_vboxrawOpts.size) {
    1562             if (g_vboxrawOpts.size < 0 || g_vboxrawOpts.offset + g_vboxrawOpts.size > g_cbEntireVDisk)
     1561            g_vDiskOffset = g_vboximgOpts.offset;
     1562        }
     1563        if (g_vboximgOpts.size) {
     1564            if (g_vboximgOpts.size < 0 || g_vboximgOpts.offset + g_vboximgOpts.size > g_cbEntireVDisk)
    15631565                return RTMsgErrorExitFailure("User specified size out of range of virtual disk\n");
    15641566
    1565             if (g_vboxrawOpts.fVerbose)
     1567            if (g_vboximgOpts.fVerbose)
    15661568                RTPrintf("Setting r/w size limit to user requested value %llu\n", g_vDiskSize / BLOCKSIZE);
    15671569
    1568             g_vDiskSize = g_vboxrawOpts.size;
     1570            g_vDiskSize = g_vboximgOpts.size;
    15691571        }
    15701572    }
     
    15751577     * Hand control over to libfuse.
    15761578     */
    1577     if (g_vboxrawOpts.fVerbose)
    1578         RTPrintf("\nvboxraw: Going into background...\n");
    1579 
    1580     rc = fuse_main(args.argc, args.argv, &g_vboxrawOps, NULL);
     1579    if (g_vboximgOpts.fVerbose)
     1580        RTPrintf("\nvboximg-mount: Going into background...\n");
     1581
     1582    rc = fuse_main(args.argc, args.argv, &g_vboximgOps, NULL);
    15811583
    15821584    int rc2 = VDClose(g_pVDisk, false /* fDelete */);
    15831585    AssertRC(rc2);
    1584     RTPrintf("vboxraw: fuse_main -> %d\n", rc);
     1586    RTPrintf("vboximg-mount: fuse_main -> %d\n", rc);
    15851587    return rc;
    15861588}
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette