7

I want to tell the operating system to stop using my hard disk and only use RAM as a cache instead.

Optimally, I want to tell Windows to:

a) pre-cache executable images and necessary bootstrap data into RAM, and b) buffer all disk writes to RAM.

Is this possible?

Background:

My laptop hard disk is loud and I want to put it to sleep when I know I don't need it (e.g., "hdparm -Y").

A typical use case would be booting Win 7 only to make a Remote Desktop Connection to a remote system, thus using the laptop only as a dumb terminal. There's no need to have the HD powered on, since everything's happening in memory, LAN etc.

I have tried basically everything to shut down disk activity when the system is idle: killed nearly all processes, used Process Monitor in advanced mode to try to find which process is responsible for performing disk activity, but not succeeded.

The closest I was able to reach my goal was with XP, when I installed a RAM overlay driver made by Microsoft and designed for Windows Embedded testing. That actually worked: all disk operations were intercepted and this prevented physical HD activity.

Unfortunately, the WinCE RAM overlay driver was very hard to use and I managed to corrupt the disk at the end because the order in which I was supposed to unload and flush things was very particular. :-(

I have now installed a RAM disk (RamDisk Plus) on my Win7 box and tried to install portable apps on it, but I don't think that even installing a user profile on the RAM disk, putting all temp files there etc. would be enough: There's some disk activity originating from the Windows kernel level, that ultimately wants to write to a physical disk thus waking up the hard drive.

There are several other use cases for this need: keeping the system cool, running the laptop with less power, prolonging the lifespan of both physical and solide-state drives, etc.

Suggestions?

2 Answers 2

5

I don't believe you'll be able to accomplish this. Windows is designed around the concept that the system partition is always available, and your experiment with the RAM overlay shows it's not designed for what you have in mind.

Instead, change the system partition. Use a non-hard-drive boot partition -- a LiveCD or USB key. You can certainly disable Windows access to non-system partitions, so moving the system partition off of hard drives will let you power down any attached hard drives.

Update:
After reviewing the materials on EWF, yes, this is possible.

I still think this is a case of not-what-it's-designed-to-do, but...

The EWF you used in WinXP came from Embedded XP. The Win-7 analogue is Windows Embedded Standard 2009, and does include the Enhanced Write Filter. I don't know if you'll be able to shoehorn EWF into Win-7, but you'll have better luck with the modern version than the old Embedded XP version.

It looks like you want "EWF RAM Reg mode", which places your EWF configuration data in the system Registry, and doesn't require a separate partition on the drive. The other modes (EWF Disk and EWF RAM modes) at minimum require a separate partition to operate.

You will want to review the techdoc on EWF Performance Considerations, particularly disabling last-access timestamps on NTFS, disabling System Restore, and changing the size of the pagefile (although it seems preferable to disable it, if possible).

Consider designing your own run-time image as your OS base. By doing so you can eliminate components of Win-7 that may be problematic in an embedded, static configuration (which is essentially what you're describing). You may also want to use a checked build, if available, at least until you get things working as expected.

Even this is, at best, educated guesswork. This method seems to be what a LiveCD uses to accomplish its magic, so you might have more luck looking into those. Even if a LiveCD is not your end-goal, the methods they use to build a system image may assist your endeavors. Best of luck!

2
  • I am interested in preventing mostly data writes going to the physical disc. For this, a solution like the Enhanced Write Filter (see: msdn.microsoft.com/en-us/library/…) is perfectly doable. Windows and apps do have full access to the system partition, but writes get buffered to the RAM overlay. Assuming all programs and configuration data is precached to memory, I don't see any real need for physical disk access. I can live with the fact that no modifications are saved after system shutdown - for testing purposes this is actually very handy.
    – htalvitie
    Nov 9, 2009 at 7:10
  • don't forget you need to prevent data reads as well, in order to shut down the drive... not just precaching what you've needed so far, but what you (or the system) might need as well. predicting what data needs to be precached seems like a nightmare in a full-blown Win-7 install. it'd be much easier to do with a stripped-down or build-your-own-sys-image version. Nov 9, 2009 at 9:36
3

If money is no object, you could replace the noisy HDD with an SSD. I have a MacBook with SSD and it is totally silent (and faster).

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .