Настройка отладки сети виртуальной машины — KDNET

В этом разделе описывается настройка подключения отладки ядра к виртуальной машине Hyper-V.

Настройка виртуальной машины Hyper-V

Чтобы выполнить отладку виртуальной машины Hyper-V 2-го поколения, выполните следующие действия.

1. Создание виртуальной машины с установленным Windows

Сведения о создании виртуальной машины см. в статье "Создание виртуальной машины с помощью Hyper-V".

2. Определение внешнего виртуального коммутатора

Для взаимодействия с виртуальной машиной можно использовать коммутатор виртуальной внешней сети. Сведения о создании внешнего сетевого коммутатора см. в статье "Создание виртуальной сети".

Если внешний сетевой коммутатор настроен, необходимо задать следующие параметры.

Вариант Значение
Тип подключения Внешняя сеть
Разрешить управляющей операционной системе предоставлять общий доступ к этому сетевому адаптеру Включен
Идентификатор виртуальной локальной сети Выключено

3. Отключение безопасной загрузки

Чтобы разрешить служебной программе kdnet обновлять параметры загрузки BCDEdit, временно отключите безопасную загрузку на виртуальной машине, выполнив следующие действия.

  1. Загрузите диспетчер Hyper-V и выберите свойства виртуальной машины.

  2. Выберите параметры безопасности.

  3. Отмена проверка папке Enable Secure Boot проверка box.

  4. Нажмите кнопку ОК, чтобы сохранить настройки.

После завершения отладки можно повторно включить безопасную загрузку и отключить отладку ядра на целевой виртуальной машине.

4. Установка средств отладки для Windows

Средства отладки используются для отладчика и служебной программы kdnet и должны быть установлены. Сведения о том, как скачать и установить средства отладки, см. в разделе "Средства отладки" для Windows.

Настройка отладки сети виртуальной машины — KDNET

Запись IP-адреса узла

Чтобы запустить отладчик узла на том же компьютере, что и целевая виртуальная машина, выполните следующие действия.

  1. В ОС хост-компьютера откройте окно командной строки и введите IPConfig , чтобы отобразить конфигурацию IP.

  2. В выходных данных команды найдите адаптер Ethernet, настроенный как внешний виртуальный коммутатор.

    ...
    
    Ethernet adapter vEthernet (External Virtual Switch):
    
    ...
    
    IPv4 Address. . . . . . . . . . . : <YourHostIPAddress>
    
    ...
    
    

Совет

Может быть несколько записей адаптера с аналогичными именами. Обязательно найдите созданный виртуальный коммутатор.

  1. Запишите IPv4-адрес внешнего виртуального коммутатора, который будет использоваться в качестве адреса узла для отладки.

  2. Чтобы подтвердить подключение между целевым объектом и главным компьютером, откройте окно командной строки с повышенными привилегиями на целевом компьютере и введите следующую команду, где YourHostIPAddress является IP-адресом хост-компьютера.

    ping -4 <YourHostIPAddress>
    

Настройка целевого компьютера виртуальной машины

Используйте программу kdnet.exe для автоматической настройки параметров отладчика на целевом компьютере, выполнив следующие действия.

  1. Найдите kdnet.exe WDK и файлы VerifiedNICList.xml. По умолчанию они расположены здесь.
C:\Program Files (x86)\Windows Kits\10\Debuggers\x64

Примечание.

В этих направлениях предполагается, что оба компьютера работают с 64-разрядной версией Windows как на целевом, так и на узле. Если это не так, лучший подход заключается в том, чтобы запустить ту же "битность" средств на узле, что и целевой объект. Например, если целевой объект работает под управлением 32-разрядной версии Windows, запустите 32-разрядную версию отладчика на узле. Дополнительные сведения см. в разделе "Выбор 32-разрядных или 64-разрядных средств отладки".

  1. Чтобы разрешить длинный ключ, который используется для сокращения и вставки, включите расширенную поддержку сеансов. В окне виртуальной машины в раскрывающемся меню "Вид " включите расширенный сеанс.

  2. На целевом компьютере виртуальной машины создайте каталог C:\KDNET и скопируйте kdnet.exe и VerifiedNICList.xml файлы в этот каталог.

  3. На целевом компьютере откройте окно командной строки как Администратор 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
    
  4. Введите эту команду, чтобы задать 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.
    
  5. Используйте CRTL+C, чтобы скопировать предоставленные выходные данные Windbg в буфер команд. Это позволяет избежать попытки записать возвращаемое значение длинного ключа.

  6. Повторно включите BitLocker и безопасную загрузку после настройки параметров отладчика.

  7. Так как виртуальная машина с расширенной поддержкой сеансов может истекать время ожидания, когда она остается в точке останова, отключите расширенную поддержку сеансов с помощью раскрывающегося меню "Вид " на виртуальной машине.

  8. Виртуальная машина будет перезапущена после загрузки и запуска отладчика. Этот процесс описан далее.

Запуск сеанса отладки

  1. Чтобы подключиться к целевому компьютеру, используйте 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-порта

Настройка Подключение сети вручную