Manual mounting of image file shows I/O error

Paul VL

Manual mounting of image file shows I/O error   08 July 2026, 08:05

I have an image file (exFAT, 10GB) with portable apps, configured in the GUI to drive P: as a manual RAMdisk.

In version 26.2 and earlier I could mount the image-file as drive P: from the desktop. I used the following bat file to start the portable apps:
"C:\Program Files\SoftPerfect RAM Disk\ramdisk.exe" /mount:P

Because you removed the command-line control of the ramdisk.exe and the "Auto-run applications feature", I changed the bat file to:
"C:\Program Files\SoftPerfect RAM Disk\ramdiskctl.exe" mount-image G:\PortableApps.img --letter P
timeout /t 5 /nobreak >NULL
START P:\Start.exe

This gives a I/O error for ramdiskctl.exe.
I then tried to mount the file in the GUI manually and got "NT error code C0000022 (Access Denied)"

I excluded the image file in Windows Security, and checked for viruses (offline scan and with boot disk). But when I changed the RAMdisk type to "At Startup" and restarted the computer, then the image-file is mounted as drive P: and I can start the portable apps as before. So, there is nothing wrong with the image file. Are manual RAMdisks with an image file no longer supported?
SoftPerfect Support forum - Andrew avatar image

Re: Manual mounting of image file shows I/O error   08 July 2026, 09:55

Thanks for the detailed report - it actually points straight at the cause. Manual image-backed RAM disks are still fully supported. Nothing is wrong with your image file (as you correctly deduced).

What changed and why

In a recent build we closed a local security hole in the kernel driver. Previously, when a RAM disk was mounted with an image file, the driver opened that image file using the SYSTEM account, ignoring the file's normal Windows permissions. That meant a standard (non-administrator) user could ask the driver to read or write any file on the machine as SYSTEM = a privilege-escalation risk.

The hardened driver now opens the image file using the permissions of whoever launched the mount:
  • At Startup / Automatic mounts are performed by the background service, which runs as SYSTEM, so they still open the file and work exactly as before. That's why switching P: to "At Startup" fixed it.
  • Manual mounts (from the GUI, or via ramdiskctl) now run under your own user account. If your account doesn't have read and write access to G:\PortableApps.img, the call to open is refused with "C0000022 (Access Denied)".
The mount needs write access, not just read, because the RAM disk saves your changes back to the image on dismount/shutdown. A file sitting in the root of a drive (like G:) very often grants standard users read-only access, which is almost certainly what you're seeing.


How to fix it

Do any of these:
  • Give your user account full access to the image file
    Right-click G:\PortableApps.img → Properties → Security → Edit → select your user → tick Modify (read and write) → OK. Do the same on its containing folder if needed. The manual mount will then succeed. This is the most likely single fix.
  • Leave the disk set to "At Startup"
    This mounts the image as SYSTEM at boot (which you've confirmed works). If you don't specifically need to mount/unmount it on demand, this is the simplest option.
  • Keep using a batch file with ramdiskctl, but note the difference between two features and run it correctly.

There are two distinct ways to put an image file on a drive letter, and they are not the same thing:
  • Image-backed RAM disk (load) - the image is read into RAM, and the drive runs entirely from memory (fast; changes are written back to the image when you save/dismount). This is what your P: disk is configured as, and what the old ramdisk.exe /mount:P did.
  • Mounting an image (mount-image) - the drive reads and writes directly to the file on disk, with no RAM used. This is what your new batch file called, so it behaved differently from your original setup.

To reproduce your original behaviour, use load:
"C:\Program Files\SoftPerfect RAM Disk\ramdiskctl.exe" load "G:\PortableApps.img" --letter P
timeout /t 5 /nobreak >nul
start P:\Start.exe
Because the mount still runs as your user, this batch file must either be run as Administrator (right-click → Run as administrator), or you must grant your account write access to the image as described above. With one of those in place, the load command will succeed and P:\Start.exe will launch as before.

Sorry for the disruption; the change was a necessary security fix, but as you can see the workflow you had is still fully available.

Re: Manual mounting of image file shows I/O error   08 July 2026, 16:59

Hello.

If the program is running in the system tray without administrator privileges, launching it from a shortcut with administrator privileges won't grant the program administrator privileges.

And it's not possible to create an image on drive C: due to access permissions. Restarting the computer won't help if the program is set to start automatically, unless I first close the program from the system tray.
Andrew, thank you for your quick and comprehensive answer.

As you suggested, I have adjusted the user rights of the image file to full access. This fixed the problem: I can now mount the file manually in the GUI, and the bat file (now with the load instruction) also works. No need for admin rights.

Still, I find it unfortunate that a manual ramdisk can no longer start a program once it is finished.

I look forward to the new RAM Filesystem that is coming. Just like the dynamic ramdisk option, this will be a major improvement.

Reply to this topic

Sometimes you can find a solution faster if you try the forum search, have a look at the knowledge base, or check the software user manual to see if your question has already been answered.

Our forum rules are simple:

  • Be polite.
  • Do not spam.
  • Write in English. If possible, check your spelling and grammar.

Author:

Email:

Subject

A brief and informative title for your message, approximately 4–8 words:

     

Spam prevention: please enter the following code in the input field below.

 **    **  ********    ******    **     **  ******** 
 ***   **  **     **  **    **    **   **   **    ** 
 ****  **  **     **  **           ** **        **   
 ** ** **  ********   **   ****     ***        **    
 **  ****  **         **    **     ** **      **     
 **   ***  **         **    **    **   **     **     
 **    **  **          ******    **     **    **     

Message: