Общий модем на несколько виртуальных машин

Комрад Virus прислал нам свежую заметку про очередные извращения. 😉

Как расшарить модем между несколькими виртуалками в VMwareServer2.

К сожалению, в наше время модем ещё не умер, и некоторые динозавры типа сбербанка его активно любят. К ещё большему сожалению, нет программной реализации ах как было бы здорово, если бы был SIP-софтмодем, всех проблем можно было бы избежать.

Итак, попробуем через стандартный интерфейс

“C:\Program Files (x86)\VMware\VMware Server\vmrun.exe” -T server -h https://192.168.1.1:8333/sdk -u root -p пароль readVariable “[local] prm/ prm.vmx” runtimeConfig serial0.present

Так можно подключать и отключать устройство, но, как оказалось, изменения применятся только после power cycle. Этот вариант нам не подходит, к моему удивлению способа через vmrun подключать и отключать устройство «налету» не нашлось.

Зато нашлись не менее интересные «бонусы»

Например, можно разрешить или запретить изнутри виртуалки подключать/отключать устройства:

“C:\Program Files (x86)\VMware\VMware Server\vmrun.exe” -T server -h https://192.168.1.1:8333/sdk -u root -p пароль writeVariable “[local] prm/ prm.vmx” runtimeConfig serial0.allowGuestConnectionControl true

Вот так мы разрешим для последовательного порта.

Точно также можно разрешить для первого сетевого адаптера, только имя переменной будет таким «ethernet0.allowGuestConnectionControl»

В процессе рытья был найден классный параметр «devices.hotplug» , наверное, все сталкивались с тем, что добродушные юзеры отключали сетевухи или диски внутри виртуалки. Выставляем этот параметр в false и все проблемы решены, больше компоненты отключить через «извлечение устройств»нельзя.

Для ESX есть вариант подключать и отключать с хоста на лету странной командой:

vmware-vim-cmd vmsvc/device.connection <vmid> <device id> true

но аналога в Server2 не нашлось.

Зато нашлась старенькая подборка утилит:

http://chitchat.at.infoseek.co.jp/vmware/vmtools.html

с её помощью изнутри можно отключать и подключать устройства

вывести список: vmw.exe device

C:\vm>vmw.exedevice

0: serial0disconnected

1: Ethernet0connected

2: ide1:0connected

подключить устройство 0: vmw.exe device +0

отключить устройство 0: vmw.exe device -0

но, как это водится, и тут счастья нет тоже, винда эпизодически отключает отсутствующие устройства, и нужно заходить в менеджер устройств и нажимать «scan for hardware changes». Но, оказывается, есть консольный аналог devcon, например, «scan for hardware changes» это «devcon rescan».

4 thoughts on “Общий модем на несколько виртуальных машин”

  1. что то сумбурно как то 🙂

    сухой остаток какой ?
    можно ?
    как ?
    а если сразу 2 полезут ?

  2. В сухом остатке, как я понимаю, осознание того факта, что секс еще не начинался 😉
    В смысле два полезут? Полагаю, одному не дадут 😉

  3. скорее осознание того факта что чудеса возможны, но даются существенной кровью.
    после написания заметки выяснилось, что если два раза подряд сделать “vmw.exe device +0” то последовательный порт начинает глючить.
    В остальном модем на таком типа “разделяемом” COM1 работает отлично.

  4. Возможно уже не актуально.

    Модем втыкается в MOXA конвертер COMEthernet и на каждой виртуальной машине мэпится виртуальный COM-порт через софтину от Moxa. Это позволит не “занимать” физический порт модема, после окончания работы. Таким образом каждая виртуалка спокойно обращается к модему, если он не занят.

Leave a Reply

Your email address will not be published. Required fields are marked *