La plupart des distributions de GNU/Linux utilisent le VER de GNU (chargeur-amorce unifié grand) pour initialiser le grain de Linux. Le VER a été conçu et au commencement développé par Erich Boleyn. C'est devenu une partie du projet de GNU en 1999 mais jamais a été officiellement libéré. Le dernier instantané de développement était v0.97 qui a été libéré en 2005. Malgré le fait que il jamais a été officiellement libéré, il est employé dans le monde entier sur des millions d'ordinateurs.
Le codebase v0.97 est maintenant connu comme legs de VER. Censément il est toujours en mode d'entretien mais difficulté ne s'est pas produite en dernières années. En conséquence, les fournisseurs tels que Red Hat maintiennent leurs propres branches de legs de VER. Actuellement le projet de Fedora applique 25 corrections au dégagement v0.97 dont 7 ou 8 corrections se rapportent à l'addition de l'appui d'EFI. D'autres fourchettes de legs de VER incluent le chargeur-amorce employé par Oracle pour initialiser le Solaris sur les plates-formes IA32 et X64.
Il y a de nombreuses années les lotisseurs de VER ont décidé qu'une réécriture complète a été exigée. Le but était de faire une version plus robuste, plus portative et puissante du VER qui a le soutien d'une langue, d'une internationalisation et d'une localisation scripting. Le VER 2 est dérivé des CHRYSALIDES qui était un projet de recherche financé par l'agence de promotion d'Information-technologie du Japon pour étudier la prochaine génération du VER.
Pendant quelque temps, j'ai été l'EFI-initialisation une de mes systèmes X64 qui court Fedora 12 et expérimentation avec la coquille de TianoCore EFI et les diverses utilités d'EFI. Les bottes de système dans une coquille et moi d'EFI emploient alors la version EFI-permise de Fedora du legs de VER pour initialiser dans divers Fedora des grains.
Récemment j'ai décidé de télécharger la dernière version des sources du VER 2 (actuellement v1.98), de construire GRUB2 comme image de X64 EFI et de l'installer parallèlement au chargeur-amorce de legs de VER sur EN PARTICULIER (cloison de système d'EFI) de sorte que j'aie pu expérimenter avec les nouveaux équipements disponibles dans le chargeur-amorce GRUB2.
Établir la version d'EFI de GRUB2 n'était pas une issue. Comme d'habitude, la première condition est de configurer la construction. Voici une copie des options de configuration que je choisis :
$ ./configure --with-platform=efi --enable-grub-fstest=no --enable-grub-mkfont=no --disable-nls --enable-efiemu=no
Comme vous pouvez voir l'émulation d'EFI handicapée par I, l'appui de NLS et les divers utilitaires de mise au point (fstest et mkfont.) Le fichier makefile inclut ../conf/x86_64-efi.mk qui est où la majeure partie de la construction est spécifiée. Le fichier makefile de défaut a une dépendance sur le rubis mais ceci est facilement travaillé autour. L'en-tête ../include/grub/i18n a également une erreur mineure. La difficulté est de changer la syntaxe de la garde d'ENABLE_NLS du #if en #ifdef.
Après que vous ayez avec succès couru faites, vous doivent produire de l'image de grub.efi utilisant fouillent-mkimage l'utilité.
$ ./grub-mkimage -d . -o grub.efi boot linux part_gpt \ fat ext2 normal sh configfile lspci ls reboot datetime loadenv search lvm help quit
GRUB2 est un chargeur-amorce très modulaire. Vous pouvez inclure n'importe quels modules que vous avez besoin dans l'image utilisant fouillez-mkimage ou vous pouvez les charger de la coquille GRUB2. Le module de botte est obligatoire, le module de Linux est le chargeur pour des images de Linux, l'information d'aide d'affichages de module d'aide, et les modules restants, excepté stoppé sont expliqués en page récapitulative de commandes d'Erich Boleyn.
Voici une liste des modules qui ont été construits :
acpi.mod efi_gop.mod gcry_whirlpool.mod mmap.mod scsi.mod affs.mod efi_uga.mod gettext.mod msdospart.mod search_fs_file.mod afs_be.mod elf.mod gfxmenu.mod multiboot2.mod search_fs_uuid.mod afs.mod ext2.mod gfxterm.mod multiboot.mod search_label.mod appleldr.mod extcmd.mod gptsync.mod normal.mod search.mod ata.mod fat.mod gzio.mod ntfscomp.mod setjmp.mod at_keyboard.mod fixvideo.mod halt.mod ntfs.mod setpci.mod befs_be.mod font.mod handler.mod part_acorn.mod sfs.mod befs.mod fshelp.mod hashsum.mod part_amiga.mod sh.mod bitmap.mod functional_test.mod help.mod part_apple.mod sleep.mod bitmap_scale.mod gcry_arcfour.mod hexdump.mod part_gpt.mod tar.mod blocklist.mod gcry_blowfish.mod hfs.mod part_msdos.mod terminal.mod boot.mod gcry_camellia.mod hfsplus.mod part_sun.mod terminfo.mod bufio.mod gcry_cast5.mod iso9660.mod parttool.mod test.mod cat.mod gcry_crc.mod jfs.mod password.mod tga.mod chain.mod gcry_des.mod jpeg.mod password_pbkdf2.mod trig.mod charset.mod gcry_md4.mod keystatus.mod pbkdf2.mod true.mod cmp.mod gcry_md5.mod linux.mod pci.mod udf.mod configfile.mod gcry_rfc2268.mod loadbios.mod png.mod ufs1.mod cpio.mod gcry_rijndael.mod loadenv.mod probe.mod ufs2.mod cpuid.mod gcry_rmd160.mod loopback.mod quit.mod vga_text.mod crc.mod gcry_seed.mod ls.mod raid5rec.mod video_fb.mod crypto.mod gcry_serpent.mod lspci.mod raid6rec.mod video.mod datehook.mod gcry_sha1.mod lvm.mod raid.mod videotest.mod date.mod gcry_sha256.mod mdraid.mod read.mod xfs.mod datetime.mod gcry_sha512.mod memrw.mod reboot.mod xnu.mod dm_nv.mod gcry_tiger.mod minicmd.mod reiserfs.mod xnu_uuid.mod echo.mod gcry_twofish.mod minix.mod relocator.mod
Après qu'établissant l'image de grub.efi je l'ai déplacée à sa maison sur EN PARTICULIER et ai créé un fichier de la configuration GRUB2 très de base qui doit s'appeler le grub.cfg. Voici une copie de mon grub.cfg initial
# FPM 3/18/10 manual edit
timeout=10
default=0
set color_normal=yellow/blue
set color_highlight=blue/yellow
menuentry "Fedora 12" {
root=(hd0,2)
linux /vmlinuz-2.6.32.9-70.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 nolapic
initrd /initramfs-2.6.32.9-70.fc12.x86_64.img
}
Des strophes sont exprimées légèrement différemment et ne peuvent pas être copiées directement à partir d'un fichier de configuration de legs de VER. Elles sont assez étroites cependant et aucune explication des changements exigés ne devrait être nécessaire. Notez que le grain de commande a été remplacé par le Linux. Notez également que les nombres de la cloison GRUB2 commencent à 1 non 0 mais les commandes commencent toujours à 0. Ainsi la deuxième cloison de la première commande est le hd (0.2) dans GRUB2 mais (hd0,1) dans le legs de VER.
Quand j'ai commuté à GRUB2 à l'expérience au moyen de elle EFI-initialisez Fedora 12, j'a immédiatement noté que le temps de quand j'ai enfoncé la touche de pénétrer dans jusqu'à ce que j'aie vu un thème de Plymouth est allé d'environ 10 seconde à plus de 3 minutes. Cela m'a pris un moment pour dépister la cause de ce retard car le codebase GRUB2 est sensiblement plus grand et plus complexe que le codebase de legs de VER et le code EFI-connexe est dans de nombreux sous-répertoires.
Après un certain nombre de faux départs, je finalement ai dépisté l'issue vers le bas à la taille de la cachette de disque. Voyez l'algorithme de mise en antémémoire dans le get_disk_read () dans le fichier source ../kern/disk.c. Je pourrais avoir dévié probablement la cachette de disque tout à fait, mais ai trouvé cela augmenter la taille de cachette de 8 secteurs à 8192 secteurs réduits l'heure de lire les dossiers d'image de grain et d'initrd moins que quelques secondes. Voici les changements à faire dans ../include/grub/disk.h.
/* The size of a disk cache in sector units. */ #ifdef GRUB_MACHINE_EFI #define GRUB_DISK_CACHE_SIZE 8192 #define GRUB_DISK_CACHE_BITS 13 #else #define GRUB_DISK_CACHE_SIZE 8 #define GRUB_DISK_CACHE_BITS 3 #endif
Notez que j'avais l'habitude la garde GRUB_MACHINE_EFI pour garder n'importe quel code EFI-spécifique dans les fichiers source communs.
Un dispositif utile de GRUB2 sont la remise à zéro et arrêtent des modules. Vous pouvez utiliser ces modules pour ajouter des options de menu ou à la remise à zéro ou arrêter votre système ou à vous appelez ces commandes de la ligne de la commande GRUB2. Par exemple. voici une option de menu de remise à zéro.
menuentry "Reboot" {
reboot
}
Actuellement, aucune commande n'est disponible pour stopper hors de GRUB2 et pour retourner à la coquille d'EFI. Pour des plates-formes de non-EFI ce n'est pas une option utile mais pour les plates-formes EFI-basées il fournit la grande flexibilité. J'ai donc décidé de développer une telle commande et ai employé le code source pour la commande de remise à zéro en tant que mon calibre. Au cas où quiconque voudrait autrement créer une telle commande GRUB2, voici les détails appropriés.
Créez un dossier appelé quit.c dans le sous-répertoire de ../commands de votre arbre de construction qui contient le code source suivant :
/* quit.c - command to return to EFI shell */
/*
* GRUB -- GRand Unified Bootloader
* Copyright (C) 2005,2007,2008 Free Software Foundation, Inc.
*
* GRUB is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* GRUB is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with GRUB. If not, see <http://www.gnu.org/licenses/>.
*/
#include <grub/dl.h>
#include <grub/command.h>
#include <grub/misc.h>
#include <grub/i18n.h>
#include <grub/term.h>
#include <grub/efi/efi.h>
#include <grub/efi/api.h>
#include <grub/efi/console.h>
static grub_err_t
grub_cmd_quit (grub_command_t cmd __attribute__ ((unused)),
int argc __attribute__ ((unused)),
char **args __attribute__ ((unused)))
{
grub_efi_simple_text_output_interface_t *o;
static grub_uint8_t efi_console_stdcolor =
GRUB_EFI_TEXT_ATTR (GRUB_EFI_YELLOW,
GRUB_EFI_BACKGROUND_BLACK);
o = grub_efi_system_table->con_out;
efi_call_2 (o->set_attributes, o, efi_console_stdcolor);
efi_call_1 (o->clear_screen, o);
grub_exit ();
return 0;
}
static grub_command_t cmd;
GRUB_MOD_INIT(quit)
{
cmd = grub_register_command ("quit", grub_cmd_quit,
0, N_("Return to EFI shell."));
}
GRUB_MOD_FINI(quit)
{
grub_unregister_command (cmd);
}
Le contenu de ce dossier devrait être explicite à un programmeur expérimenté. Les deux efi_calls appellent les appels appropriés de protocole d'EFI pour placer le premier plan de mode texte d'écran et les couleurs et l'espace libre de fond l'écran.
Ajoutez après le suivant font des directives à ../conf/x86_64-efi.mk qui est le fichier makefile EFI-spécifique :
# For quit.mod.
quit_mod_SOURCES = commands/quit.c
clean-module-quit.mod.1:
rm -f quit.mod mod-quit.o mod-quit.c pre-quit.o quit_mod-commands_quit.o und-quit.lst
CLEAN_MODULE_TARGETS += clean-module-quit.mod.1
clean-module-quit.mod-symbol.1:
rm -f def-quit.lst
CLEAN_MODULE_TARGETS += clean-module-quit.mod-symbol.1
DEFSYMFILES += def-quit.lst
mostlyclean-module-quit.mod.1:
rm -f quit_mod-commands_quit.d
MOSTLYCLEAN_MODULE_TARGETS += mostlyclean-module-quit.mod.1
UNDSYMFILES += und-quit.lst
ifneq ($(TARGET_APPLE_CC),1)
quit.mod: pre-quit.o mod-quit.o $(TARGET_OBJ2ELF)
-rm -f $@
$(TARGET_CC) $(quit_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ pre-quit.o mod-quit.o
if test ! -z "$(TARGET_OBJ2ELF)"; then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi
$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@
else
quit.mod: pre-quit.o mod-quit.o $(TARGET_OBJ2ELF)
-rm -f $@
-rm -f $@.bin
$(TARGET_CC) $(quit_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@.bin pre-quit.o mod-quit.o
$(OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -wd1106 -nu -nd $@.bin $@
-rm -f $@.bin
endif
pre-quit.o: $(quit_mod_DEPENDENCIES) quit_mod-commands_quit.o
-rm -f $@
$(TARGET_CC) $(quit_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ quit_mod-commands_quit.o
mod-quit.o: mod-quit.c
$(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(quit_mod_CFLAGS) -c -o $@ $<
mod-quit.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh
sh $(srcdir)/genmodsrc.sh 'quit' $< > $@ || (rm -f $@; exit 1)
ifneq ($(TARGET_APPLE_CC),1)
def-quit.lst: pre-quit.o
$(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 quit/' > $@
else
def-quit.lst: pre-quit.o
$(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]' | sed 's/^\([^ ]*\).*/\1 quit/' > $@
endif
und-quit.lst: pre-quit.o
echo 'quit' > $@
$(NM) -u -P -p $< | cut -f1 -d' ' >> $@
quit_mod-commands_quit.o: commands/quit.c $(commands/quit.c_DEPENDENCIES)
$(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(quit_mod_CFLAGS) -MD -c -o $@ $<
-include quit_mod-commands_quit.d
clean-module-quit_mod-commands_quit-extra.1:
rm -f cmd-quit_mod-commands_quit.lst fs-quit_mod-commands_quit.lst partmap-quit_mod-commands_quit.lst handler-quit_mod-commands_quit.lst parttool-quit_mod-commands_quit.lst video-quit_mod-commands_quit.lst terminal-quit_mod-commands_quit.lst
CLEAN_MODULE_TARGETS += clean-module-quit_mod-commands_quit-extra.1
COMMANDFILES += cmd-quit_mod-commands_quit.lst
FSFILES += fs-quit_mod-commands_quit.lst
PARTTOOLFILES += parttool-quit_mod-commands_quit.lst
PARTMAPFILES += partmap-quit_mod-commands_quit.lst
HANDLERFILES += handler-quit_mod-commands_quit.lst
TERMINALFILES += terminal-quit_mod-commands_quit.lst
VIDEOFILES += video-quit_mod-commands_quit.lst
cmd-quit_mod-commands_quit.lst: commands/quit.c $(commands/quit.c_DEPENDENCIES) gencmdlist.sh
set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(quit_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh quit > $@ || (rm -f $@; exit 1)
fs-quit_mod-commands_quit.lst: commands/quit.c $(commands/quit.c_DEPENDENCIES) genfslist.sh
set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(quit_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh quit > $@ || (rm -f $@; exit 1)
parttool-quit_mod-commands_quit.lst: commands/quit.c $(commands/quit.c_DEPENDENCIES) genparttoollist.sh
set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(quit_mod_CFLAGS) -E $< | sh $(srcdir)/genparttoollist.sh quit > $@ || (rm -f $@; exit 1)
partmap-quit_mod-commands_quit.lst: commands/quit.c $(commands/quit.c_DEPENDENCIES) genpartmaplist.sh
set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(quit_mod_CFLAGS) -E $< | sh $(srcdir)/genpartmaplist.sh quit > $@ || (rm -f $@; exit 1)
handler-quit_mod-commands_quit.lst: commands/quit.c $(commands/quit.c_DEPENDENCIES) genhandlerlist.sh
set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(quit_mod_CFLAGS) -E $< | sh $(srcdir)/genhandlerlist.sh quit > $@ || (rm -f $@; exit 1)
terminal-quit_mod-commands_quit.lst: commands/quit.c $(commands/quit.c_DEPENDENCIES) genterminallist.sh
set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(quit_mod_CFLAGS) -E $< | sh $(srcdir)/genterminallist.sh quit > $@ || (rm -f $@; exit 1)
video-quit_mod-commands_quit.lst: commands/quit.c $(commands/quit.c_DEPENDENCIES) genvideolist.sh
set -e; $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(quit_mod_CFLAGS) -E $< | sh $(srcdir)/genvideolist.sh quit > $@ || (rm -f $@; exit 1)
quit_mod_CFLAGS = $(COMMON_CFLAGS)
quit_mod_LDFLAGS = $(COMMON_LDFLAGS)
Vous devriez maintenant pouvoir construire quit.mod par l'invocation faites quit.mod à partir de la racine de votre arbre de la construction GRUB2. Employez alors fouillent-mkimage l'utilité pour incorporer le module stoppé à votre image de grub.efi. Après avoir placé l'image de création récente de grub.efi dans EN PARTICULIER, vous devriez pouvoir employer la commande stoppée de la coquille GRUB2 ou par l'intermédiaire d'une strophe dans grub.cfg.
Le chargeur courant de Linux ne remet pas à zéro les couleurs de premier plan et de fond de mode texte d'écran à leurs défauts. Pour des coquilles d'EFI ce sont jaunes et noirs respectivement. Les couleurs au lieu de cela du premier plan GRUB2 et du fond propagent sur le texte outputted par le module de chargeur. Voici les diffs au dossier ../loader/i386/efi/linux.c de chargeur pour corriger ce problème et pour ajouter les messages instructifs semblables à ceux outputted par le legs de VER.
37a38,41
> #include <grub/efi/console.h>
> #include <grub/i386/vga_common.h>
>
>
240a245,247
> grub_printf("Trying to allocate %u pages for VMLINUZ\n",
> (unsigned) prot_mode_pages);
>
608a616,622
> /* set color colors to EFI default */
> grub_efi_simple_text_output_interface_t *o;
> static grub_uint8_t efi_console_standard_color = GRUB_EFI_TEXT_ATTR (GRUB_EFI_YELLOW, GRUB_EFI_BACKGROUND_BLACK);
>
> o = grub_efi_system_table->con_out;
> efi_call_2 (o->set_attributes, o, efi_console_standard_color);
>
809c823,824
< grub_printf (" [Linux-bzImage, setup=0x%x, size=0x%x]\n",
---
>
> grub_printf ("[Linux-EFI, setup=0x%x, size=0x%x]\n",
Une fois que j'avais GRUB2 en service, j'ai décidé de regarder comment soutenir un fond d'image pleine page. C'est l'un des secteurs où le legs de VER a des limitations importantes. Il soutient seulement un fond d'image avec un maximum de 16 couleurs et une résolution maximum de 640×480.
Pour examiner l'appui pour un fond d'image dans GRUB2, l a pris un fond d'image de Fedora 12 et l'a converti en format de TGA utilisant la GANSE. Pourquoi TGA ? Aucune raison particulière. Je pourrais avoir juste comme des formats facilement utilisés de JPEG ou de png. J'ai placé cette image dans EN PARTICULIER le sous-répertoire GRUB2.
Après j'ai dû obtenir un dossier approprié de glyph (police) pour montrer des caractères quand en mode de graphiques. GRUB2 emploie les polices PFF2 à mémoire d'image. Plutôt que se donnant la peine de créer mon propre dossier PFF2, j'ai simplement extrait le fichier fonte unicode.pf2 à partir du paquet de Debian grub-common_1.98.
En conclusion, comme montré ci-dessous, j'ai modifié grub.cfg pour charger et configurer les modules appropriés et pour montrer le fond d'image.
#
# FPM 3/19/10
#
timeout=20
default=0
if loadfont /efi/grub2/unicode.pf2
then
set gfxmode="1024x768x32"
set gfxpayload=keep
insmod gfxterm
insmod efi_gop
terminal_output gfxterm
terminal gfxterm
fi
use_bg=true
backgound_image /efi/grub2/fedora.tga
set color_normal=yellow/blue
set color_highlight=blue/yellow
menuentry "Fedora 12" {
root=(hd0,2)
linux /vmlinuz-2.6.32.9-70.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 nolapic
initrd /initramfs-2.6.32.9-70.fc12.x86_64.img
}
menuentry "Reboot" {
reboot
}
menuentry "Exit to EFI Shell" {
quit
}
Vous noterez que GRUB2 soutient une langue scripting rudimentaire. J'examine que le fichier fonte /efi/grud2/unicode.pf2 est chargé avant le gfxterm et des modules d'efi_gop sont chargés et configurés. Quand j'ai rechargé le système et ai appelé GRUB2 de la coquille d'EFI, l'image spécifique de backgound de Fedora a couvert l'écran entier sans frontière et des caractères ont été correctement montrés.
GRUB2 est-il une option viable pour l'EFI-initialisation Fedora 12 actuellement ? Oui, à condition que il soit modifié pour réduire au minimum le retard de charge provoqué par les petites cachettes de disque de défaut. Font j'aiment GRUB2 ? Oui. En fait j'aime la flexibilité et la fonctionnalité additionnelle qu'elle fournit. Élargissant la question plus loin, GRUB2 prêt pour utiliser-et primetime devrait-il Fedora est-il commutateur à GRUB2 dans un avenir proche ? Les distributions d'Ubuntu, de Gentoo et de Debian de GNU/Linux pensent certainement ainsi et leurs derniers dégagements l'utilisent comme chargeur-amorce de défaut. Ma réponse aux deux questions est probablement numéro. Je pense personnellement que GRUB2 exige d'un certain travail de durcir le produit - particulièrement pour l'EFI-initialisation. D'autres raisons incluent un manque de documentation précise, à jour et complète d'utilisateur et d'un produit au-dessus-complexe. Par le produit au-dessus-complexe, je veux dire le grand nombre de modules et d'autres dossiers. Plusieurs des modules, par exemple minix.mod, sont inutiles aux utilisateurs de Fedora sur une plate-forme IA32 ou X64 et ne devraient pas être distribués en tant qu'élément de Fedora T/MN.
Il y a des GRUB2 T/MN disponibles pour Fedora 12. Cependant il contient tous les modules chargeables disponibles indépendamment de s'ils sont utiles n'importe quel aux utilisateurs de Fedora. Plus mauvais toujours, il installe tous les modules sous /usr/lib/grub2/i386-pc/. Pourquoi pas simplement mis leur sous /usr/lib/grub2 ? Quelle valeur l'i386-pc supplémentaire ajoute-t-il ? Je suis sur une plate-forme x86-64 ; Je ne compte pas trouver les modules dont j'ai besoin dans un annuaire appelé l'i386-pc. Oui, je comprends que le boatloader GRUB2 utilise toujours les modules à 32 bits mais que le fait n'a pas besoin d'être inclus dans un nom de sous-répertoire. En outre, deux dossiers importants sont absents du T/MN, c.-à-d. les fichiers fontes unicode.pf2 et ascii.pf2. Sans ces dossiers, les fonds d'image ne sont pas possibles.
Au cas où Fedora commuter à employer GRUB2 à long terme ? Certainement. Les dispositifs supplémentaires tels que l'appui chargeable de modules, scripting et de localisation sont franchement très irrésistibles.



























Merci pour l'information. Il fait beau de savoir que je fais quelque chose convenablement !
Gentil de lire votre blog. J'ai « vieux » MacBook 2.1 et cours sans à-coup Fedora 12 i386. J'avais l'habitude le CD de netinst pour installer le chapeau feutré, mais le netinst amd64 ne peut pas initialiser sur la machine. La botte de Fedora 12 jeûnent (3 secondes) avec intégré fouillent-efi, ma machine est le chapeau feutré simple 12 de botte.
Sur l'autre disque I gentoo installé amd64. toute l'installation est bien allée mais j'ai fait face à la « longue » initialisation anoying avant que le ver « visage » apparaissent, environ 40 secondes : =))
Une fois que j'ai le temps je suivrai votre cours d'instruction sur votre blog. Merci pour nomment le bon indice
rgds
sts
Article gentil. J'emploie l'initialisation de progiciels du DUET UEFI64 (UEFI 2.1 x86_64) de tianocore.sourceforge.net EDK de l'USB de 1 gigaoctet pendrive (http://www.4shared.com/dir/28138560/e865bd7c/Tianocore_EFI_DUET.html). J'ai Windows 7 x64 initialisation pro (UEFI-GPT) et d'Archlinux x86_64 utilisant GRUB2 UEFI et GRUB2 BIOS (compilez les manuscrits - GRUB2 UEFI http://gist.github.com/410877 et GRUB2 BIOS http://gist.github.com/418438 ).
Vous devriez réellement mentionner que toute ceci dans fouillent-devel la liste d'adresses (http://lists.gnu.org/mailman/listinfo/grub-devel) pour que devs grub2 prennent la notification.
Hve I une initialisation Archlinux de problème dans GRUB2 UEFI x86_64. Avant Archlinux j'ai eu Fedora 12 x86_64. Quand Fedora 13 a libéré, j'ai changé plus d'en la voûte pour son système de dégagement de roulement. La voûte initialise très bien dans GRUB2 BIOS, mais dans GRUB2 UEFI que j'obtiens « VFS ne peut pas ouvrir le dispositif de racine » et des erreurs « apposez option correcte de root= » et une panique de grain avec la FONCTION MAJUSCULE clignotant et clavier et touchpad insensibles (bogue-fouillez le rapport http://bugs.archlinux.org/task/19592 de rapport http://lists.gnu.org/archive/html/bug-grub/2010-06/msg00000.html et de bogue d'Archlinux ).
Il semble comme les initramfs est chargé dans la mémoire mais pas correctement passé au grain d'Archlinux. Fedora initialise très bien en raison de tous les conducteurs exigés du contrôleur de disques et de conducteurs de FS intégrés au grain. Mais dans Archlinux, excepté les conditions très de base, tout le contrôleur de disques et l'appui de FS sont compilés en tant que modules externes. Ainsi il est impossible d'initialiser Archlinux sans initramfs. Archlinux emploie le cadre d'init de modèle de schéma.
Savez-vous ce qui est réellement erroné ? Le coupable pourrait n'être (grub2-source-dir) des bottes Archlinux du fouiller-legs grub.efi de /loader/i386/efi/linux.c. Fedora (extrait utilisant p7zip à partir de x86_64 T/MN) sans aucune erreur, ainsi je devine que le problème est avec grub2. Je ne suis pas un programmeur mais j'aime bricoler beaucoup. N'importe quelle aide serait appréciée. Merci.
Pouvez-vous envoyer votre source de quit.mod à fouillez-vous-devel la liste d'adresses, si la tâche de signature de copyright au FSF est correcte ?
[...] [...]
merci pour ce poteau….très utile…
aller bookmark votre emplacement ! ! ! ! ! ! !