Как установить arch linux на virtualbox
Перейти к содержимому

Как установить arch linux на virtualbox

  • автор:

VirtualBox/Install Arch Linux as a guest

This article is about installing Arch Linux in VirtualBox.

Boot the Arch installation media through one of the virtual machine’s virtual drives. Then, complete the installation of a basic Arch system as explained in the Installation guide.

Installation

Installation in EFI mode (optional)

Enabling EFI for Arch as guest is optional. If you want to install Arch Linux in EFI mode inside VirtualBox, you must change the firmware mode for the virtual machine. This must be done before installing Arch as guest, changing the option afterwards will result in an unbootable machine unless the setting is reverted.

To enable EFI for a virtual machine using the graphical interface, open the settings of the virtual machine, choose System item from the panel on the left and Motherboard tab from the right panel, and check the checkbox Enable EFI (special OSes only).

Alternatively the same can be accomplished from the command line using VBoxManage:

$ VBoxManage modifyvm "Virtual machine name" --firmware efi

efi will set the firmware for the virtual machine to EFI with the bitness matching the virtual machine’s CPU. To get a specific EFI bitness, set the firmware to efi64 for x86_64 EFI or efi32 for IA32 EFI.

After selecting the kernel from the Arch Linux installation media’s menu, the media will hang for a minute or two and will continue to boot the kernel normally afterwards. Be patient.

Install the Guest Additions

VirtualBox Guest Additions provides drivers and applications that optimize the guest operating system including improved image resolution and better control of the mouse. Within the installed guest system, install:

  • virtualbox-guest-utils for VirtualBox Guest utilities with X support
  • virtualbox-guest-utils-nox for VirtualBox Guest utilities without X support
  • You can alternatively install the Guest Additions with the ISO from the virtualbox-guest-iso package, provided you installed this on the host system. To do this, go to the device menu click Insert Guest Additions CD Image.
  • To recompile the vbox kernel modules, run rcvboxadd setup as root.

The guest additions running on your guest, and the VirtualBox application running on your host must have matching versions, otherwise the guest additions (like shared clipboard) may stop working. If you upgrade your guest (e.g. pacman -Syu ), make sure your VirtualBox application on this host is also the latest version. «Check for updates» in the VirtualBox GUI is sometimes not sufficient; check the VirtualBox.org website.

Configuration

Load the VirtualBox kernel modules

To load the modules automatically, enable vboxservice.service which loads the modules and synchronizes the guest’s system time with the host.

To load the modules manually, type:

# modprobe -a vboxguest vboxsf vboxvideo

Set optimal framebuffer resolution

This article or section is a candidate for merging with VirtualBox/Tips and tricks#Set guest starting resolution.

Notes: Keep guest resolution information in one place. (Discuss in Talk:VirtualBox/Install Arch Linux as a guest)

Typically after installing Guest Additions, a fullscreen Arch guest running X will be set to the optimal resolution for your display; however, the virtual console’s framebuffer will be set to a standard, often smaller, resolution detected from VirtualBox’s custom VESA driver.

To use the virtual consoles at optimal resolution, Arch needs to recognize that resolution as valid, which in turn requires VirtualBox to pass this information along to the guest OS.

First, check if your desired resolution is not already recognized by running the command ( hwinfo need to be installed):

hwinfo --framebuffer

If the optimal resolution does not show up, then you will need to run the VBoxManage tool on the host machine and add «extra resolutions» to your virtual machine (on a Windows host, go to the VirtualBox installation directory to find VBoxManage.exe ). For example:

$ VBoxManage setextradata "Arch Linux" "CustomVideoMode1" "1360x768x24"

The parameters «Arch Linux» and «1360x768x24» in the example above should be replaced with your VM name and the desired framebuffer resolution. Incidentally, this command allows for defining up to 16 extra resolutions («CustomVideoMode1» through «CustomVideoMode16»).

Afterwards, restart the virtual machine and run hwinfo —framebuffer once more to verify that the new resolutions have been recognized by your guest system (which does not guarantee they will all work, depending on your hardware limitations).

Note: As of VirtualBox 5.2, hwinfo —framebuffer might not show any output, but you should still be able to set a custom resolution following this procedure.

Finally, add a video=resolution kernel parameter to set the framebuffer to the new resolution, for example:

video=1360x768

Additionally you may want to configure your boot loader to use the same resolution. If you use GRUB, see GRUB/Tips and tricks#Setting the framebuffer resolution.

Note: Neither the kernel parameter vga nor the boot loader’s resolution settings (e.g. GRUB’s GRUB_GFXPAYLOAD_LINUX ) will fix the framebuffer, since they are overriden by virtue of Kernel Mode Setting. The framebuffer resolution must be set by the kernel parameter video as described above.

Launch the VirtualBox guest services

After the rather big installation step dealing with VirtualBox kernel modules, now you need to start the guest services. The guest services are actually just a binary executable called VBoxClient which will interact with your X Window System. VBoxClient manages the following features:

  • shared clipboard and drag and drop between the host and the guest;
  • seamless window mode;
  • the guest display is automatically resized according to the size of the guest window;
  • checking the VirtualBox host version

All of these features can be enabled independently with their dedicated flags:

$ VBoxClient --clipboard $ VBoxClient --draganddrop $ VBoxClient --seamless $ VBoxClient --checkhostversion $ VBoxClient --vmsvga

Notice that VBoxClient can only be called with one flag at a time, each call spawning a dedicated service process. As a shortcut, the VBoxClient-all bash script enables all of these features.

virtualbox-guest-utils installs /etc/xdg/autostart/vboxclient.desktop that launches VBoxClient-all on logon. If your desktop environment or window manager does not support XDG Autostart, you will need to set up autostarting yourself, see Autostarting#On desktop environment startup and Autostarting#On window manager startup for more details.

VirtualBox can also synchronize the time between the host and the guest, to do this, start/enable the vboxservice.service .

Now, you should have a working Arch Linux guest. Note that features like clipboard sharing are disabled by default in VirtualBox, and you will need to turn them on in the per-VM settings if you actually want to use them (e.g. Settings > General > Advanced > Shared Clipboard).

Auto-resize Guest Display

This option will automatically change the resolution of the Arch guest, whenever the window of the virtual machine is resized. This option is enabled by default, and in graphical interface is located at View > Auto-resize Guest Display. When using KDE Plasma, on GUI login screen (Session) select Plasma (X11) instead of the default session Plasma (Wayland), which does not work with auto-resize.

Hardware acceleration

Hardware acceleration can be activated in the VirtualBox options. The GDM display manager 3.16+ is known to break hardware acceleration support. [1] So if you get issues with hardware acceleration, try out another display manager (lightdm seems to work fine). [2] [3]

If the hardware acceleration does not work as expected, try changing the Graphics Controller option found under the Screen tab in the Display options of the settings GUI. It seems that depending on the host GPU type, not all emulated controllers work equally well.

Enable shared folders

Shared folders are managed on the host, in the settings of the Virtual Machine accessible via the GUI of VirtualBox, in the Shared Folders tab. There, Folder Path, the name of the mount point identified by Folder name, and options like Read-only, Auto-mount and Make permanent can be specified. These parameters can be defined with the VBoxManage command line utility. See there for more details.

No matter which method you will use to mount your folder, all methods require some steps first.

To avoid this issue /sbin/mount.vboxsf: mounting failed with the error: No such device , make sure the vboxsf kernel module is properly loaded. It should be, since we enabled all guest kernel modules previously.

Two additional steps are needed in order for the mount point to be accessible from users other than root:

  • the virtualbox-guest-utils package created a group vboxsf (done in a previous step);
  • your user must be in vboxsf user group.
Manual mounting

Use the following command to mount your folder in your Arch Linux guest:

# mount -t vboxsf -o gid=vboxsf shared_folder_name mount_point_on_guest_system 

where shared_folder_name is the Folder name assigned by the hypervisor when the share was created.

If the user is not in the vboxsf group, to give them access to our mountpoint we can specify the mount(8) options uid= and gid= with the corresponding values of the user. These values can obtained from the id command run against this user. For example:

# mount -t vboxsf -o uid=1000,gid=1000 home /mnt
Automounting

Note: Automounting requires the vboxservice.service to be enabled/started.

In order for the automounting feature to work you must have checked the auto-mount checkbox in the GUI or used the optional —automount argument with the command VBoxManage sharedfolder .

The shared folder should now appear as /media/sf_shared_folder_name . If users cannot access the shared folders, check that /media has permissions 755 or is owned by the vboxsf group if using permissions 750 . This is currently not the default if the /media directory is created by vboxservice.service .

You can use symlinks if you want to have a more convenient access and avoid to browse in that directory, e.g.:

$ ln -s /media/sf_shared_folder_name ~/my_documents 
Mount at boot

You can mount your directory with fstab. However, to prevent startup problems with systemd, noauto,x-systemd.automount should be added to /etc/fstab . This way, the shared folders are mounted only when those mount points are accessed and not during startup. This can avoid some problems, especially if the guest additions are not loaded yet when systemd reads fstab and mounts the partitions.

sharedFolderName /path/to/mntPtOnGuestMachine vboxsf uid=user,gid=group,rw,dmode=700,fmode=600,noauto,x-systemd.automount
  • sharedFolderName : the value from the VirtualMachine’s Settings > SharedFolders > Edit > FolderName menu. This value can be different from the name of the real folder name on the host machine. To see the VirtualMachine’s Settings go to the host OS VirtualBox application, select the corresponding virtual machine and click on Settings.
  • /path/to/mntPtOnGuestMachine : if not existing, this directory should be created manually (for example by using mkdir).
  • dmode / fmode are directory/file permissions for directories/files inside /path/to/mntPtOnGuestMachine .

As of 2012-08-02, mount.vboxsf does not support the nofail option:

desktop /media/desktop vboxsf uid=user,gid=group,rw,dmode=700,fmode=600,nofail 0 0

Troubleshooting

Access serial port from guest

TTY text too small during installation

From the host, VirtualBox Manager, set the Display Scale-factor to 2.00 or 3.00.

Guest freezes after starting Xorg

Faulty or missing drivers may cause the guest to freeze after starting Xorg, see for example [4] and [5]. Try disabling 3D acceleration in Settings > Display, and check if all Xorg drivers are installed.

Fullscreen mode shows blank screen

On some window managers (i3, awesome), VirtualBox has issues with fullscreen mode properly due to the overlay bar. To work around this issue, disable Show in Full-screen/Seamless option in Guest Settings > User Interface > Mini ToolBar. See the upstream bug report for more information.

If the guest’s screen goes black above a certain size (e.g. above 2048 pixels wide), increasing the Settings > Display > Screen > Video Memory can help.

Linux guests have slow/distorted audio

The AC97 audio driver within the Linux kernel occasionally guesses the wrong clock settings when running inside VirtualBox, leading to audio that is either too slow or too fast. To fix this, create a file in /etc/modprobe.d/ with the following line:

options snd-intel8x0 ac97_clock=48000

Linux guests have slow/laggy audio

In some cases, audio can have laggy performance (for example lag behind video when streaming video online). A possible workaround can be to use the Intel HD Audio controller in VirtualBox and disable its power saving by adding the following line in a file in /etc/modprobe.d/ in the guest OS:

options snd_hda_intel power_save=0 power_save_controller=N

Arch: pacstrap script fails

If you used pacstrap to also #Install the Guest Additions before performing a first boot into the new guest, you will need to umount -l /mnt/dev as root before using pacstrap again; a failure to do this will render it unusable.

Windows host: VERR_ACCESS_DENIED

To access the raw VMDK image on a Windows host, run the VirtualBox GUI as administrator.

No hardware 3D acceleration in Arch Linux guest

virtualbox-guest-utils package as of version 5.2.16-2 does not contain the file VBoxEGL.so . This causes the Arch Linux guest to not have proper 3D acceleration. See FS#49752.

To deal with this problem, apply the patch set at FS#49752#comment152254. Some fix to the patch set is required to make it work for version 5.2.16-2.

Plasma resets guest’s resolution to 800×600

Black screen with Plasma-X11 minimal install

If you used plasma-desktop minimal install instead of plasma (which includes Wayland support), then probably you will have black screen with cursor after starting Plasma-X11 session.

To fix this, resize the VirtualBox window several times, then set resolution manually in VirtualBox window itself by: View > Virtual Screen 1 > Resize to 1024×768 (or other resolution you like).

Open in KDE launcher System Settings > Startup and Shutdown > Background Services, stop and unselect KScreen2 and save settings. Issue should go away forever.

  • Installation process
  • Hypervisors

Как установить Arch Linux на VirtualBox с помощью управляемого установщика

Arch Linux – один из самых любимых дистрибутивов Linux, известный своим сложным процессом установки. В апреле 2021 года Arch Linux представила управляемый установщик, чтобы упростить установку Arch Linux для новых пользователей.

Здесь мы предоставляем подробное руководство по установке Arch Linux с помощью управляемого установщика на виртуальной машине VirtualBox.

Шаг 1. Загрузите Arch Linux

Прежде всего, вам необходимо загрузить ISO-образ Arch Linux с официальной веб-страницы Arch Linux.

В этом руководстве предполагается, что на вашем компьютере уже установлен VirtualBox. Если нет, скачайте его с официального сайта.

Скачать : VirtualBox

Шаг 2: Создание виртуальной машины

Чтобы создать виртуальную машину, запустите приложение VirtualBox и нажмите кнопку « Создать» . Кроме того, вы можете использовать сочетание клавиш Ctrl + N, чтобы сделать то же самое.

В поле ввода Name, просто введите ArchLinux и VirtualBox автоматически устанавливается тип и версия для Arch Linux (64-разрядная версия ). Не стесняйтесь изменять настройки по своему вкусу. Нажмите кнопку « Далее» , чтобы продолжить.

Теперь вам нужно настроить объем оперативной памяти, который будет использовать ваша виртуальная машина. Чтобы обеспечить бесперебойную работу, убедитесь, что размер памяти превышает 1 ГБ.

На следующем экране создайте виртуальный жесткий диск, который будет использовать ваша виртуальная машина. Arch Linux требует минимум 8 ГБ места на жестком диске. Нажмите кнопку « Создать» , чтобы продолжить.

На следующем экране вы можете выбрать вариант по умолчанию – образ виртуального диска (VDI).

По умолчанию следующая конфигурация будет настроена на динамическое выделение места на жестком диске. Благодаря динамически выделяемому пространству размер вашего виртуального жесткого диска автоматически увеличивается по мере увеличения потребности. Нажмите кнопку « Далее» , чтобы использовать выбор по умолчанию.

Оставьте рекомендуемый размер виртуального диска по умолчанию 8 ГБ, но не стесняйтесь изменять его, если вам нужно больше места. Нажмите кнопку « Создать» , чтобы завершить создание виртуальной машины.

Хотя VirtualBox отобразит запись для вашей виртуальной машины Arch Linux, ей все еще не хватает жизни. Это связано с тем, что вам необходимо установить операционную систему, чтобы иметь возможность загружать машину.

Шаг 3: Настройка вашей виртуальной машины

Нажмите кнопку « Настройки» в главном меню, чтобы настроить вашу виртуальную машину на готовность к установке операционной системы.

Затем выберите вкладку Система на левой панели. В разделе « Расширенные функции » установите флажок « Включить EFI» . После этого нажмите кнопку ОК .

Примечание . Если вы не включите EFI, установка не будет работать, потому что ArchInstall, управляемый установщик для Arch Linux, поддерживает только машины, загруженные с UEFI на момент написания этой статьи.

Присоединение ISO-диска

Следующим шагом является прикрепление ISO-образа Arch Linux к вновь созданной виртуальной машине.

Щелкните вкладку « Хранилище », а затем выберите параметр « Пусто» в разделе « IDE контроллера ». Чтобы прикрепить ISO-образ Arch Linux, щелкните маленький значок диска рядом с меткой оптического дисковода . Теперь выберите ISO-образ Arch Linux, который вы загрузили, и нажмите OK .

Теперь ваша виртуальная машина настроена для загрузки с ISO-образа Arch Linux, который вы подключили к виртуальной машине.

Шаг 4: Начало установки

Нажмите кнопку « Пуск» в VirtualBox, чтобы загрузиться с ISO-образа Arch Linux и начать установку. Если у вас несколько виртуальных машин, убедитесь, что вы выбрали правильный экземпляр виртуальной машины.

По умолчанию Arch Linux загружается с использованием UEFI и отображает оболочку, как показано ниже.

Чтобы запустить управляемый установщик Arch Linux, просто введите следующую команду в оболочке.

python -m archinstall guided

Первое приглашение, которое вам будет представлено, – это выбор раскладки клавиатуры. Введите имя предпочитаемого макета из списка и нажмите клавишу Enter для подтверждения.

Чтобы вывести список дополнительных параметров макета, просто введите в командной строке help и нажмите Enter на клавиатуре.

Затем вам нужно выбрать регион, из которого вы будете загружать пакеты во время установки. Здесь вы можете ввести название региона или номер, указанный рядом с регионом.

Выберите регион ближе к вам, чтобы ускорить загрузку.

Теперь выберите диск, на который вы хотите установить Arch Linux. Раздел диска размером 8 ГБ, который мы создали ранее, отображается как 1: (/ dev / sda) . Введите число 1 в подсказке и нажмите Enter .

Следующим шагом будет форматирование раздела диска. Чтобы разбить весь диск на разделы, введите 1 . Вы также можете отменить установку на этом этапе.

Теперь установите формат файла, который вы хотите использовать при установке. Доступны четыре варианта, и вы можете выбрать тот, который указан под опцией 0 , то есть btrfs .

Arch Linux предоставит вам возможность зашифровать жесткий диск в целях безопасности, но пока оставьте этот параметр пустым и нажмите Enter, чтобы продолжить.

Теперь установщик попросит вас установить желаемое имя хоста для вашего компьютера. Используйте любое имя по вашему выбору и нажмите Enter .

По умолчанию Arch Linux поставляется с пользователем root. Введите желаемый пароль для пользователя root и нажмите Enter . Если вы не введете пароль учетной записи root, программа установки не создаст учетную запись.

Arch Linux предложит вам создать дополнительных пользователей в нашей системе. Оставьте этот параметр пустым и нажмите Enter, чтобы продолжить. Вы всегда можете добавить пользователя с помощью команды useradd после установки.

Установка предварительно запрограммированного профиля

Следующим шагом является установка предварительно запрограммированного профиля для вашей системы. Это руководство относится к профилю рабочего стола, поэтому введите число 0 в командной строке и нажмите Enter, чтобы продолжить.

Поскольку вы выбрали профиль рабочего стола, следующий вариант предложит вам установить среду рабочего стола из 10 возможных вариантов. В этом руководстве мы будем использовать GNOME в качестве среды рабочего стола. Если вы также хотите установить GNOME, введите 3 и нажмите Enter, чтобы продолжить.

Затем выберите драйвер видеокарты по вашему выбору. Вы можете выбрать вариант 4 – Nvidia. Затем выберите тип драйвера, то есть с открытым исходным кодом или проприетарный. Мы будем использовать вариант 0 с открытым исходным кодом.

Система попросит вас установить звуковую службу по умолчанию. Мы будем использовать pipewire , который выбран по умолчанию. Введите Y и нажмите Enter .

В следующем запросе у вас будет возможность установить дополнительные пакеты, например, веб-браузер. Оставьте этот параметр пустым и нажмите Enter, чтобы продолжить.

Двигаясь дальше в процессе установки, укажите, какая программа будет управлять вашим интернет-соединением. Выберите вариант 1 , который является Network Manager.

Наконец, настройте свой часовой пояс, введя один из перечисленных вариантов, или просто оставьте его пустым, чтобы использовать время в формате UTC.

Arch Linux представит вам сводку ваших конфигураций установки, как показано на изображении ниже. Нажмите Enter, чтобы продолжить установку, и программа установки отформатирует ваш диск и установит операционную систему.

После завершения установки система спросит вас, хотите ли вы использовать chroot (изменить корень) во вновь созданной установке. Введите n и нажмите Enter, чтобы продолжить. Вы войдете в оболочку как пользователь root. Выполните следующую команду, чтобы выключить систему.

shutdown now

Вам следует удалить ISO-образ Arch Linux с виртуальной машины, чтобы вы могли загрузиться с новой установки, а не с ISO-образа.

  1. После выключения системы откройте VirtualBox и нажмите сочетание клавиш Ctrl + S, чтобы открыть Настройки . Затем перейдите на вкладку « Хранилище ».
  2. В разделе Контроллер: IDE выберите Arch Linux ISO.
  3. Нажмите кнопку « Удалить выбранное вложение устройства» . Чтобы продолжить, выберите ОК .

Шаг 5: Запуск новой операционной системы

В VirtualBox убедитесь, что вы выделили виртуальную машину Arch Linux. Затем нажмите кнопку «Пуск», чтобы загрузить машину.

На экране вас попросят ввести учетные данные. Поскольку в нашей системе есть только пользователь root, введите root в качестве имени пользователя и нажмите Enter . Затем введите пароль для пользователя root.

После входа в систему вы увидите красивый рабочий стол GNOME 40. GNOME 40 – это последняя версия Gnome на момент написания этой статьи.

Установка Arch Linux на виртуальную машину

В этом руководстве показано, как установить Arch Linux на виртуальную машину VirtualBox. Введение пошагового установщика значительно упростило установку ОС Arch Linux для начинающих пользователей Linux.

Вы также можете использовать другие гипервизоры виртуальных машин, такие как VMware Player, для установки Arch Linux на свой компьютер. Хотя VirtualBox и VMware являются популярными и широко используемыми гипервизорами, они имеют некоторые различия, когда дело доходит до функций.

VirtualBox (Русский)

Состояние перевода: На этой странице представлен перевод статьи VirtualBox. Дата последней синхронизации: 17 ноября 2020. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

  • VirtualBox/Install Arch Linux as a guest
  • Category:Hypervisors (Русский)
  • PhpVirtualBox
  • RemoteBox
  • Moving an existing install into (or out of) a virtual machine

VirtualBox — гипервизор, предназначенный для запуска операционных систем в специальной среде, называемой виртуальной машиной, поверх существующей операционной системы. VirtualBox постоянно развивается и внедряет новые возможности. Взаимодействовать с виртуальными машинами можно как через графический интерфейс на базе Qt, так и с помощью headless- и SDL-утилит командной строки.

Для некоторых гостевых ОС были разработаны гостевые дополнения (guest additions), которые позволяют частично совмещать функциональность хостовой и гостевой операционных систем — совместный доступ к каталогам и буферу обмена, ускорение видео и бесшовная интеграция окон.

Установка

Установите VirtualBox по указаниям ниже, чтобы создавать и запускать виртуальные машины в Arch Linux.

Установка основных пакетов

Установите пакет virtualbox . Кроме того, необходимо установить host-модули:

  • для ядра linux установите virtualbox-host-modules-arch .
  • для других ядер (включая linux-lts ) установите virtualbox-host-dkms .

DKMS-хук Pacman автоматически перекомпилирует модули virtualbox-host-dkms при каждом обновлении VirtualBox и/или ядра. При компиляции потребуются пакеты с заголовочными файлами для вашего ядра (например, linux-lts-headers для ядра linux-lts ) [1].

Подписывание модулей

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

Перейдите в дерево каталогов вашего ядра и выполните:

# for module in `ls /lib/modules/$(uname -r)/kernel/misc/` ; do ./scripts/sign-file sha1 certs/signing_key.pem certs/signing_key.x509 $module ; done

Примечание: Алгоритм хэширования может отличаться от указанного, но он должен быть встроен в ядро.

Загрузка модулей ядра для VirtualBox

virtualbox-host-modules-arch и virtualbox-host-dkms используют службу systemd-modules-load.service для загрузки необходимых VirtualBox модулей ядра при запуске системы. Если необходимо загрузить модуль сразу после установки, то либо перезагрузитесь, либо однократно загрузите его вручную. Список модулей можно найти в файлах /usr/lib/modules-load.d/virtualbox-host-modules-arch.conf или /usr/lib/modules-load.d/virtualbox-host-dkms.conf .

Примечание: Если автоматическая загрузка модулей VirtualBox при запуске системы нежелательна, замаскируйте файлы /usr/lib/modules-load.d/virtualbox-host-modules-arch.conf и /usr/lib/modules-load.d/virtualbox-host-dkms.conf , создав пустой файл (или символическую ссылку на /dev/null ) с таким же именем в каталоге /etc/modules-load.d/ .

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

Чтобы загрузить модуль вручную, выполните:

# modprobe vboxdrv

Следующие модули необходимы в некоторых сложных конфигурациях:

  • vboxnetadp и vboxnetflt необходимы для сетевых взаимодействий в режимах bridged и host-only. Если точнее, vboxnetadp позволяет через настройки VirtualBox создать в хостовой системе программный сетевой интерфейс, а vboxnetflt даёт виртуальной машине возможность его использовать.

Примечание: Если модули ядра для VirtualBox были загружены, а после этого получили обновления, то необходимо перезагрузить их вручную, чтобы заработала обновлённая версия. Для этого выполните команду vboxreload с правами root.

Доступ к USB-устройствам хоста из гостевой ОС

Добавьте пользователя в группу vboxusers , если необходимо предоставить ему доступ к USB-портам хоста из виртуальной машины.

Диск с гостевыми дополнениями

Если в качестве гостя выступает не Arch Linux, то имеет смысл установить пакет virtualbox-guest-iso . Он работает как образ диска, с которого можно установить гостевые дополнения. Файл .iso будет находиться в каталоге /usr/lib/virtualbox/additions/VBoxGuestAdditions.iso . Зайдите в гостевую систему, вручную смонтируйте образ и запустите установщик.

Расширения

Oracle Extension Pack предоставляет набор дополнительной функциональности. Набор распространяется под несвободной лицензией только для личного пользования. Расширения доступны в виде пакета virtualbox-ext-oracle AUR в AUR или в скомпилированном виде в неофициальном репозитории seblu.

Более «традиционный» способ — скачать расширения с сайта разработчиков и установить их либо через графический интерфейс (File > Preferences > Extensions), либо командой VBoxManage extpack install . Предварительно убедитесь, что у вас есть инструмент вроде Polkit для выдачи привилегированного доступа к VirtualBox — установка требует прав root.

Интерфейсы

Для VirtualBox разработано три интерфейса:

  • стандартный графический интерфейс, команда VirtualBox .
  • интерфейс командной строки, команда VBoxSDL ; создаёт окно виртуальной машины без оверлеев.
  • интерфейс командной строки без отображения окон (например, для ВМ, находящейся на сервере), команда VBoxHeadless . Расширение VRDP позволяет получить доступ к экрану виртеальной машины.

Настройки безопасности Wayland (в частности, при использовании GDM) не пропускает ввод с клавиатуры в VirtualBox, что мешает, например, использовать в гостевой ОС комбинации клавиш. Чтобы это обойти, добавьте VirtualBox в белый список:

$ gsettings get org.gnome.mutter.wayland xwayland-grab-access-rules $ gsettings set org.gnome.mutter.wayland xwayland-grab-access-rules "['VirtualBox Machine']"

Первая команда выведет текущий список приложений в белом списке. ‘VirtualBox Machine’ необходимо добавить к этому списку (вторая команда в примере выше не добавляет, а создаёт список из ровно одного элемента).

Наконец, можно администрировать виртуальные машины через веб-интерфейс с помощью phpVirtualBox.

Инструкции по созданиию виртуальных машин можно найти в руководстве пользователя.

Важно: Если вы собираетесь хранить образы виртуальных дисков в файловой системе Btrfs, то перед их созданием необходимо отключить copy-on-write для целевого каталога.

Пошаговая установка 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 данные будут добавлены в него вручную при загрузке или efibootmgr будет сохранять их после перезагрузки, но терять после закрытия виртуальной машины.

Установка гостевых дополнений

После завершения установки гостевой системы, установите дополнения гостевой ОС, которые включают драйверы и приложения, оптимизирующие гостевую операционную систему. Они могут быть установлены с помощью virtualbox-guest-utils .

Примечание: Метод, описанный в 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 , запускающий все эти функции.

Пакет virtualbox-guest-utils устанавливает файл /etc/xdg/autostart/vboxclient.desktop , который запускает VBoxClient-all при входе в систему. Если ваша среда рабочего стола или ваш оконный менеджер не поддерживает XDG Autostart, настройте автозапуск вручную, как описано в разделах Автозапуск#Запуск среды рабочего стола и Автозапуск#Запуск оконного менеджера соответственно.

VirtualBox также может синхронизировать время между хостом и гостевой ОС. Для этого включите службу vboxservice.service .

Теперь у вас есть рабочая гостевая Arch Linux. Поздравляем!

Если вы хотите расшарить директории между вашим компьютером и гостевым Arch Linux, читайте дальше.

Расшаривание директорий

Общие папки управляются в хосте через настройки виртуальной машины, доступной через графический интерфейс VirtualBox, на вкладке Shared Folders. Там путь к директории и имя точки монтирования определены как Имя папки и аргументы, такие как Read-only, Auto-mount и Make permanent Эти параметры могут быть определены через утилиту VBoxManage . См. для более подробной информации.

Независимо от того, какой метод вы будете использовать, чтобы смонтировать директорию, требуются некоторые начальные действия.

Чтобы избежать проблемы /sbin/mount.vboxsf: mounting failed with the error: No such device , убедитесь, что модуль ядра vboxsf загружен правильно. Он должен быть загружен, поскольку мы включили все гостевые модули ядра ранее.

Два дополнительных шага необходимы для того, чтобы точки монтирования должны быть доступны из пользователей кроме root-а:

  • Пакет virtualbox-guest-utils создает группу 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

mount.vboxsf может не поддерживать [устаревшая ссылка 2020-08-06 ⓘ] nofail аргумент:

desktop /media/desktop vboxsf uid=user,gid=group,rw,dmode=700,fmode=600,nofail 0 0

Управление виртуальными дисками

Форматы, поддерживаемые 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) не поддерживаются из-за отсутствия документации для этого формата.

Примечание: Существуют споры в отношении поддержки версии 2 формата. Официальное руководство VirtualBox сообщает, что поддерживается только 2 версия, авторы Википедии утверждают, что частично может работать и первая версия. Приветствуется помощь, если вы можете выполнить некоторые тесты с первой версией формата HDD.

Преобразование виртуальных дисков разных форматов

VMDK в VDI и VDI в VMDK

VirtualBox может конвертировать VDI в VMDK и обратно с использованием VBoxManage clonehd .

$ VBoxManage clonehd source.vmdk destination.vdi --format VDI
$ VBoxManage clonehd source.vdi destination.vmdk --format VMDK
VHD в VDI и VDI в VDH

VirtualBox также может конвертировать VHD в VDI и наоборот с использованием VBoxManage clonehd :

$ VBoxManage clonehd source.vhd destination.vdi --format VDI
$ VBoxManage clonehd source.vdi destination.vhd --format VHD
QCOW2 в VDI и VDI в QCOW2

VBoxManage clonehd не может конвертировать QEMU форматы и необходимо воспользоваться иными инструментами. Команда qemu-img из пакета qemu-desktop может осуществлять преобразования QCOW2VDI.

Примечание: 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'».

$ qemu-img convert -pO vdi source.qcow2 destination.vdi 
$ 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 работает только с образами фиксированного размера (т.е. статичными образами); динамические образы (динамическое выделение размера) монтируются довольно-таки не просто.

Если необходимо смещение раздела (в 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/ 

Также можно использовать модуль ядра nbd и команду qemu-nbd из пакета qemu-img [2]:

# 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 .

Ещё один способ — использовать vdfuse AUR :

# vdfuse -a -f storage.vdi mountpoint1 

Эта команда примонтирует диск в каталог mountpoint1 , внутри которого будут файлы разделов с именами вида PartitionN . Разделы можно примонтировать с помощью loop-устройств:

# mount -o loop mountpoint1/PartitionN mountpoint2 

Сжатие виртуальных дисков

Сжатие работает только с файлами .vdi и в основном состоит из следующих действий.

Загрузите виртуальную машину и удалите всё ненужное вручную или с помощью специальных средств, например bleachbit (доступна для ОС Windows).

Затрите свободное место нулями. Это можно сделать следующими инструментами:

  • Если вы пользовались Bleachbit, просто установите галочку System > Free disk space в графическом интерфейсе или выполните команду bleachbit -c system.free_disk_space в терминале;
  • В UNIX-based системах выполните команду dd или, предпочтительно, dcflddAUR (см. здесь информацию об отличиях):
# dcfldd if=/dev/zero of=/fillfile bs=4M
  • В 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 ;
      • в GNU/Linux, в том числе Arch Linux, вы можете запустить принудительную проверку диска во время загрузки вручную через параметры ядра;
      • 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): Empty SATA (0, 0): /home/wget/IT/Virtual_machines/GNU_Linux_distributions/ArchLinux_x64_EFI/Snapshots/.vdi (UUID: 6bb17af7-e8a2-4bbf-baac-fbba05ebd704) [. ]

      Скачайте GParted LiveCD и установите его в качестве виртуального привода , загрузите вашу виртуальную машину, используйте увеличение / перемещение ваших разделов. По окончании работы отмонтируйте GParted LiveCD и перезагрузите машину.

      Примечание: На GPT дисках, увеличение размера диска приведет к созданию резервной копии заголовка GPT в месте, отличном от конца устройства. GParted попросит, чтобы исправить проблему, нажать на исправить два раза. На дисках MBR такой проблемы не возникнет.

      Наконец, отключите старый виртуальный диск в VirtualBox и удалите его:

      $ VBoxManage closemedium disk old.vdi $ rm old.vdi 

      Замена виртуального диска из файла .vbox вручную

      Если вы думаете, что редактирование простого XML файла более удобно, чем возня с GUI или VBoxManage и вы хотите заменить (или добавить) виртуальный диск в вашей виртуальной машине, просто замените GUID, местоположение файла и формат для ваших нужд в конфигурационном файле .vbox, соответствующем вашей виртуальной машине:

      ArchLinux_vm.vbox

      в (суб-тег ) замените старый GUID на новый.

      ArchLinux_vm.vbox

      Примечание: Если вы не знаете 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 поставляется с гостевыми дополнениями, VMware с VMware Tools, Parallels с инструментами Parallels, и т.д. Это дополнительные компоненты, предназначенные для установки внутри виртуальной машины после гостевой операционной системы, состоящие из драйверов устройств и системных приложений, которые оптимизируют гостевую операционной системы для повышения производительности и удобства использования. Читать подробнее.

      Если у вас установлены дополнения в вашей виртуальной машине — удалите их в первую очередь. Ваша гостевая ОС, особенно если это ОС из семейства Windows, может вести себя странно, аварийно или не загрузиться вообще, если вы используете специальные драйверы одного гипервизора на другом.

      Использование правильного формата виртуального диска

      От этого шага будет зависеть способность преобразовывать образ диска виртуальной в другие форматы — непосредственно или конвейерным методом.

      Автоматические инструменты

      Некоторые компании предоставляют инструменты, которые предлагают возможность создания виртуальных машин с операционной системой Windows или GNU / Linux, расположенной в виртуальной машине или даже в оригинальной установке. С таким продуктом вам не нужно применять этот и следующие шаги, и можно далее не читать.

      • Parallels Transporter — не бесплатный, продукт от Parallels Inc. Это решение в основном заключается в части программного обеспечения под названием агент, который будет установлен в гостевой ОС, которую вы хотите импортировать / преобразовать. Затем, Parallels Transporter, который работает только на OS X , создаст виртуальную машину с этим агентом, который контактирует либо по USB или по сети Ethernet.
      • VMware vCenter Converter — бесплатен при регистрации на Webiste VMware, работает почти так же, как Parallels Transporter, но часть программного обеспечения, которая собирает данные для создания виртуальной машины работает только на платформе Windows.
      Ручное преобразование
      • Импорт и экспорт виртуальной машины из/в формат VMware не является проблемой, если вы используете формат диска VMDK или OVF, в противном случае преобразования VMDK в VDI и VDI в VMDK можно осуществить вышеописанным VMware vCenter Converter.
      • Импорт и экспорт из/в QEMU почти не проблема: некоторые форматы QEMU поддерживает непосредственно VirtualBox и преобразование между QCOW2 в VDI и VDI в QCOW2 по-прежнему доступны в случае необходимости.
      • Импорт и экспорт из/в Parallels гипервизора является трудный задачей: Parallels поддерживает только свой собственный формат жесткого диска (даже стандартные форматы и портативный формат OVF не поддерживается!).
      • Чтобы экспортировать виртуальную машину для Parallels, вам нужно будет использовать инструмент описанной выше Parallels — Transporter.
      • Чтобы импортировать виртуальную машину в VirtualBox, вы должны будете использовать VMware vCenter Converter , чтобы преобразовать виртуальную машину в формат VMware в первую очередь — а затем используйте инструмент для миграции с VMware.
      Создание конфигурации VM для гипервизора

      Каждый гипервизор имеет свой собственный файл конфигурации виртуальной машины: .vbox для VirtualBox, .vmx для VMware, config.pvs файл, расположенный в виртуальной машине ( .pvm файл), и т.д. Вы можете, таким образом, создать новую виртуальную машину в новом гипервизоре и указать его конфигурацию как можно ближе относительно начальной виртуальной машины.

      Обратите пристальное внимание на интерфейс прошивки (BIOS или UEFI), используемый для установки гостевой операционной системы. В то время как опция доступна выбирать между этими 2 интерфейсов на VirtualBox и на Parallels решений, на VMware, вам придется вручную добавить следующую строку в ваш .vmx файл.

      ArchLinux_vm.vmx
      firmware = "efi"

      Наконец, настройте ваш гипервизор, для использования существующего виртуального диска, который вы преобразовали и запустите виртуальную машину.

      • В VirtualBox, если вы не хотите просмотривать весь графический интерфейс, чтобы найти нужное место где можно добавить новый виртуальный диск устройства, вы можете Заменить виртуальный диск вручную из файла .vbox, или использовать VBoxManage storageattach , описанный в увеличении вируального диска или в руководстве VirtualBox
      • Кроме того, в продуктах VMware, вы можете заменить местоположение текущего местоположения виртуального диска путем адаптации .vmdk местоположения файла в .vmx конфигурационном файле.

      Управление запуском виртуальной машины

      Запуск виртуальных машин с помощью службы (автозапуск)
      /etc/systemd/system/vboxvmservice@.service
      [Unit] Description=VBox Virtual Machine %i Service Requires=systemd-modules-load.service After=systemd-modules-load.service [Service] User=username Group=vboxusers ExecStart=/usr/bin/VBoxManage startvm %i --type startmode ExecStop=/usr/bin/VBoxManage controlvm %i stopmode RemainAfterExit=yes [Install] WantedBy=multi-user.target
      • Замените username на пользователя из группы vboxusers . Убедитесь, что это именно тот пользователь, который управляет виртуальной машиной, иначе ничего не получится.
      • Замените startmode на тип фронтенда виртуальной машины, обычно gui , headless или separate .
      • Замените stopmode на желаемый переключатель состояния, обычно savestate или acpipowerbutton .

      Примечание: Если у вас есть несколько машин, управляемых через systemd, и они завершаются некорректно, попробуйте добавить KillMode=none и TimeoutStopSec=40 в конец секции [Service] .

      Включите юнит vboxvmservice@название_виртуальной_машины , чтобы она запускалась автоматически при загрузке системы. Для запуска вручную просто запустите этот юнит.

      VirtualBox 4.2 предоставляет для UNIX-like систем также другие способы автозапуска, без использования сервисов systemd.

      Запуск виртуальной машины по горячей клавише

      Может быть полезно запускать виртуальные машины непосредственно с клавиатуры вместо использования интерфейса VirtualBox (GUI или CLI). Для этого, вы можете просто определить ключевые привязки в .xbindkeysrc . Обратитесь к Xbindkeys для более подробной информации.

      Например, запуск по Fn+F3 :

      "VBoxManage startvm 'Windows 7'" m:0x0 + c:244 XF86Battery

      Примечание: Если у вас есть пробел в имени виртуальной машины, то заключите его в одинарные апострофы как сделано в вышеуказанном примере.

      Использование конкретных устройств в виртуальной машине

      Использование USB веб-камеры/микрофона

      Примечание: Вам понадобятся установленные гостевые дополнения, прежде чем следовать приведенному ниже примеру. См. Дополнения гостевой ОС для более подробной информации.

      1. Убедитесь, что виртуальная машина не запущена, а веб-камера / микрофон не используется.
      2. Откройте главное окно VirtualBox и перейдите к настройкам машины Arch. Перейдите в раздел USB.
      3. Убедитесь, что стоит галочка «Включить контроллер USB». Также убедитесь, что выбран пункт «Контроллер USB 2.0 (OHCI + EHCI)».
      4. Нажмите кнопку добавления фильтра для устройства (кабель со значком «+»).
      5. Выберите USB веб-камеру/микрофон из списка.
      6. Нажмите кнопку OK и запустите виртуальную машину.
      Обнаружение веб-камер и других USB-устройств

      Убедитесь, что вы фильтруете любые устройства, (кроме клавиатур или мышей), чтобы они не запускались при загрузке -это гарантирует, что ОС Windows обнаружит устройство при запуске.

      Доступ к гостевому серверу

      Для доступа к HTTP-серверу Apache, запущенному в виртуальной машине, только с хост-машины, выполните:

      $ VBoxManage setextradata GuestName "VBoxInternal/Devices/pcnet/0/LUN#0/Config/Apache/HostPort" 8888 $ VBoxManage setextradata GuestName "VBoxInternal/Devices/pcnet/0/LUN#0/Config/Apache/GuestPort" 80 $ VBoxManage setextradata GuestName "VBoxInternal/Devices/pcnet/0/LUN#0/Config/Apache/Protocol" TCP

      Где 8888 — порт, который будет слушать хост, а 80 — порт внутри виртуальной машины, который будет принимать входящие соединения.

      Чтобы использовать на хосте порт ниже 1024, нужно внести изменения в межсетевом экране. Он также может быть настроен на работу с SSH или другими службами путём изменения портов на нужные.

      Примечание: pcnet относится к сетевой карте виртуальной машины. Если вы используете виртуальную сетевую карту Intel, измените pcnet на e1000 .

      D3D ускорение в гостевой Windows

      Последние версии Virtualbox имеют поддержку ускорения OpenGL внутри гостевой ОС. Эта функция может быть включена галочкой в настройках машины (при установленных дополнениях гостевой ОС VirtualBox). Тем не менее, большинство игр под Windows используют Direct3D (часть DirectX), а не OpenGL, и, таким образом, этот метод не поможет. Тем не менее возможно получить ускоренное Direct3D в гостевой Windows, за счет заимствования D3D библиотеки из Wine, который переводит инструкции d3d под OpenGL, который и занимается ускорением. Эти библиотеки теперь являются частью дополнений гостевой ОС.

      После включения OpenGL ускорения, как описано выше, перезагрузите гостевую ОС в безопасном режиме (нажмите F8 до появления экрана для Windows, но после исчезновения экрана Virtualbox), и установите дополнения гостевой ОС, во время установки установите галочку Включить поддержку Direct3D. Перезагрузитесь обратно в нормальный режим, и вы получите ускоренный Direct3D.

      • Этот хак может не работать для некоторых игр в зависимости от того, какие проверки оборудования они делают и какие части D3D они используют.
      • Хак был проверен на Windows XP, 7 и 8.1. Если метод не работает на вашей версии Windows, пожалуйста, добавьте эту информацию здесь.

      VirtualBox c USB-ключом

      При использовании VirtualBox с USB-ключом, например, для запуска установленной машины с ISO-образа, вы вручную должны создать VDMK-файлы существующих приводов. Тем не менее, как только новые файлы VMDK сохраняться и вы перейдёте на другую машину, у вас могут снова возникнуть проблемы. Чтобы избавиться от этой проблемы, можно использовать следующий скрипт для запуска VirtualBox. Этот сценарий будет убирать старые файлов VMDK и создавать новые:

      #!/bin/sh # Erase old VMDK entries rm ~/.VirtualBox/*.vmdk # Clean up VBox-Registry sed -i '/sd/d' ~/.VirtualBox/VirtualBox.xml # Remove old harddisks from existing machines find ~/.VirtualBox/Machines -name \*.xml | while read -r file; do line=$(grep -e "type\=\"HardDisk\"" -n "$file" | cut -d ':' -f 1) if [ -n "$line" ]; then sed -i "$"d "$file" sed -i "$"d "$file" sed -i "$"d "$file" fi sed -i "/rg/d" "$file" done # Delete prev-files created by VirtualBox find ~/.VirtualBox/Machines -name \*-prev -exec rm '<>' \; # Recreate VMDKs ls -l /dev/disk/by-uuid | cut -d ' ' -f 9,11 | while read -r ln; do if [ -n "$ln" ]; then uuid=$(echo "$ln" | cut -d ' ' -f 1) device=$(echo "$ln" | cut -d ' ' -f 2 | cut -d '/' -f 3 | cut -b 1-3) # determine whether drive is mounted already checkstr1=$(mount | grep "$uuid") checkstr2=$(mount | grep "$device") checkstr3=$(ls ~/.VirtualBox/*.vmdk | grep "$device") if [ -z "$checkstr1" ] && [ -z "$checkstr2" ] && [ -z "$checkstr3" ]; then VBoxManage internalcommands createrawvmdk -filename ~/.VirtualBox/"$device".vmdk -rawdisk /dev/"$device" -register fi fi done # Start VirtualBox VirtualBox

      Обратите внимание, что ваш пользователь должен быть добавлен в группу disk , чтобы создать VMDK-файлы из существующих дисков.

      Запуск установленного Arch Linux внутри VirtualBox

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

      Это руководство позволит вам использовать в виртуальной машине, вашу родную установку Arch Linux, когда вы используете свою вторую операционную систему. Таким образом, вы сохраняете возможность запуска каждой операционной систему изначально, но есть возможность запустить установленный физически Arch Linux внутри виртуальной машины.

      Убедитесь, что система наименования разделов не изменяется

      В зависимости от настроек вашего жесткого диска, файлы устройств, представляющих свои жесткие диски могут выглядеть по-разному когда вы будете запускать установку Arch Linux — изначально или в виртуальной машине. Эта проблема возникает, например, при использовании FakeRAID. Поддельные RAID устройстве, будут перемещены в /dev/mapper/ при запуске дистрибутива GNU/Linux , в то время как будут устройства по-прежнему доступны по отдельности. Тем не менее, в вашей виртуальной машине может оказаться без отображения в /dev/sdaX например, потому что драйвера, управляющие поддельными RAID в вашей локальной операционной системе (например, Windows) абстрагируются под поддельные RAID устройства.

      Чтобы обойти эту проблему, мы должны будем использовать схему адресации, работающую в обеих системах. Это может быть достигнуто использованием UUID в файле /etc/fstab . Убедитесь, что ваш fstab использует UUID — в противном случае исправьте это. Читайте статьи fstab (Русский) и Постоянные имена для блочных устройств.

      /etc/fstab не является единственным местом, где используются UUID. Менеджеры загрузчиков тоже их используют. Убедитесь, что они действительно используют UUID-ы.

      Если вы все еще используете GRUB Legacy, может быть настало время его обновить, так как этот пакет в настоящее время удален из официальных репозиториев Arch Linux. Если вы хотите сохранить его, отредактируйте /boot/grub/menu.lst и замените root=/dev/sdXX в загрузочной записи Arch Linux на Linux UUID /dev/disk/by-uuid/ , соответствующий корневому разделу.

      title Arch Linux root kernel /vmlinuz-linux root=/dev/disk/by-uuid/0a3407de-014b-458b-b5c1-848e92a327a3 ro vga=773 initrd /initramfs-linux-vbox.img

      Предварительно создайте резервную копию файла на случай ошибок.

      Если вы работаете с самой последней версией GRUB; у вас нет проблем. Это ещё одна причина для перехода на GRUB 2.

      • Убедитесь, что ваш хост-раздел доступна только для чтения с вашей виртуальной машины Arch Linux. Это позволит избежать риска повреждения.
      • Вы никогда не должны позволять VirtualBox загружаться с момента загрузки вашей второй операционной системы, которая используется в качестве хоста для этой виртуальной машины! Возьмите, таким образом, за правило — особенно если ваша загрузка производится по умолчанию в другую операционную систему. Установите более большой тайм-аут или переместите систему ниже в порядке предпочтений.
      Убедитесь в корректности образа mkinitcpio

      Убедитесь, что в конфигурации вашего mkinitcpio есть хук block :

      /etc/mkinitcpio.conf
      [. ] HOOKS [. ]

      Если это не так, добавьте хук и заново сгенерируйте initramfs.

      Создание конфигурации виртуальной машины для загрузки с физического диска
      Создайте потоковый(raw) образ .vmdk

      Теперь нам нужно создать новую виртуальную машину, которая будет использовать RAW диск в качестве виртуального диска, для этого мы будем использовать файл ~ 1Kib VMDK, которые будет сбрасываться на физический диск. VirtualBox не имеет этой опции в графическом интерфейсе, так что мы должны использовать консоль и внутреннюю команду из VBoxManage .

      Загрузите хост, который будет использовать виртуальную машину Arch Linux.Команда должны быть адаптированы в соответствии с вашей хост-машиной.

      На хосте GNU/Linux

      Существует 3 способа этого достичь: вход от суперпользователя, изменение прав доступа к устройству командой chmod , добавление пользователя в группу disk . Последний путь является более элегантным. Реализуем таким образом:

      # gpasswd -a your_user disk

      Применить новые параметры сейчас же:

      $ newgrp

      Теперь вы можете использовать следующую команду:

      $ VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk -rawdisk /dev/sdb -register

      Адаптируйте команду для ваших потребностей.

      На хосте Windows

      Откройте окно командной строки (необходимо запускать от имени администратора).

      Совет: В Windows откройте меню Пуск / стартовый экран, введите cmd , и нажмите Ctrl+Shift+Enter , это ярлык для запуска выбранной программы с правами администратора.

      В Windows наименование дисков отлично от UNIX. Используйте эту команду, чтобы определить значения в вашей системе Windows, и их расположение:

      # wmic diskdrive get name,size,model
      Model Name Size WDC WD40EZRX-00SPEB0 ATA Device \\.\PHYSICALDRIVE1 4000783933440 KINGSTON SVP100S296G ATA Device \\.\PHYSICALDRIVE0 96024821760 Hitachi HDT721010SLA360 ATA Device \\.\PHYSICALDRIVE2 1000202273280 Innostor Ext. HDD USB Device \\.\PHYSICALDRIVE3 1000202273280

      В этом примере Windows называет диски \\.\PhysicalDriveX , Где X представляет собой число от 0, \\.\PHYSICALDRIVE1 может быть сопоставим с /dev/sdb из терминологии Linux.

      Для использования в командной строке VBoxManage в Windows, вы должны изменить текущую папку в папку установки VirtualBox, обычно это cd C:\Program Files\Oracle\VirtualBox\

      # .\VBoxManage.exe internalcommands createrawvmdk -filename C:\file.vmdk -rawdisk \\.\PHYSICALDRIVE1

      или использовать абсолютный путь:

      # "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" internalcommands createrawvmdk -filename C:\file.vmdk -rawdisk \\.\PHYSICALDRIVE1

      На другой хостовой ОС

      Есть и другие ограничения, касающиеся вышеприведенной команды, когда она используется в других операционных системах — таких как OS X. Прочитайте внимательно руководство, если это вас беспокоит.

      Создание файла конфигурации виртуальной машины
      • Для использования команды VBoxManage в Windows, вам нужно сначало изменить текущую директорию в папку установки VirtualBox:
      cd C:\Program Files\Oracle\VirtualBox\
      • Windows делает использование обратного слеша вместо слеша, пожалуйста, замените все вхождения / на \ в командах, которые вы будете использовать.

      После этого мы должны создать новую машину (замените VM_name ная ваш вариант) и зарегистрировать её в VirtualBox.

      $ VBoxManage createvm -name VM_name -register

      Затем виртуальный диск должен быть подключен к машине. Это будет зависеть от того, находится ли корень в вашей оригинальной установке Arch Linux на IDE или контроллере SATA.

      Если вам нужен контроллер IDE:

      $ VBoxManage storagectl VM_name --name "IDE Controller" --add ide $ VBoxManage storageattach machineA --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium /path/to/file.vmdk

      В противном случае:

      $ VBoxManage storagectl VM_name --name "SATA Controller" --add sata $ VBoxManage storageattach machineA --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium /path/to/file.vmdk

      В то время как вы продолжаете использовать интерфейс командной строки, рекомендуется использовать VirtualBox GUI, чтобы персонализировать настройки виртуальной машины. Необходимо указать аппаратную конфигурацию как можно ближе к родной машине: включение ускорения 3D, увеличение видеопамяти, установка сетевого интерфейса и т.д.

      Установка дополнений гостевой ОС

      Наконец, вы можете легко интегрировать Arch Linux с хост-системой и синхронизировать буфер обмена между двумя ОС. Обратитесь к установке гостевых дополнений для этого.

      Важно: Для Xorg (Русский), чтобы работать в родной и в виртуальной машине, так как очевидно, он должен использовать другой драйвер, то лучше, если не будет /etc/X11/xorg.conf — так как Xorg будет собирать все, что необходимо на лету. Однако, если вам действительно нужно свою собственную конфигурацию Xorg, может быть, стоит установить используемые по умолчанию цели Systemd к multi-user.target с # systemctl isolate graphical.target (более подробно). Таким образом, графический интерфейс будет отключен (т.е. Xorg не запустится) и после входа в систему вы сможете выполнить startx вручную с пользовательским xorg.conf .

      Физическая установка системы Arch Linux из VirtualBox

      В некоторых случаях это может быть полезно для установки родной системы Arch Linux из другой операционной системы: один из способов достижения этой цели является выполнение установки через VirtualBox на жёсткий диск. Если существующая операционная система на основе Linux, вы можете рассмотреть установку из существующего Linux вместо этого.

      Этот сценарий очень похож на Запуск установленного Arch Linux в VirtualBox, но будет реализовывать эти шаги в другом порядке: начать с создания .vmdk образа жёсткого диска, а затем создавать файл конфигурации виртуальной машины.

      Теперь вы должны иметь рабочую конфигурацию виртуальной машины, чей виртуальный VMDK-диск связан с реальным диском. Процесс установки точно такой же, как и описанный в пошаговой установке Arch Linux в VirtualBox, но сначала убедитесь в постоянной схеме наименования разделов и корректности образа mkinitcpio.

      • Для BIOS и MBR дисков: не устанавливайте загрузчик внутри виртуальной машины — он не будет работать, так как MBR не связан с MBR вашей реальной машины, и виртуальный диск отображается только в реальном разделе без MBR
      • Для UEFI систем без CSM и GPT дискa установка не будет работать вообще, так как:
      • ESP не отображается на виртуальный диск и Arch Linux требует, чтобы ядро Linux было на нём, чтобы загрузиться в качестве приложения EFI (смотрите статью EFISTUB (Русский))
      • и efivars, если вы устанавливаете Arch Linux через VirtualBox, используя режим EFI, не загрузит ни одну из ваших реальных систем: записи Bootmanager не смогут быть зарегистрированы
      • Вот почему рекомендуется создавать разделы в родной установке. В противном случае разделы не будут приниматься во внимание в MBR / GPT таблице разделов

      После завершения установки загрузите компьютер сперва с установочного носителя GNU/Linux (будь то Arch Linux или нет), выполните chroot в установленной Arch Linux и установите и настройте загрузчик.

      Перемещение физически установленного Windows в виртуальную машину

      Если вы хотите перенести существующую Windows на виртуальную машину, которая будет использоваться с VirtualBox на GNU/Linux, этот вариант использования для вас. В этом разделе описан перенос только Windows с использованием схемы MSDOS/Intel разделов. Ваш Windows должен находиться на первом после MBR разделе. Работа в других разделах доступна, но были не тестировалась (см Известные ограничения для более подробной информации)

      Важно: Если вы используете OEM версию Windows, этот процесс является неправомочным по конечной пользовательской лицензии. Действительно, лицензия OEM, как правило, указывает, что Windows Install связана с аппаратными средствами. Сделайте так, что бы у вас был полный Windows Install или полная лицензия, прежде чем продолжить. Если у вас есть полная лицензию для Windows, но последний не приходит в объеме, ни в качестве специальной лицензии на нескольких компьютерах, это означает, что вы должны будете удалить родную установку после операции клонирования в VM.

      Несколько задач необходимо выполнить внутри вашей Windows, а затем в хост-машине GNU/Linux.

      Задачи в Windows

      Первые три следующих моменты происходит от этой устаревшей вики-страницы VirtualBox, но обновляются здесь.

      • Удалите проверку IDE/ATA контроллеров (только Windows XP): Windows запоминает IDE/ATA после установки, и не будет загружаться, если он обнаружит что они изменились.Решение, предложенное Microsoft является повторным использованием того же контроллера или использовать один из той-же серии, что невозможно сделать, поскольку мы используем виртуальную машину. MergeIDE, немецкий инструмент, разработан как другое решением, предложенное Microsoft. Решение в основном состоит в принятии всех IDE/ATA драйверов контроллера IDE, поддерживаемые Windows XP от первоначального архива драйвера, их установке и регистрации в реестре через Regedit.
      • Используйте правильный тип слоя абстрагирования оборудования (старые 32-битный Windows): Microsoft использует с 3 версии по умолчанию: Hal.dll (Standard PC), Halacpi.dll (ACPI HAL) и halaacpi.dll (ACPI HAL с IO APIC). Ваша Windows-установка могла устанавитmся с первого или второго варианта. В этом случае, пожалуйста, отключите Enable IO/APIC в расширенных возможностях VirtualBox.
      • Отключите драйвер AGP устройства (только устаревшие версии ОС Windows): Если у вас есть файлы agp440.sys или intelppm.sys внутри C:\Windows\System32\drivers\ , то удалите его. Так как VirtualBox использует PCI виртуальную графическую карту, это может вызвать проблемы, когда используется драйвер AGP.
      • Создайте диск восстановления ОС Windows: В следующих шагах, если что-то испортится, вам нужно будет восстановить установку Windows. Убедитесь, что у вас есть установочного носителя под рукой, или создайте через Создать диск восстановления в Vista SP1, Создать диск восстановления системы в Windows 7 или Создать диск восстановления в Windows 8.x).
      Задачи в GNU/Linux
      • Уменьшите родной размер раздела Windows, для чего нужен ntfsresize из пакета ntfs-3g . Вы определяете размер, который будет равен размере VDI, который будет создан на следующем шаге. Если этот размер будет слишком мал, вы можете сломать ваш Windows и он может не загружаться вообще.
      # ntfsresize --no-action --size 52Gi /dev/sda1
      • Установите VirtualBox на ваш GNU/Linux хост (смотрите раздел #Установка).
      • Создайте образ диска для Windows от начала диска до конца первого раздела, на котором находится Windows. Копирование с начала диска необходимо потому, что пространство MBR в начале диска должно быть перенесено на виртуальный диск вместе с самим Windows. В этом примере следующие два раздела sda2 и sda3 будут позже удалены из таблицы разделов и загрузчик MBR будет обновляться.
      # sectnum=$(( $(cat /sys/block/sda/sda1/start) + $(cat /sys/block/sda/sda1/size) ))

      Команда cat /sys/block/sda/sda1/size выведет количество секторов первого раздела диска sda . Адаптируйте команду под ваши нужды.

      # dd if=/dev/sda bs=512 count=$sectnum | VBoxManage convertfromraw stdin windows.vdi $(( $sectnum * 512 ))
      • Так как вы создали свой образ диска с правами администратора, установите правильного владельца файлу образа диска:
      # chown ваш_пользователь:ваша_группа windows.vdi
      • Создайте файл настроек виртуальной машины — используйте виртуальный диск, созданный ранее в качестве основного виртуального диска.
      • Попробуйте загрузиться с виртуальной машины Windows (может заработать). Во-первых, хотя бы отключите восстановление дисков из процесса загрузки, так как это может помешать (и, вероятно, будет мешать) загрузиться в безопасном режиме.
      • Попытайтесь загрузить виртуальную машину в безопасном режиме (нажмите клавишу F8 до логотипа Windows). при возникновении проблем с загрузкой смотрите раздел #Исправление MBR и загрузчика Microsoft. В безопасном режиме, вероятно, будут установлены драйверы. Кроме того, установите Дополнения гостевой ОС через меню Устройства >Подключить образ диска Дополнений гостевой ОС. . Если окно действий над подключенным диском не появилось, откройте диск и запустите установку вручную.
      • Наконец-то у вас есть необходимый Windows в виртуальной машине. Ознакомьтесь с известными ограничениями.
      Исправление MBR и загрузчика Microsoft

      Если ваша виртуальная машина с Windows отказывается загружаться, вам, возможно, потребуется применить следующие изменения в вашей виртуальной машине.

      • Начальная загрузка GNU/Live внутри виртуальной машины, прежде чем загрузится ОС Windows .
      • Удалить другие записи разделы с MBR виртуального диска. В самом деле, так как мы скопировали MBR и только раздел Windows, записи, относящихся к другим разделам по-прежнему присутствуют в MBR, но разделы ведь больше не доступны. Используйте fdisk , чтобы добиться этого, например.
      fdisk ''/dev/sda'' Command (m for help): a Partition number (''1-3'', default ''3''): ''1''
      • Запишите обновленную таблицу разделов на диск (это будет пересозданием MBR) с помощью m команды в окружении fdisk .
      • Используйте testdisk (см. здесь для более подробной информации), чтобы добавить общий MBR:
      # testdisk > Disk /dev/sda. ' > [Proceed] > [Intel] Intel/PC partition > [MBR Code] Write TestDisk MBR to first sector > Write a new copy of MBR code to first sector? (Y/n) > Y > Write a new copy of MBR code, confirm? (Y/N) > A new copy of MBR code has been written. You have to reboot for the change to take effect. > [OK]
      • С новым MBR и обновленной таблицей разделов, ваша виртуальная машина с Windows должна загрузиться. Если вы все еще сталкиваетесь с вопросами, загрузите диск восстановления Windows с предыдущей стадии, и внутри вашей среды Windows RE, выполняйте команды описанные здесь.
      Известные ограничения
      • Ваша виртуальная машина может иногда зависать и забивать оперативную память, это может быть вызвано конфликтующими драйверами , установленными внутри виртуальной машины Windows. Удачи вам найти их!
      • Дополнительное ПО ожидало драйвер,который не может установиться из-за невозможности отключения / деинсталляции старого драйвера.
      • Ваша Windows должна находиться в первом разделе для описанного выше процесса, чтобы заработать. Если это требование не выполнено, система может работать, но это не было испытаны. Это потребует либо копирования MBR и редактирования в шестнадцатеричном коде, см. VirtualBox: загрузка клонированного диска или потребуется исправить таблицу разделов вручную или восстанавливать Windows с диска восстановления, созданного в предыдущем шаге. Рассмотрим нашу установку окна на втором раздела; мы скопируем MBR, второму разделу, где лужит образ диска VBoxManage convertfromraw необходимо общее количество байтов, которые будут записаны: Вычислим как сумму размера MBR (начало первого раздела) плюс размер второго (Windows) раздела. < dd if=/dev/sda bs=512 count=$(cat /sys/block/sda/sda1/start) ; dd if=/dev/sda2 bs=512 count=$(cat /sys/block/sda/sda2/size) ; >| VBoxManage convertfromraw stdin windows.vdi $(( ($(cat /sys/block/sda/sda1/start) + $(cat /sys/block/sda/sda2/size)) * 512 )) .

      Решение проблем

      VERR_ACCESS_DENIED

      Чтобы получить доступ к образу vdmk, расположенного на хосте под Windows, запустите VirtualBox GUI от имени администратора.

      Клавиатура и мышь заблокированы виртуальной машиной

      Это означает, что ваша виртуальная машина захватила ввод клавиатуры и мыши. Просто нажмите правый Ctrl , и ваши устройства ввода станут доступны в основной системе.

      Для того, чтобы управление мышь возвращалось основной ОС при выходе курсора за границы окна виртуальной машины без нажатия каких-либо клавиш и для возможности бесшовной интеграции установите гостевое дополнение на виртуальную машину. Читайте шаг #Установка гостевых дополнений, если вы новичок в Arch Linux, или читайте официальную справку VirtualBox.

      Не работают 64-битные гостевые ОС

      При запуске клиента VM, если никакие 64-битные варианты не доступны, убедитесь что ваши возможности виртуализации процессора (обычно с именем VT-X ) включены в BIOS.

      Не могу отправить комбинацию CTRL+ALT+Fn в виртуальную машину

      Если в вашей виртуальной машине установлен дистрибутив GNU/Linux и вы хотите открыть новую оболочку TTY нажатием Ctrl+Alt+F2 или выйти из X сессии с помощью Ctrl+Alt+Backspace , просто нажав это сочетание клавиш без какой-либо адаптации, гостевая машина его не получит и основная ОС (если это тоже дистрибутив GNU/Linux) распознает это сочетание клавиш. Для отправки Ctrl+Alt+F2 на виртуальную машину нужно просто нажать ваш Host Key (обычно это правый Ctrl ) и одновременно нажать F2 .

      Исправление проблем в ISO-образах

      В то время как VirtualBox монтирует оригинальный образы ISO без проблем, есть такие форматы образов, которые не могут надежно быть преобразованы в ISO. Например, ccd2iso игнорирует .ccd и .sub файлы, что может привести к созданию образа диска с разбитыми файлами.

      В этом случае вам придется использовать CDemu для Linux внутри VirtualBox или любую другую утилиту, предназначенную для монтирования образов дисков.

      VirtualBox GUI не видит мою тему GTK 2x/3x

      Смотрите Единый интерфейс GTK/QT приложений для получения информации о настройке GUI Qt в GTK-окружениях.

      OpenBSD не работает при недоступных инструкциях виртуализации

      В то время как OpenBSD отлично работает на других гипервизорах без включенной виртуализации (VT-х AMD-V), виртуальная машина с OpenBSD работает в VirtualBox без этих инструкций некорректно, выдавая кучу ошибок сегментации. Запуская VirtualBox с аргументом -norawr0 можно избавиться от этой проблемы. Вы можете сделать это следующим образом:

      $ VBoxSDL -norawr0 -vm имя_OpenBSD_VM 

      VBOX_E_INVALID_OBJECT_STATE (0x80BB0007)

      Это может произойти при некорректном завершении виртуальной машины. Разблокировка машины тривиальна:

      $ VBoxManage controlvm virtual_machine_name poweroff

      Подсистема USB не работает

      Ваш пользователь должен быть в группе vboxusers , и вы должны установить пакет дополнений, если хотите иметь поддержку USB 2. Тогда вы сможете включить USB 2 в настройках виртуальной машины и добавить один или несколько фильтров для устройств, которые будут иметь доступ из гостевой ОС.

      Иногда, на старых Linux-хостах, подсистема USB не распознается автоматически и выдает ошибку Could not load the Host USB Proxy service: VERR_NOT_FOUND или при невидимом USB-диске в хост-машине, даже когда пользователь находится в группе vboxusers. Эта проблема происходит из-за того, что VirtualBox переключается с usbfs на sysfs с версии 3.0.8. Если хост-машина не распознаёт этого изменения, вы можете вернуться к старому поведению, определив следующую переменную окружения в любом файле, которые конфигурирует вашу оболочку (например, в ~/.bashrc , если вы используете bash):

      ~/.bashrc
      VBOX_USB=usbfs

      Затем убедитесь, что, окружающая среда приняла это изменение (перелогиньтесь, запустите новый экземпляр оболочки или перезагрузитесь).

      Также убедитесь, что ваш пользователь состоит в группе storage .

      Ошибка создания сетевого интерфейса «host-only»

      Убедитесь в том, что все модули ядра VirtualBox загружены (см. Загрузка модулей ядра VirtualBox).

      WinXP: глубина цвета не может превышать 16 цветов

      Если Вы работаете в 16-битной глубине цвета, то значки будут отображаться некорректно. Тем не менее, при попытке изменить глубину цвета на более высокий уровень, система может ограничить вас с более низким разрешением или просто не позволит вам изменить глубину вообще. Чтобы это исправить, запустите regedit в Windows и добавьте следующий ключ реестра для виртуальной машины Windows XP:

      [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services] "ColorDepth"=dword:00000004

      Затем обновите глубину цвета в «Свойствах рабочего стола». Если ничего не происходит, заставьте экран перерисоваться (например, нажмите Host+f ).

      Использование последовательных портов в гостевой ОС

      Проверьте наличие прав для доступа к последовательным портам:

      $ /bin/ls -l /dev/ttyS* crw-rw---- 1 root uucp 4, 64 Feb 3 09:12 /dev/ttyS0 crw-rw---- 1 root uucp 4, 65 Feb 3 09:12 /dev/ttyS1 crw-rw---- 1 root uucp 4, 66 Feb 3 09:12 /dev/ttyS2 crw-rw---- 1 root uucp 4, 67 Feb 3 09:12 /dev/ttyS3

      Добавьте пользователя в группу uucp

      # gpasswd -a $USER uucp

      Windows 8.x ошибка 0x000000C4

      Если вы получаете этот код ошибки при загрузке, даже при выбранном типе OS Win 8, попробуйте включить инструкцию процессора CMPXCHG16B :

      $ vboxmanage setextradata virtual_machine_name VBoxInternal/CPUM/CMPXCHG16B 1

      Windows 8 VM вылетает при загрузке с ошибкой «ERR_DISK_FULL»

      Если ваша Windows 8 не запускается, VirtualBox выдаёт ошибку что виртуальный диск заполнен, но тем не менее вы уверены что диск не является заполненным, откройте настройки виртуальной машины Настройки>Память>Контроллер: SATA и выберите Use Host I/O Cache.

      Гостевая ОС Linux выдаёт искажённый или запаздывающий звук

      Аудио драйвер AC97 в ядре linux иногда неправильно считывает время из Virtual Box, что приводит к различным искажениям звука. Для исправления проблемы, создайте файл /etc/modprobe.d со следующим содержанием:

      options snd-intel8x0 ac97_clock=48000

      Гостевая ОС зависает после запуска Xorg

      Неисправные или отсутствующие драйверы могут привести к остановке после запуска Xorg, см., например, [3] и [4] [устаревшая ссылка 2020-08-06 ⓘ] . Попробуйте отключить 3D-ускорение в Настройки> Дисплей, и проверьте, все ли драйверы Xorg установлены.

      Исчезновение пунктов меню и ошибка «NS_ERROR_FAILURE»

      Если после первого запуска машины вы столкнулись с такой ошибкой:

      Failed to open a session for the virtual machine debian. Could not open the medium '/home/. /VirtualBox VMs/debian/debian.qcow'. QCow: Reading the L1 table for image '/home/. /VirtualBox VMs/debian/debian.qcow' failed (VERR_EOF). VD: error VERR_EOF opening image file '/home/. /VirtualBox VMs/debian/debian.qcow' (VERR_EOF). Result Code: NS_ERROR_FAILURE (0x80004005) Component: Medium

      Выйдите из VirtualBox, удалите все файлы новой машины и из файла конфигурации VirtualBox удалите последнюю строку в MachineRegistry меню:

      ~/.config/VirtualBox/VirtualBox.xml
      . " src="https://wiki.archlinux.org/home/void/VirtualBox%20VMs/debian/debian.vbox"/> " src="https://wiki.archlinux.org/home/void/VirtualBox%20VMs/ubuntu/ubuntu.vbox"/> " src="https://wiki.archlinux.org/home/void/VirtualBox%20VMs/lastvmcausingproblems/lastvmcausingproblems.qcow"/>  .

      Это иногда происходит при выборе QCOW/QCOW2/QED формата виртуального диска.

      «Указанный путь не существует. Проверьте путь и попробуйте еще раз.» Ошибка в гостевой ОС Windows

      Это сообщение об ошибке часто появляется при работе с расширением .exe который требует привелегий администратора из общей папки в гостевой Windows. См. отчет об ошибке.

      Есть несколько способов обойти ошибку:

      1. Отключить UAC с помощью Панель управления -> Центр поддержки -> «Settings Change User Account Control» из левой боковой панели -> Установить ползунок «Никогда не уведомлять» -> OK и перезагрузить ОС
      2. Скопируйте файл из папки общего доступа в гостевую ОС и запустите оттуда

      Смотрите также

      • Руководство пользователя VirtualBox
      • Википедия:VirtualBox

      Retrieved from «https://wiki.archlinux.org/index.php?title=VirtualBox_(Русский)&oldid=797629»

      • Hypervisors (Русский)
      • Oracle (Русский)

      VirtualBox

      VirtualBox is a hypervisor used to run operating systems in a special environment, called a virtual machine, on top of the existing operating system. VirtualBox is in constant development and new features are implemented continuously. It comes with a Qt GUI interface, as well as headless and SDL command-line tools for managing and running virtual machines.

      In order to integrate functions of the host system to the guests, including shared folders and clipboard, video acceleration and a seamless window integration mode, guest additions are provided for some guest operating systems.

      Installation steps for Arch Linux hosts

      In order to launch VirtualBox virtual machines on your Arch Linux box, follow these installation steps.

      Install the core packages

      Install the virtualbox package. You will also need to choose a package to provide host modules:

      • for the linux kernel, choose virtualbox-host-modules-arch
      • for any other kernel (including linux-lts ), choose virtualbox-host-dkms

      To compile the VirtualBox modules provided by virtualbox-host-dkms , it will also be necessary to install the appropriate headers package(s) for your installed kernel(s) (e.g. linux-lts-headers for linux-lts ). [1] When either VirtualBox or the kernel is updated, the kernel modules will be automatically recompiled thanks to the DKMS pacman hook.

      Sign modules

      When using a custom kernel with CONFIG_MODULE_SIG_FORCE option enabled, you must sign your modules with a key generated during kernel compilation.

      Navigate to your kernel tree folder and execute the following command:

      # for module in `ls /lib/modules/$(uname -r)/kernel/misc/` ; do ./scripts/sign-file sha1 certs/signing_key.pem certs/signing_key.x509 $module ; done

      Note: Hashing algorithm does not have to match the one configured, but it must be built into the kernel.

      Load the VirtualBox kernel modules

      virtualbox-host-modules-arch and virtualbox-host-dkms use systemd-modules-load.service to load VirtualBox modules automatically at boot time. For the modules to be loaded after installation, either reboot or load the modules once manually; the list of modules can be found in /usr/lib/modules-load.d/virtualbox-host-modules-arch.conf or /usr/lib/modules-load.d/virtualbox-host-dkms.conf .

      Note: If you do not want the VirtualBox modules to be automatically loaded at boot time, you have to mask the default /usr/lib/modules-load.d/virtualbox-host-modules-arch.conf (or /usr/lib/modules-load.d/virtualbox-host-dkms.conf ) by creating an empty file (or symlink to /dev/null ) with the same name in /etc/modules-load.d/ .

      Among the kernel modules VirtualBox uses, there is a mandatory module named vboxdrv , which must be loaded before any virtual machines can run.

      To load the module manually, run:

      # modprobe vboxdrv

      The following modules are only required in advanced configurations:

      • vboxnetadp and vboxnetflt are both needed when you intend to use the bridged or host-only networking feature. More precisely, vboxnetadp is needed to create the host interface in the VirtualBox global preferences, and vboxnetflt is needed to launch a virtual machine using that network interface.

      Note: If the VirtualBox kernel modules were loaded in the kernel while you updated the modules, you need to reload them manually to use the new updated version. To do it, run vboxreload as root.

      Accessing host USB devices in guest

      To use the USB ports of your host machine in your virtual machines, add users that will be authorized to use this feature to the vboxusers user group.

      Guest additions disc

      It is also recommended to install the virtualbox-guest-iso package on the host running VirtualBox. This package will act as a disc image that can be used to install the guest additions onto guest systems other than Arch Linux. The .iso file will be located at /usr/lib/virtualbox/additions/VBoxGuestAdditions.iso , and may have to be mounted manually inside the virtual machine. Once mounted, you can run the guest additions installer inside the guest.

      Unattended templates

      In order to avoid having to install the guest system manually, some operating systems support unattended installation. This allows the user to configure the system to be installed in VirtualBox’s interface prior to starting the machine. At the end of the setup process, the operating system is installed without requiring any further user interaction. This feature requires the virtualbox-unattended-templates AUR package.

      Extension pack

      The Oracle Extension Pack provides additional features and is released under a non-free license only available for personal use. To install it, the virtualbox-ext-oracle AUR package is available, and a prebuilt version can be found in the seblu repository.

      If you prefer to use the traditional and manual way: download the extension manually and install it via the GUI (File > Tools > Extension Pack Manager) or via VBoxManage extpack install , make sure you have a toolkit like Polkit to grant privileged access to VirtualBox. The installation of this extension requires root access.

      Front-ends

      VirtualBox comes with three front-ends:

      • If you want to use VirtualBox with the regular GUI, use VirtualBox .
      • If you want to launch and manage your virtual machines from the command-line, use the VBoxSDL command, which only provides a plain window for the virtual machine without any overlays.
      • If you want to use VirtualBox without running any GUI (e.g. on a server), use the VBoxHeadless command. With the VRDP extension you can still remotely access the displays of your virtual machines.

      A security feature in Wayland (i.e. when using GDM) disallows VirtualBox to grab all keyboard input. This is annoying when you want to pass window manager shortcuts to your guest operating system. It can be bypassed by whitelisting VirtualBox:

      $ gsettings get org.gnome.mutter.wayland xwayland-grab-access-rules $ gsettings set org.gnome.mutter.wayland xwayland-grab-access-rules "['VirtualBox Machine']"

      The first command will show if any other applications are already whitelisted. If so, add ‘VirtualBox Machine’ to that list, rather than having it as the only one.

      Finally, you can also use phpVirtualBox to administrate your virtual machines via a web interface.

      Refer to the VirtualBox manual to learn how to create virtual machines.

      Warning: If you intend to store virtual disk images on a Btrfs file system, before creating any images, you should consider disabling copy-on-write for the destination directory of these images.

      Installation steps for Arch Linux guests

      Virtual disks management

      Formats supported by VirtualBox

      VirtualBox supports the following virtual disk formats:

      • VDI: The Virtual Disk Image is the VirtualBox own open container used by default when you create a virtual machine with VirtualBox.
      • VMDK: The Virtual Machine Disk has been initially developed by VMware for their products. The specification was initially closed source, but has since become an open format which is fully supported by VirtualBox. This format offers the ability to be split into several 2GB files. This feature is especially useful if you want to store the virtual machine on machines which do not support very large files. Other formats, excluding the HDD format from Parallels, do not provide such an equivalent feature.
      • VHD: The Virtual Hard Disk is the format used by Microsoft in Windows Virtual PC and Hyper-V. If you intend to use any of these Microsoft products, you will have to choose this format.

      Tip: Since Windows 7, this format can be mounted directly without any additional application.

      • VHDX (read only): This is the eXtended version of the Virtual Hard Disk format developed by Microsoft, which has been released on 2012-09-04 with Hyper-V 3.0 coming with Windows Server 2012. This new version of the disk format does offer enhanced performance (better block alignment), larger blocks size, and journal support which brings power failure resiliency. VirtualBox should support this format in read only.
      • HDD (version 2): The HDD format is developed by Parallels Inc and used in their hypervisor solutions like Parallels Desktop for Mac. Newer versions of this format (i.e. 3 and 4) are not supported due to the lack of documentation for this proprietary format.

      Note: There is currently a controversy regarding the support of the version 2 of the format. While the official VirtualBox manual only reports the second version of the HDD file format as supported, Wikipedia’s contributors are reporting the first version may work too. Help is welcome if you can perform some tests with the first version of the HDD format.

      Disk image format conversion

      VBoxManage clonehd can be used to convert between VDI, VMDK, VHD and RAW.

      $ VBoxManage clonehd inputfile outputfile --format outputformat 

      For example to convert VDI to VMDK:

      $ VBoxManage clonehd source.vdi destination.vmdk --format VMDK
      QCOW

      VirtualBox does not support QEMU’s QCOW2 disk image format. To use a QCOW2 disk image with VirtualBox you therefore need to convert it, which you can do with qemu-img . qemu-img can convert QCOW to / from VDI, VMDK, VHDX, RAW and various other formats (which you can see by running qemu-img —help ).

      $ qemu-img convert -O output_fmt inputfile outputfile 

      For example to convert QCOW2 to VDI:

      $ qemu-img convert -O vdi source.qcow2 destination.vdi 

      Tip: The -p parameter is used to get the progression of the conversion task.

      There are two revisions of QCOW2: 0.10 and 1.1. You can specify the revision to use with -o compat=revision .

      Mount virtual disks

      VDI

      Mounting VDI images only works with fixed size images (a.k.a. static images); dynamic (dynamically size allocating) images are not easily mountable.

      The offset of the partition (within the VDI) is needed, then add the value of offData to 32256 (e.g. 69632 + 32256 = 101888):

      $ VBoxManage internalcommands dumphdinfo storage.vdi | grep "offData"

      The storage can now be mounted with:

      # mount -t ext4 -o rw,noatime,noexec,loop,offset=101888 storage.vdi /mntpoint/

      For VDI disks with more partitions you can also use losetup :

      # losetup -o $offData -Pf

      After this you should find the partitions under /dev/loop* (e.g. /dev/loop0p1 ). Then you can mount them as usual (e.g. mount mount /dev/loop0p1 /mnt/ ).

      You can also use mount.vdi script that, which you can use as (install script itself to /usr/bin/ ):

      # mount -t vdi -o fstype=ext4,rw,noatime,noexec vdi_file_location /mnt/ 

      Alternately you can use the nbd kernel module and qemu-nbd from qemu-img [2]:

      # modprobe nbd max_part=16 # qemu-nbd -c /dev/nbd0 storage.vdi # mount /dev/nbd0p1 /mnt/dir/

      And then to unmount:

      # umount /mnt/dir/ # qemu-nbd -d /dev/nbd0

      If the partition nodes are not propagated try using partprobe /dev/nbd0 ; otherwise, a VDI partition can be mapped directly to a node by: qemu-nbd -P 1 -c /dev/nbd0 storage.vdi .

      Another way is to use vdfuse AUR :

      # vdfuse -a -f storage.vdi mountpoint1 

      which mounts the disk in mountpoint1 with the PartitionN naming format. Each partition can then be loop-mounted in mountpoint2 :

      # mount -o loop mountpoint1/PartitionN mountpoint2 
      VHD

      Like VDI, VHD images can be mounted with QEMU’s nbd module:

      # modprobe nbd # qemu-nbd -c /dev/nbd0 storage.vhd # mount /dev/nbd0p1 /mnt
      # umount /mnt # qemu-nbd -d /dev/nbd0

      Compact virtual disks

      Compacting virtual disks only works with .vdi files and basically consists of the following steps.

      Boot your virtual machine and remove all bloat manually or by using cleaning tools like bleachbit which is available for Windows systems too.

      Wiping free space with zeroes can be achieved with several tools:

      • If you were previously using Bleachbit, check the checkbox System > Free disk space in the GUI, or use bleachbit -c system.free_disk_space in CLI;
      • On UNIX-based systems, by using dd or preferably dcflddAUR (see here to learn the differences):
      # dcfldd if=/dev/zero of=/fillfile bs=4M
      • On Windows, there are two tools available:
        • sdelete from the Sysinternals Suite, type sdelete -s -z c: , where you need to reexecute the command for each drive you have in your virtual machine;
        • or, if you love scripts, there is a PowerShell solution, but which still needs to be repeated for all drives.
        PS> ./Write-ZeroesToFreeSpace.ps1 -Root c:\ -PercentFree 0

        Note: This script must be run in a PowerShell environment with administrator privileges. By default, scripts cannot be run, ensure the execution policy is at least on RemoteSigned and not on Restricted . This can be checked with Get-ExecutionPolicy and the required policy can be set with Set-ExecutionPolicy RemoteSigned .

        Once the free disk space have been wiped, shut down your virtual machine.

        The next time you boot your virtual machine, it is recommended to do a filesystem check.

        • On UNIX-based systems, you can use fsck manually;
          • On GNU/Linux systems, and thus on Arch Linux, you can force a disk check at boot thanks to a kernel boot parameter;
          • either chkdsk c: /F where c: needs to be replaced by each disk you need to scan and fix errors;
          • or FsckDskAll from here which is basically the same software as chkdsk , but without the need to repeat the command for all drives;

          Now, remove the zeros from the .vdi file with VBoxManage modifyhd:

          $ VBoxManage modifyhd your_disk.vdi --compact

          Note: If your virtual machine has snapshots, you need to apply the above command on each .vdi files you have.

          TRIM

          VirtualBox offers simulation of TRIM in VDI files via an experimental «discard» attachment option. This option is undocumented and can be accessed by commandline or .vbox file editing. When enabled, TRIM commands from the guest operating system causes the corresponding part of the VDI file to be compacted away.

          Warning: Using this option without Host I/O Cache is known to cause lockups.

          Increase virtual disks

          General procedure

          If you are running out of space due to the small hard drive size you selected when you created your virtual machine, the solution adviced by the VirtualBox manual is to use VBoxManage modifyhd. However this command only works for VDI and VHD disks and only for the dynamically allocated variants. If you want to resize a fixed size virtual disk disk too, read on this trick which works either for a Windows or UNIX-like virtual machine.

          First, create a new virtual disk next to the one you want to increase:

          $ VBoxManage createmedium disk -filename new.vdi --size 10000 

          where size is in MiB, in this example 10000MiB ~= 10GiB, and new.vdi is name of new hard drive to be created.

          Note: By default, this command uses the Standard (corresponding to dynamic allocated) file format variant and thus will not use the same file format variant as your source virtual disk. If your old.vdi has a fixed size and you want to keep this variant, add the parameter —variant Fixed .

          Next, the old virtual disk needs to be cloned to the new one which this may take some time:

          $ VBoxManage clonemedium disk old.vdi new.vdi --existing

          Detach the old hard drive and attach new one, replace all mandatory italic arguments by your own:

          $ VBoxManage storageattach virtual_machine_name --storagectl SATA --port 0 --medium none $ VBoxManage storageattach virtual_machine_name --storagectl SATA --port 0 --medium new.vdi --type hdd

          To get the storage controller name and the port number, you can use the command VBoxManage showvminfo virtual_machine_name . Among the output you will get such a result (what you are looking for is in italic):

          [. ] 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): Empty SATA (0, 0): /home/wget/IT/Virtual_machines/GNU_Linux_distributions/ArchLinux_x64_EFI/Snapshots/.vdi (UUID: 6bb17af7-e8a2-4bbf-baac-fbba05ebd704) [. ]

          Download GParted live image and mount it as a virtual CD/DVD disk file, boot your virtual machine, increase/move your partitions, umount GParted live and reboot.

          Note: On GPT disks, increasing the size of the disk will result in the backup GPT header not being at the end of the device. GParted will ask to fix this, click on Fix both times. On MBR disks, you do not have such a problem as this partition table as no trailer at the end of the disk.

          Finally, unregister the virtual disk from VirtualBox and remove the file:

          $ VBoxManage closemedium disk old.vdi $ rm old.vdi 
          Increasing the size of VDI disks

          If your disk is a VDI one, run:

          $ VBoxManage modifymedium disk your_virtual_disk.vdi --resize the_new_size 

          Then jump back to the Gparted step, to increase the size of the partition on the virtual disk.

          Replace a virtual disk manually from the .vbox file

          If you think that editing a simple XML file is more convenient than playing with the GUI or with VBoxManage and you want to replace (or add) a virtual disk to your virtual machine, in the .vbox configuration file corresponding to your virtual machine, simply replace the GUID, the file location and the format to your needs:

          ArchLinux_vm.vbox

          then in the sub-tag of , replace the GUID by the new one.

          ArchLinux_vm.vbox

          Note: If you do not know the GUID of the drive you want to add, you can use the VBoxManage showhdinfo file . If you previously used VBoxManage clonehd to copy/convert your virtual disk, this command should have outputted the GUID just after the copy/conversion completed. Using a random GUID does not work, as each UUID is stored inside each disk image.

          Transfer between Linux host and other operating system

          The information about path to harddisks and the snapshots is stored between . tags in the file with the .vbox extension. You can edit them manually or use this script where you will need change only the path or use defaults, assumed that .vbox is in the same directory with a virtual harddisk and the snapshots folder. It will print out new configuration to stdout.

          #!/bin/sh NewPath="$/" Snapshots="Snapshots/" Filename="$1" awk -v SetPath="$NewPath" -v SnapPath="$Snapshots" 'else; print $1" "$2" location="\"SetPath SnapS L"\" "$4" "$5> else print $0>' "$Filename"
          • If you will prepare virtual machine for use in Windows host then in the path name end you should use backslash \ instead of / .
          • The script detects snapshots by looking for < in the file name.
          • To make it run on a new host you will need to add it first to the register by clicking on Machine -> Add. or use hotkeys Ctrl+A and then browse to .vbox file that contains configuration or use command line VBoxManage registervm filename.vbox

          Clone a virtual disk and assigning a new UUID to it

          UUIDs are widely used by VirtualBox. Each virtual machines and each virtual disk of a virtual machine must have a different UUID. When you launch a virtual machine in VirtualBox, VirtualBox will keep track of all UUIDs of your virtual machine instance. See the VBoxManage list to list the items registered with VirtualBox.

          If you cloned a virtual disk manually by copying the virtual disk file, you will need to assign a new UUID to the cloned virtual drive if you want to use the disk in the same virtual machine or even in another (if that one has already been opened, and thus registered, with VirtualBox).

          You can use this command to assign a new UUID to a virtual disk:

          $ VBoxManage internalcommands sethduuid /path/to/disk.vdi 

          Tip: To avoid copying the virtual disk and assigning a new UUID to your file manually you can use VBoxManage clonehd.

          Note: The commands above support all virtual disk formats supported by VirtualBox.

          Tips and tricks

          Import/export VirtualBox virtual machines from/to other hypervisors

          If you plan to use your virtual machine on another hypervisor or want to import in VirtualBox a virtual machine created with another hypervisor, you might be interested in reading the following steps.

          Remove additions

          Guest additions are available in most hypervisor solutions: VirtualBox comes with the Guest Additions, VMware with the VMware Tools, Parallels with the Parallels Tools, etc. These additional components are designed to be installed inside a virtual machine after the guest operating system has been installed. They consist of device drivers and system applications that optimize the guest operating system for better performance and usability by providing these features.

          If you have installed the additions to your virtual machine, please uninstall them first. Your guest, especially if it is using an operating system from the Windows family, might behave weirdly, crash or even might not boot at all if you are still using the specific drivers in another hypervisor.

          Use the right virtual disk format

          This step will depend on the ability to convert the virtual disk image directly or not.

          Automatic tools

          Some companies provide tools which offer the ability to create virtual machines from a Windows or GNU/Linux operating system located either in a virtual machine or even in a native installation. With such a product, you do not need to apply this and the following steps and can stop reading here.

          • Parallels Transporter which is non free, is a product from Parallels Inc. This solution basically consists in an piece of software called agent that will be installed in the guest you want to import/convert. Then, Parallels Transporter, which only works on OS X, will create a virtual machine from that agent which is contacted either by USB or Ethernet network.
          • VMware vCenter Converter which is free upon registration on the VMware webiste, works nearly the same way as Parallels Transporter, but the piece of software that will gather the data to create the virtual machine only works on a Windows platform.
          Manual conversion
          • Importing or exporting a virtual machine from/to a VMware solution is not a problem at all if you use the VMDK or OVF disk format, otherwise converting VMDK to VDI and VDI to VMDK is possible and the aforementioned VMware vCenter Converter tool is available.
          • Importing or exporting from/to QEMU is not a problem neither: some QEMU formats are supported directly by VirtualBox and conversion between QCOW2 to VDI and VDI to QCOW2 is still available if needed.
          • Importing or exporting from/to Parallels hypervisor is the hardest way: Parallels does only support its own HDD format (even the standard and portable OVF format is not supported!).
          • To export your virtual machine to Parallels, you will need to use the Parallels Transporter tool described above.
          • To import your virtual machine to VirtualBox, you will need to use the VMware vCenter Converter described above to convert the virtual machine to the VMware format first. Then, apply the solution to migrate from VMware.
          Create the virtual machine configuration for your hypervisor

          Each hypervisor have their own virtual machine configuration file: .vbox for VirtualBox, .vmx for VMware, a config.pvs file located in the virtual machine bundle ( .pvm file), etc. You will have thus to recreate a new virtual machine in your new destination hypervisor and specify its hardware configuration as close as possible as your initial virtual machine.

          Pay a close attention to the firmware interface (BIOS or UEFI) used to install the guest operating system. While an option is available to choose between these 2 interfaces on VirtualBox and on Parallels solutions, on VMware, you will have to add manually the following line to your .vmx file.

          ArchLinux_vm.vmx
          firmware = "efi"

          Finally, ask your hypervisor to use the existing virtual disk you have converted and launch the virtual machine.

          • On VirtualBox, if you do not want to browse the whole GUI to find the right location to add your new virtual drive device, you can Replace a virtual disk manually from the .vbox file, or use the VBoxManage storageattach described in #Increasing the size of VDI disks or in the VirtualBox manual page.
          • Similarly, in VMware products, you can replace the location of the current virtual disk location by adapting the .vmdk file location in your .vmx configuration file.

          Virtual machine launch management

          Starting virtual machines with a service (autostart)

          Find hereafter the implementation details of a systemd service that will be used to consider a virtual machine as a service.

          /etc/systemd/system/vboxvmservice@.service
          [Unit] Description=VBox Virtual Machine %i Service Requires=systemd-modules-load.service After=systemd-modules-load.service [Service] User=username Group=vboxusers ExecStart=/usr/bin/VBoxManage startvm %i --type startmode ExecStop=/usr/bin/VBoxManage controlvm %i stopmode RemainAfterExit=yes [Install] WantedBy=multi-user.target
          • Replace username with a user that is a member of the vboxusers group. Make sure the user chosen is the same user that will create/import virtual machines, otherwise the user will not see the virtual machine appliances.
          • Replace startmode with a virtual machine frontend type, usually gui , headless or separate
          • Replace stopmode with desired state switch, usually savestate or acpipowerbutton

          Note: If you have multiple virtual machines managed by Systemd and they are not stopping properly, try to add KillMode=none and TimeoutStopSec=40 at the end of [Service] section.

          Enable the vboxvmservice@your_virtual_machine_name systemd unit in order to launch the virtual machine at next boot. To launch it directly, simply start the systemd unit.

          VirtualBox 4.2 introduces a new way for UNIX-like systems to have virtual machines started automatically, other than using a systemd service.

          Starting virtual machines with a keyboard shortcut

          It can be useful to start virtual machines directly with a keyboard shortcut instead of using the VirtualBox interface (GUI or CLI). For that, you can simply define key bindings in .xbindkeysrc . Please refer to Xbindkeys for more details.

          Example, using the Fn key of a laptop with an unused battery key ( F3 on the computer used in this example):

          "VBoxManage startvm 'Windows 7'" m:0x0 + c:244 XF86Battery

          Note: If you have a space in the name of your virtual machine, then enclose it with single apostrophes like made in the example just above.

          Use specific device in the virtual machine

          Using USB webcam / microphone

          Note: You will need to have VirtualBox extension pack installed before following the steps below. See #Extension pack for details.

          1. Make sure the virtual machine is not running and your webcam / microphone is not being used.
          2. Bring up the main VirtualBox window and go to settings for Arch machine. Go to USB section.
          3. Make sure «Enable USB Controller» is selected. Also make sure that «Enable USB 2.0 (EHCI) Controller» is selected too.
          4. Click the «Add filter from device» button (the cable with the ‘+’ icon).
          5. Select your USB webcam/microphone device from the list.
          6. Now click OK and start your virtual machine.

          Note: If your Microphone does not show up in the «Add filter from device» menu, try the USB 3.0 and 1.1 options instead (In Step 3).

          Detecting web-cams and other USB devices

          Note: This will not do much if you are running a Linux/Unix operating system inside of your virtual machine, as most do not have autodetection features.

          If the device that you are looking for does not show up on any of the menus in the section above and you have tried all three USB controller options, boot up your virtual machine three separate times. Once using the USB 1.1 controller, another using the USB 2.0 controller, etc. Leave the virtual machine running for at least 5 minutes after startup. Sometimes Windows will autodetect the device for you. Be sure you filter any devices that are not a keyboard or a mouse so they do not start up at boot. This ensures that Windows will detect the device at start-up.

          Access a guest server

          To access Apache server on a Virtual Machine from the host machine only, simply execute the following lines on the host:

          $ VBoxManage setextradata GuestName "VBoxInternal/Devices/pcnet/0/LUN#0/Config/Apache/HostPort" 8888 $ VBoxManage setextradata GuestName "VBoxInternal/Devices/pcnet/0/LUN#0/Config/Apache/GuestPort" 80 $ VBoxManage setextradata GuestName "VBoxInternal/Devices/pcnet/0/LUN#0/Config/Apache/Protocol" TCP

          where 8888 is the port the host should listen on and 80 is the port the virtual machine will send Apache’s signal on.

          To use a port lower than 1024 on the host machine, changes need to be made to the firewall on that host machine. This can also be set up to work with SSH or any other services by changing «Apache» to the corresponding service and ports.

          Note: pcnet refers to the network card of the virtual machine. If you use an Intel card in your virtual machine settings, change pcnet to e1000 .

          To communicate between the VirtualBox guest and host using ssh, the server port must be forwarded under Settings > Network. When connecting from the client/host, connect to the IP address of the client/host machine, as opposed to the connection of the other machine. This is because the connection will be made over a virtual adapter.

          D3D acceleration in Windows guests

          Recent versions of Virtualbox have support for accelerating OpenGL inside guests. This can be enabled with a simple checkbox in the machine’s settings, right below where video ram is set, and installing the Virtualbox guest additions. However, most Windows games use Direct3D (part of DirectX), not OpenGL, and are thus not helped by this method. However, it is possible to gain accelerated Direct3D in your Windows guests by borrowing the d3d libraries from Wine, which translate d3d calls into OpenGL, which is then accelerated. These libraries are now part of Virtualbox guest additions software.

          After enabling OpenGL acceleration as described above, reboot the guest into safe mode (press F8 before the Windows screen appears but after the Virtualbox screen disappears), and install Virtualbox guest additions, during install enable checkbox «Direct3D support». Reboot back to normal mode and you should have accelerated Direct3D.

          • This hack may or may not work for some games depending on what hardware checks they make and what parts of D3D they use.
          • This was tested on Windows XP, 7 and 8.1. If method does not work on your Windows version please add data here.

          VirtualBox on a USB key

          When using VirtualBox on a USB key, for example to start an installed machine with an ISO image, you will manually have to create VDMKs from the existing drives. However, once the new VMDKs are saved and you move on to another machine, you may experience problems launching an appropriate machine again. To get rid of this issue, you can use the following script to launch VirtualBox. This script will clean up and unregister old VMDK files and it will create new, proper VMDKs for you:

          This article or section needs language, wiki syntax or style improvements. See Help:Style for reference.

          Reason: The following script parses the output of ls, which is very brittle and known to break. (Discuss in Talk:VirtualBox)

          #!/bin/sh # Erase old VMDK entries rm ~/.VirtualBox/*.vmdk # Clean up VBox-Registry sed -i '/sd/d' ~/.VirtualBox/VirtualBox.xml # Remove old harddisks from existing machines find ~/.VirtualBox/Machines -name \*.xml | while read -r file; do line=$(grep -e "type\=\"HardDisk\"" -n "$file" | cut -d ':' -f 1) if [ -n "$line" ]; then sed -i "$"d "$file" sed -i "$"d "$file" sed -i "$"d "$file" fi sed -i "/rg/d" "$file" done # Delete prev-files created by VirtualBox find ~/.VirtualBox/Machines -name \*-prev -exec rm '<>' \; # Recreate VMDKs ls -l /dev/disk/by-uuid | cut -d ' ' -f 9,11 | while read -r ln; do if [ -n "$ln" ]; then uuid=$(echo "$ln" | cut -d ' ' -f 1) device=$(echo "$ln" | cut -d ' ' -f 2 | cut -d '/' -f 3 | cut -b 1-3) # determine whether drive is mounted already checkstr1=$(mount | grep "$uuid") checkstr2=$(mount | grep "$device") checkstr3=$(ls ~/.VirtualBox/*.vmdk | grep "$device") if [ -z "$checkstr1" ] && [ -z "$checkstr2" ] && [ -z "$checkstr3" ]; then VBoxManage internalcommands createrawvmdk -filename ~/.VirtualBox/"$device".vmdk -rawdisk /dev/"$device" -register fi fi done # Start VirtualBox VirtualBox

          Note that your user has to be added to the «disk» group to create VMDKs out of existing drives.

          Run a native Arch Linux installation inside VirtualBox

          If you have a dual boot system between Arch Linux and another operating system, it can become tedious to switch back and forth if you need to work in both. You may also experience performance or compatibility issues when using a virtual machine, which can impact your ability to do certain tasks.

          This guide will let you reuse, in a virtual machine, your native Arch Linux installation when you are running your second operating system. This way, you keep the ability to run each operating system natively, but have the option to run your Arch Linux installation inside a virtual machine.

          Make sure you have a persistent naming scheme

          Depending on your hard drive setup, device files representing your hard drives may appear differently when you will run your Arch Linux installation natively or in virtual machine. This problem occurs when using FakeRAID for example. The fake RAID device will be mapped in /dev/mapper/ when you run your GNU/Linux distribution natively, while the devices are still accessible separately. However, in your virtual machine, it can appear without any mapping in /dev/sdaX for example, because the drivers controlling the fake RAID in your host operating system (e.g. Windows) are abstracting the fake RAID device.

          To circumvent this problem, we will need to use an addressing scheme that is persistent to both systems. This can be achieved using UUIDs. Make sure your boot loader and fstab file is using UUIDs, otherwise fix this issue. Read fstab and Persistent block device naming.

          • Make sure your host partition is only accessible in read only from your Arch Linux virtual machine, this will avoid risk of corruptions if you were to corrupt that host partition by writing on it due to lack of attention.
          • You should NEVER allow VirtualBox to boot from the entry of your second operating system, which, as a reminder, is used as the host for this virtual machine! Take thus a special care especially if your default boot loader/boot manager entry is your other operating system. Give a more important timeout or put it below in the order of preferences.
          Make sure your mkinitcpio image is correct

          Make sure your mkinitcpio configuration uses the HOOK block :

          /etc/mkinitcpio.conf
          . HOOKS .

          If it is not present, add it and regenerate the initramfs.

          Create a virtual machine configuration to boot from the physical drive
          Create a raw disk .vmdk image

          Now, we need to create a new virtual machine which will use a RAW disk as virtual drive, for that we will use a ~ 1Kio VMDK file which will be mapped to a physical disk. Unfortunately, VirtualBox does not have this option in the GUI, so we will have to use the console and use an internal command of VBoxManage .

          Boot the host which will use the Arch Linux virtual machine. The command will need to be adapted according to the host you have.

          On a GNU/Linux host

          There are 3 ways to achieve this: login as root, changing the access right of the device with chmod , adding your user to the disk group. The latter way is the more elegant, let us proceed that way:

          # gpasswd -a your_user disk

          Apply the new group settings with:

          $ newgrp

          Now, you can use the command:

          $ VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk -rawdisk /dev/sdb -register

          Adapt the above command to your need, especially the path and filename of the VMDK location and the raw disk location to map which contain your Arch Linux installation.

          On a Windows host

          Open a command prompt must be run as administrator.

          Tip: On Windows, open your start menu/start screen, type cmd , and type Ctrl+Shift+Enter , this is a shortcut to execute the selected program with admin rights.

          On Windows, as the disk filename convention is different from UNIX, use this command to determine what drives you have in your Windows system and their location:

          # wmic diskdrive get name,size,model
          Model Name Size WDC WD40EZRX-00SPEB0 ATA Device \\.\PHYSICALDRIVE1 4000783933440 KINGSTON SVP100S296G ATA Device \\.\PHYSICALDRIVE0 96024821760 Hitachi HDT721010SLA360 ATA Device \\.\PHYSICALDRIVE2 1000202273280 Innostor Ext. HDD USB Device \\.\PHYSICALDRIVE3 1000202273280

          In this example, as the Windows convention is \\.\PhysicalDriveX where X is a number from 0, \\.\PHYSICALDRIVE1 could be analogous to /dev/sdb from the Linux disk terminology.

          To use the VBoxManage command on Windows, you can either, change the current directory to your VirtualBox installation folder first with cd C:\Program Files\Oracle\VirtualBox\

          # .\VBoxManage.exe internalcommands createrawvmdk -filename C:\file.vmdk -rawdisk \\.\PHYSICALDRIVE1

          or use the absolute path name:

          # "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" internalcommands createrawvmdk -filename C:\file.vmdk -rawdisk \\.\PHYSICALDRIVE1

          On another operating system host

          There are other limitations regarding the aforementioned command when used in other operating systems like OS X, please thus read carefully the manual page, if you are concerned.

          Create the virtual machine configuration file
          • To make use of the VBoxManage command on Windows, you need to change the current directory to your VirtualBox installation folder first: cd C:\Program Files\Oracle\VirtualBox\.
          • Windows makes use of backslashes instead of slashes, please replace all slashes «/» occurrences by backslashes «\» in the commands that follow when you will use them.

          After, we need to create a new machine (replace the virtual_machine_name to your convenience) and register it with VirtualBox.

          $ VBoxManage createvm -name virtual_machine_name -register

          Then, the newly raw disk needs to be attached to the machine. This will depend if your computer or actually the root of your native Arch Linux installation is on an IDE or a SATA controller.

          If you need an IDE controller:

          $ VBoxManage storagectl virtual_machine_name --name "IDE Controller" --add ide $ VBoxManage storageattach virtual_machine_name --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium /path/to/file.vmdk
          $ VBoxManage storagectl virtual_machine_name --name "SATA Controller" --add sata $ VBoxManage storageattach virtual_machine_name --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium /path/to/file.vmdk

          While you continue using the CLI, it is recommended to use the VirtualBox GUI, to personalise the virtual machine configuration. Indeed, you must specify its hardware configuration as close as possible as your native machine: turning on the 3D acceleration, increasing video memory, setting the network interface, etc.

          Finally, you may want to seamlessly integrate your Arch Linux with your host operating system and allow copy pasting between both operating systems. Please refer to VirtualBox/Install Arch Linux as a guest#Install the Guest Additions for that, since this Arch Linux virtual machine is basically an Arch Linux guest.

          Warning: For Xorg to work in natively and in the virtual machine, since obviously it will be using different drivers, it is best if there is no /etc/X11/xorg.conf , so Xorg will pick up everything it needs on the fly. However, if you really do need your own Xorg configuration, maybe is it worth to set your default systemd target to multi-user.target with systemctl isolate graphical.target as root (more details at Systemd#Targets and Systemd#Change current target). In that way, the graphical interface is disabled (i.e. Xorg is not launched) and after you logged in, you can startx > manually with a custom xorg.conf .

          Install a native Arch Linux system from VirtualBox

          In some cases it may be useful to install a native Arch Linux system while running another operating system: one way to accomplish this is to perform the installation through VirtualBox on a raw disk. If the existing operating system is Linux based, you may want to consider following Install from existing Linux instead.

          Now, you should have a working virtual machine configuration whose virtual VMDK disk is tied to a real disk. The installation process is exactly the same as the steps described in VirtualBox/Install Arch Linux as a guest, but #Make sure you have a persistent naming scheme and #Make sure your mkinitcpio image is correct.

          • For BIOS systems and MBR disks, do not install a boot loader inside your virtual machine, this will not work since the MBR is not linked to the MBR of your real machine and your virtual disk is only mapped to a real partition without the MBR.
          • For UEFI systems without CSM and GPT disks, the installation will not work at all since:
          • the ESP partition is not mapped to your virtual disk and Arch Linux requires to have the Linux kernel on it to boot as an EFI application (see EFISTUB for details);
          • and the efivars, if you are installing Arch Linux using the EFI mode brought by VirtualBox, are not the one of your real system: the bootmanager entries will hence not be registered.
          • This is why, it is recommended to create your partitions in a native installation first, otherwize the partitions will not be taken into consideration in your MBR/GPT partition table.

          After completing the installation, boot your computer natively with an GNU/Linux installation media (whether it be Arch Linux or not), chroot into your installed Arch Linux installation and install and configure a boot loader.

          Install MacOS guest

          Before starting the virtual machine, run the following commands on the host machine [3]:

          $ VBoxManage modifyvm "MyMacVM" --cpuid-set 00000001 000106e5 00100800 0098e3fd bfebfbff $ VBoxManage setextradata "MyMacVM" "VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" "iMac11,3" $ VBoxManage setextradata "MyMacVM" "VBoxInternal/Devices/efi/0/Config/DmiSystemVersion" "1.0" $ VBoxManage setextradata "MyMacVM" "VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" "Iloveapple" $ VBoxManage setextradata "MyMacVM" "VBoxInternal/Devices/smc/0/Config/DeviceKey" "ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" $ VBoxManage setextradata "MyMacVM" "VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" 1 $ VBoxManage setextradata "MyMacVM" VBoxInternal2/EfiGopMode 4

          If you use an AMD processor and the first boot gets stuck, you also have to run

          $ VBoxManage modifyvm "MyMacVM" --cpu-profile "Intel Core i7-6700K"
          No keyboard/mouse input when attempting to install Mojave

          If you are attempting to install Mojave, after doing the aforementioned steps, the installer will load up but you might not be able to send keyboard or mouse input. The reason seems to be that Mojave no longer supports the USB 1.1 controllers and in order to fix the issue you need to emulating USB 3.0. To do that first install the VirtualBox Extension pack.

          Then go to Machine > Settings > USB and select USB 3.0. Input should work from this point onwards.

          UEFI interactive shell after restart

          If the installer is unable to properly format the bootable drive during installation and you end up in an UEFI shell, enter the following:

          1. Type exit at the UEFI prompt
          2. Select Boot Maintenance Manager
          3. Select Boot From File

          You will now be brought to couple of obscure PCI paths. The first one is the one that you just attempted to boot from and it did not work. The second (or third) one should be the one with the MacOS recovery partition that you need to load to continue the installation. Click the second Entry. If it is empty, press Esc to go back and select the third entry. Once you get one with folders click though the folders. It should be something like macOS Install Data > Locked Files > Boot Files > boot.efi. Once you click enter on the boot.efi you should boot into the MacOS installer and resume installation. Note that some of the subdirectories might be missing. Remember that you need to get to a boot.efi .[4]

          Move a native Windows installation to a virtual machine

          If you want to migrate an existing native Windows installation to a virtual machine which will be used with VirtualBox on GNU/Linux, this use case is for you. This section only covers native Windows installation using the MSDOS/Intel partition scheme. Your Windows installation must reside on the first MBR partition for this operation to success. Operation for other partitions are available but have been untested (see #Known limitations for details).

          Warning: If you are using an OEM version of Windows, this process is unauthorized by the end user license license. Indeed, the OEM license typically states the Windows install is tied with the hardware together. Transferring a Windows install to a virtual machine removes this link. Make thus sure you have a full Windows install or a volume license model before continuing. If you have a full Windows license but the latter is not coming in volume, nor as a special license for several PCs, this means you will have to remove the native installation after the transfer operation has been achieved.

          A couple of tasks are required to be done inside your native Windows installation first, then on your GNU/Linux host.

          Tasks on Windows

          The first three following points comes from this outdated VirtualBox wiki page, but are updated here.

          • Remove IDE/ATA controllers checks (Windows XP only): Windows memorize the IDE/ATA drive controllers it has been installed on and will not boot if it detects these have changed. The solution proposed by Microsoft is to reuse the same controller or use one of the same serial, which is impossible to achieve since we are using a Virtual Machine. MergeIDE, a German tool, developped upon another other solution proposed by Microsoft can be used. That solution basically consists in taking all IDE/ATA controller drivers supported by Windows XP from the initial driver archive (the location is hard coded, or specify it as the first argument to the .bat script), installing them and registering them with the regedit database.
          • Use the right type of Hardware Abstraction Layer (old 32 bits Windows versions): Microsoft ships 3 default versions: Hal.dll (Standard PC), Halacpi.dll (ACPI HAL) and Halaacpi.dll (ACPI HAL with IO APIC). Your Windows install could come installed with the first or the second version. In that way, please disable the Enable IO/APIC VirtualBox extended feature.
          • Disable any AGP device driver (only outdated Windows versions): If you have the files agp440.sys or intelppm.sys inside the C:\Windows\SYSTEM32\drivers\ directory, remove it. As VirtualBox uses a PCI virtual graphic card, this can cause problems when this AGP driver is used.
          • Create a Windows recovery disk: In the following steps, if things turn bad, you will need to repair your Windows installation. Make sure you have an install media at hand, or create one with Create a recovery disk from Vista SP1, Create a system repair disc on Windows 7 or Create a recovery drive on Windows 8.x).
          Using Disk2vhd to clone Windows partition

          Boot into Windows, clean up the installation (with CCleaner for example), use disk2vhd tool to create a VHD image. Include a reserved system partition (if present) and the actual Windows partition (usually disk C:). The size of Disk2vhd-created image will be the sum of the actual files on the partition (used space), not the size of a whole partition. If all goes well, the image should just boot in a virtual machine and you will not have to go through the hassle with MBR and Windows boot loader, as in the case of cloning an entire partition.

          Tasks on GNU/Linux

          Tip: Skip the partition-related parts if you created VHD image with Disk2vhd.

          • Reduce the native Windows partition size to the size Windows actually needs with ntfsresize available from ntfs-3g . The size you will specify will be the same size of the VDI that will be created in the next step. If this size is too low, you may break your Windows install and the latter might not boot at all.
          # ntfsresize --no-action --size 52Gi /dev/sda1
          • Install VirtualBox on your GNU/Linux host (see #Installation steps for Arch Linux hosts if your host is Arch Linux).
          • Create the Windows disk image from the beginning of the drive to the end of the first partition where is located your Windows installation. Copying from the beginning of the disk is necessary because the MBR space at the beginning of the drive needs to be on the virtual drive along with the Windows partition. In this example two following partitions sda2 and sda3 will be later removed from the partition table and the MBR boot loader will be updated.
          # sectnum=$(( $(cat /sys/block/sda/sda1/start) + $(cat /sys/block/sda/sda1/size) ))

          Using cat /sys/block/sda/sda1/size will output the number of total sectors of the first partition of the disk sda . Adapt where necessary.

          # dd if=/dev/sda bs=512 count=$sectnum | VBoxManage convertfromraw stdin windows.vdi $(( $sectnum * 512 ))
          • Since you created your disk image as root, set the right ownership to the virtual disk image:
          # chown your_user:your_group windows.vdi
          • Create your virtual machine configuration file and use the virtual disk created previously as the main virtual hard disk.
          • Try to boot your Windows virtual machine, it may just work. First though remove and repair disks from the boot process as it may interfere (and likely will) booting into safe-mode.
          • Attempt to boot your Windows virtual machine in safe mode (press the F8 key before the Windows logo shows up). if running into boot issues, read #Fix MBR and Microsoft boot loader. In safe-mode, drivers will be installed likely by the Windows plug-and-play detection mechanism view. Additionally, install the VirtualBox Guest Additions via the menu Devices >Insert Guest Additions CD image. . If a new disk dialog does not appear, navigate to the CD drive and start the installer manually.
          • You should finally have a working Windows virtual machine. Do not forget to read the #Known limitations.
          • Performance tip: according to VirtualBox manual, SATA controller has a better performance than IDE. If you cannot boot Windows off virtual SATA controller right away, it is probably due to the lack of SATA drivers. Attach virtual disk to IDE controller, create an empty SATA controller and boot the virtual machine — Windows should automatically install SATA drivers for the controller. You can then shutdown the virtual machine, detach virtual disk from IDE controller and attach it to SATA controller instead.
          Fix MBR and Microsoft boot loader

          If your Windows virtual machine refuses to boot, you may need to apply the following modifications to your virtual machine.

          • Boot a GNU/Live live distribution inside your virtual machine before Windows starts up.
          • Remove other partitions entries from the virtual disk MBR. Indeed, since we copied the MBR and only the Windows partition, the entries of the other partitions are still present in the MBR, but the partitions are not available anymore. Use fdisk to achieve this for example.
          fdisk ''/dev/sda'' Command (m for help): a Partition number (''1-3'', default ''3''): ''1''
          • Write the updated partition table to the disk (this will recreate the MBR) using the m command inside fdisk .
          • Use testdisk (see here for details) to add a generic MBR:
          # testdisk > Disk /dev/sda. > [Proceed] > [Intel] Intel/PC partition > [MBR Code] Write TestDisk MBR to first sector > Write a new copy of MBR code to first sector? (Y/n) > Y > Write a new copy of MBR code, confirm? (Y/N) > A new copy of MBR code has been written. You have to reboot for the change to take effect. > [OK]
          • With the new MBR and updated partition table, your Windows virtual machine should be able to boot. If you are still encountering issues, boot your Windows recovery disk from on of the previous step, and inside your Windows RE environment, execute the commands described here.
          Known limitations
          • Your virtual machine can sometimes hang and overrun your RAM, this can be caused by conflicting drivers still installed inside your Windows virtual machine. Good luck to find them!
          • Additional software expecting a given driver beneath may either not be disabled/uninstalled or needs to be uninstalled first as the drivers that are no longer available.
          • Your Windows installation must reside on the first partition for the above process to work. If this requirement is not met, the process might be achieved too, but this had not been tested. This will require either copying the MBR and editing in hexadecimal see VirtualBox: booting cloned disk or will require to fix the partition table manually or by repairing Windows with the recovery disk you created in a previous step. Let us consider our Windows installation on the second partition; we will copy the MBR, then the second partition where to the disk image. VBoxManage convertfromraw needs the total number of bytes that will be written: calculated thanks to the size of the MBR (the start of the first partition) plus the size of the second (Windows) partition. < dd if=/dev/sda bs=512 count=$(cat /sys/block/sda/sda1/start) ; dd if=/dev/sda2 bs=512 count=$(cat /sys/block/sda/sda2/size) ; >| VBoxManage convertfromraw stdin windows.vdi $(( ($(cat /sys/block/sda/sda1/start) + $(cat /sys/block/sda/sda2/size)) * 512 )) .

          Run a native Windows installation inside VirtualBox

          Note: The technique outlined in this section only applies to UEFI systems.

          In some cases, it is useful to be able to dual boot with Windows and access the partition in a virtual machine. This process is significantly different from #Move a native Windows installation to a virtual machine in several ways:

          • The Windows partition is not copied to a virtual disk image. Instead, a raw VMDK file is created;
          • Changes in the virtual machine will be mirrored in the partition, and vice versa;
          • OEM licenses should still be satisfied, since the Windows partition still boots directly on the hardware.

          Warning: Some of the commands used here can corrupt either the Windows partition, the Arch Linux partition, or both. Use extreme caution when executing commands, and double check that they are being run in the correct shell. It would be a good idea to have a backup of the entire drive ready before beginning this process.

          Note: Before proceeding be sure to have access to a Windows installation media (such as the Windows 11 ISO).

          Creating the virtual machine

          A VirtualBox virtual machine must be manually created. As of now do not add any storage device any disk to the virtual machine, it will be done manually later.

          Configure the virtual machine with the following settings (settings panel can be opened by clicking the «Settings» button in the main toolbar):

          • View: System:
            • Tab: Motherboard:
              • mark Enable I/O APIC;
              • mark Enable EFI;
              • mark Hardware Clock in UTC Time if is your case.
              • mark Enable PAE/NX;
              • mark Enable Nested VT-x/AMD-V;
              • Choose the paravirtualization interface Hyper-V from the drop down menu;
              • mark Enable Nested Paging.

              Optionally you can enable also the following settings:

              • View: Display
                • Tab: Screen
                  • mark Enable 3D Acceleration. Note that it could cause glitches.

                  Note: The Hyper-V setting is not required in order for the system to operate correctly, but it may help avoid licensing issues.

                  Creating virtual machine disks

                  To access the Windows partitions, create a raw VMDK file pointing to the relevant Windows partitions (root privileges are required to read disk partition table):

                  # VBoxManage createmedium disk -filename VM_DIRECTORY/windows.vmdk --format=VMDK --variant RawDisk --property RawDrive=DISK --property Partitions=RESERVED_PARTITION_NUMBER,BASIC_DATA_PARTITION_NUMBER 

                  Replace capitalized placeholder strings as follow:

                  • VM_DIRECTORY with the path of the virtual machine folder (usually a subdirectory of ~/VirtualBox VMs ;
                  • DISK must be replaced with the block device containing all the Windows partitions (e.g.: /dev/sda or /dev/nvme0n1 );
                  • RESERVED_PARTITION_NUMBER must be replaced with the number of partition labeled «Microsoft reserved partition» (e.g.: if the partition is the /dev/sda2 the number will be 2 );
                  • BASIC_DATA_PARTITION_NUMBER must be replaced with the partition containing the Windows installation (e.g.: if the partition is the /dev/sda3 the number will be 3 );
                  $ sudo VBoxManage createmedium disk -filename "/home/user/VirtualBox VMs/windows.vmdk" --format=VMDK --variant RawDisk --property RawDrive=/dev/nvme0n1 --property Partitions=2,3

                  The command will also create an extra file inside the virtual machine folder, «windows-pt.vmdk», that will be just ignored.

                  Note: windows.vmdk must be re-created if the partition table is changed.
                  Tip:

                  Partition numbers can be found also by running this command and looking at the MIN column:

                  lsblk --output NAME,PARTLABEL,FSTYPE,MAJ:MIN,SIZE
                  NAME PARTLABEL FSTYPE UUID MAJ:MIN SIZE nvme0n1 259:0 931,5G ├─nvme0n1p1 EFI system partition vfat 90DC-A6B3 259:1 100M ├─nvme0n1p2 Microsoft reserved partition 259:2 16M ├─nvme0n1p3 Basic data partition ntfs D2A2A104A2A0EE63 259:3 200G .

                  Now change the virtual disk owner to give access the user and group running VirtualBox.

                  # chown VIRTUALBOX_RUNNING_USER:VIRTUALBOX_RUNNING_GROUP VM_DIRECTORY/windows.vmdk VM_DIRECTORY/windows-pt.vmdk

                  Replace VIRTUALBOX_RUNNING_USER and VIRTUALBOX_RUNNING_GROUP with the user and the group that will run VirtualBox, which most likely will be your user.

                  Allowing VirtualBox to read physical partitions

                  VirtualBox must have raw disk access in order to run a Windows partition. Normally, this would require VirtualBox to be run with full root privileges, but more elegant options are available.

                  Higher security option: using a dedicated group for the Windows partitions

                  Here udev is configured to restrict the access to partitions Windows partitions to the vboxusers group, and then the user running VirtualBox is added to the group.

                  Assigning the disks to the vboxusers group can be done automatically by creating the following file:

                  /etc/udev/rules.d/99-vbox.rules
                  # # Rules to give VirtualBox users raw access to Windows partitions # # Microsoft Reserved partition SUBSYSTEM=="block", ENV=="e3c9e316-0b5c-4db8-817d-f92df00215ae", GROUP="vboxusers" # Windows partition SUBSYSTEM=="block", ENV=="ebd0a0a2-b9e5-4433-87c0-68b6b72699c7", GROUP="vboxusers" # # Rules to give VirtualBox users raw access to Windows disk # # sdb ENV=="WINDOWS_DISK_ID_PART_TABLE_UUID", GROUP="vboxusers"

                  WINDOWS_DISK_ID_PART_TABLE_UUID must be replaced with the value obtained from udevadm info /dev/WINDOWS_DISK (replace WINDOWS_DISK with the disk containing Windows partitions). The UUIDs in these rules correspond to particular GPT partition types while the other capitalized strings are supposed to be written that way, so those does not have to be replaced.

                  Then the user running VirtualBox must be added to the vboxusers group. This can be done with the following command:

                  # usermod -aG vboxusers VIRTUALBOX_RUNNING_USER

                  Replace VIRTUALBOX_RUNNING_USER and with the user that will run VirtualBox, which most likely will be your user.

                  Lower security option: using ‘disk’ group

                  To be able to add the vmdk file in Virtualbox Virtual Media Manager without running VirtualBox as root, the user running VirtualBox need to be in vboxusers and disk groups.

                  # usermod -aG disk,vboxusers VIRTUALBOX_RUNNING_USER

                  Replace VIRTUALBOX_RUNNING_USER and with the user that will run VirtualBox, which most likely will be your user.

                  Warning: Be aware of the potential security implications of this edit, as you are giving your user account full read-write access all storage devices owned by the disk group.

                  Setting up a separate EFI system partition

                  Virtual machine EFI boot files will refer to different disks than the ones in the physical EFI system partition, so VirtualBox must not make use of the latter but instead of an EFI system partition inside a dedicated virtual disk. This disk can be created with the following command:

                  $ VBoxManage createmedium disk --filename VM_DIRECTORY/esp.vmdk --size 512 --format VMDK

                  Replace VM_DIRECTORY with the folder containing the virtual machine being built.

                  Adding virtual disks to the virtual machine

                  Configure the virtual machine storage devices (Settings panel — Storage) as following:

                  • add esp.vmdk as a SATA hard disk attached to the «SATA Port 0»;
                  • add windows.vmdk as a SATA hard disk attached to the «SATA Port 1»;
                  • mount Windows installation iso into the virtual optical drive .
                  • for adding a SATA hard disk use the second button on the right of the «Controller: SATA» device;
                  • the virtual optical drive should already be there as «Optical Drive».
                  Configuring the virtual UEFI firmware and creating Windows boot files

                  Now start the virtual machine and it should automatically boot from Windows installation disk. After choosing the installation locales click on the «Repair your computer» link, then choose «Troubleshoot» and then » Command Prompt» in order to launch a command prompt from the install media.

                  Enter the following commands to create a new GPT table in the esp.vmdk disk and install the Windows boot loader onto it using configuration from the existing Windows partition:

                  X:\ diskpart

                  List all disks identified by the system:

                  DISKPART> list disk

                  The esp.vmkd disk should be labeled as disk 0 due to the fact that was attached to the SATA port 0, ~512 MiB in size and unpartitioned. The windows.vmdk disk should be labeled as disk 1 ; note that the column «Size» displays the disk size, not the partition one.

                  Select the esp.vmdk disk:

                  DISKPART> select Disk 0

                  Now create a GPT partition table, an EFI system partition, big as the whole disk, and assign to it a label and drive letter:

                  DISKPART> clean DISKPART> convert gpt DISKPART> create partition efi size=500 DISKPART> format quick fs=fat32 label="System" DISKPART> assign letter="S"

                  Check that the partition has been correctly created:

                  DISKPART> list volume

                  Our newly created EFI system partition will be labeled as «SYSTEM» with letter as «S».

                  Take note of the Windows installation volume letter because it will be used in next steps. Usually its D but it could be different: you can infer it from its label and its size. The size is the same as the Windows installation partition size on your physical hard disk.

                  DISKPART> exit

                  Install the Windows boot loader into the EFI system partition.

                  D: cd Windows\System32 bcdboot D:\Windows /s S: /f UEFI

                  Now close the command prompt, power off the virtual machine and detach the Windows installation disk (from «Preferences > Devices» remove the optical disk). The virtual machine should now boot from the newly installed boot partition and load the physical Windows installation. It may show some UEFI related errors on the top of the virtual machine window and the first boot may take a while, but if everything has been done correctly you will be able to access your windows installation.

                  Run an entire physical disk in Virtualbox

                  Note: You may refer to Virtualbox official documentation 9.8.1. Using a Raw Host Hard Disk From a Guest.

                  This works the same way as #Run a native Windows installation inside VirtualBox but the vmdk will contain the entire disk rather than one partition, and so you will not need to create a separate ESP or MBR partition as the one in the physical disk will be used.

                  Create the raw disk:

                  # VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk -rawdisk /dev/sdb

                  Then follow the same method as in #Run a native Windows installation inside VirtualBox for the configuration and virtual disk attachement.

                  Set guest starting resolution

                  You can change the BIOS/UEFI booting resolution using VBoxManage tool. For example:

                  $ VBoxManage setextradata "Your Virtual Machine Name" "VBoxInternal2/EfiGraphicsResolution" "2560x1440"

                  Recommended resolutions are 1280×720, 1920×1080, 2048×1080, 2560×1440, 3840×2160, 1280×800, 1280×1024, 1440×900, 1600×900.

                  SSH from host to guest

                  The network tab of the virtual machine settings contains, in «Advanced», a tool to create port forwarding. It is possible to use it to forward the Guest ssh port 22 to a Host port, e.g. 3022 :

                  user@host$ ssh -p 3022 $USER@localhost

                  will establish a connection from Host to Guest.

                  SSHFS as alternative to the shared folder

                  Using this port forwarding and sshfs, it is straightforward to mount the Guest filesystem onto the Host one:

                  user@host$ sshfs -p 3022 $USER@localhost:$HOME ~/shared_folder

                  and then transfer files between both.

                  Troubleshooting

                  Keyboard and mouse are locked into virtual machine

                  This means your virtual machine has captured the input of your keyboard and your mouse. Simply press the right Ctrl key and your input should control your host again.

                  To control transparently your virtual machine with your mouse going back and forth your host, without having to press any key, and thus have a seamless integration, install the guest additions inside the guest. Read from VirtualBox/Install Arch Linux as a guest#Install the Guest Additions if your guest is Arch Linux, otherwise read the official VirtualBox help.

                  No 64-bit operating system client options

                  When launching a virtual machine client, and no 64-bit options are available, make sure your CPU virtualization capabilities (usually named VT-x ) are enabled in the BIOS.

                  If you are using a Windows host, you may need to disable Hyper-V, as it prevents VirtualBox from using VT-x. [5]

                  VirtualBox GUI does not match host GTK theme

                  See Uniform look for Qt and GTK applications for information about theming Qt-based applications like VirtualBox.

                  Cannot send Ctrl+Alt+Fn to guest

                  Your guest operating system is a GNU/Linux distribution and you want to open a new TTY shell by hitting Ctrl+Alt+F2 or exit your current X session with Ctrl+Alt+Backspace . If you type these keyboard shortcuts without any adaptation, the guest will not receive any input and the host (if it is a GNU/Linux distribution too) will intercept these shortcut keys. To send Ctrl+Alt+F2 to the guest for example, simply hit your Host Key (usually the right Ctrl key) and press F2 simultaneously.

                  USB subsystem not working

                  Your user must be in the vboxusers group and you need to install the extension pack if you want USB 2 support. Then you will be able to enable USB 2 in the virtual machine settings and add one or several filters for the devices you want to access from the guest operating system.

                  If VBoxManage list usbhost does not show any USB devices even if run as root, make sure that there is no old udev rules (from VirtualBox 4.x) in /etc/udev/rules.d/ . VirtualBox 5.0 installs udev rules to /usr/lib/udev/rules.d/ . You can use command like pacman -Qo /usr/lib/udev/rules.d/60-vboxdrv.rules to determine if the udev rule file is outdated.

                  Sometimes, on old Linux hosts, the USB subsystem is not auto-detected resulting in an error Could not load the Host USB Proxy service: VERR_NOT_FOUND or in a not visible USB drive on the host, even when the user is in the vboxusers group. This problem is due to the fact that VirtualBox switched from usbfs to sysfs in version 3.0.8. If the host does not understand this change, you can revert to the old behaviour by defining the following environment variable in any file that is sourced by your shell (e.g. your ~/.bashrc if you are using bash):

                  ~/.bashrc
                  VBOX_USB=usbfs

                  Then make sure, the environment has been made aware of this change (reconnect, source the file manually, launch a new shell instance or reboot).

                  Also make sure that your user is a member of the storage group.

                  USB modem not working on host

                  If you have a USB modem which is being used by the guest operating system, killing the guest operating system can cause the modem to become unusable by the host system. Killing and restarting VBoxSVC should fix this problem.

                  USB device crashes guest

                  If attaching a USB device to the guest causes a crash or any other erroneous behavior, try switching the USB controller from USB 2 (EHCI) to USB 3 (xHCI) or vice versa.

                  Host freezes on virtual machine start

                  Generally, such issues are observed after upgrading VirtualBox or Linux kernel. Downgrading them to the previous versions of theirs might solve the problem.

                  Analog microphone not working

                  If the audio input from an analog microphone is working correctly on the host, but no sound seems to get through to the guest, despite the microphone device apparently being detected normally, installing a sound server such as PulseAudio on the host might fix the problem.

                  If after installing PulseAudio the microphone still refuses to work, setting Host Audio Driver (under VirtualBox > Machine > Settings > Audio) to ALSA Audio Driver might help.

                  Problems with images converted to ISO

                  Some image formats cannot be reliably converted to ISO. For instance, ccd2iso ignores .ccd and .sub files, which can result in disk images with broken files.

                  In this case, you will either have to use CDemu for Linux inside VirtualBox or any other utility used to mount disk images.

                  Failed to create the host-only network interface

                  Make sure all required kernel modules are loaded. See #Load the VirtualBox kernel modules.

                  If all required kernel modules are loaded and you are still unable to create the host-only adapter, navigate to File > Host Network Manager and click the Create button to add the network interface.

                  Failed to insert module

                  When you get the following error when trying to load modules:

                  Failed to insert 'vboxdrv': Required key not available

                  Sign your modules or disable CONFIG_MODULE_SIG_FORCE in your kernel config.

                  VBOX_E_INVALID_OBJECT_STATE (0x80BB0007)

                  This can occur if a virtual machine is exited ungracefully. Run the following command:

                  $ VBoxManage controlvm virtual_machine_name poweroff

                  NS_ERROR_FAILURE and missing menu items

                  This error might appear if virtualbox-ext-oracle AUR has not been updated and becomes incompatible with a newly released virtualbox version

                  This error also happens sometimes when selecting QCOW/QCOW2/QED disk format when creating a new virtual disk.

                  If you encounter this message the first time you start the virtual machine:

                  Failed to open a session for the virtual machine debian. Could not open the medium '/home/. /VirtualBox VMs/debian/debian.qcow'. QCow: Reading the L1 table for image '/home/. /VirtualBox VMs/debian/debian.qcow' failed (VERR_EOF). VD: error VERR_EOF opening image file '/home/. /VirtualBox VMs/debian/debian.qcow' (VERR_EOF). Result Code: NS_ERROR_FAILURE (0x80004005) Component: Medium

                  Exit VirtualBox, delete all files of the new machine and from VirtualBox configuration file remove the last line in MachineRegistry menu (or the offending machine you are creating):

                  ~/.config/VirtualBox/VirtualBox.xml
                  . " src="https://wiki.archlinux.org/home/void/VirtualBox%20VMs/debian/debian.vbox"/> " src="https://wiki.archlinux.org/home/void/VirtualBox%20VMs/ubuntu/ubuntu.vbox"/> " src="https://wiki.archlinux.org/home/void/VirtualBox%20VMs/lastvmcausingproblems/lastvmcausingproblems.qcow"/>  .

                  OpenBSD unusable when virtualisation instructions unavailable

                  While OpenBSD is reported to work fine on other hypervisors without virtualisation instructions (VT-x AMD-V) enabled, an OpenBSD virtual machine running on VirtualBox without these instructions will be unusable, manifesting with a bunch of segmentation faults. Starting VirtualBox with the -norawr0 argument may solve the problem. You can do it like this:

                  $ VBoxSDL -norawr0 -vm name_of_OpenBSD_virtual_machine 

                  Windows: «The specified path does not exist. Check the path and then try again.»

                  This error message may appear when running an .exe file which requires administrator privileges from a shared folder in windows guests. [6]

                  As a workaround, copy the file to the virtual drive or use UNC paths ( \\vboxsvr ). See [7] for more information.

                  Windows 8.x error code 0x000000C4

                  If you get this error code while booting, even if you choose operating system type Win 8, try to enable the CMPXCHG16B CPU instruction:

                  $ vboxmanage setextradata virtual_machine_name VBoxInternal/CPUM/CMPXCHG16B 1

                  Windows 8, 8.1 or 10 fails to install, boot or has error «ERR_DISK_FULL»

                  Update the virtual machine’s settings by going to Settings > Storage > Controller:SATA and check Use Host I/O Cache.

                  WinXP: Bit-depth cannot be greater than 16

                  If you are running at 16-bit color depth, then the icons may appear fuzzy/choppy. However, upon attempting to change the color depth to a higher level, the system may restrict you to a lower resolution or simply not enable you to change the depth at all. To fix this, run regedit in Windows and add the following key to the Windows XP virtual machine’s registry:

                  [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services] "ColorDepth"=dword:00000004

                  Then update the color depth in the «desktop properties» window. If nothing happens, force the screen to redraw through some method (i.e. Host+f to redraw/enter full screen).

                  Windows: Screen flicker if 3D acceleration enabled

                  VirtualBox > 4.3.14 has a regression in which Windows guests with 3D acceleration flicker. Since r120678 a patch has been implemented to recognize an environment variable setting, launch VirtualBox like this:

                  $ CR_RENDER_FORCE_PRESENT_MAIN_THREAD=0 VirtualBox

                  Make sure no VirtualBox services are still running. See VirtualBox bug 13653.

                  Cannot launch VirtualBox with Wayland: Segmentation fault

                  This problem is caused by Qt detecting Wayland (e.g., if XDG_SESSION_TYPE=wayland ), while VirtualBox does not work on Wayland yet. See FS#58761 and the upstream bug.

                  The Qt platform detection can be disabled and X11 forced over Wayland by setting the environment variable QT_QPA_PLATFORM=xcb . To not affect the other Qt applications (which usually work well with Wayland), QT_QPA_PLATFORM=xcb should only be set when launching VirtualBox.

                  If starting through the desktop entry, follow the instructions in Desktop entries#Modify environment variables and change the lines starting with Exec=VirtualBox . to Exec=env QT_QPA_PLATFORM=xcb VirtualBox . . If starting from the shell, alias (Bash#Aliases) virtualbox to env QT_QPA_PLATFORM=xcb virtualbox .

                  Note: If you have mouse or keyboard related issue in Wayland, you can try above setting too.

                  Random freezing in guests with Intel GPU

                  With Intel CPU and graphics, allocating more processors for the guest can lower render performance, thus cause random freezing. Allocating less processors can help.

                  Unable to view desktop in fullscreen mode

                  Disable the Mini Toolbar by selecting Machine > Settings, select the User Interface tab and uncheck the Mini Toolbar checkbox

                  Random crashes with Windows 10 guest operating system with Intel Tiger Lake chipset

                  Disable split lock detection by adding split_lock_detect=off to the kernel parameters.

                  Details are described in VirtualBox’s Ticket #20180.

                  Failed to save the settings when enabling Secure Boot

                  In VirtualBox 7.0.0, enabling Secure Boot in a virtual machine that was created in a previous VirtualBox version will fail with a nondescript error (FS#76234):

                  Failed to save the settings.

                  The solution is to click the Reset Keys to Default button right below the Enable Secure Boot checkbox.

                  Failed to start VirtualBox machine after using Android Studio emulator

                  KVM and VirtualBox kernel modules can be loaded but not used simultaneously. Android Studio emulator is a QEMU emulator, which uses KVM for acceleration. So Android Studio emulator and VirtualBox machine (if hardware acceleration is enabled) cannot run at the same time. We have to use one after the other stopped completely.

                  Sometimes, VirtualBox kernel module can still be used unexpectedly by some process, and keep all VirtualBox machines failing to start, the error message on VirtualBox GUI is «A critical error has occurred».

                  At this time, we can check and reload VirtualBox kernel modules using vboxreload as root. If it saying some modules is still be in use, you need to manually kill related process and rerun the command.

                  See also

                  • VirtualBox User Manual
                  • Wikipedia:VirtualBox

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *