Я использую virtualbox 4.3.16 на 64-битном хосте Windows 7 с несколькими гостями Linux.

Мне нужно иметь возможность выдавать команды poweroff от одного гостя к другому, но команда vboxmanage не работает при запуске через SSH-сервер cygwin.

vboxmanage работает должным образом при запуске в оболочке cygwin на хосте, но через список SSH vboxmanage list vms не выдает никаких выходных данных, и виртуальные машины не доступны

Вот что я получаю, когда пытаюсь выключить одну виртуальную машину через SSH:

$ vboxmanage --nologo controlvm "rsfe1" poweroff
vboxmanage.exe: error: Could not find a registered machine named 'rsfe1'
vboxmanage.exe: error: Details: code VBOX_E_OBJECT_NOT_FOUND (0x80bb0001), component VirtualBox, interface IVirtualBox, callee IUnknown
vboxmanage.exe: error: Context: "FindMachine(Bstr(a->argv[0]).raw(), machine.asOutParam())" at line 95 of file VBoxManageControlVM.cpp

Попытка "присоединить" виртуальную машину к учетной записи sshd также не работает:

$ vboxmanage registervm "d:\virtual machines\rsfe1\rsfe1.vbox"
vboxmanage.exe: error: A differencing image of snapshot {10077c46-d5cf-4402-88c0-f0458dd07f74} could not be found. Could not find an open hard disk with UUID {9404b00e-7b04-460f-8a62-6495885744de}
vboxmanage.exe: error: Details: code E_FAIL (0x80004005), component SnapshotMachine, interface IMachine, callee IUnknown
vboxmanage.exe: error: Context: "OpenMachine(Bstr(a->argv[0]).raw(), machine.asOutParam())" at line 88 of file VBoxManageMisc.cpp

Все виртуальные машины были созданы под моей учетной записью myuser . Я также аутентифицируюсь как myuser через SSH.

Я предполагаю, что проблема в том, что cygwin SSHd работает как привилегированный пользователь cyg_server и что-то не работает прямо при входе в систему, когда сеанс передается myuser .

Я попытался запустить службу cygwin SSHd под myuser но для службы требуется больше привилегий, чем, по-видимому, для учетной записи, и она не запускается.

Есть ли решение для этого? Любые возможные манипуляции с переменными окружения?

2 ответа2

1

Да, это больно. Я закончил эту сложную работу именно из-за всех проблем, связанных с VirtualBox, Cygwin, аутентификацией и пользователями, под которыми работают соответствующие сервисы.

Быстрый вариант для вас - включить сетевое взаимодействие между самими виртуальными машинами, чтобы VBoxGuest1 мог напрямую войти через SSH в VBoxGuest2 и выполнить соответствующую команду выключения.

Если это не сработает, вы можете сделать то, что я сделал. Я установил VBoxVMService, зашел в Службы компонентов-> Компьютеры-> Мой компьютер-> Конфигурация DCOM-> VirtualBox и выбрал мой идентификатор. Затем я установил Bitvise SSH сервер (не Cygwin .. поэтому, если вы действительно хотите Cygwin, я бы не знал, что делать). Теперь все работает без проблем. Может быть, вы будете долго думать о том, что вы хотите сделать, но я был бы признателен, если бы кто-то еще дал ответ.

0

У меня была та же проблема, что и у Андре, с использованием SSH (из виртуального CentOS 7 на том же хосте) в Windows 7 Pro через BitVise SSH Server.

Я могу подтвердить, что решение, описанное Хари, по установке идентификатора в свойствах Службы компонентов-> Компьютеры-> Мой компьютер-> Конфигурация DCOM-> VirtualBox для "интерактивного пользователя" (изначально оно было "запускающим пользователем") решено проблема (после перезагрузки активировать изменение). Мне не нужно было устанавливать VBoxVMService.

Энди

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .