13

У меня была установка Windows 8 на жесткий диск с использованием UEFI в качестве загрузочного. Жесткий диск имеет следующую таблицу 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

(Я извиняюсь, это на итальянском языке, но перевод довольно прост).

Недавно я купил SSD-накопитель, подключил его и установил свежую Windows 8. Теперь у меня есть работающая двойная загрузка, но раздел UEFI находится на жестком диске вместо SSD. Вот список разделов SDD:

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

Я думаю, что лучшим решением было бы иметь его на SSD по двум причинам:

во-первых, это производительность (я думаю, что это будет немного быстрее на SSD из-за времени раскрутки HDD, но я могу ошибаться в этом)

Вторая причина - последовательность. Поскольку я планирую использовать только установку Windows 8, которая находится на SSD, и я, вероятно, собираюсь стереть системный раздел на жестком диске, чтобы использовать его в качестве устройства хранения данных, я думаю, что загрузочный раздел должен быть на том же диск как ОС.

Итак, вопрос в том, как переместить системный раздел EFI на SSD?

5 ответов5

6

Для таких людей, как я, пришедших из Google: да, это можно сделать с помощью Windows, без каких-либо сторонних инструментов. Протестировано с Windows 10 Pro x64. Я использовал эту процедуру для перемещения как системного раздела EFI, так и раздела System Reserved. Это должно работать и на Windows 8.

Если вашему основному диску не хватает места, сначала вам нужно сжать раздел C: (или эквивалентный). В этом примере я использую 260 МБ, поскольку это то, что требуется новым дискам, но более старые диски с меньшими секторами требуют только 100 МБ. Если вам не нужно выделять место, обратите внимание на комментарии, в которых указано, какие шаги следует пропустить.

Пока вы это делаете, вы, вероятно, захотите переместить раздел System Reserved. Обычно они составляют 1000 МБ и содержат полезные метаданные Windows. Вы можете обнаружить, что некоторые функции Windows не работают без раздела System Reserved. Я включил шаги по созданию такого раздела на вашем основном диске и пометил эти шаги комментариями. Должно быть легко исключить эти шаги, если вы предпочли бы их пропустить, но вам нужно будет изменить числа при сокращении (например, 260 МБ вместо 1260 МБ).

Комментарии имеют префикс REM (для "примечания"), поскольку они поддерживаются как cmd.exe, так и diskpart.exe.

Из cmd.exe, работающего от имени администратора:

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

Пришло время перезагрузки, чтобы убедиться, что все работает. Возможно, вам придется обновить настройки порядка загрузки BIOS, чтобы они соответствовали изменениям. В моем случае настройки BIOS были уже правильными, поэтому я застрял в цикле перезагрузки; каждый раз, когда я хотел загрузить свой компьютер, мне приходилось вручную выбирать старый диск с неуместным разделом EFI.

Если все работает, как ожидалось, вы сможете удалить старый раздел EFI. Если это не сработало или ваш BIOS все еще настроен на загрузку со старого раздела, Windows не позволит вам удалить его, даже если вы используете флаг переопределения в diskpart.exe. Поскольку вы, вероятно, все равно хотите избавиться от этого старого раздела, удаление его - отличный способ убедиться, что вы загружаетесь с нового раздела.

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
4

Моя рекомендация не беспокоить. Повышение производительности будет незначительным, поскольку файлы, считываемые с ESP, крошечные и читаются только при загрузке компьютера. Более того, сам раздел по современным меркам крошечный, поэтому вы не сможете восстановить достаточно места, чтобы затратить усилия. Кроме того, попытка переместить ESP создает риск возникновения проблем с загрузкой, для устранения которых потребуется гораздо больше времени, чем в любое время, которое вы могли бы сэкономить, улучшив время загрузки после перемещения.

Если вы хотите пойти дальше и сделать это как учебный опыт, несмотря на мои рекомендации, вам нужно изучить:

  • Создание ESP с любым программным обеспечением для разметки, которое вам нравится. Я не уверен, как бы вы сделали это с помощью стандартных инструментов Windows. С gdisk вы бы создали раздел типа EF00, но затем вам нужно было бы создать на нем файловую систему FAT, так как gdisk - это инструмент только для разделения (он не обрабатывает файловые системы).
  • Монтирование обоих ESP одновременно для копирования файлов (или последовательно с использованием временного хранилища). Я не уверен, как это сделать в Windows, хотя это будет легко в Linux или из оболочки EFI. (На самом деле это будет автоматически в оболочке EFI.)
  • Регистрация загрузчика в новом доме. (Использование альтернативного имени файла EFI\BOOT\bootx64.efi , вероятно, будет более простой альтернативой, но является менее предпочтительным методом загрузки загрузчика.) Команда Windows bcdedit и инструмент bcfg оболочки EFI могут зарегистрировать загрузчики; однако bcdedit негибкий, потому что Windows поддерживает только один ESP, что создает проблемы при копировании ESP.
2

Я знаю, что это старый пост, но я думаю, что многие все еще хотят получить хороший ответ.

Это применимо для Windows 7, 8, 10. И действительно также для идентификатора события: 12290, если EFI-раздел расположен на диске, отличном от того, который является активной ОС и для которого необходимо создать резервную копию.

Сначала отключите любой другой диск, содержащий EFI-разделы, чтобы случайно не изменить его.

Затем вам нужно создать новый раздел размером 100-300 МБ на диске, на котором вы хотите разместить EFI-раздел. Если диск заполнен, сначала вам нужно сжать один из существующих разделов.

Загрузите, в моем случае, xubuntu 13 (думаю, Ubuntu выше 12.1) с USB-флешки, живите. Не устанавливайте это.

Откройте Gparted, создайте раздел и отформатируйте его в FAT32. Отметьте диск как "загрузочный" и отключите любой другой раздел, помеченный как "загрузочный". Также назначьте новому разделу букву диска, если это возможно. Если нет, вы можете сделать это позже с помощью diskpart.

Перезагрузите компьютер и загрузитесь с помощью Windows (RE) Recovery с установочного DVD-диска Windows. Перейти к командной строке. Запустите diskpart и назначьте новый раздел буквой диска, если это было невозможно в Gparted. Выйдите из diskpart, но оставайтесь в командной строке.

Теперь вы собираетесь скопировать необходимые файлы в новый раздел.

{bcdboot /S: /f UEFI} ЗАМЕТЬТЕ пробелы!

Пример: {bcdboot c:\Windows /s: /f UEFI}

Эта команда также даст EFI-статус раздела.

Восстановите BCD с помощью следующей команды:

{bootrec /RebuildBcd}

Теперь, когда вас спрашивают, какую ОС вы хотите добавить в раздел EFI, вы отвечаете «Да» тем, которые хотите включить, и «Нет» тем, в которые вы не хотите загружаться. Как и в моем случае, я недавно обновился до Windows 10, и, как вы, возможно, знаете, Windows будет некоторое время хранить вашу старую Windows 7/8, если вы не удалили ее самостоятельно. Эта копия вашей старой ОС - это не то, что вы обычно любите загружать. Это обычно повторяется в Windows.old. Так что не выбирайте альтернативу All.

Я не знаю, но я думаю, что эта команда ищет только установки Windows. Если вы получили ОС Linux, например, на том же компьютере. Затем вам нужно будет использовать что-то вроде bcdedit, чтобы также включить меню загрузки.

Есть последняя команда, ведь я не использовал ее.

{bootrec /fixboot}

Я попытался узнать больше о команде и думаю, что она просто устанавливает флаг загрузки на efi-разделе и делает его загрузочным. Это должно быть так же, как когда я помечал efi-раздел как загрузочный в Gparted.

Если был другой раздел efi, который вам больше не нужен, проще всего снова загрузиться в linux/gparted и удалить его оттуда.

1

Я создал новую установку на новый диск SSD, используя подлинный установочный ISO-образ W10 (DVD). Установка шла по типу MBR вместо GPT. Мне нужна была безопасная загрузка, поэтому мне пришлось преобразовать эту новую установку (без потери данных) из MBR в GPT.

Затем я создал свободное пространство (260 МБ), уменьшив последний раздел NTFS в конце диска (я загрузил Linux с SystemRecueCD с USB-накопителя и использовал gparted, но можно также использовать Disc Manager из Windows 10).

Затем я отформатировал этот новый небольшой раздел в FAT32 (это можно сделать и в Windows или в Linux). Я скопировал файлы из исходного EFI в этот новый раздел (я сделал это в Linux, потому что Windows не нравится два диска с буквой диска C:).

Затем я изменил MBR на GPT с помощью gdisk в Linux. Я использовал gdisk, и затем этот небольшой раздел должен быть изменен на тип ef00 (EFI) и помечен как загрузочный (должен быть только один, поэтому флаг загрузки должен быть удален с исходного загрузочного диска C:).

Затем я изменил тип загрузки в SETUP ноутбука на UEFI-only, только чтобы быть уверенным, что он действительно загружается EFI. Windows не загрузилась, так как отсутствовал какой-то файл (с именем «efi»).

Затем я загрузился с установочного DVD-диска Windows 10, выбрал "Rescue system", а затем что-то вроде "Исправление проблем загрузки". Затем Win10 загрузился без проблем. Для bcdboot не требуется ручного вмешательства.

Конфигурация EFI может быть проверена утилитой efibootmgr в Linux.

0

Что ж, давайте добавим еще одно решение. Моей целью было не только скопировать раздел EFI, но и учесть другие скрытые. Я не уверен, имеет ли значение заказ (лично у меня был другой, чем тот, который описан на MSDN), но с W / E.

Во всяком случае, я использовал GParted Live для подвига. Как только вы загрузитесь, уменьшите основной раздел Windows (который должен быть C: на то же количество MiB разделов, которые отсутствуют на новом диске, и переместите его до конца. Это займет некоторое время.

Затем я продолжил делать новый раздел 16MiB чуть ниже недавно измененного размером один , где dd Microsoft защищены раздела (по причинам , кажется , как расстались не в состоянии справиться с неформатированным FS). Как всегда, при использовании dd, будьте предельно осторожны с командами.

После этого я вернулся к графическому интерфейсу GParted и вручную установил правильные флаги и имя для нового раздела MSR, а затем удалил исходный. Наконец, что не менее важно , я наконец скопировал раздел Recovery и EFI с исходного жесткого диска на SSD (и повторил операцию names/flag) и запустил sgdisk -s чтобы исправить порядок разделов.

Перезагрузитесь и получайте прибыль! Не нужно возиться с efibootmgr или bcdboot, по крайней мере, на моем ноутбуке он автоматически обнаружил новый ESP.

РЕДАКТИРОВАТЬ: если при расширении первого диска, по какой-то причине Windows Disk Manager преобразует его в динамический том. Проверьте этот обходной путь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .