virtualbox: программно изменить разрешение изнутри гостя

Я устанавливаю виртуальную машину Linux, доступ к которой осуществляется через XRDP. Пользователь клиента будет иметь доступ к ВМ только через RDP. Я хочу, чтобы он мог изменить размер гостя, но я не нашел способа сделать это изнутри гостя. Как можно изменить разрешение гостя изнутри гостя? У меня установлены гостевые дополнения, но я не смог найти утилит, которые бы помогли.

С хоста вы можете запустить это: VBoxManage controlvm "Arch Linux" setvideomodehint 1440 900 32

Но, как я уже говорил ранее, хост будет недоступен для пользователя.

Есть идеи?

1 ответ

Пользователь должен иметь доступ к xrandr который перечислит доступные видео режимы. Если клиент RDP поддерживает изменение размера после подключения, это должно позволить им немедленно увидеть изменение. В противном случае виртуальная машина должна сохранить настройку после отключения и повторного подключения. Бег xrandr без каких-либо аргументов выдаст список доступных разрешений. Например:

% xrandr
Screen 0: minimum 640 x 480, current 1280 x 1024, maximum 1280 x 1024
default connected 1280x1024+0+0 0mm x 0mm
   1280x1024       0.0*
   1024x768        0.0
   800x600         0.0
   640x480         0.0

Затем поставляем -s n Параметр установит разрешение. Например. xrandr -s 1 установит разрешение в 1024x768 в этом примере.

Вы также можете добавить резолюции с помощью setextradata как это:

VBoxManage setextradata virtualmachine CustomVideoMode1 1120x986x32

Несколько режимов / разрешений можно установить, увеличивая 1 на конце. Просто убедитесь, что у вас установлены гостевые дополнения, иначе это может работать не так, как задумано.

Другие вопросы по тегам