Déplacer la partition système EFI vers un autre lecteur

14

J'ai eu une installation de Windows 8 sur un disque dur, en utilisant UEFI comme démarrage. Le disque dur a le tableau GPT suivant:

DISKPART> list partition

Partizione ###   Tipo              Dim.     Offset
---------------  ----------------  -------  -------
Partizione 1     Ripristino         300 Mb  1024 Kb
Partizione 2     Sistema            100 Mb   301 Mb
Partizione 3     Riservato          128 Mb   401 Mb
Partizione 4     Primario           390 Gb   529 Mb
Partizione 5     Primario           540 Gb   390 Gb

(Je m'excuse, c'est en italien, mais la traduction est assez simple).

J'ai récemment acheté un disque SSD, je l'ai connecté et j'ai installé un nouveau Windows 8. J'ai maintenant un double démarrage qui fonctionne, mais la partition UEFI se trouve sur le disque dur au lieu du SSD. Voici la liste des partitions SSD:

Partizione ###   Tipo              Dim.     Offset
---------------  ----------------  -------  -------
Partizione 1     Riservato          128 Mb  1024 Kb
Partizione 2     Primario           221 Gb   129 Mb

Je pense que la meilleure solution serait de l'avoir sur le SSD pour deux raisons:

Le premier est la performance (je suppose que ce serait un peu plus rapide sur le SSD en raison du temps de rotation pour un disque dur, mais je peux me tromper à ce sujet.)

la deuxième raison est la cohérence. Comme je prévois d'utiliser uniquement l'installation de Windows 8 qui se trouve sur le SSD et je vais probablement effacer la partition système sur le disque dur pour l'utiliser comme un périphérique de stockage de données, je pense que la partition de démarrage devrait être sur le même conduire comme OS.

La question est donc de savoir comment déplacer la partition système EFI vers le SSD?

Pincopallino
la source

Réponses:

4

Ma recommandation est de ne pas déranger. L'amélioration des performances sera négligeable, car les fichiers lus à partir de l'ESP sont minuscules et ne sont lus qu'au démarrage de l'ordinateur. De plus, la partition elle-même est minuscule par rapport aux normes modernes, vous ne récupérerez donc pas suffisamment d'espace pour que l'effort en vaille la peine. En outre, la tentative de déplacement de l'ESP risque de créer des problèmes de démarrage qui prendront beaucoup plus de temps à résoudre que n'importe quel temps que vous pourriez éventuellement économiser en temps de démarrage amélioré à partir du déplacement.

Si vous voulez aller de l'avant et le faire comme une expérience d'apprentissage malgré ma recommandation, vous devrez examiner:

  • Création d'un ESP avec le logiciel de partitionnement que vous aimez. Je ne sais pas comment vous le feriez avec les outils Windows standard. Avec gdisk, vous créez une partition de type EF00, mais vous devez ensuite créer un système de fichiers FAT dessus, car il gdisks'agit d'un outil de partitionnement uniquement (il ne gère pas les systèmes de fichiers).
  • Monter les deux ESP simultanément pour copier des fichiers (ou en séquence en utilisant un stockage temporaire). Je ne sais pas comment faire cela sous Windows, bien que ce soit facile sous Linux ou depuis un shell EFI. (Ce serait automatique dans un shell EFI, en fait.)
  • Enregistrement du chargeur de démarrage sur sa nouvelle maison. (L'utilisation du nom de fichier de secours de EFI\BOOT\bootx64.efiserait probablement une alternative plus simple, mais c'est la méthode la moins préférée pour charger le chargeur de démarrage.) La bcdeditcommande Windows et l' bcfgoutil du shell EFI peuvent tous deux enregistrer les chargeurs de démarrage; cependant, bcdeditest inflexible car Windows ne prend en charge qu'un seul ESP, ce qui crée des problèmes lors de la copie de l'ESP.
Rod Smith
la source
Merci pour votre réponse. Eh bien, je préfère en fait avoir l'ESP dans le SSD car je pourrais décider de retirer le disque dur. Je pense donc que l'ESP devrait être sur le lecteur OS. Quoi qu'il en soit, comment se fait le dernier point?
Pincopallino
Peu importe, j'ai réussi à déplacer la partition vers le SSD et le démarrage de Windows régulièrement. Merci beaucoup!
Pincopallino
Quelques informations intéressantes ici qui seraient probablement TRÈS précieuses pour expliquer ce qui se passe dans un HOWTO généralisé, mais sans vraiment répondre, "La question est donc de savoir comment déplacer la partition système EFI vers le SSD?" J'ai passé des jours de ma vie à essayer de me remettre d'une mauvaise décision il y a quelques années et cela me hante toujours et en bref, cela revient à déplacer ma partition EFI, donc j'aimerais voir une bonne réponse.
rainabba
Il est à noter que le fait d'avoir deux partitions EFI entraîne parfois l'échec de la mise à jour Windows de manière extrêmement obscure, supprimez donc l'ancienne après le déplacement.
Jack Wasey
14

Pour les gens comme moi venant de Google: Oui, il est possible de le faire avec Windows, sans outils tiers. Testé avec Windows 10 Pro x64. J'ai utilisé cette procédure pour déplacer à la fois la partition système EFI et la partition réservée au système. Cela devrait également fonctionner sur Windows 8.

Si votre disque principal manque d'espace, vous devez d'abord réduire votre partition C: (ou équivalent). J'utilise 260 Mo dans cet exemple, car c'est ce dont les nouveaux lecteurs ont besoin, mais les anciens disques avec des secteurs plus petits ne nécessitent que 100 Mo. Si vous n'avez pas besoin de libérer de l'espace, prenez note des commentaires qui indiquent les étapes à ignorer.

Pendant que vous y êtes, vous souhaiterez probablement déplacer votre partition réservée au système. Ce sont généralement 1000 Mo et stockent les métadonnées Windows utiles. Vous pouvez constater que certaines fonctionnalités de Windows ne fonctionnent pas sans une partition réservée au système. J'ai inclus les étapes pour créer une telle partition sur votre lecteur principal et marqué ces étapes avec des commentaires. Il devrait être facile d'exclure ces étapes si vous préférez les ignorer, mais vous devrez modifier les chiffres lors de la réduction (par exemple, 260 Mo au lieu de 1260 Mo).

Les commentaires sont préfixés par REM(pour "remarque"), car ils sont pris en charge à la fois par cmd.exe et diskpart.exe.

Depuis cmd.exe exécuté en tant qu'administrateur:

diskpart
list disk
REM Choose the appropriate disk number from the list.  If you're unsure, you can open diskmgmt.msc; the numbers will be the same.
sel disk 0
list part

REM Perform the following only if you need to shrink a partition to make space for the EFI partition.
REM Choose the appropriate partition from the list.  I used my C: partition.
sel part 2
shrink desired=260
REM End of shrinking operation.

REM Create a new EFI partition:
create part efi size=260
format quick fs=fat32
list vol
REM Find your newly created volume in the list.  If it's not already selected (marked with an asterisk), select it now with "sel vol #".
REM You'll need to give the volume a drive letter for later:
assign
list vol
REM Note the drive letter that the volume has been given.  Mine was F:, so I'll use that in the example.
REM Done creating new EFI partition.

REM Optionally create a new System Reserved partition:
create part msr size=1000
REM Done creating new System Reserved partition.

REM We're done with diskpart.exe:
exit
REM You should no longer see the DISKPART> prompt.

REM Note that you may need to change these drive letters, particularly F:.  F: should match the volume you created previously.
bcdboot C:\Windows /s F: /f UEFI

REM We no longer need a drive letter for the EFI partition, so we should remove it:
diskpart
list disk
REM Change disk number appropriately.
sel disk 0
list vol
REM Change volume number appropriately.
sel vol 2
REM Remove drive letter assignment:
remove
REM Exit diskpart.exe:
exit

REM Exit cmd.exe:
exit

Il est temps de redémarrer pour vous assurer que tout fonctionne. Vous devrez peut-être mettre à jour vos paramètres d'ordre de démarrage du BIOS pour correspondre aux modifications. Dans mon cas, les paramètres du BIOS étaient déjà corrects, donc j'étais coincé dans une boucle de redémarrage; chaque fois que je voulais démarrer mon ordinateur, je devais sélectionner manuellement l'ancien disque avec la partition EFI mal placée.

Si tout fonctionnait comme prévu, vous pourrez supprimer l'ancienne partition EFI. Si cela n'a pas fonctionné ou si votre BIOS est toujours configuré pour démarrer à partir de l'ancienne partition, Windows ne vous laissera pas le supprimer, même si vous utilisez l'indicateur de remplacement dans diskpart.exe. Étant donné que vous voulez probablement vous débarrasser de cette ancienne partition de toute façon, la supprimer est un excellent moyen de vous assurer que vous démarrez à partir de la nouvelle partition.

diskpart
list disk
REM Change disk number appropriately.
sel disk 2
list part

REM You can repeat this next group of steps to delete as many "special" partitions as you like.  I had 4 reserved partitions from an old OEM installation.  Just make sure you don't delete your data!  The "override" flag is only necessary for partitions that can't normally be deleted.
REM Change partition number appropriately.
sel part 1
del part override

REM When you're done, exit diskpart.exe:
exit

REM Exit cmd.exe:
exit
Zenexer
la source
2
Une réponse très détaillée et bien expliquée, qui fonctionne! Merci!
kumarharsh
3

Je sais que c'est un ancien poste, mais je pense que beaucoup veulent toujours une bonne réponse.

Cela s'applique à Windows 7, 8, 10. Et est également valide pour l'ID d'événement: 12290 si la partition ESP est située sur un disque autre que celui qui est le système d'exploitation actif et doit être sauvegardé.

Déconnectez d'abord tout autre lecteur contenant des partitions ESP, afin de ne pas le modifier accidentellement.

Ensuite, vous devez créer une nouvelle partition à 100 - 300 Mo sur le disque sur lequel la partition ESP doit résider. Si le lecteur est plein, vous devez d'abord réduire l'une des partitions existantes.

Démarrez, dans mon cas, Xubuntu 13 (Ubuntu au-dessus de 12.1 je pense) à partir d'une clé USB, en direct. Ne l'installez pas.

Ouvrez Gparted et créez la partition et formatez-la en FAT32. Marquer le lecteur comme "boot" et décocher toute autre partition marquée comme "boot". Attribuez également à la nouvelle partition une lettre de lecteur si possible. Sinon, vous pouvez le faire avec diskpart plus tard.

Redémarrez et démarrez maintenant avec Windows (RE) Recovery à partir du DVD d'installation de Windows. Accédez à l'invite de commande. Démarrez diskpart et affectez à la nouvelle partition une lettre de lecteur si cela n'était pas possible dans Gparted. Quittez diskpart mais restez dans l'invite de commande.

Vous allez maintenant copier les fichiers nécessaires dans la nouvelle partition.

bcdboot <source> /S <ESP drive letter>: /f UEFI

NOTEZ les espaces! Exemple:bcdboot c:\Windows /s x: /f UEFI

Cette commande donnera également le statut ESP de la partition.

Reconstruisez le BCD à l'aide de la commande suivante:

bootrec /RebuildBcd

Maintenant, quand on vous demande quel système d'exploitation vous souhaitez ajouter à la partition ESP, vous dites Oui à ceux que vous souhaitez inclure et Non à ceux que vous ne voulez pas pouvoir démarrer. Comme dans mon cas, j'ai récemment mis à niveau vers Windows 10, et comme vous le savez peut-être, Windows stockera votre ancien Windows 7/8 pendant un certain temps si vous ne l'avez pas supprimé vous-même. Cette copie de votre ancien système d'exploitation n'est pas quelque chose que vous aimeriez normalement pouvoir démarrer. Il réside normalement dans Windows.old. Alors ne choisissez pas l' alternative All .

Je ne sais pas, mais je pense que cette commande ne recherche que les installations Windows. Si vous avez un OS Linux par exemple sur le même ordinateur. Ensuite, vous devez utiliser quelque chose comme bcdedit par la suite pour obtenir le sur le boot meny aswell.

Il y a une dernière commande, que je n'ai pas utilisée.

bootrec /fixboot

J'ai essayé d'en savoir plus sur la commande et je pense qu'elle a juste défini l'indicateur de démarrage sur la partition ESP et la rend amorçable. Cela devrait être le même que lorsque j'ai marqué la partition ESP comme démarrage dans Gparted.

S'il y avait une autre partition ESP dont vous ne voulez plus, le moyen le plus simple est de redémarrer Linux / Gparted et de le supprimer de là.

Joelbit
la source
Pour moi, tout se passe parfaitement jusqu'à ce qu'il arrive, bootrec /fixbootce qui lance à chaque fois le même fichier non trouvé.
kumarharsh
Il semble que Windows ne monte pas automatiquement la partition Windows lorsqu'elle se trouve sur un autre lecteur, ce qui provoque l'échec du démarrage.
Jeroen
1

J'ai créé une nouvelle installation sur un nouveau disque SSD en utilisant une véritable ISO d'installation W10 (DVD). L'installation est passée au type MBR au lieu de GPT. J'avais besoin d'un démarrage sécurisé, j'ai donc dû convertir cette nouvelle installation (sans perte de données) de MBR en GPT.

Ensuite, j'ai créé de l'espace libre (260 Mo) en réduisant la dernière partition NTFS à la fin du disque (j'ai démarré Linux à partir de SystemRecueCD à partir d'une clé USB et utilisé gparted, mais le gestionnaire de disque de Windows 10 pourrait également être utilisé).

Ensuite, j'ai formaté cette nouvelle petite partition en FAT32 (cela pourrait aussi être fait sous Windows ou Linux). J'ai copié des fichiers de l'EFI d'origine vers cette nouvelle partition (je l'ai fait sous Linux car Windows n'aime pas deux disques avec une lettre de lecteur nommée C :).

Ensuite, j'ai changé MBR en GPT par gdisk sous Linux. J'ai utilisé gdisk, puis cette petite partition doit être changée en type ef00 (EFI) et marquée comme amorçable (ne devrait être qu'une seule, donc l'indicateur de démarrage doit être supprimé du lecteur de démarrage d'origine C :).

Ensuite, j'ai changé le type de démarrage dans la CONFIGURATION du portable en UEFI-juste pour être sûr qu'il démarre vraiment par EFI. Windows n'a pas démarré car il manquait un fichier (avec «efi» dans son nom).

Ensuite, j'ai démarré à partir du DVD d'installation de Windows 10, choisi "Système de sauvetage" et ensuite quelque chose comme "Résoudre les problèmes de démarrage". Puis Win10 a démarré sans problème. Aucune intervention manuelle requise par bcdboot.

La configuration EFI peut être vérifiée par l'utilitaire efibootmgr sous Linux.

Milan Kerslager
la source
0

Eh bien, ajoutons encore une autre solution. Mon objectif n'était pas seulement de copier la partition EFI, mais même de prendre en compte les autres cachées. Je ne sais pas si la commande est importante (personnellement, j'en ai eu une autre que celle décrite sur msdn) mais w / e.

Quoi qu'il en soit, j'ai utilisé GParted Live pour l'exploit. Une fois que vous l'avez démarré, réduisez la partition principale de Windows (ce qui devrait être C:) de la même quantité de MiB des partitions qui vous manquent sur le nouveau disque et déplacez-la jusqu'à la fin. Cela prendra un certain temps.

Ensuite, j'ai procédé à la création d'une nouvelle partition de 16 Mo juste en dessous de celle nouvellement redimensionnée où ddla partition réservée à Microsoft (pour des raisons qui semblent comme séparées ne peut pas gérer FS non formaté). Comme toujours, lorsque vous utilisez dd, soyez extrêmement prudent avec les commandes.

Une fois terminé, je suis retourné à l'interface graphique GParted et j'ai défini manuellement les bons drapeaux et le bon nom pour la nouvelle partition MSR, puis j'ai supprimé celle d'origine. Enfin et surtout, j'ai finalement copié la partition Recovery et EFI du disque dur d'origine vers le SSD (et répété l'opération names / flag) et j'ai exécuté sgdisk -spour corriger l'ordre des partitions.

Redémarrez et profitez! Pas besoin de bricoler avec efibootmgr ou bcdboot , au moins sur mon ordinateur portable, il a automatiquement trouvé le nouvel ESP.

EDIT: si lors de l'extension du premier disque, pour une raison quelconque, Windows Disk Manager le convertit en un volume dynamique. Vérifiez cette solution de contournement .

mirh
la source