Темы
Запуск и выключение машин
Информация о машинах
Создание виртуальной машины
Сеть
Изменение разрешения монитора виртуальной машины
Сжатие виртуальных дисков VirtualBox Disk Image (VDI)
Рекомендуемые компоненты для операционных систем
Создание виртуальной машины в VirtualBox с помощью "VBoxManage"
Дополнительные материалы
Virtualbox - Установка и настройка
Запуск и выключение машин
Запуск виртуальных машин:
- Код: выделить все
VBoxManage startvm XP
VBoxManage startvm XP --type=headless
Ключ --type=headless необходим, если управляем ВМ в консоли удалённо: гостевая ОС будет запущена, БЕЗ ОТОБРАЖЕНИЯ графического интерфейса.
Останов (через ACPI и "жёстко") работы виртуальной машины:
- Код: выделить все
VBoxManage controlvm "XP" acpipowerbutton
VBoxManage controlvm "XP" poweroff
Информация о машинах
Список из всех существующих виртуальных машин (имена и UUID):
- Код: выделить все
VBoxManage list vms
Просмотр детальной информации об определенной виртуальной машине:
- Код: выделить все
VBoxManage showvminfo "XP"
Вывести список поддерживаемых типов OS
- Код: выделить все
VBoxManage list ostypes
Создание виртуальной машины
Создание виртуальной машины
- Код: выделить все
VM_NAME="FreeBSD"
VBoxManage createvm --name "${VM_NAME}" --ostype FreeBSD_64 --register
Настройка памяти и процессоров и тип микрокода - UEFI
- Код: выделить все
VBoxManage modifyvm "${VM_NAME}" --memory 2048 --vram 256 --cpus 2 --firmware efi --acpi on --ioapic on
Установка чипсета для поддержки SATA-контроллера
- Код: выделить все
VBoxManage modifyvm "${VM_NAME}" --chipset ich9
Настройка графического контроллера
- Код: выделить все
VBoxManage modifyvm "${VM_NAME}" --graphicscontroller VMSVGA
Добавление и настройка SATA-контроллера
- Код: выделить все
VBoxManage storagectl "${VM_NAME}" --name "SATA Controller" --add sata --controller IntelAhci
Создание виртуального диска 60 Gb
- Код: выделить все
VBoxManage createhd --filename "${VM_NAME}.vdi" --size 61440 --format VDI --variant Standard
Присоединение виртуального диска к SATA-контроллеру
- Код: выделить все
VBoxManage storageattach "${VM_NAME}" --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium "${VM_NAME}"
Присоединение ISO-образа установочного диска
- Код: выделить все
VBoxManage storagectl "${VM_NAME}" --name "IDE Controller" --add ide
VBoxManage storageattach "${VM_NAME}" --storagectl "IDE Controller" --port 0 --device 0 --type dvddrive --medium "/home/serg/ISO/freebsd.iso"
Настройка сети
- Код: выделить все
VBoxManage modifyvm "${VM_NAME}" --nic1 bridged --nictype1 82540EM --bridgeadapter1 enp42s0 --nicpromisc allow-all
Запуск виртуальной машины
- Код: выделить все
VBoxManage startvm "${VM_NAME}" --type gui
Сеть
настройка типа сети: сетевой мост
- Код: выделить все
VBoxManage modifyvm "${VM_NAME}" --nic1 hostif
или NAT
- Код: выделить все
VBoxManage modifyvm "${VM_NAME}" --nic1 nat
включение режима VRDP, чтобы при отсутствии графического интерфейса иметь возможность подключиться и установить систему
- Код: выделить все
VBoxManage modifyvm "${VM_NAME}" --vrde on
Изменение разрешения монитора виртуальной машины
Чтобы сменить разрешение экрана на какой-нибудь виртуальной машине, узнайте ее имя в Менеджере VirtualBox и выполните в терминале следующую команду для машин с BIOS:
- Код: выделить все
VBoxManage controlvm "${VM_NAME}" setvideomodehint 1280 720 32
Разрешение меняется на включенной машине. После смены разрешения машину нужно будет перезапустить. Все действия производить из-под пользователя запустившего VirtualBox
Установка разрешения экрана для машин с EFI:
- Код: выделить все
VBoxManage setextradata "${VM_NAME}" VBoxInternal2/EfiGraphicsResolution 1600x900
Сжатие виртуальных дисков VirtualBox Disk Image (VDI)
Ни для кого не секрет, что по умолчанию пакет виртуализации VirtualBox использует динамические диски, объем которых автоматически увеличивается до заранее определенного предела по мере того, как гостевой операционной системе требуется дополнительное пространство на виртуальном носителе. Со временем это приводит к тому, что VDI-файл разрастается до максимальных размеров, и для рационального использования дискового пространства хост-машины его приходится упаковывать.
Процедура сжатия виртуальных дисков достаточно простая и подразумевает последовательное выполнение следующих шагов.
- Загружается гостевая система, виртуальный носитель которой предполагается подвергнуть сжатию.
- Внутри гостевой системы загружается программа SDelete (в случае использования Windows) либо используется штатная утилита dd (если в гостевой системе задействован Linux).
- В гостевой системе открывается консоль и запускаются упомянутые инструменты, предназначенные для заполнения неиспользуемого пространства на виртуальном носителе нулями.
Для сжатия виртуального HDD гостевой системы Linux необходимо забить нулями свободное место на разделах и удалить полученный файл:
- Код: выделить все
dd if=/dev/zero of=/boot/zero.zero bs=4M || rm -f /boot/zero.zero
dd if=/dev/zero of=/zero.zero bs=4M || rm -f /zero.zero
При записи полностью нулевого файла в набор данных ZFS с включенным сжатием он будет свернут в полностью разреженный файл с минимальным потреблением места - 512Б или 4kb, как вы видели. Чтобы такого не происходило необходимо отключить сжатие данных на пуле, для этого применим команду:
- Код: выделить все
zfs set compression=off tank
Проконтролировать текущее состояние компрессии на пуле можно:
- Код: выделить все
zfs get -r compression tank
Для гостевой системы Windows
Для гостевой системы Windows воспользуемся утилитой SDelete
- Код: выделить все
sdelete.exe -c -z c:
Замените C: буквой диска, которая соответствует накопителю, если нужно сжать не только системный диск.
Когда SDelete или dd прекратит обработку диска, потребуется завершить работу гостевой системы и в консоли самого что ни на есть настоящего компьютера выполнить команду:
- Код: выделить все
vboxmanage modifymedium --compact "~/VirtualBox VMs/GNS3-VM/internet-gns/internet-gns.vdi"
Для подобных манипуляций достаточно прав пользователя, который запускает VirtualBox.
При возникновении сложностей при процедуре сжатия в виде ругани относительно UUID можно попробовать сменить файлу виртуального HDD UUID.
- Код: выделить все
VBoxManage: error: Cannot register the hard disk '/home/.../AUTOCAD.vdi' {95498081-b746-4b71-bf70-cf519b64f9f5} because a hard disk '/home/.../AUTOCAD.vdi' with UUID {95498081-b746-4b71-bf70-cf519b64f9f5} already exists
Данный вопрос решается в одну команду:
- Код: выделить все
vboxmanage internalcommands sethduuid "~/VirtualBox VMs/GNS3-VM/internet-gns/internet-gns.vdi"
В результате выполнения данной команды происходит смена UUID
Заметка
Для совместимости с более ранними версиями Oracle VM VirtualBox также поддерживаются команды modifyvdi и modifyhd, которые являются аналогами команды modifymedium.
Рекомендуемые компоненты для операционных систем
- CentOS, Arch Linux, Fedora - Chipset - ICH9, Видеоадаптер - VMSVGA, Дисковый контроллер: SATA (IntelAhci)
- Код: выделить все
VBoxManage modifyvm "Linux" --chipset ich9
VBoxManage modifyvm "Linux" --graphicscontroller VMSVGA
VBoxManage storagectl "Linux" --name "SATA Controller" --add sata --controller IntelAhci
VBoxManage storageattach "Linux" --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium "path/to/disk.vdi"
- FreeBSD - Chipset - ICH9, видеоадаптер - VMSVGA, Дисковый контроллер: SATA (IntelAhci)
- Код: выделить все
VBoxManage modifyvm "FreeBSD" --chipset ich9
VBoxManage modifyvm "FreeBSD" --graphicscontroller VMSVGA
VBoxManage storagectl "FreeBSD" --name "SATA Controller" --add sata --controller IntelAhci
VBoxManage storageattach "FreeBSD" --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium "path/to/disk.vdi"
- Windows XP - Chipset - PIIX3, Видеоадаптер - VBoxVGA, Дисковый контроллер: IDE (PIIX3)
- Код: выделить все
VBoxManage modifyvm "WindowsXP" --chipset piix3
VBoxManage modifyvm "WindowsXP" --graphicscontroller VBoxVGA
VBoxManage storagectl "WindowsXP" --name "IDE Controller" --add ide --controller PIIX3
VBoxManage storageattach "WindowsXP" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium "path/to/disk.vdi"
- Windows 7 - Chipset - ICH9, Видеоадаптер - VBoxSVGA, Дисковый контроллер: SATA (IntelAhci)
- Код: выделить все
VBoxManage modifyvm "Windows7" --chipset ich9
VBoxManage modifyvm "Windows7" --graphicscontroller VBoxSVGA
VBoxManage storagectl "Windows7" --name "SATA Controller" --add sata --controller IntelAhci
VBoxManage storageattach "Windows7" --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium "path/to/disk.vdi"
- Windows 10 /11 - Chipset - ICH9, Видеоадаптер - VBoxSVGA, Дисковый контроллер: SATA (IntelAhci)
- Код: выделить все
VBoxManage modifyvm "Windows1X" --chipset ich9
VBoxManage modifyvm "Windows1X" --graphicscontroller VBoxSVGA
VBoxManage storagectl "Windows1X" --name "SATA Controller" --add sata --controller IntelAhci
VBoxManage storageattach "Windows1X" --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium "path/to/disk.vdi"
Создание виртуальной машины в VirtualBox с помощью "VBoxManage"
Данный процесс включает несколько шагов:
- создание виртуальной машины
- настройка основных параметров
- Добавление виртуального жесткого диска
- Присоединение диска к виртуальной машине
- Присоединение установочного ISO-образа
- Настройка сети
- Запуск виртуальной машины
Вот пример полного сценария создания виртуальной машины для Linux (например, Ubuntu):
- Создание новой виртуальной машины
- Код: выделить все
VBoxManage createvm --name "UbuntuVM" --ostype Ubuntu_64 --register
- --name "UbuntuVM"` — задает имя виртуальной машины.
- --ostype Ubuntu_64 — указывает тип операционной системы (в данном случае Ubuntu 64-бит).
Чтобы просмотреть полный список допустимых значений для параметра --ostype при создании виртуальной машины в VirtualBox, можно использовать команду VBoxManage list ostypes.- Код: выделить все
VBoxManage list ostypes
- Установка основных параметров
- Код: выделить все
VBoxManage modifyvm "UbuntuVM" --memory 2048 --vram 128 --cpus 2 --chipset ich9 --graphicscontroller VMSVGA
- --memory 2048 — выделяет 2 ГБ оперативной памяти.
- --vram 128 — устанавливает 128 МБ видеопамяти.
- --cpus 2 — задает количество процессоров.
- --chipset ich9 — устанавливает чипсет ICH9.
- --graphicscontroller VMSVGA — задает видеоадаптер VMSVGA.
- Добавление виртуального жесткого диска
- Код: выделить все
VBoxManage createhd --filename "UbuntuVM.vdi" --size 20000 --format VDI
- --filename "UbuntuVM.vdi" — задает имя и путь к файлу виртуального диска.
- --size 20000 — размер диска в мегабайтах (20 ГБ).
- --format VDI — формат диска (можно также использовать VHD или VMDK).
- Присоединение диска к виртуальной машине
- Код: выделить все
VBoxManage storagectl "UbuntuVM" --name "SATA Controller" --add sata --controller IntelAhci
VBoxManage storageattach "UbuntuVM" --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium "UbuntuVM.vdi"
- --add sata --controller IntelAhci — добавляет SATA-контроллер.
- --storageattach — присоединяет виртуальный диск к контроллеру.
- Присоединение установочного ISO-образа
- Код: выделить все
VBoxManage storagectl "UbuntuVM" --name "IDE Controller" --add ide
VBoxManage storageattach "UbuntuVM" --storagectl "IDE Controller" --port 0 --device 0 --type dvddrive --medium "path/to/ubuntu.iso"
- --add ide — добавляет IDE-контроллер.
- --medium "path/to/ubuntu.iso" — путь к ISO-образу установочного диска.
- Настройка сети
- Код: выделить все
VBoxManage modifyvm "UbuntuVM" --nic1 nat
- --nic1 nat — устанавливает сетевой интерфейс NAT для первого адаптера.
- Запуск виртуальной машины
- Код: выделить все
VBoxManage startvm "UbuntuVM" --type gui
- --type gui — запускает виртуальную машину с графическим интерфейсом.