Гид по технологиям

Как сделать скриншоты виртуальных машин VirtualBox

5 min read Виртуализация Обновлено 28 Nov 2025
Скриншоты VirtualBox: быстро и просто
Скриншоты VirtualBox: быстро и просто

TL;DR

Скрипт vboxscreenshot.sh автоматизирует создание скриншотов запущенной виртуальной машины VirtualBox с нумерацией файлов и сохранением на Рабочий стол. Подходит для Linux с установленным VBoxManage; при запуске скрипт сам определяет запущенную VM (если работает одна VM).

Версия и автор

Версия 1.0
Автор: Falko Timme
Подписывайтесь на меня в Twitter

VirtualBox — удобное решение для виртуализации, но ему не хватает одной полезной функции: встроенной команды для точечных скриншотов рабочей области гостевой ОС без декораций окна. Можно использовать системный Print Screen, но это снимет весь экран хоста, включая рамки окна, что заставит редактировать изображение вручную.

Этот гайд показывает, как создать небольшой скрипт, который делает скриншот VirtualBox VM одним кликом. Скрипт использует командную утилиту VirtualBox VBoxManage.

Важно: материал приводится без гарантий. Это один из рабочих способов — существуют и другие. Скрипт может требовать прав и корректных путей к VBoxManage.

Предварительная заметка

Я создам скрипт vboxscreenshot.sh и помещу его на Рабочий стол, чтобы можно было запускать двойным кликом. Скриншоты будут сохраняться на Рабочем столе (можно поменять папку в переменной outputdir). Файлы будут иметь имена 1.png, 2.png, 3.png и т. д. — скрипт автоматически инкрементирует номер.

Скрипт автоматически пытается определить имя запущенной VM, поэтому предполагается, что в хосте запущена только одна виртуальная машина в момент съёмки. Альтернативно можно задать имя VM в самом скрипте.

1 Создание vboxscreenshot.sh

Откройте текстовый редактор (например, gedit)…

Скриншот: окно редактора gedit с новым файлом

…и создайте новый файл со следующим содержимым:

#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

vboxmanage=/usr/bin/VBoxManage

# Specify the output directory
outputdir=~/Desktop

# Find the next free image ID (1.png, 2.png, 3.png, etc.)
cd $outputdir
list=([0-9]*)
last=${list[@]: -1}
nextnum=$((10#${last%%[^0-9]*} + 1))

# Find out the name of the running VM; this assumes that you have just one VM running at a time
for uuid in $($vboxmanage list runningvms --long | grep "UUID:            " | awk 'BEGIN{FS="UUID:            "}{print $2}')
do
  vm=$($vboxmanage showvminfo $uuid      | sed -e'/^USB Device Filters:/,$ d' | grep "Name:"  | awk 'BEGIN{FS="Name:            "}{print $2}')
done

# Alternatively, you can specify the name of the VM here of which you want to take a screenshot
#vm="Ubuntu 12.04 Desktop"

$vboxmanage controlvm "$vm" screenshotpng $outputdir/$nextnum.png
exit 0

Вы можете изменить директорию вывода в переменной outputdir, если не хотите сохранять скриншоты на Рабочем столе. Если вы хотите принудительно указать имя виртуальной машины, раскомментируйте строку #vm=”Ubuntu 12.04 Desktop” и замените имя на нужное.

Сохраните файл как vboxscreenshot.sh на Рабочем столе:

Скриншот: файл vboxscreenshot.sh на Рабочем столе

Затем кликните правой кнопкой по файлу и выберите «Свойства»:

Скриншот: контекстное меню файла, пункт Свойства выделен

Перейдите на вкладку «Права доступа» и установите галочку «Разрешить выполнение файла как программы»:

Скриншот: окно Свойства файла на вкладке Права, опция исполнения отмечена

Готово. Запустите VirtualBox и запустите VM. Чтобы сделать скриншот, дважды кликните по иконке vboxscreenshot.sh на Рабочем столе. Нажмите «Запустить», когда появится диалог «Вы хотите запустить “vboxscreenshot.sh” или отобразить его содержимое?»:

Скриншот: диалог запуска файла с вопросом Запустить или Показать содержимое

После выполнения скрипта на Рабочем столе появится файл скриншота (в примере — 1.png):

Скриншот: пример файла скриншота 1.png на Рабочем столе

2 Убрать диалог запуска (опционально)

Если диалог подтверждения запуска надоедает, откройте файловый менеджер Nautilus…

Скриншот: окно Nautilus

…перейдите в Редактирование > Настройки:

Скриншот: меню Nautilus, пункт Редактирование>Настройки

На вкладке «Поведение» выберите «Запускать исполняемые текстовые файлы при открытии» в секции «Исполняемые текстовые файлы»:

Скриншот: настройки поведения Nautilus с опцией запуска исполняемых файлов

После этого двойной клик по vboxscreenshot.sh будет сразу запускать скрипт без диалога.

Как это работает — короткая методология

  • Скрипт использует VBoxManage для управления виртуальной машиной и команды controlvm screenshotpng.
  • Он автоматически определяет UUID запущенной VM через list runningvms –long и затем получает имя VM через showvminfo.
  • Для имен файлов применяется простая механика: скрипт ищет последние числовые файлы в выходной папке и увеличивает номер на единицу.

Когда этот подход не сработает (контрпримеры)

  • Запущено несколько виртуальных машин одновременно — скрипт может выбрать неправильную VM или вернуть пустое имя.
  • VBoxManage находится в другом пути (не /usr/bin/VBoxManage). Тогда переменная vboxmanage должна указывать на корректный путь.
  • Вы запускаете VirtualBox на Windows или macOS — скрипт написан для bash и Linux-подобных систем.
  • Конфигурация безопасности рабочего стола блокирует запуск исполняемых скриптов двойным кликом.

Альтернативные подходы

  • Использовать глобальный инструмент захвата экрана на хосте и автоматизацию (с последующей кроп-обработкой). Это проще, но требует дополнительной обрезки.
  • На Windows/Mac использовать VBoxManage из командной строки PowerShell/Terminal и адаптировать команды под платформу.
  • Установить расширения или гостевые дополнения и делать скриншоты из гостевой ОС (например, средствами среды рабочего стола гостя).

Практические советы и эвристики

  • Если скриншоты критичны, указывайте явное имя VM в переменной vm, чтобы избежать неправильного выбора.
  • Указывайте абсолютный путь в outputdir, чтобы избежать проблем при запуске из разных рабочих каталогов.
  • Для пакетных снимков (частые скриншоты) подумайте о сжатии PNG или ротировании старых файлов.

Критерии приёмки

  • Скрипт создает PNG-файл в назначенной папке при запуске и увеличивает номер файла.
  • Скриншот отражает экран гостевой ОС без рамок окна VirtualBox.
  • Скрипт последовательно работает при запуске одной VM; при указании vm работает для любой VM с таким именем.

Роль‑ориентированные чек-листы

  • Конечный пользователь:
    • Дважды кликнуть vboxscreenshot.sh на Рабочем столе.
    • Убедиться, что VM запущена.
    • Проверить появление файла 1.png, 2.png и т. д.
  • Администратор:
    • Проверить путь к VBoxManage и права исполнения скрипта.
    • Настроить политику запуска исполняемых текстовых файлов, если нужно.
  • Разработчик/интегратор:
    • Добавить логирование ошибок в скрипт.
    • При необходимости изменить формат имени или место хранения.

Тестовые случаи и приёмка

  • Запустить одну VM, нажать дважды скрипт — файл создан.
  • Запустить две VM — поведение задокументировано (скрипт может выбрать одну из них); при указании vm — скриншот для указанной VM.
  • Установить другой путь к VBoxManage и проверить работу.

Безопасность и конфиденциальность

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

Совместимость и советы по миграции

  • Скрипт рассчитан на Linux с bash и установленным VirtualBox.
  • На Windows используйте PowerShell-аналоги команд VBoxManage; на macOS путь к VBoxManage часто /usr/local/bin/VBoxManage.
  • Если VBoxManage не найден, поищите его через which VBoxManage или locate VBoxManage.

Сводка

Этот простой скрипт экономит время и делает скриншоты гостевой ОС без дополнительных действий по кадрированию. Подходит для одноразовых снимков и небольших рабочих процессов. Для более сложных сценариев — адаптируйте скрипт: явное имя VM, лог-файлы, управление версиями снимков.

Ссылки

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как создать PST‑файл в Outlook — шаги и советы
Outlook

Как создать PST‑файл в Outlook — шаги и советы

Snipping Tool не работает в Windows 11 — что делать
Windows

Snipping Tool не работает в Windows 11 — что делать

Co‑Pilot на Xbox — включение и использование
Игры

Co‑Pilot на Xbox — включение и использование

Что делать, если средство устранения неполадок Windows не работает
Windows

Что делать, если средство устранения неполадок Windows не работает

hiberfil.sys — что это и как удалить
Windows

hiberfil.sys — что это и как удалить

Как изменить язык виджетов в Windows 11
Windows

Как изменить язык виджетов в Windows 11