Неможливо розширити диск в Windows через розділу відновлення

На одній з тестових віртуальних машин зіткнувся з тим, що на системному диску C: стало закінчуватися вільне місце. Я збільшив розмір диска в налаштуваннях віртуальної машини і перейшов в гостьову ОС (Windows 10) для розширення розділу системного диска за рахунок доданого місця. Відкривши консоль диспетчер управління дисками (diskmgmt.msc), я звернув увагу, що на комп'ютері чомусь два розділи відновлення і розділеного область з'явилася після другого розділу відновлення (з міткою Windows RE). Тобто в даній системі з якоїсь причини розділ відновлення знаходиться після основного розділу (C :), що не дозволяє розширити основний тому за рахунок доданого простору.

У даній статті будуть розглянуті два різних способу видалення і перевтілення розділу відновлення для EFI і BIOS системи. Тому перш, ніж приступати до виконання описаних кроків, розберіться в якому режимі у вас працює комп'ютер. Також (вкрай рекомендується) створіть бекап (снапшот) вашого диска перед зміною таблиці розділів.

зміст:

  • Видалення Recovery томи і розширення основного розділу на EFI комп'ютері
  • Видалення Recovery розділу і перенесення завантажувача в системах з BIOS

Видалення Recovery томи і розширення основного розділу на EFI комп'ютері

На моїй ВМ Windows 10 встановлена ​​в режимі EFI (GPT розмітка на диску).

Як ви бачите на скріншоті нижче, кнопка "Розширити том" (Extend Volume) недоступна (сіра). Ви можете розширити розділ засобами Windows, тільки якщо справа від нього є нерозмічена (Unallocated) область. У моєму випадку розділ C :, який потрібно розширити, заблокований розділом відновлення (Windows RE). Тому перед розширенням системного томи, вам доведеться видалити даний розділ.

На скріншоті видно, що у мене є два розділи відновлення (Recovery і Windows RE). Щоб зрозуміти, який розділ використовується Windows в якості активного розділу відновлення, потрібно призначити літери дисків вашим розділах (наприклад, E: і R :, через управління дисками або Diskpart: select disk 0 -> select part 1 -> assign letter r:) І виконати команду:

bcdedit / enum all

Зверніть увагу на секції:

  1. Windows Boot Manager (В ній вказано розділ, на якому зберігається BCD завантажувач). У моєму випадку завантажувач знаходиться на EFI розділі:
    Windows Boot Manager -------------------- identifier bootmgr device partition = \ Device \ HarddiskVolume2 path \ EFI \ Microsoft \ Boot \ bootmgfw.efi description Windows Boot Manager locale en-US inherit globalsettings default current resumeobject dbaf5561-4424-11e9-b766-b7001b047795 displayorder current toolsdisplayorder memdiag timeout 30

  2. Тепер подивіться на значення в секції Windows Boot Loader. Як wim файлу середовища відновлення використовується образ Winre.wim на другому розділі з міткою томи Windows RE.
    Windows Boot Loader ------------------- identifier dbaf5563-4424-11e9-b766-b7001b047795 device ramdisk = [E:] \ Recovery \ WindowsRE \ Winre.wim, dbaf5564-4424-11e9-b766-b7001b047795 path \ windows \ system32 \ winload.efi description Windows RE locale en-us inherit bootloadersettings displaymessage Windows RE osdevice ramdisk = [E:] \ Recovery \ WindowsRE \ Winre.wim, dbaf5564-4424-11e9-b766-b7001b047795 systemroot \ windows nx OptIn bootmenupolicy Standard winpe Yes

Щоб розширити розмір основного розділу Windows нам доведеться видалити розділ відновлення праворуч від розділу, який потрібно розтягнути, розширити диск і перебудувати розділ відновлення.

Замість пересозданія розділу відновлення в більшості випадків буде достатньо перенести файли середовища відновлення на системний диск C :. В цьому випадку ви можете повністю відмовитися від окремого 500 Мб розділу для WinRE. При цьому файл середовища відновлення winre.wim буде зберігається на розділі, на який встановлена ​​Windows.

Для копіювання файлу на системний розділ і перевтілення конфігурації WinRE, виконайте команди:

reagentc / disable
md c: \ Recovery \ WinRE
xcopy e: \ Recovery \ WindowsRE \ Winre.wim c: \ Recovery \ WinRE / h
reagentc / setreimage / path c: \ Recovery \ WinRE / target C: \ Windows
reagentc / enable

Якщо ви спробуєте видалити розділ відновлення з графічного інтерфейсу управління розділами, натиснувши на Delete Volume (Іноді властивості диска взагалі не доступні), з'явиться помилка:

Virtual Disk Manager Can not delete a protected partition without the force protected parameter set.

Ви зможете видалити такий захищений розділ тільки за допомогою diskpart. Відкрийте командний рядок з правами адміністратора і запустіть команду diskpart. Виберіть ваш розділ, який ви хочете видалити (дивіться на виведення своїх команд, тому що номери дисків і розділів у вас можуть відрізнятися).

DISKPART> rescan
DISKPART> list disk
DISKPART> select disk 0
DISKPART> list part
DISKPART> select part 5
DISKPART> delete partition override

DiskPart successfully deleted the selected partition.

DISKPART> Rescan

Параметр override дозволяє diskpart видалити будь-який розділ незалежно від його типу (будь то активний, системний або завантажувальний розділ).

Тепер можна відкрити диспетчер дисків і розширити основний розділ (опція Extend Volume тепер стала доступу). Якщо ви хочете перебудувати розділ відновлення (рекомендується зберегти його або перенести на основний розділ як описано вище), залиште на диску 500 мегабайт нерозміченого місця. На скріншоті нижче я збільшую розділ з Windows на 1,5 Гб і залишають 500 Мб в кінці диска.

Якщо на диску є й інші розділи відновлення вендора, які не дають вам розширити основний тому, скористайтеся статтею: Видалення OEM розділів.

Після розширення основного розділу у нас залишилося 500 Мб для нашого розділу відновлення з середовищем WinRE.

Windows пізнає розділ відновлення за спеціальними мітками: GUID - de94bba4-06d1-4d40-a16a-bfd50179d6ac і GPT атрибуту 0x8000000000000001

Створимо новий розділ і дамо йому дані атрибути:

DISKPART> create part primary
DISKPART> format quick fs = ntfs label = "WinRE"
DISKPART> assign letter = "R"
DISKPART> set

DiskPart successfully set the partition ID

DISKPART> gpt attributes = 0x8000000000000001

DiskPart successfully assigned the attributes to the selected GPT partition.

Exit

Тепер залишилося скопіювати файли середовища WinRE з установочного диска (образа) Windows 10 на новий розділ відновлення.

Підключимо файл install.wim з інсталяційного образу Windows 10 і винесемо з нього файл з середовищем WinRE (Winre.wim):

md C: \ WinISO
md C: \ WinISO \ mount
dism / mount-wim /wimfile:F:\sources\install.wim / index: 1 / mountdir: C: \ WinISO \ mount / readonly
md R: \ Recovery \ WinRE
copy C: \ WinISO \ mount \ Windows \ System32 \ Recovery \ Winre.wim R: \ Recovery \ WinRE \
dism / unmount-wim / mountdir: C: \ WinISO \ mount / discard

Залишилося перенести файл із середовищем WinRE на розділ відновлення і оновити інформацію в засобі завантаження:

reagentc / disable
reagentc / setreimage / path R: \ Recovery \ WinRE / target C: \ Windows
reagentc / enable

Повна стаття про середовище WinRE і її відновлення в Windows.

Отже, ми перебудували розділ відновлення і зареєстрували шлях до образу winRE. Тепер при проблемах із завантаженням Windows ваша середовище відновлення знову буде завантажуватися автоматично.

При проблемах з завантажувачем і розділом EFI на комп'ютерах з UEFI скористайтеся статтями по посиланнях.

Видалення Recovery розділу і перенесення завантажувача в системах з BIOS

Якщо на вашому комп'ютері використовується BIOS (НЕ EFI), перед видаленням розділу відновлення ви можете перемістити завантажувач і середу відновлення на системний диск C: таким чином.

Спочатку потрібно перенести файли BCD завантажувача з диска E: на диск C: (я призначив своїм розділу відновлення саме цю букву):

Reg unload HKLM \ BCD00000000
robocopy e: \ c: \ bootmgr
robocopy e: \ boot c: \ boot / s
bcdedit / store c: \ boot \ bcd / set bootmgr device partition = C:
bcdedit / store c: \ boot \ bcd / set memdiag device partition = C:

При проблемах з завантажувачем BCD ви завжди можете перебудувати його відповідно до інструкції.

Тепер виконаємо перенесення образу відновлення:

reagentc / disable
md c: \ Recovery \ WinRE
xcopy e: \ Recovery \ WindowsRE \ Winre.wim c: \ Recovery \ WinRE / h
reagentc / setreimage / path c: \ Recovery \ WinRE / target C: \ Windows
reagentc / enable

Тепер ви можете видалити розділ відновлення через diskpart (описано вище) і успішно розширити ваш основний тому.