Posteriormente a consultar con expertos en esta materia, programadores de diversas áreas y profesores hemos dado con la respuesta al dilema y la compartimos en esta publicación.
Solución:
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. Utilicé 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 carece de 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 desee mover su partición reservada para el sistema. Por lo general, son 1000 MB y almacenan metadatos útiles de Windows. Es posible que algunas características de Windows no funcionen sin una partición reservada para el sistema. Incluí los pasos para crear dicha partición en su unidad principal y los marqué con comentarios. Debería ser fácil excluir esos pasos si prefiere omitirlos, pero deberá modificar los números al reducir (por ejemplo, 260 MB en lugar de 1260 MB).
Los comentarios tienen el prefijo REM
(para “comentario”), ya que son compatibles tanto con cmd.exe como con diskpart.exe.
Desde cmd.exe ejecutándose 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 del BIOS para que coincida con los cambios. En mi caso, la configuración del BIOS ya era correcta, así que me quedé atrapado en un ciclo de reinicio; cada vez que quería arrancar mi computadora, tenía que seleccionar manualmente la unidad anterior con la partición EFI perdida.
Si todo funcionó como se esperaba, podrá eliminar la antigua partición EFI. Si no funcionó, o su BIOS aún 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. Dado que probablemente desee deshacerse de esa partición anterior de todos modos, eliminarla es una excelente manera de asegurarse de que está iniciando 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
Mi recomendación es que no se moleste. La mejora del rendimiento será insignificante, porque los archivos leídos del ESP son pequeños y solo se leen cuando se inicia la computadora. Además, la partición en sí es pequeña para 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 solucionarlos que cualquier otro tiempo que podría ahorrar al mejorar el tiempo de arranque desde el movimiento.
Si desea seguir adelante y hacer esto como una experiencia de aprendizaje a pesar de mi recomendación, deberá investigar:
- Creando un ESP con cualquier software de partición 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 de tipo EF00, pero luego necesitaría crear un sistema de archivos FAT en ella, ya quegdisk
es 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. (Sería automático en un shell EFI, de hecho).
- Registrando el cargador de arranque en su nuevo hogar. (Usando el nombre de archivo de respaldo de
EFIBOOTbootx64.efi
probablemente sería una alternativa más simple, pero es el método menos preferido para cargar el cargador de arranque).bcdedit
comando y el shell EFIbcfg
la herramienta puede registrar cargadores de arranque; sin embargo,bcdedit
es inflexible porque Windows solo admite un ESP, lo que crea problemas al copiar el ESP.
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á ubicada en un disco que no sea el que es el sistema operativo activo y se va a realizar 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 por encima de 12.1, creo) desde una memoria USB, en vivo. No lo instale.
Abra Gparted, cree la partición y formatéela en FAT32. Marque la unidad como “arranque” y quite la marca de cualquier otra partición marcada como “arranque”. También asigne a la nueva partición una letra de unidad si es posible. De lo contrario, 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 fue 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
¡OBSERVE los espacios! Ejemplo: bcdboot c:Windows /s x: /f UEFI
Este comando también le dará el estado ESP de la partición.
Reconstruya el BCD usando el siguiente comando:
bootrec /RebuildBcd
Ahora, cuando se le pregunta qué sistema operativo le gustaría agregar a la partición ESP, dice sí a los que quieras incluir y No a los que no desea poder iniciar. Como en mi caso, recientemente actualicé a Windows 10 y, como sabrá, Windows almacenará su antiguo Windows 7/8 por un tiempo si no lo ha eliminado usted mismo. Esta copia de su antiguo sistema operativo no es algo que normalmente le gustaría poder iniciar. Normalmente reside en Windows.old
. Así que no elijas el Todos alternativa.
No lo sé, pero creo que este comando solo busca instalaciones de Windows. Si tiene un sistema operativo Linux, por ejemplo, en la misma computadora. Luego, debe usar algo como bcdedit después para obtener el menú de arranque también.
Hay un último comando que no utilicé.
bootrec /fixboot
He intentado aprender más 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 el mismo que cuando señalé 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 reiniciar en Linux / Gparted nuevamente y eliminarla desde allí.
Recuerda difundir este tutorial si te ayudó.