I have a 2006 iMac (upgraded). It has a T7400 CPU. I upgraded the firmware from 4,1 to 5,1. As you are aware, these have 32-bit EFIs.
I installed OSX. Using OSX's Disk Utility, I partitioned the disk to have partitions for OSX, Windows, and Lubuntu. It has a 200MB FAT32 EFI partition, 200GB OSX HPFS+ partition, 8GB swap, 50GB Linux ext4 partition, and a 50GB NTFS Windows partition. I installed Windows (Windows 7 SP1 x86). I installed rEFInd (running the script refind-install) in OSX. Working well so far. I could select Windows or OSX. I then installed Lubuntu 18 (lubuntu-18.10-desktop-amd64-mac-mattgadient.com.iso from mattgadient.com). In the Lubuntu install, I selected the partition I had created for Lubuntu, and I later must have selected the option to "install grub to MBR" or something like that. At this point, rEFInd shows OSX, Windows, and Linux. Selecting Linux or Windows takes me to the grub menu. I can not boot Windows. Lubuntu boots fine. Trying to boot Windows in the grub menu yields a long error output (I should have taken a picture) that output complaints about SLIC and a lot of other stuff.
So, I assumed that if I could keep grub away from Windows, I thought that it might work. So I reinstalled Windows. I re-installed Lubuntu, opting to install grub to the / (Linux partition). I re-ran the refind-install script in OSX. It says that it found the suspected Linux partition (and it is installing the ext4fs driver)...
Lubuntu/Linux will not boot from rEFInd. It goes black, stalls, then boots Windows. Booting Windows and OSX works fine.
I am frustrated. Please help.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ideally, a triple-boot setup like yours will put Linux and macOS both in EFI mode, reserving BIOS/CSM/legacy mode for Windows; however, it sounds as if you installed Ubuntu in BIOS mode, too. This means that GRUB has taken over the Master Boot Record (MBR) on the disk, bypassing the Windows boot loader. Normally this should still enable Windows to boot, albeit only through GRUB, but this is not working for some reason. Re-installing everything but putting Ubuntu in EFI mode might work, but I'm not sure if it's possible to install Ubuntu directly in EFI mode on a 32-bit Mac, so re-installing could easily not work or might put you back where you are. Therefore, I recommend trying to fix the existing installations.
First, install rEFInd's EFI filesystem driver for ext4fs. This should enable you to boot your existing Ubuntu installation in EFI mode from rEFInd. Given what you've described, rEFInd should detect the Linux kernel after you install the driver and reboot. This will be a new entry, and it should work. (If you see multiple Linux or Ubuntu entries in rEFInd, try them all; one may work where another one fails.) If it doesn't work, this may be another problem, and I recommend fixing it before doing anything else.
Second, use my GPT fdisk to check your partition table. Unfortunately, you'll need a hybrid MBR configuration, in which only the Windows partition is hybridized. That is, the MBR should have a type-0xEE "protective" partition and a type-0x07 Windows partition, nothing more.
With the hybrid MBR set up, there's a chance that Windows will begin booting, either directly or via GRUB; however, it's possible you'll need to run Windows recovery tools from an emergency boot utility. I'm not an expert on these tools, so you may want to ask about them on a Windows forum or on a Mac forum's Windows sub-forum. In broad strokes, you want to re-install the Windows BIOS-mode boot loader to the disk's MBR, and possibly to the Windows partition.
If you end up with a working system, but with redundant or non-functional rEFInd entries, you can hide the one(s) you don't want to see, as described here.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have a 2006 iMac (upgraded). It has a T7400 CPU. I upgraded the firmware from 4,1 to 5,1. As you are aware, these have 32-bit EFIs.
I installed OSX. Using OSX's Disk Utility, I partitioned the disk to have partitions for OSX, Windows, and Lubuntu. It has a 200MB FAT32 EFI partition, 200GB OSX HPFS+ partition, 8GB swap, 50GB Linux ext4 partition, and a 50GB NTFS Windows partition. I installed Windows (Windows 7 SP1 x86). I installed rEFInd (running the script refind-install) in OSX. Working well so far. I could select Windows or OSX. I then installed Lubuntu 18 (lubuntu-18.10-desktop-amd64-mac-mattgadient.com.iso from mattgadient.com). In the Lubuntu install, I selected the partition I had created for Lubuntu, and I later must have selected the option to "install grub to MBR" or something like that. At this point, rEFInd shows OSX, Windows, and Linux. Selecting Linux or Windows takes me to the grub menu. I can not boot Windows. Lubuntu boots fine. Trying to boot Windows in the grub menu yields a long error output (I should have taken a picture) that output complaints about SLIC and a lot of other stuff.
So, I assumed that if I could keep grub away from Windows, I thought that it might work. So I reinstalled Windows. I re-installed Lubuntu, opting to install grub to the / (Linux partition). I re-ran the refind-install script in OSX. It says that it found the suspected Linux partition (and it is installing the ext4fs driver)...
Lubuntu/Linux will not boot from rEFInd. It goes black, stalls, then boots Windows. Booting Windows and OSX works fine.
I am frustrated. Please help.
Ideally, a triple-boot setup like yours will put Linux and macOS both in EFI mode, reserving BIOS/CSM/legacy mode for Windows; however, it sounds as if you installed Ubuntu in BIOS mode, too. This means that GRUB has taken over the Master Boot Record (MBR) on the disk, bypassing the Windows boot loader. Normally this should still enable Windows to boot, albeit only through GRUB, but this is not working for some reason. Re-installing everything but putting Ubuntu in EFI mode might work, but I'm not sure if it's possible to install Ubuntu directly in EFI mode on a 32-bit Mac, so re-installing could easily not work or might put you back where you are. Therefore, I recommend trying to fix the existing installations.
First, install rEFInd's EFI filesystem driver for ext4fs. This should enable you to boot your existing Ubuntu installation in EFI mode from rEFInd. Given what you've described, rEFInd should detect the Linux kernel after you install the driver and reboot. This will be a new entry, and it should work. (If you see multiple Linux or Ubuntu entries in rEFInd, try them all; one may work where another one fails.) If it doesn't work, this may be another problem, and I recommend fixing it before doing anything else.
Second, use my GPT fdisk to check your partition table. Unfortunately, you'll need a hybrid MBR configuration, in which only the Windows partition is hybridized. That is, the MBR should have a type-0xEE "protective" partition and a type-0x07 Windows partition, nothing more.
With the hybrid MBR set up, there's a chance that Windows will begin booting, either directly or via GRUB; however, it's possible you'll need to run Windows recovery tools from an emergency boot utility. I'm not an expert on these tools, so you may want to ask about them on a Windows forum or on a Mac forum's Windows sub-forum. In broad strokes, you want to re-install the Windows BIOS-mode boot loader to the disk's MBR, and possibly to the Windows partition.
If you end up with a working system, but with redundant or non-functional rEFInd entries, you can hide the one(s) you don't want to see, as described here.