I had a Windows 8 installation on an HDD, using UEFI as boot. The HDD has the following GPT table:
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
(I apologize it's in Italian, but the translation is quite straightforward).
I recently bought an SSD drive, connected it and installed a fresh Windows 8. Now I have a working dual boot, but the UEFI partition is on the HDD instead of the SSD. Here's the SSD partition list:
Partizione ### Tipo Dim. Offset
--------------- ---------------- ------- -------
Partizione 1 Riservato 128 Mb 1024 Kb
Partizione 2 Primario 221 Gb 129 Mb
I think that the best solution would be to have it on the SSD for two reasons:
The first is performance (I guess it would be a little be faster on the SSD due to the spin up time for an HDD, but I may be wrong about that.)
second reason is consistency. As I plan to use only the Windows 8 installation that is located on the SSD and I'm probably going to erase the system partition on the HDD to use it as a data storage device, I think that the boot partition should be on the same drive as the OS.
So the question is how do I move the EFI System Partition to the SSD?
Best Answer
My recommendation is to not bother. The performance improvement will be negligible, because the files read from the ESP are tiny and are read only when the computer boots. Furthermore, the partition itself is tiny by modern standards, so you won't recover enough space to make the effort worthwhile. Furthermore, the attempt to move the ESP runs a risk of creating boot problems that will take far more time to fix than any time you could possibly save in improved boot time from the move.
If you want to go ahead and do this as a learning experience despite my recommendation, you'll need to look into:
gdisk
, you'd create a partition of type EF00, but you'd then need to create a FAT filesystem on it, sincegdisk
is a partitioning-only tool (it doesn't handle filesystems).EFI\BOOT\bootx64.efi
would likely be a simpler alternative, but is the less preferred method of loading the boot loader.) The Windowsbcdedit
command and the EFI shell'sbcfg
tool can both register boot loaders; however,bcdedit
is inflexible because Windows supports just one ESP, which creates problems when copying the ESP.