¿Qué debo hacer antes del arranque dual de Windows 7 y Debian en EFI?

10

Estoy a punto de comprar una placa base Asus con firmware EFI y quería prepararme para instalar Windows y Debian una vez que llegue el hardware. Tenía la esperanza de que alguien que haya recorrido este camino pueda darme algunos consejos.

¿Qué preparativos debo hacer antes de intentar instalar Windows 7 y Debian en un nuevo sistema basado en UEFI?

Sr. Shickadance
fuente

Respuestas:

8

EDITAR: cuando escribí esta respuesta, muy pocas distribuciones se enviaron con un kernel configurado EFI_STUB, por lo que uno tuvo que construir uno personalizado. Hoy en día, la mayoría de las distribuciones envían un kernel configurado adecuadamente y ya no se requiere una compilación personalizada. En este caso, las secciones “Configurar sus particiones” y “Configurar cosas” son interesantes, se pueden omitir “Requisitos” y “Compilar el núcleo”.

No sé cómo Windows maneja UEFI, pero desde el lado de Debian es bastante sencillo.

Configura tus particiones

Use el esquema de partición GPT, no MBR.

Para arrancar desde una partición GPT con UEFI se requiere una partición de arranque dedicada, llamada EFI SYSTEM PARTITION (ESP). No es obligatorio, pero la forma más compatible es usar una partición FAT32. Un tamaño de 200 MiB debería estar bien para la mayoría de los casos.

Para registrar la partición como ESP, debe marcarse con la bootbandera. A diferencia de los esquemas MBR, el indicador de inicio solo se usa para indicar el ESP, no las particiones desde las que se puede iniciar.

UEFI utiliza una estructura de directorio \EFI\<vendor>\<application>.efipara almacenar aplicaciones UEFI. Un separador de directorio se denota con una barra diagonal inversa , incluso en Linux. podría ser un nombre de distribución, el valor real no es relevante para la UEFI.

Las aplicaciones pueden ser utilidades del sistema, como verificadores de memoria o un shell UEFI. También puede ser un cargador de sistema operativo o el propio sistema operativo. Estas aplicaciones deben registrarse en la UEFI para poder iniciarse en el momento del arranque.

Requisitos

La versión del kernel de Linux> = 3.3 puede ser cargada directamente por el UEFI. El kernel puede actuar como su propio cargador. Esto se llama EFISTUB . Se necesitan las siguientes configuraciones de kernel.

CONFIG_EFI = y
CONFIG_EFI_PARTITION = y
CONFIG_EFI_STUB = y
CONFIG_RELOCATABLE = y
CONFIG_FB_EFI = y
CONFIG_FRAMEBUFFER_CONSOLE = y
CONFIG_EFI_VARS = m

Un núcleo con esta configuración no está actualmente en Debian estable, todavía. Puede hornear su propio núcleo o usar el del árbol experimental en ese caso, puede omitir el siguiente párrafo.

Compilando el núcleo

(probablemente ya no sea necesario, ver editar)

Si decide compilar el núcleo, aquí encontrará instrucciones breves sobre cómo hacerlo. Si tiene problemas, hay mucha información disponible sobre cómo compilar un núcleo.

Obteniendo la fuente

git clone git: //git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git

Mira una versión en particular

git checkout v3.6

Configurando el núcleo

hacer menuconfig

Realice los ajustes necesarios en su sistema o déjelo como está si no tiene nada que personalizar. Esto escribe la configuración del kernel en el archivo .config.

Asegúrese de que la configuración del párrafo anterior esté establecida. También tiene sentido seleccionar CONFIG_INPUT_EVBUG=n. De lo contrario, sus registros se llenarán con GiB de basura.

Núcleo de construcción

INSTALL_MOD_STRIP = 1 make-kpkg --uc --us binary-arch

Los paquetes se crean en el directorio principal.

Instalando kernel

dpkg -i linux-image-3.5.0_Custom.deb linux-headers-3.5.0_Custom.deb

Construyendo initramfs

mkinitramfs -o /boot/initrd.img-3.6.0-amd64 3.6.0

3.6.0 es la versión del kernel. El valor predeterminado es el kernel en ejecución, que no es una buena opción, ya que todavía está ejecutando el kernel anterior.

Preparando las cosas

Para poder arrancar el kernel de Linux, debe copiarse al ESP junto con initramfs. Dado que el ESP está montado en/boot/efi

/boot/efi/EFI/debian/vmlinuz-3.6.0.efi
/boot/efi/EFI/debian/initrd.img-3.6.0

NOTA: Para garantizar la compatibilidad con la mayoría de los sistemas, la extensión efidebe agregarse al núcleo.

Ahora el núcleo se puede registrar en la UEFI. Usamos la herramienta efibootmgrpara eso.

echo "root = UUID = 3a4287b6-b3a7-4721-da38-acc38a928278 ro rootfstype = ext4 add_efi_memmap initrd = \\ EFI \\ debian \\ initrd.img-3.6.0" |
  iconv -f ascii -t ucs2 |
  efibootmgr \
    --crear \
    --gpt \
    --disk / dev / sda \
    --parte 4 \
    - etiqueta "Debian Linux kernel 3.6.0" \
    --loader "\\ EFI \\ debian \\ vmlinuz-3.6.0" \
    --escribir-firma \
    --append-binary-args -

El argumento de --diskes el dispositivo donde reside el núcleo, no el ESP. --partes el número de partición donde reside el núcleo. --labeles la entrada en el menú de arranque UEFI.

Para ver una lista de las entradas disponibles, simplemente inicie efibootmgrsin argumentos. Sintaxis para eliminar una entrada particular

efibootmgr -b entrada (hexadecimal) -B

por ejemplo:

efibootmgr -b 001a -B

Estas instrucciones no manejan el caso de una actualización del kernel. El kernel y initramfs no se copian automáticamente al ESP. Esto se puede hacer usando un script corto que copia el kernel y initramfs al ESP y se ejecuta efibootmgr. Este script se puede colocar /etc/kernel/postinst.dpara que se inicie automáticamente después de que se haya actualizado el núcleo.

Nota: No se necesita un administrador de arranque como GRUB, el propio UEFI actúa como administrador de arranque.

Eso es todo lo que necesita del lado de Linux, no sé qué se necesita para agregar Windows.

Marco
fuente
2

Asegúrese de que UEFI no bloqueará Linux de su máquina; Probablemente haya una configuración a tal efecto en el BIOS. Verifique y verifique con seguridad. Volvería a verificar este punto con el manual y con el fabricante si es necesario.

Hubo una larga discusión al respecto; ZDNet tenía varios artículos. Aquí hay un artículo del 21 de septiembre de 2011 y uno del 23 de septiembre .

En segundo lugar, según los datos históricos, es posible que desee instalar Windows primero. Tradicionalmente, Windows simplemente asume que es el único sistema operativo en la máquina, por lo que borra todos los datos de arranque relacionados con Linux. Esto puede ser diferente para UEFI, no lo sé.

Mei
fuente
2

No necesariamente necesita iniciar Windows y Linux en UEFI. Siga la guía para convertir su UEFI a MBR-BIOS sin pérdida de datos.

Esta guía ha sido hecha por mí. Además, el blog referido nunca será eliminado. Aunque lo he usado 10 veces sin pérdida de datos, le recomendaría que haga una copia de seguridad de sus datos antes de usar mi procedimiento.

Nehal J Wani
fuente