Si solo pretendemos crear un USB que arranque OpenGnsys en un iMAC lo recomendable es seguir los pasos para la creacion desde una imagen del pendrive para usuarios Creacion de Pendrive USB de arranque
Es necesario:
Ejecutar las siguientes instrucciones en la para unidad del pendrive:
parted -s /dev/sdX mklabel GPT
parted -sm /dev/sdX mkpartfs EFI fat32 20.5k 210m 2
Una vez descargado grub de la direccion y descomprimido ejecutar las siguientes instruccuines :
sudo apt-get install bison libopts25 libselinux1-dev autogen m4 autoconf help2man libopts25-dev flex libfont-freetype-perl automake autotools-dev freetype2-demos texinfo
export EFI_ARCH=x86_64
./configure --with-platform=efi --target=${EFI_ARCH} --program-prefix=""
make
sudo ./grub-mkimage -O x86_64-efi -d ./grub-core -o bootx64.efi -p "" part_gpt part_msdos ntfs ntfscomp hfsplus fat ext2 normal chain boot configfile linux multiboot video_fb efi_gop efi_uga font test search
montar el Pendrive y Crear una carpeta /efi/boot/grub
sudo cp bootx64.efi *.mod *.lst /mnt/sdaX/efi/boot/grub
El archivo oginitrd.img debe haberse creado segun los pasos de Crear ogInitrdPxe
Ejemplo de archivo de configuracion http://www.opengnsys.es/attachment/wiki/macDevelUSB/grub.cfg
Usamos un sisitema basado en marcas (boot.mac, boot.win ) para determinar el sistema q debe arrancar.
Por defecto siempre arrancara ogClient , Si desde la consola web indiquemos que el equipo debe arrancar desde la segunda partición , durante la primera fase del arranque del cliente se creara la marca boot.mac y se reiniciara el equipo.Cuando cargue nuevamente grub y detecte esta marca situara la entrada Macosx la primera para que el equipo arranque desde esta.Una vez iniciado el s.o este debe encargarse de borrar esta marca de la raiz de la particion EFI.
La llamada al kernel , debe contener la asignacion dinamica de ip :
linux /efi/boot/clientepxe/ogvmlinuz vga=788 acpi=force ip=dhcp
Esto se puede solucionar copiando partes de la bios de un pc y cargandolas en memoria durante el arranque del cliente oglive.
En un PC con sistema linux ejecutar:
dd if=/dev/mem of=/boot/vbios.bin bs=65536 skip=12 count=1
dd if=/dev/mem of=/boot/int10.bin bs=4 skip=16 count=1
introducir en el archivo grub.cfg , antes de realizar la llamada al kernel , el siguiente comando:
loadbios /efi/boot/vbios.bin /efi/boot/int10.bin
linux /efi/boot/clientepxe/ogvmlinuz vga=788 acpi=force ip=dhcp
initrd /efi/boot/clientepxe/oginitrd.img