* /dev/hda55: F with G partition over 137 (LBA28)
* /dev/hda56: G partition (LBA48)
* /dev/hda57: F partition that fills the whole disk (LBA48)
I did this in 2 minutes with a hope that someone could test it, as I don't have the time right now, if I have the time later I could test it further and make it autodetect what is used..
the file: http://217.8.146.157/xbox.c
patch against 2.4.23: http://217.8.146.157/xbox.c.patch
put this in fs/partitions/ in your kernel source, and compile

PS: /dev/hda55+56 and /dev/hda57 should not be used at the same time as they are overlapping..