Windows 7 – How to stop readyboost from rebuilding cache after every restart on SD cards and flash drives?

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?

Solution:

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.