Дефрагментация виртуального диска
VirtualBox позволяет осуществить упаковку (сжатие) динамического виртуального vdi-диска.
Для сжатия vdi-диска используется команда
# vboxmanage modifyhd --compact wmname.vdi
Пошаговая установка Arch Linux как гостевой ОС
Установка Arch Linux в виртуальную машину
Примечание: Хостам с ОС Windows, возможно, придется отключить Hyper-V для того, чтобы использовать возможности виртуализации устройств и создания 64-битных виртуальных машин в VirtualBox. Чтобы узнать, как отключить или снова включить Hyper-V, посмотрите пост на StackOverflow.
Загрузите установочный носитель Arch через один из виртуальных дисков виртуальной машины. Затем совершите установку базовой системы Arch, как описано в руководстве по установке, без установки графических драйверов: мы будем устанавливать драйвера, поставляемые VirtualBox на следующем этапе.
Установка в режиме EFI
Если вы хотите установить Arch Linux в режиме EFI внутри VirtualBox, в настройках виртуальной машины, перейдите в закладку Настройки, и установите флажок Enable EFI (special OSes only). После выбора ядра из меню установочного носителя Arch Linux, установка будут висеть в течение минуты-двух, и после этого будет загружено ядро . Подождите и не прекращайте установку.
При загрузке в режиме EFI, VirtualBox будет пытаться выполнить /EFI/BOOT/BOOTX64.EFI из ESP. Если первый вариант не удается, VirtualBox будет пытаться выполнить сценарий оболочки EFI startup.nsh из корня ESP. Если вы не хотите вручную запускать загрузчик из оболочки EFI каждый раз, вы должны будете переместить свой загрузчик в этот путь по умолчанию. Не заморачивайтесь с VirtualBox Boot Manager (доступен по F2 при загрузке): EFI данные будут добавлены в него вручную при загрузке или будет сохранять их после перезагрузки, но терять после закрытия виртуальной машины.
Установка гостевых дополнений
После завершения установки гостевой системы, установите дополнения гостевой ОС, которые включают драйверы и приложения, оптимизирующие гостевую операционную систему. Они могут быть установлены с помощью .
Примечание: Метод, описанный в VirtualBox руководстве не работает на гостевой Arch Linux, в результате Unable to determine your Linux distribution несколько раз повторено, как сообщение об ошибке. Если Вы уже попробовали этот первый метод и вы используете правильное описанное выше решение впоследствии, это не удастся. Вы получите ошибку /usr/bin/VBox* exists in filesystem и /usr/lib/VBox* exists in filesystem. Решение заключается в удалении конфликтующих файлов: # rm /usr/bin/VBox* /usr/lib/VBox* Эти файлы на самом деле являются символическими ссылками на места, где были установлены гостевые дополнения; По умолчанию, это /opt/VBoxGuestAdditions-номер версии. Удалите и эти файлы # rm -r /opt/VBoxGuestAdditions-номер версии,так как они не нужны. Теперь вы можете перезапустить установку правильным, вышеописанным способом.
Загрузка модулей ядра VirtualBox
Для автоматической загрузки модулей включите службу vboxservice.service, которая загрузит нужные модули и синхронизирует время с хостом.
Для загрузки модулей вручную выполните:
# modprobe -a vboxguest vboxsf vboxvideo
Запуск гостевых сервисов VirtualBox
После довольно непростой установки с модулями ядра VirtualBox, необходимо обеспечить взаимодействие гостевой ОС и хоста посредством сервисов. Гостевой сервис — на самом деле просто исполняемый файл VBoxClient, который будет взаимодействовать с вашей X Window System. VBoxClient управляет следующими функциями:
- общий буфер обмена и перетаскивание объектов между хостом и гостевой ОС;
- бесшовный оконный режим;
- гостевой дисплей автоматически изменяет свой размер в соответствии с размером окна гостевой ОС;
- проверка версии VirtualBox, установленной на хосте.
Все эти особенности могут быть включены независимо следующими параметрами:
$ VBoxClient --clipboard $ VBoxClient --draganddrop $ VBoxClient --seamless $ VBoxClient --checkhostversion $ VBoxClient --vmsvga
Обратите внимание, что VBoxClient принимает только один флаг за раз; каждый вызов запускает отдельный процесс в фоне. Для удобства есть bash-скрипт VBoxClient-all, запускающий все эти функции.
Пакет устанавливает файл /etc/xdg/autostart/vboxclient.desktop, который запускает VBoxClient-all при входе в систему. Если ваша среда рабочего стола или ваш оконный менеджер не поддерживает XDG Autostart, настройте автозапуск вручную, как описано в разделах Автозапуск#Запуск среды рабочего стола и Автозапуск#Запуск оконного менеджера соответственно.
VirtualBox также может синхронизировать время между хостом и гостевой ОС. Для этого включите службу vboxservice.service.
Теперь у вас есть рабочая гостевая Arch Linux. Поздравляем!
Если вы хотите расшарить директории между вашим компьютером и гостевым Arch Linux, читайте дальше.
Независимо от того, какой метод вы будете использовать, чтобы смонтировать директорию, требуются некоторые начальные действия.
Чтобы избежать проблемы /sbin/mount.vboxsf: mounting failed with the error: No such device, убедитесь, что модуль ядра vboxsf загружен правильно. Он должен быть загружен, поскольку мы включили все гостевые модули ядра ранее.
Два дополнительных шага необходимы для того, чтобы точки монтирования должны быть доступны из пользователей кроме root-а:
- Пакет создает группу
vboxsf; - Ваше имя пользователя должно быть в этой группе, используйте команду
gpasswd -a $USER vboxsf, чтобы добавить свое имя пользователя и запуститеnewgrp, чтобы применить изменения немедленно.
Выполните следующую команду для монтирования директории в гостевой Arch Linux:
# mount -t vboxsf имя_расшариваемой_директории точка_монтирования_в_гостевой_ОС
Файловая система vboxsf предоставляет и другие способы, просмотреть которые можно выполнив:
# mount.vboxsf
Например, если пользователь не добавлен в vboxsf группу, мы могли бы использовать эту команду, чтобы смонтировать директорию в гостевой ОС:
# mount -t vboxsf -o uid=1000,gid=1000 home /mnt/
Где UID и GID являются значениями, соответствующими пользователям, которым мы хотим дать доступ к монтированию директории. Эти значения можно узнать из вывода команды id, выполненной из сессии этого пользователя.
Чтобы функция автоматического монтирования заработала, вы должны включить флажок в графическом интерфейсе или использовать дополнительный аргумент --automount при команде VBoxManage общая_директория
Теперь общая директория должна появиться в /media/sf_имя_расшаренной_директории.
Вы можете использовать символические ссылки, если хотите иметь более удобный доступ:
$ ln -s /media/sf_имя_расшаренной_директории ~/мои_документы
Монтирование при загрузке
Вы можете монтировать директории с помощью fstab. Во избежание проблем с systemd, необходимо добавить в /etc/fstab строчку comment=systemd.automount.
Таким образом, общие папки монтируются только тогда, когда доступны точки подключения, а не во время запуска. Это может избежать некоторых проблем, особенно если гостевая ОС еще не загружена, когда systemd уже начал читать fstab и монтировать разделы.
desktop /media/desktop vboxsf uid=user,gid=group,rw,dmode=700,fmode=600,comment=systemd.automount 0 0
desktop /media/desktop vboxsf uid=user,gid=group,rw,dmode=700,fmode=600,nofail 0 0
Установка расширения VirtualBox Extension Pack
Страница VirtualBox Extension Pack доступна по ссылке: https://www.virtualbox.org/wiki/Download_Old_Builds_6_1.
Загрузить файл со сценарием установки:
Выполнить сценарий установки:
sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-6.1.48.vbox-extpack
Установка из репозитория Debian
Доступная в репозитории Debian версия virtualbox несовместима с ядром 5.4. При наличии в системе даже незагруженных версий ядра (5.4.0.54, 5.4.0.71) при установке пакета будут выдаваться сообщения об ошибке. Удалить образы ядра 5.4 можно командами:
sudo apt purge linux-image-5.4.0-71-generic
sudo apt purge linux-image-5.4.0-54-generic
Подключить репозитории Debian (подробнее см. Подключение репозиториев с пакетами в ОС Astra Linux и установка пакетов):
для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) – неприменимо;
для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6):
deb https://archive.debian.org/debian/ stretch-backports contrib deb https://archive.debian.org/debian/ stretch main
Обновить списки пакетов:
sudo apt update
Если при обновлении списка пакетов выдаются ошибки вида:
W: Произошла ошибка при проверке подписи. Репозиторий не обновлён и будут использованы предыдущие индексные файлы. Ошибка GPG: https://archive.debian.org/debian stretch-backports InRelease: Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY 04EE7237B7D453EC NO_PUBKEY 648ACFD622F3D138 W: Произошла ошибка при проверке подписи. Репозиторий не обновлён и будут использованы предыдущие индексные файлы. Ошибка GPG: https://archive.debian.org/debian stretch Release: Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY 7638D0442B90D010 NO_PUBKEY 04EE7237B7D453EC NO_PUBKEY EF0F382A1A7B6500
то установить ключи для подключенного репозитория:
sudo apt install debian-archive-keyring
и повторить обновление списка пакетов. Если установка пакета не помогла полностью избавиться от ошибки, то недостающие ключи репозиториев можно загрузить командами:
После подключения репозиториев выполнить установку пакетов из этого репозитория стандартным инструментом apt, например:
sudo apt install virtualbox-7.0
Установка Дополнений гостевой ОС на ГОСТЕВЫЕ машины
Порядок установки дополнений гостевой ОС см. в статье Установка Astra Linux на виртуальные машины
Управление виртуальными дисками
Форматы, поддерживаемые VirtualBox
VirtualBox поддерживает следующие форматы виртуальных дисков:
- VDI: Virtual Disk Image — собственный контейнер VirtualBox, используемый по умолчанию, когда вы создаёте виртуальную машину в VirtualBox.
- VMDK: Virtual Machine Disk — изначально разработан VMware для своих продуктов. Изначально спецификация была закрытой, но сейчас это открытый формат, который VirtualBox полностью поддерживает. Этот формат даёт возможность разбивать диск на несколько файлов по 2ГБ. Эта функция особенно полезна, если вы хотите сохранить виртуальную машину на компьютерах, которые не поддерживают очень большие файлы. Другие форматы, за исключением формата HDD от Parallels, не предоставляют подобную функцию.
- VHD: Virtual Hard Disk — формат, который использует Microsoft в Windows Virtual PC и Hyper-V. Если вы собираетесь использовать любой из этих продуктов Microsoft, вам придётся выбрать этот формат.
Совет: Начиная с Windows 7, этот формат может быть примонтирован непосредственно без каких-либо дополнительных приложений.
- VHDX (только для чтения): Это расширенная (eXtended) версия формата Virtual Hard Disk, разработанный в Microsoft и выпущенный в 2012-09-04 с Hyper-V 3.0 при переходе на Windows Server 2012. Эта новая версия имеет повышенную производительность (лучшее расположение блоков), бо́льшие размеры блоков и поддержку журнала. VirtualBox поддерживает этот формат только для чтения.
- HDD (версия 2): Формат HDD разработан Parallels Inc и используются в их гипервизорах, например Parallels Desktop для Mac. Новые версии этого формата (т.е. 3 и 4) не поддерживаются из-за отсутствия документации для этого формата.
- QED: QEMU Enhanced Disk — старый формат для QEMU, свободный и открытый. Этот формат был разработан в 2010 году таким образом, чтобы обеспечить превосходную альтернативу qcow2 и другим форматам. Этот формат имеет полностью асинхронный ввод-вывод, хорошую целостность данных, откат файлов и разреженные файлы. Формат QED поддерживается только для совместимости с виртуальными машинами, созданными в старых версиях QEMU.
- QCOW: QEMU Copy On Write — нынешний формат для QEMU. Формат QCOW поддерживает прозрачное сжатие на основе ZLIB и шифрование (однако у шифрования есть проблемы, поэтому использовать его не рекомендуется). QCOW доступен в двух версиях: QCOW и QCOW2. Последний, как правило, заменяет первый. QCOW в настоящее время полностью поддерживается в VirtualBox. QCOW2 имеет две ревизии: QCOW2 0.10 и QCOW2 1.1 (используемый по умолчанию при создании виртуального диска с QEMU). VirtualBox не поддерживает QCOW2.
- OVF: Open Virtualization Format — открытый формат, который был разработан для обеспечения взаимодействия и распределения виртуальных машин между различными гипервизорами. VirtualBox поддерживает все версии этого формата через импорт/экспорт в VBoxManage, но с известными ограничениями.
- RAW: это режим, когда виртуальный диск непосредственно пробрасывается на диск без определённого формата контейнера. VirtualBox поддерживает эту функцию несколькими способами: преобразование RAW-диска в определённый формат, или клонирование диска в формате RAW, или непосредственно через файл VMDK, который указывает на физический диск или просто файл.
Преобразование виртуальных дисков разных форматов
VMDK в VDI и VDI в VMDK
VirtualBox может конвертировать VDI в VMDK и обратно с использованием VBoxManage clonehd.
VMDK в VDI:
$ VBoxManage clonehd source.vmdk destination.vdi --format VDI
VDI в VMDK:
$ VBoxManage clonehd source.vdi destination.vmdk --format VMDK
VHD в VDI и VDI в VDH
VirtualBox также может конвертировать VHD в VDI и наоборот с использованием VBoxManage clonehd:
VHD в VDI:
$ VBoxManage clonehd source.vhd destination.vdi --format VDI
VDI в VHD:
$ VBoxManage clonehd source.vdi destination.vhd --format VHD
QCOW2 в VDI и VDI в QCOW2
VBoxManage clonehd не может конвертировать QEMU форматы и необходимо воспользоваться иными инструментами. Команда qemu-img из пакета может осуществлять преобразования QCOW2<=>VDI.
Примечание: qemu-img также обрабатывает кучу других форматов. В соответствии выводу qemu-img --help, qemu-img поддерживает данные форматы : “vvfat vpc vmdk vhdx vdi ssh sheepdog sheepdog sheepdog raw host_cdrom host_floppy host_device file qed qcow2 qcow parallels nbd nbd nbd iscsi dmg tftp ftps ftp https http cow cloop bochs blkverify blkdebug'”.
QCOW2 в VDI:
$ qemu-img convert -pO vdi source.qcow2 destination.vdi
VDI в QCOW2:
$ qemu-img convert -pO qcow2 source.vdi destination.qcow2
Так как QCOW2 предостовляется в двух версиях (0.10 и 1.1) (см. форматы, поддерживаемые VirtualBox. Используйте параметр -o compat= для выбора версии.
$ qemu-img convert -pO qcow2 source.vdi destination.qcow2 -o compat=0.10
$ qemu-img convert -pO qcow2 source.vdi destination.qcow2 -o compat=1.1
Совет: Параметр -p отображает прогресс выполнения преобразования.
Монтирование виртуальных дисков
Монтирование образов VDI работает только с образами фиксированного размера (т.е. статичными образами); динамические образы (динамическое выделение размера) монтируются довольно-таки не просто.
Если необходимо смещение раздела (в VDI), добавьте значение offData в 32256 (например, 69632 + 32256 = 101888):
$ VBoxManage internalcommands dumphdinfo storage.vdi | grep "offData"
# mount -t ext4 -o rw,noatime,noexec,loop,offset=101888 storage.vdi /mntpoint/
Вы также можете использовать скрипт mount.vdi (поместите его в каталог /usr/bin/):
# mount -t vdi -o fstype=ext4,rw,noatime,noexec vdi_file_location /mnt/
# modprobe nbd max_part=16 # qemu-nbd -c /dev/nbd0 storage.vdi # mount /dev/nbd0p1 /mnt/dir/
# umount /mnt/dir/ # qemu-nbd -d /dev/nbd0
Если файлы разделов не появляются, попробуйте использовать partprobe /dev/nbd0; в противном случае, VDI раздел может быть отображён непосредственно в файл с помощью qemu-nbd -P 1 -c /dev/nbd0 storage.vdi.
Ещё один способ — использовать AUR:
# vdfuse -a -f storage.vdi mountpoint1
Эта команда примонтирует диск в каталог mountpoint1, внутри которого будут файлы разделов с именами вида PartitionN. Разделы можно примонтировать с помощью loop-устройств:
# mount -o loop mountpoint1/PartitionN mountpoint2
Сжатие виртуальных дисков
Сжатие работает только с файлами .vdi и в основном состоит из следующих действий.
Загрузите виртуальную машину и удалите всё ненужное вручную или с помощью специальных средств, например (доступна для ОС Windows).
Затрите свободное место нулями. Это можно сделать следующими инструментами:
- Если вы пользовались Bleachbit, просто установите галочку System > Free disk space в графическом интерфейсе или выполните команду
bleachbit -c system.free_disk_spaceв терминале; - В UNIX-based системах выполните команду
ddили, предпочтительно, AUR (см. здесь информацию об отличиях):
# dcfldd if=/dev/zero of=/fillfile bs=4M
- Когда
fillfileзаймёт всё свободное место, появится сообщение вида1280 blocks (5120Mb) written.dcfldd:: No space left on device. Это означает, что всё доступное пользователю пространство и незарезервированные блоки раздела были затёрты. Используя эту команду от имени суперпользователя, важно убедиться в том, что затёрты все свободные блоки. По умолчанию некий процент блоков ФС зарезервирован для суперпользователя (смотрите аргумент-mкомандыmkfs.ext4или используйтеtune2fs -l, чтобы увидеть, сколько места зарезервировано под приложения, запущенные от имени root). - Когда вышеописанный процесс будет завершён, вы можете удалить созданный вами файл
fillfile.
- В Windows есть два инструмента:
sdeleteиз Sysinternals Suite, выполнитеsdelete -s -z c:для каждого виртуального диска;- для любителей скриптов есть скрипт на PowerShell. Его также необходимо запускать отдельно для каждого виртуального диска.
PS> ./Write-ZeroesToFreeSpace.ps1 -Root c:\ -PercentFree 0
Примечание: Этот скрипт должен быть запущен в среде PowerShell от имени администратора. По умолчанию скрипты не запускаются из-за ограничений политик безопасности. Необходимо изменить значение параметра
Get-ExecutionPolicyв политиках безопасности:Set-ExecutionPolicy RemoteSigned.
После завершения выключите виртуальную машину.
При следующем включении виртуальной машины рекомендуется провести проверку диска.
- в UNIX-based системах можно вручную запустить
fsck; - в Windows:
chkdsk c: /F, гдеc:заменяется на имя проверяемого диска;- или
FsckDskAllотсюда, который основан наchkdsk, но не требует повторения команды для каждого отдельного диска;
Теперь удалите нули из файлов .vdi с помощью VBoxManage modifyhd:
$ VBoxManage modifyhd ваш_диск.vdi --compact
Примечание: Если в вашей виртуальной машине есть снимки, вам необходимо выполнить команду для всех ваших .vdi файлов.
Увеличение размера виртуальных дисков
Если вы выходите за рамки пространства жесткого диска, которое выбрали при создании виртуальной машины, проблему можно решить по совету из руководства VirtualBox VBoxManage modifyhd. Эта команда работает только для динамически расширяемых дисков VDI и VHD . Если вы хотите изменить размер фиксированного виртуального диска, можете использовать нижеописанный трюк, который работает и на виртуальной машине Windows, и в UNIX-подобных системах.
Во-первых, создайте новый виртуальный диск рядом с тем, который вы хотите увеличить:
$ VBoxManage createhd -filename new.vdi –size 10000
где размер указан в MiB, в этом примере 10000MiB ~ = 10GiB, new.vdi – имя создаваемого нового виртуального диска.
Далее старый виртуальный диск должен быть клонирован в новый(это может занять длительной время):
$ VBoxManage clonehd old.vdi ew.vdi –existing
Примечание: По умолчанию, эта команда использует Standard (что соответствует динамическому выделению) формату файла диска, и, следовательно, не будет использовать тот же формат в качестве формата исходного виртуального диска. Если ваш old.vdi имеет фиксированный размер, и вы хотите, чтобы новый диск был тоже фиксированным, добавьте параметр --variant Fixed.
Отключите старый диск и установите новый, обязательно заменив все выделенные курсивом аргументы на свои:
$ VBoxManage storageattach VM_name --storagectl SATA --port 0 --medium none $ VBoxManage storageattach VM_name --storagectl SATA --port 0 --medium new.vdi --type hdd
Чтобы получить имя контроллера диска и номер порта, вы можете использовать команду VBoxManage showvminfo VM_name. Среди вывода вы получите такой результат (то, что вы ищете выделено курсивом):
[...]
Storage Controller Name (0): IDE
Storage Controller Type (0): PIIX4
Storage Controller Instance Number (0): 0
Storage Controller Max Port Count (0): 2
Storage Controller Port Count (0): 2
Storage Controller Bootable (0): on
Storage Controller Name (1): SATA
Storage Controller Type (1): IntelAhci
Storage Controller Instance Number (1): 0
Storage Controller Max Port Count (1): 30
Storage Controller Port Count (1): 1
Storage Controller Bootable (1): on
IDE (1, 0): EmptySATA (0, 0): /home/wget/IT/Virtual_machines/GNU_Linux_distributions/ArchLinux_x64_EFI/Snapshots/{6bb17af7-e8a2-4bbf-baac-fbba05ebd704}.vdi (UUID: 6bb17af7-e8a2-4bbf-baac-fbba05ebd704)
[...]Примечание: На GPT дисках, увеличение размера диска приведет к созданию резервной копии заголовка GPT в месте, отличном от конца устройства. GParted попросит, чтобы исправить проблему, нажать на исправить два раза. На дисках MBR такой проблемы не возникнет.
Наконец, отключите старый виртуальный диск в VirtualBox и удалите его:
$ VBoxManage closemedium disk old.vdi$ rm old.vdi
Замена виртуального диска из файла .vbox вручную
Если вы думаете, что редактирование простого XML файла более удобно, чем возня с GUI или VBoxManage и вы хотите заменить (или добавить) виртуальный диск в вашей виртуальной машине, просто замените GUID, местоположение файла и формат для ваших нужд в конфигурационном файле .vbox, соответствующем вашей виртуальной машине:
ArchLinux_vm.vbox
<HardDisk uuid="{670157e5-8bd4-4f7b-8b96-9ee412a712b5}" location="ArchLinux_vm.vdi" format="VDI" type="Normal"/>в <AttachedDevice> (суб-тег <StorageController>) замените старый GUID на новый.
ArchLinux_vm.vbox
<AttachedDevice type="HardDisk" port="0" device="0"> <Image uuid="{670157e5-8bd4-4f7b-8b96-9ee412a712b5}"/>
</AttachedDevice>Примечание: Если вы не знаете GUID диска который вы хотите добавить, вы можете использовать VBoxManage showhdinfo file. Если раньше вы использовали VBoxManage clonehd, для копирования или конвертирования виртуальных дисков, он выводит GUID после завершения копирования / преобразования. Применение случайного GUID не работает, так как каждый UUID хранится внутри любого образа диска.
Клонирование виртуального диска и назначение ему нового UUID
UUID широко используются VirtualBox. Каждая виртуальная машина и каждый виртуальный диск виртуальной машины должны иметь разные UUID. Когда вы запускаете виртуальную машину в VirtualBox, он будет отслеживать все UUID. См VBoxManage list, чтобы просмотреть список элементов, зарегистрированных в VirtualBox.
Если вы клонировали виртуальный диск вручную путем копирования файла виртуального диска, необходимо будет назначить новый UUID клонированному виртуальному диску. Вы можете использовать этот диск в той же виртуальной машине или даже в другой (если он уже открыт и таким образом зарегистрирован в VirtualBox).
Вы можете использовать эту команду, чтобы назначить новый UUID для вашего виртуального диска:
$ VBoxManage internalcommands sethduuid /path/to/disk.vdi
Совет: В будущем, чтобы избежать копирования виртуального диска и назначения нового UUID вручную, используйте VBoxManage clonehd.
Примечание: Все указанные команды поддерживают все форматы виртуальных дисков, поддерживаемые VirtualBox.
Некоторые полезные функции VirtualBox
Если вы часто используете VirtualBox для создания виртуальных машин, вы должны иметь представление о разнообразии функций, которыми обладает этот инструмент. Ниже перечислены некоторые из этих удивительных функций, которые помогут вам максимально эффективно использовать ваши виртуальные машины. Однако некоторые из них требуют установки гостевых дополнений.
Общие папки между гостем и хостом
VirtualBox позволяет пользователям настраивать “Общие папки”, к которым доступны как хост, так и гость. VirtualBox берет папку в операционной системе хоста и помещает ее внутрь виртуальной машины, используя сетевой доступ к файлам, чтобы сделать ее доступной. Вам нужно настроить общие папки в настройках виртуальной машины, а затем смонтировать их, как обычно.

USB-устройства
USB-устройства, подключенные к вашему хост-оборудованию, могут быть подключены к виртуальной машине так, как если бы они были подключены непосредственно к ней. С помощью этой функции можно подключать USB-накопители, а также другие устройства. Чтобы сделать это, сначала убедитесь, что поддержка USB включена в настройках виртуальной машины. Затем перейдите на вкладку Устройства, выберите USB-устройства и выберите диск, который вы хотите подключить к своей виртуальной машине.

Создавайте Snapshots
Создание Snapshots в VirtualBox означает сохранение состояния вашей виртуальной машины. Восстановив Snapshots, вы можете вернуться к сохраненному состоянию. Вы также можете иметь несколько Snapshots и, таким образом, в любой момент можете вернуться к сохраненному состоянию. Эти точки восстановления полезны, когда вы хотите стереть свои изменения или протестировать определенное программное обеспечение.

Чтобы создать Snapshots в вашей виртуальной машине, щелкните в меню машины во время ее работы и выберите Сделать Snapshots или использовать панель Snapshots. Затем вы можете восстановить Snapshots из этого интерфейса.
Удаленный дисплей
Когда вы включаете удаленное отображение в своем VirtualBox, это позволяет вам получить доступ к вашей виртуальной машине с другого компьютера. Вы можете запустить виртуальную машину на безголовом сервере или других удаленных системах. Это происходит с помощью VRDP. Вы можете использовать программу подключения к удаленному рабочему столу в Windows или любое другое средство просмотра RDP для доступа к вашей виртуальной машине без специального программного обеспечения VirtualBox.

Бесшовный режим
Бесшовный режим – еще одна замечательная функция VirtualBox. Это позволяет вам размещать окна из вашей гостевой ОС на рабочем столе хост-системы. Например, если вы запускаете программу Windows на рабочем столе Linux с помощью VirtualBox, вы можете переключиться в бесшовный режим, чтобы открыть эту вкладку программы Windows на рабочем столе Linux.
Чтобы переключиться в бесшовный режим, сначала установите гостевые дополнения VirtualBox. Затем перейдите на вкладку “Просмотр” и выберите “Переключиться в бесшовный режим”.

Установка из загруженных файлов без подключения сторонних репозиториев
для установки на Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6) и Astra Linux Special Edition РУСБ.10015-16 исп. 1:
Подключить в качестве источника пакетов диск со средствами разработки и диски оперативных обновлений (обновление основного диска и обновление диска со средствами разработки);
Установить пакет ca-certificates (требуется только для скачивания файлов):
sudo apt install ca-certificates
Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7):
Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6):
- скачать файл с пакетом:
использовать стандартную для установки пакетов из полученных файлов:
sudo apt install ./<имя_файла_с_пакетом_VirtualBox>
или
sudo apt install ./<имя_файла_с_пакетом_VirtualBox> ./libvpx*_amd64.deb
Выдаваемое при установке предупреждение:
N: Download is performed unsandboxed as root as file '/tmp/tmp.yKiAwHtLXZ/virtualbox-6.1_6.1.26-145957~Debian~stretch_amd64.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Отказано в доступе)
Установка VirtualBox с сайт разработчика
Установка VirtualBox может быть осуществлена из пакета с сайт разработчика.
Этот способ может быть применён как в Linux, так и в Windows.
Для установки VirtualBox из пакета с сайта разработчика virtualbox.org на примере версии для Debian Jessie
- загружается пакет-установщик
- с https://virtualbox.org $ wget virtualbox-5.2_5.2.36-135684~Debian~jessie_i386.deb $ wget virtualbox-5.2_5.2.36-135684~Debian~jessie_amd64.deb
- с ftp://tdkare.ru/ $ wget virtualbox-5.2_5.2.36-135684~Debian~jessie_i386.deb $ wget virtualbox-5.2_5.2.36-135684~Debian~jessie_amd64.deb
- осуществляется установка
# dpkg -i virtualbox-<ВЕРСИЯ_И_ПЛАТФОРМА>.deb
При установке VirtualBox таким образом контроль обновлений перекладывается на пользователя (саму программу).
Доступ к USB устройствам
Для получения доступа к USB порту в виртуальной машине
- добавляется доверенный пользователь в группу vboxusers
При установке пакета группа vboxusers создается автоматически В созданном при установке пакета правиле /etc/udev/rules.d/10-vboxdrv.rules этой группе предоставляются права "0664". Добавление пользователя может быть осуществлено например графической программой kuser.
- разрешаются чтение/запись в файловые системы смонтированные через usb (?! а нужно ли ?)
в /etc/fstab добавляется строка (где devgid=117 это ID группы vboxusers) none /proc/bus/usb usbfs devgid=117,devmode=666 0 0
- перезапускается сессия доверенного пользователя или компьютер
Теперь виртуальная машина может получить доступ к подключенным USB устройствам.
Для добавления USB-устройства в виртуальной машине
- запускается VirtualBox от имени доверенного пользователя
- устанавливается интересующее нас устройство USB в слот
- в “Свойствах\USB\” устанавливаются параметры
"Включить контроллер USB" да "Enable USB EHCI Controller" да "Фильтры устройств USB" добавляется и включается USB устройство (например ключ Rainbow SafeNet).- при старте гостевой системы (виртуальной машины) USB устройство определится и будет добавлено автоматически
Доступ к LPT порту
VirtualBox не поддерживает включение доступа к LPT-порту в графическом интерфейсе управления виртуальными машинами.
Но позволяет это сделать из командной строки.
Замечание: Перед добавлением LPT-порта целевая виртуальная машина должна быть создана. Все действия по модернизации ВМ осуществляются когда она не запущена.
Для получения доступа к LPT-порту в виртуальной машине в Linux
- уточняется информация о порте и прерывании LPT-порта
# dmesg | grep parport
- добавляется LPT-порт
# VBoxManage modifyvm VM --lptmode1 /dev/parport0 # VBoxManage modifyvm VM --lpt1 0x378 7 где VM - имя виртуальной машины parport0, 0x378, 7 - псевдоним, порт и IRQ LPT-порта (Возможно придется добавить разрешения...)
- если доступ в параллельному порту заблокирован:
- убедитесь, что пользователь добавлен в группы lp и lpadmin Для применения новых настроек разрешения, не забудьте перезайти в систему. - убедитесь, что ядро уже не использует LPT-порт, например если получено сообщение "could not claim parallel port" Решением будет выгрузка модуля из ядра командой # modprobe -r lp # rmmod lp
- для настройки параметров порта в виртуальной машине могут быть использованы команды
# VBoxManage setextradata VM "VBoxInternal/Devices/parallel/0/LUN#0/Config/DevicePath" /dev/parport0 # VBoxManage setextradata VM "VBoxInternal/Device/parralel/0/LUN#0" HostParallel # VBoxManage setextradata VM "VBoxInternal/Device/parralel/0/Config/IOBase" 0x378 # VBoxManage setextradata VM "VBoxInternal/Device/parralel/0/Confgin/IRQ" 7
- для отключения LPT-порта может быть использована команда
# VBoxManage modifyvm VM --lpt1 off
Для получения доступа к LPT-порту в виртуальной машине в Windows
- уточняется информация о порте и прерывании LPT-порта
например прямо из программы настройки BIOS материнской платы
- добавляется LPT-порт командами
VBoxManage modifyvm VM --lptmode1 "LPT4:" VBoxManage modifyvm VM --lpt1 0x378 7
Увеличение размера диска VirtualBox
Создавая виртуальный жесткий диск в вашей хост-системе, вы выделяете диск определенного размера. Если позже вы захотите увеличить размер диска вашей виртуальной машины, вам нужно будет увеличить виртуальный диск и раздел. Ниже приведены два простых способа сделать это.
Способ 1: Измените размер виртуального диска с помощью Virtual Media Manager
VirtualBox 6 содержит дополнительную графическую опцию, которая позволяет пользователям увеличивать и изменять размер виртуальных дисков. Вот как вы можете это сделать:
- В главном интерфейсе VirtualBox перейдите на вкладку “Файл” и перейдите в раздел “Виртуальный медиаменеджер”.

- Из списка выберите виртуальный жесткий диск. Затем, напротив параметра “Размер” в нижней части окна, отрегулируйте ползунок, чтобы изменить размер диска.

- Когда вы закончите, нажмите на “Применить”, чтобы сохранить изменения.
Но для того, чтобы воспользоваться преимуществами увеличенного пространства, вам необходимо увеличить раздел на диске, который остается неизменным даже при увеличении размера диска.
Способ 2: Увеличьте диск VirtualBox
Вы можете использовать команду “VBoxManage” в окне командной строки, чтобы увеличить виртуальный диск в VirtualBox. Обратите внимание, что перед продолжением все snapshots, связанные с виртуальной машиной, удаляются, так как они могут вызвать помехи в процессе. Затем выполните действия, приведенные ниже.
- Для начала выключите виртуальную машину и убедитесь, что ее состояние “Выключено”, а не “Сохранено”.
- Затем щелкните правой кнопкой мыши в меню “Пуск” и откройте окно “Командная строка”.
- Измените расположение папки “program files” в VirtualBox, введя следующую строку:
cd “C:\Program Files\Oracle\VirtualBox”

- Теперь используйте следующую командную строку, которая изменит размер вашего виртуального диска до 81920 МБ.
- Если вы используете последнюю версию VirtualBox 6, вам нужно запустить следующую командную строку вместо вышеупомянутой:

Этот процесс также не увеличивает раздел на виртуальном диске, поэтому вы не сможете получить доступ к дополнительному пространству.
Часто задаваемые вопросы
- Можете ли вы создать виртуальную машину в Windows 10?
Да, вы можете создать виртуальную машину в Windows. Для этого вы можете использовать Hyper-V, который является встроенной функцией виртуальной машины в Windows 10. Для выполнения этой задачи также доступно несколько сторонних программ, таких как VirtualBox, VMware и т.д.
- Как вы можете создать виртуальную машину под управлением Windows 10?
Чтобы создать виртуальную машину Windows, запустите свой VirtualBox и нажмите “Создать” в главном интерфейсе. Когда появится диалоговое окно “Создать виртуальную машину”, введите “Windows 10”, нажмите “Версия” и выберите версию операционной системы. Укажите размер оперативной памяти для вашей виртуальной машины. Затем нажмите на “Создать виртуальный жесткий диск сейчас” и выберите “Создать”. Выделите размер виртуального жесткого диска. Выберите “VDI” в качестве типа файла и нажмите “Далее”.
Теперь выберите “Фиксированный размер для виртуального диска” и нажмите “Далее”. Затем подтвердите имя и размер диска и нажмите “Создать”, чтобы завершить. Наконец, выберите ISO-файлы Windows 10 в VirtualBox, чтобы установить их.
- Что делает пакет расширений Oracle VM VirtualBox?
Пакет расширений Oracle VM VirtualBox Extension Pack – это двоичный пакет, предназначенный для расширения и усовершенствования функциональности и возможностей VirtualBox. Загрузив его с веб-сайта Oracle, вы получите дополнительные функции, такие как поддержка устройств USB 2.0 (EHCI) и USB 3.0 (xHCI), VRDP, шифрование образа диска с помощью алгоритма AES, загрузочное ПЗУ Intel PXE, сквозная веб-камера хоста и т.д.
Запуск с флешки
VirtualBox напрямую не позволяет осуществлять запуск в гостевых (виртуальных) системах с флешки или жёстких дисков.
Но предоставляет механизм подключения существующих устройств к виртуальному жёсткому диску.
Для организации запуска с флешки в VirtualBox на примере Windows версии программы
- запускается создание виртуального жёсткого диска
- в диалоге нажимается кнопка “Выбрать существующий диск” и указывается флешка
- при старте виртуальной машины нажимается F12 и выбирается вторичный который и является флешкой (виртуальный) жёсткий диск,
Установка пакетов
Пакет VirtualBox доступен для скачивания на официальном сайте web-сайте https://www.virtualbox.org/wiki/Linux_Downloads. Для установки в Astra Linux следует выбирать версию, предназначенную для совместимого дистрибутива Debian (см. Таблица вариантов исполнения Astra Linux Special Edition).
Кроме файла с собственно пакетом VirtualBox рекомендуется также установить плагин расширений (extension pack). Этот файл также доступен на сайте VirtualBox;
Получить и установить пакеты для установки можно следующими способами:
- из репозитория Oracle VirtualBox;
- из репозитория Debian;
- из загруженных файлов без подключения сторонних репозиториев.
VirtualBox Extension Pack
Для получения доступа к расширенным возможностям VirtualBox, например доступу к USB-устройствам следует установить пакет расширения VirtualBox Extension Pack.
Для установки VirtualBox Extension Pack, на примере версии для Debian Jessie
- получается расширение
- с ftp://tdkare.ru/ # wget Oracle_VM_VirtualBox_Extension_Pack-5.2.36.vbox-extpack
- осуществляется установка расширения
$ su получаются права суперпользователя $ VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.2.36.vbox-extpack
Замечание: Для установка расширения в графическом режиме - открывается вкладка "Файл \ Настройки \ Плагины" - нажимается кнопка "Добавить плагин" - указывается местонахождение файла Oracle_VM_VirtualBox_Extension_Pack-<ВЕРСИЯ>.vbox-extpack
Установка из репозитория Oracle VirtualBox
установить пакет ca-certificates, если он не был ранее установлен:
sudo apt install ca-certificates
получить и установить ключ для репозитория Oracle VirtualBox:
(см. Подключение репозиториев с пакетами в ОС Astra Linux и установка пакетов):
Для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7):
deb [arch=amd64] https://download.virtualbox.org/virtualbox/debian buster contrib
Для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6):
deb [arch=amd64] https://download.virtualbox.org/virtualbox/debian stretch contrib
убедиться, что в подключенных репозиториях присутствует пакет libvpx4 (для Astra Linux Special Edition 1.6) или libvpx5 (для Astra Linux Special Edition 1.7):
sudo apt update
apt-cache policy libvpx*если пакет отсутствует, то:
sudo apt install ./libvpx5_1.7.0-3+deb10u1_amd64.deb
подключить репозиторий Debian:
для Для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7):
deb https://deb.debian.org/debian/ buster main
для Для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6):
deb https://archive.debian.org/debian/ stretch main
- выполнить установку с помощью стандартного инструмента apt:
обновить список пакетов:
sudo apt update
Проверить доступные версии VirtualBox:
apt-cache policy virtualbox*
Установить нужную версию virtualbox, например virtualbox-6.1:
sudo apt install virtualbox-6.1
Установка VirtualBox из хранилища пакетов
Установка VirtualBox в Debian/GNU Linux может быть осуществлена:
$ apt-get install virtualbox или $ apt-get install virtualbox-ose
- добавляется ключ хранилища VirtualBox $ su получаются права суперпользователя $ wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add - $ wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add - - в файл /etc/apt/sources.list добавляется строчка deb http://download.virtualbox.org/virtualbox/debian squeeze contrib
$ apt-get update && apt-get install virtualbox-<версия> обновление списка пакетов и установка
Ошибка “Kernel driver not installed (rc=-1908)”
Для устранения ошибки “Kernel driver not installed (rc=-1908)” (в ядре не установлен драйвер):
выполнить следующие действия:
- Подключить базовый репозиторий (для Astra Linux Special Edition 1.6 — репозиторий со средствами разработки).
Установить пакеты gcc, make и perl:
sudo apt install gcc make perl
sudo modprobe vboxdrv
Error while adding new interface
Если после обновления ядра возникает ошибка “VBoxNetAdpCtl: Error while adding new interface: failed to open.dev/vboxnetctl: No such file or directory”. Драйвер ядра VirtualBox Linux (vboxdrv) не установлен необходимо:
sudo modprobe vboxdrv
sudo apt update
sudo apt install –reinstall linux-headers-$(uname -r) virtualbox-dkms dkms
Затем перезагрузить систему, после чего заново выполнить команду:
sudo modprobe vboxdrv
Если не помогло, то необходимо отключить Secure Boot в BIOS/UEFI
Не работают элементы диалогового окна выбора носителя “настройки VM -> Носители -> Выбор образа оптического диска”
fileDialog\useNative=false
Перезапустить окно VirtualBox.



