15

On my computers (running windows 7 and vista and using SD cards and flash drives) ReadyBoost rebuilds cache after every reboot. Because of this and 5400RPM HDD, it takes several minutes for computer to start working normally. I gave up on using ReadyBoost because of that. Today I read in comments on this answer that for some people, ReadyBoost does not rebuild cache after every reboot.

My question is how to make ReadyBoost keep its cache even after reboot?

AndrejaKo
  • 17,143
  • 22
  • 85
  • 129

5 Answers5

8

Looks like this is a security feature, so I don't know if it can be bypassed:

The driver encrypts each block it writes using Advanced Encryption Standard (AES) encryption with a randomly generated per-boot session key in order to guarantee the privacy of the data in the cache if the device is removed from the system.

http://technet.microsoft.com/en-us/magazine/2007.03.vistakernel.aspx

Unfortunately, I can't think of a way to help speed up the rebuild process or avoid it (other than increasing the amount of RAM which would make ReadyBoost unnecessary).

Update: I will summarize the comments below.
SuperFetch, ReadyDrive, and ReadyBoost are all technologies that work together.

SuperFetch monitors what files are being used by the user and system and learns what is used a lot and attempts to predict that may be called for in the future. Then that can be preloaded before it is actually called upon.

ReadyDrive attempts to predict what memory pages Windows needs to take into a hibernate so when Windows wakes up, Windows will resume from hibernate faster. The data Windows will need can be stored in an internal OEM installed non-removable ReadyBoost drive. ReadyDrive needs these internal drives because Windows can trust nothing has happened to it during a hibernate session. During a shutdown, even these drive are not trusted.

ReadyBoost caches hard drive reads at the sector level. It doesn't care about file systems because it only knows where on the disk data was. SuperFetch may determine a file is used frequently, so it will store that data in a ReadyBoost cache. There is a ReadyBoost cache on the hard drive which I assume is there (rather than reading it from disk elsewhere) is because hard drives have good sequential read performance (meaning reading sector after sector after sector, rather than needing to change tracks and dealing with seek times and rotational latency). The goal of using a ReadyBoost flash device is to beat the disk in performance. This way those hard drive sectors cached using ReadyBoost can be retrieved faster, increasing the computer's performance. For removable ReadyBoost drives, the contents of the drive can't be trusted through a standby, hibernate or shutdown event because the hard drive's or ReadyBoost's cache contents could have been changed since Windows had made that cache. To prevent bad data from being used, Windows will dump the old ReadyBoost cache and begin a new cache. During this time, performance would be less because the cache hasn't warmed up with the current sector's data.

Source: Here is a good video talking about these technologies and how they interrelate. Some interesting parts are about 16m30s-19m & 34m45s-38m40s, however, the whole video may be worth seeing.

4

These URLs show how to disable compression/encryption on a ReadyBoost drive

It looks like a removable drive is always encrypted, even if you try to disable it with group policy.

I wonder if you disabled compression/encryption if it'd be able to preserve the cache through a reboot.

bwDraco
  • 46,683
0

The answer may be as simple as making the drive appear as a fixed drive.

A single bit in the device's device descriptor, the removable media bit (RMB), makes the drive be recognised as removable, or not.

If you take away the RMB then Windows sees the drive as a 'local fixed disk'.

A filter driver for removing the RMB has been made by Hitachi for their Microdrives and a 64 bit version by Uwe Sieber. You can find both and instalation instructions here:

Under the heading:

  • On flash drive only the first partition works

I plan to experiment with this over the weekend and post.

(You will also find plenty of other excellent USB related software and advice)

(As the above procedure allows multiple partitions on a USB drive, one cant help wondering what effect creating 2 or more of them and software raiding them together would have..?!)

0

I built caches with eBoostr to make it available during boot, and Window threw BSOD code, c000021a ( https://answers.microsoft.com/en-us/windows/forum/all/blue-screen-error-c000021a-fatal-system-error/549075f8-f695-4047-b747-2b4e118e1ffd ) which meant "file mismatch" and "security no longer guaranteed".

The file cached before Shutdown is mismatch during boot.

Hence it make sense why Readyboost must rebuild its cache upon reboot.

0

Short: it can not be done

Long:

  1. the trick with disabling encryption (mentioned in this answer) does not work, at least according to article Disable ReadyBoost encryption and compression:

If you are trying to create persistent ReadyBoost cache that can survive restart your are out of luck this will not allow this. In case you use Windows 10, ReadyBoost cache can survive shutdown but not the restart.

It does describe hot to turn off compression and encryption on a running system (I did not try it).

  1. It does persist across shutdowns

On my test system (Windows 10 on SATA HDD, ReadyBoost on SATA SSD) the cache survives a shutdown/power-on cycle. Is does not survive a restart. (by "shutdown" I mean clicking "Shutdown" in the start menu, which powers off the PC; also "restart" is selecting "Restart" in start menu).

Note that I have the FastBoot/Fast startup option enabled in Windows (by default), which might affect this.

I monitored the cache size and usage with PerfMon.