Hi,
Yes they are pretty rare. Windows 2000 and Windows XP guests migrated from VMware to Qemu/KVM would not boot due to incorrect disk geometries (some had 32/56 spt instead of 56. Also number of heads was not entirely correct)
Ok.
Why? Asking the user to deal with the mess is pretty lame if there are better options. And IMO doing this fully automatic in seabios is better.
I’m not against an automatic approach, however I do think that doing this in SeaBIOS might break compatibility for already existing guests that will suddenly see different LCHS values. (Explanation below)
I can't see how this can break guests. It should either have no effect (guests using LBA) or unbreak guests due to LCHS changing from "wrong" to "correct”.
I’m not sure what do you mean by "unbreak guests” if you change an existing guest that uses LCHS from 56 spt to LBA (63 spt) it will stop booting.
Well, that LCHS change happens because you move the guest from vmware to qemu and seabios uses 63 spt no matter what if the disk is too big for chs addressing.
When seabios is changed to look at the MBR to figure what the lchs of the disk is that will make your guest boot.
Your guessing algorithm will have to guess 56, if it will fail guessing 56 correctly, the user can not perform any action beside downgrading SeaBIOS in order to run the guest.
Sure, if the guess is wrong then the guest will not boot. That isn't worse than the situation we have today where seabios will not even try to figure what the lchs of the disk is.
And, no, downgrading seabios will not make your vmware guest with 56 spt boot.
cheers, Gerd