Восстановление загрузочного раздела на виртуальной машине с Windows 2008 R2

Когда-то у нас в конторе не было никакой виртуализации, и была россыпь разнокалиберных серверов, на которых сервисы распределялись случайно-причудливым образом (например, сервер выполнял роль шлюза и одновременно почтового сервера, или на сервере стоял 1С плюс файловое хранилище). Одним из серверов был HP ProLiant MicroServer, на котором крутилась некая база данных, и в то же время он служил хранилищем бэкапов.

После определения путей решения проблем, навороченных прежним отделом ИТ, покупки нормального человеческого железа и появления возможности виртуализации всего этого барахла, дошла очередь и до Микросервера. Там стояло два диска по 2 терабайта, объединённых в зеркало, и стояла Windows 2008 R2, почему-то английская. Так как база данных, которая стояла на Микросервере, была трудна в установке, я решил виртуализовать эту машину как есть.

Запустил я, значит, disk2vhd, результат переместил на СХД, сделал машинку, присоединил диск, запустил — работает. Проходит некоторое время, за которое, в числе прочего, был поднят новый сервер бэкапов, вследствие чего на машинке нужно было оставить только базу данных. База занимала несколько гигабайт, в то время как сама машинка занимала на СХД около 2 терабайт. Очень захотелось освободить место на СХД путём уменьшения файла VHD.

Захожу на машинку, и выясняется, что диски там почему-то динамические (видно, рэйд в бытность системы на Микросервере был софтовый с какого-то перепугу), а файла VHD два: один для загрузочного раздела, другой — основной, с системой. В Windows убрал «сбойный» зеркальный диск, почистил систему. Места вся система вместе с базой стала занимать около 150 ГБ. Уменьшил диск C:\ до 200 ГБ, остальное — неразмеченная область. Выключаю машинку, запускаю мастер уменьшения размера VHD-файла. Мастер закончил работу, файл уменьшился всего на 100 ГБ. Сделал дефрагментацию, убрал файл подкачки, запустил мастер снова — никакого эффекта. Что делать?

Придумал. С помощью Windows Backup сделал полный бэкап системы, получилось опять же два VHD-файла — для загрузочного раздела и основной, но уже нормального размера. Запустил мастер конвертирования основного раздела VHD в VHDX, прошло успешно. Подключаю VHDX к машинке вместо старого VHD — и система не грузится, пишет, что грузиться не с чего — загрузочный раздел остался на втором маленьком VHD.

Далее по пунктам.

  1. Запустил машинку с Hiren’s boot CD;
  2. Сделал раздел в начале диска размером в 100 МБ;
  3. Сделал этот раздел активным;
  4. Выключил машинку;
  5. Подключил образ Windows 2008 R2, загрузился там в консоль восстановления;
  6. В программе DISKPART удалил букву со свежесозданного загрузочного раздела;
  7. Отформатировал этот раздел в NTFS;
  8. Вышел из DISKPART;
  9. Определил, где находится Windows: bootrec /scanos (оказалось, что это D:Windows);
  10. Удалил папку D:\bootbcd: del d:\bootbcd
  11. Запустил процедуру восстановления загрузчика: bootrec /rebuildbcd

Запустил машинку — работает! С удовольствием удалил старый двухтерабайтный VHD.