miércoles, 8 de abril de 2015

Doble arranque con OpenSuse 13 y Windows 8 en sistemas UEFI

                                               (p) Hugo Napoli, 2015 (co-autor)                                             


Encontré un oportuno artículo en Internet, buscando información referente al tema expresado en el título, tras haber tenido algunos problemas para configurar el doble arranque en sistemas UEFI [1] entre Sistemas Operativos modernos de distinta naturaleza.

Debo reconocer que hasta ahora, toda mi experiencia se basó en sistemas con BIOS tradicionales [1], pero como el mundo informático es un mundo en cambio constante y en ocasiones vertiginoso, actualizarse no es una opción, sino una de las más básicas necesidades que hacen a la tarea.

Como todo lo que vuelco en los blogs que administro, nada es completamente ajeno. Todos (o la inmensa mayoría de) los artículos que aparecen en dichos espacios web, son de mi autoría, o han sido tomados "prestados", pero siempre con grandes modificaciones a mi cargo.

Estas modificaciones, derivan de la experiencia personal en cuanto a la aplicación de los métodos suministrados por terceros: en este caso, traduje del Inglés el artículo original del autor Eric Vaughan, de la web "Tweak Hound" (en Español "El sabueso de los ajustes"), aplicando numerosas adaptaciones a su trabajo, pero he aquí que el artículo original posee un contratiempo muy importante para quien quiere compartir información (como lo es en mi caso). Observemos la leyenda de pie de página:


"You may not use or copy any material from TweakHound.com without expressed written permission. Hotlinking to any material within this site is forbidden".


"No puedes usar ni copiar ningún material de TweakHound.com sin el permiso expreso por escrito. Enlazar cualquier material dentro de este sitio está prohibido".

Entonces: ¿debo suponer que como leí el artículo original y lo puse en práctica exitosamente, ya me pertenece la información contenida en él?

¿Debo pensar yo mismo un artículo "desde cero", inmediatamente después de haber leído el original escrito por el Sr. Vaughan, siendo intelectualmente honesto conmigo mismo, pero deshonesto con dicho autor?

¿Debo ocultar la fuente del conocimiento específico que me permitió "salir de un gran atolladero"?

Publicaré y modificaré de todos modos el artículo, pero lo haré pidiendo permiso expreso. En cuanto me sea concedido, lo aclararé aquí, y si no es así, construiré mi propio artículo, pero quien lea todo lo descrito anteriormente, sabrá, de todos modos, de dónde viene la información original.

¡Vayamos al asunto!



ACTUALIZACIÓN del jueves 9 de abril de 2015: Eric Vaughan ha concedido la autorización por escrito para la republicación de su artículo en este blog, con permiso de modificación.

Se agradece invalorablemente su buena predisposición.

Moraleja: siempre pide permiso o avisa antes de comentar, copiar y modificar algo ajeno; hay grandes probabilidades de que te sea concedido, y por si fuera poco, con honores.

Hugo Napoli





Notas iniciales:

– Para cómo configurar el doble arranque en una BIOS estándar (legacy) visita este enlace: Dual-Boot openSUSE 12.3 And Windows (el artículo no es compatible con el sistema de archivos BTRFS y además está en Inglés).

Enlaces de interés (todos en Inglés):

1 - Instala Windows 8 (o mejor aún, Windows 8.1), con las opciones que el Sistema ofrece por defecto. No es necesario particionar de manera precisa el disco duro o SSD, ni hacer nada fuera de lo común, en este paso. Es posible que Windows 8 cree 2, 3 o más particiones primarias para sí mismo. Si es así, eso está bien. Y si no, también.
2 – Haz espacio (o deja espacio sin particionar) en tu disco duro o unidad SSD para OpenSuse.
3 – Crea un USB de arranque tipo UEFI, sirviéndote de la herramienta Rufus, Imagewriter (búscalo en este debate), Suse Studio Imagewriter (descárgalo directamente desde este enlace) o Win32 Disk Imager. También puedes grabar una imagen de OpenSuse en un DVD.
Así se ve el esquema de particiones personal en una de las máquinas en donde acabo de instalar OpenSuse junto a Windows: las particiones que van desde /dev/sda1 hasta /dev/sda7 (inclusive), pertenecen a una instalación preexistente de Windows 8.1, con particiones adicionales creadas "de fábrica" por Toshiba, con funcionalidades de recuperación y reinstalación automatizada del sistema.

dev/sda2, cuyo sistema de archivos es fat32, será utilizada para el arranque de los dos Sistemas, es decir, será compartida entre ambos.

Las particiones restantes, fueron creadas especialmente para OpenSuse, por mí mismo.
La foto fue tomada a Gparted, un particionador por excelencia.




Instalación:


Inicia OpenSuse, y avanza en la instalación hasta llegar a la sección de particionado.
Cuando llegues a dicho punto, presiona el botón "Crear configuración de particiones...".




Luego, elige "Particionado personalizado (para expertos)" y haz clic en "Siguiente":





Ahora haz clic derecho sobre la unidad SSD o disco duro, y elige la opción "Añadir partición", siguiendo tu propio sistema de particionado (se ha dejado la captura de pantalla original en Inglés, para que quede más claro cómo se hace esto).

Si no posees un sistema propio, puedes seguir alguno de los dos que propongo aquí; uno es el tradicional, y el que le sigue es el que he utilizo desde hace bastante tiempo.

Particionado "tradicional":
- partición "swap" [sistema swap] (se sugiere que sea de 2 GB),
- partición "root" [sistema ext4 o btrfs] (sugerido: 20 GB),
- partición "home" [sistema ext4 o XFS] (recomendado a partir de los 20 GB).
Particionado personal:

[todos los sistemas son ext4]
- partición "boot" (512 MB) [no será utilizada en esta ocasión],
- partición "root" (40 GB),
- partición "tmp" (8 a 10 GB),
- partición "swap" (2 GB),
- partición "home" (todo el espacio restante disponible).
¿Por qué no adhiero a las recomendaciones de OpenSuse y sigo utilizando el tradicional sistema de archivos "ext"?
Tal vez mi temor sea infundado en este momento, pero trabajo con clonaciones de discos muy a menudo (tratando de hacerlo únicamente con la maravillosa herramienta gratuita Clonezilla por ser software libre y por varias de sus características), y temo que el mismo no interprete correctamente los datos contenidos en sistemas de archivos btrfs y/o xfs: prefiero ir sobre ruta conocida, en este caso. Además, ext4 sigue siendo una excelente opción.




Esta es una de las imágenes que aparecen en el artículo original.
Debajo, figura una en Español.


La leyenda en rojo, dice:
Haz clic-derecho en UNIDAD (o disco) y elige "Añadir partición".



Con el autor del post original, coincidimos: utilizamos ext4 como sistema de archivos, (esto  ha sido explicado antes).

Luego de haber creado las particiones que estimemos necesarias, haremos clic derecho sobre cada una de ellas (las de Linux), y las editaremos. Esto también puede hacerse mientras creamos cada partición.



Entonces, pulsaremos el botón "Opciones de fstab...·, y configuraremos las siguientes opciones: Sin hora de acceso (noatime) [2], Opción de valor arbitrario: discard [3]. El Sr. Vaughan, recomienda que esto último (la opción "discard", que equivale a "trim"), sea realizado únicamente ante la presencia de unidades SSD, y no con discos duros "normales".






El paso que sigue es crítico: tanto, que tu Sistema no iniciará si no lo realizas.

Haz clic derecho en la partición "EFI boot" creada durante la instalación de Windows 8, y escoge "Editar".
El procedimiento para editar la partición EFI, es el mismo que hemos seguido para editar el resto de las particiones: ciic derecho, editar...




Elige "Montar la partición"
Elige /boot/efi
Haz clic en "Finalizar".


Haz clic en "Siguiente".





Ni el Sr. Vaughan ni yo utilizamos "Arranque seguro" [4]. El mismo puede desactivarse haciendo clic en "Arranque".:


Hay que desmarcar la casilla "Active soporte de arranque seguro".



Y aquí tenemos a la tan ansiada pantalla de arranque (grub2):




Todo funcionará muy bien hasta que inicies Windows. ¿Esto te recuerda algo?

Windows tratará de configurar su cargador de arranque otra vez, sobreescribiendo la configuración asignada manualmente por nosotros, lo cual significa que OpenSuse no es una opción válida para Microsoft, por más que hayan dicho alguna vez la polémica frase "Microsoft loves Linux!".

Iniciaremos en Windows, y abriremos una consola de comandos con derechos de usuario administrador (Command prompt) y escribiremos lo siguiente (fuente):

bcdedit /set {bootmgr} path \EFI\opensuse\shim.efi



¡Listo!

NOTA IMPORTANTE RESPECTO AL CARGADOR DE ARRRANQUE DE WINDOWS: es una buena idea tener a mano un programa con el cual manipular de forma segura el cargador de arranque de Windows, ya que este no es como grub o grub2 que poseen un gestor gráfico para sus configuraciones.
Cuando de un día para otro Windows decida que ya es tiempo de romper el arranque de Linux, lo hará sin preguntar ni dar parte (¿te recuerda a algo?), y ese será el día en que EasyBCD te salve de pasar por numerosos problemas de reconfiguración de los "bootloaders" o cargadores de arranque de ambos sistemas.
Dicho programa es gratuito para uso personal, y se llama EasyBCD, de la empresa NeoSmart, y el enlace hacia el mismo, es el siguiente: http://neosmart.net/EasyBCD/#comparison






   Enlace al artículo original:   







CITAS A PIE DE PÁGINA 
(de la autoría expresa de Hugo Napoli):

Sobre las tecnologías BIOS/EFI/UEFI

[1] UEFI - Es la sigla correspondiente a "Unified Extensible Firmware Interface" (en Español "Interfaz de Firmware Extensible y Unificada"). Esta tecnología ha sido diseñada y está siendo actualizada por varias compañías -desde que Intel comenzó con el proyecto "EFI" a mediados de los años '90-, cuyo cometido es sustituír por completo a la BIOS ("Basic Input and Output System", en Español "sistema básico de entrada y salida), y poder obtener con esto algunas ventajas importantes en cuanto al desempeño y el rendimiento del ordenador.

¿Cuáles son algunas de esas ventajas?

De acuerdo a lo investigado, los puntos más importantes son los siguientes.

Capacidad de almacenamiento:

- UEFI puede trabajar con dispositivos de almacenamiento de hasta 8 ZB (¡8 billones de TeraBytes!).
- BIOS está limitado a 2 TB.

- UEFI acepta hasta 128 particiones en cada unidad de almacenamiento, gracias a que brinda soporte para esquemas de particionado GPT, sin necesidad de distinguir entre las que son de naturaleza "primaria" o "extendida" (al parecer, este límite de 128 particiones está limitado a lo que los Sistemas Operativos pueden manejar con normalidad, puesto que el límite de hardware sería inexistente o bastante mayor al de los Sistemas Operativos).
- BIOS, soporta hasta 4 particiones primarias, o 3 primarias y una sola "extendida" (aunque en la extendida se puede crear una gran cantidad de particiones -entre 60 y 127, dependiendo del programa que se use para particionar y del Sistema Operativo que administre las particiones-). Esto se debe a que, en lugar de un sistema de particionado GPT, BIOS trabaja con el MBR ("Master Boot Record", en Español "registro maestro de arranque"), que es incapaz de brindar las prestaciones que brinda UEFI.
Tipo de acceso al sistema:

- UEFI es capaz de presentar un entorno gráfico con efectos vistosos, y permitir el uso del ratón (tal cual lo hace un Sistema Operativo moderno).
- BIOS no posee entorno gráfico con las características de UEFI, siendo la mayoría de las veces de "solo texto".

Arranque selectivo:

- UEFI puede arrancar cualquier Sistema Operativo existente en un medio de almacenamiento, en cualquier momento.
- BIOS solamente puede hacer esto mediante configuraciones específicas hechas a mano para cada situación, y siempre y cuando los Sistemas Operativos existentes estén instalados en diferentes discos duros, con la limitante de que en ordenadores de tecnología IDE solo puede haber 4 discos duros -quitando la unidad óptica- y entre 6 y 8 discos SATA (ídem). 

¿Mayor seguridad?

[4] Algo que es factor de gran controversia, pero que sigue siendo una característica (negativa para muchos):

- UEFI puede generar mayor seguridad debido a su característica "Secure Boot" (en Español, "arranque seguro"), puesto que reconoce algunos cargadores de arranque (como los de Windows) y no permitiendo que los no reconocidos puedan arrancar ningún Sistema. Esto ha sido un gran problema para los más que seguros Sistemas GNU-Linux... Y esto... ¿te hace recordar algo más?
Hoy en día, hay sistemas UEFI que permiten registrar cargadores de arranque manualmente, lo cual resulta una gran ventaja al poder "hacerle entender a UEFI" que no solamente existe Windows en el mundo.
- BIOS solamente posee una característica apenas similar a esta, y muy reducida en su funcionalidad.

Sobre los atributos de las particiones

[2] noatime (no access time): los Sistemas GNU-Linux, por defecto, llevan un historial con las horas de acceso a los archivos. Cada vez que se accede a un archivo, estos sistemas operativos generan un registro con información sobre cada uno de ellos, llegando así a ralentizarse un poco el Sistema (más allá de que comparando Sistemas GNU-Linux con otros, su desempeño es excelente), y a consumirse espacio de disco cada vez mayor, conforme aumenta la cantidad de acceso a los archivos.
Con la característica "noatime", todo esto se elimina, pero cuidado; para un Sistema que actúe como servidor de datos o correo electrónico, esto no es nada recomendable: es preferible consumirle un poco de recursos al Sistema debido a esta tarea de recopilación de datos, que optimizarlo y perder información valiosa que terminaremos lamentando luego.


[3] Sobre el valor "discard" (o trim), tomado de la web "Patrick's WebLog", del autor Patrick Nagel, traducido al Español y modificado por Hugo Napoli:

(...) Las unidades SSD son más rápidas al escribir, pero sólo cuando su espacio libre se recorta con esmero. El único componente de la pila de software que sabe qué partes de la información contenida deben ser recortadas de la unidad SSD, es el sistema de archivos. Es por eso que existe una opción llamada "discard" (descartar). Cuando esta opción está activa, el espacio que se libera en el sistema de archivos se informa de inmediato al Sistema Operativo, y luego el SSD hace el recorte, también de inmediato. Esto hará que la siguiente escritura a esa parte del SSD se realice tan rápido como sea posible.


IMPORTANTE: estas opciones no tienen por qué haber sido asignadas durante la instalación del sistema.
Cuando quieras, ve al particionador nativo de OpenSuse en modo experto (Parted o Particionador) y dentro del mismo, selecciona la partición que quieras modificar, haz clic derecho/Editar, pulsa "Opciones de fstab..." y ya puedes seleccionar la opción "Sin hora de acceso", y escribir el comando discard en la sección "Valor de opción arbitrario". La partición debe estar desmontada para que puedas editarla.





Artículos consultados:

PARA EFI/UEFI/BIOS:

Sitio web oficial de UEFI (preguntas más frecuentes):
http://www.uefi.org/faq

Excelente artículo de Darien Graham-Smith para PC Pro "UEFI BIOS explained":
http://www.pcpro.co.uk/features/381565/uefi-bios-explained

Sobre EFI (Wikipedia):
http://es.wikipedia.org/wiki/Extensible_Firmware_Interface

Debate en foro "LinuxQuestions" en cuanto al mayor número de particiones lógicas:
http://www.linuxquestions.org/questions/linux-newbie-8/max-number-of-logical-partition-754458/

Otro debate similar al de LinuxQuestions, pero en "Superuser.com":
http://superuser.com/questions/368173/what-is-the-maximum-number-of-partitions-that-can-be-made-on-a-hard-drive

PARA ATRIBUTOS DE PARTICIONES:

noatime

http://tldp.org/LDP/solrhe/Securing-Optimizing-Linux-RH-Edition-v1.3/chap6sec73.html

http://linux.koolsolutions.com/2009/01/30/installing-linux-on-usb-part-4-noatime-and-relatime-mount-options/

https://beginlinux.com/server/centos/saving-system-resources-with-no-atime

discard (trim)

https://patrick-nagel.net/blog/archives/337

Imágenes:

Me pertenecen casi en su totalidad, salvo para el caso expreso en donde se indica lo contrario y se cita al autor.