You are not logged in.
I installed rEFInd on a 32bit EFI MacBook, and after copying the filesystem drivers into /efi/refind/drivers, was able to boot into an UEFI stripped install cd. I ran through the install, taking notes from the MacBook wiki entry
I am under the impression that rEFInd should do magic and find linux inside /boot (as suggested here) but the automatically generated "Legacy" OS entry fails: "Operating system missing." Perhaps because the kernel EFI stub is 64bit while the EFI is 32?
My failing manual menuentry errors with "Error: Not Found While Loading vmllinuz-linux." I suspect this is because I do not have the partition labeled correctly (see diskutil and gptfdisk outputs) or am expecting rEFInd to be able to read into places it can not. But am mostly totally clueless.
I also did some configuration before realizing /efi/ on the mac partition is different than the ESP (EFI system partition) and am still unclear how the two are related.
Any one have success with a similar setup?
» /usr/local/Cellar/gptfdisk/0.8.8/sbin/gdisk -l /dev/disk0
...
Found valid GPT with hybrid MBR; using GPT.
...
Number Start (sector) End (sector) Size Code Name
1 40 409639 200.0 MiB EF00 EFI System Partition
2 409640 208349631 99.2 GiB AF00 _DS_DEV_DISK_X_
3 208613376 312580095 49.6 GiB 8300 Arch
» diskutil info /dev/disk0s3
Device Identifier: disk0s3
Device Node: /dev/disk0s3
Part Of Whole: disk0
Device / Media Name: Arch
Volume Name:
Escaped with Unicode:
Mounted: No
File System: None
Partition Type: 0FC63DAF-8483-4772-8E79-3D69D8477DE4
Bootable: Is bootable
Media Type: Generic
Protocol: SATA
SMART Status: Verified
Total Size: 53.2 GB (53230960640 Bytes) (exactly 103966720 512-Byte-Blocks)
Volume Free Space: Not Applicable
Read-Only Media: No
Read-Only Volume: Not applicable (no filesystem)
Ejectable: No
Whole: No
Internal: Yes
» sed -e 's/#.*//;/^$/d' /efi/refind/refind.conf # no disabled menuentry is shown :)
timeout 20
scan_all_linux_kernels
menuentry "Arch Linux Core Kernel" {
icon /EFI/refind/icons/os_arch.icns
volume Arch
loader vmlinuz-linux
initrd initramfs-linux.img
options "root=UUID=2c17e506-1d6a-433e-9f63-12ea59cc779b rootfstype=ext4 rw loglevel=6 printk.time=y"
ostype Linux
graphics off
}
» ls /efi/refind/drivers/
ext2_ia32.efi ext4_ia32.efi hfs_ia32.efi iso9660_ia32.efi
» ext4fuse /dev/disk0s3 /Volumes/Arch
» ls /Volumes/Arch/boot
initramfs-linux-fallback.img initramfs-linux.img refind_linux.conf vmlinuz-linux
Offline
EFI is restricted to booting same-architecture images. Thus, on a Mac with a 32-bit EFI, rEFInd should be able to boot a 32-bit Linux kernel, but not a 64-bit Linux kernel. There are ways around this limitation, though. Some EFI boot loaders can boot cross-architecture, although I don't recall the details. Try GRUB (Fedora's patched Legacy or 2), ELILO, and SYSLINUX if you want to investigate this possibility. Booting in BIOS/CSM/legacy mode is also an option, and one that's certain to work; but this requires that you set up a hybrid MBR because Apple's EFI activates its CSM only if a hybrid MBR (or a conventional MBR) is present on the disk.
Of course, you could also install a 32-bit version of Arch on your computer. I'm not sure what sort of boot support the 32-bit Arch images have for EFI, though.
Offline
Thanks for the link! It's unclear to me what happens when a bootloader is installed to the MBR in the hybrid partition table. Mac will go into BIOS mode and use that bootloader? EFI will still take precidence and rEFInd will give an option to boot to the MBR (is that what happens now, and the reason for the no OS found error?)
I thought going to EFI-installed grub or syslinux through rEFInd might work. I'm able to use the 64bit kernel on the install CD.
Unfortunately, --target=i386-efi as suggested by the grub wiki doesn't work. Expected files are missing
» ls /Volumes/Arch/usr/lib/grub
i386-pc/ x86_64-efi/
» egrep '368-efi|32' /Volumes/Arch/var/lib/pacman/local/grub-1:2.00.1282.g5ae5c54-1/files
usr/lib/grub/i386-pc/adler32.mod
usr/lib/grub/i386-pc/efiemu32.o
usr/lib/grub/x86_64-efi/adler32.mod
etc/default/grub a03ffd56324520393bf574cefccb893d
is there an alternative grub package?
[I'll be back with an edit after backing up the mbr and trying syslinux ]
Offline
@_will: Arch dev do not officially support cross-ARCH EFI installation (not even with non-EFISTUB bootloaders like GRUB).
But you can rebuild GRUB pkg with i386-efi files included which will enable you to install in your Macbook's EFI, but this required slightly modifying the PKGBUILD. I maintain the grub-git pkg in AUR and I have made the required changes to support i386-pc, x86_64-efi and i386-efi all in one grub-git-x86_64 pkg, but this is disabled by default (change _GRUB_IA32_EFI_ARCH_X64="1" in PKGBUILD to enable it).
Offline
You could try grabbing a 32-bit EFI binary for whatever boot loader you choose to use. You should be able to find something in the binary repositories for any number of distributions, but you'll probably have to unpack it and install the files manually, which means you'll have to know a bit about what goes where. My EFI Boot Loaders for Linux page may be helpful, but it's not a step-by-step guide for this sort of thing.
As to the boot process, when you've got a hybrid MBR with an installed BIOS-mode boot loader, the Mac will boot OS X or rEFInd or whatever it's configured to boot. IIRC, you can use OS X's own boot selector tool (I don't recall its name, offhand) to switch between OSes, or you can hold down the Option key at boot time to do so. The usual way with rEFInd, though, is to set rEFInd to boot by default, and it will then provide you with the option to continue on via the Apple EFI boot loader to OS X, via an EFI-mode Linux boot loader, or to do the BIOS/CSM/legacy boot through to Windows or BIOS-mode GRUB.
Offline