
После загрузки Windows XP в qemu он получает IP-адрес, назначенный DHCP-сервером. Мой вопрос - как определить IP-адрес, назначенный Windows XP, чтобы я мог подключиться к Windows XP?
Вот более подробная информация о моей установке:
Я работаю dnsmasq
на интерфейсе tun0. Я настроил его на выдачу IP из диапазона 10.10.10.0/24. Я использую -net tun
для qemu. Я запускаю несколько гостевых установок Windows XP, поэтому я не могу использовать статические IP-адреса.
решение1
Общий подход заключается в том, чтобы иметьГостевой агент Qemuи выполнить определенную команду,гостевая-сеть-получить-взаимодействиядля получения его сетевых настроек.
Чтобы это работало, вам нужно сначала добавить сокет гостевого агента в конфигурацию виртуальной машины. Qemu нужно запустить примерно так:
qemu-system-x86_64 ... \
-device virtio-serial,id=qga0 \
-device virtserialport,chardev=qga0,name=org.qemu.guest_agent.0 \
-chardev socket,path=base.qga,server=on,wait=off,id=qga0 \
...
Это создаст файл сокета base.qga
в текущем каталоге. Затем вы можете подключиться к этому сокету с помощью socat
, но для удобства (редактирование командной строки и история) я бы предложил обернуть его в rlwrap
:
rlwrap socat STDIO UNIX:base.qga
В гостевой ОС необходимо установить драйвер последовательного VirtIO (паравиртуальный) и службу гостевого агента, оба поставляются в виде образа ISO драйверов virtio. Вы можете получить его из проекта драйверов Fedora VirtIO для Windows; в ОС Linux он доступен в репозиториях дистрибутивов во всех основных дистрибутивах или вы можете собрать его самостоятельно из исходников Qemu.
Гостевой агент — это мощный способ связи между хостом (гипервизором) и виртуальной машиной, другие технологии виртуализации также предоставляют агенты для аналогичной функциональности интеграции (например, VMWare Additions, VirtualBox Additions). С помощью гостевого агента Qemu вы можете не только получать различную информацию о госте, но и выполнять некоторые команды и настраивать его внутри. Proxmox VE, основанный на Debian и Qemu, также использует своего гостевого агента для заморозки диска перед созданием резервных копий и для других функций корпоративного уровня.
решение2
Список аренд dnsmasq хранится в файле, указанном в параметре конфигурации dhcp-leasefile
. Для версии upstream местоположение по умолчанию — /var/lib/misc/dnsmasq.leases
.
решение3
Если вы его запустите, то узнаете имя хоста. С его помощью вы запрашиваете свой (конечно, правильно настроенный) DNS. Это же DNSmasq в конце концов.