Перемістіть системний розділ EFI на інший диск


14

У мене була установка Windows 8 на жорсткому диску, використовуючи UEFI в якості завантажувача. HDD має таку таблицю 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, ви б створили розділ типу EF00, але потім знадобиться створити на ньому файлову систему FAT, оскільки gdiskце інструмент, призначений лише для розділення (він не обробляє файлові системи).
  • Монтаж обох ESP одночасно для копіювання файлів (або послідовно з використанням тимчасового зберігання). Я не впевнений, як це зробити в Windows, хоча це було б легко в Linux або з оболонки EFI. (Фактично це було б в оболонці EFI.)
  • Реєстрація завантажувача в новому будинку. (Використання імені резервного файлу EFI\BOOT\bootx64.efi, можливо, буде простішою альтернативою, але це менш бажаний спосіб завантаження завантажувача.) Команда Windows bcdeditта bcfgінструмент оболонки EFI можуть реєструвати завантажувачі; однак bcdeditвін негнучкий, оскільки Windows підтримує лише один ESP, що створює проблеми при копіюванні ESP.

Спасибі за вашу відповідь. Ну, я фактично вважаю за краще мати ESP в SSD, тому що я можу вирішити видалити жорсткий диск. Тому я думаю, що ESP повинен бути на дисководі ОС. У будь-якому випадку, як робиться останній пункт?
Pincopallino

Неважливо, мені вдалося регулярно переміщати розділ на SSD та Windows. Велике спасибі!
Pincopallino

Тут є якась цікава інформація, яка може бути ДУЖЕ цінною для пояснення того, що відбувається в узагальненому HOWTO, але насправді не відповідає: "Отже, питання полягає в тому, як мені перемістити системний розділ EFI на SSD?" Я провів дні свого життя, намагаючись оговтатися від поганого рішення пару років тому, і це все ще переслідує мене, і коротше кажучи, воно зводиться до перенесення мого розділу EFI, тому я хотів би побачити гарну відповідь.
rainabba

Зверніть увагу, наявність двох розділів EFI іноді призводить до виходу з ладу оновлення Windows надзвичайно незрозумілими способами, тому видаліть старий після переміщення.
Джек Уейсі

14

Для таких людей, як я, які походять з Google: Так, це можна зробити за допомогою Windows, без сторонніх інструментів. Тестовано з Windows 10 Pro x64. Я використовував цю процедуру для переміщення як розділу системи EFI, так і системного зарезервованого розділу. Він також повинен працювати на Windows 8.

Якщо вашому первинному накопичувачу не вистачає місця, спочатку вам потрібно буде зменшити свій C: розділ (або його аналог). У цьому прикладі я використовую 260 МБ, оскільки для цього потрібні нові диски, але для старих дисків з меншими секторами потрібно лише 100 Мб. Якщо вам не потрібно робити місце, візьміть до уваги коментарі, які вказують, які кроки слід пропустити.

Поки ви перебуваєте на цьому, ви, ймовірно, хочете перемістити свій системний зарезервований розділ. Зазвичай це 1000 Мб і зберігають корисні метадані Windows. Ви можете виявити, що деякі функції Windows не працюють без системного резервного розділу. Я включив етапи створення такого розділу на вашому основному диску та позначив ці кроки коментарями. Виключити ці кроки має бути просто, якщо ви хочете їх пропустити, але вам потрібно буде змінити цифри при скороченні (наприклад, 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
Дуже детальна і добре пояснена відповідь, яка працює! Спасибі!
кумархарш

3

Я знаю, що це старий пост, але я гадаю, що хорошої відповіді багато хто хоче.

Це стосується Windows 7, 8, 10. І також справедливий для ідентифікатора події: 12290, якщо розділ ESP розміщений на іншому диску, а не на тому, який є активною ОС та має бути резервне копіювання.

Спочатку від'єднайте будь-який інший накопичувач, що містить розділи ESP, так що ви випадково не зміните його.

Тоді вам доведеться створити новий розділ розміром 100 - 300 Мб на диску, на якому потрібно розмістити розділ ESP. Якщо накопичувач повний, спочатку вам потрібно зменшити один з існуючих розділів.

Завантажте, у моєму випадку, Xubuntu 13 (Ubuntu вище 12,1, я думаю) з USB-накопичувача, наживо. Не встановлюйте його.

Відкрийте Gparted та створіть розділ та відформатуйте його на FAT32. Позначте диск як "завантажувальний" і відмініть будь-який інший розділ, позначений як "завантажувач". Крім того, призначте новому розділу літеру диска, якщо це можливо. Якщо ні, то ви можете зробити це з diskpart згодом.

Перезапустіть і тепер завантажтеся з відновленням Windows (RE) з інсталяційного 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. Тому не вибирайте альтернативу " Всі" .

Я не знаю, але я думаю, що ця команда шукає лише установки Windows. Якщо у вас є ОС Linux, наприклад, на тому ж комп'ютері. Тоді вам доведеться скористатися чимось на кшталт bcdedit згодом, щоб отримати ще й на завантаженні.

Є остання команда, яку я не використав.

bootrec /fixboot

Я спробував дізнатися більше absout команди, і я думаю, що вона просто встановила прапор завантаження на розділі ESP і робить його завантажувальним. Це має бути те саме, що коли я позначив розділ ESP як завантажувач у Gparted.

Якщо був ще один розділ ESP, який ви більше не хочете, найпростіший спосіб - знову завантажитися в Linux / Gparted і видалити його звідти.


Для мене все відбувається ідеально до тих пір, поки воно не прийде до того, bootrec /fixbootщо щоразу кидає один і той самий файл, не знайдений помилку.
кумархарш

Здається, що Windows не автоматично монтує розділ Windows, коли він знаходиться на іншому диску, внаслідок чого завантаження завжди виходить з ладу.
Jeroen

1

Я створив нову інсталяцію на новому диску SSD за допомогою справжньої установки W10 ISO (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, щоб переконатися, що він справді завантажується EFI. Windows не завантажувався, оскільки якийсь файл відсутній (у назві "efi").

Потім я завантажився з інсталяційного DVD з Windows 10, вибрав "Система порятунку", а потім щось на кшталт "Виправлення проблем із завантаженням". Тоді Win10 завантажився без проблем. Bcdboot не потребує ручного наміру.

Конфігурацію EFI можна перевірити за допомогою утиліти efibootmgr в Linux.


0

Що ж, додамо ще одне рішення. Моєю метою було не лише копіювання розділу EFI, але навіть врахування інших прихованих. Я не впевнений, чи має значення порядок (я особисто мав інший, ніж описано в msdn), але ж / е.

У всякому разі, я використовував GParted Live для подвигу. Як тільки ви завантажили його, зменшіть основний розділ Windows (який має бути C:) на ту ж кількість MiB розділів, яких вам не вистачає на новому диску, і перемістіть його до кінця. Це займе певний час.

Потім я перейшов до створення нового розділу 16MiB трохи нижче того, щойно змінив розмір, де ddрозміщений розділ Майкрософт (з причин, схоже, що розлучений не може обробити неформатований FS). Як завжди, використовуючи dd, будьте вкрай обережні з командами.

Після завершення я повернувся до GParted GUI і вручну встановив правильні прапори та ім’я для нового розділу MSR, а потім видалив оригінальний. І останнє, але не менш важливе, я нарешті скопіював розділ Recovery і EFI з оригінального жорсткого диска на SSD (і повторив операцію з іменами / прапором) і запустив, sgdisk -sщоб виправити порядок розділів.

Перезавантажте і отримайте прибуток! Не потрібно повозитися з efibootmgr або bcdboot , принаймні на моєму ноутбуці він автоматично знайшов новий ESP.

EDIT: якщо під час розширення першого диска з якихось причин диспетчер дисків Windows перетворює його на динамічний обсяг. Перевірте це рішення .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.