Mover la partición del sistema EFI a otra unidad

14

Tuve una instalación de Windows 8 en un HDD, usando UEFI como arranque. El HDD tiene la siguiente tabla 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

(Pido disculpas es en italiano, pero la traducción es bastante sencilla).

Recientemente compré una unidad SSD, la conecté e instalé un nuevo Windows 8. Ahora tengo un arranque dual que funciona, pero la partición UEFI está en la HDD en lugar de la SSD. Aquí está la lista de particiones SSD:

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

Creo que la mejor solución sería tenerlo en el SSD por dos razones:

El primero es el rendimiento (supongo que sería un poco más rápido en el SSD debido al tiempo de activación de un HDD, pero puedo estar equivocado al respecto).

La segunda razón es la consistencia. Como planeo usar solo la instalación de Windows 8 que se encuentra en el SSD y probablemente voy a borrar la partición del sistema en el HDD para usarla como un dispositivo de almacenamiento de datos, creo que la partición de arranque debería estar en el mismo conducir como el sistema operativo.

Entonces, la pregunta es ¿cómo muevo la partición del sistema EFI al SSD?

Pincopallino
fuente

Respuestas:

4

Mi recomendación es no molestarse. La mejora del rendimiento será insignificante, porque los archivos leídos desde el ESP son pequeños y se leen solo cuando la computadora arranca. Además, la partición en sí es pequeña según los estándares modernos, por lo que no recuperará suficiente espacio para que el esfuerzo valga la pena. Además, el intento de mover el ESP corre el riesgo de crear problemas de arranque que requerirán mucho más tiempo para solucionarlo que cualquier tiempo que pueda ahorrar en un tiempo de arranque mejorado desde el movimiento.

Si desea seguir adelante y hacer esto como una experiencia de aprendizaje a pesar de mi recomendación, deberá investigar:

  • Crear un ESP con el software de particionamiento que desee. No estoy seguro de cómo haría esto con las herramientas estándar de Windows. Con gdisk, crearía una partición del tipo EF00, pero luego necesitaría crear un sistema de archivos FAT, ya que gdiskes una herramienta de solo particionamiento (no maneja sistemas de archivos).
  • Montaje de ambos ESP simultáneamente para copiar archivos (o en secuencia usando almacenamiento temporal). No estoy seguro de cómo hacer esto en Windows, aunque sería fácil en Linux o desde un shell EFI. (De hecho, sería automático en un shell EFI).
  • Registrando el gestor de arranque en su nuevo hogar. (El uso del nombre de archivo alternativo de EFI\BOOT\bootx64.efiprobablemente sería una alternativa más simple, pero es el método menos preferido para cargar el cargador de arranque). El bcdeditcomando de Windows y la bcfgherramienta del shell EFI pueden registrar los cargadores de arranque; sin embargo, bcdedites inflexible porque Windows solo admite un ESP, lo que crea problemas al copiar el ESP.
Rod Smith
fuente
Gracias por su respuesta. Bueno, en realidad prefiero tener el ESP en el SSD porque podría decidir eliminar el HDD. Así que creo que el ESP debería estar en la unidad del sistema operativo. De todos modos, ¿cómo se hace el último punto?
Pincopallino
No importa, logré mover la partición al SSD y Windows arranca regularmente. ¡Muchas gracias!
Pincopallino
Aquí hay información interesante que probablemente sea MUY valiosa para explicar lo que está sucediendo en un CÓMO generalizado, pero sin responder realmente: "Entonces, la pregunta es ¿cómo muevo la partición del sistema EFI al SSD?" He pasado días de mi vida tratando de recuperarme de una mala decisión hace un par de años y todavía me persigue y, en resumen, todo se reduce a reubicar mi partición EFI, así que me encantaría ver una buena respuesta.
rainabba
Es de destacar que tener dos particiones EFI a veces hace que la actualización de Windows falle de maneras extremadamente oscuras, por lo tanto, elimine la anterior después de moverla.
Jack Wasey
14

Para personas como yo que vienen de Google: Sí, es posible hacer esto con Windows, sin herramientas de terceros. Probado con Windows 10 Pro x64. Usé este procedimiento para mover tanto la partición del sistema EFI como la partición reservada del sistema. También debería funcionar en Windows 8.

Si su unidad principal no tiene espacio, primero deberá reducir su partición C: (o equivalente). Estoy usando 260 MB en este ejemplo, ya que eso es lo que requieren las unidades más nuevas, pero las unidades más antiguas con sectores más pequeños solo requieren 100 MB. Si no necesita hacer espacio, tome nota de los comentarios que indican qué pasos debe omitir.

Mientras lo hace, probablemente quiera mover su partición reservada del sistema. Por lo general, son 1000 MB y almacenan metadatos útiles de Windows. Es posible que algunas funciones de Windows no funcionen sin una partición reservada del sistema. Incluí los pasos para crear dicha partición en su unidad principal y marqué esos pasos con comentarios. Debería ser fácil excluir esos pasos si prefiere omitirlos, pero deberá modificar los números al reducirlos (por ejemplo, 260 MB en lugar de 1260 MB).

Los comentarios tienen el prefijo REM(para "comentario"), ya que son compatibles con cmd.exe y diskpart.exe.

Desde cmd.exe que se ejecuta como administrador:

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

Es hora de reiniciar para asegurarse de que todo funcione. Es posible que deba actualizar la configuración del orden de inicio de BIOS para que coincida con los cambios. En mi caso, la configuración del BIOS ya era correcta, por lo que estaba atascado en un bucle de reinicio; Cada vez que quería arrancar mi computadora, tenía que seleccionar manualmente el disco viejo con la partición EFI fuera de lugar.

Si todo funcionó como se esperaba, podrá eliminar la antigua partición EFI. Si no funcionó, o su BIOS todavía está configurado para arrancar desde la partición anterior, Windows no le permitirá eliminarlo, incluso si usa el indicador de anulación en diskpart.exe. Como probablemente quiera deshacerse de esa vieja partición de todos modos, eliminarla es una excelente manera de asegurarse de que está arrancando desde la nueva partición.

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
fuente
2
Una respuesta muy detallada y bien explicada, ¡que funciona! ¡Gracias!
kumarharsh
3

Sé que esta es una publicación antigua, pero creo que muchos todavía quieren una buena respuesta.

Esto es aplicable para Windows 7, 8, 10. Y también es válido para Id. De evento: 12290 si la partición ESP está situada en un disco distinto del que es el sistema operativo activo y se va a hacer una copia de seguridad.

Primero desconecte cualquier otra unidad que contenga particiones ESP, para que no la cambie accidentalmente.

Luego debe crear una nueva partición de 100 a 300 MB en el disco en el que desea que resida la partición ESP. Si la unidad está llena, primero debe reducir una de las particiones existentes.

Arranque, en mi caso, Xubuntu 13 (Ubuntu superior a 12.1, creo) desde una memoria USB, en vivo. No lo instales.

Abra Gparted y cree la partición y formateela en FAT32. Marque la unidad como "arranque" y desmarque cualquier otra partición marcada como "arranque". Asigne también a la nueva partición una letra de unidad si es posible. Si no, puede hacerlo con diskpart más adelante.

Reinicie y ahora inicie con Windows (RE) Recovery desde el DVD de instalación de Windows. Vaya al símbolo del sistema. Inicie diskpart y asigne a la nueva partición una letra de unidad si eso no fuera posible en Gparted. Salga de diskpart pero permanezca en el símbolo del sistema.

Ahora va a copiar los archivos necesarios en la nueva partición.

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

¡NOTA los espacios! Ejemplo:bcdboot c:\Windows /s x: /f UEFI

Este comando también le dará a la partición el estado ESP.

Reconstruya el BCD con el siguiente comando:

bootrec /RebuildBcd

Ahora, cuando se le pregunta qué sistema operativo desea agregar a la partición ESP, dice a los que desea incluir y No a los que no desea poder iniciar. Como en mi caso, recientemente actualicé a Windows 10, y como ya sabrán, Windows almacenará su antiguo Windows 7/8 por un tiempo si no lo ha eliminado usted mismo. Esta copia de su sistema operativo anterior no es algo en lo que normalmente le gustaría poder iniciar. Normalmente reside en Windows.old. Así que no elijas la alternativa All .

No lo sé, pero creo que este comando solo busca instalaciones de Windows. Si tienes un sistema operativo Linux, por ejemplo, en la misma computadora. Luego, debe usar algo como bcdedit después para obtener el arranque también.

Hay un último comando, que no usé.

bootrec /fixboot

He intentado obtener más información sobre el comando y creo que simplemente establece el indicador de arranque en la partición ESP y lo hace arrancable. Esto debería ser lo mismo que cuando marqué la partición ESP como arranque en Gparted.

Si había otra partición ESP que ya no desea, la forma más fácil es iniciar nuevamente en Linux / Gparted y eliminarlo desde allí.

Joelbit
fuente
Para mí, todo sucede a la perfección hasta que se trata de bootrec /fixbootque arroje el mismo archivo de error no encontrado cada vez.
kumarharsh
Parece que Windows no monta automáticamente la partición de Windows cuando está en otra unidad, lo que hace que el arranque siempre falle.
Jeroen
1

Creé una nueva instalación en un nuevo disco SSD utilizando la instalación original W10 ISO (DVD). La instalación fue al tipo MBR en lugar de GPT. Necesitaba un arranque seguro, así que tuve que convertir esta nueva instalación (sin pérdida de datos) de MBR a GPT.

Luego creé espacio libre (260 MB) reduciendo la última partición NTFS al final del disco (inicié Linux desde SystemRecueCD desde una memoria USB y usé gparted, pero también se pudo usar el administrador de discos de Windows 10).

Luego formateé esta nueva partición pequeña en FAT32 (también se podría hacer en Windows o en Linux). Copié archivos del EFI original a esta nueva partición (lo hice en Linux porque a Windows no le gustan dos discos con letra de unidad llamada C :).

Luego cambié MBR a GPT por gdisk en Linux. Usé gdisk y luego esta pequeña partición tiene que cambiarse para escribir ef00 (EFI) y marcarse como de arranque (debe ser solo una, por lo que el indicador de arranque debe eliminarse de la unidad de arranque original C :).

Luego cambié el tipo de arranque en la CONFIGURACIÓN de la computadora portátil a UEFI solo para asegurarme de que realmente arranca con EFI. Windows no se inició ya que faltaba algún archivo (con 'efi' en su nombre).

Luego arranqué desde el DVD de instalación de Windows 10, elegí "Sistema de rescate" y luego algo como "Solucionar problemas de arranque". Entonces Win10 arrancó sin problema. Bcdboot no necesita ninguna intervención manual.

La configuración de EFI podría verificarse mediante la utilidad efibootmgr en Linux.

Milan Kerslager
fuente
0

Bueno, agreguemos otra solución más. Mi objetivo no era solo copiar la partición EFI, sino incluso tener en cuenta las otras ocultas. No estoy seguro de si el pedido es importante (personalmente tuve uno diferente al descrito en msdn) pero w / e.

De todos modos, usé GParted Live para la hazaña. Una vez que lo haya arrancado, reduzca la partición principal de Windows (lo que debería ser C:) de la misma cantidad de MiB de las particiones que falta en el nuevo disco y muévala hasta el final. Esto tomará algún tiempo.

Luego, procedí a hacer una nueva partición de 16MiB justo debajo de la recientemente redimensionada donde estaba ddla partición reservada de Microsoft (por razones parece que la partición no puede manejar FS sin formato). Como siempre, cuando use dd, tenga mucho cuidado con los comandos.

Una vez hecho, volví a GParted GUI y configuré manualmente los marcadores y el nombre correctos para la nueva partición MSR, luego eliminé la original. Por último, pero no menos importante, finalmente copié la partición de recuperación y EFI del HDD original al SSD (y repetí los nombres / operación de marca) y ejecuté sgdisk -spara arreglar el orden de la partición.

Reiniciar y obtener ganancias! No es necesario jugar con efibootmgr o bcdboot , al menos en mi computadora portátil encontró automáticamente el nuevo ESP.

EDITAR: si al extender el primer disco, por alguna razón, Windows Disk Manager lo convierte en un volumen dinámico. Verifique esta solución .

mirh
fuente