J'ai du matériel Intel 64 bits avec l'utilitaire de configuration UEFI. Ubuntu 14.04.1 LTS a été installé comme seul système d’exploitation sur le seul lecteur connecté. Accidentellement, Ubuntu a été installé en mode BIOS/CSM/Legacy.
Bien que nous en apprenions plus tard sur UEFI, l’objectif est de changer cette installation Ubuntu existante pour un démarrage (plus rapide) via EFI/UEFI. Je souhaite toujours afficher une sorte de menu de démarrage - 2 secondes - qui me permet d'accéder à l'utilitaire de configuration UEFI. Par conséquent, je pense que j'ai besoin d'utiliser Grub (impossible d'utiliser un stub de démarrage EFI) et que le support GOP nécessite Grub version 1.99 ou supérieure . J'ai déjà re-partitionné le lecteur à l'aide d'un Live CD et inséré une partition EFI de 200 MiB au début du lecteur et marqué cette partition au format fat16 comme type id 0xEF.
Avant:
# fdisk -l /dev/sda
...
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 108478463 54238208 83 Linux
/dev/sda2 108480510 125044735 8282113 5 Extended
/dev/sda5 108480512 125044735 8282112 82 Linux swap / Solaris
Après:
Device Boot Start End Blocks Id System
/dev/sda1 * 411648 108478463 54033408 83 Linux
/dev/sda2 108480510 125044735 8282113 5 Extended
/dev/sda3 2048 411647 204800 ef EFI (FAT-12/16/32)
/dev/sda5 108480512 125044735 8282112 82 Linux swap / Solaris
Partition table entries are not in disk order
Le wiki de la communauté Ubuntu suggère d’utiliser boot-repair pour convertir Ubuntu en mode EFI . Je ne souhaite pas utiliser d'interface graphique ni installer de paquet supplémentaire, et je ne souhaite pas que des données soient accidentellement envoyées à Pastebin.com et, parce que je veux savoir ce qui sera modifié exactement, je ne veux pas use Boot-repair .
En essayant de comprendre ce que la réparation de démarrage fait réellement, j'ai trouvé cet extrait:
Boot-Repair convertira une installation du BIOS en UEFI en désinstallant grub-pc et en installant grub-efi, si gpt est partitionné.
source: http://ubuntuforums.org/showthread.php?t=2147295&p=12657352#post12657352
Une nouvelle installation Ubuntu 14.04.1 en mode UEFI crée une partition EFI de 512 MiB Fat32. Cette partition contient un répertoire /EFI/ubuntu
, contenant 4 fichiers: grub.cfg
, grubx64.efi
, MokManager.efi
et shimx64.efi
. Le fichier grub.cfg contient:
search.fs_uuid 7d843e47-3917-4114-8725-55dfa1fbe002 root hd0,gpt2
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg
Search.fs_uuid pointe sur l'UUID de la partition d'installation Linux. Dans cette comparaison, installation UEFI, Linux est la partition installée/dev/sda2. (versus sda1 dans l’installation en mode BIOS).
CSM étant toujours désactivé dans le micrologiciel et utilisant l’installation Ubuntu en mode UEFI propre. En redimensionnant la partition EFI 512 Mio à 200 Mio à l'aide d'un Live CD et de gparted
name__, sa mise en forme passe de FAT32 à FAT16. Le firmware Asrock P1.50 (appelé à tort BIOS par AMI dans le message de démarrage "date du BIOS") est toujours capable de démarrer en mode UEFI Ubuntu: UEFI + FAT16 = ok .
Conversion de la table de partitions de GPT en MBR (msdos) à l'aide de la même commande de terminal Live CD gdisk
et de ses commandes r
g
name__p
w
également sur un lecteur partitionné MBR: UEFI + MBR = ok .
Cela signifie-t-il que les seules commandes que j'ai besoin d'exécuter - à partir de l'installation Ubuntu héritée et dans cet ordre - sont:
# apt-get install grub-efi
# apt-get remove grub-pc
? Ou faut-il en faire plus?
Démarrez un Live CD Ubuntu Linux (14.04) en mode UEFI. Dans le cas d'un périphérique de démarrage USB, désactivez "Fast Boot" dans UEFI.
Ouvrez une fenêtre de terminal (Ctrl+Alt+T)
Pour vérifier que vous utilisez bien le mode UEFI, utilisez cette commande bash:
$ [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
Le résultat obtenu devrait être:
UEFI
Dans le cas où BIOS
est indiqué, redémarrez votre micrologiciel et corrigez les préférences du périphérique d'amorçage.
Pour effectuer la conversion du BIOS en EFI/UEFI, entrez les commandes suivantes:
$ Sudo mount /dev/sda1 /mnt
$ Sudo mkdir -p /mnt/boot/efi
$ Sudo mount /dev/sda3 /mnt/boot/efi
$ Sudo mount --bind /dev /mnt/dev
$ Sudo mount --bind /proc /mnt/proc
$ Sudo mount --bind /sys /mnt/sys
$ Sudo mount --bind /run /mnt/run
$ modprobe efivars
$ Sudo chroot /mnt
# apt-get install grub-efi-AMD64
The following extra packages will be installed:
efibootmgr grub-efi-AMD64-bin
The following packages will be removed:
grub-gfxpayload-lists grub-pc
...
After this operation, 2,399 kB of additional disk space will be used.
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu --recheck --no-floppy --debug
Malgré la fin du message d'erreur:
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.
le prochain redémarrage affiche déjà " ubuntu " dans le menu d'options de démarrage du microprogramme, et démarre sur la console comme auparavant, à l'exception du démarrage en mode efi:
$ dmesg | grep EFI
efi: EFI v2.31 by American Megatrends
fb0: EFI VGA frame buffer device
EFI Variables Facility v0.08 2004-May-17
fb: switching to inteldrmfb from EFI VGA
En cas de problème, https://superuser.com/questions/376470/how-to-reinstall-grub2-efi pourrait vous aider.
Cela a fonctionné pour moi aussi avec une petite modification. Même si le réseau fonctionnait, je ne pouvais pas demander à "apt-get install grub-efi-AMD64" de trouver l'un des serveurs de paquets.
J'ai contourné cela en démarrant une dernière fois en mode BIOS et en installant grub-efi-AMD64.
Je pourrais alors suivre les procédures ici à l’exception de l’omission de "apt-get install grub-efi-AMD64".