For some time Fedora releases have supported Da qualche tempo rilascia Fedora hanno sostenuto UEFI UEFI (more commonly known as EFI) booting on (più comunemente conosciuto come EFI) l'avvio su X86-64 X86-64 platforms. piattaforme. 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. Avendo una certa esperienza di utilizzare EFI su piattaforme IA64 nel corso degli anni, ho deciso di provare il boot EFI Fedora 12 in uno dei miei sistemi, che è un Intel DX48BT2 (Bonetrail 2) piattaforma che viene fornito con il supporto integrato per l'avvio di EFI.
What do I mean by EFI booting an operating system such as Fedora 12? Cosa voglio dire con EFI avvio di un sistema operativo come ad esempio Fedora 12? A platform that supports EFI booting does not rely upon a bootstrap program stored in boot record of a hard disk. Una piattaforma che supporta il boot EFI non si basa su un programma di bootstrap memorizzato nel record di avvio di un disco rigido. 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 boot manager nel firmware della piattaforma sa leggere tabella di partizione di un disco e comprende il layout di un file system FAT che si trova in una partizione designata. The details of the boot manager are implementation defined, but the boot manager is required to be configurable using well-known EFI global variables. I dettagli del boot manager di attuazione sono definite, ma il boot manager è richiesto di essere configurabile con ben nota EFI variabili globali. For example, the boot manager is required to inspect the BootOrder global variable for a list of boot options. Ad esempio, il boot manager è tenuto a controllare la variabile BootOrder globale per un elenco di opzioni di boot. A boot option is one or more EFI global variables of the form BootXXXX. Una opzione di avvio è di uno o più EFI variabili globali del 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. dove XXXX è un numero di 4 cifre che iniziano con 0000, che contengono il dispositivo e il nome di percorso di un boot loader per caricare ed eseguire, ed eventualmente una serie di opzioni per passare a quella del boot loader. 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. Se non vi è nessuna variabile globale BootOrder il boot manager è tenuta a verificare per un boot loader di default in un certo numero di posizioni predefinite specificate. The actual name of the default boot loader is architecture dependant, eg for x86-64 it is \EFI\BOOT\BOOTX64.EFI . Il nome effettivo del boot loader predefinito è l'architettura a carico, ad esempio per x86-64 è \ EFI \ BOOT \ BOOTX64.EFI.
To enable EFI booting on the DX48BT2 you must change some BIOS settings. Per abilitare il boot EFI su DX48BT2 è necessario modificare alcune impostazioni del BIOS. The primary SATA controller must be configured to use IDE mode, ie the Il controller SATA primario deve essere configurato per utilizzare la modalità IDE, vale a dire la AHCI AHCI (Advanced Host Controller Interface) mode must be disabled. (Advanced Host Controller Interface), la modalità deve essere disattivata. Apparently in AHCI mode the SATA controller firmware is part of the CSM (Compatibility Support Module) and does not support an EFI driver. A quanto pare in modalità AHCI il firmware del controller SATA è parte del CSM (Supporto Compatibilità Module) e non supporta un driver EFI. Even on Intel's latest server boards such as the S5500BC, you still have to use IDE mode if you want EFI booting! Anche su schede Intel server di ultima generazione, come la S5500BC, è ancora necessario utilizzare la modalità IDE, se si vuole il boot 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. Se si utilizza il controller SATA seconda che controlla il software di Matrix RAID, è necessario disattivare anche come SW RAID non è supportato in modalità di avvio EFI. Finally you must enable the UEFI option in the Boot option menu. Infine è necessario attivare l'opzione UEFI nel menu delle opzioni di boot. I also recommend that you select the advanced boot option although it is not mandatory. Si consiglia inoltre di selezionare l'opzione di avvio avanzato, anche se non è obbligatorio.
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 . Sono certa familiarità con EFI boot di Windows Vista SP2 x86-64 DVD ed è stato sorpreso di scoprire che ero in grado di fare il boot EFI uno Fedora 12 x86-64 DVD, perché, pur contenendo un file / EFI/BOOT/BOOTX64.CONF, esso non contiene un bootloader EFI corrispondente, cioè / EFI/BOOT/BOOTX64.EFI. More about these two files later. Maggiori informazioni su questi due file più tardi.
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. Avanti, mi voltai per cercare di capire la differenza tra efidisk.img e efiboot.img come ciò che queste immagini contengono effettivamente e dove sono / dovrebbero essere utilizzati per sembra essere privi di documenti (o almeno non ho potuto più facilmente trovare la documentazione.) I bruciato le immagini su due DVD separati e montati loro di avere uno sguardo ai contenuti. 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. Potrei altrettanto facilmente hanno montato le immagini utilizzando un comando come il seguente e cd'ed in montagna Monti a guardare il contenuto.
mount -o loop -efiboot.img /mnt
Here is a listing of the efiboot image. Ecco una lista delle immagini 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. Bootx64.efi il file è effettivamente GRUB v0.97 e BOOTX64.conf è il file di configurazione di GRUB. It contains a single GRUB stanza, ie Esso contiene una sezione unica GRUB, vale a dire
#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. Poiché nessun kernel o immagini initrd sono inclusi nel efiboot.img io sono sicuro di ciò che si può ottenere con EFI l'avvio di un drive USB o un DVD che contiene questa immagine.
I had better luck with efidisk.img . Ho avuto migliore fortuna con efidisk.img. Here is a listing of its contents: Ecco una lista del suo contenuto:
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. Il contenuto di / EFI/BOOT/BOOTX64.conf sono le stesse in efiboot.img ma questa volta le immagini del kernel e initrd realmente esistito nella directory specificata nell'immagine. However there is no sign of the actual EFI bootloader, ie BOOTX64.EFI . Tuttavia non vi è alcun segno del bootloader EFI effettivi, ossia BOOTX64.EFI. OK, I thought, there must be something I do not understand about how to EFI boot Fedora 12. OK, ho pensato, ci deve essere qualcosa che non capisco su come fare il boot EFI 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. Dopo aver configurato il BIOS per consentire l'avvio EFI, come discusso in precedenza, ho riavviato il DX48BT2 con la versione UEFI (efidisk.iso) di Fedora 12 nel lettore DVD. Unfortunately the system reported that no bootable devices were found. Purtroppo il sistema ha riferito che nessun dispositivo di avvio sono stati trovati. Fedora 12 did not even try and install as would have occurred with a legacy boot mode install. Fedora 12 non ha nemmeno provato e installare come sarebbe avvenuto con una modalità di avvio legacy installare. To see what was happening, I used Per vedere cosa stava succedendo, ho usato DUET DUET on a USB key to boot into an EFI Shell and checked the DVD filesystem layout. su una chiave USB per avviare in una shell EFI e controllato il filesystem DVD. It was, as I expected, correct per the EFI and UEFI specifications but there was no BOOTX64.EFI on the DVD. E 'stato, come mi aspettavo, corretta per il EFI e le specifiche UEFI, ma non c'era BOOTX64.EFI sul 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. Ho anche controllato un dump del BIOS sul DX48BT2 per vedere se ci fossero le stringhe di testo nel BIOS che potrebbe darmi un indizio su ciò che il problema potrebbe essere. There were no relevant text strings. Non ci sono state rilevanti le stringhe di testo. 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. Però mi ha confermato che il BIOS, o almeno le parti ho controllato, è EFI-based, come si può vedere guardando questa discarica dei primi byte del file binario. The first 16 bytes are the EFI capsule GUID, ie 3B6686BD-0D76-4030-B70E-B5519E2FC5A0. I primi 16 byte sono la capsula EFI GUID, cioè 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. Le stringhe di caratteri sono o UTF-16 o UCS-2, ossia 16 bit carattere schemi di codifica definito nella specifica 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. Ho quindi deciso di provare l'avvio del DVD dal menu delle opzioni di avvio F10 come vorrei con un boot legacy installare. This started the Fedora 12 install. Questo ha iniziato l'installazione di 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. Da lì tutto si è svolto dal punto di vista di un utente come con un boot legacy installare salvo che la maggior parte dei pacchetti software sono state scaricate da Internet, piuttosto che dal DVD. Here is how Anaconda set up my hard disk: Ecco come Anaconda impostare il mio disco rigido:
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 L'unica differenza tra un avvio e un patrimonio di avvio EFI installare Fedora 12 è che le partizioni del disco utilizzando 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. (GUID Partition Table), piuttosto che MBR e la prima partizione, ossia la partizione con un UUID di B75E-CB6E (partizione EFI), è stato formattato come un file system FAT32 di circa 200 MB di dimensione. All the EFI-related code is on this partition because only type of filesystem that EFI understands is the FAT filesystem. Tutti i EFI codice relativo è su questa partizione, perché solo il tipo di filesystem che EFI capisce è il file system FAT. This is the filesystem that you are using when you are in the EFI shell. Questo è il filesystem che si utilizza quando si è all'interno della shell EFI. It is commonly known as the EFI system partition (ESP). È comunemente conosciuta come la partizione di 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. Ciò suggerisce che Fedora potrebbe non essere in grado di fare un boot EFI installare su un disco rigido con partizioni MBR esistente che si desidera conservare. 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. Ci sono diversi modi di hacking GPT di incorporare un MBR nella tabella GPT, al fine di trattare i casi in cui un sistema operativo si aspetta di vedere un MBR, ma strumenti come parted non può gestire questi sistemi ibridi partizione e in molti casi mangle la configurazione. If you want to experiment with embedding an MBR within a GPT have a look at the gdisk utility. Se volete sperimentare con un MBR incorporamento all'interno di un GPT a dare un'occhiata al programma di utilità gdisk. By the way, you do not need to have the EFI partition mounted to run Fedora 12. Tra l'altro, non c'è bisogno di avere la partizione EFI montata per eseguire 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. Si potrebbe semplicemente montate su una base in base alle esigenze, se avete bisogno di accedere o cambiare qualcosa in materia di EFI o modificare il file di configurazione del bootloader.
The Fedora 12 installation creates the following directory structure in this partition. Fedora 12 installazione crea la seguente struttura di directory in questa partizione.
# 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. Dal grub.efi modo è gestito da Peter Jones di Red Hat ed è una versione EFI di GRUB v0.97 - non GRUB2. The bootloader configuration file grub.conf contains Il grub.conf bootloader file di configurazione 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. Ho provato il boot EFI in Fedora 12 una volta che la Fedora 12 installazione è stata completata. It did not work at all so I decided to use Non ha funzionato affatto così ho deciso di usare DUET DUET to manually load the Fedora 12 bootloader and see what was going on. per caricare manualmente la Fedora 12 bootloader e vedere cosa stava succedendo. The EFI shell command map -r correctly mapped in the systems's hard disk drive as fs2: . La mappa dei comandi della shell EFI-r correttamente mappata in unità i sistemi di disco rigido come FS2:. I changed to this device (just like changing drive letters in DOS) and invoked \EFI\BOOT\REDHAT\GRUB.EFI . Ho cambiato a questo dispositivo (come cambiare le lettere di unità in DOS) e richiamato \ EFI \ BOOT \ redhat \ GRUB.EFI. This started the Fedora 12 EFI bootloader and I was able to get into Fedora 12. Questo ha iniziato la Fedora 12 EFI bootloader e sono riuscito a entrare in 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. Per fornire un bootloader predefinito per la piattaforma, ho aggiunto una sottodirectory di avvio in / boot / efi / EFI e grub.efi copiato e grub.conf a questa directory rinominando il file BOOTX64.EFI e BOOTX64.CONF rispettivamente. 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. Questa volta, quando ho riavviato, il sistema arrivati così lontano cercando di fare il boot EFI Fedora 12, ma non con un kernel panic presto l'inizializzazione del kernel.
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. Perché l'avvio via EFI DUET funzionato senza alcun problema, ho assunto il problema risiede nella differenza tra l'attuazione DX48BT2 di fare il boot EFI e l'attuazione DUET e trascorse molte ore infruttuose esplorare le differenze. For example, no EFI serial device is set up by the DX48BT2 whereas DUET creates one. Per esempio, nessun dispositivo seriale EFI è istituito dalla DX48BT2 DUET considerando che crea uno. I also tried the usual suspects, ie the kernel command line options noapic , acpi=off , edd=off , but to no avail. Ho anche provato i soliti noti, vale a dire le opzioni di riga di comando del kernel noapic, acpi = off, edd = off, ma senza successo.
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. Mi ci è voluto parecchio tempo per trovare questo problema come il DX48BT2 è un sistema molto veloce e il kernel panic era all'inizio del processo di inizializzazione del kernel. Some information was displayed on the screen but it was overwritten by the kernel panic details. Alcune informazioni sono state mostrate sullo schermo, ma è stato sovrascritto con i dettagli di kernel panic. In fact, it looked like Dracut was the culprit from the screen ouput but this turned out not to be the case. In effetti, sembrava Dracut è stato il colpevole da l'output a schermo, ma questo si rivelò essere il 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. Alla fine ho ristretto il problema utilizzando il comando kernel boot_delay line option = 100 a rallentare l'uscita sullo schermo abbastanza per me, per individuare dove nel processo di inizializzazione del kernel panic è stato effettivamente si verificano. It turned out that the kernel panic has something to do with the Local Si è scoperto che il kernel panic ha qualcosa a che fare con le istituzioni locali APIC APIC (Advanced Programmable Interrupt Controller.) What worked for me in the end was the kernel command line option nolapic . (Advanced Programmable Interrupt Controller.) Quello che ha funzionato per me, alla fine, è stato il comando del kernel nolapic linea di opzione. 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. Dopo l'aggiunta di questa opzione alla riga di comando del kernel in / boot / efi / EFI / BOOT.CONF il DX48BT2 è stato in grado di fare il boot EFI direttamente in Fedora 12. Success at last! Successo finalmente!
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. Per consentire me per esplorare al meglio EFI-boot su questo sistema, ho cambiato il processo di avvio così che invece di fare il boot direttamente in Fedora 12 tramite il boatloader GRUB, il sistema di accesso ad 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. Ho sostituito / efi/boot/EFI/BOOTX64.xfi con una copia della X68-64 versione di Shell.efi, cancellati / boot/efi/EFI/BOOT/BOOTX64.CONF ed ha aggiunto un startup.nsh script di avvio per fare un po ' lavoro di configurazione di base della shell per me. Now when the DX48BT2 was rebooted, I ended up in an EFI shell in the root of the ESP. Ora, quando il DX48BT2 è stato riavviato, ho finito in una shell EFI nella radice del ESP. To boot into Fedora 12, I simply invoke grub.efi from the EFI shell. Per avviare Fedora 12, ho semplicemente richiamare grub.efi dalla shell EFI.
I set up the following directory structure in the ESP: Ho impostato la seguente struttura di directory nel 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. La directory contiene le versioni standalone strumenti di molte delle shell EFI built-in insieme ad alcuni programmi di utilità aggiuntivi come efichk diskpart, e efifmt sono utiliites Microsoft.
When you EFI boot into Fedora 12, an extra subdirectory appears under /sys/firmware to contain EFI-ralted information. Quando si avvia EFI in Fedora 12, una sottodirectory extra appare sotto / sys / firmware EFI per contenere informazioni ralted. Here is what Fedora 12 reported in /sys/firmware/efi/systab Ecco cosa Fedora 12 riportato in / 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. Lo zero valori per MPS e ACPI20 sono ovviamente sbagliato. I am unsure of BOOTINFO and HCDP. Io sono sicuro di BOOTINFO e HCDP. This indicates a problem with the EFI implementation in the DX48BT2 BIOS rather than Fedora 12. Questo indica un problema con l'implementazione EFI nel BIOS DX48BT2 piuttosto che Fedora 12. Here is what is in this file when Fedora 12 is booted from DUET. Ecco ciò che è in questo file quando Fedora 12 è avviato da DUET.
MPS=0x7e8a2000 ACPI20=0x7e8a5000 ACPI=0x7e8a4000 SMBIOS=0x7e8a3000 HCDP=0x0 BOOTINFO=0x0 UGA=0x0
Here is a listing of /sys/firmware/efi/vars Ecco una lista di / 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. Il valore in BootCurrent-8be4df61-93ca-11D2-aa0d-00e098032b8c è FFFF, che è un contesto, ovviamente, non valida. No other Boot* global variables are made available to Fedora 12 which is strange. Nessun altro boot * variabili globali sono messi a disposizione di Fedora 12, che è strano. Again this indicates a poor EFI implementation in the DX48BT2 BIOS rather than a problem with Fedora 12. Anche in questo caso indica una implementazione EFI poveri nel BIOS DX48BT2 piuttosto che 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. Tutte le variabili di spazio pre-OS EFI globali definiti dalla specifica UEFI dovrebbero essere messi a disposizione del sistema operativo.
Here is a listing of this same directory when Fedora 12 is booted using DUET. Ecco una lista di questa stessa directory Fedora 12, quando viene avviato utilizzando 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. Nota: Il Boot supplementari * variabili globali e la variabile TimeOut globale per la specifica UEFI. If I had set BootNext in the DUET bootmanager it would also have been displayed here. Se avessi impostato BootNext nel bootmanager DUET che sarebbero state anche mostrate qui. 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. Se si proviene da Microsoft Windows x86-64 del mondo, alcuni di questi nomi per le variabili globali possono essere così sconosciuto a voi come Microsoft nella loro infinita saggezza cambiato i nomi. In Microsoft's BCD (Boot Configuration Data), for example, BootOrder is called displayorder and BootNext is called bootsequence . In BCD di Microsoft (Boot Configuration Data), per esempio, è chiamato BootOrder displayorder e BootNext è chiamato 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. Oltre a questi problemi che ho descritto finora in questo post, mi sono imbattuto in una serie di altri problemi con il supporto EFI sulla 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. Il primo problema è che l'opzione di avvio UEFI su questa piattaforma è visibile, ma totalmente privi di documenti e di tutti i conti Intel non rispondere a qualsiasi domanda su questa funzione, perché si tratta di una piattaforma desktop. 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. Questo deve cambiare, come sistemi operativi a 64 bit diventano sempre più comuni nelle famiglie e negli hard disk più grande, che diventano 2 Gib elementi delle materie prime.
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. Un altro problema è che quando si è in modalità di avvio EFI e il BIOS rileva un EFI bootloader come / EFI/BOOT/BOOTX86.EFI, una opzione del menu "[interno Shell]" viene visualizzato insieme ad altre unità di avvio quando si preme il F10 per selezionare quale "unità" per avviare off. However, if you select this option the BIOS simply clears the screen and locks up the system. Tuttavia, se si seleziona questa opzione nel BIOS cancella semplicemente lo schermo e si blocca il sistema. You have to reboot your system to recover from this. Dovete riavviare il sistema per recuperare da questo. I can only assume that this option was intended to load an EFI shell or EFI boot manager but was never actually implemented. Posso solo supporre che questa opzione è stata destinata a caricare un shell EFI o boot manager EFI, ma non è mai stato effettivamente attuato. Some of the code is obviously there as it detects EFI bootloaders. Parte del codice è, ovviamente, non in quanto rileva bootloader 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. Infine, se si disattiva il boot EFI nel setup del BIOS e quindi tornare al boot legacy, l'elenco di avvio visualizzato da F10 mostra ancora tutte le opzioni di boot EFI personalizzato creato utilizzando efibootmgr meno [interno Shell] opzione di avvio - solo che adesso non è possibile avviare alcun delle opzioni della lista di avvio. 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. L'unico modo per eliminare queste voci dalla lista di avvio è di fare il boot EFI torna in Fedora 12 e l'uso efibootmgr per eliminare queste voci.
I have read a number of postings in various forums regarding Intel's EFI support on desktop motherboards. Ho letto una serie di messaggi in varie sedi per quanto riguarda il supporto di Intel EFI su schede madri desktop. I generally agree with the sentiments expressed – it is quite buggy and not ready for prime time use. Io generalmente d'accordo con i sentimenti espressi - è abbastanza pieno di bug e non è pronto per l'uso del prime time. It does indeed boot a EFI bootloader off a GPT disk but that is about all it does. E in effetti il boot di un bootloader EFI fuori un disco GPT, ma che è di circa tutto ciò che fa. Given that Intel has over 10 years experience with EFI, this is quite surprising. Dato che Intel ha oltre 10 anni di esperienza con EFI, questo è piuttosto sorprendente. At a minimum they need to provide a proper EFI boot configuration manager and a platform setup utility for creating EFI global variables. A un minimo di cui hanno bisogno per fornire un manager EFI corretta configurazione di avvio e un programma di utilità di configurazione della piattaforma per la creazione di variabili EFI a livello mondiale.
The Fedora project should work to enable EFI Booting a x86-64 distribution DVD by providing a boot loader at \EFI\BOOT\BOOTX64.CONF . Il progetto Fedora dovrebbe lavorare per consentire EFI Avviare un x86-64 di distribuzione DVD, fornendo un boot loader \ 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. Non è sufficiente, a mio parere per utilizzare la modalità legacy per creare un impianto che è poi in grado di essere avviato EFI. I understand the difficulty of supporting both MBR and GPT on a single DVD but the problem is not insurmountable. Capisco la difficoltà di sostenere sia l'MBR e GPT su un unico DVD, ma il problema non è insormontabile. If this were done, there would be no need for efiboot.img and efidisk.img . Se questo fosse fatto, non ci sarebbe alcun bisogno di efiboot.img e efidisk.img.
Well, that's about all for now on this issue. Beh, questo è tutto per ora su questo tema. I hope this post will be of some help to others who are considering switching to EFI booting Fedora 12. Spero che questo post sarà d'aiuto ad altri che stanno pensando di passare a fare il boot EFI Fedora 12.





















