All this story began with a cheap I5-3570T processor(about 15 usd), which got hot when installed with Lenovo M92P tiny PC. Then I bought a HP Elite 8300 Ultra-Slim Form Factor. HP Elite 8300 is a very good machine. Other than excellent thermal control, it also has many expansion slots, you can use msata driver and MXM graphics card.

I got everything works fine when I have only msata SSD installed, it runs Windows7 perfectly. But problem happened when I plug a 2.5′ HDD later. I got “No Bootable Devices found” notification with normally boot. The only way to pass this is press F9 when the power on, then choose SATA2 to make it boot from msata.

Usually you can easily save the boot order in the BIOS setting, but HP just have strange limitation on this machine (also other ivy Bridge notebook like HP ENVY 6), you just cannot make the bios automatic boot from msata SSD, it will force to boot from HDD(SATA0).

After some google work, I found a old thread from Windows 7 Forum. HP Envy 6 mSATA SSD only boots when HDD is physically removed

There was a post mention that can be fix by polp boot manager. Basically that is install plop boot manager to the HDD by bootice, and with correct setup, it will run when power-up, then it will boot the OS from msata.

That post actually guide correct way to solve the issue, but it didn’t explain some detail which may cause failure, here’s a brief processure from my expreience, hope it can help some people.

First, instally polp boot manager to target partition. for my case, I do have only 1 partition on HDD, which is primary partition.

Second, reboot to enter plop boot manager. with the menu, you need to do some configuration to make it default boot from msata.

1. setup -> partitions -> creat new set
Edit label
Name the set, in my case, it’s HDD2-1

Select Device
select device, in my case, it’s HDDB

Partition ID
choose “Select ID from list”, then “07 NTFS”

Edit MBR/Import data
This is the most tricky part, if it’s not correct configured, your partition will be damaged.
BP means boot manager partition. P1-P4 this are the current values of the primary partitions in the MBR.
In this case, choose P1 to copy, then paste to BP.
Press ESC to back,  Y to save setting.

2. setup -> profile -> new set
Edit label
Name the set, in my case, it’s msata

Show in main menu
yes

Linked partitions
Choose second Driver and load partition HDD2-1。
Press ESC to back,  Y to save setting.

4. setup -> boot manager just make countdown short and make msata as default profile.

If there’s nothing wrong, you can try to load mstat in main menu, to see win7 in msata boot success or not.
Wrong setup may damage the partition, which can be restore by DiksGenius under windows PE, and you may also need to fix boot with other tool.

==========中文版==========

事情的起因是一百来块收到了一块I5-3570T,M92P那点可怜的散热规模根本压不住,稍微满载一会就奔着70度去了。

然后今年五月份的时候就买了一台HP Elite 8300 USDT的SFF准系统,这个机器双热管散热能力可以,整体用着也不错,扩展能力也不错,除了常规的笔记本SATA+笔记本光驱之外,还有个MSATA槽位,MXM显卡位。

正好有个之前卖掉T430闲置下来的MSATA,那想着就用上吧。于是装了系统用着一切都正常,直到我插入了一块笔记本硬盘。

“No Bootable Devices found”

最后证明是这个机器如果只有一块msata硬盘的时候,从这个位置 (sata2) 启动没有任何问题,但是多块硬盘同时被检测到的情况下,BIOS无法设置sata2作为第一启动设备,设置了也不会保存。这算是个BIOS缺陷?或者当年就没考虑让你把msata作为主盘位,基本上只作为加速盘使用。

总之这个蹩脚的设定使得引导msata很不方便,必须在每次开机时按F9,选择sata2。

原BIOS没有任何操作空间,找了一下看到了一个有价值的指南:

HP Envy 6 mSATA SSD only boots when HDD is physically removed

简单来说HP Envy 6也有类似的设定,无法在msata和HDD共存的情况下默认从msata启动,帖子里有一个方案是使用bootice在HDD引导分区上写入一个 plop boot manager,通过它来引导位于sata2上的系统。

envy6

理论上知道软件就基本解决了问题,但是实施起来有一点细节,如果操作不对的话,那么将会引导失败并且损坏msata上的系统分区。

关于bootice安装plop boot manager的过程就不赘述了,主要说一下在plop boot manager里的操作:

1. 先在主菜单里通过q键进入快速启动菜单,验证目标在哪个磁盘和分区上,例如HDDB partition 1

2. setup -> partitions -> 点击空白位置新建一个目标分区
Edit label
命名这个分区 ,本案例为HDD2-1

Select Device
选择设备,本案例为第二个设备,选择HDDB

Partition ID
分区ID,本案例为NTFS下的windows,直接通过菜单2. Select ID from list选择07 NTFS

Edit MBR/Import data
这个是本教程最主要的地方,也是帖子里描述不够详细导致一般人失败的地方。
BP表示启动分区,下面的P1-P4表示读取到的主分区,本案例中需要下移光标到P1,按S复制P1,回到BP行按P粘贴。
完成设置后按ESC返回上级菜单,按提示按Y保存设置

3. setup -> profile -> 点击空白位置新建一个目标配置
Edit label
命名这个配置,本案例为msata

Show in main menu
是否在主菜单中显示,本案例为yes

Linked partitions
选择连接到的分区,这里进入设置后会出现四个设备和各设备下的四个分区,本案例中下移光驱至第二个设备的第一个分区,按B选择启动分区,并且回车后在弹出菜单中选择之前设置好的HDD2-1。
完成设置后按ESC返回上级菜单,按提示按Y保存设置

4. setup -> boot manager 这里主要设置把菜单倒计时设得短一些,并且把msata设为默认启动。
Edit boot countdown 个人设置为3
Select at start 选择Default profile
Default profile 本案例选择msata

完成后可以在菜单中选择设置好的msata来引导启动,如果设置无误的话就能顺利引导。
重启后也无需再进行人工干预,倒计时3秒会按照默认方案启动msata上的系统。

假如设置中出现失误导致分区丢失,解决方案为使用PE运行Diskgenius,扫描msata硬盘下的丢失分区,找到后保存即可恢复,顺便引导可能也会需要修复一下。