понедельник, 26 ноября 2007 г.

Приключения. Или как перенести Vista на другой раздел

Сидел я, значит, никого не трогал и тут - бац! Windows Server 2008 RC0 вежливо сообщает мне, что мой 160 Гб диск помирать собирается... А ведь на нем - система! А ведь на нем - все мои проекты!! Вообщем - жуть :(
Пришлось срочно решать проблему - как запихнуть 160 гигов в 20 (именно столько у меня было свободно на втором винчестере). К счастью - на работе обнаружился свободный (новенький!) 250 гиговый винчестер...

Ну да это всё присказка. А сказка - дальше.

Итак, имеем проблему: на диске С: (второй раздел) стоит Windows Server 2008 RC0 (почти Vista :) ). На первом разделе - загрузчик. Необходимо перетащить систему на третий диск (40 Гигов, чистый).

Этап №1. Перенос системы на другой диск.

Я - существо ленивое :) Кроме того - в момент совершения данных действий физически я аходился на работе и управлял системой удаленно - через удаленный рабочий стол. Поэтому естественным для меня выбором было попробовать использовать стандартные средства новой ОС.
Первое - необходимо установить Windows Server Backup. Делается это в оснастке Server Manager в разделе Features.
Второе - собственно сам процесс бекапа описывать я думаю не имеет смысла - там три кнопки, кому надо - разберетесь (кому лень - всегда можно сделать копию из под другой ОС).
Третье - восстанавливаем бекап на другой диск. Здесь вы наверняка столкнетесь со следующей проблемой: нельзя восстановить бекап раздела, если раздел, на который мы восстанавливаем бекап, имеет другой размер. В этом случае можно произвести восстановление по файлам.

Примечание: самое удивительное, что после восстановления бекапа мало того, что все права на файлы сохранились (что логично), но сохранились так же и сжатие у файлов, и папки-ссылки на другие папки. Причем ссылки даже работали! Чудеса :)

Этап 2. Учим Vista загружаться с нового диска.

На этом этапе я потерял примерно 3 часа времени. Очень хотелось поотрывать руки разработчикам :)

Первое - записываем загрузчик на новый диск. Поиск в интернете говорит, что можно это сделать командой "Bootsect.exe /NT60 All". Упс! Нет такого файла на системном разделе. Еще немного поисков... Ага! Этот файл доступен, если загрузиться с CD-диска в режиме восстановления. Вставляем диск, грузимся, вызываем консоль, отдаем команду. Перегружаемся.

Упс... Не загружается.

Итак. Как мы все знаем, в Windows XP управление загрузками ОС с разных разделов осуществляется через файл boot.ini. В новой ОС - новый способ описания откуда грузить операционку. Вся информация теперь хранится в папке Boot куда и обращается наш загрузчик.
Главная проблема, с которой я столкнулся в том - что теперь используются не номера дисков/разделов, а уникальные идентифигаторы (GUID'ы). Естественно, что идентификатор нового диска я не знаю.
Вот тут и началось огромное количество приключений в попытках прописать правильную информацию :(
Краткий итог - все без исключения существующие на данный момент утилиты работают только с системным разделом, с которого была произведена загрузка. Естественно, что поправить я ничего не мог, потому что не мог загрузиться с нужного раздела. Получился этакий замкнутый круг.
Очередные поиски в интернете - ага! Необходимо загрузиться с CD-диска и в режиме восстановления и выбрать опцию "Исправление загрузочной информации".
Вставляю диск с сервером 2008 и... Щаз! Нет такого раздела!!
Потратив нное количество времени нахожу диск с Vista и загружаюсь с него. Ага! Есть! Жмем ссылку. Перегружаемся.

Этап 3. Учим ОС запускаться с нужного диска.

Грузимся. Логинимся. Ждем... И ждем... И ждем...
И тут понимаем - что-то не то :)
Итак: диск, с которого я загружался у меня был подмонтирован под буквой U:. Система же хотела загружаться с диска С: (который уже был физически отключен к тому времени).
Вспоминаю бурную молодость, и то, как поднимал еще Windows 2000 в аналогичной ситуации :) (Правда в тот раз я не мог залогиниться в систему - пришлось ее ломать через удаленный реестр).
Проверяем: есть возможность вызвать Диспетчер Задач (если вдруг не получается - загружаемся в безопасном режиме).
Запускаем Regedit. HKLM\System\MountedDevices.
Ага! Вот они. Меняем названия разделов \DosDevices\U: на \DosDevices\C: Перегружаемся.


Собственно, на этом и все... Система живет уже больше недели. Проблем не обнаружено.

P.S.: а винт, несмотря на бэд-блоки, всё ещё жив...

Комментариев нет:

Отправить комментарий