When I was transitioning my 32-bit Core kernel to 64-bit (Core64.gz and vmlinuz64), I noticed an odd behavior. I had placed the new files in /mnt/sda1/boot, but I kept the 32-bit ones in the same directory with the following grub menu config:
default 0
timeout 10
title MicroCore64
root (hd0,0)
kernel /boot/vmlinuz64 quiet tce=sda1 opt=sda1 home=sda1
initrd /boot/core64.gz
title MicroCore32
root (hd0,0)
kernel /boot/vmlinuz quiet tce=sda1 opt=sda1 home=sda1
initrd /boot/core.gz
So after setting this up, I rebooted (via sudo reboot) and selected the MicroCore64 boot, but it dumps a bunch of memory and says "Fixing recursive fault but reboot is needed!". However, since I'm running Core in VMWare Workstation, when I reset (or poweroff and turn back on) and select the Core64 boot option, it boots fine. This behavior only occurred when I rebooted with the TCL reboot command. I thought maybe there was an issue with having the same versions in the same boot directory, but when I removed the 32-bit Core.gz and vmlinuz from the same boot directory, rebooting with the command still gave that error. This only happens with the 64-bit version of Core and vmlinuz. It was working fine if I reset the VM and could select Core32 or Core64 and they would boot fine. It's only when I used reboot command. I wasn't sure if this was a bug.