на форуме технет проскользнуло такое решение при тех же ошибках In my case (Windows 7), the
root cause was that the BCD file was moved (by defragmentation perhaps???) to an area on the boot disk beyond sector 2,147,483,648 (the maximum 32-bit signed value), and Windows couldn't access it at boot time (that's the "a requested device is inaccessible" error). In my case at least, the solution was to force the data for C:\Boot\BCD to reside on a sector within the two-billion-sector boot-time limit:
1. Boot into Windows recovery mode and bring up a command prompt (SHIFT-F10 is the shortcut key).
2. cd \Boot
3. If you tried startup repair already (which I'm sure you did), your original BCD file was renamed to BCD.Backup.0001. In my case, the data in BCD file was still perfectly fine -- it just needed to be accessible by the Windows loader (i.e., within the boot-time sector limit). What you want to do is locate an existing file that was installed at boot time, and therefore is certainly within the two-billion-sector limit, *AND* has enough space to contain the BCD data: 32K or greater in size. I chose to use memtest.exe, so that's what I'll describe below.
4. Make a copy of your original memtest.exe: copy memtest.exe memtest.exe.org.
5. Copy your renamed BCD file to memtest.exe: copy BCD.Backup.0001 memtest.exe. Windows will reuse the existing sectors in the destination file if it can, and since memtest.exe is larger than 32K (the size of BCD), the entire BCD file will fit in memtest.exe's original sector space.
6. Rename memtest.exe to BCD.
7. Now rename memtest.exe.org memtest.exe. What you have done in effect is move memtest.exe to another area on the disk and use memtest.exe's original sectors (which are inside the boot-time sector limit) to hold your BCD file.
8. Now ALT-TAB back to the repair options GUI and run startup repair again (you may not need to do this if your original BCD data is still OK, but I did it anyway); the repair step should work this time and the system should reboot.
9. The system should boot normally now! :)
That worked for me, and I was about at my wit's end! That's a nasty bug that Windows should fix -- it should "lock" the boot-time files and not allow them to be moved beyond the two-billion-sector-limit accessible the boot subsystem.
One final note: whichever file you choose to reuse (memtest.exe in my case) will end up being moved to a different sector range, which will quite possibly be beyond the boot-time sector limit. If that happens, memtest.exe would not be accessible by the boot subsystem (just like BCD was not). So you may want to pick a different file to reuse, but whatever file you choose must already reside within the first two billion sectors on the disk and be >= 32K in size.
The real fix is that Windows should lock the boot-time files to be within the two-billion-sector limit so that the loader can always access them! This is a really nasty bug. I'm just glad to have my system back!
http://social.technet.microsoft.com/...2-1a65731bbe38