Change Boot Drive doesn't seem to stick!

JNavas

New Member
#1
I purchased a new laptop with HDD (320GB 7200RPM) and upgraded it myself with mSATA SSD (80GB Intel 310).

I took the approach of creating recovery media from HDD, loading and installing Windows on mSATA SSD (C),
and changing the drive letter of the HDD (D) for data, pointing all my user Special Folders there,
and finished by moving the Windows paging file to HDD (D). All went well, and the laptop is running great.

There are, however, some drawbacks to this approach:

  1. Hibernation File (hiberfil.sys) will be located on SSD and cannot be moved to HDD. [6.2GB]
  2. Recovery Partition will be located on SSD. [9GB]
The result is that 15GB of precious SSD space is wasted, a huge percentage of remaining space after installing Windows and programs. As a result, I'm now thinking that it makes more sense (if possible) to use HDD (not SSD) as boot drive, with Windows (and programs) partition (C) on SSD, which should allow hibernation file and Recovery Partition to be on HDD, freeing up 15GB of precious SSD space.

I thought all I would need to do is move boot files from SSD to HDD, making HDD bootable and SSD not bootable, but as always, the devil is in the details.
I tried to use EasyBCD:

  1. Change boot drive to D:
  2. Make sure boot partition is Windows C:
Code:
   HDD
 +-------------------------------------------------+-----------+
 | D: user data                                    | Recovery  |
 |                                                 | Partition |
 +-------------------------------------------------+-----------+

   SSD (mSATA)
 +-------------------+
 | C: Windows +      |
 |    Programs       |
 +-------------------+
Although EasyBCD appears to change the Boot Drive from SSD C to HDD D, the change doesn't stick, even though I changed the boot order in the BIOS -- the system keeps booting from SSD C (as evidenced by the BCD file in use).

Thoughts / suggestions? :wtf:
 
Last edited:

mqudsi

Mostly Harmless
Staff member
#2
If it's booting from the wrong drive entirely, then EasyBCD has nothing to do with that. That would be a 100% motherboard issue - have you tried switching the cables around? Some motherboards have problems setting something other than drive 0 as the boot drive.
 

JNavas

New Member
#3
If it's booting from the wrong drive entirely, then EasyBCD has nothing to do with that. That would be a 100% motherboard issue - have you tried switching the cables around? Some motherboards have problems setting something other than drive 0 as the boot drive.
Thanks for the suggestion, but you can't switch cables around in a laptop, especially when one of the drives is an mSATA SSD. :wink: And while it might be a BIOS ("motherboard") issue, the boot order was rearranged, putting the HDD before the SSD, so the basic problem would seem to be a configuration issue, something that EasyBCD should presumably be able to address, making and marking the HDD bootable and SSD not bootable, no?

UPDATE: I carefully ran through the process again, and it seems that EasyBCD and boot are working correctly, albeit with a display in EasyBCD that fooled me into thinking it wasn't, and that this method won't put the Hibernation File on the HDD:

1. Changed Boot Drive from C: (SSD) to D: (HDD) in EasyBCD, with this result:
Code:
There is one entry in the Windows bootloader.
Path: [COLOR=#ff0000][B]D[/B][/COLOR]:\Boot\BCD

Default: Windows
Timeout: 0 seconds
EasyBCD Boot Device: [COLOR=#ff0000][B]D[/B][/COLOR]:\

Entry #1
Name: Windows
BCD ID: {default}
Drive: C:\
Bootloader Path: \Windows\system32\winload.exe
2. Rebooted system, manually selecting HDD as boot device
3. Verified with EasyBCD that the BCD file in use was on D:, not the one on C:
4. What's confusing is that EasyBCD displays this D: BCD file this way:
Code:
There is one entry in the Windows bootloader.
Path: [COLOR=#ff0000][B]C[/B][/COLOR]:\Boot\BCD

Default: Windows
Timeout: 0 seconds
EasyBCD Boot Device: [COLOR=#ff0000][B]C[/B][/COLOR]:\

Entry #1
Name: Windows
BCD ID: {default}
Drive: C:\
Bootloader Path: \Windows\system32\winload.exe
Either way the content of the BCD file is the same:
Code:
Windows Boot Manager
--------------------
identifier              {9dea862c-5cdd-4e70-acc1-f32b344d4795}
device                  boot
description             Windows
locale                  en-US
inherit                 {7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}
default                 {19a7a9a8-9363-11e0-9c0c-f0def164bfbb}
resumeobject            {19a7a9a7-9363-11e0-9c0c-f0def164bfbb}
displayorder            {19a7a9a8-9363-11e0-9c0c-f0def164bfbb}
toolsdisplayorder       {b2721d73-1db4-4c62-bf78-c548a880142d}
timeout                 0

Windows Boot Loader
-------------------
identifier              {19a7a9a8-9363-11e0-9c0c-f0def164bfbb}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows
locale                  en-US
inherit                 {6efb52bf-1766-41db-a6b3-0ee5eff72bd7}
osdevice                partition=C:
systemroot              \Windows
resumeobject            {19a7a9a7-9363-11e0-9c0c-f0def164bfbb}
nx                      OptIn
So I'm guessing Windows considers the boot drive as C: (SSD), where the system is installed, even when the actual boot started from D: (HDD). And it puts the Hibernation File on C: (SSD), so I can't use this method to move the Hibernation File away from the OS drive. :frowning:

Make sense? :S
 
Last edited:

Terry60

Knows where his towel is.
Staff member
#4
Changing the boot drive with EasyBCD makes the target drive bootable, but it doesn't alter the original drive. That's still bootable, which is why you have to switch the BIOS sequence.
Do you actually use hibernation ? If you switch it off and use sleep instead, you'll save that space.
I don't use it so can't speak with authority, but have you used it since switching the boot ? Maybe hiberfil.sys won't be moved till you actually use it.
Haven't established exactly whether it has to be on "boot" or "system" (not the same now you've moved the BCD, and perversely MS uses those terms counter-intuitively, "boot" being where the system in use lives, and "system" being where the boot files live), but if it is the latter, then maybe it will move itself next time you actually use it. If not, you're stuck with it where it is.
 

mqudsi

Mostly Harmless
Staff member
#5
Again, it's clear that the wrong is drive being booted, even if you used EasyBCD to make the move. As Terry explains, EasyBCD does not undo the old "bootness" of the first HD so as not to leave you high and dry if/when things go wrong; hence you are seeing this.