Переместить системный раздел EFI на другой диск


14

У меня была установка Windows 8 на HDD с использованием 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. Вот список разделов SSD:

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?

Ответы:


4

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

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

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

Спасибо за ваш ответ. Ну, на самом деле я предпочитаю иметь ESP в SSD, потому что я могу решить удалить HDD. Поэтому я считаю, что ESP должен быть на диске ОС. Во всяком случае, как делается последний пункт?
Пинкопаллино

Неважно, мне удалось переместить раздел на SSD и Windows загружается регулярно. Большое спасибо!
Pincopallino

Здесь есть некоторая интересная информация, которая, вероятно, была бы ОЧЕНЬ полезна для объяснения того, что происходит в обобщенном HOWTO, но на самом деле не отвечала: «Итак, вопрос в том, как мне переместить системный раздел EFI на SSD?» Я провел дни своей жизни, пытаясь оправиться от плохого решения пару лет назад, и это все еще преследует меня, и вкратце, все сводится к перемещению моего раздела EFI, поэтому я хотел бы получить хороший ответ.
Rainabba

Следует отметить, что наличие двух разделов EFI иногда приводит к сбою обновления Windows крайне непонятным образом, поэтому удалите старый после перемещения.
Джек Васи

14

Для таких людей, как я, из 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

2
Очень подробный и хорошо объясненный ответ, который работает! Благодарность!
kumarharsh

3

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

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

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

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

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

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

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

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

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

ЗАМЕТЬТЕ пробелы! Пример:bcdboot c:\Windows /s x: /f UEFI

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

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

bootrec /RebuildBcd

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

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

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

bootrec /fixboot

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

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


Для меня все происходит идеально, пока не доходит до того, bootrec /fixbootчто просто выкидывает один и тот же файл не найденная ошибка каждый раз.
kumarharsh

Кажется, что Windows не монтирует раздел Windows автоматически, когда он находится на другом диске, в результате чего всегда происходит сбой загрузки.
Йерун

1

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

Затем я создал свободное пространство (260 МБ), сжав последний раздел NTFS в конце диска (я загрузил Linux с SystemRecueCD с USB-накопителя и использовал gparted, но можно использовать и диспетчер дисков из 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 разделов, которые отсутствуют на новом диске, и переместите его до конца. Это займет некоторое время.

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

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.