viernes, 7 de marzo de 2014

Siete formas de configurar arranque múltiple con Windows 8 y Linux.

Hace unos días un buen amigo estuvo batallando con su nueva notebook (que como era de esperar venía con UEFI y Windows 8 preinstalado) tratando de instalarle Arch en ‘dual boot’ sin llegar a conseguirlo. Justo después de que eliminara las particiones de Windows e instalara solamente Arch, encontré un artículo en uno de los sitios de mi preferencia, en el que se explican 7 formas distintas de configurar el arranque múltiple en sistemas con Windows 8.

A sugerencia de este amigo, quien recibió tarde la información, me animé a traducir el artículo completo para ponerlo a disposición de todos, de manera tal que aquellos que no puedan leerlo en su idioma original tengan acceso a sus consejos, no obstante, como siempre recomiendo a todos los que tengan la oportunidad, acudan directamente a la fuente original que siempre será más rica que cualquier traducción.

Como información preliminar, el artículo en cuestión es el último de una serie de 3 sobre el mismo tema, publicados por el autor en su blog en el sitio ZDnet.com, los cuales recomiendo leer por su orden a aquellos que quieran entrar en detalles sobre el asunto. Sobre el autor de los mismos, su nombre es J.A. Watson y exibe un impresionante currículum que él mismo describe de la siguiente manera: “Empecé a trabajar con lo que llamamos “ordenadores analógicos” en el mantenimiento de aeronaves con la Fuerza Aérea de los Estados Unidos en 1970. Después de terminar el servicio militar y regresar a la universidad, me presentaron los microprocesadores y la programación en lenguaje de máquina en procesadores Intel 4040. Después de eso también trabajé, manejé y programé equipos de Digital Equipment Corporation PDP-8, PDP-11 (/45 y /70) y minicomputadoras VAX. Estuve involucrado con la primera ola de microordenadores basados en Unix, a principios de los 80. He estado trabajando en el desarrollo de software, operación, instalación y soporte desde entonces”.

Dicho esto, sin más, aquí les va la traducción del artículo en cuestión, sobre la que recalco, todos los méritos corresponden al autor original y cualquier posible error es de mi propia cosecha.

Siete formas de configurar arranque múltiple con Windows 8 y Linux

Una buena parte de los comentarios en mi post más reciente sobre la instalación de Fedora en mi nuevo ordenador portátil fue en el sentido de “en lugar de decirnos lo que no funciona, por favor danos un poco de información acerca de las opciones que tenemos para hacer el trabajo”.

Es un buen consejo, y estoy feliz de seguirlo. Si todo lo que hacemos es sentarnos y quejarnos del arranque dual de Linux en sistemas UEFI, es muy probable que desalentemos a algunas personas de probarlo, y la verdad es que hay opciones que funcionan sin una enorme cantidad de esfuerzo.

Primero, sin embargo, voy a repetir algo que he dicho muchas veces antes. Cada implementación del firmware UEFI es diferente – y no sólo un poco diferente, cualquiera que sea.

Algunos trabajan muy bien con instalaciones de Linux, arrancan dual sin problemas desde el principio. Otros son difíciles, impredecibles y francamente exasperante en su inconsitencia y parecen salirse de su camino para evitar que Linux arranque. Así que si deseas tener arranque dual de Linux y Windows, intenta encontrar una descripción escrita por alguien con el mismo sistema que estás utilizando, o por lo menos en un sistema del mismo fabricante.

Ok, así que ¿cuáles son las posibilidades?

1 . Instala el gestor de arranque GRUB de Linux.

Bueno, la primera y sin duda la más sencilla si funciona correctamente, es instalar el gestor de arranque GRUB de Linux como el objeto de arranque por defecto, y que tenga el control del arranque dual con Windows.

Para ello, por supuesto, tienes que tener una distribución de Linux compatible con UEFI – las que he probado y puedo dar fe de ello son openSUSE, Fedora, Linux Mint y Ubuntu, pero hay otras y hay más por venir en un futuro próximo.

Si tienes una distribución de Linux compatible con el arranque seguro UEFI, ni siquiera tienes que cambiar los ajustes de configuración UEFI, aunque mucha gente va a optar por desactivar el arranque seguro de todos modos.

Al instalar una distribución de Linux compatible con UEFI, si todo funciona como debería y la configuración del firmware UEFI funciona correctamente y no obtienes un “reinicio” incorrecto (algo que he visto suceder con demasiada frecuencia ), entonces al reiniciar después de la instalación completa obtendrás el menú de arranque del GRUB, y serás capaz de elegir entre Linux (por defecto) o Windows 8 para arrancar desde él.

En ese momento estás casi libre en casa – pero ten en cuenta que yo personalmente he visto (y personalmente poseo) sistemas que en algún momento posterior, de repente restablecen la configuración de arranque de Windows sin ninguna razón en particular. Si esto sucede, debes considerar el uso de uno de los otros métodos que se describen a continuación, ya que mi experiencia ha sido que esto no sucede sólo una vez.

2 . Use la tecla de selección de arranque del BIOS.

La segunda posibilidad es que elijas una distribución de Linux compatible con UEFI, que la instalación se realice muy bien, pero al reiniciar levante con Windows en lugar de Linux. Esto puede ser muy desalentador, pero en realidad no es tan difícil trabajar con ello.

Lo importante a recordar es que la instalación de Linux se ha añadido a sí misma a la lista de inicio: sólo tienes que ser capaz de llegar a esa lista para arrancar.

La forma más sencilla de hacerlo es utilizar la opción de BIOS Boot Selection, que se activa pulsando una tecla especial durante el proceso de encendido o reinicio. Esa “tecla especial’ varía entre sistemas, he visto Escape, F9 y F12 utilizado en algunos de mis sistemas, y estoy seguro de que hay otras.

Al pulsarla, se interrumpirá el proceso de arranque de Windows y obtendrás una lista de los sistemas operativos disponibles – probablemente Windows 8 y Linux. Yo personalmente no presto atención a esta opción porque no me gusta entrar en la “carrera” con el proceso de arranque para asegurarme de que pulso la tecla de selección de arranque a tiempo, y si estoy distraído o demasiado lento luego tengo que ir todo el camino a través del arranque de Windows y para simplemente reiniciar de inmediato para volver al menú de selección de arranque.

Pero esto a mucha gente no parece importarle, y sin dudas es una opción que requiere un mínimo de tocar el violín y luchar con configuraciones de BIOS rebeldes. Una manera en que esto se puede hacer un poco más fácil es entrar en la configuración del BIOS y seleccionar un retraso de puesta en marcha, muchos sistemas permiten establecer entre 5 y 30 segundos de retraso antes de que Windows arranque en realidad, lo que te da un montón más tiempo para presionar la tecla mágica.

3 . Habilitar ‘Legacy Boot’.

La tercera posibilidad “simple” es habilitar ‘Legacy Boot‘ en la configuración del BIOS y simplemente ignorar todo el asunto de UEFI.

Esto no es la opción que personalmente prefiero, en parte porque soy terco y en parte porque, como Adam Williamson me explicó hace algún tiempo, hay algunas ventajas funcionales en el arranque UEFI. Pero sin dudas es una opción viable, y estrictamente en términos de conseguir que Linux esté instalado y arrancando, en realidad podría ser la solución más simple absoluta.

El único problema que he visto con esta opción es que algunos sistemas hacen que sea difícil habilitar ‘Legacy Boot‘, ya sea porque la opción está bien escondido en la configuración del BIOS, o porque tienes que establecer una contraseña de BIOS antes de que te deje que la cambies. He oído que podría haber algunos sistemas que no cuentan ‘Legacy Boot‘ en absoluto, pero nunca he visto uno así.

En cualquier caso, si eliges este camino no sólo haces las cosas mucho más fáciles para la instalación y configuración de arranque dual, si no que te permite instalar casi cualquier distribución de Linux que desees, sin tener en cuenta la compatibilidad con UEFI.

Yo personalmente he utilizado esta opción para instalar distribuciones de Linux no UEFI, como SolydXK, PCLinuxOS y Linux Mint Debian Edition en una configuración de inicio múltiple con alguna otra distribución compatible con UEFI. Entonces puedo volver atrás y desactivar Legacy Boot, y sólo utilizar el GRUB compatible con UEFI para arrancar las Linux no compatibles.

4 . Trate de usar el gestor de arranque de Windows.

La cuarta posibilidad debe ser utilizar el gestor de arranque de Windows para un arranque dual con Linux. Yo digo que debería ser, porque la gente sigue publicando comentarios que dicen “sólo tienes que utilizar EasyBCD para configurarlo”, o incluso “usar bcdedit“, pero por mucho que lo he intentado no puedo conseguir que funcione.

Escribí sobre esto un año o algo atrás, cuando tuve mi primer sistema UEFI, y asumí en ese momento que el problema era sólo que EasyBCD no estaba completamente adaptado para soportar el arranque UEFI, pero ahora lo he intentado de nuevo, con la versión más reciente de EasyBCD que pude obtener de la página web de NeoSmart y todavía no puedo hacer arrancar Linux en absoluto.

Ahora bien, puede ser que yo sea demasiado denso para averiguarlo, pero si alguien va a venir y poner un comentario diciendo “funciona bien”, entonces por favor, que esté preparado para ser muy específico, y dar detalles exactos de lo que hizo para conseguir que funcione. Debido a que he intentado todo lo que se me ocurre, y no importa lo que haga lo único que consigo cuando intento arrancar cualquier instalación de Linux es un mensaje que dice “Windows falló en arrancar”.

También he buscado más información en la web, y los únicos ejemplos concretos que puedo encontrar son los de aquellos que han fallado de la misma manera que yo. Puedo encontrar un montón de lugares que dicen “EasyBCD funciona”, y “utilizar EasyBCD para multi- arranque de Windows 8, 7, Vista, XP, MacOS y Linux”, pero ni UNO que en realidad diga “nosotros hicimos esto con Windows 8 UEFI y Linux, funcionó, y esto es lo que tienes que hacer”.

Lo que hice fue lo siguiente. Descargué e instalé EasyBCD 2.2 en dos sistemas Windows 8 UEFI diferentes (el recientemente adquirido HP Compaq y mi Acer Aspire One 725). Cuando luego corrí EasyBCD (como administrador, por supuesto) me sorprendió que apareció una lista de sistemas operativos para su configuración de arranque. Sé que el gestor de arranque de Windows no la había estado viendo u ofreciendo para arrancar otra que no fuera Windows 8. Me tomó un minuto darme cuenta de que lo que estaba listado era todo lo que estaba en la lista de arranque del BIOS.

Eso era exactamente lo que sería ofrecido si utilizaba la opción de selección de arranque, como se describe arriba, pero si dejo que Windows arranque normalmente no había ni rastro de estos otros. Incluso si pongo un retardo de 30 segundos en el arranque de Windows, utilizando bcdedit o EasyBCD, paraba y sólo listaba Windows 8. ¿Entonces por qué EasyBCD enumeraba todos los demás?. Yo no entendía, pero tenía la esperanza que podría ser una buena señal, que EasyBCD, al menos, encontrase las otras opciones, y todo lo que tenía que hacer ahora era agregarlos al menú normal de Windows bootloader.

Traté de hacer eso, primero sólo marcando una de las distribuciones de Linux como el objeto de arranque por defecto. EasyBCD me deja hacer eso sin ninguna queja, pero cuando reinicié vi que volvió justo con Windows. ¡Bah!.

Entonces traté de usar la opción “Añadir” en EasyBCD, y le di toda la información de una de las particiones de Linux. Esta vez, al menos, cuando reinicié mostraba la opción Linux en la lista de inicio, pero cuando traté de arrancar me dio el mensaje “Arranque de Windows Fallido”. Le grité a la maldita computadora que ni siquiera estaba tratando de arrancar Windows, de modo que ¿cómo podría fallar?, pero eso tampoco ayudó.

Entonces me di cuenta de que lo que en realidad estaba estableciendo EasyBCD era un intento de arrancar algo llamado /NST/neogrub.efi (o algo parecido a eso, no tengo el nombre exacto en mi cabeza ahora mismo, y estoy harto del EasyBCD y Windows, así que no lo voy a volver a mirar de nuevo).

Así que traté de poner varios archivos de arranque con ese nombre – al principio traté con la imagen grubx64.efi de una de las distribuciones de Linux, luego traté de copiar el bloque de arranque (primeros 512 bytes) del disco y/o el sistema de archivos de Linux, tal como se debe hacer con el fin de arrancar dual con Windows XP y Linux, y luego me desesperé y sólo puse un núcleo de Linux bajo ese nombre. Por supuesto, ninguno de ellos funcionó.

Finalmente decidí, basado en mi propia experiencia y la falta de historias de éxito o información de configuración real en la web, que EasyBCD es de ninguna utilidad en la creación de arranque dual Windows/Linux con arranque UEFI habilitado. Puede ser que sea posible utilizarlo si se habilita Legacy Boot, y luego configurarlo exactamente de la manera que se hacía en Windows XP, pero si vas a hacer eso, entonces sólo tienes que utilizar el método tres anterior y te ahorras un montón de problemas.

Después de estar luchando con EasyBCD por mucho tiempo, y finalmente rendirme, me decidí a hacer un intento con el utilitario bcdedit, que es el método estándar de Windows para este tipo de configuración. Estoy bastante familiarizado con este programa, ya que lo he utilizado para configurar el arranque dual con Windows XP, así que no estaba exactamente dando vueltas torpemente en la oscuridad.

Pero, de nuevo, no importa lo que he intentado, no arranca. Podía conseguir añadir el artículo Linux al menú del cargador de arranque de Windows, y podía establecer todo tipo de cosas diferentes como el objeto de arranque, pero ninguno de ellos funcionó. Por último, sólo para demostrarme a mí mismo que no estaba haciendo justo algo fundamentalmente equivocado (o estúpido), establecí que el objeto de arranque de uno de mis intentos de Linux era Windows 8 y arrancó enseguida. ¡Grrrr!.

Por lo tanto, mi conclusión de todo esto es que, una de las principales razones por las que EasyBCD no tiene ninguna utilidad en la creación de un arranque dual Linux, es que es básicamente imposible utilizar el gestor de arranque de Windows 8 para arrancar Linux con arranque UEFI habilitado. Una vez más, puede ser que sea posible con Legacy Boot habilitado, pero no me importa lo suficiente en este momento para averiguarlo.

Si usted sabe que me equivoco en esto, y ha configurado personalmente un sistema de Windows 8 para arrancar Linux usando el gestor de arranque de Windows, entonces dígamelo en los comentarios, y por favor, por favor sea específico y diga cómo lo hizo, porque me encantaría saber.

5 . Instale un gestor de arranque diferente.

La quinta opción de arranque múltiple UEFI es instalar un gestor de arranque diferente, como rEFInd de Roderick W. Smith. Este tiene la ventaja de ser capaz de arrancar casi cualquier cosa – Windows, Linux, MacOS – y es muy potente y muy flexible en la búsqueda de forma automática de lo que pudiera estar en el disco, presentándola como una lista de selección de arranque.

Por desgracia, la única cosa que no resuelve es el problema de “configuración no cooperativa/impredecible del BIOS” que se describe más arriba. Si Windows o el proceso de arranque, o alguna otra cosa está payaseando con la configuración del BIOS y le impide establecer de forma permanente GRUB como el gestor de arranque por defecto, entonces es casi seguro que va a impedir también el establecimiento de rEFInd.

6 . Pruebe con una alternativa temporal.

La sexta opción no es exactamente una solución al problema de configuración no cooperativa/impredecible del BIOS, es más bien una fea alternativa temporal para él.

Resulta que, además de la lista normal de “secuencia de arranque” en la configuración de arranque UEFI, también existe una opción “next boot”, que especifica una configuración de inicio para una sola vez.

Esta es normalmente nula, por lo que el sistema sigue la lista de la secuencia de arranque, pero si se establece, el sistema intentará arrancar ese artículo primero, y también es evidente que está establecida de manera que en el siguiente inicio se regresa a la utilización de la lista de secuencia de arranque por defecto.

La configuración de “next boot” se puede ajustar desde Linux usando efibootmgr -n XXXX, donde XXXX es el número del artículo de la lista de arranque, para averiguar el número de la instalación de Linux(s), sólo tiene que utilizar efibootmgr sin opciones (o efibootmgr -v si quieres ver todos los detalles explícitos): el número será algo así como 0001 o 0002 en la mayoría de los casos.

Esta opción “next boot” podría convertirse en un trabajo semi-permanente al añadir el comando efibootmgr a los scripts de arranque de Linux, por lo que cada vez que Linux arranque sería restablecido el valor por lo que volvería a arrancar Linux de nuevo la próxima vez . Yo no dije que estaviera bien, o fuera elegante, o incluso bonito, pero funciona, porque lo he intentado.

7 . Engañar el proceso de arranque por defecto.

Por último, la séptima opción es “engañar” el proceso de arranque por defecto poniendo la imagen de shim.efi Linux (o grubx64.efi si deshabilita Secure Boot) en el lugar donde se encuentra normalmente el Administrador de arranque de Windows.

En los sistemas que he probado, esto es en la partición de arranque EFI (típicamente /dev/sda2 en Linux, montada como /boot/efi ), bajo el nombre /EFI/Microsoft/Boot/Bootmgfw.efi. He tenido algo de éxito en hacer esto, pero les advierto que algunos sistemas (especialmente HP Compaq) son tan agresivos acerca de la comprobación y restablecimiento de la configuración de arranque UEFI por defecto que a veces se dan cuenta de que en realidad Bootmgfw.efi no es el programa “original” instalado, y obtiene una copia de la original y la pone de nuevo en su lugar, deshaciendo así el astuto engaño. Probablemente puedes imaginar lo irritante y frustrante que resulta cuando esto sucede…

Así que, ahí lo tienen. Siete opciones diferentes para configurar arranque múltiple con Windows 8 y Linux.

Supongo que hay otras que no he pensado, o que no estoy recordando en este momento, pero estas son las que creo que más obvias.

He probado todas ellas en un momento u otro. La más bonita y por supuesto la más simple es la primera, sólo tienes que instalar y arrancar GRUB, si funciona en su sistema en particular. También sé que algunas personas juran que la segunda opción basta, sólo pulsando Select Boot, y que creen que estoy siendo perezoso y testarudo al no usar esa.

Más allá de esas dos, probablemente tomaría más dedicación, aprendizaje y ensayo y error para lograr que las demás trabajen (algunas todavía no he conseguido que funcionen). Pero a largo plazo, si estás determinado a tener un arranque dual de Linux y Windows, deberías ser capaz de lograrlo.


Espero les sirva, hasta una próxima oportunidad.

Dios los bendiga.

Creado por: Maicol Muñoz
correo: maicolgmid@hotmail.com

No hay comentarios:

Publicar un comentario