Comment créer une partition système EFI?

34

TL; DR Comment créer une partition système EFI à partir de zéro? Comment puis-je mettre le firmware EFI dessus une fois qu'il est créé?

Version longue

J'ai un ordinateur portable Toshiba T430. Je l'ai reçu avec Windows 7 installé (mais je pense qu'à l'origine, il était livré avec Windows 8). J'ai installé Ubuntu dessus, mais j'ai supprimé certaines partitions sur le disque afin de finir par effacer Windows et ne disposer que d'Ubuntu. Parmi les partitions supprimées figurait la partition du système EFI. J'ai découvert qu'Ubuntu démarre maintenant en mode hérité (et non UEFI). J'essaie de suivre ce guide sur la conversion de mon installation Ubuntu de Legacy en UEFI. Le problème - puisqu'il n'y a pas de partition EFI chaque fois que je choisis le BIOS pour démarrer en utilisant UEFI, je ne peux pas démarrer. Cela compte non seulement pour le disque dur, mais aussi pour les disques USB et DVD. Je pense que c'est logique - il attend une partition EFI et comme il ne peut pas la trouver, il ne peut pas continuer à démarrer plus longtemps, que ce soit à partir du disque dur ou du DVD. Alors, comment puis-je recréer la partition EFI?

Le guide ci-dessus dit:

Création d'une partition EFI

Si vous partitionnez manuellement votre disque dans le programme d'installation d'Ubuntu, vous devez vous assurer que la partition EFI est configurée.

  1. Si votre disque contient déjà une partition EFI (par exemple, si votre ordinateur avait Windows8 préinstallé), il peut également être utilisé pour Ubuntu. Ne le formatez pas. Il est fortement recommandé de n'avoir qu'une seule partition EFI par disque.

  2. Une partition EFI peut être créée via une version récente de GParted (la version Gparted incluse dans le disque 12.04 est OK) et doit avoir les attributs suivants:

    1. Point de montage: / boot / efi (remarque: pas besoin de définir ce point de montage lors de l'utilisation du partitionnement manuel, le programme d'installation d'Ubuntu le détectera automatiquement)

    2. Taille: minimum 100Mib. 200 Mo recommandés.

    3. Type: FAT32

    4. Autre: nécessite un drapeau "boot".

J'ai eu du mal à créer cette partition:

  • Je démarre à partir d'un DVD Ubuntu en direct, ouvre GParted, crée une partition de 200 Mo et la formate en FAT32.
  • Dans GParted, je ne peux pas définir le point de montage et ne peux donc pas définir le bootflag.
  • Je n'ai pas défini le point de montage /etc/fstabcar il s'agit d'un CD live et fstab était très différent de ce que j'attendais par rapport à un démarrage normal. Quoi qu'il en soit, je ne savais tout simplement pas quelles valeurs définir.

J'ai redémarré via le DVD live, puis j'ai choisi d'installer Ubuntu. J'ai ensuite créé une partition avec les critères mentionnés - point de montage, 200 Mo, FAT32, drapeau de démarrage.

Cependant, je continue d'avoir ce problème et je suppose que c'est parce que sur cette partition il n'y a pas de firmware EFI, c'est juste une partition vide, qui convient pour avoir le firmware EFI.

Encore une fois, comment puis-je créer une partition EFI, qui dispose du logiciel EFI, afin que l'ordinateur portable puisse à nouveau démarrer en mode UEFI?

SOLUTION Merci à vous deux pour les réponses. Ce que j'ai fait, c'est installer Windows 8.1 à partir de zéro en formatant tout le disque, puis en installant (cette fois correctement) Ubuntu à côté. Ce sont mes partitions maintenant:

Partitions de disque

Au cours de l'installation de Win 8, dès que j'ai supprimé toutes les partitions existantes et laissé Windows reformater le disque, il a automatiquement créé, en plus de la partition d'installation principale, trois partitions supplémentaires, à savoir 1, 2, 3. Maintenant, après avoir eu un ESP approprié , Je pouvais démarrer à la fois à partir du disque dur ou du DVD en mode UEFI.

Vous dites que l'ESP ne stocke aucune information par défaut, mais je suppose que lorsqu'un OS s'installe, il y met des informations. Je suppose donc que mon cas était le suivant: je l'avais effacé et même si je l'avais recréé, il n'était rempli d'aucune information, car la création de l'ESP a été effectuée après l'installation d'un système d'exploitation. J'ai perdu l'installation d'Ubuntu (ce n'est pas grave, c'était une nouvelle installation de toute façon), mais je suppose que pour la sauvegarder, j'aurais dû suivre les conseils de Grawity . Je n'ai pas eu le temps, mais heureusement, tout va bien maintenant.

Alex Popov
la source
1
L'ESP stocke les chargeurs de démarrage. Ainsi, si vous avez une installation existante et supprimez l'ESP, vous perdrez la possibilité de démarrer l'ordinateur. Ce type de problème est en fait assez simple à résoudre - SI vous savez comment!
Rod Smith
Eh bien était tout ce que ma question portait :)
Alex Popov

Réponses:

37

Tout d'abord, vous ne définissez pas le point de montage dans GParted; cela se fait manuellement (et temporairement) via la mountcommande ou de façon permanente par modification /etc/fstab. Ainsi, votre inquiétude sur cette question est déplacée.

Deuxièmement, une partition système EFI (ESP) est simplement une partition FAT avec un code de type particulier (à savoir, C12A7328-F81F-11D2-BA4B-00A0C93EC93B sur les disques GPT). Notez que le point de montage dans /etc/fstabne fait pas partie de la définition de l'ESP; il est juste classique (mais pas obligatoire) sous Linux d'accéder à l'ESP en le montant à /boot/efi, généralement via une /etc/fstabentrée. La façon dont vous définissez le code de type varie d'un programme à l'autre:

  • Dans gdisk, vous définissez le code de type sur EF00. ( gdiskutilise des codes de type à deux octets qui s'étendent jusqu'aux codes de type réel sur le disque; "EF00" est juste un mnémonique pour "C12A7328-F81F-11D2-BA4B-00A0C93EC93B".)
  • Dans GParted ou parted, vous définissez le «drapeau de démarrage». Notez cependant que cela ne fonctionne que sur les disques GPT; vous ne pouvez pas définir le code de type ESP sur les disques MBR avec ces programmes. (Ce n'est normalement pas un gros problème, car les ordinateurs basés sur EFI démarrent généralement à partir de disques GPT.)
  • Dans le programme d'installation d'Ubuntu, vous identifiez la partition comme une "partition de démarrage EFI". Il définit ensuite le code de type et sera configuré de /etc/fstabmanière appropriée.
  • Dans les versions récentes de Linux fdisk, vous définissez le type de partition par son numéro (1 pour "Système EFI" sur les disques GPT ou 0xEF sur les disques MBR) ou en entrant le code de type complet sur les disques GPT.

Troisièmement, l'ESP ne contient pas de micrologiciel - le micrologiciel est, par définition, stocké dans des puces sur la carte mère. Ainsi, votre effort pour installer le firmware EFI sur l'ESP est une chasse aux oies sauvages. (Il existe deux exceptions à cette règle. Premièrement, vous pouvez stocker un fichier de micrologiciel sur l'ESP afin de mettre à jour le micrologiciel sur votre ordinateur. Cependant, il ne s'agit que d'une zone d'attente temporaire. Deuxièmement, le chargeur de démarrage DUET ou Clover , le EFI est chargé en tant que programme normal, généralement à partir de l'ESP. Ces outils sont des chargeurs de démarrage du BIOS, cependant, qui permettent aux ordinateurs uniquement BIOS de démarrer comme s'ils étaient des machines EFI; ils ne sont pasnormalement utilisé sur les ordinateurs dotés du micrologiciel EFI, que vous prétendez que votre ordinateur possède. Techniquement, ni DUET ni Clover ne sont des micrologiciels; ce sont des chargeurs de démarrage BIOS qui font le même travail que EFI.)

Enfin, je peux penser à un certain nombre de causes possibles de votre problème, mais sans plus d'informations, je devrais écrire un demi-livre pour les couvrir toutes. Je vous recommande d'exécuter le script d'informations de démarrage sur l'ordinateur. Cela produira un fichier appelé RESULTS.txt. Publiez-le sur un site pastebin et publiez-le avec l'URL de votre document. Cela donnera des données précises sur votre configuration, ce qui réduira considérablement la gamme des causes possibles de votre problème.

Rod Smith
la source
Comment utiliser gdiskpour "définir le code de type sur EF00"?
B Seven
@BSeven t, 1, ef00.
Hobbs
11

La partition EFI ne conserve pas le firmware (qui est stocké dans une puce sur la carte mère); il conserve les chargeurs de démarrage pour les systèmes d'exploitation installés. C'est fondamentalement l'alternative EFI de placer le chargeur de démarrage dans le 0ème secteur de votre disque, comme c'était le cas avec les PC BIOS.

Cela signifie qu'une fois que vous disposez d'une telle partition, elle devrait se remplir automatiquement lorsque vous installez le système d'exploitation. (Il est fort probable que le disque d'installation lui-même doive également être démarré en mode EFI, sinon cela ne dérangera pas la configuration du démarrage UEFI ... en fait, certaines parties de la configuration ne peuvent même pas être effectuées à partir du mode BIOS.)

Si Ubuntu est déjà installé, vous devrez:

  1. Installez la version UEFI de GRUB; Je pense que c'est dans le grub-efi-amd64-signedpaquet.

    grub-install --target=x86_64-efi-signed
    

    (Pour la grub-efi-amd64version non signée , c'est x86_64-efi.)

  2. Assurez-vous que GRUB s'est installé comme \EFI\Boot\bootx64.efidans la partition système EFI. (J'utilise ici la syntaxe du chemin EFI; si vous montez la partition /bootsur Linux, ce serait le cas /boot/EFI/Boot/bootx64.efi.)

    Si ce n'est pas le cas, copiez grubx64.efimanuellement à cet emplacement.

    Ceci est nécessaire car grub-installne peut pas s'ajouter au menu de démarrage EFI à moins que le système n'ait déjà démarré en mode EFI. (Les "variables EFI" sont impossibles à accéder dans le BIOS moed.) Par conséquent, la seule façon de démarrer GRUB est de le placer à l'emplacement "Fallback Boot Loader".

  3. Redémarrez. Essayez de sélectionner une sorte de mode EFI dans le menu de démarrage de votre firmware (les firmwares EFI ont leur propre menu de démarrage, même avant GRUB).

  4. Vérifiez si dmesg | grep "efi:"quelque chose s'affiche, pour confirmer que vous êtes en mode EFI.

grawity
la source
1
Je ne veux pas faire apparaître un ancien fil, mais j'essaie de trouver une solution à mon problème et je suis tombé sur ce fil. J'essaie de mettre à jour le micrologiciel du BIOS sur mon ordinateur Dell et Dell le fournit au format EXE au format Windows ou dans un fichier que l'on devrait mettre sur une partition au format EFI. c'est-à-dire qu'on me demande de "télécharger le fichier sur la partition EFI sur un périphérique de support amovible". Je ne sais pas si le PO voulait dire cela, mais je voulais juste souligner ce que vous avez dit dans votre premier paragraphe.
Ray
@Ray: Vous téléchargez le futur firmware dans cette partition. Il n'est toujours pas utilisé comme micrologiciel réel lorsque vous allumez l'ordinateur; il est simplement utilisé comme fichier de données pour le programme "mise à jour du firmware" qui l'écrira / flashera sur la carte mère. (Rappelez-vous quand ces instructions disaient «téléchargez le fichier sur une disquette de démarrage MS-DOS» ou quelque chose? Eh bien, ce disque ne contenait pas non plus votre BIOS principal. Il contenait simplement le programme de reflashing et les données qu'il était censé flasher. Même chose ici.)
grawity
1
Oui je sais. Je suppose que je dis simplement que le PO n'a peut-être pas nécessairement eu tort, mais juste imprécis. De même, vous avez raison de dire que le firmware est stocké sur la puce et maintenant on me demande de stocker un futur firmware sur la partition EFI. Mais, quelqu'un pourrait dire que le firmware est stocké dans l'EFI s'il est imprudent avec sa description. (c'est-à-dire pas complètement faux mais à moitié faux)
Ray
2

Créez deux fichiers avec le bloc-notes et enregistrez-les sur votre lecteur d'installation USB Windows.
SaveAs: CreatePartitions-UEFI.txt

select disk 0  
clean  
convert gpt  
rem == 1. System Partition  =====================  
create partition efi size=210  
format fs=fat32 quick label=”SYSTEM”  
active  
rem == 2. Microsoft Reserved (MSR) partition  ======  
create partition msr size=16  
rem == 3.  Windows partition  ===================  
create partition primary size=xxxxxx   
format fs=ntfs quick label=”Windows”   
assign letter=”W”  
rem == 4. Recovery tools partition  ================  
create partition primary size=460  
format fs=ntfs quick label=”Recovery”  
assign letter=:R”  
list volume

Créez un autre fichier texte avec le Bloc-notes:
SaveAs: diskpart-UEFI.txt

diskpart /s D:\CreatePartitions-UEFI.txt   

REM where D:/ is the usb drive. This command runs the text file to install the partitions.

Si vous utilisez MBR, la commande sera, convertissez mbr.

Pour obtenir la taille de la partition Windows, multipliez votre taille HD fois 1024, un disque dur de 100 gig fois 1024 équivaut à 102400 moins 210 (taille efi) moins 16 (taille msr) moins 460 (taille réservée) est égal à la taille que vous mettrez la taille de la partition Windows. (xxxxxx)

Vous pouvez modifier la taille des partitions à partir du terminal (invite de commande) cd / d D:> bloc-notes CreatePartitions-UEFI.txt

Pendant que vous êtes dans la clé USB, ouvrez avec le bloc-notes diskpart-UEFI.txt et laissez-le ouvert ou écrivez la commande afin de ne pas faire d'erreur. Une fois que vous avez modifié la taille des partitions à votre guise, fermez-la, puis cd / dx: / Sources puis exécutez le diskpart / s D: \ CreatePartitions-URFI.txt.
lister le volume comme la dernière commande vous montre les partitions, si content, quittez> éteignez l'ordinateur> redémarrez> installez

Dave Vian
la source
-2

utilisez gnome-disks, package "gnome-disk-utility", c'est super pratique.

dotbit
la source
2
Bienvenue sur Super User! Je ne suis pas le DV-er, mais même si les réponses d'une ligne peuvent parfois fonctionner, mais si vous modifiez votre réponse pour inclure une explication, cela fonctionnerait mieux :) Comment créeraient-elles une partition système EFI dans gnome-disk-utility.
bertieb