New to the forums? Click here to read the "How To" Guide.

Developer? Click here to go to the Developer Forums.

Why can't Oculus software be installed on a Dynamic Disk?

It seems that if your computer uses only "Dynamic Disks" the installation software will halt and give you an error that states:

"Not Enough Space
Oculus requires 2.85GB on an internal drive to set up.  To continue, please make sure you have sufficient space on an eligible drive, or visit Oculus Support to learn more."

Upon which the only option for you to click is quit.

To make matters even more silly, I currently have 3 HDD's in my PC, all are internal drives, and one is a SSD.
In total, I have them split into 5 partitions as follows, with listed free space/total space.

C = 157GB free of 223GB (System Drive/SSD)
D = 222GB free of 223GB (Simple Volume on 3rd HDD)
E: = 222GB free of 223GB (Simple Volume on 3rd HDD)
F = 1.43TB free of 1.81TB (Striped Volume using entire 2nd HDD and duplicated size partition on 3rd HDD)
G = 90.5 GB free of 1.38TB (Simple Volume on 3rd HDD)

All 3 internal drives are set as Dynamic Drives.  Thus the Oculus Setup software deems them as not eligible, and does not allow me to install, thus rendering my Oculus into an expensive paperweight.

In order to convert any of the disks to a Basic drive, I would have to entirely wipe/format the entire drive and convert it, thus losing all information on the drive, which would be very problematic if I was to do my System drive, and if I try converting either of the other two physical drives, then I would then lose the ability to have the striped volume, rendering my current backup/restore/file structure of my entire computer useless.

It seems, that to install 2.85 GB of driver software for a display, I have to buy a new hard drive, simply to install *ONLY* the software for this device.

What possibly could be the reason why Oculus cannot support a dynamic disk, when I have encountered no other program in my entire life of beta/alpha testing for various companies, that required ONLY a basic disk in order to be installed?

(And yes, I know there is some software out there that will allow you to convert a Dynamic Disk to a Basic disk, however none of them will work if the disk that you want to convert is labeled as a system disk, or if it has spanned/striped volumes.  Even if you only have mirrored volumes, you have to break the mirror connection in order to convert.)

It also seems that every issue through the 100 pages of threads in this forum that deals with the "Not Enough Space" error actually stems from the disks actually being dynamic disks instead of basic, for some reason or another, regardless of if you have many Terabytes of free space.

Why?

Comments

  • C3jf1AtC3jf1At Posts: 1
    NerveGear
    edited July 2016
    The answer is because it's a bug in their installer.

    The installer uses in .NET DriveInfo class to get a list of drives available on the machine. The class returns collection of objects that represent drives, e.g.:
    • C:\
    • D:\
    • E:\
    • F:\
    • G:\
    • H:\
    • S:\
    After that, they create a static helper method IsInternal. They want to limit the above list to drives that aren't removable. 

    In order to do this, they use the Windows CreateFile function to open the volume itself (e.g. \\.\C:). They then use DeviceIOControl to directly issue the IOCTL_STORAGE_GET_HOTPLUG_INFO command to the volume.

    The problem is that it is wrong to try to issue the IOCTL_STORAGE_GET_HOTPLUG_INFO command to a volume - it doesn't make sense for a volume. It only makes sense for a disk. A volume isn't something that is hot-pluggable - the disk that the volume is sitting on is the thing that is hot-pluggable. 

    What they need to do is open the physical drive rather than the volume, i.e.:
    • Wrong: "\\.\C:"
    • Correct: "\\.\PhysicalDrive0"
    The intern who wrote the Oculus installer got it even more wrong because he didn't realize that a volume can actually exist on multiple physical disks. E.g. my D: volume exists on:

    • \\.\PhysicalDrive1
    • \\.\PhysicalDrive2
    • \\.\PhysicalDrive3
    The way to get the drives that hold a volume is to issue the IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS command to the disk. That will populate a series of VOLUME_DISK_EXTENTS that give the drive numbers that the volume exists on, e.g.:

    • DiskNumber: 1 ==> \\.\PhysicalDrive1
    • DiskNumber: 2 ==> \\.\PhysicalDrive2
    • DiskNumber: 3 ==> \\.\PhysicalDrive3
    From there they can open the physical disk (e.g. CreateFile("\\.\PhysicalDrive1", ...) ) for reading, and issue the HotplugInfo ioctl to the drive. 

    So why does it work for volumes on a Basic disk? Because it's impossible for volume on a basic disk to exist on multiple disks. Basic disks do not support mirroring, spanning, or RAID. Volumes on dynamic disks can exist on multiple drives. Even though it's totally and completely wrong to issue IOCTL_STORAGE_GET_HOTPLUG_INFO to a volume - Windows goes out of it's way to fix your bug for you.

    They get no such help for volumes on dynamic disks. Ask for the correct thing.

    Summary 


    • The Oculus installer mistakenly issues IOCTL_STORAGE_GET_HOTPLUG_INFO to a volume, and not a disk.
    • The Oculus installer should have converted a volume letter to a list of drives, and issued the IOCTL to the drives themselves.
    • When the IOCTL_STORAGE_GET_HOTPLUG_INFO command fails, they should assume the drive is not hot pluggable, rather than throwing the uncaught exception (and leaking handles and memory)
    • When the error happens, the Oculus installer leaks a CreateFile volume handle (sloppy programmer)
    • When the error happens, the Oculus installer leaks a GlobalAlloc memory handle (sloppy programmer)

    What the installer should have done is forget volumes. Forget drives. The installer should have installed  into 

    C:\Program Files\Oculus

    And certainly don't dump your garbage in the C:\Oculus root of a drive. That is an absolute sin that has been unacceptable since 1995.

    No application in the history of anything ever has ever had a problem installing application where applications are supposed to go. If the user desires, they can change it to their D:\ drive which has more space. Look at Steam. Look at 50GB World of Warcraft. Installing in a folder is right, correct, done, and works. All in all, a young over-eager develop out-smarted himself, and created the wrong solution to the non-problem.

    As i understand it, they plan to to have an updated installer next year that will install into a folder (like a normal program). So all these bugs won't be fixed, because they plan on rolling out the correct way to do things eventually.

    Debugging the Oculus installer is what i did while my $900 paperweight sat on my disk, rather than using my new Oculus Rift that refused to install.


  • MarcSimonsenMarcSimonsen Posts: 4
    NerveGear
    Is this still accurate?
    Because then I will have to format my C drive.
    My secondary drive is a simple drive, but i'm still recieving errors of installing on C : 

  • Yes, unfortunately this is still accurate.  The main Oculus software suite will not install on a dynamic hard drive.  It has to be a basic drive only.

    Which means I can only install the primary software on a old little drive that I found in my boxes of random computer stuff, and it runs MUCH slower than my quad raid hybrid drives.  (My quad raid hybrids run just under double the speed of an SSD atm ;)

    Would be glorious if I could actually install the oculus software, and associated games on my main PC drives instead of the little basic drive...but unfortunately due to the quad raid setup, I cannot convert my main drives back to basic anymore or I lose the boosted speed that I got rid of the SSD's for.
  • WNxJohnDoeWNxJohnDoe Posts: 3
    NerveGear
    This is still accurate, however if you have multiple disk drives and one of your non-C disks is basic you can use the instructions below from the support pages to help.

    To install the Oculus app on a different system drive:

    1. Press the Windows key + R to open the Run command
    2. Enter OculusSetup /drive: [new system drive] (ex: OculusSetup /drive:D)
    3. Click OK
    https://support.oculus.com/1676275305961321
  • JessKaineJessKaine Posts: 2
    NerveGear
    It won't work only says Windows cannot find 'OculusSetup'. I give up I've spent 2 days solid of trying to just install some software this is a joke.
  • prokrusprokrus Posts: 1
    NerveGear
    JessKaine said:
    It won't work only says Windows cannot find 'OculusSetup'. I give up I've spent 2 days solid of trying to just install some software this is a joke.

    You need to write something like this: C:/Oculus Setup /drive:F For me C:/Oculus Setup it's Oculus Setup.exe path. /drive:F its destination folder on basic disk.
  • Christo.mChristo.m Posts: 2
    NerveGear
    Is this still not fixed? Seems a serious oversight. I recall running into this bug when the Rift launched.
  • BradleyNewmanBradleyNewman Posts: 41
    Brain Burst
    edited January 2017
    I am running setup and choosing "D:\Program Files\Oculus", and every time it fails and displays the following:

  • BradleyNewmanBradleyNewman Posts: 41
    Brain Burst
    edited January 2017
    Was able to install to the D drive by doing:
    - Windows + R (run command)
    - "D:\Downloads\OculusSetup.exe /drive:D"

    Defaulted to "D:\Oculus". Why doesn't it default to "D:\Program Files\Oculus"? Seems weird..
  • loconut1389loconut1389 Posts: 2
    NerveGear
    Seriously I haven't even gotten my Rift delivered today yet and I'm trying to install this and getting the stupid can't connect error. Its 2016 now. WTF oculus?
  • Brian3DwBrian3Dw Posts: 2
    NerveGear
    edited May 2017
    I have waited for months and tried this thread a while back and could never get it to install. I figured it out today. 
    The drive I want to install on is my F drive. 

    -Copy OculusSetup.exe to the root of the drive you want to install on that is not a dynamic disc. I'm actually using 2 SSD's in RAID via Windows Storage Spaces. 
    - Open the run window by pressing "Windows + R" 
    - F:\OculusSetup.exe /drive=F (copy and past and just replace your drive letter.)






    Good luck!
  • TriCyclopsTriCyclops Posts: 9
    NerveGear
    For God's sake, fix this already!

    Thanks.
  • Tenderizer17Tenderizer17 Posts: 1
    NerveGear
    edited January 2019
    It's February 2019, I think they finally fixed the installer. However when finishing installing it wants to update (for some reason) and the update won't register my free disk space.

    I can't calibrate my sensors without the update.

    I wish I could have steam VR replace oculus home.

    EDIT: Maybe somebody can give me a copy of their up to date oculus files. I'll just override the files with them and that'll probably fix it.
  • icanthinkofoneicanthinkofone Posts: 1
    NerveGear
    edited December 2019
    December 2019.  Definitely haven't fixed the installer, or they re-broke it.
    C: \ is dynamic so I can either wipe my system or install another drive I guess
  • stephen.cameron88stephen.cameron88 Posts: 2
    NerveGear
    It's 2020 and im bumping this, who writes this?
Sign In or Register to comment.