Jump to content











Photo
- - - - -

virtual storage driver


  • Please log in to reply
66 replies to this topic

#51 milindsmart

milindsmart

    Frequent Member

  • Advanced user
  • 201 posts
  • Location:Bangalore
  •  
    India

Posted 08 September 2014 - 07:38 AM

How does this compare to Olof's Arsenal Image Mounter ? How have things changed in the past 3 years?



#52 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 13745 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 08 September 2014 - 09:25 AM

How does this compare to Olof's Arsenal Image Mounter ? How have things changed in the past 3 years?

Try it and you will see.

It compares rather fairly (on supported OS's, like XP, as it seems, but none of the kids ever properly tested/confirmed it that the later Windows 7 version has some "quirks"), The good thing is that you even have a "notification popup" on the taskbar for "new hardware found" and AFAICR it was the first and only driver with this kind of behaviour.

Did you miss this?

http://reboot.pro/to...river/?p=129901

 

 

:duff:

Wonko



#53 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 13745 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 17 April 2015 - 05:56 PM

where can I download virtualstorage.sys?

What do you think the FIRST post of this thread contains IF NOT a link to where you can get it?

 


This is an example of a VSS hardware provider. Vsssampleprovider along with the virtual storage driver (virtualstorage.sys) and virtual storage controller (vstorcontrol.exe) located in the "C:\Program Files\Microsoft\VSSSDK72\TestApps\hwprovst\bin" directory can be used to emulate the functionality of a hardware provider.

You will first need to download the VSS SDK.

Install it and play with it.

 

 

:duff:

Wonko



#54 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 13745 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 17 April 2015 - 06:40 PM

but this is not the 64 bit version.


The generic idea is that you FIRST read (attentively) a thread, THEN IF the piece of info you need is MISSING, you ask about it.

What do you think these posts contain? :dubbio:
http://reboot.pro/to...e-2#entry129891
http://reboot.pro/to...river/?p=130114

:duff:
Wonko



#55 bilou_gateux

bilou_gateux

    Frequent Member

  • Expert
  • 230 posts
  •  
    France

Posted 15 September 2015 - 03:31 PM

Someone asked about a 64-bit version...

From the Windows 7 SDK:

GRMSDK_EN_DVD.iso 594,841,600 bytes
cde254e83677c34c8fd509d6b733c32002fe3572

Use MSI Unpacker from jsware.net to extract the files from the relevant MSI (I don't recall offhand which one that is). The 64-bit version will be extracted to <path>\Microsoft SDKs\Windows\v7.1\Bin\x64\vsstools.

The .inf file does not target any OS version(s), so hopefully it works under any 64-bit NT. The SDK has a 32-bit version of same.

I was looking for a driver to emulate a physical drive that would appear as such to the operating system and applications when found this thread. I already had the SDK on my computer and found the files but haven't fiddled with them yet. Is this worth exploring or are there better alternatives (non-commercial) to go to first? (I've used VDK).

 

32-bit: GRMSDK_EN_DVD\Setup\WinSDKWin32Tools\WinSDKWin32Tools_x86.msi

install path: %ProgramFiles%\Microsoft SDKs\Windows\v7.1\Bin\vsstools

version 6.1.7600.16385

 

I don't have currently running 64-bit OS to check for 64-bit



#56 misty

misty

    Silver Member

  • Developer
  • 703 posts
  •  
    United Kingdom

Posted 07 February 2017 - 11:44 PM

I arrived here at this topic from here

Cheers Wonko - this is a very interesting piece of software.

As my current system is 64-bit and running in UEFI mode I decided to give the 64-bit version a try - thanks for the link and instructions in post #43.

Installed successfully on 64-bit Windows 8.1 Update 1 by running command - "vstorcontrol install -inf virtualstorage.inf"

Appears to run without any issues - just some quick tests mounting and writing to an image so far. 10 GB RAW image created using fsutil.exe as vstorcontrol does not allow image creation of files larger than 512 MB - DiskPart then used to partition and format.

Also installed the driver successfully in Windows PE (I think version 5.1) and mounted and wrote to an image without any problems.

Can you expand on the following please?

...none of the kids ever properly tested/confirmed it that the later Windows 7 version has some "quirks"...


Regards

Misty

:cheers:

P.s. I'm adding this to my list of must have tools. Whilst I like Olof's Arsenal Image Mounter :worship: , I do not like the .NET 4.0 dependency. For my limited needs (mounting RAW disk images with Disk Management integration) the Virtual Storage driver gets a great big :thumbsup:

#57 misty

misty

    Silver Member

  • Developer
  • 703 posts
  •  
    United Kingdom

Posted 08 February 2017 - 08:44 AM

Played around with a 3GB sparse (expandable) type VHD file (d:\vhd_sparse_text.vhd) created in DiskPart.

Output from running command - "vstorcontrol create fixeddisk -image d:\vhd_sparse_text.vhd" -
 
Virtual Storage v6.1.7600.16385

Creating drive backed by d:\vhd_sparse_text.vhd ...
Waiting for drive initialization...............
Drive     : \\.\PhysicalDrive2
Drive ID  : {CD77020B-EDCE-11E6-971F-001CBF6EF40D}
Type      : Fixed Disk
Size      : 0MB
No volumes on the drive
Note the Size is (incorrectly?) reported as 0MB.

And in diskpart.
DISKPART> list disk

  Disk ###  Status         Size     Free     Dyn  Gpt
  --------  -------------  -------  -------  ---  ---
  Disk 0    Online           55 GB      0 B
  Disk 1    Online           28 GB      0 B
  Disk 2    Online         3072 MB  3072 MB
Identified virtual disk as Disk 2 based on disk size -
DISKPART> sel disk 2

Disk 2 is now the selected disk.
.
DISKPART> detail disk


Disk ID: 00000000
Type   : Unknown
Status : Online
Path   : 0
Target : 0
LUN ID : 0
Location Path : UNAVAILABLE
Current Read-only State : No
Read-only  : No
Boot Disk  : No
Pagefile Disk  : No
Hibernation File Disk  : No
Crashdump Disk  : No
Clustered Disk  : No

There are no volumes.
.
DISKPART> create partition primary

DiskPart succeeded in creating the specified partition.
.
DISKPART> format fs=ntfs label=VSS

  100 percent completed

DiskPart successfully formatted the volume.
.
DISKPART> assign

DiskPart successfully assigned the drive letter or mount point.
.
DISKPART> detail partition

Partition 1
Type  : 07
Hidden: No
Active: No
Offset in Bytes: 65536

  Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
  ----------  ---  -----------  -----  ----------  -------  ---------  --------
* Volume 3     F   VSS          NTFS   Partition   3070 MB  Healthy
Wrote some files to the virtual disk.

Dismounted the virtual disk using command - "vstorcontrol remove \\.\PhysicalDrive2"
Virtual Storage v6.1.7600.16385

Removing...
Drive     : \\.\PhysicalDrive2
Drive ID  : {CD77020B-EDCE-11E6-971F-001CBF6EF40D}
Type      : Fixed Disk
Size      : 3072MB
Remounted disk with command - "vstorcontrol create fixeddisk -image d:\vhd_sparse_text.vhd" -
Virtual Storage v6.1.7600.16385

Creating drive backed by d:\vhd_sparse_text.vhd ...
Waiting for drive initialization...............
Drive     : \\.\PhysicalDrive2
Drive ID  : {CD770245-EDCE-11E6-971F-001CBF6EF40D}
Type      : Fixed Disk
Size      : 3072MB
1 volume(s) on this drive:
    \\?\Volume{cd770220-edce-11e6-971f-001cbf6ef40d}\
        F:\
Note the Size is now correctly reported as 3072MB.

Checked the file properties for d:\vhd_sparse_text.vhd after dismounted the virtual disk. The sparse file was no longer sparse. File was reported as 3GB for both size and size on disk!!!!!

Regards,

Misty

P.s. The test was completed on a 32-bit Windows 8.1 Update 1 system.

#58 misty

misty

    Silver Member

  • Developer
  • 703 posts
  •  
    United Kingdom

Posted 08 February 2017 - 08:47 AM

P.s. The driver also installed successfully and appeared to be working in 32-bit Windows PE 3.1

:cheers:

#59 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 13745 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 08 February 2017 - 08:53 AM

P.s. I'm adding this to my list of must have tools. Whilst I like Olof's Arsenal Image Mounter :worship: , I do not like the .NET 4.0 dependency. For my limited needs (mounting RAW disk images with Disk Management integration) the Virtual Storage driver gets a great big :thumbsup:

There is no real *need* of .Net for Arsenal Image Mounter driver in itself, it is the "accompanying" tools/features that *need* it, including - like with IMDISK - the "connection" to Discutils...

Having a 512 Mb filesize limit in creation is already a quirk in itself, but of course, as you just did, easily workable around.
BTW, are you really sure abut that limit? :dubbio:

The note/doubt was more about any possible conflict (on post XP) with things like Windows Search automatically creating System Volume info, or limiting access to MBR or PBR, this kind of things...

Also, do the (good ol') little batches I posted here:
http://reboot.pro/to...driver/?p=78283
work in 64 bit? :unsure:

BTW (EDIT) Try the test again with the 3 Gb Sparse using Format quick (you should know about this :whistling:), but is that a SPARSE file or an EXPANDABLE VHD? (they are not exactly-exactly the same thing)

:duff:
Wonko



#60 misty

misty

    Silver Member

  • Developer
  • 703 posts
  •  
    United Kingdom

Posted 08 February 2017 - 09:05 AM

@Wonko
Quick test of your batches - working in Windows 8.1 with the Windows 7 driver. :thumbsup:

Unmount command output...
d:\vhd_sparse_text.vhd = \\.\PhysicalDrive2

Image : "d:\vhd_sparse_text.vhd"
will be removed together with \\.\PhysicalDrive2
...reference to the backing disk being "removed" was a bit worrying. I took a chance!!!!

Off to work so my experiments thus end for the day.

Will check in later having just noticed your EDIT. It is\was an EXPANDABLE vhd. Excuse my ignorance - I thought these were SPARSE type files? Also forgot to add the QUICK to the FORMAT command. Will try again later.

Misty

#61 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 13745 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 08 February 2017 - 09:17 AM

Under Vista :ph34r: and later a "quick" format (through the format.com /q switch) only creates the filesystem structures (like it does format .com without switches in XP and earlier without any switch) while without the /q switch it writes 00's to each and every sector of the volume besides writing the filesystem structures.

There is no reason why the corresponding Diskpart command should work differently.

 

The net effect of not using /q or "quick" being of course that a sparse file will have 00's actually written to it and thus will expand.

 

An expandable .VHD (which I don't or very rarely use BTW) is AFAICR different from a sparse file, in the sense that the sparse character of it is "internal" to the disk the image represents, as opposed to a "normal" sparse RAW image that is sparse for everyone/every tool.

 

Any idea to replace "removed" ?

 

Maybe "detached"?

 

:duff:

Wonko 



#62 misty

misty

    Silver Member

  • Developer
  • 703 posts
  •  
    United Kingdom

Posted 08 February 2017 - 03:45 PM

@Wonko
I used to know about the Format behaviour....but forgot....thanks for the reminder. I'm getting old(er) and struggling with my memory. In fact I believe that I have now forgotten more than I now know about booting and disk images!!!!! It's one of the reasons for my guides - they're for my own use when I return to a topic after my frequent long absences. That's absences from the Forum and my experiments - not an absence in terms of awareness - perhaps both though!!!

In regards to sparse files and expandable VHD files - you are correct as usual - they are different, but share some characteristics that I shall refer to as SPARSENESS. The good news is that both are handled by the Virtual Storage Driver and retain their respective SPARSENESS.

After (QUICK) formatting two different images (both 1GB (maximum) size - one SPARSE file created by fsutil and one EXPANDABLE VHD) and copying a few files, file properties report after dismounting the image -

VHD
Size: - 28 MB
Size on Disk: - 28 MB

Sparse File
Size: - 1 GB
Size on Disk: - 19.6 MB
 

Any idea to replace "removed" ?

What about something like -
d:\vhd_sparse_text.vhd = \\.\PhysicalDrive2

Dismount Virtual Disk : \\.\PhysicalDrive2 
Backed by file : "d:\vhd_sparse_text.vhd"
Misty

#63 Olof Lagerkvist

Olof Lagerkvist

    Gold Member

  • Developer
  • 1344 posts
  • Location:Borås, Sweden
  •  
    Sweden

Posted 09 February 2017 - 12:57 AM

P.s. I'm adding this to my list of must have tools. Whilst I like Olof's Arsenal Image Mounter :worship: , I do not like the .NET 4.0 dependency. For my limited needs (mounting RAW disk images with Disk Management integration) the Virtual Storage driver gets a great big :thumbsup:


Like Wonko also writes, there is actually no .NET 4.0 dependencies in Arsenal Image Mounter itself. There are GUI and command line tools with DiscUtils library integration that require .NET 4.0, but you do not need to use them to just mount raw image files.

This file describes what requirements each component has: https://github.com/A...y_structure.txt
Specifically, to mount raw images you can use aim_ll.exe which does not require .NET:
https://github.com/A...ne applications
The syntax is very similar to imdisk.exe.
aim_ll -a -f C:\imagefile.img
Would be very interesting if someone could compare performance, features, compatibility with PE environments etc!
  • misty likes this

#64 misty

misty

    Silver Member

  • Developer
  • 703 posts
  •  
    United Kingdom

Posted 09 February 2017 - 07:13 AM

@Olof
Thanks for the information and links. I can't believe that I failed to notice the none .NET dependency versions for the driver installer and aim_ll.exe when I last played around with AIM (well over a year ago!).

I'm due to go on a family holiday tomorrow but rest assured I will be checking aim_ll.exe out as soon as I return.

Did a quick test this AM on a 64-bit Windows 8.1 Update 1 system - mount of an existing image was fast - and appeared faster than the Virtual Storage Driver referred to in this thread.

Sparse RAW disk supported.

Was able to run winhex on the mounted virtual disk without it crashing - a Virtual Storage Driver mounted disk BSOD'd on be yesterday when the same operation was attempted.

:thumbsup:

:cheers:

Misty

#65 Olof Lagerkvist

Olof Lagerkvist

    Gold Member

  • Developer
  • 1344 posts
  • Location:Borås, Sweden
  •  
    Sweden

Posted 09 February 2017 - 05:21 PM

@Did a quick test this AM on a 64-bit Windows 8.1 Update 1 system - mount of an existing image was fast - and appeared faster than the Virtual Storage Driver referred to in this thread.

 

 

Thanks for testing!

 

I will try a few things with this Virtual Storage Driver too as soon as I get some time. Just a quick browse through their features made me think about a few features in Arsenal Image Mounter that do not seem to implemented, at least not in a similar way in Virtual Storage Driver.

 

For example, AIM has a feature with sparse image files like this:

aim_ll -a -o sparse -s 10G -f C:\imagefile.img -p "/fs:ntfs /q /y"

This will create and mount a 10 GB sparse image file. If C:\imagefile.img is created as a sparse file on an NTFS volume and the operating system is Windows 8 or later, it will also automatically unallocate ranges of the image file when files are deleted from the mounted virtual disk. This is done by translating TRIM requests (SCSI UNMAP operations) sent to the AIM driver and send them through as "file level trim" requests to the image file. This has been useful to me in many cases.

 

There are also ways to use this in Windows 7 with a filter driver for the disk level that sends through trim requests as SCSI UNMAP down to the storage driver. This happens automatically in Windows 8 and later but is pretty easy to implement in Windows 7 too, many high-end SSD (SAS connected etc) vendors have filter drivers available for this for example.

 



#66 misty

misty

    Silver Member

  • Developer
  • 703 posts
  •  
    United Kingdom

Posted 09 February 2017 - 06:08 PM

Hi Olof,

I'm happy to help when my diary clears up a bit. Your previous post mentions -

...compare performance, features, compatibility with PE environments etc!


It sounds like an interesting experiment and something that I will enjoy doing. I can initially think of the following software and hardware to compare performance with, including -
* Microsofts Virtual Storage Driver
* VHD capabilities natively supported by Windows NT 6.* +
* Physical hard disk
* Networked physical hard disk

Any test/comparisons are going to be limited by the backing disk used to host the virtual disk file (unless memory backed storage is used) - perhaps a seperate test for memory backed if supported.

But how to test?

Sparse files?, fixed?, both!

As long as any test environments and conditions are consistent between the different drivers any test would hopefully would have some validity.

I can think of two real world tests as a starting point - these being copying a large file to fill a virtual disk and a subsequent test using small files to fill the disk. Also might be worth running some disk benchmarking software. Any other suggestions for benchmarks/comparisons/tests?

Hardware and disk space is going to impose a number of limitations too.

Misty

#67 misty

misty

    Silver Member

  • Developer
  • 703 posts
  •  
    United Kingdom

Posted 09 February 2017 - 06:49 PM

Quick test(s) installing the driver, mounting an existing SPARSE disk image, opening in a hex editor, and dismounting the virtual disk.

Working on the following WinPE versions -
* 5.1 (64-bit - MistyPE build using Windows 8.1 Update 1 Install.wim as core)
* 3.1 (32-bit - MistyPE build using Windows 7 SP1 Install.wim as core)
* 10 (32-bit - MistyPE build using Windows 10 LTSB 2016 Install.wim as core)

These are all pretty minimal WinPE environments.

Great work Olof
  • Olof Lagerkvist likes this




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users