Menu

#25 Max 1TB drive (of 500x 2G splited vmdk ) is able to be mounted.

open
nobody
vmdk (1)
2020-04-06
2020-03-24
ccchan
No

hi~
I try to mount a drive, make up of 2GB splited vmdks.

I can create new empty drive by using vbox:
vboxmanage createmedium --filename d:test.vmdk --format vmdk --size 1000000 --variant standard,split2g

the resulting 1TB drive (500x 2G vmdk) could be mounted.

but it FAIL if the size is over a total of 1TB. i.e. if the above is 1100000 then it will fail.

the symptom is: after selected the 1st .vmdk file,
then the size is not shown inside imdisk.
(if in the 1TB case, doing so will immediately show the drive size of 9xxGB)

a less important thing is that the vmdk's name seems need to be 9 alphabets,
larger than that it cant mount.

Anyway imdisk is useful to me at the moment.
hope it can improve.

thanks

info:
win10, 64b, 1903v. latest imdisk tookit.

ps: sorry to be posted also in the discussion board.

Discussion

  • v77

    v77 - 2020-03-24

    As I already use VirtualBox, I tried your command with 1100000 as value. I get several files, up to "test-s538.vmdk".
    Then I mount test.vmdk with Mountlmg. The size is properly displayed (1.05 TB) and I can format it and use it normally.

    I don't understand what you mean about the vmdk's name. Could you please give an example?

     
  • ccchan

    ccchan - 2020-03-25

    hi~ thx for reply.
    Finally I found that there is TWO abnormal things.

    From the attachments, those are the commands I used.
    And then: (all on drive f:)
    vmdk-file-name, size, status
    teste, 1000 GB, ok
    testf, 1100GB, ok (not shown)
    testg, 1200GB, failed
    testtestabcd, 1000GB, failed

    when it fail, it just simply dont even show the size, even I waited for 3mins.

    abnormal 1: filenames >9 are not ok (the exact limit need to be confirmed later).
    abnormal 2: with files names <9, size of 1000GB, 1100GB are ok,
    but NOT with 1200GB

    thank you for reply.

    ps: the version of the imdisk are also shown.
    I have only tested on a win10, 64bit, indeep a 1809 ver.

     
  • ccchan

    ccchan - 2020-03-25

    virtualbox's media manager could identify the size of both 1000G and 1200G's vmdk, so I think the created split vmdk are valid.

     
  • v77

    v77 - 2020-03-25

    OK thanks. These are in fact the same bug.
    DiscUtilsDevio says:
    "Invalid VMDK descriptor file, more than 20480 bytes in length"

    This is an issue with the DiscUtils library. I will report that.

     
    • ccchan

      ccchan - 2020-03-30

      just use notepad to open the .vmdk,
      seems it''s a list of filename.
      so either increasing the path length OR increase the filename will result
      in the size of the .vmdk which v77 stated have to be < 20KB.

      indeep it suggest at the moment if one could name the .vmdk as a.vmdk,
      then he/she can increase the max mounted size?

      thanks


      *old:

      hi~
      Just want to point out that indeed it seems the "path + filename"have to be short?
      last time i use f:/teste.vmdk with size < 1100GB, it will be ok to mount,
      seems I moved them to folder "partition1" and
      now becomes f:/partition1/teste.vmdk and it will got the above error.

      that will add some trouble as one cant organize by folder and with filename limited to < 9 alphabet.

      thanks.*

       

      Last edit: ccchan 2020-03-30
      • v77

        v77 - 2020-03-30

        indeep it suggest at the moment if one could name the .vmdk as a.vmdk,
        then he/she can increase the max mounted size?

        Yes exactly.

        last time i use f:/teste.vmdk with size < 1100GB, it will be ok to mount,
        seems I moved them to folder "partition1" and
        now becomes f:/partition1/teste.vmdk and it will got the above error.

        Be careful, the descriptor file does not include the full path. So you need to have all the files in the same folder. You cannot move only the descriptor file.

         
  • Olof Lagerkvist

    Olof Lagerkvist - 2020-03-25

    I investigated a similar problem a few months ago. If I recall correctly the conclusion was that when mounting multi-part vmdk files or other vmdk files where the metadata is in a separate file, DiscUtils library needs the metadata file and not the actual image file. The metadata file is usually a rather small file with references to the actual image data files. So, my suggestion here is to try to mount the small metadata file if there is such a one created together with the split vmdk files.

     
    • v77

      v77 - 2020-03-25

      So, my suggestion here is to try to mount the small metadata file if there is such a one created together with the split vmdk files.

      It's already what we are doing...

       
      • Olof Lagerkvist

        Olof Lagerkvist - 2020-03-25

        I just tried the following:
        C:\Program Files\Oracle\VirtualBox> vboxmanage createmedium --filename D:\test.vmdk --format vmdk --size 1000000 --variant standard,split2g
        C:\Program Files\Oracle\VirtualBox> discutilsdevio /name=test /filename=D:\test.vmdk
        Opening image D:\test.vmdk
        Image type class: DiscUtils.Vmdk.Disk
        Unknown partition table format or partition table not found.
        Image virtual size is 1048576000000 bytes
        Image sector size is unknown
        Partition table not found.
        Using entire image file: D:\test.vmdk
        Used size is 1048576000000 bytes
        Read/write mode.
        Opening image file...
        Image file opened, waiting for incoming connections. Press Ctrl+C to exit.

        So, it looks okay if I try to mount the metadata file D:\test.vmdk. However, it does not work if I try to mount D:\test-s001.vmdk in this case.

         
        • v77

          v77 - 2020-03-25

          Yes, this is what I tried, and as I said above, it worked for me too.
          And it works because test.vmdk is below 20KB.
          If you increase either the number of files or the file name, test.vmdk become larger than 20KB and it creates this error.

           
          • Olof Lagerkvist

            Olof Lagerkvist - 2020-03-25

            Ah, sorry, I missed that part. I just remembered the conclusion from last time I investigated this problem and what solved the problems people had back then. I did not realize that this could also be an option. Maybe it would be safe to simply increase a bit the maximum size it accepts for descriptor metadata. Question is how much it would make sense to increase it. Or if there is any other safe way to detect valid descriptor data instead.

             
            • v77

              v77 - 2020-03-25

              For now, in my opinion, 1MB might be a good limit.

              But it still sounds a bit dirty... DiscUtils sould be able to process any size of metadata file. So, I think DiscUtils should scan the beginning of the file to check whether this is a metadata file or not. Hard to say more without the documentation of the VMDK format.

               
  • ccchan

    ccchan - 2020-03-25

    thank you both of you for the efforts.

    Just some questions and comments from a layman.

    1. I am new to imdisk, may I ask did imdisk support other split images that work in this way?

    The other split image format known to me is called "split raw image" ending in .00n, could be mount by OSFmount but I never heard which program could create it. [1] (I tried arsenal image mounter but the free version even cant mount splited vmdks...)

    1. This issue is quite important for me and I think for cloud era. let me explain...
      This is how I wanna use it:

    my files

    container of cppcryptfs (file level encryption)

    2x2TB vmdk split into 2GB .vmdk (vmdk max is 2TB?)

    plain text NTFS

    4TB HDD

    I am using 1TB vmdk due to the problem.

    This usage is more suit for cloud than using a 4TB truecrypt/veracrypt volume.
    Using TC/VC you cant practically UPDATE the copy on cloud, as uploading 4TB even using google drive need 6-7days (due to 750GB/day limit).

    But using the above structure, say I only changed a 1MB .txt, and it only modify one 2GB .vmdk,
    and it could easily be updated.

    Thank you for you time.
    Take care.


    ref
    [1]

    OSFMount - Mount Disk Images & Create RAM Driveswww.osforensics.com › tools › mount-disk-images
    The free OSFMount tool mounts raw disk image files in mulitple formats. You can also create RAM drives. ... Split Raw Image (.00n). Nero Burning ROM Image (.

     

    Last edit: ccchan 2020-03-25
    • Olof Lagerkvist

      Olof Lagerkvist - 2020-03-25

      Arsenal Image Mounter can mount split vmdk normally, but in this case you will run into the same problem because it uses the same DiscUtils code for accessing vmdk images. I will make a small change in my fork of DiscUtils and publish versions of ImDisk/DiscUtilsDevio and Arsenal Image Mounter with this modification.

       
      • Olof Lagerkvist

        Olof Lagerkvist - 2020-03-25

        Forgot to comment on it, but Arsenal Image Mounter supports mounting split raw images too. Just mount the first .001 file and then it finds the following files and use them automatically.

         
        • ccchan

          ccchan - 2020-04-06

          hi,
          should I name the split raw images starting as .001 then .002 or start as .000 then .001?
          AIM seems by default ask for .001 files, while some others start from .000,
          does it matter?

          thank you

          btw, AIM seems dont have a locking mechanism,
          even my image is mounted, i can click in AIM and dismount it,
          without any warning to the user, this seems less prefered to me.

           
      • v77

        v77 - 2020-03-25

        Thanks Olof. Please let me know when you are done.
        By the way, I think you should update your "ImDiskNet.7z": it is a bit outdated... ;)

         
        • Olof Lagerkvist

          Olof Lagerkvist - 2020-03-25

          Yes, thanks! I will do that at the same time.

           
      • ccchan

        ccchan - 2020-04-06

        agree with you that AIM should also mount split vmdk,
        i haven't tried becoz seems the discutils didn't come together by default?
        so I cant mount it yet.

         
    • v77

      v77 - 2020-03-25

      "split raw image"? Creating one is not a big issue: you can create a small file, and then duplicate it several times by changing its name.
      But yes, it seems that it's currently impossible to mount this kind of thing with ImDisk Toolkit.

      It would require to develop a proxy dedicated to this format. Not very difficult, but still quite some work.
      What would be the advantage of this format for you?

       
      • ccchan

        ccchan - 2020-03-26

        hi~ thx for reply.
        I just ask ask and compare to vmdk format, not important.

        1. will a split raw image be more "open source friendly"? will it be more easily
          repaired/rescued if some parts got corrupted? as above you mentioned
          the vmdk spec seems not clear?
          "Hard to say more without the documentation of the VMDK format."
          Even thru in wiki it say vmdk is a open standard.

        2. could split raw image not bound by VMDK's 2TB limit?
          wiki say vsphere 5.1.5? later could have vmdk of 62TB max,
          not sure vbox implemented it or not, or the library/driver
          used by imdisk?

        And btw, anyway to make a splited raw image as easy and clean
        as the vbox command?

        I will use imdisk /w 1TB .vmdk at the moment to put
        all my files onto google drive, encrypted at file level by cppcryptfs.

        thank you.

         
        • v77

          v77 - 2020-03-26

          The documentation? Ah yes, I just found it. :p
          In fact, as I am not the author of DiscUtils, I never needed it... And as I thought, there is a lot to read.

          In case of data corruption, a RAW format could help for instance to directly look into your data (with a hex editor), or easily produce a non-splitted image in order to use other tools...
          That said, my personal policy is backup, backup, backup... And put directly to trash any faulty hard drive.
          And because I am paranoid with that, I created Whirlpool File Cheker.

          The current true size limit for VMDK seems to be 62TB. Of course, if it is partitionned, MBR will no longer work, you must use GPT.
          If you mount it with ImDisk just after it is created, it may be not partitionned, so you are not concerned with that.

          About making a splitted RAW image, I don't know any easy way to do that.

           
          • ccchan

            ccchan - 2020-04-06

            finally i knew how to create empty split raw images.
            in windows one can install cygwin (signed with a .sig),
            dd and split are included by default.

            simply create by:

            dd if=/dev/zero of=(output filename) bs=1G count=1000 | split -d -b 1G test.img

            1Gx1000 = 1TB,
            one can choose the split size after -b

            the output files will have strange name endings,
            i.e. for a 1000 files, it dont produce .000 to .999,
            starting .90 it changes into .901 etc.
            need a file renamer.

            i then mounted with AIM.

            cppcryptfs crash /w AIM seems,
            it report DPC watchdog error and give me BSOD.

            but veracrypt works /w AIM.

            so far I tried 450GB using GPT is working fine.

            I will try making a 4TB raw split image later.

            thanks everyone for the efforts.

             
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.