Управление VM VirtualBox из shell.

Установка, настройка, эксплуатация.

Модератор: ROOT

Управление VM VirtualBox из shell.

Сообщение ROOT » 01 авг 2024, 20:40

Оглавление


 Темы 
 Запуск и выключение машин 
 Информация о машинах 
 Создание виртуальной машины 
 Сеть 
 Изменение разрешения монитора виртуальной машины 
 Сжатие виртуальных дисков 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-файл разрастается до максимальных размеров, и для рационального использования дискового пространства хост-машины его приходится упаковывать.
Процедура сжатия виртуальных дисков достаточно простая и подразумевает последовательное выполнение следующих шагов.
  1. Загружается гостевая система, виртуальный носитель которой предполагается подвергнуть сжатию.
  2. Внутри гостевой системы загружается программа SDelete (в случае использования Windows) либо используется штатная утилита dd (если в гостевой системе задействован Linux).
  3. В гостевой системе открывается консоль и запускаются упомянутые инструменты, предназначенные для заполнения неиспользуемого пространства на виртуальном носителе нулями.
Для гостевой системы 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" 
Данный процесс включает несколько шагов:
  1. создание виртуальной машины
  2. настройка основных параметров
  3. Добавление виртуального жесткого диска
  4. Присоединение диска к виртуальной машине
  5. Присоединение установочного ISO-образа
  6. Настройка сети
  7. Запуск виртуальной машины

Вот пример полного сценария создания виртуальной машины для Linux (например, Ubuntu):
  1. Создание новой виртуальной машины
    Код: выделить все
    VBoxManage createvm --name "UbuntuVM" --ostype Ubuntu_64 --register

    • --name "UbuntuVM"` — задает имя виртуальной машины.
    • --ostype Ubuntu_64 — указывает тип операционной системы (в данном случае Ubuntu 64-бит).

    Чтобы просмотреть полный список допустимых значений для параметра --ostype при создании виртуальной машины в VirtualBox, можно использовать команду VBoxManage list ostypes.
    Код: выделить все
    VBoxManage list ostypes

  2. Установка основных параметров
    Код: выделить все
    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.
  3. Добавление виртуального жесткого диска
    Код: выделить все
    VBoxManage createhd --filename "UbuntuVM.vdi" --size 20000 --format VDI

    • --filename "UbuntuVM.vdi" — задает имя и путь к файлу виртуального диска.
    • --size 20000 — размер диска в мегабайтах (20 ГБ).
    • --format VDI — формат диска (можно также использовать VHD или VMDK).
  4. Присоединение диска к виртуальной машине
    Код: выделить все
    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 — присоединяет виртуальный диск к контроллеру.
  5. Присоединение установочного 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-образу установочного диска.
  6. Настройка сети
    Код: выделить все
    VBoxManage modifyvm "UbuntuVM" --nic1 nat

    • --nic1 nat — устанавливает сетевой интерфейс NAT для первого адаптера.
  7. Запуск виртуальной машины
    Код: выделить все
    VBoxManage startvm "UbuntuVM" --type gui

    • --type gui — запускает виртуальную машину с графическим интерфейсом.
Этот пример показывает основные шаги создания и настройки виртуальной машины в VirtualBox с помощью командной строки. Вы можете изменять параметры в зависимости от ваших потребностей и конфигурации операционной системы.
Администрирование Fedora Linux + настройка сети и прочая IT-Ботва


Для желающих поддержать
Карта SB: 5469 4009 6510 2267


Лучше ужасный конец, чем ужас без конца!
Аватар пользователя
ROOT
Администратор
 
Сообщений: 432
Зарегистрирован: 01 авг 2011, 09:36
Откуда: Моск. обл., г. Железнодорожный

Вернуться в Fedora

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron