Spostare la partizione di sistema EFI su un'altra unità


14

Ho avuto un'installazione di Windows 8 su un HDD, usando UEFI come avvio. L'HDD ha la seguente tabella GPT:

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

(Chiedo scusa è in italiano, ma la traduzione è abbastanza semplice).

Di recente ho acquistato un'unità SSD, l'ho collegata e ho installato un nuovo Windows 8. Ora ho un dual boot funzionante, ma la partizione UEFI è sull'HDD invece che sull'SSD. Ecco l'elenco delle partizioni SSD:

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

Penso che la soluzione migliore sarebbe quella di averlo sull'SSD per due motivi:

La prima è la prestazione (immagino che sarebbe un po 'più veloce sull'SSD a causa del tempo di rotazione di un HDD, ma potrei sbagliarmi.)

la seconda ragione è la coerenza. Poiché ho intenzione di utilizzare solo l'installazione di Windows 8 che si trova sull'unità SSD e probabilmente cancellerò la partizione di sistema sull'HDD per utilizzarla come dispositivo di archiviazione dei dati, penso che la partizione di avvio dovrebbe trovarsi sullo stesso guidare come sistema operativo.

Quindi la domanda è: come posso spostare la partizione di sistema EFI su SSD?

Risposte:


4

La mia raccomandazione è di non disturbare. Il miglioramento delle prestazioni sarà trascurabile, poiché i file letti dall'ESP sono minuscoli e vengono letti solo all'avvio del computer. Inoltre, la partizione stessa è piccola per gli standard moderni, quindi non recupererai abbastanza spazio per rendere lo sforzo utile. Inoltre, il tentativo di spostare l'ESP comporta il rischio di creare problemi di avvio che richiederanno molto più tempo per essere risolti rispetto a qualsiasi momento in cui è possibile salvare in tempo di avvio migliorato dallo spostamento.

Se vuoi andare avanti e farlo come un'esperienza di apprendimento nonostante la mia raccomandazione, devi esaminare:

  • Creazione di un ESP con qualunque software di partizionamento ti piaccia. Non sono sicuro di come lo faresti con gli strumenti standard di Windows. Con gdisk, avresti creato una partizione di tipo EF00, ma avresti quindi bisogno di creare un filesystem FAT su di esso, poiché gdiskè uno strumento di solo partizionamento (non gestisce i filesystem).
  • Montare entrambi gli ESP contemporaneamente per copiare i file (o in sequenza usando l'archiviazione temporanea). Non sono sicuro di come farlo in Windows, anche se sarebbe facile in Linux o da una shell EFI. (Sarebbe automatico in una shell EFI, in effetti.)
  • Registrazione del boot loader nella sua nuova home. (L'utilizzo del nome file di fallback di EFI\BOOT\bootx64.efisarebbe probabilmente un'alternativa più semplice, ma è il metodo meno preferito per caricare il boot loader.) Il bcdeditcomando Windows e lo bcfgstrumento della shell EFI possono entrambi registrare boot loader; tuttavia, non bcdeditè flessibile perché Windows supporta solo un ESP, il che crea problemi durante la copia dell'ESP.

La ringrazio per la risposta. Bene, in realtà preferisco avere l'ESP nell'SSD perché potrei decidere di rimuovere l'HDD. Quindi penso che l'ESP dovrebbe essere sul disco del sistema operativo. Ad ogni modo, come viene fatto l'ultimo punto?
Pincopallino,

Non importa, sono riuscito a spostare regolarmente la partizione su SSD e Windows si avvia. Grazie mille!
Pincopallino,

Alcune informazioni interessanti qui che probabilmente sarebbero MOLTO preziose per spiegare cosa sta succedendo in un HOWTO generalizzato, ma non rispondendo davvero, "Quindi la domanda è come posso spostare la partizione di sistema EFI sull'SSD?" Ho trascorso giorni della mia vita cercando di riprendermi da una cattiva decisione un paio di anni fa e mi perseguita ancora e in breve, si riduce a ricollocare la mia partizione EFI, quindi mi piacerebbe vedere una buona risposta.
Rainabba,

Da notare che avere due partizioni EFI a volte fa fallire l'aggiornamento di Windows in modi estremamente oscuri, quindi eliminare quello vecchio dopo lo spostamento.
Jack Wasey,

14

Per le persone come me che provengono da Google: Sì, è possibile farlo con Windows, senza strumenti di terze parti. Testato con Windows 10 Pro x64. Ho usato questa procedura per spostare sia la partizione di sistema EFI che la partizione riservata di sistema. Dovrebbe funzionare anche su Windows 8.

Se l'unità primaria non ha spazio, per prima cosa dovrai ridurre la tua partizione C: (o equivalente). In questo esempio sto usando 260 MB, poiché è ciò che richiedono unità più recenti, ma unità più vecchie con settori più piccoli richiedono solo 100 MB. Se non hai bisogno di fare spazio, prendi nota dei commenti che indicano quali passaggi dovresti saltare.

Mentre ci sei, probabilmente vorrai spostare la tua partizione riservata di sistema. Si tratta in genere di 1000 MB e memorizza utili metadati di Windows. È possibile che alcune funzionalità di Windows non funzionino senza una partizione riservata di sistema. Ho incluso i passaggi per la creazione di tale partizione sull'unità principale e li ho contrassegnati con commenti. Dovresti escludere facilmente questi passaggi se preferisci saltarli, ma dovrai modificare i numeri durante la riduzione (ad esempio, 260 MB anziché 1260 MB).

I commenti hanno il prefisso REM(per "osservazione"), poiché sono supportati sia da cmd.exe che da diskpart.exe.

Da cmd.exe in esecuzione come amministratore:

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

È tempo di riavviare per assicurarsi che tutto funzioni. Potrebbe essere necessario aggiornare le impostazioni dell'ordine di avvio del BIOS in modo che corrispondano alle modifiche. Nel mio caso, le impostazioni del BIOS erano già corrette, quindi ero bloccato in un ciclo di riavvio; ogni volta che volevo avviare il mio computer, dovevo selezionare manualmente la vecchia unità con la partizione EFI fuori posto.

Se tutto ha funzionato come previsto, sarai in grado di eliminare la vecchia partizione EFI. Se non ha funzionato o se il BIOS è ancora configurato per l'avvio dalla vecchia partizione, Windows non ti consentirà di eliminarlo, anche se si utilizza il flag override in diskpart.exe. Dato che probabilmente vuoi comunque sbarazzarti di quella vecchia partizione, eliminarla è un ottimo modo per assicurarti di avviare la nuova partizione.

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

2
Una risposta molto dettagliata e ben spiegata, che funziona! Grazie!
Kumarharsh,

3

So che questo è un vecchio post, ma penso che una buona risposta sia ancora richiesta da molti.

Questo è applicabile per Windows 7, 8, 10. Ed è valido anche per ID evento: 12290 se la partizione ESP si trova su un disco diverso da quello che è il sistema operativo attivo e deve essere eseguito il backup.

Scollegare innanzitutto qualsiasi altra unità contenente partizioni ESP, in modo da non modificarla accidentalmente.

Quindi devi creare una nuova partizione a 100 - 300 MB sul disco su cui vuoi risiedere la partizione ESP. Se l'unità è piena, prima devi ridurre una delle partizioni esistenti.

Avvio, nel mio caso, Xubuntu 13 (Ubuntu sopra 12.1 credo) da una chiavetta USB, dal vivo. Non installarlo.

Apri Gparted e crea la partizione e formattala in FAT32. Contrassegna l'unità come "avvio" e deseleziona qualsiasi altra partizione contrassegnata come "avvio". Se possibile, assegnare anche alla nuova partizione una lettera di unità. Altrimenti, puoi farlo con diskpart in seguito.

Riavvia e avvia ora con Windows (RE) Recovery dal DVD di installazione di Windows. Vai al prompt dei comandi. Avvia diskpart e assegna alla nuova partizione una lettera di unità se ciò non fosse possibile in Gparted. Esci da diskpart ma resta nel prompt dei comandi.

Ora hai intenzione di copiare i file necessari nella nuova partizione.

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

NOTA gli spazi! Esempio:bcdboot c:\Windows /s x: /f UEFI

Questo comando fornirà anche lo stato ESP della partizione.

Ricostruire il BCD usando il comando seguente:

bootrec /RebuildBcd

Ora quando ti viene chiesto quale sistema operativo desideri aggiungere alla partizione ESP, dici a quelli che vuoi includere e No a quelli a cui non vuoi avviare. Come nel mio caso ho recentemente aggiornato a Windows 10 e, come forse saprai, Windows memorizzerà il tuo vecchio Windows 7/8 per un po 'se non lo hai eliminato tu stesso. Questa copia del tuo vecchio sistema operativo non è qualcosa che normalmente ti piacerebbe poter avviare. Risiede normalmente in Windows.old. Quindi non scegliere l' alternativa All .

Non lo so, ma penso che questo comando cerchi solo installazioni di Windows. Se hai un sistema operativo Linux, ad esempio, sullo stesso computer. Quindi devi usare qualcosa come bcdedit in seguito per ottenere anche il boot meny.

C'è un ultimo comando, che non ho usato.

bootrec /fixboot

Ho provato a saperne di più sul comando e penso che abbia appena impostato il flag di avvio sulla partizione ESP e lo renda avviabile. Questo dovrebbe essere lo stesso di quando ho contrassegnato la partizione ESP come avvio in Gparted.

Se c'era un'altra partizione ESP che non desideri più, il modo più semplice è riavviare Linux / Gparted ed eliminarlo da lì.


Per me, tutto accade perfettamente fino a quando non viene bootrec /fixbootgenerato sempre lo stesso file non trovato errore.
Kumarharsh,

Sembra che Windows non monti automaticamente la partizione di Windows quando si trova su un'altra unità, causando sempre l'avvio non riuscito.
Jeroen,

1

Ho creato una nuova installazione su un nuovo disco SSD utilizzando ISO (DVD) di installazione W10 originale. L'installazione è andata al tipo di MBR anziché a GPT. Avevo bisogno di un avvio sicuro, quindi ho dovuto convertire questa nuova installazione (senza perdita di dati) da MBR a GPT.

Quindi ho creato spazio libero (260 MB) restringendo l'ultimo partiton NTFS alla fine del disco (ho avviato Linux da SystemRecueCD da chiavetta USB e usato gparted, ma è stato possibile utilizzare anche Disc manager da Windows 10).

Quindi ho formulato questa nuova piccola partizione su FAT32 (potrebbe essere fatta anche su Windows o su Linux). Ho copiato i file dall'EFI originale in questa nuova partizione (l'ho fatto in Linux perché a Windows non piacciono due dischi con lettera di unità denominata C :).

Quindi ho cambiato MBR in GPT di gdisk in Linux. Ho usato gdisk e quindi questa piccola partizione deve essere modificata per digitare ef00 (EFI) e contrassegnata come avviabile (dovrebbe essere solo una, quindi il flag di avvio deve essere rimosso dall'unità di avvio originale C :).

Quindi ho cambiato il tipo di avvio nel SETUP del notebook in UEFI, solo per essere sicuro che si avviasse davvero da EFI. Windows non si è avviato poiché mancava un file (con "efi" nel suo nome).

Quindi ho avviato dal DVD di installazione di Windows 10, selezionato "Sistema di salvataggio" e quindi qualcosa come "Risolvi i problemi di avvio". Quindi Win10 si è avviato senza problemi. Nessun intervento manuale richiesto da bcdboot.

La configurazione di EFI può essere verificata dall'utilità efibootmgr in Linux.


0

Bene, aggiungiamo ancora un'altra soluzione. Il mio obiettivo non era solo quello di copiare la partizione EFI, ma anche di tener conto dell'altro nascoste. Non sono sicuro se l'ordine conta (personalmente ne ho avuto uno diverso da quello descritto su msdn) ma w / e.

Comunque, ho usato GParted Live per l'impresa. Una volta avviato, riduci la partizione principale di Windows (che cosa dovrebbe essere C:) della stessa quantità di MiB delle partizioni mancanti sul nuovo disco e spostala alla fine. Questo richiederà del tempo.

Quindi, ho proceduto a creare una nuova partizione 16MiB appena sotto quella appena ridimensionata dove alla ddpartizione riservata Microsoft (per motivi che sembrano parted non è in grado di gestire FS non formattato). Come sempre, quando si utilizza dd, prestare molta attenzione ai comandi.

Una volta fatto sono tornato alla GUI GParted e ho impostato manualmente i flag e il nome giusti per la nuova partizione MSR, quindi ho eliminato quello originale. Ultimo ma non meno importante, ho finalmente copiato la partizione Recovery ed EFI dall'HDD originale all'SSD (e ho ripetuto l'operazione names / flag) ed eseguitosgdisk -s per correggere l'ordine delle partizioni.

Riavvia e guadagna! Non c'è bisogno di armeggiare con efibootmgr o bcdboot , almeno sul mio laptop ha trovato automaticamente il nuovo ESP.

MODIFICA: se durante l'estensione del primo disco, per qualche motivo Gestione disco di Windows lo converte in un volume dinamico. Controllare questa soluzione alternativa .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.