I’m a big fan of technology that helps users. HPA could be one of those “helpful” technologies. HPA is a “feature” of some motherboards whereby they steal hard disk space (typically the last few megs of your disk) and use it for backing up the system BIOS, a recovery partition, etc.
I just purchased a GIGABYTE GA-EP45-UD3P motherboard, RAM, and CPU to drop into my file server. Today I assembled the trio, stripped my old mobo out and dropped this new one in.
The machine booted up but there was a little problem. Two of my disks (members of a ZFS mirror) were corrupted!? That effectively destroyed one of my filesystems, which made me very unhappy.
A few Google searches later and I learned all about HPA. This nasty little surprise was tucked away in Advanced BIOS Features -> Dual BIOS Recover Source = HPA (page 49,51 in the manual). My version of BIOS doesn’t have this option, but I found accounts online of older versions that do. It seems that changing that setting didn’t actually work (ie, disable HPA), so Gigabyte removed the feature. They have left me no way of disabling this destructive feature.
After hours of fiddling, I have worked around it by: a) moving the disks off the first two SATA connectors b) rebooting onto the HDD GURU Magic Boot ISO, c) removing the HPA partition from both disks, d) rebooting into FreeBSD. Finally, my ZFS mirror was back with one disk, because the motherboard had helpfully restored the HPA on the first disk.
If you’re using this mobo and migrating disks to it, I’d suggest installing a sacrificial disk on the first SATA controller. That will appease the HPA demon and let you successfully migrate your RAID volumes to it. I’m stuck moving the data off the disk I recovered. Then I’ll recreate the array on the disks with the HPA partition and all will be well.