Quelles commandes pour convertir une installation de BIOS Ubuntu en EFI / UEFI sans réparation de démarrage sur du matériel à démarrage unique?

35

Installation accidentelle en mode BIOS

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.

Convertir en UEFI

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 (je ne peux pas utiliser de stub de démarrage EFI) et 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

Pas de réparation de démarrage s'il vous plaît

Le wiki de la communauté Ubuntu suggère d'utiliser la réparation de démarrage pour convertir Ubuntu en mode EFI . Je ne veux pas utiliser d'interface graphique, ni installer de paquet supplémentaire, et je ne veux pas que des données soient envoyées accidentellement à pastebin.com et, parce que je veux savoir ce qui sera changé exactement, je ne veux pas utilisez Boot-repair .

Sous la capuche

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

Comparaison d'installation en mode UEFI

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.efiet 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 (par rapport à sda1 dans l'installation en mode BIOS) .

Aucun problème potentiel du micrologiciel Asrock trouvé

Avoir CSM toujours désactivé dans le micrologiciel et utiliser l’installation Ubuntu en mode UEFI propre. Redimensionner la partition EFI 512 Mio à 200 Mio à l'aide d'un Live CD et gpartedson formatage change de FAT32 à FAT16. Le micrologiciel Asrock P1.50 (appelé à tort BIOS par AMI dans le message de démarrage "date du BIOS") est toujours en mesure de démarrer en mode UEFI Ubuntu: UEFI + FAT16 = ok .
La conversion de la table de partition de GPT en MBR (msdos) à l'aide de la même commande de terminal Live CD gdisket de ses commandes r g p wentraîne également la création d'un Ubuntu amorçable UEFI sur un lecteur partitionné MBR: UEFI + MBR = ok .

Question

Est-ce que cela signifie 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?

Sauvegarde Pro
la source
1
Je voudrais toujours utiliser la réparation de démarrage. Vous supposez que vous devez installer des packages ... Je pense que vous vous trompez. Voir: askubuntu.com/questions/226061/…
Rinzwind
@Rinzwind Je ne peux pas utiliser la réparation de démarrage car il n'y a pas d'interface graphique dans l'installation actuelle d'Ubuntu (console uniquement) et ubuntu-14.04.1-desktop-amd64.iso ne démarre pas lorsqu'il est défini comme le premier périphérique de démarrage USB UEFI dans Asrock H81 Pro BTC P1.50 Utilitaire de configuration UEFI.
Pro Backup
1
Boot-Repair n'est pas un outil graphique, mais plutôt un des ajouts qui le rend plus agréable. Avec la nouvelle version de paquet Ubuntu, les noms de paquet ont un peu changé, maintenant c'est grub-efi-amd64 ou grub-efi-amd64-signé, je pense. C'est peut-être parce qu'ils veulent libérer un chargeur de démarrage UEFI 32 bits que le nom a changé. Version Chroot, notez que vous avez également installé grub & create grub.cfg. askubuntu.com/questions/53578/…
oldfred
@oldfred Boot-Repair dépend apt-get install boot-repairde l'interface graphique : l'exécution de cette installation de serveur Ubuntu génère 245 Mo de GTK, comme les dépendances que boot-repair souhaite installer. Et exécuter la boot-repaircommande après coup échoue. La mise à jour de la nouvelle dénomination grub-efi a été vraiment utile.
Pro Backup
S'il s'agit d'un Asrock, assurez-vous qu'aucun lecteur ou lecteur de DVD n'est connecté aux ports Asmedia. Ils n'ont pas de chauffeur. Mieux vaut n’avoir que le lecteur partitionné gpt si vous démarrez en UEFI. rodsbooks.com/gdisk/hybrid.html
oldfred

Réponses:

41

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.

Ouvrir 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 contraire BIOS, redémarrez votre firmware 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 des 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 peut vous aider.

Sauvegarde Pro
la source
Cela m'a aidé à mettre à niveau mon disque dur et à convertir au format GPT / UEFI / SecureBoot sans avoir à le réinstaller. Merci. Remarque: j'avais besoin de ce grub-efi-amd64-signedpackage pour éviter de gâcher la désactivation de SecureBoot dans mon BIOS UEFI.
Robie Basak
Nous sommes maintenant en 2018 et ce problème avec EFI i persiste. Même efi boot est installé mais je me retrouve dans Grub Cli. J'abandonne Ubuntu.
Abhishek Dujari
Cela a fonctionné pour moi sous Ubuntu 19.10. J'ai démarré le Live USB avec EFI et j'ai ajouté une partition de 200 Mo de type FAT32 pour EFI à la fin de mon disque.
Joey Adams
1

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".

WallyZ
la source
1

Petite correction:

sudo apt-get install -y grub-efi-amd64
sudo mount /dev/sda1 /mnt
sudo mkdir -p /mnt/boot/efi
sudo mount /dev/sda3 /mnt/boot/efi
for d in dev sys proc usr run; do sudo mount -B /$d /mnt/$d; done
sudo modprobe efivars
sudo chroot /mnt
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu --recheck --no-floppy --debug

Terminé.

Daniel Jean
la source
Pouvez-vous expliquer pourquoi vous proposez ces changements à partir de la réponse du PO? ………… S'il vous plaît ne répondez pas dans les commentaires; éditez  votre réponse pour la rendre plus claire et plus complète.
G-Man dit 'Réintégrez Monica' le