the problem is in disk geometry detection in AHCI mode. for example:
1. get empty disk. check didk geometry with system info. you will see Tracks/Cylinder = 255, Sectors/Track = 63. Create 100MB NTFS partition with Windows Disk Manager. Reboot. Check disk geometry - it changes!
2. Why disk geometry changed? because BIOS thinked that partition end is aligned to end of cylinder. So it uses END CHS value for first partition and LBA END for counting new geometry. In my case I saw the following
record in master boot record.
END CHS = DF 13 0C (END HEAD = 0xDF) Disk Geometry Tracks/Cylinder chaged after reboot from 255 to 224. 224 = 0xE0 = 0xDF + 1
As you can see DISK GEOMETRY IS DETERMINED BY END CHS VALUE FOR 1ST PARTITON
3. Now imaging the following you again get empty disk with geometry 255/63. Create partition with size 101MB or 352MB or 705MB or there are pretty much other sizes. These sizes are specific - after creating partition with this size you will get ZERO in end chs for 1st partition.
Reboot now - and you will see that bios hangs - cause disk must have positive Tracks/Cylinder.
How to fix this?
-DO NOT USE AHCI
or
-use large 1st partitions more than 8GB (end chs for such partition always FE FF FF).