Возникла необходимость перенести реальный сервер windows 2008 r2 в виртуальную среду на Hyper-V.
Диск был преобразован утилитой Disk2vhd и запущен на Hyper-V.
Первая ошибка была STOP: 0x0000007B
Решение нашел тут
Решение для Hyper-V
После восстановления бекапа Windows Server 2008 R2 сделанного с физической машины на виртуальную машину, windows не запускается с ошибкой «STOP: 0x0000007B«.
01. Вставьте в CD/DVD-ROM установочный диск Windows Server 2008 R2 DVD.
02. Загрузите с него виртуальную машину.
03. В окне «Install Windows», нажмите «Next».
04. Нажмите «Repair your computer»
05. Выберите «Use recovery tools that can help fix problems starting Windows. Select an operating system to repair»
06. Нажмите «Next»
07. Нажмите «Command Prompt» (командная строка)
08. Введите «regedit», запустится «Registry Editor»
09. Перейдите в «HKEY_LOCAL_MACHINE»
10. В меню «File» выберите «Load Hive» (Загрузить куст»)
Примечание: Пока не кликнешь на ветку «HKEY_LOCAL_MACHINE»
в Меню не будет активна «Загрузить куст»
11. Выберите там файл «\Windows\System32\Config\SYSTEM»
12. Нажмите «Open»
13. В поле «Key Name», введите «Recovery»
14. Нажмите «OK»
15. Перейдите в «HKEY_LOCAL_MACHINE\Recovery\ControlSet001\services\intelide»
16. Откройте свойства ключа «Start»
17. Измените «Value data» на «0».
18. Нажмите «OK».
19. Перейдите в «HKEY_LOCAL_MACHINE\Recovery»
20. В меню нажмите «File» — «Unload Hive»
21. В окне «Confirm Unload Hive» нажмите «Yes»
22. Закройте «Registry Editor»
23. В окне «System Recovery Options», нажмите «Restart»
После перезагрузки восстановленный Windows должен запустится
Примечание: Если Windows Server 2008 R2 не запустился то вернитесь в шагу 18 и проверьте следующие параметры реестра
HKLM/Recovery/System/CurrentControlSet/Services/
Имя сервиса = Значение параметра Start
Aliide = 3
Amdide =3
Atapi = 0
Cmdide = 3
iaStorV = 3
intelide = 0
msahci = 3
pciide = 3
viaide = 3
LSI_SAS = 0
_
от меня: надо изменить во всех ветках HKLM/Recovery/System/CurrentControlSet/Services/
There are several reasons you may get get this error. The most common being a corrupt Active Directory database (NTDS.DIT). I know this sounds detrimental, but it’s actually easy to fix this blue screen.
*** This is the Active Directory Database we’re talking about here, so make sure you have a good backup of the server, in case this doesn’t work***
This Stop code is only seen on a system with Active Directory on it. You notice it when the server is booting. You’ll get a blue screen and an error code, like the following:
STOP: c00002e2 Directory Services could not start because of the following error:
A device attached to the system is not functioning.
Error Status: 0xc0000001.
Please shutdown this system and reboot into Directory Services Restore Mode, check the event log for more detailed information.
To begin, do as the message says, and boot into Directory Services Restore Mode. When the server powers on, press F8 before the OS begins to load. You should see a selection screen like this. Choose Directory Services Restore Mode:
Once in Directory Services Restore Mode, you can check if there is a problem with the database by running the following commands:
ntdsutil.exe
activate instance ntds
files
If there is a problem with it, you’ll see something like this returned:
Could not initialize the Jet engine: Jet Error -501. Failed to open DIT for AD DS/LDS instance NTDS. Error -2147418113
To fix, just rename all of the .log files located in C:\windows\ntds to .log.old, or anything else, so they can be recreated.
Now reboot the server. For most people, this fixed the database, and the server booted up. For others, it still blue screened after this. If you continue to get a blue screen, run the following command in Directory Services Restore Mode, and then reboot:
esentutl /p “c:\windows\ntds\ntds.dit”
—– Same instruction above in details —
STOP: c00002e2 Directory Services could not start because of the following error: A device attached to the system is not functioning.
Error Status: 0xc0000001. Please shutdown this system and reboot into Directory Services Restore Mode, check the event log for more detailed information.
- Restart the server and press F8 key, select Directory Services restore mode.
- Log in with the local administrator username and password
- Type: cd \windows\system32
- Type: NTDSUTIL
- Type: activate instance NTDS
- Type: files
- If you encounter an error stating that the Jet engine could not be initialized exit out of ntdsutil.
- Type: cd\
- Type: md backupad
- Type: cd \windows\ntds
- Type: copy ntds.dit c:\backupad
- Type: cd \windows\system32
- Type: esentutl /g c:\windows\ntds\ntds.dit
- This will perform an integrity check, (the results indicate that the jet database is corrupt)
- Type: esentutl /p c:\windows\ntds\ntds.dit
- Agree with the prompt
- Type: cd \windows\ntds
- Type: move *.log c:\backupad (or just delete the log files)
This should complete the repair. To verify that the repair has worked successfully:
- Type: cd \windows\system32
- Type: ntdsutil
- Type: activate instance ntds
- Type: files (you should no longer get an error when you do this)
- Type: info (file info should now appear correctly)
I then rebooted and windows started normally.
После этого у меня заработало!!!
Некоторые полезные статьи:
1. Переименование контроллера домена ТУТ и ТУТ
2. Перенос настроек DHCP (мне помогло следующее — нашел в инете):
У меня в своё время тоже не получилось перенести DHCP-сервер при помощи команды netsh с ключами import и export. Похоже они действуют только в пределах одной версии Windows Server. Зато помогла команда netsh dhcp server [IPAddress] dump > dhcp.conf
В полученном текстовом файле (dhcp.conf) остается только заменить адрес старого DHCP-сервера на новый (менял везде где он встречается), а затем дать команду (на новом сервере) netsh < dhcp.conf
меня в своё время тоже не получилось перенести DHCP-сервер при помощи команды netsh с ключами import и export. Похоже они действуют только в пределах одной версии Windows Server. Зато помогла команда
netsh dhcp server [IPAddress] dump > dhcp.conf
В полученном текстовом файле (dhcp.conf) остается только заменить адрес старого DHCP-сервера на новый, а затем дать команду (на новом сервере)
netsh < dhcp.conf
Хочу поделиться своим опытом переноса. Нужно было перенести Windows 2008 Enterprise в среду Hyper-V.
Сначала предполагал использовать утилиту Disk2vhd, но потом был установлен Acronis Backup Advanced и я воспользовался его встроенной возможностью при создании бекапа конвертировать бекап в виртуальную машину. Для этого достаточно при настройке свойств задания резервного копирования для пункта «Преобразование в виртуальную машину» выбрать Преобразовать, затем выбрать тип машины и месторасположение, где будут созданы файлы.
После выполнения этого задания создался vhd-файл и файл настроек. Добавил в диспетчере Hyper-V новую виртуальную машину и указал данный vhd-файл. Машина нормально загрузилась. Может быть лучше было выполнить импорт виртуальной машины, а не просто создать машину и затем подцеплять vhd. В дальнейшем уже пользовался именно импортом, где это возможно.
Не всегда импорт возможен. Так при импорте между хостами Hyper-V 2008/2008 R2 проблем нет, но если переносить с хоста Hyper-V 2008/2008 R2 на хост Hyper-V 20012 R2 и выше — непосредственно при самом импорте не будет найдено доступных машин для импорта. Решение такое:
- Выключить виртуальные машины (VM) на хосте Hyper-V 2008/2008 R2;
- Остановить службу Hyper-V Virtual Machine Management Service (VMMS) на хосте 2008/2008 R2;
- Скопировать папки VM на хост Hyper-V Windows Server 2012 R2;
- Импортировать.
Между Hyper-V 2012 R2/2016 и обратно ещё пока импортировать VM не пробовал.
Проблемы
Далее оказалось, что не пробрасывается на виртуальную машину мышь. При попытке работы мышью в окне виртуальной машины через Подключение к виртуальной машине Hyper-V сразу появлялось сообщение «ввод с помощью мыши не перенаправлен». Первое найденное решение было переустановить службы интеграции внутри гостевой ОС:
но это ничего не дало. Далее при просмотре Диспетчера устройств обнаружилось, что устройство шина VMBus с восклицательным знаком, а состояние устройства «Не найдены свободные ресурсы, которые устройство может использовать». Помогла эта статья MS. После выполнения указанных в статье действий и перезагрузки, сразу заработала мышь, появилась виртуальная сетевая карта и виртуальный видеоадаптер.
Дальше, нет доступа к сети. Искал, искал, нашёл. Криво создался виртуальный коммутатор (в Hyper-V 2008 R2, куда осуществлялся перенос, он называется Виртуальная сеть ), оказывается и такое бывает. 🙂
Следующая трабла, не подключается сеанс RDP с других машин. Нашёл. В Конфигурации служб терминалов, в свойствах подключения (имя по умолчанию TCP-RDP), на вкладке Сетевой адаптер пусто, и сразу выпрыгивает ошибка «Средству настройки узла сеансов не удалось получить свойства этого подключения. Подключение удалено или его внутреннее состояние повреждено», выбрать новый адаптер при этом нельзя. Удалить подключение тоже нельзя, ошибка. Удалось удалить через реестр по адресу:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal server\WinStations
Отсюда понятно, что перед конвертацией сервера в виртуальную машину эту настройку нужно снять с конкретного сетевого адаптера и выставить настройку «Все сетевые адаптеры настроены для этого протокола»:
Ну и последний пункт переноса это удаление лишних теперь программ и драйверов.
Выводы
Перед переносом:
- Для Windows 2008 в msconfig отметить чекбокс «Определить HAL»;
- Если это сервер RDP, то в Конфигурации служб терминалов выставить «Все сетевые адаптеры настроены для этого протокола».
При соблюдении этих условий перенос пройдем максимально гладко.
Следующим этапом планирую опробовать для архивирования виртуальных машин прекрасный по отзывам Veem Backup Free Edition.
Добавление от 19.11.2016
Переносил ещё одну машину, уже под управлением Windows XP на хост Hyper-V. Теперь уже воспользовался программой Disk2vhd. Программа использует теневое копирование и очень легко и просто создаёт образ прям с работающей машины. Можно выбрать конвертацию как в vhd, так и в более новый vhdx. После переноса та же проблема: неправильный драйвер уровня аппаратных абстракций HAL. Поэтому нет виртуальных устройств и не работает мышь.
Опция Disk2vhd «Подготовить машину к переносу в виртуальную среду» не помогла. Опции «Определить HAL», которая есть в Windows 2008, в Windows XP нет. Решилось установкой служб интеграции, ещё можно попробовать напрямую указать HAL в Boot.ini, это же делает и опция «Подготовить машину к переносу в виртуальную среду», но драйвер она подписывает неправильный. Должно быть, как я понял:
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows XP" /HAL=hal.dll
Contents
- Download Windows Server 2008 R2 VHD Image
- Convert VHD to VMDK
- Create New VMware VM
- Attach Converted vmdk File to New VM
- Setup Windows Server 2008 R2
- Convert to ESXi 5 VM
- sysprep
Download Windows Server 2008 R2 VHD Image
* Download all three parts of Windows Server 2008 R2 Enterprise Edition x64 (Full Install) VHD from here:
– WS2008R2Fullx64Ent.part01.exe
– WS2008R2Fullx64Ent.part02.rar
– WS2008R2Fullx64Ent.part03.rar
* Double click WS2008R2Fullx64Ent.part01.exe to extract files into WS2008R2Fullx64Ent folder. The WS2008R2Fullx64Ent.vhd file will be in the WS2008R2Fullx64Ent\Virtual Hard Disks directory.
Convert VHD to VMDK
* Download winima85.zip from here.
* Convert VHD to VMDK using WinImage 8.5 following this post. Make sure you choose Create Dynamically Expanding Virtual Hard Disk option. Otherwise, the resulting disk is too big (130 GB vs 6 GB) and not usable in my test run.
Create New VMware VM
* Start VMware Player 5
* Select Player > File > New Virtual Machine… or hit Ctr-N
* Select I will install the operating system later and click Next.
* Select Microsoft Windows and Windows Server 2008 R2 x64:
* Enter virtual machine name and location:
* Specify disk capacity:
* Click Finish.
Attach Converted vmdk File to New VM
* Power off VM
* Select Edit virtual machine settings
* Remove existing hard disk by selecting Hardware > Hard Disk and click Rmove button.
* Attach converted hard disk by clicking Hardware > Add…
* Select Hard Disk
* Select Use an existing virtual disk
* Browse to converted WS2008R2Fullx64Ent.vmdk
* Click Finish
Setup Windows Server 2008 R2
* Start VM.
* Setup Windows Server 2008 R2 following the setup wizard.
* Change Administrator password to Welcome1 when prompted.
* Login as administrator and wait for the setup to finish.
* Shutdown VM.
Convert to ESXi 5 VM
* Start VMware vCenter Converter Standalone
* Select source type and browse for source virtual machine:
* Continue conversion as usual.
sysprep
This needs to be done for each new instance of VM.
* Login as Local Administrator
* sysprep the new VM:
C:\Windows\system32\sysprep\sysprep.exe
This entry was posted in win2008 and tagged convert, esxi, vhd, win2008, win2008r2, winimage. Bookmark the permalink.
В этой статье я Вам расскажу, каким образом, используя только бесплатные средства, можно виртуализировать физический сервер. Виртуализировать сервер мы будем на платформе Hyper-V Windows Server 2008 R2.
В качестве инструмента для перевода сервера из физической в виртуальную среду будем использовать System Center Virtual Machine Manager 2008 R2 (SCVMM). Здесь необходимо отметить, что это — продукт не бесплатный, но для нашей задачи можно скачать пробную версию, которая будет работать 180 дней. Этого времени с громадным запасом хватит, чтобы конвертировать все необходимые сервера в виртуальную среду.
Скачать пробную версию System Center Virtual Machine Manager 2008 R2 (SCVMM) можно по адресу —http://technet.microsoft.com/ru-ru/evalcenter/cc793138.aspx
Для начала кратко расскажу, что такое System Center Virtual Machine Manager 2008 R2 (SCVMM). SCVMM — это централизованное решение для управления всеми виртуальными серверами на предприятии. При помощи этого инструмента можно управлять виртуальными машинами на базе Hyper-V, Virtual Server и даже VMware ESX, перемещать виртуальные машины между хостовыми серверами, преобразовывать физические сервера в виртуальные, создавать заготовки (шаблоны) виртуальных машин и другие редко используемые функции.
Этапы преобразование физических серверов в виртуальные:
- Скачиваем System Center Virtual Machine Manager 2008 R2 (SCVMM)
- Устанавливаем System Center Virtual Machine Manager 2008 R2 (SCVMM)
- Добавляем в оснастку наши хостовые сервера. Если на хостовом сервере не установлена роль Hyper-V, то она автоматически установится в процессе добавления его в консоль SCVMM.
- На всякий случай, останавливаем все критические службы на физическом сервере. Например, SQL, службы Exchange, SharePoint и т.п. В теории этого можно не делать, но, как показывает практика, лишним это не будет.
- Преобразуем наш сервер в виртуальный.
- Выключаем физический сервер.
- Запускаем виртуальный сервер.
- Тестируем.
С первыми пунктами, я думаю, Вы справитесь самостоятельно. А вот на пятом пункте я остановлюсь поподробнее.
Преобразование физического сервера в виртуальный
Для начала расскажу о наших начальных условиях. Физический сервер собран на платформе AMD Opteron, на нем установлены Windows Server 2003 R2 SP2 x64 и Sharepoint 2007SP1, называется сервер — «SERV2». Хостовый сервер собран на платформе Intel Xeon, система Windows Server 2008 R2 с установленной ролью Hyper-V, называется сервер — «ServV1». Сеть между всеми серверами — 1Гбит.
Предварительно на физическом сервере мы остановили службы SQL и SharePoint.
Запускаем Virtual Machine Manager. Справа на панели действий выбираем пункт «Convert Physical Server»
В окне мастера выбираем сервер, который хотим виртуализовать, и вводим учетные данные пользователя, обладающего правами локального администратора на данном сервере. От имени этого пользователя на сервере будут заменены некоторые драйверы и запущен процесс преобразования.
Указываем имя новой виртуальной машины и пользователя, который станет ее владельцем. Этот пользователь должен обладать правами администратора на хостовом сервере.
Сканируем аппаратные ресурсы исходного сервера.
Теперь необходимо выбрать диски на исходном сервере, которые будут преобразованы. В моем случае на сервере имеются два логических диска, но для его нормального функционирования достаточно только диска C:. Также здесь мы можем выбрать тип будущего VHD-диска — фиксированный или динамический. Файлы динамических дисков занимают меньше места на хостовой машине, но могут фрагментироваться, вследствие чего работают медленнее. VHD-файлы фиксированных дисков занимают ровно столько места, сколько они были до преобразования, но работают быстрее. Именно поэтому для дисков с интенсивным обменом данными я рекомендую использовать VHD-файлы фиксированного типа.
Выбираем количество логических процессоров для виртуальной машины и объём оперативной памяти.
В следующем окне мастера нам предлагают выбрать хостовый сервер, на котором будет создана виртуальная машина. Здесь можно увидеть рейтинг серверов (обозначается звездочками). Чем выше рейтинг, тем больше свободных ресурсов на данном сервере. При составлении рейтинга SCVMM учитывает объем свободной оперативной памяти, объем жестких дисков, процессорные ресурсы и т.п.
Выбираем место положения файлов виртуальной машины на целевом хостовом сервере.
Также необходимо выбрать сеть, к которой будет подключен сервер после преобразования. Эти параметры можно будет потом поменять.
В следующем окне мастера необходимо выбрать дополнительные параметры виртуальной машины:
- Какие действия с виртуальной машиной выполнять после включения хостовой машины;
- Какие действия выполнять при выключении хостовой машины.
Я выбрал, чтобы виртуальная машина запускалась после включения хостовой машины через 300 секунд (5 минут). Эта задержка необходима, чтобы до ее запуска успел запуститься контроллер домена, если он тоже был выключен. При выключении хостового сервера, виртуальная машина будет сохранена (Save State).
Смотрим итог и нажимаем «Next»
Детали процесса виртуализации (p2v) можно посмотреть в окне «Jobs».
По окончании процесса можно увидеть, что у нас появилась виртуальная машина «SERV2» на сервере «ServV1». Теперь надо выключить физический сервер, который мы преобразовали, и запустить новый виртуальный сервер.
Необходимо обратить внимание, что MAC-адрес виртуальной машины будет такой же, как и у старого физического сервера, поэтому включать их вместе в одной сети не рекомендую. Если роли на сервере позволяют, то можно поменять MAC-адрес на виртуальном сервере. В нашем случае я так и сделал.
После преобразования всех серверов мы можем удалить из сети System Center Virtual Machine Manager 2008 R2 (SCVMM) или купить его. Стоит этот продукт не дорого — около 850 долларов США в Enterprise варианте.
Размещение данного материала на других сайтах без ссылки на источник запрещается.
Расскажу о простом и эффективном способе переноса Windows системы из физической среды в виртуальную, который я сам оттестировал на Microsoft Hyper-V Server R2 и Microsoft Windows Server 2008 R2. Последним, мигрировавшим таким образом, был контроллер домена Windows Server 2003 SP2.
Конечно, если вы поклонник “правильных” решений, у вас много свободного времени и к тому же вы любитель квестов, то я порекомендую воспользоваться возможностями System Center Virtual Machine Manager с его визардом P2V, Microsoft Virtual Server Migration Toolkit (VSMT) и Automated Deployment Service (ADS), или другими решениями аналогичной задачи.
Я же в последнем случае не рискнул воспользоваться даже утилитой Disk2vhd от Sysinternals а решил сделать все офлайн при помощи проверенного Norton Ghost.
Так вот:
1. Делаем образ диска/системного раздела исходной системы. Как уже сказал, я использую для этого Norton Ghost.
2. Создаем виртуальную машину с диском достаточного размера на шине IDE. (Я, к слову, в рабочей среде использую только диски фиксированного размера)
3. Подключаем вновь созданный диск в хостовой системе, назначаем ему букву. В Windows Server 2008 R2 это можно сделать прямо из Диспетчера сервера/Управление дисками.
В Hyper-V Server R2 для этого придется воспользоваться diskpart-ом. Читаем “DISKPART> help select vdisk” и “DISKPART> help attach vdisk”.
4. Создаем нужных размеров разделы.
5. Делаем загрузочный раздел виртуального диска активным.
6. Помещаем загрузочную запись в MBR виртуального диска. Я использую для этого утилиту “mbrfix”. Читаем соответственно “MbrFix /?”. Если этого не сделать, то виртуальная машина не загрузится с этого диска.
7. Разворачиваем созданный образ раздела/диска. Опять же давно знакомый Norton Ghost нам в помощь.
Казалось бы, что уже можно включать виртуальную машину. Но в большинстве случаев система выпадет в синий экран с ошибкой “STOP: 0x0000007B INACCESSIBLE_BOOT_DEVICE ”. Так происходит, когда в переносимой системе используется не стандартный контроллер IDE. Теорию и практику по этому поводу можно глянуть в базе знаний Microsoft. Соответственно, нужно установить стандартный контроллер IDE вручную и мы продолжаем:
8. Подгрузим куст реестра, отвечающий за стандартный контруллер IDE, в нашу пока еще офлайн систему. Я делаю это следующим образом. В regedit.exe в ветку “HKEY_USERS” в новый раздел “123” загружаю реестр из файла “System32\config\SYSTEM”. В рег файле, созданном под руководством упомянутой статьи делаю массовую замену строки “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet” на “HKEY_USERS\123\ControlSet001”. Импортирую, измененный таким образом рег файл. И выгружаю временный куст “123”.
9. Проверим наличие и если необходимо добавим в папку “%SystemRoot%\System32\Drivers” драйвера: Atapi.sys, Intelide.sys, Pciide.sys, Pciidex.sys. Их можно взять из установочного диска соответствующей версии Windows или файла “%SystemRoot%\Driver Cache\I386\Driver.cab”.
10. Отключим виртуальный диск от хостовой системы.
11. Загружаем виртуальную машину.
Дальше на ваше усмотрение, но я рекомендую также проделать:
1. Сразу же после первой загрузки установить службы интеграции и перезагрузиться.
2. Очистить систему от лишних устройств. Обычно диспетчер устройств не показывает отсутствующие девайсы. Но системная переменная “devmgr_show_nonpresent_devices” со значением “1” заставляет его это делать. Соответственно, установив эту переменную, я выставляю в диспетчере устройств “Вид\Показывать скрытые устройства” и вручную удаляю все не активные девайсы.
На этом этапе перенос Windows из физической среду в виртуальную можно считать завершенным.