Настройка отладки сети виртуальной машины — KDNET
В этом разделе описывается настройка подключения отладки ядра к виртуальной машине Hyper-V.
Настройка виртуальной машины Hyper-V
Чтобы выполнить отладку виртуальной машины Hyper-V 2-го поколения, выполните следующие действия.
1. Создание виртуальной машины с установленным Windows
Сведения о создании виртуальной машины см. в статье "Создание виртуальной машины с помощью Hyper-V".
2. Определение внешнего виртуального коммутатора
Для взаимодействия с виртуальной машиной можно использовать коммутатор виртуальной внешней сети. Сведения о создании внешнего сетевого коммутатора см. в статье "Создание виртуальной сети".
Если внешний сетевой коммутатор настроен, необходимо задать следующие параметры.
Вариант | Значение |
---|---|
Тип подключения | Внешняя сеть |
Разрешить управляющей операционной системе предоставлять общий доступ к этому сетевому адаптеру | Включен |
Идентификатор виртуальной локальной сети | Выключено |
3. Отключение безопасной загрузки
Чтобы разрешить служебной программе kdnet обновлять параметры загрузки BCDEdit, временно отключите безопасную загрузку на виртуальной машине, выполнив следующие действия.
Загрузите диспетчер Hyper-V и выберите свойства виртуальной машины.
Выберите параметры безопасности.
Отмена проверка папке Enable Secure Boot проверка box.
Нажмите кнопку ОК, чтобы сохранить настройки.
После завершения отладки можно повторно включить безопасную загрузку и отключить отладку ядра на целевой виртуальной машине.
4. Установка средств отладки для Windows
Средства отладки используются для отладчика и служебной программы kdnet и должны быть установлены. Сведения о том, как скачать и установить средства отладки, см. в разделе "Средства отладки" для Windows.
Настройка отладки сети виртуальной машины — KDNET
Запись IP-адреса узла
Чтобы запустить отладчик узла на том же компьютере, что и целевая виртуальная машина, выполните следующие действия.
В ОС хост-компьютера откройте окно командной строки и введите IPConfig , чтобы отобразить конфигурацию IP.
В выходных данных команды найдите адаптер Ethernet, настроенный как внешний виртуальный коммутатор.
... Ethernet adapter vEthernet (External Virtual Switch): ... IPv4 Address. . . . . . . . . . . : <YourHostIPAddress> ...
Совет
Может быть несколько записей адаптера с аналогичными именами. Обязательно найдите созданный виртуальный коммутатор.
Запишите IPv4-адрес внешнего виртуального коммутатора, который будет использоваться в качестве адреса узла для отладки.
Чтобы подтвердить подключение между целевым объектом и главным компьютером, откройте окно командной строки с повышенными привилегиями на целевом компьютере и введите следующую команду, где YourHostIPAddress является IP-адресом хост-компьютера.
ping -4 <YourHostIPAddress>
Настройка целевого компьютера виртуальной машины
Используйте программу kdnet.exe для автоматической настройки параметров отладчика на целевом компьютере, выполнив следующие действия.
- Найдите kdnet.exe WDK и файлы VerifiedNICList.xml. По умолчанию они расположены здесь.
C:\Program Files (x86)\Windows Kits\10\Debuggers\x64
Примечание.
В этих направлениях предполагается, что оба компьютера работают с 64-разрядной версией Windows как на целевом, так и на узле. Если это не так, лучший подход заключается в том, чтобы запустить ту же "битность" средств на узле, что и целевой объект. Например, если целевой объект работает под управлением 32-разрядной версии Windows, запустите 32-разрядную версию отладчика на узле. Дополнительные сведения см. в разделе "Выбор 32-разрядных или 64-разрядных средств отладки".
Чтобы разрешить длинный ключ, который используется для сокращения и вставки, включите расширенную поддержку сеансов. В окне виртуальной машины в раскрывающемся меню "Вид " включите расширенный сеанс.
На целевом компьютере виртуальной машины создайте каталог C:\KDNET и скопируйте kdnet.exe и VerifiedNICList.xml файлы в этот каталог.
На целевом компьютере откройте окно командной строки как Администратор istrator. Введите эту команду, чтобы убедиться, что на целевом компьютере есть поддерживаемый сетевой адаптер.
C:\KDNET>kdnet Network debugging is supported on the following NICs: busparams=0.25.0, Intel(R) 82579LM Gigabit Network Connection, KDNET is running on this NIC.kdnet.exe
Введите эту команду, чтобы задать IP-адрес хост-системы и создать уникальный ключ подключения. Используйте IP-адрес хост-системы, записанной ранее. Выберите уникальный адрес порта для каждой пары целевых и узлов, с которыми вы работаете, в диапазоне от 50000 до 50039. В этом примере мы будем выбирать 50005.
C:\>kdnet <YourIPAddress> <YourDebugPort> Enabling network debugging on Microsoft Hypervisor Virtual Machine. Key=3u8smyv477z20.2owh9gl90gbxx.3sfsihzgq7di4.nh8ugnmzb4l7 To debug this vm, run the following command on your debugger host machine. windbg -k net:port=50005,key=3u8smyv477z20.2owh9gl90gbxx.3sfsihzgq7di4.nh8ugnmzb4l7 Then restart this VM by running shutdown -r -t 0 from this command prompt.
Используйте CRTL+C, чтобы скопировать предоставленные выходные данные Windbg в буфер команд. Это позволяет избежать попытки записать возвращаемое значение длинного ключа.
Повторно включите BitLocker и безопасную загрузку после настройки параметров отладчика.
Так как виртуальная машина с расширенной поддержкой сеансов может истекать время ожидания, когда она остается в точке останова, отключите расширенную поддержку сеансов с помощью раскрывающегося меню "Вид " на виртуальной машине.
Виртуальная машина будет перезапущена после загрузки и запуска отладчика. Этот процесс описан далее.
Запуск сеанса отладки
Чтобы подключиться к целевому компьютеру, используйте CTRL+V, чтобы вставить в главное окно команды ОС строку Windbg, возвращенную kdnet, скопированную ранее.
C:\Debuggers\windbg -k net:port=<YourDebugPort>,key=<YourKey>
При первой попытке установить подключение к отладке сети может потребоваться разрешить доступ к приложению отладки (WinDbg или KD) через брандмауэр. Чтобы ответить на запрос, проверка поля для всех трех типов сети: домен, частный и общедоступный.
Перезапуск целевого компьютера
После подключения отладчика перезагрузите целевой компьютер. Чтобы принудительно перезапустить виртуальную машину, используйте эту команду из командной строки администратора.
shutdown -r -t 0
При перезапуске целевой виртуальной машины отладчик в ос узла должен подключиться.
После подключения к виртуальной машине нажмите на отладчик и вы можете начать отладку.
Для поддержки подключения отладки сетевой адаптер отладки ядра добавляется и отображается в сетевых свойствах после перезагрузки виртуальной машины.
Устранение неполадок отладки сети виртуальной машины KDNET
Если отладчик не подключается, используйте команду ping из целевой виртуальной машины для проверки подключения.
C:\>Ping <HostComputerIPAddress>
Что-то не работало правильно, и я не уверен, что...
- Убедитесь, что вы позволили WinDbg через брандмауэр.
- Убедитесь, что вы используете уникальный ключ, созданный BCDEdit или kdnet.
У моих виртуальных машин нет сетевого подключения
- Откройте диспетчер виртуальных коммутаторов из диспетчера Hyper-V, выберите существующий виртуальный коммутатор и измените сетевой адаптер внешней сети на сетевой адаптер отладки ядра Майкрософт, выбрав его из раскрывающегося списка, а затем нажмите кнопку "ОК" в диалоговом окне "Диспетчер виртуальных коммутаторов". После обновления сетевого адаптера виртуального коммутатора обязательно завершите работу и перезапустите виртуальные машины.
Последовательность для добавления роли Hyper-V на компьютер Windows
Если целевой компьютер является узлом виртуальной машины, можно настроить отладку сети и по-прежнему иметь сетевой доступ для виртуальных машин.
Предположим, что вы хотите настроить отладку сети в следующей ситуации.
- На целевом компьютере есть один сетевой интерфейс карта.
- Вы планируете установить роль Hyper-V на целевом компьютере.
- Планируется создать одну или несколько виртуальных машин на целевом компьютере.
Лучше всего настроить отладку сети на целевом компьютере перед установкой роли Hyper-V. Затем виртуальные машины будут иметь доступ к сети.
Если вы решили настроить отладку сети после установки роли Hyper-V на целевом компьютере, необходимо изменить параметры сети для виртуальных машин, чтобы мостить их с адаптером сетевой отладки Ядра Майкрософт. В противном случае виртуальные машины не будут иметь доступа к сети.
См. также
Настройка отладки в режиме ядра виртуальной машины вручную с помощью виртуального COM-порта