Подключение к консоли виртуальной машины в VirtualBox

Классическая ситуация: есть сервер с *nix и на нём поднят VirtualBox. В один момент доступ к одной из виртуальных машин пропал. Нужно подключится к консоли, но как? Нигде нету GUI, что бы как на десктопе, взять и подключиться.

Выход есть: запустить заново виртуальную машину в режиме headless. Держать запущенным всё время виртуальную машину в этом режиме опасно, так как открывается консоль на порту на всех интерфейсах, тем более, если ваш сервер смотрит в мир.

Узнаем список виртуальных машин

# VBoxManage list vms
"deb0" {e63c0a4f-32bb-45a6-827f-d089966255a4}

Выключаем виртуальную машину любым способом и запускаем в headless режиме:

# VBoxHeadless -s deb0 -v on -p 3390

В новой версии используем параметр -e:

Warning: '-p' or '-vrdpport' are deprecated. Use '-e "TCP/Ports=3390"'
# VBoxHeadless -s deb0 -v on -e "TCP/Ports=3390"

При этом, порт консоли будет 3390.
Проверяем, что машина запустилась

# VBoxManage list runningvms
"deb0" {e63c0a4f-32bb-45a6-827f-d089966255a4}

И теперь подключаемся к ней:

$ rdesktop -g 1024x768 -a 16 -5 XX.XX.XX.XX:3390

где XX.XX.XX.XX адрес сервера, где запущен VirtualBox

После завершения работ, запустите виртуальную машину в нормальном режиме.

Изменение количества памяти.

Понадобилось изменить память с 1Гб до 2Гб. Останавливаем машину и меняем:

# VBoxManage modifyvm "deb0" --memory 2048
VBoxManage: error: The machine is not mutable (state is Saved)
VBoxManage: error: Details: code VBOX_E_INVALID_VM_STATE (0x80bb0002), component SessionMachine, interface IMachine, callee nsISupports
VBoxManage: error: Context: "COMSETTER(MemorySize)(ValueUnion.u32)" at line 470 of file VBoxManageModifyVM.cpp

Лечится это так:

# VBoxManage list vms
"deb0" {e63c0a4f-32bb-45a6-827f-d089966255a4}
# VBoxManage discardstate "{e63c0a4f-32bb-45a6-827f-d089966255a4}"
# VBoxManage modifyvm "deb0" --memory 2048

После этого запускаем машину

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *