bricoSistemas

Yosemite, Linux y rEFInd en un Macbook pro viejuno (Update)

Pues resulta que al final sí que le compraron un Macbook nuevo al autor de rEFInd… no, en realidad no lo se, puede ser. O puede que se lo comprara él o se lo dejase un amigo. Sea como sea, la nueva versión de rEFInd hace lo que os comentaba en el post anterior, pero ella solita. Así que ya podéis disfrutar con normalidad de vuestro arranque dual.

Se puede descargar de aquí y es JRATIS. Pero el hombre acepta donaciones, las cuales, recomiendo que hagais aunque sea de dos euretes. Que os gastáis más en chorraditas.

Saludos, amigos.

Anuncios

Yosemite, Linux y rEFInd en un Macbook pro viejuno

Hola queridos lectores.

Salió Yosemite y los fanboys se empezaron a masturbar pensando en Steve Jobs desnudo en una piscina de iphones 6. Pero algunos power users que queremos tener también linux en nuestro precioso y hojalatado Macbook, o por lo menos yo, no estábamos tan contentos con el cambio. Para empezar han cambiado la versión de Ruby y, los que usamos brew, ya nos ha tocado reinstalar todo. También les ha dado por joder con el journaled y OBLIGAR a usarlo. También han guarreado la EFI, en fin… pero es super cuqui y super bonito el diseño, eso sí.

A mi, manías que tengo, me gusta tener mi partición con $LinuxDistribution. Y hace un tiempo que encontré una herramientita que se llamaba rEFIt, que luego pasó a llamarse rEFInd, muy maja y sencillita, que funcionaba muy bien para tener nuestro arranque dual. Con sus themes y sus cositas. Pues claro, al joder la marrana con la EFI, pues no funcionaba. Me puse a indagar.

Lo primero que vi es que el creador de rEFInd quería que le comprásemos un mac nuevo porque su comentario en la web de la herramienta era el siguiente:

Recently, Apple released OS X 10.10 (aka Yosemite), and I’ve been getting e-mails with problem reports. Unfortunately, my only Mac is an ancient 32-bit model that can’t run the latest version, so I can’t investigate the cause of the problems myself.

Que en cristiano significa: “No tengo ganas de marearme en arreglaros vuestros problemas con mi herramienta, pero si queréis que lo haga, necesito un mac en el que pueda instalar Yosemite”. A lo que los usuarios respondieron pasando de él bastante, preguntándole cosas sueltas, y probando.

Parece ser que la solución pasaba por instalar la EFI modificada en una partición ESP, que es lo que usaban los que no quería tener el disco particionado y lo instalaban en uno externo. Esto lo que hace es instalarlo en una partición msdos que tiene nuestro querido Mac, montarla en el directorio /Volumes/ESP, guarrear con la EFI tuneada y a correr.

De aquí surgían dos problemas:

  1. No detectaba la magnifica partición de MacOSX.
  2. Tardaba más de 30 segundos en aparecer el menú del bootloader, un coñazo, vaya.

Bueno, el primer problema era muy sencillo, basta con descomentar la opción “dont_scan_volumes” (que viene comentada) y a correr. Os aparecerá una opción de arranque que rezará “Recovery HD” pero es mentira, no es el recovery, es la partición donde está Yosemite. La renombrais y tal con la conf, que pa eso está.

El segundo problema ya era un poco más complejo. En la web de rEFInd hay unas pinceladas que da el muchacho de cómo arreglarlo, pero se marea poco, porque claro: no le hemos comprado el Mac que quería. Pero bueno, en un hilo de discusión de sourceforge encontré a un tal Uncle Sam, “tío Sam”, que me gustó su nombre mucho y además parece que entendía de la movida.

Básicamente el tío Sam lo que hace es renombrar la EFI modificada al nombre que MacOSX espera ver como EFI, que es bootx64.efi que tiene que estar dentro de la carpeta BOOT. En lugar de ser refind_x64.efi como venía siendo hasta ahora. Se renombra y con bless se le dice al sistema que la EFI nueva es esa, y ya está. Solucionado. El muchacho propone un script muy majo en este hilo. Script que me he permitido el lujo de rematar para los más vagos del lugar:

#!/bin/bash
mkdir /Volumes/esp
read -p “Press [Enter] key to continue…”

mount -t msdos /dev/disk0s1 /Volumes/esp
read -p “Press [Enter] key to continue…”

mv /Volumes/esp/EFI/refind/ /Volumes/esp/EFI/BOOT
read -p “Press [Enter] key to continue…”

mv /Volumes/esp/EFI/BOOT/refind_x64.efi /Volumes/esp/EFI/BOOT/bootx64.efi
read -p “Press [Enter] key to continue…”

bless –mount /Volumes/esp –setBoot \
–file /Volumes/esp/EFI/BOOT/bootx64.efi –verbose
read -p “Press [Enter] key to continue…”

diskutil unmount /Volumes/esp
read -p “Press [Enter] key to continue…”

Se tiene que ejecutar como root. Basicamente lo que hace es montar la partición, renombrar el fichero y el directorio, hacer el bless y desmontar. En el script original del tío Sam utiliza un umount que en Yosemite ya no funciona. En Yosemite se desmonta con diskutil.

Y con esto tendréis vuestro maravilloso boot dual, amigos. Espero que si alguno llega rebotando desde google todo esto le pueda servir de ayuda.