Когда-то у нас в конторе не было никакой виртуализации, и была россыпь разнокалиберных серверов, на которых сервисы распределялись случайно-причудливым образом (например, сервер выполнял роль шлюза и одновременно почтового сервера, или на сервере стоял 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.
Далее по пунктам.
- Запустил машинку с Hiren’s boot CD;
- Сделал раздел в начале диска размером в 100 МБ;
- Сделал этот раздел активным;
- Выключил машинку;
- Подключил образ Windows 2008 R2, загрузился там в консоль восстановления;
- В программе DISKPART удалил букву со свежесозданного загрузочного раздела;
- Отформатировал этот раздел в NTFS;
- Вышел из DISKPART;
- Определил, где находится Windows:
bootrec /scanos
(оказалось, что это D:Windows); - Удалил папку D:\bootbcd:
del d:\bootbcd
- Запустил процедуру восстановления загрузчика:
bootrec /rebuildbcd
Запустил машинку — работает! С удовольствием удалил старый двухтерабайтный VHD.