This modification to pygrub allows it to understand FreeBSD disklabels. It only tries to probe the first active FreeBSDpartition and the first slice (a) in the first active FreeBSD partition. The filesystem code is designed for Solaris, not *BSD. It only understands UFS1 and the FreeBSD-style UFS1 somehow crashes the code. Teaching their modular FS reading code about FreeBSD-style UFS1 and UFS2 is a separate project. This is against the pygrub shipped with the xen-3.0.3-80.el5_3.2 CentOS 5.3 package. "pygrub.orig" is the reference pygrub.