For some time Fedora releases have supported Durante algún tiempo versiones de Fedora han apoyado UEFI UEFI (more commonly known as EFI) booting on (más comúnmente conocido como EFI) en el arranque X86-64 X86-64 platforms. plataformas. Having some experience of using EFI on IA64 platforms over the years, I decided to test out EFI booting Fedora 12 on one of my systems which is an Intel DX48BT2 (Bonetrail 2) platform that comes with built-in support for EFI booting. Tener alguna experiencia de uso de EFI en plataformas IA64 largo de los años, decidí probar EFI arrancar Fedora 12 en uno de mis sistemas, que es un Intel DX48BT2 (Bonetrail 2) plataforma que viene con soporte integrado para el arranque EFI.
What do I mean by EFI booting an operating system such as Fedora 12? ¿Qué quiero decir con EFI de arrancar con un sistema operativo como Fedora 12? A platform that supports EFI booting does not rely upon a bootstrap program stored in boot record of a hard disk. Una plataforma que soporta el arranque EFI no se basa en un programa de arranque almacenado en el registro de arranque de un disco duro. A boot manager in the platform firmware knows how to read a disk's partition table and understands the layout of a FAT filesystem which is in a designated partition. Un gestor de arranque en el firmware de la plataforma sabe leer la tabla de particiones de un disco y comprende el diseño de un sistema de archivos FAT que se encuentra en una partición designada. The details of the boot manager are implementation defined, but the boot manager is required to be configurable using well-known EFI global variables. Los detalles del gestor de arranque son la aplicación definida, pero el gestor de arranque se requiere que se pueden configurar con el conocido variables EFI mundial. For example, the boot manager is required to inspect the BootOrder global variable for a list of boot options. Por ejemplo, el gestor de arranque está obligado a inspeccionar la variable BootOrder mundial para una lista de opciones de arranque. A boot option is one or more EFI global variables of the form BootXXXX. Una opción de arranque es una o más variables globales EFI de la BootXXXX forma. where XXXX is a 4 digit number starting with 0000, that contain the device and path name of a boot loader to load and run, and possibly a set of options to pass to that boot loader. donde XXXX es un número de 4 dígitos a partir de 0000, que contiene el dispositivo y la ruta de un gestor de arranque para cargar y ejecutar, y, posiblemente, un conjunto de opciones para pasar al gestor de arranque. If there is no BootOrder global variable the boot manager is required to check for a default boot loader in a number of specified default locations. Si no hay ninguna variable global BootOrder el gestor de arranque es necesario para comprobar si hay un gestor de arranque por defecto en una serie de ubicaciones predeterminado. The actual name of the default boot loader is architecture dependant, eg for x86-64 it is \EFI\BOOT\BOOTX64.EFI . El nombre real del gestor de arranque por defecto es la arquitectura de su cargo, por ejemplo, para la arquitectura x86-64 es \ EFI \ BOOT \ BOOTX64.EFI.
To enable EFI booting on the DX48BT2 you must change some BIOS settings. Para habilitar el arranque EFI en el DX48BT2 debe cambiar algunas opciones del BIOS. The primary SATA controller must be configured to use IDE mode, ie the El controlador SATA primario debe estar configurado para utilizar el modo de IDE, es decir, el AHCI AHCI (Advanced Host Controller Interface) mode must be disabled. (Advanced Host Controller Interface) de modo debe estar desactivado. Apparently in AHCI mode the SATA controller firmware is part of the CSM (Compatibility Support Module) and does not support an EFI driver. Al parecer, en el modo AHCI el firmware del controlador SATA es parte de la CSM (Compatibilidad de Apoyo Module) y no es compatible con un controlador de EFI. Even on Intel's latest server boards such as the S5500BC, you still have to use IDE mode if you want EFI booting! Incluso en placas de servidor más recientes de Intel, como el S5500BC, usted todavía tiene que usar el modo IDE, si desea arrancar EFI! If you are using the second SATA controller which controls the Matrix software RAID, you must also disable it as SW RAID is not supported in EFI boot mode. Si está utilizando el controlador SATA de segunda, que controla el software de Matrix RAID, también debe deshabilitar como SW RAID no es compatible en el modo de arranque EFI. Finally you must enable the UEFI option in the Boot option menu. Por último, debe habilitar la opción de UEFI en el menú de opciones de arranque. I also recommend that you select the advanced boot option although it is not mandatory. También se recomienda que seleccione la opción de arranque avanzadas, aunque no es obligatorio.
I am somewhat familiar with EFI booting a Windows Vista SP2 x86-64 DVD and was surprised to find that I was unable to EFI boot a Fedora 12 x86-64 DVD because, while it contains a /EFI/BOOT/BOOTX64.CONF file, it does not contain a corresponding EFI bootloader, ie /EFI/BOOT/BOOTX64.EFI . Estoy algo familiarizado con EFI arrancar un Windows Vista SP2 x86-64 DVD y se sorprendió al descubrir que yo era incapaz de arranque EFI, un sombrero de 12 x86-64 DVD porque, si bien contiene un archivo / EFI/BOOT/BOOTX64.CONF, que no contiene un gestor de arranque EFI correspondiente, es decir, / EFI/BOOT/BOOTX64.EFI. More about these two files later. Más información acerca de estos dos archivos más tarde.
Next, I turned to figuring out the difference between efidisk.img and efiboot.img as what these images actually contain and where they are/should be used for seems to be undocumented (or at least I could not easily find the documentation.) I burned the images onto two separate DVDs and mounted them to have a look at the contents. A continuación, se volvió a calcular la diferencia entre efidisk.img y efiboot.img como lo que estas imágenes contienen realmente y dónde están / deberían ser utilizados para indocumentados parece ser (o al menos yo no podía encontrar fácilmente la documentación.) I quemaron las imágenes en dos DVD por separado y montado a echar un vistazo a los contenidos. I could just as easily have mounted the images using a command such as the following and cd'ed into the mount mount to look at the contents. Yo podría fácilmente haber montado las imágenes usando un comando como el siguiente y cd'ed en el montaje de montaje para ver el contenido.
mount -o loop -efiboot.img /mnt
Here is a listing of the efiboot image. Aquí está una lista de la imagen efiboot.
efi: total 20 drwxr-xr-x. 3 root root 2048 2009-11-08 19:06 . drwxr-xr-x. 3 root root 16384 1969-12-31 19:00 .. drwxr-xr-x. 2 root root 2048 2009-11-08 19:06 boot efi/boot: total 246 drwxr-xr-x. 2 root root 2048 2009-11-08 19:06 . drwxr-xr-x. 3 root root 2048 2009-11-08 19:06 .. -rwxr-xr-x. 1 root root 168 2009-11-08 19:06 BOOTX64.conf -rwxr-xr-x. 1 root root 225633 2009-11-08 19:06 bootx64.efi -rwxr-xr-x. 1 root root 17488 2009-11-08 19:06 splash.xpm.gz
The file bootx64.efi is actually GRUB v0.97 and BOOTX64.conf is GRUB's configuration file. El bootx64.efi archivo es en realidad GRUB v0.97 y BOOTX64.conf es el archivo de configuración de GRUB. It contains a single GRUB stanza, ie Contiene una estrofa de GRUB único, es decir,
#debug --graphics default=0 splashimage=/EFI/BOOT/splash.xpm.gz timeout 5 hiddenmenu title Fedora 12 kernel /images/pxeboot/vmlinuz initrd /images/pxeboot/initrd.img
Since no kernel or initrd images are included in the efiboot.img I am unsure of what you can achieve by EFI booting a USB drive or DVD containing this image. Puesto que ningún núcleo o imágenes initrd se incluyen en el efiboot.img no estoy seguro de lo que puede lograr por EFI arranque de un disco USB o DVD que contiene esta imagen.
I had better luck with efidisk.img . Tuve más suerte con efidisk.img. Here is a listing of its contents: Aquí está una lista de su contenido:
EFI/BOOT: total 23 drwxr-xr-x. 2 fpm fpm 2048 2009-11-08 19:06 . dr-xr-xr-x. 3 fpm fpm 2048 2009-11-08 19:07 .. -r--r--r--. 1 fpm fpm 168 2009-11-08 19:06 BOOTX64.conf -rw-r--r--. 1 fpm fpm 17488 2009-10-01 12:08 splash.xpm.gz -r--r--r--. 1 fpm fpm 449 2009-11-08 19:07 TRANS.TBL images: total 146866 drwxr-sr-x. 3 fpm fpm 2048 2009-11-08 19:07 . dr-xr-xr-x. 5 fpm fpm 2048 2009-11-08 19:07 .. -rw-r--r--. 1 fpm fpm 397312 2009-11-08 19:06 efiboot.img -rw-r--r--. 1 fpm fpm 27441152 2009-11-08 19:06 efidisk.img -rw-r--r--. 1 fpm fpm 122544128 2009-11-08 19:07 install.img drwxr-sr-x. 2 fpm fpm 2048 2009-11-08 19:06 pxeboot -rw-r--r--. 1 fpm fpm 400 2009-11-08 19:04 README -r--r--r--. 1 fpm fpm 1106 2009-11-08 19:07 TRANS.TBL images/pxeboot: total 26339 drwxr-sr-x. 2 fpm fpm 2048 2009-11-08 19:06 . drwxr-sr-x. 3 fpm fpm 2048 2009-11-08 19:07 .. -rw-r--r--. 2 fpm fpm 23540852 2009-11-08 19:06 initrd.img -rw-r--r--. 1 fpm fpm 265 2009-11-08 19:06 README -r--r--r--. 1 fpm fpm 659 2009-11-08 19:07 TRANS.TBL -rwxr-xr-x. 2 fpm fpm 3423296 2009-11-08 19:06 vmlinuz isolinux: total 27041 drwxr-sr-x. 2 fpm fpm 2048 2009-11-08 19:06 . dr-xr-xr-x. 5 fpm fpm 2048 2009-11-08 19:07 .. -r--r--r--. 1 fpm fpm 2048 2009-11-08 19:07 boot.cat -rw-r--r--. 1 fpm fpm 84 2009-11-08 19:06 boot.msg -r--r--r--. 1 fpm fpm 142 2009-11-08 19:06 grub.conf -rw-r--r--. 2 fpm fpm 23540852 2009-11-08 19:06 initrd.img -r--r--r--. 1 fpm fpm 14336 2009-11-08 19:06 isolinux.bin -r--r--r--. 1 fpm fpm 1010 2009-11-08 19:06 isolinux.cfg -r--r--r--. 1 fpm fpm 160280 2009-11-08 19:06 memtest -r--r--r--. 1 fpm fpm 390373 2009-11-08 19:06 splash.jpg -r--r--r--. 1 fpm fpm 2215 2009-11-08 19:07 TRANS.TBL -r--r--r--. 1 fpm fpm 147728 2009-11-08 19:06 vesamenu.c32 -rwxr-xr-x. 2 fpm fpm 3423296 2009-11-08 19:06 vmlinuz
The contents of /EFI/BOOT/BOOTX64.conf are the same as in efiboot.img but this time the initrd and kernel images actually existed in the specified directory in the image. El contenido de / EFI/BOOT/BOOTX64.conf son los mismos que en efiboot.img pero esta vez el initrd imágenes del núcleo y de hecho existe en el directorio especificado en la imagen. However there is no sign of the actual EFI bootloader, ie BOOTX64.EFI . Sin embargo no hay ninguna señal de el gestor de arranque EFI real, es decir, BOOTX64.EFI. OK, I thought, there must be something I do not understand about how to EFI boot Fedora 12. Bueno, pensé, debe haber algo que no entiendo acerca de cómo EFI de arranque de Fedora 12.
After configuring the BIOS to enable EFI booting as discussed above, I rebooted the DX48BT2 with the UEFI version ( efidisk.iso ) of Fedora 12 in the DVD drive. Después de configurar la BIOS para que arranque de EFI como se indicó anteriormente, me reinicia el DX48BT2 con la versión UEFI (efidisk.iso) de Fedora 12 en la unidad de DVD. Unfortunately the system reported that no bootable devices were found. Lamentablemente, el sistema ha informado de que no se encontraron dispositivos de arranque. Fedora 12 did not even try and install as would have occurred with a legacy boot mode install. Fedora 12 ni siquiera tratar de instalar, ya que se habría producido con un modo de arranque legado de instalar. To see what was happening, I used Para ver lo que estaba ocurriendo, he usado DUET DUET on a USB key to boot into an EFI Shell and checked the DVD filesystem layout. en una llave USB para arrancar un shell EFI y controlar el diseño de sistema de archivos de DVD. It was, as I expected, correct per the EFI and UEFI specifications but there was no BOOTX64.EFI on the DVD. Era, como yo esperaba, corregir por el EFI y especificaciones UEFI pero no había BOOTX64.EFI en el DVD.
I also inspected a dump of the BIOS on the DX48BT2 to see if there were any text strings in the BIOS which might give me a clue as to what the problem might be. También inspeccionaron un volcado de la BIOS en el DX48BT2 para ver si había alguna cadenas de texto en el BIOS que podría darme una pista sobre lo que puede ser el problema. There were no relevant text strings. No había cadenas de texto correspondientes. However I confirmed that the BIOS, or at least the parts I inspected, is EFI-based as you can see looking at this dump of the first few bytes of the binary. Sin embargo, me confirmó que la BIOS, o al menos las partes que inspeccionan, es EFI basado en como se puede ver mirando a esta volcado de los primeros bytes del archivo binario. The first 16 bytes are the EFI capsule GUID, ie 3B6686BD-0D76-4030-B70E-B5519E2FC5A0. Los primeros 16 bytes son la cápsula EFI GUID, es decir, 3B6686BD-0D76-4030-B70E-B5519E2FC5A0. The character strings are either UTF-16 or UCS-2, ie 16 bit character encoding schemes defined in the Unicode specification. Las cadenas de caracteres son o UTF-16 o UCS-2, es decir, 16 esquemas de codificación de caracteres de bits definidas en la especificación Unicode.
0000000: bd86 663b 760d 3040 b70e b551 9e2f c5a0 ..f;v.0@...Q./.. 0000010: 5000 0000 0000 0000 14a0 2600 0000 0000 P.........&..... 0000020: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0000030: 0000 0000 1402 0000 5000 0000 6600 0000 ........P...f... 0000040: ca00 0000 1601 0000 8201 0000 0000 0000 ................ 0000050: 2832 0863 2981 1244 1215 9514 5034 4036 (2.c)..D....P4@6 0000060: 1600 0000 0102 6500 6e00 6700 2000 4900 ......e.n.g. .I. 0000070: 6e00 7400 6500 6c00 2000 4400 6500 7300 n.t.e.l. .D.e.s. 0000080: 6b00 7400 6f00 7000 2000 4200 6f00 6100 k.t.o.p. .B.o.a. 0000090: 7200 6400 2000 4500 4600 4900 2000 4600 r.d. .E.F.I. .F. 00000a0: 6900 7200 6d00 7700 6100 7200 6500 2000 i.r.m.w.a.r.e. . 00000b0: 4500 6e00 6700 6900 6e00 6500 6500 7200 E.n.g.i.n.e.e.r. 00000c0: 6900 6e00 6700 0000 0000 6500 6e00 6700 i.n.g.....e.n.g. 00000d0: 2000 4200 5400 5800 3300 3800 3100 3000 .B.T.X.3.8.1.0. 00000e0: 4a00 2e00 3800 3600 4100 2e00 3200 3000 J...8.6.A...2.0. 00000f0: 3000 3600 2e00 3200 3000 3000 3900 2e00 0.6...2.0.0.9... 0000100: 3100 3000 3200 3300 2e00 3100 3000 3500 1.0.2.3...1.0.5. 0000110: 3700 0000 0000 6500 6e00 6700 2000 4600 7.....e.n.g. .F. 0000120: 6900 7200 6d00 7700 6100 7200 6500 2000 i.r.m.w.a.r.e. . 0000130: 7500 7000 6400 6100 7400 6500 2000 4200 u.p.d.a.t.e. .B. 0000140: 5400 5800 3300 3800 3100 3000 4a00 2e00 T.X.3.8.1.0.J... 0000150: 3800 3600 4100 2e00 3200 3000 3000 3600 8.6.A...2.0.0.6. 0000160: 2e00 3200 3000 3000 3900 2e00 3100 3000 ..2.0.0.9...1.0. 0000170: 3200 3300 2e00 3100 3000 3500 3700 0000 2.3...1.0.5.7... 0000180: 0000 6500 6e00 6700 2000 4500 4600 4900 ..e.n.g. .E.F.I. 0000190: 2000 6300 6100 7000 7300 7500 6c00 6500 .c.a.p.s.u.l.e. 00001a0: 2000 6300 6f00 6e00 7400 6100 6900 6e00 .c.o.n.t.a.i.n. 00001b0: 6900 6e00 6700 2000 6d00 6f00 7400 6800 i.n.g. .m.o.t.h. 00001c0: 6500 7200 6200 6f00 6100 7200 6400 2000 e.r.b.o.a.r.d. . 00001d0: 6600 6900 7200 6d00 7700 6100 7200 6500 f.i.r.m.w.a.r.e. 00001e0: 2000 7500 7000 6400 6100 7400 6500 2000 .u.p.d.a.t.e. . 00001f0: 6600 6f00 7200 2000 4200 5400 5800 3300 f.o.r. .B.T.X.3. 0000200: 3800 3100 3000 4a00 2e00 3800 3600 4100 8.1.0.J...8.6.A. 0000210: 0000 0000 0000 0000 0000 0000 0000 0000 ................
I then decided to try booting the DVD from the F10 boot options menu just as I would with a legacy boot install. Entonces me decidí a intentar arrancar el DVD desde el menú de opciones de arranque F10 como lo haría con un legado de inicio de instalación. This started the Fedora 12 install. Esto comenzó la instalación de Fedora 12. From there everything proceeded from a user's perspective as with a legacy boot install except that most of the software packages were downloaded from the Internet rather than from the DVD. A partir de ahí todo lo que procedía desde la perspectiva de un usuario como un legado de inicio de instalación, salvo que la mayoría de los paquetes de software se han descargado de Internet en lugar de desde el DVD. Here is how Anaconda set up my hard disk: Aquí es cómo Anaconda poner mi disco duro:
dev/mapper/vg_ultra-lv_root / ext4 defaults 1 1 UUID=4d93d152-2877-4447-92e8-18d668daba01 /boot ext4 defaults 1 2 UUID=B75E-CB6E /boot/efi vfat umask=0077,shortname=winnt 0 0 /dev/mapper/vg_ultra-lv_swap swap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0
The only difference between a legacy boot and an EFI boot install is that Fedora 12 partitions the disk using La única diferencia entre una bota y un legado de arranque de EFI es que instalar Fedora 12 particiones del disco utilizando GPT GPT (GUID Partition Table) rather than MBR and the first partition, ie the partition with a UUID of B75E-CB6E (EFI partition), was formatted as a FAT32 filesystem approximately 200mb in size. (Tabla de partición GUID) en lugar de MBR y la primera partición, es decir, la partición con un UUID de B75E-CB6E (partición EFI), es un formato de sistema de archivos FAT32 de aproximadamente 200 MB de tamaño. All the EFI-related code is on this partition because only type of filesystem that EFI understands is the FAT filesystem. Todo el código relacionado con EFI está en esta partición, porque el único tipo de sistema de archivos que EFI se entiende el sistema de archivos FAT. This is the filesystem that you are using when you are in the EFI shell. Este es el sistema de archivos que utiliza cuando está en el shell EFI. It is commonly known as the EFI system partition (ESP). Es comúnmente conocida como la partición del sistema EFI (ESP).
This suggests that Fedora might not be able to do an EFI boot install onto a hard disk with existing MBR partitions which you want to preserve. Esto sugiere que Fedora no podría ser capaz de hacer un arranque EFI instalar en un disco duro con las particiones de MBR existente, que desea preservar. There are ways of hacking GPT to embed an MBR in the GPT table in order to handle cases where an operating system is expecting to see an MBR but tools like parted cannot handle these hybrid partition schemes and will in many cases mangle the configuration. Hay formas de piratería informática GPT a integrar el MBR en la tabla GPT con el fin de manejar los casos en que un sistema operativo está a la espera de ver el MBR, pero herramientas como separado no pueden manejar estos sistemas híbridos partición y en muchos casos, la configuración de mangle. If you want to experiment with embedding an MBR within a GPT have a look at the gdisk utility. Si desea experimentar con la incrustación de un MBR en un GPT echar un vistazo a la utilidad GDisk. By the way, you do not need to have the EFI partition mounted to run Fedora 12. Por cierto, no es necesario tener la partición EFI montada para ejecutar Fedora 12. You could just mount it on an as needed basis if you need to access or change something relating to EFI or edit the bootloader configuration file. Se podía montar sobre una base, según sea necesario si usted necesita para acceder o cambiar algo en relación con EFI o editar el archivo de configuración del gestor de arranque.
The Fedora 12 installation creates the following directory structure in this partition. El 12 de instalación de Fedora crea la siguiente estructura de directorios en esta partición.
# pwd EFI/redhat ls -al total 236 drwx------. 2 root root 4096 2010-01-28 16:33 . drwx------. 3 root root 4096 2010-01-28 16:09 .. -rwx------. 1 root root 744 2010-01-28 16:33 grub.conf -rwx------. 1 root root 226825 2009-11-16 11:16 grub.efi
By the way grub.efi is maintained by Peter Jones of Red Hat and is an EFI version of GRUB v0.97 – not GRUB2. Por la forma en que se grub.efi gestionada por Peter Jones de Red Hat y es una versión de EFI de GRUB v0.97 - no GRUB2. The bootloader configuration file grub.conf contains El gestor de arranque grub.conf archivo de configuración contiene
default=0 timeout=0 splashimage=(hd0,1)/grub/splash.xpm.gz hiddenmenu title Fedora (2.6.31.12-174.2.3.fc12.x86_64) root (hd0,1) kernel /vmlinuz-2.6.31.12-174.2.3.fc12.x86_64 ro root=/dev/mapper/vg_ultra-lv_root LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet initrd /initramfs-2.6.31.12-174.2.3.fc12.x86_64.img
I tried EFI booting into Fedora 12 once the Fedora 12 installation completed. Traté de EFI en el arranque de Fedora 12 una vez que la instalación de Fedora 12 completados. It did not work at all so I decided to use No funciona en absoluto, así que decidí usar DUET DUET to manually load the Fedora 12 bootloader and see what was going on. para cargar manualmente los 12 gestor de arranque de Fedora y ver lo que estaba pasando. The EFI shell command map -r correctly mapped in the systems's hard disk drive as fs2: . El comando shell EFI mapa-r asignado correctamente en la unidad de los sistemas de disco duro como FS2:. I changed to this device (just like changing drive letters in DOS) and invoked \EFI\BOOT\REDHAT\GRUB.EFI . He cambiado a este dispositivo (como cambio de letras de unidad en DOS) e invocó \ EFI \ BOOT \ redhat \ GRUB.EFI. This started the Fedora 12 EFI bootloader and I was able to get into Fedora 12. Esto comenzó el gestor de arranque de Fedora 12 EFI y pude entrar en Fedora 12.
To provide a default bootloader for the platform, I added a BOOT subdirectory under /boot/efi/EFI and copied grub.efi and grub.conf to this directory renaming the files BOOTX64.EFI and BOOTX64.CONF respectively. Para proporcionar un gestor de arranque por defecto de la plataforma, he añadido un subdirectorio de arranque bajo / boot / efi / EFI y grub.efi copiado y grub.conf a este directorio cambio de nombre de los archivos BOOTX64.EFI y BOOTX64.CONF respectivamente. This time, when I rebooted, the system got as far as trying to EFI boot Fedora 12 but failed with a kernel panic early in the kernel initialization. Esta vez, Al reiniciar, el sistema llegó tan lejos como tratando de EFI de arranque de Fedora 12, pero no con un kernel panic temprano en la inicialización del núcleo.
Because EFI booting via DUET worked without any problems, I assumed the problem lay in the difference between the DX48BT2 implementation of EFI booting and DUET's implementation and spent many fruitless hours exploring the differences. Debido a que el arranque a través de EFI DUET trabajado sin problemas, supuse que el problema radica en la diferencia entre la aplicación DX48BT2 de arranque EFI y la aplicación DUET y pasó muchas horas de infructuosa exploración de las diferencias. For example, no EFI serial device is set up by the DX48BT2 whereas DUET creates one. Por ejemplo, no hay ningún dispositivo de serie EFI es creado por el DX48BT2 mientras que DUET crea uno. I also tried the usual suspects, ie the kernel command line options noapic , acpi=off , edd=off , but to no avail. También traté a los sospechosos habituales, es decir, el núcleo de las opciones de línea de comandos noapic, acpi = off, edd = off, pero sin éxito.
It took me quite a while to find this problem as the DX48BT2 is a very fast system and the kernel panic was early in the kernel initialization process. Me tomó bastante tiempo para encontrar este problema como el DX48BT2 es un sistema muy rápido y el pánico del kernel era temprano en el proceso de inicialización del núcleo. Some information was displayed on the screen but it was overwritten by the kernel panic details. Parte de la información se muestra en la pantalla pero se sobrescribe con los detalles de pánico del kernel. In fact, it looked like Dracut was the culprit from the screen ouput but this turned out not to be the case. De hecho, parecía que Dracut fue el culpable de la ouput pantalla, pero esto resultó no ser el caso. I finally narrowed down the problem by using the kernel command line option boot_delay=100 to slow down the screen output sufficiently for me to locate where in the initialization process the kernel panic was actually occurring. Finalmente reducido el problema utilizando el núcleo de comando boot_delay opción de la línea = 100 para frenar la salida de pantalla suficiente para mí, para localizar en qué parte del proceso de inicialización del kernel panic se producen efectivamente. It turned out that the kernel panic has something to do with the Local Resultó que el pánico del kernel tiene algo que ver con la Local APIC APIC (Advanced Programmable Interrupt Controller.) What worked for me in the end was the kernel command line option nolapic . (Advanced Programmable Interrupt Controller). Lo que funcionó para mí en la final fue el núcleo nolapic opción de línea de comandos. After adding this option to the kernel command line in /boot/efi/EFI/BOOT.CONF the DX48BT2 was able to EFI boot directly into Fedora 12. Después de añadir esta opción a la línea de comandos del kernel en / boot / efi / EFI / BOOT.CONF la DX48BT2 fue capaz de arranque EFI directamente en Fedora 12. Success at last! Éxito al fin!
To enable me to better explore EFI-booting on this system, I changed the boot process so that instead of booting directly into Fedora 12 via the GRUB boatloader, the system booted into an EFI shell. Que me permita explorar mejor arranque EFI en este sistema, he cambiado el proceso de arranque para que en lugar de arrancar directamente en Fedora 12 a través de la boatloader GRUB, el sistema arrancará con un shell EFI. I replaced /efi/boot/EFI/BOOTX64.xfi with a copy of the X68-64 version of Shell.efi , deleted /boot/efi/EFI/BOOT/BOOTX64.CONF and added a startup script STARTUP.NSH to do some basic shell configuration work for me. He reemplazado / efi/boot/EFI/BOOTX64.xfi con una copia de la versión de X68-64 de Shell.efi, borrado / boot/efi/EFI/BOOT/BOOTX64.CONF y añadió un startup.nsh de script de inicio para hacer algunas trabajos básicos de configuración de la shell para mí. Now when the DX48BT2 was rebooted, I ended up in an EFI shell in the root of the ESP. Ahora bien, cuando se reinició el DX48BT2, terminé en una cáscara de EFI en la raíz de la ESP. To boot into Fedora 12, I simply invoke grub.efi from the EFI shell. Para arrancar en Fedora 12, simplemente invocar grub.efi desde el shell EFI.
I set up the following directory structure in the ESP: He definido la siguiente estructura de directorios en el ESP:
# ls -R /boot/efi/EFI /boot/efi/EFI: apps BOOT grub.conf grub.efi boot.nsh /boot/efi/EFI/tools: Attrib.efi Devtree.efi edit.efi hexedit.efi Ls.efi Mv.efi sermode.efi Type.efi Cls.efi diskpart.efi efichk.efi IfConfig.efi mem.efi NShell.efi SmbiosView.efi Unload.efi comp.efi dmem.efi eficompress.efi IpConfig.efi memmap.efi Openinfo.efi stall.efi Ver.efi Cp.efi dmpstore.efi efidecompress.efi LegacyBoot.efi Mkdir.efi pci.efi TelnetMgmt.efi Vol.efi Date.efi Drivers.efi efifmt.efi Load.efi mm.efi Ping.efi Time.efi Dblk.efi Drvcfg.efi err.efi LoadFv.efi mode.efi Resets.efi timezone.efi Devices.efi Drvdiag.efi Guid.efi LoadPciRom.efi Mount.efi Rm.efi Touch.efi /boot/efi/EFI/BOOT: BOOTX64.EFI STARTUP.NSH
The tools directory contains standalone versions of many of the EFI shell built-ins together with some additional utilities such as diskpart , efichk and efifmt are Microsoft utiliites. El directorio tools contiene las versiones independientes de muchos de los comandos EFI empotrados, junto con algunos servicios adicionales, tales como efichk diskpart, y efifmt se utiliites Microsoft.
When you EFI boot into Fedora 12, an extra subdirectory appears under /sys/firmware to contain EFI-ralted information. Cuando arranque EFI en Fedora 12, un subdirectorio adicional aparece bajo / sys / firmware EFI para contener la información ralted. Here is what Fedora 12 reported in /sys/firmware/efi/systab Esto es lo que Fedora 12 informó en / sys / firmware / efi / systab
[root@ultra efi]# cat /sys/firmware/efi/systab MPS=0x0 ACPI20=0x0 ACPI=0x7fefd000 SMBIOS=0x7fdf2f98 HCDP=0x0 BOOTINFO=0x0 UGA=0x0
The zero values for MPS and ACPI20 are obviously wrong. Los valores de cero para la MPS y ACPI20 son obviamente equivocada. I am unsure of BOOTINFO and HCDP. No estoy seguro de BOOTINFO y HCDP. This indicates a problem with the EFI implementation in the DX48BT2 BIOS rather than Fedora 12. Esto indica un problema con la aplicación de EFI en el BIOS DX48BT2 en lugar de Fedora 12. Here is what is in this file when Fedora 12 is booted from DUET. Esto es lo que está en este archivo cuando Fedora 12 se inicia de dúo.
MPS=0x7e8a2000 ACPI20=0x7e8a5000 ACPI=0x7e8a4000 SMBIOS=0x7e8a3000 HCDP=0x0 BOOTINFO=0x0 UGA=0x0
Here is a listing of /sys/firmware/efi/vars Aquí está una lista de / sys / firmware / efi / vars
# ls /sys/firmware/efi/vars AcpiGlobalVariable-af9ffd67-ec10-488a-9dfc-6cbf5ee22c2e BadgeBackgroundColor-015698bc-457c-43f4-b257-f2ac5ed55f28 BmiGetParams-ffe78db2-eeb3-43c2-a56a-373be2aa4d4f BoardFeatures-94b9e8ae-8877-479a-9842-f5974b82ced3 BootCurrent-8be4df61-93ca-11d2-aa0d-00e098032b8c ConIn-8be4df61-93ca-11d2-aa0d-00e098032b8c ConInDev-8be4df61-93ca-11d2-aa0d-00e098032b8c ConOut-8be4df61-93ca-11d2-aa0d-00e098032b8c ConOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c DmiData-70e56c5e-280c-44b0-a497-09681abc375e ErrOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c Events-b452fd8a-c9ca-4764-977e-59d839dd861b FirmwareId-5e559c23-1faa-4ae1-8d4a-c6cf026c766f FirmwareId-efc071ae-41b8-4018-afa7-314b185e578b HecetaTcontrolInfo-d9f4cf5d-1b90-4c8e-8062-451a4737e3b4 HiiDB-1b838190-4625-4ead-abc9-cd5e6af18fe0 ItkBiosModVar-3812723d-7e48-4e29-bc27-f5a39ac94ef1 ItkDataVar-3812723d-7e48-4e29-bc27-f5a39ac94ef1 Lang-8be4df61-93ca-11d2-aa0d-00e098032b8c LangCodes-8be4df61-93ca-11d2-aa0d-00e098032b8c main firmware-05a798ea-39ee-40fc-82c5-622582fa634b MemCeil.-8be4df61-93ca-11d2-aa0d-00e098032b8c MemoryTypeInformation-4c19049f-4137-4dd3-9c10-8b97a83ffdfa MfgDefault-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 MTC-eb704011-1402-11d3-8e77-00a0c969723b OriginalLang-8be4df61-93ca-11d2-aa0d-00e098032b8c OriginalLangSelect-8be4df61-93ca-11d2-aa0d-00e098032b8c PciLanInfo-0d9a1427-e02a-437d-926b-aa521fd722ba PECIProcessor-46a39b66-1f23-457c-af10-39e08bba56f1 PegSlotStuffed-056e7324-a718-465b-9a84-228f06642b4f recovery firmware-05a798ea-39ee-40fc-82c5-622582fa634b S3SmmVariable-f96f5d2a-9cd4-4dac-b48b-1d8490d87bf5 SetupDefault-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 Setup-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 SLP20Magic-41282ef2-9b5a-4eb7-95d8-d9cd7bdce367 sOemT3-4acacc46-a23e-4114-8169-e5edebe2045d supplemental recovery area-05a798ea-39ee-40fc-82c5-622582fa634b SwitchBoard-56772831-0132-4ebe-8842-d65a50c0a7d0 SystemPassword-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 UUID-d357c710-0ada-4717-8dba-c6adc7cd2b2a
The value in BootCurrent-8be4df61-93ca-11d2-aa0d-00e098032b8c is FFFF which is an obviously invalid setting. El valor en BootCurrent-8be4df61-93CA-11D2-aa0d-FFFF 00e098032b8c es que es un lugar obviamente no válidos. No other Boot* global variables are made available to Fedora 12 which is strange. Sin Arranque otras variables globales están disponibles para Fedora 12, que es extraño. Again this indicates a poor EFI implementation in the DX48BT2 BIOS rather than a problem with Fedora 12. De nuevo, esto indica una aplicación EFI pobres en el BIOS DX48BT2 más que un problema con Fedora 12. All the pre-OS space EFI global variables defined by the UEFI specification are supposed to be made available to the operating system. Todas las variables espacio pre-OS EFI global definida por la especificación UEFI se supone que son puestos a disposición del sistema operativo.
Here is a listing of this same directory when Fedora 12 is booted using DUET. Aquí está una lista de este mismo directorio cuando Fedora 12 se inicia el uso de Duet.
Boot0000-8be4df61-93ca-11d2-aa0d-00e098032b8c Boot0001-8be4df61-93ca-11d2-aa0d-00e098032b8c BootCurrent-8be4df61-93ca-11d2-aa0d-00e098032b8c BootOptionSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c BootOrder-8be4df61-93ca-11d2-aa0d-00e098032b8c ConIn-8be4df61-93ca-11d2-aa0d-00e098032b8c ConInDev-8be4df61-93ca-11d2-aa0d-00e098032b8c ConOut-8be4df61-93ca-11d2-aa0d-00e098032b8c ConOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c ErrOut-8be4df61-93ca-11d2-aa0d-00e098032b8c ErrOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c Lang-8be4df61-93ca-11d2-aa0d-00e098032b8c LangCodes-8be4df61-93ca-11d2-aa0d-00e098032b8c MTC-eb704011-1402-11d3-8e77-00a0c969723b PerfDataMemAddr-59d1c24f-50f1-401a-b101-f33e0daed443 PlatformLang-8be4df61-93ca-11d2-aa0d-00e098032b8c PlatformLangCodes-8be4df61-93ca-11d2-aa0d-00e098032b8c Timeout-8be4df61-93ca-11d2-aa0d-00e098032b8c
Note the additional Boot* global variables and the TimeOut global variable per the UEFI specification. Tenga en cuenta el arranque adicionales * variables globales y las variables de tiempo de espera global por la especificación UEFI. If I had set BootNext in the DUET bootmanager it would also have been displayed here. Si me había fijado en el BootNext BootManager DUET también habría sido mostradas aquí. If you come from the Microsoft Windows x86-64 world, some of these names for global variables may be unfamilar to you as Microsoft in their infinite wisdom changed the names. Si viene de Microsoft Windows x86-64 del mundo, algunos de estos nombres de las variables globales pueden ser unfamilar a usted como Microsoft en su infinita sabiduría, cambiado los nombres. In Microsoft's BCD (Boot Configuration Data), for example, BootOrder is called displayorder and BootNext is called bootsequence . En BCD de Microsoft (Boot Configuration Data), por ejemplo, se llama BootOrder displayorder y BootNext se llama bootsequence.
Besides those issues I have described so far in this post, I ran into a number of other problems with EFI support on the DX48BT2. Además de los problemas que he descrito hasta ahora en este post, me encontré con una serie de otros problemas, con el apoyo de EFI en el DX48BT2. The first problem is that the UEFI boot option on this platform is visable but totally undocumented and by all accounts Intel will not answer any questions about this feature because it is a desktop platform. El primer problema es que la opción de arranque UEFI en esta plataforma es visible, pero totalmente indocumentados, y todas las cuentas de Intel no contestar cualquier pregunta acerca de esta característica, porque es una plataforma de escritorio. This will have to change as 64-bit operating systems become more common in households and hard disks greater that 2 Gib become commodity items. Esto tiene que cambiar de sistemas operativos de 64 bits a ser más comunes en los hogares y los discos duros mayores que 2 GB convertido en elementos básicos.
Another problem is that when you are in EFI boot mode and the BIOS detects an EFI bootloader such as /EFI/BOOT/BOOTX86.EFI , a menu option “[Internal Shell]” is displayed along with other bootable drives when you press the F10 key to select which “drive” to boot off. Otro problema es que cuando está en modo de arranque EFI y el BIOS detecta un gestor de arranque EFI como / EFI/BOOT/BOOTX86.EFI, una opción de menú "[Interior Shell]" se muestra junto con otras unidades de arranque cuando se pulsa el F10 para seleccionar la que "la unidad" para arrancar. However, if you select this option the BIOS simply clears the screen and locks up the system. Sin embargo, si se selecciona esta opción en el BIOS, simplemente borra la pantalla y se bloquea el sistema. You have to reboot your system to recover from this. Tienes que reiniciar el sistema para recuperarse de este. I can only assume that this option was intended to load an EFI shell or EFI boot manager but was never actually implemented. Sólo puedo suponer que esta opción era la intención de cargar un shell EFI o gestor de arranque EFI, pero nunca fue puesto efectivamente en práctica. Some of the code is obviously there as it detects EFI bootloaders. Parte del código es, obviamente, no como detecta gestores de arranque EFI.
Finally, if you turn off EFI boot in the BIOS setup and thus revert to legacy boot, the boot list displayed by F10 still displays any custom EFI boot options created using efibootmgr less the [Internal Shell] boot option – except now you cannot boot any of the options in the boot list. Por último, si desactiva de arranque EFI en la configuración de la BIOS y así volver a arrancar el legado, la lista de inicio que muestra F10 sigue mostrando ninguna costumbre opciones de arranque EFI creado con efibootmgr menos del [Interior Shell] opción de arranque - excepto que ahora no puede arrancar cualquier de las opciones en la lista de arranque. The only way to eliminate these entries from the boot list is to EFI boot back into Fedora 12 and use efibootmgr to delete these entries. La única forma de eliminar estas entradas de la lista de arranque de EFI es arrancar de nuevo en Fedora 12 y el uso efibootmgr para eliminar estas entradas.
I have read a number of postings in various forums regarding Intel's EFI support on desktop motherboards. He leído una serie de anuncios en diversos foros en relación con el apoyo de Intel EFI en las placas base de sobremesa. I generally agree with the sentiments expressed – it is quite buggy and not ready for prime time use. Yo generalmente están de acuerdo con los sentimientos expresados - es con muchos errores y no está lista para su uso en horario estelar. It does indeed boot a EFI bootloader off a GPT disk but that is about all it does. Es en efecto, un gestor de arranque EFI de arranque desde un disco GPT, pero eso es todo lo que hace. Given that Intel has over 10 years experience with EFI, this is quite surprising. Teniendo en cuenta que Intel tiene más de 10 años de experiencia con EFI, esto es bastante sorprendente. At a minimum they need to provide a proper EFI boot configuration manager and a platform setup utility for creating EFI global variables. Como mínimo que necesitan para proporcionar una adecuada configuración del gestor de arranque EFI y una utilidad de configuración de plataforma para la creación de variables de EFI mundial.
The Fedora project should work to enable EFI Booting a x86-64 distribution DVD by providing a boot loader at \EFI\BOOT\BOOTX64.CONF . El proyecto Fedora debe trabajar para que EFI Arranque de un x86-64 DVD de distribución, proporcionando un gestor de arranque en \ EFI \ BOOT \ BOOTX64.CONF. It is not sufficient in my opinion to use legacy mode to create an installation which is then capable of being EFI booted. No es suficiente en mi opinión, utilizar el modo de herencia para crear una instalación que luego pueda ser arrancado de EFI. I understand the difficulty of supporting both MBR and GPT on a single DVD but the problem is not insurmountable. Entiendo la dificultad de apoyar los MBR y GPT en un solo DVD, pero el problema no es insuperable. If this were done, there would be no need for efiboot.img and efidisk.img . Si esto se hiciera, no habría necesidad de efiboot.img y efidisk.img.
Well, that's about all for now on this issue. Bueno, eso es todo por ahora sobre este tema. I hope this post will be of some help to others who are considering switching to EFI booting Fedora 12. Espero que este puesto será de alguna ayuda para otras personas que están considerando cambiar a EFI en el arranque de Fedora 12.





















