Menu

msi-installers - a solution?

morpheo
2020-07-20
2020-08-09
  • morpheo

    morpheo - 2020-07-20

    I've had success in using msi-installers (windows, obvi) by hard linking a temp-folder on my primary disk to the temp-folder on my harddisk (mklink /h "[link]" "[target]" - e.g. mklink /h "c:\TEMP" "r:\TEMP" (needs to be done in an elevated cmd)).

    This could probably be implemented in ImDisk, although I'm not the right person to ask in regards to how this should/would be done.

    Read more about soft/hard symlinks in windows here:
    https://www.tenforums.com/tutorials/131182-create-soft-hard-symbolic-links-windows.html (no affiliation)

    /m

    Edit: In regard to this topic: https://sourceforge.net/p/imdisk-toolkit/doc/Home/
    Known issues
    * Some softwares, including MSI installer, are incompatible with ImDisk volumes. This comes from the driver that creates only simple volumes that are not handled by the disk manager. This will not be fixed.

     

    Last edit: morpheo 2020-07-20
  • v77

    v77 - 2020-07-20

    Hard links can only point to the same volume. Therefore, your command does not work.

     
  • v77

    v77 - 2020-07-23

    I am looking for MSI installers that fail when ImDisk is installed.
    Can someone provide a link to an MSI installer to download?

     
  • Vi12

    Vi12 - 2020-07-26

    All MSI and .exe installers which need admin mode will fail, because no UAC popup is comming up. Example MSI: https://github.com/microsoft/PowerToys/releases/

     
    • v77

      v77 - 2020-07-26

      Thanks but even in a fresh virtual machine (Windows 10 1809) I get an error during the install. It says it cannot find
      C:\Users\---\AppData\Local\Temp\windowsdesktop-runtime-3.1.4-win-x64.exe
      (I have put the MSI file on the desktop)

      I also have tested the MSI installer of 7-Zip and it works even with ImDisk and the TEMP variables redirected to R:\Temp.

      I start to think that the MSI format has nothing to do with all that...

       

      Last edit: v77 2020-07-26
      • Vi12

        Vi12 - 2020-07-26

        I don't think it's just MSI, either. As I said, I think for some reason the call from UAC is not working. There is no typical UAC popup like the one in bottom link. Just waiting longer than normal and aborting.
        https://upload.wikimedia.org/wikipedia/de/5/59/UAC_prompt_for_credentials.JPG

         
  • Wizard

    Wizard - 2020-08-09

    MSIs sometimes use hardlinking. When they do, they assume getting extracted to C:\Windows\Temp to hardlink from. If you then have that Temp someplace else, the MSI fails. Other MSIs check validity of the Volume. As the Ramdisk is not a "real" volume those too will then fail. I devised a solution to the latter: Create a (parent) VHDx on C:, create a Child-VHDx on the ramdisk. Mount the Child VHDx. Redirect any and all you wish to that mounted VHDx. Anything except first mentioned MSI-situation will work. When done, ie. at shutdown, merge the Child-VHDx to the Parent. At startup, create new child VHDx on ramdisk, mount it, and all redirects work again. etc., etc. This way, you get the benefits of storing only anything new in ram, but won't have the problem of volume-checking, as the mounted VHDx IS a "real" volume. This does not only apply to MSIs, but to everything. For example, installing extensions in Chrome also does a "real" volume-check. If you have your chrome profile on ramdisk, that would fail aswell. If you have your profile on the VHDx, it would work...

     
    • v77

      v77 - 2020-08-09

      ImDisk ramdisks are real volumes, but they are only volumes. They are not volumes from partitions located in a hard drive or in the image file of a hard drive (such as VHDX).
      Therefore, ImDisk ramdisks do not answer to some requests, and when a developer assumes that the volume belongs to a hard drive, the program fails.

       
  • Wizard

    Wizard - 2020-08-09

    Pardon the term "not real" volume. I just meant that a ImDisk-volume is not accessible by Windows Disk Manager. But above workaround would make any ImDisk "compatible" with Disk Manager-accessible relying software, while still retaining it's strongest value (at least to me): completely Dynamic, only taking memory when it gets written to. a dynamic VHDx only grows when written to, so the above gives you a "disk manager-accesible dynamic ramdisk". Furthermore, another very neat side-effect: you can defrag the VHDx (in RAM) so using NTFS-Compression would also work: Let it compress all, do a defrag, all mem. freed up from the compression gets returned and ready for later use :-) I have it scheduled to defrag once in a while, as it takes mere seconds in RAM anyways !

     

Log in to post a comment.

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.