Difference between revisions of "VirtualBox (Русский)"

From ArchWiki
Jump to navigation Jump to search
(update Pkg/AUR templates)
Tag: wiki-scripts
 
(160 intermediate revisions by 17 users not shown)
Line 1: Line 1:
[[Category:Emulators (Русский)]]
 
 
[[Category:Hypervisors (Русский)]]
 
[[Category:Hypervisors (Русский)]]
 +
[[Category:Oracle (Русский)]]
 
[[Category:Русский]]
 
[[Category:Русский]]
 
[[cs:VirtualBox]]
 
[[cs:VirtualBox]]
Line 12: Line 12:
 
[[ja:VirtualBox]]
 
[[ja:VirtualBox]]
 
[[pt:VirtualBox]]
 
[[pt:VirtualBox]]
[[zh-CN:VirtualBox]]
+
[[zh-hans:VirtualBox]]
 
{{Unmaintained (Русский)}}
 
{{Unmaintained (Русский)}}
{{Translateme (Русский)|Страница была полностью устаревшей. Весь старый контент был удалён и заменён английским новым контентом (на момент 13 января 2015).}}
 
 
{{Related articles start (Русский)}}
 
{{Related articles start (Русский)}}
{{Related|:Category:Hypervisors}}
+
{{Related|:Category:Hypervisors (Русский)}}
 
{{Related|PhpVirtualBox}}
 
{{Related|PhpVirtualBox}}
 
{{Related|Moving an existing install into (or out of) a virtual machine}}
 
{{Related|Moving an existing install into (or out of) a virtual machine}}
Line 25: Line 24:
 
Чтобы интегрировать в гостевую систему функции хост системы, такие как общие папки и общий буфер обмена, видео ускорение и режим бесшовной интеграции окон, для некоторых гостевых операционных систем предоставляются ''дополнения гостевой ОС''.
 
Чтобы интегрировать в гостевую систему функции хост системы, такие как общие папки и общий буфер обмена, видео ускорение и режим бесшовной интеграции окон, для некоторых гостевых операционных систем предоставляются ''дополнения гостевой ОС''.
  
== Установка по шагам ==
+
== Пошаговая установка на хост-компьютер под управлением Arch Linux==
  
Для того, чтобы запустить виртуальную машину под VirtualBox, выполните следующие действия по установке.
+
Для запуска виртуальной машины под VirtualBox на хост-компьютере под управлением Arch Linux, выполните следующие действия по установке пакетов.
  
 
=== Установка базовых пакетов ===
 
=== Установка базовых пакетов ===
 +
Установите пакет {{Pkg|virtualbox}}. {{Pkg|virtualbox-host-dkms}} будет установлен в качестве необходимой зависимости.
 +
Также нужно установить пакеты с заголовками для установленных ядер [https://lists.archlinux.org/pipermail/arch-dev-public/2016-March/027808.html]:
  
Сначала, с [[Official Repositories (Русский)|официального репозитория]], установите пакет {{Pkg|virtualbox}}, который содержит набор VirtualBox с SDL и инструментами для работы через консоль. Пакет {{Pkg|virtualbox}} устанавливается с модулем {{Pkg|virtualbox-host-modules}} в качестве необходимой зависимости.
+
* {{Pkg|linux}} kernel: {{Pkg|linux-headers}}
 +
* {{Pkg|linux-lts}} kernel: {{Pkg|linux-lts-headers}}
 +
* {{Pkg|linux-zen}} kernel: {{Pkg|linux-zen-headers}}
 +
* {{Pkg|linux-grsec}}{{Broken package link (Русский)|replaced by {{Pkg|linux-hardened}}}} kernel: {{Pkg|linux-grsec-headers}}{{Broken package link (Русский)|package not found}}
  
Вы можете установить {{Pkg|qt4}} в качестве опциональной зависимости для использования графического интерфейса, который базируется на [[Qt]]. Это не обязяательно, если вы хотите использовать VirtualBox только через консоль. [[#Use the right front-end|Смотрите ниже, чтобы узнать различия]].
+
Вы можете установить {{AUR|qt4}} в качестве опциональной зависимости для использования графического интерфейса, который базируется на [[Qt]]. Это не обязательно, если вы хотите использовать VirtualBox только через консоль. [[#Правильное использование в фронт-энде|Смотрите ниже, чтобы узнать различия]].
  
=== Install the VirtualBox kernel modules ===
+
=== Установка модулей ядра VirtualBox ===
  
Next, to fully virtualize your guest installation, VirtualBox provides the following [[kernel modules]]: {{ic|vboxdrv}}, {{ic|vboxnetadp}}, {{ic|vboxnetflt}}, and {{ic|vboxpci}}. These must be added to your host kernel.
+
Чтобы полностью виртуализировать гостевую ОС, VirtualBox предоставляет следующие [[Kernel_modules_(Русский)|модули ядра]]: {{ic|vboxdrv}}, {{ic|vboxnetadp}}, {{ic|vboxnetflt}}, и {{ic|vboxpci}}. Они должны быть добавлены к вашему хост ядру.  
  
The binary compatibility of kernel modules depends on the API of the kernel against which they have been compiled. The problem with the Linux kernel is that these interfaces might not be the same from one kernel version to another. In order to avoid compatibility problems and subtle bugs, each time the Linux kernel is upgraded, it is advised to recompile the kernel modules against the Linux kernel version that has just been installed. This is what Arch Linux packagers actually do with the VirtualBox kernel modules packages: each time a new Arch Linux kernel is released, the Virtualbox modules are upgraded accordingly.
+
Бинарная совместимость модулей ядра зависит от API ядра, на котором они были собраны.
 +
API может не совпадать в разных версиях ядра. Чтобы избежать проблем совместимости и багов, каждый раз при обновлении ядра Linux рекомендуется перекомпилировать модули ядра с обновленным ядром. Вместе с обновлением ядра в репозиториях Arch Linux обновляются также и модули Virtualbox, так что достаточно обновиться через пакетный менеджер.
  
Therefore, if you are using a kernel from the [[official repositories]] or a custom one (self-compiled or installed from the [[AUR]]), the kernel module package you will need to install will thus vary.
+
Если вы используете ядро из [[Official repositories (Русский)|официального репозитория]] или стороннее (скомпилированное самостоятельно или установленное из [[Arch_User_Repository_(Русский)|AUR]]), то необходимо тем же способом переустановить ядро.
  
==== Hosts running an official kernel ====
+
==== Использование различных версий ядра Linux на хост-машине ====
  
* If you are using the {{Pkg|linux}} kernel, make sure the {{pkg|virtualbox-host-modules}} package is still installed. The latter has been installed when you installed the {{Pkg|virtualbox}} package.
+
* Если вы используете ядро {{Pkg|linux}}, убедитесь, что пакет {{pkg|virtualbox-host-modules}}{{Broken package link (Русский)|replaced by {{Pkg|virtualbox-host-modules-arch}}}} установлен. По умолчанию последняя версия этого пакета устанавливается как зависимость {{Pkg|virtualbox}}.
* If you are using the LTS version of the kernel ({{pkg|linux-lts}}), you need to install the {{pkg|virtualbox-host-modules-lts}} package. {{Pkg|virtualbox-host-modules}} can now be removed if you want.
+
* Если вы используете LTS версию ядра ({{pkg|linux-lts}}), тогда вам нужно установить пакет {{AUR|virtualbox-host-modules-lts}}. Пакет {{Pkg|virtualbox-host-modules}}{{Broken package link (Русский)|replaced by {{Pkg|virtualbox-host-modules-arch}}}} после этого можно удалить.
* If you are using the {{aur|linux-ck}} kernel, build the {{aur|virtualbox-ck-host-modules}} package.
+
* Если вы используете ядро {{aur|linux-ck}}, установите пакет {{aur|virtualbox-ck-host-modules}}.
  
==== Hosts running a custom kernel ====
 
  
{{Merge|Dynamic Kernel Module Support|The general tips on DKMS usage do not belong on this page.}}
+
==== Обновление ядра Linux на хост-машине ====
 +
После обновления ядра выполните команду
  
If you use or intend to use a self-compiled kernel from sources, you have to know that VirtualBox does not require any virtualization modules (e.g. virtuo, kvm,...). The VirtualBox kernel modules provide all the necessary for VirtualBox to work properly. You can thus disable in your kernel ''.config'' file these virtualization modules if you do not use other hypervisors like Xen, KVM or QEMU.
+
# sudo /usr/bin/rcvboxdrv
  
The {{ic|virtualbox-host-modules}} package works fine with custom kernels of the same version of the Arch Linux stock kernel such as {{AUR|linux-ck}}. Since the {{ic|virtualbox-host-modules}} comes with the official Arch Linux kernel ({{Pkg|linux}}) as a dependency and if you do not use that kernel, install {{Pkg|virtualbox-host-dkms}} instead.
+
для рекомпиляции модулей ядра.
  
If you are using a custom kernel which is not of the same version of the Arch Linux stock one, you will have to install the {{Pkg|virtualbox-host-dkms}} too. The latter comes bundled with the source of the VirtualBox kernel modules that will be compiled to generate these modules for your kernel.
+
==== Стороннее ядро на хост-машине ====
  
As the {{Pkg|virtualbox-host-dkms}} package requires compilation, make sure you have the kernel headers corresponding to your custom kernel version to prevent this error from happening {{ic|Your kernel headers for kernel ''your custom kernel version'' cannot be found at /usr/lib/modules/''your custom kernel version''/build or /usr/lib/modules/''your custom kernel version''/source}}.
+
{{Translateme (Русский)|Общие советы по использованию DKMS не принадлежат к этой странице.}}
* If you use a self-compiled kernel and have used {{ic|make modules_install}} to install its modules, folders {{ic|/usr/lib/modules/''your custom kernel version''/build}} and {{ic|(...)/source}} will be symlinked to your kernel sources. These will act as the kernel headers you need. If you have not removed these kernel sources yet, you have nothing to do.
+
 
* If you use a custom kernel from [[AUR]], make sure the package {{Pkg|linux-headers}} is installed.
+
Если вы используете или планируете использовать самостоятельно собранное ядро, вы должны знать, что VirtualBox не требует каких-либо модулей виртуализации (например, virtio, KVM, ...). Модули ядра VirtualBox обеспечивают все необходимое для нормальной работы. Таким образом, вы можете отключить в вашем ядре ''.config''-файл модулей виртуализации, если они не требуются другим гипервизорам (например, Xen, KVM или QEMU).
 +
 
 +
Пакет {{ic|virtualbox-host-modules}} отлично работает с пользовательской конфигурацией стокового ядра Arch Linux, такого как {{AUR|linux-ck}}. {{ic|virtualbox-host-modules}} поставляется с официальным ядром Arch Linux ({{Pkg|linux}}) в зависимостях, и если вы используете иное ядро, необходимо установить {{Pkg|virtualbox-host-dkms}}.
 +
 
 +
Если вы используете самостоятельно собранное ядро, версия которого не совпадает с версией стокового ядра Arch Linux , нужно установить {{Pkg|virtualbox-host-dkms}}. Он поставляется в комплекте с исходниками модулей ядра VirtualBox.
 +
 
 +
Пакет {{Pkg|virtualbox-host-dkms}} требует компиляции. Проверьте наличие заголовков ядра, соответствующих вашей версии пользовательского ядра, чтобы избежать  ошибки {{ic|Your kernel headers for kernel ''your custom kernel version'' cannot be found at /usr/lib/modules/''your custom kernel version''/build or /usr/lib/modules/''your custom kernel version''/source}}
 +
 
 +
* Если вы используете самостоятельно собранное ядро и использовали {{ic|make modules_install}} для установки модулей, директории {{ic|/usr/lib/modules/''your custom kernel version''/build}} и {{ic|(...)/source}} будут символическими ссылками на исходники ядра. Они могут использоваться в качестве заголовков ядра в случае необходимости.  
 +
* Если вы используете ядро из [[AUR]] репозитория, убедитесь, что установлен пакет {{Pkg|linux-headers}}.
 +
 
 +
После того, как {{Pkg|virtualbox-host-dkms}} установится, сгенерируйте модули ядра для пользовательского ядра следующей командой:
  
Once {{Pkg|virtualbox-host-dkms}} is installed, simply generate the kernel modules for your custom kernel by running the following command structure:
 
 
  # dkms install vboxhost/''virtualbox-host-source version'' -k ''your custom kernel version''/''your architecture''
 
  # dkms install vboxhost/''virtualbox-host-source version'' -k ''your custom kernel version''/''your architecture''
  
{{Tip|Use this all-in-one command instead, if you do not want to adapt the above command:
+
{{tip_(Русский)| Используйте эту команду вместо предыдущей, если вы не хотите её адаптировать:
 
{{bc|<nowiki># dkms install vboxhost/$(pacman -Q virtualbox|awk '{print $2}'|sed 's/\-.\+//') -k $(uname -rm|sed 's/\ /\//')</nowiki>}}
 
{{bc|<nowiki># dkms install vboxhost/$(pacman -Q virtualbox|awk '{print $2}'|sed 's/\-.\+//') -k $(uname -rm|sed 's/\ /\//')</nowiki>}}
 
}}
 
}}
  
To automatically recompile the VirtualBox kernel modules when their sources get upgraded (i.e. when the {{Pkg|virtualbox-host-dkms}} package gets upgraded) and avoid to type again the above {{ic|dkms install}} command manually afterwards, enable the {{ic|dkms}} service with:
+
 
 +
Чтобы автоматически перекомпилировать модули ядра VirtualBox, когда их исходники обновится (т.е. повысится версия пакета {{Pkg|virtualbox-host-dkms}}) и чтобы не повторять впоследствии вручную {{ic|dkms install}}, включите {{ic|dkms}} сервис командой:
 
  # systemctl enable dkms.service
 
  # systemctl enable dkms.service
  
If this service is not enabled while the {{Pkg|virtualbox-host-dkms}} package is being updated, the VirtualBox modules will not be updated and you will have to type in manually the {{ic|dkms install}} command described above to compile the latest version of the Virtualbox kernel modules. If you do not want to type in manually this command, if the {{ic|dkms}} service is automatically loaded at startup, you just need to reboot and your VirtualBox modules will be recompiled silently.
+
При включенной службе {{ic|dkms}} для обновления модулей можно перезагрузить компьютер. Если же вы не хотите включать эту службу, то нужно выполнять команду {{ic|dkms install}} каждый раз при обновлении {{Pkg|virtualbox-host-dkms}}. В противном случае модули не обновятся, и есть немалая возможность получить нерабочий VirtualBox.
  
However, if you want to keep this daemon disabled, you can use an [[mkinitcpio|initramfs hook]] that will automatically trigger the {{ic|dkms install}} command described above at boot time. This will require a reboot to recompile the VirtualBox modules. To enable this hook, install the {{AUR|vboxhost-hook}} package from the [[Arch User Repository|AUR]] and add {{ic|vboxhost}} to your HOOKS array in {{ic|/etc/mkinitcpio.conf}}. Again, make sure the right linux headers are available for the new kernel otherwise the compilation will fail.
+
Однако, если вы не хотите включать этот сервис (например, для оптимизации systemd) можно также использовать [[mkinitcpio|initramfs hook]], который будет автоматически запускать {{ic|dkms install}} во время загрузки. Он требует перезагрузки для перекомпиляции модулей VirtualBox. Чтобы включить этот хук, нужно установить пакет {{AUR|vboxhost-hook}}{{Broken package link (Русский)|{{aur-mirror (Русский)|vboxhost-hook}}}} из [[AUR]] и добавить {{ic|vboxhost}} в {{ic|/etc/mkinitcpio.conf}}. Опять же, убедитесь, что заголовки Linux доступны для нового ядра: в противном случае компиляция не удастся.
  
{{Tip|Like the {{ic|dkms}} command, the {{ic|vboxhost}} hook will tell you if anything goes wrong during the recompilation of the VirtualBox modules.}}
+
{{tip_(Русский) | Ровно как и команда {{ic|dkms}}, {{ic|vboxhost}} хук выведет ошибку, если что-то пойдет не так во время перекомпиляции модулей VirtualBox.}}
  
=== Load the VirtualBox kernel modules ===
+
=== Загрузка модулей ядра VirtualBox ===
  
Among the [[kernel modules]] VirtualBox uses, there is a mandatory module named {{ic|vboxdrv}}, which must be loaded before any virtual machines can run. It can be automatically loaded when Arch Linux starts up, or it can be loaded manually when necessary.
+
Среди используемых [[Kernel_modules_(Русский)|модулей ядра]] VirtualBox, есть обязательный модуль {{ic|vboxdrv}}, который должен быть загружен перед стартом любой виртуальной машины. Он может быть загружен автоматически при старте Arch Linux, или, при необходимости, его можно загрузить вручную.
  
To load the module manually:
+
Для загрузки модуля вручную выполните следующую команду:
 
  # modprobe vboxdrv
 
  # modprobe vboxdrv
  
To load the VirtualBox module at boot time, refer to [[Kernel_modules#Loading]] and create a {{ic|*.conf}} file (e.g. {{ic|virtualbox.conf}}) in {{ic|/etc/modules-load.d/}} with the line:
+
Для автоматической загрузки модуля VirtualBox при старте, посмотрите [[Kernel_modules_(Русский)#Автоматическое управление модулями|Модули ядра#Автоматическое управление модулями]] и создайте файл {{ic|*.conf}} (например {{ic|virtualbox.conf}}) в каталоге {{ic|/etc/modules-load.d/}} с записью:
 
{{hc|/etc/modules-load.d/virtualbox.conf|
 
{{hc|/etc/modules-load.d/virtualbox.conf|
 
vboxdrv}}
 
vboxdrv}}
  
The following modules are optional but are recommended if you do not want to be bothered in some advanced configurations (precised here after): {{ic|vboxnetadp}}, {{ic|vboxnetflt}} and {{ic|vboxpci}}.
+
=== Дополнительные модули VirtualBox ===
 +
 
 +
Следующие модули не являются обязательными, но рекомендуются, если вы не хотите проблем с некоторыми конфигурациями (подробнее смотрите ниже): {{ic|vboxnetadp}}, {{ic|vboxnetflt}} и {{ic|vboxpci}}.
 +
 
 +
* {{ic|vboxnetadp}} и {{ic|vboxnetflt}} необходимы, если вы собираетесь использовать [https://www.virtualbox.org/manual/ch06.html#network_hostonly "Локальную виртуальную сеть"]. Точнее, {{ic|vboxnetadp}} нужен для создания интерфейса в глобальных настройках VirtualBox, и {{ic|vboxnetflt}} нужен для запуска виртуальной машины с использованием этого интерфейса.
 +
 
 +
* {{ic|vboxpci}} необходим, когда вашей виртуальной машине нужно получить доступ к PCI устройству на вашей машине.
  
* {{ic|vboxnetadp}} and {{ic|vboxnetflt}} are both needed when you intend to use the [https://www.virtualbox.org/manual/ch06.html#network_hostonly "Host-only networking"] feature. More precisely, {{ic|vboxnetadp}} is needed to create the host interface in the VirtualBox global preferences, and {{ic|vboxnetflt}} is needed to launch a virtual machine using that network interface.
+
Для работы данных модулей выполните команду
  
* {{ic|vboxpci}} is needed when your virtual machine needs to pass through a PCI device on your host.
+
# pacman -S net-tools
  
{{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 {{ic|vboxreload}} as root.}}
+
И создайте  файл {{ic|vbox-other-modules.conf}} в каталоге {{ic|/etc/modules-load.d/}} с записью
  
Finally, if you use the aforementioned "Host-only networking" feature, make sure {{pkg|net-tools}} is installed. VirtualBox actually uses {{ic|ifconfig}} and {{ic|route}} to assign the IP and route to the host interface configured with {{ic|VBoxManage hostonlyif}} or via the GUI in ''Settings > Network > Host-only Networks > Edit host-only network (space) > Adapter''.
+
{{hc|/etc/modules-load.d/vbox-other-modules.conf|
 +
vboxnetadp vboxnetflt vboxpci}}
  
=== Add usernames to the vboxusers group ===
+
{{note_(Русский)|Если модули ядра VirtualBox были загружены в ядро пока вы обновляли модули, то вы должны загрузить их вручную для использования новой, обновленной версии. Что бы это сделать, запустите
  
To use the USB ports of your host machine in your virtual machines, add to the {{ic|vboxusers}} [[group]] the usernames that will be authorized to use this feature. The new group does not automatically apply to existing sessions; the user has to log out and log in again, or start a new environment with the {{ic|newgrp}} command or with {{ic|sudo -u $USER -s}}. To add the current user to the {{ic|vboxusers}} group, type:
+
# vboxreload
 +
 
 +
}}
 +
 
 +
VirtualBox использует {{ic|ifconfig}} и {{ic|route}}, чтобы назначить IP и маршрут до интерфейса хоста, настроенного с помощью {{ic|VBoxManage hostonlyif}} или с помощью GUI  ''Settings > Network > Host-only Networks > Edit host-only network (space) > Adapter''.
 +
 
 +
 
 +
=== Добавление пользователей в группу vboxusers ===
 +
 
 +
Чтобы использовать USB-порты хост-системы в виртуальных машинах, нужно добавить в [[groups_(Русский)|группу]] {{ic|vboxusers}} имена пользователей, которые смогут получить доступ к USB-портам. Новая группа не будет автоматически применяться к существующим сеансам. Пользователь должен перелогиниться или добавить пользователя в новую группу в текущей сессии командой {{ic|newgrp}} или {{ic|sudo -u $USER -s}}. Для добавления текущего пользователя в группу {{ic|vboxusers}} нужно выполнить:
 
  # gpasswd -a $USER vboxusers
 
  # gpasswd -a $USER vboxusers
  
=== Guest additions disc ===
+
=== Образ диска с гостевыми дополнениями  ===
  
It is also recommended to install the {{Pkg|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 {{ic|/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.
+
Для корректной работы VirtualBox рекомендуется установить пакет {{Pkg|virtualbox-guest-iso}} в хост-системе. Этот пакет создаёт образ диска, который может быть использован для установки гостевых дополнений в гостевых системах, отличных от Arch Linux.'' .iso '' образ будет находиться в {{ic|/usr/lib/virtualbox/additions/VBoxGuestAdditions.iso}} и может быть установлен вручную после подключения образа в виртуальной машине.
  
=== Extension pack ===
+
=== Пакет дополнений ===
  
Since VirtualBox 4.0, non-GPL components have been split from the rest of the application. Despite being released under a non-free license and '''being only available for personal use''', you might be interested in installing the Oracle Extension Pack which provides [https://www.virtualbox.org/manual/ch01.html#intro-installing additional features]. To avoid manual manipulation, the {{aur|virtualbox-ext-oracle}} package is available on the [[AUR]], and a prebuilt version can be found in the [[Unofficial user repositories#seblu|seblu]] repository.
+
Начиная с версии VirtualBox 4.0, компоненты, не распространяющиеся под лицензией GPL были отделены от основной части приложения. Несмотря на то, что данные компоненты выпущены под несвободной лицензией и '''доступны только для личного использования''', вам может понадобиться установка Oracle Extension Pack, который обеспечивает [https://www.virtualbox.org/manual/ch01.html#intro-installing дополнительный функционал]. {{aur|virtualbox-ext-oracle}} пакет доступен на [[AUR]], а нестабильная версия может быть найдена в репозитории [[Unofficial user repositories#seblu|seblu]].
  
If you prefer to use the traditional and manual way: download the extension manually and install it via the GUI (''Settings > Extensions'') or via  {{ic|VBoxManage extpack install <.vbox-extpack>}}, make sure you have a toolkit (like [[Polkit]], gksu, etc.) to grant privileged access to VirtualBox. The installation of this extension [https://www.virtualbox.org/ticket/8473 requires root access].
+
Если вы предпочитаете использовать ручной способ, можно скачать пакет дополнений вручную и установить его с помощью графического интерфейса (''Настройки > Расширения'') или с помощью команды {{ic|VBoxManage extpack install <.vbox-extpack>}}. Предварительно убедитесь, что у вас установлен инструментарий (например, [[Polkit]], gksu и т.д.) для предоставления привилегированного доступа к VirtualBox, так как установка этого пакета [https://www.virtualbox.org/ticket/8473 требует прав суперпользователя].
  
=== Use the right front-end ===
+
=== Правильное использование в фронт-энде ===
  
Now, you are ready to use VirtualBox. Congratulations!
+
Теперь вы готовы использовать VirtualBox. Поздравляем!
  
Multiple front-ends are available to you of which two are available by default:
+
Вы можете использовать несколько удобных команд VirtualBox:
* If you want to use VirtualBox in command-line only (only launch and change settings of existing virtual machines), you can use the {{ic|VBoxSDL}} command. VBoxSDL does only provide a simple window that contains only the ''pure'' virtual machine, without menus or other controls.
+
* Если вы хотите использовать VirtualBox в командной строке (только запускать и изменять настройки существующих виртуальных машин), вы можете использовать команду {{ic|VBoxSDL}}. VBoxSDL создаёт простое окно, которое содержит только ''чистую'' виртуальную машину, без меню или других элементов управления (фрейм-буфер).
* If you want to use VirtualBox in command-line without any GUI running (e.g. on a server) to create, launch and configure virtual machines, use the {{ic|VBoxHeadless}} which produces no visible output on the host at all, but instead only delivers VRDP data.
+
* Если вы хотите использовать VirtualBox в командной строке без любого GUI-интерфейса (например, на сервере) для создания, запуска и настройки виртуальных машин, используйте {{ic|VBoxHeadless}}, который не производит никакого видимого вывода на хост-машине, а только предоставляет данные VRDP.
  
If you installed the {{Pkg|qt4}} optional dependency, you also have a nice looking GUI interface with menus which is usable with the mouse.
+
Если вы установили {{AUR|qt4}} из дополнительных зависимостей, у вас будет приятный GUI-интерфейс.
  
Finally, you can use [[PhpVirtualBox]] to administrate your virtual machines via a web interface.
+
Наконец, вы можете использовать [[PhpVirtualBox]] для управления виртуальными машинами из веб-интерфейса.
  
Refer to the [https://www.virtualbox.org/manual VirtualBox manual] to learn how to create virtual machines.
+
Обратитесь к [https://www.virtualbox.org/manual руководству VirtualBox], чтобы узнать, как создавать виртуальные машины.
  
{{Warning|If you intend to store virtual disk images on a [[Btrfs]] file system, before creating any images, you should consider disabling [[Btrfs#Copy-On-Write_.28CoW.29|Copy-on-Write]] for the destination directory of these images.}}
+
{{Warning_(Русский)|Если вы собираетесь хранить образы виртуальных дисков в файловой системе [[Btrfs]] , то перед созданием каких-либо образов вы должны отключить журналирование [[Btrfs#Copy-on-Write (CoW)|Copy-on-Write]] для каталога с образами.}}
  
== Installation steps for Arch Linux guests ==
+
== Пошаговая установка Arch Linux как гостевой ОС ==
  
=== Install Arch Linux inside the virtual machine ===
+
=== Установка Arch Linux в виртуальную машину ===
  
{{Note| Windows hosts may have to disable Hyper-V in order to use hardware virtualization features and create 64 bit virtual machines in VirtualBox. To learn how to disable or re-enable Hyper-V [http://superuser.com/questions/684966/switch-off-hyper-v-without-disable-functionality-in-windows-8-1 see this stackoverflow post]. }}
+
{{Note (Русский)|Хостам с ОС Windows, возможно, придется отключить Hyper-V для того, чтобы использовать возможности виртуализации устройств и создания 64-битных виртуальных машин в VirtualBox. Чтобы узнать, как отключить или снова включить Hyper-V, [http://superuser.com/questions/684966/switch-off-hyper-v-without-disable-functionality-in-windows-8-1 посмотрите пост на StackOverflow]. }}
  
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 [[Beginners' guide]] or the [[Installation guide]] without installing any graphic driver: we will install one provided by VirtualBox just at the next step.
+
Загрузите установочный носитель Arch через один из виртуальных дисков виртуальной машины. Затем совершите установку базовой системы Arch, как описано в [[Installation guide (Русский)|руководстве по установке]],  без установки графических драйверов: мы будем устанавливать драйвера, поставляемые VirtualBox на следующем этапе.
  
==== Installation in EFI mode ====
+
==== Установка в режиме EFI ====
  
If you want to install Arch Linux in EFI mode inside VirtualBox, in the settings of the virtual machine, go in the ''Settings'' tab, and check the checkbox ''Enable EFI (special OSes only)''. 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.
+
Если вы хотите установить Arch Linux в режиме EFI внутри VirtualBox, в настройках виртуальной машины, перейдите в закладку ''Настройки'', и установите флажок ''Enable EFI (special OSes only)''. После выбора ядра из меню установочного носителя Arch Linux, установка будут висеть в течение минуты-двух, и после этого будет загружено ядро . Подождите и не прекращайте установку.
  
When booting in EFI mode, VirtualBox will first attempt to run {{ic|/EFI/BOOT/BOOTX64.EFI}} from the ESP. If that first option fails, VirtualBox will then try the EFI shell script {{ic|startup.nsh}} from the root of the ESP. Unless you want to manually launch your bootloader from the EFI shell every time, you will need to move your bootloader to that default path. Do not bother with the VirtualBox Boot Manager (accessible with {{ic|F2}} at boot): EFI entries added to it manually at boot or with {{Pkg|efibootmgr}} will persist after a reboot [https://www.virtualbox.org/ticket/11177 but are lost when the VM is shut down].
+
При загрузке в режиме EFI, VirtualBox будет  пытаться выполнить {{ic|/EFI/BOOT/BOOTX64.EFI}} из ESP. Если первый вариант не удается, VirtualBox будет пытаться выполнить сценарий оболочки EFI {{ic|startup.nsh}} из корня ESP. Если вы не хотите вручную запускать загрузчик из оболочки EFI каждый раз, вы должны будете переместить свой загрузчик в этот путь по умолчанию. Не заморачивайтесь с VirtualBox Boot Manager (доступен по  {{ic|F2}} при загрузке): EFI данные будут добавлены в него вручную при загрузке или {{Pkg|efibootmgr}} будет сохранять их после перезагрузки, [https://www.virtualbox.org/ticket/11177 но терять после закрытия виртуальной машины].
  
=== Install the Guest Additions ===
+
=== Установка гостевых дополнений ===
  
After completing the installation of the guest system, install the VirtualBox [https://www.virtualbox.org/manual/ch04.html Guest Additions] which include drivers and applications that optimize the guest operating system. These can be installed via {{Pkg|virtualbox-guest-utils}}, which provides {{Pkg|virtualbox-guest-modules}} as a required dependency.
+
После завершения установки гостевой системы, установите [https://www.virtualbox.org/manual/ch04.html дополнения гостевой ОС], которые включают драйверы и приложения, оптимизирующие гостевую операционную систему. Они могут быть установлены с помощью {{Pkg|virtualbox-guest-utils}}, которая прикреплена к {{Pkg|virtualbox-guest-modules}}{{Broken package link (Русский)|replaced by {{Pkg|virtualbox-guest-modules-arch}}}} как необходимая зависимость.
  
{{Note|The method described in the [https://www.virtualbox.org/manual/ch04.html#idp54932560 VirtualBox manual] does not work on Arch Linux guests, resulting in an {{ic|Unable to determine your Linux distribution}} repeated several times as error message. If you tried this method first and you use the right solution described above afterwards, this will fail. You will get a [[Pacman#I get an error when updating: "file exists in filesystem"!|file conflict]]: {{ic|/usr/bin/VBox*}} and {{ic|/usr/lib/VBox* exists in filesystem}}. The solution is to remove the offending files first with {{ic|# rm /usr/bin/VBox* /usr/lib/VBox*}}. These files are actually symbolic links to the location where the additions tools were installed; by default, this is {{ic|/opt/VBoxGuestAdditions-''version number''}}. Remove these files too {{ic|# rm -r /opt/VBoxGuestAdditions-''version number''}} as they are not needed. Now you can restart the installation from the right method above.}}
+
{{note_(Русский)|Метод, описанный в [https://www.virtualbox.org/manual/ch04.html#idp54932560 VirtualBox руководстве] не работает на гостевой Arch Linux, в результате {{ic|Unable to determine your Linux distribution}} несколько раз повторено, как сообщение об ошибке. Если Вы уже попробовали этот первый метод и вы используете правильное описанное выше решение впоследствии, это не удастся. Вы получите ошибку {{ic|/usr/bin/VBox* exists in filesystem}} и {{ic|/usr/lib/VBox* exists in filesystem}}. Решение заключается в удалении конфликтующих файлов: {{ic|# rm /usr/bin/VBox* /usr/lib/VBox*}} Эти файлы на самом деле являются символическими ссылками на места, где были установлены гостевые дополнения; По умолчанию, это {{ic|/opt/VBoxGuestAdditions-''номер версии''}}. Удалите и эти файлы {{ic|# rm -r /opt/VBoxGuestAdditions-''номер версии''}},так как они не нужны. Теперь вы можете перезапустить установку правильным, вышеописанным способом.}}
  
=== Install the VirtualBox guest kernel modules ===
+
=== Установка гостевых модулей ядра VirtualBox ===
  
==== Guests running an official kernel ====
+
==== Запуск гостевой ОС с официальным ядром ====
  
* If you are using the {{Pkg|linux}} kernel, make sure the {{pkg|virtualbox-guest-modules}} package is still installed. The latter has been installed when you installed the {{Pkg|virtualbox-guest-utils}} package.
+
* Если вы используете ядро {{Pkg|linux}}, убедитесь, что пакет {{pkg|virtualbox-guest-modules}}{{Broken package link (Русский)|replaced by {{Pkg|virtualbox-guest-modules-arch}}}} установлен. {{pkg|virtualbox-guest-modules}}{{Broken package link (Русский)|replaced by {{Pkg|virtualbox-guest-modules-arch}}}} устанавливается как зависимость пакета {{Pkg|virtualbox-guest-utils}}.
* If you are using the LTS version of the kernel ({{pkg|linux-lts}}), you need to install the {{pkg|virtualbox-guest-modules-lts}} package. {{Pkg|virtualbox-guest-modules}} can now be removed if you want.
+
* Если вы используете LTS ядро ({{pkg|linux-lts}}), установите пакет {{AUR|virtualbox-guest-modules-lts}}. Пакет {{Pkg|virtualbox-guest-modules}}{{Broken package link (Русский)|replaced by {{Pkg|virtualbox-guest-modules-arch}}}} может быть удалён по вашему желанию.
* If you are using the {{aur|linux-ck}}, kernel, build the {{aur|virtualbox-ck-guest-modules}} package. {{Pkg|virtualbox-guest-modules}} can now be removed in this case too, if you want.
+
* Если вы используете ядро {{aur|linux-ck}}, скомпилируйте пакет {{aur|virtualbox-ck-guest-modules}}{{Broken package link (Русский)|package not found}}. Пакет {{Pkg|virtualbox-guest-modules}}{{Broken package link (Русский)|replaced by {{Pkg|virtualbox-guest-modules-arch}}}} также может быть удалён.
  
==== Guests running a custom kernel ====
+
==== Запуск гостевой ОС со сторонним ядром ====
  
As this installation step is quite similar to the Vitualbox kernel modules section for the host described above, please refer to [[#Install the VirtualBox kernel modules|that section]] for more information and replace all {{Pkg|virtualbox-host-modules}}, {{Pkg|virtualbox-host-dkms}} and {{AUR|vboxhost-hook}} statements by {{Pkg|virtualbox-guest-modules}}, {{Pkg|virtualbox-guest-dkms}} and {{AUR|vboxguest-hook}} respectively.
+
Этот шаг установки очень похож на настройку модулей ядра в разделе Vitualbox для хоста, описанную выше. Обратитесь к [[#Install the VirtualBox kernel modules|этому разделу]]{{Broken section link}} для получения дополнительной информации и замените все {{Pkg|virtualbox-host-modules}}{{Broken package link (Русский)|replaced by {{Pkg|virtualbox-host-modules-arch}}}}, {{Pkg|virtualbox-host-dkms}} и {{AUR|vboxhost-hook}}{{Broken package link (Русский)|{{aur-mirror (Русский)|vboxhost-hook}}}} на {{Pkg|virtualbox-guest-modules}}{{Broken package link (Русский)|replaced by {{Pkg|virtualbox-guest-modules-arch}}}}, {{Pkg|virtualbox-guest-dkms}} и {{AUR|vboxguest-hook}}{{Broken package link (Русский)|{{aur-mirror (Русский)|vboxguest-hook}}}} соответственно.
  
=== Load the Virtualbox kernel modules ===
+
=== Загрузка модулей ядра VirtualBox ===
  
To load the modules manually, type:
+
Для загрузки модуля вручную выполните:
 
  # modprobe -a vboxguest vboxsf vboxvideo
 
  # modprobe -a vboxguest vboxsf vboxvideo
  
To load the VirtualBox module at boot time, refer to [[Kernel_modules#Loading]] and create a {{ic|*.conf}} file (e.g. {{ic|virtualbox.conf}}) in {{ic|/etc/modules-load.d/}} with these lines:
+
Чтобы загрузить модуль VirtualBox во время загрузки системы, обратитесь к [[Kernel modules (Русский)#Автоматическое управление модулями|Загрузка ядра#Автоматическое управление модулями]] и создайте {{ic|*.conf}} файл (например, {{ic|virtualbox.conf}}) в директории {{ic|/etc/modules-load.d/}} с следующим содержанием:
 
{{hc|/etc/modules-load.d/virtualbox.conf|
 
{{hc|/etc/modules-load.d/virtualbox.conf|
 
vboxguest
 
vboxguest
Line 174: Line 206:
 
vboxvideo}}
 
vboxvideo}}
  
Alternatively, [[enable]] the {{ic|vboxservice}} service which loads the modules and synchronizes the guest's system time with the host.
+
Кроме того, команда
 +
# systemctl enable vboxservice  
 +
включает автозагрузку модулей и синхронизацию времени хоста и гостевой ОС.
 +
 
 +
=== Запуск гостевых сервисов VirtualBox ===
  
=== Launch the VirtualBox guest services ===
+
После довольно непростой установки с модулями ядра VirtualBox, необходимо обеспечить взаимодействие гостевой ОС и хоста посредством сервисов. Гостевой сервис -  на самом деле просто исполняемый файл, обращающийся к {{ic|VBoxClient}}, который будет взаимодействовать с вашей X Window System.  {{ic|VBoxClient}} управляет следующими функциями:
 +
* Общий буфер обмена и перетаскивания между принимающей стороной и гостевой ОС;
 +
* Бесшовный оконный режим;
 +
* Гостевой дисплей автоматически изменяется в соответствии с размером окна гостевой ОС;
 +
* Проверка версии VirtualBox, установленной на хосте.
  
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 {{ic|VBoxClient}} which will interact with your X Window System. {{ic|VBoxClient}} manages the following features:
+
Все эти особенности могут быть включены независимо следующими параметрами:
* shared clipboard and drag and drop between the host and the guest;
+
 $ VBoxClient --clipboard --draganddrop --seamless --display --checkhostversion
* 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:
+
Как ссылка, {{ic|VBoxClient-all}} bash скрипт позволяет использовать все эти функции. Вы должны установить {{ic|VBoxClient}}, который будет автоматически загружен в качестве [[Desktop_environment_(Русский)|DE]] или [[window manager_(Русский)|оконного менеджера]]
$ VBoxClient --clipboard --draganddrop --seamless --display --checkhostversion
 
  
As a shortcut, the {{ic|VBoxClient-all}} bash script enables all of these features. You should set {{ic|VBoxClient}} to be automatically loaded as your [[desktop environment]] or [[window manager]] starts. In practice,
+
На практике,
* if you are using a [[desktop environment]], you just need to check a box or add the {{ic|/usr/sbin/VBoxClient-all}} to the autostart section in your [[desktop environment]] settings (the DE will typically set a flag to a ''.desktop'' file in {{ic|~/.config/autostart}}, see [[Autostart#Desktop entries|the Autostart section]] for more details);
+
* Если вы используете [[Desktop_environment_(Русский)|DE]], вам просто нужно установить флажок или добавить {{ic|/usr/sbin/VBoxClient-all}}} в разделе автозапуска вашей DE (DE обычно устанавливают флаг на ''.desktop'' файлы в {{ic|~/.config/autostart}}, см. [[Desktop_entries|настройку автозапуска]] для более подробной информации);
* if you do not have any [[desktop environment]], add the following line to the top of {{ic|~/.xinitrc}} (copy the file from {{ic|/etc/skel/.xinitrc}} if it does not exist) above any {{ic|exec}} options:
+
* Если у вас нет каких-либо DE, добавьте следующую строку в начале [[Xinitrc (Русский)|~/.xinitrc]] перед любыми {{ic|exec}} функциями:
 
{{hc|~/.xinitrc|
 
{{hc|~/.xinitrc|
 
/usr/bin/VBoxClient-all}}
 
/usr/bin/VBoxClient-all}}
  
VirtualBox can also synchronize the time between the host and the guest. To do this, run {{ic|VBoxService}} as root. To set this to run automatically on boot, simply [[enable]] the {{ic|vboxservice}} service.
+
VirtualBox также может синхронизировать время между хостом и гостевой ОС. Чтобы сделать это, выполните {{ic|VBoxService}} с правами суперпользователя. Чтобы установить автоматический запуск этого кода при загрузке, выполните:
 +
# systemctl enable vboxservice
  
Now, you should have a working Arch Linux guest. Congratulations!
+
Теперь у вас есть рабочая гостевая Arch Linux. Поздравляем!
  
If you want to share folders between your host and your Arch Linux guest, read on.
+
Если вы хотите расшарить директории между вашим компьютером и гостевым Arch Linux, читайте дальше.
  
=== 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 {{ic|VBoxManage}} command line utility. See [https://www.virtualbox.org/manual/ch04.html#sharedfolders there for more details].
+
Общие папки управляются в хосте через настройки виртуальной машины, доступной через графический интерфейс VirtualBox, на вкладке ''Shared Folders''. Там путь к директории и имя точки монтирования определены как ''Имя папки'' и аргументы, такие как  ''Read-only'', ''Auto-mount'' и ''Make permanent'' Эти параметры могут быть определены через утилиту {{ic|VBoxManage}}. См. [https://www.virtualbox.org/manual/ch04.html#sharedfolders для более подробной информации].
  
No matter which method you will use to mount your folder, all methods require some steps first.
+
Независимо от того, какой метод вы будете использовать, чтобы смонтировать директорию, требуются некоторые начальные действия.
  
To avoid this issue {{ic|/sbin/mount.vboxsf: mounting failed with the error: No such device}}, make sure the {{ic|vboxsf}} kernel module is properly loaded. It should be, since we enabled all guest kernel modules previously.
+
Чтобы избежать проблемы {{ic|/sbin/mount.vboxsf: mounting failed with the error: No such device}}, убедитесь, что модуль ядра {{ic|vboxsf}} загружен правильно. Он должен быть загружен, поскольку мы включили все гостевые модули ядра ранее.
  
Two additional steps are needed in order for the mount point to be accessible from users other than root:
+
Два дополнительных шага необходимы для того, чтобы точки монтирования должны быть доступны из пользователей кроме root:
* the {{Pkg|virtualbox-guest-utils}} package created a group {{ic|vboxsf}} (done in a previous step);
+
* Пакет {{Pkg|virtualbox-guest-utils}} создает группу {{ic|vboxsf}};  
* your username must be in this group, use this command {{ic|gpasswd -a $USER vboxsf}} to add your username and use {{ic|newgrp}} to apply the changes immediately;
+
* Ваше имя пользователя должно быть в этой группе, используйте  команду {{ic|gpasswd -a $USER vboxsf}}, чтобы добавить свое имя пользователя и запустите {{ic|newgrp}}, чтобы применить изменения немедленно.
  
==== Manual mounting ====
+
==== Ручное монтирование ====
  
Use the following command to mount your folder in your Arch Linux guest:
+
Выполните следующую команду для монтирования директории в гостевой Arch Linux:
  # mount -t vboxsf ''shared_folder_name'' ''mount_point_on_guest_system''
+
  # mount -t vboxsf ''имя_расшариваемой_директории'' ''точка_монтирования_в_гостевой_ОС''
  
The vboxsf filesystem offers other options which can be displayed with this command:
+
Файловая система {{ic|vboxsf}} предоставляет и другие способы, просмотреть которые можно выполнив:
 
  # mount.vboxsf
 
  # mount.vboxsf
  
For example if the user was not in the ''vboxsf'' group, we could have used this command to give access our mountpoint to him:
+
Например, если пользователь не добавлен в ''vboxsf'' группу, мы могли бы использовать эту команду, чтобы смонтировать директорию в гостевой ОС:
 
  # mount -t vboxsf -o uid=1000,gid=1000 home /mnt/
 
  # mount -t vboxsf -o uid=1000,gid=1000 home /mnt/
  
Where ''uid'' and ''gid'' are values corresponding to the users we want to give access to. These values are obtained from the {{ic|id}} command run against this user.
+
Где ''UID'' и ''GID'' являются значениями, соответствующими пользователям, которым мы хотим дать доступ к монтированию директории. Эти значения можно узнать из вывода команды  {{ic|id}}, выполненной из сессии этого пользователя.
  
==== Automounting ====
+
==== Автомонтирование ====
  
In order for the automounting feature to work you must have checked the auto-mount checkbox in the GUI or used the optional {{ic|--automount}} argument with the command {{ic|VBoxManage sharedfolder}}.
+
Чтобы функция автоматического монтирования заработала, вы должны включить флажок в графическом интерфейсе или использовать дополнительный  аргумент {{ic|--automount}} при команде {{ic|VBoxManage общая_директория}}
  
The shared folder should now appear in {{ic|/media/sf_''shared_folder_name''}}.
+
Теперь общая директория должна появиться в {{ic|/media/sf_''имя_расшаренной_директории''}}.
  
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 ====
+
$ ln -s /media/sf_''имя_расшаренной_директории'' ~/''мои_документы''
  
You can mount your directory with [[fstab]]. However, to prevent startup problems with systemd, {{ic|1=comment=systemd.automount}} should be added to {{ic|/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 read fstab and mount the partitions.
+
==== Монтирование при загрузке ====
 +
 
 +
Вы можете монтировать директории с помощью [[fstab_(Русский)|fstab]]. Во избежание проблем с systemd, необходимо добавить в {{ic|/etc/fstab}} строчку {{ic|1=comment=systemd.automount}}.  
 +
Таким образом, общие папки монтируются только тогда, когда доступны точки подключения, а не во время запуска. Это может избежать некоторых проблем, особенно если гостевая ОС еще не загружена, когда systemd уже начал читать fstab и монтировать разделы.
 
  desktop  /media/desktop    vboxsf  uid=user,gid=group,rw,dmode=700,fmode=600,comment=systemd.automount 0 0
 
  desktop  /media/desktop    vboxsf  uid=user,gid=group,rw,dmode=700,fmode=600,comment=systemd.automount 0 0
  
As of 2012-08-02, mount.vboxsf does not support the ''nofail'' option:
+
mount.vboxsf [https://www.virtualbox.org/ticket/10676| может не поддерживать] ''nofail'' аргумент:
 
  desktop  /media/desktop    vboxsf  uid=user,gid=group,rw,dmode=700,fmode=600,nofail 0 0
 
  desktop  /media/desktop    vboxsf  uid=user,gid=group,rw,dmode=700,fmode=600,nofail 0 0
  
== Import/export VirtualBox virtual machines from/to other hypervisors ==
+
== Импорт/экспорт виртуальных машин VirtualBox в/из других гипервизоров ==
  
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.
+
Если вы планируете использовать виртуальную машину на другом гипервизоре или хотите импортировать в VirtualBox виртуальную машину, созданную в другом гипервизоре, вы можете быть заинтересованы в чтении следующих шагов.
  
=== 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 [https://www.virtualbox.org/manual/ch04.html by providing these features].
+
Гостевые дополнения доступны в большинстве гипервизоров: VirtualBox поставляется с гостевыми дополнениями, VMware с VMware Tools, Parallels с инструментами Parallels, и т.д. Это дополнительные компоненты, предназначенные для установки внутри виртуальной машины после гостевой операционной системы, состоящие из драйверов устройств и системных приложений, которые оптимизируют гостевую операционной системы для повышения производительности и удобства использования. [https://www.virtualbox.org/manual/ch04.html Читать подробнее].
  
If you have installed the additions to your virtual machine, please uninstall them first. Your guest, especially if it is using an OS 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.
+
Если у вас установлены дополнения в вашей виртуальной машине - удалите их в первую очередь. Ваша гостевая ОС, особенно если это ОС из семейства Windows, может вести себя странно, аварийно или не загрузиться вообще, если вы используете специальные драйверы одного гипервизора на другом.
  
=== 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.
+
Некоторые компании предоставляют инструменты, которые предлагают возможность создания виртуальных машин с операционной системой Windows или GNU / Linux, расположенной в виртуальной машине или даже в оригинальной установке. С таким продуктом вам не нужно применять этот и следующие шаги, и можно далее не читать.
* ''[http://www.parallels.com/products/transporter 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, <u>which only works on OS X</u>, will create a virtual machine from that ''agent'' which is contacted either by USB or Ethernet network.
+
* ''[Http://www.parallels.com/products/transporter Parallels Transporter]'' -  не бесплатный, продукт от Parallels Inc. Это решение в основном заключается в части программного обеспечения под названием ''агент'', который будет установлен в гостевой ОС, которую вы хотите импортировать / преобразовать. Затем, Parallels Transporter, ''который работает только на OS X'' , создаст виртуальную машину с этим ''агентом'', который контактирует либо по USB или по сети Ethernet.
* ''[https://www.vmware.com/products/converter/ 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.
+
* ''[Https://www.vmware.com/products/converter/ VMware vCenter Converter]'' - бесплатен при регистрации на Webiste VMware, работает почти так же, как Parallels Transporter, но часть программного обеспечения, которая собирает данные для создания виртуальной машины работает только на платформе Windows.
  
==== Manual conversion ====
+
==== Ручное преобразование ====
  
First, familiarize yourself with the [[#Formats supported by VirtualBox]] and [[Wikipedia:Comparison of platform virtual machines#Image type compatibility|those supported by third-party hypervisors]].
+
Во-первых, ознакомьтесь с  [[#Форматы, поддерживаемые VirtualBox|форматами, поддерживаемыми Virtualbox]] и  [[Wikipedia:Comparison of platform virtual machines#Image type compatibility|форматами других гипервизоров]].
  
* 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.
+
* Импорт и экспорт виртуальной машины из/в формат VMware не является проблемой, если вы используете формат диска VMDK или OVF, в противном случае преобразования [[#VMDK в VDI и VDI в VMDK|VMDK в VDI и VDI в VMDK]] можно осуществить вышеописанным VMware vCenter Converter.
  
* 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.
+
* Импорт и экспорт из/в QEMU почти не проблема: некоторые форматы QEMU поддерживает непосредственно VirtualBox и преобразование между [[#QCOW2 в VDI и VDI в QCOW2|QCOW2 в VDI и VDI в QCOW2]] по-прежнему доступны в случае необходимости.
  
* 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!).
+
* Импорт и экспорт из/в Parallels гипервизора является трудный задачей: Parallels поддерживает только свой собственный формат жесткого диска (даже стандартные форматы и портативный формат OVF не поддерживается!).
:* To export your virtual machine to Parallels, you will need to use the Parallels Transporter tool described above.
+
:* Чтобы экспортировать виртуальную машину для Parallels, вам нужно будет использовать инструмент описанной выше  Parallels - Transporter.
:* To import your virtual machine to VirtualBox, you will need to use the VMware vCenter Converter described above to convert the VM to the VMware format first. Then, apply the solution to migrate from VMware.
+
:* Чтобы импортировать виртуальную машину в VirtualBox, вы должны будете использовать VMware vCenter Converter , чтобы преобразовать виртуальную машину в формат VMware в первую очередь -  а затем используйте инструмент для миграции с VMware.
  
=== Create the VM configuration for your hypervisor ===
+
=== Создание конфигурации VM для гипервизора ===
  
Each hypervisor have their own virtual machine configuration file: {{ic|.vbox}} for VirtualBox, {{ic|.vmx}} for VMware, a {{ic|config.pvs}} file located in the virtual machine bundle ({{ic|.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.
+
Каждый гипервизор имеет свой собственный файл конфигурации виртуальной машины: {{ic|.vbox}} для VirtualBox, {{ic|.vmx}} для VMware, {{ic|config.pvs}} файл, расположенный в виртуальной машине ({{ic|.pvm}} файл), и т.д. Вы можете, таким образом, создать новую виртуальную машину в новом гипервизоре и указать его конфигурацию как можно ближе относительно  начальной виртуальной машины.
  
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.
+
Обратите пристальное внимание на интерфейс прошивки (BIOS или UEFI), используемый для установки гостевой операционной системы. В то время как опция доступна выбирать между этими 2 интерфейсов на VirtualBox и на Parallels решений, на VMware, вам придется вручную добавить следующую строку в ваш ''.vmx'' файл.
  
 
{{hc|ArchLinux_vm.vmx|2=
 
{{hc|ArchLinux_vm.vmx|2=
Line 283: Line 322:
 
}}
 
}}
  
Finally, ask your hypervisor to use the existing virtual disk you have converted and launch the virtual machine.
+
Наконец, настройте ваш гипервизор, для использования существующего виртуального диска, который вы преобразовали и запустите виртуальную машину.
{{Tip|
+
{{tip_(Русский)|
* 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 {{ic|VBoxManage storageattach}} described in [[#Increasing virtual disks]] or in the [https://www.virtualbox.org/manual/ch08.html#vboxmanage-storageattach VirtualBox manual page].
+
* В VirtualBox, если вы не хотите просмотривать весь графический интерфейс, чтобы найти нужное место где можно добавить новый виртуальный диск устройства, вы можете [[#Замена виртуального диска из файла .vbox вручную|Заменить виртуальный диск вручную из файла .vbox]], или использовать {{ic|VBoxManage storageattach}}, описанный в  [[#Увеличение размера виртуальных дисков|увеличении вируального диска]] или в [https://www.virtualbox.org/manual/ch08.html#vboxmanage-storageattach руководстве VirtualBox]
* 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.}}
+
* Кроме того, в продуктах VMware, вы можете заменить местоположение текущего местоположения виртуального диска путем адаптации ''.vmdk'' местоположения файла в ''.vmx'' конфигурационном файле.}}
  
== Virtual disks management ==
+
== Управление виртуальными дисками ==
  
=== Formats supported by VirtualBox ===
+
=== Форматы, поддерживаемые VirtualBox ===
  
VirtualBox supports the following virtual disk formats:
+
VirtualBox поддерживает следующие форматы виртуальных дисков:
  
* VDI: The Virtual Disk Image is the VirtualBox own open container used by default when you create a virtual machine with VirtualBox.
+
* VDI: Virtual Disk Image является собственным стандартои VirtualBox, используемыи по умолчанию, когда вы создаете виртуальную машину в VirtualBox.
  
* VMDK: The Virtual Machine Disk has been initially developed by VMware for their products. The specification was initially closed source, but it became now an open format which is fully supported by VirtualBox. This format offers the ability to be split into several 2GB files. This feature is specially 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.
+
* VMDK: изначально разработан VMware для своих продуктов.Спецификация была закрытым исходным кодом, но сейчас стало открытым форматом, который полностью поддерживается VirtualBox. Этот формат дает возможность разбивать себя на несколько файлов по 2 Гб. Эта функция особенно полезна, если вы хотите сохранить виртуальную машину на компьютерах, которые не поддерживают очень большие файлы. Другие форматы, за исключением формата HDD от Parallels, не обеспечивают такую эквивалентную функцию.
  
* 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.
+
* VHD: Virtual Hard Disk - формат, используемый в Microsoft в Windows Virtual PC и Hyper-V. Если вы собираетесь использовать любой из этих продуктов Microsoft, вы должны будете выбрать этот формат.
:{{Tip|Since Windows 7, this format can be mounted directly without any additional application.}}  
+
: {{tip_(Русский) | Начиная с Windows 7, этот формат может быть установлен непосредственно без каких-либо дополнительных приложений.}}
  
* 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 [https://www.virtualbox.org/manual/ch15.html#idp63002176 should support this format in read only].
+
* VHDX (только для чтения): Это расширенная версия формата виртуального жесткого диска, разработанного Microsoft, которая была выпущена на 2012-09-04 с Hyper-V 3.0 при переходе на Windows Server 2012. Эта новая версия  имеет  повышенную производительность (лучшее расположение блоков), большие размеры блоков и поддержку журнала. VirtualBox [https://www.virtualbox.org/manual/ch15.html#idp63002176 поддерживает этот формат только для чтения].
  
* Version 2 of the HDD: 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 [https://www.virtualbox.org/manual/ch05.html#vdidetails only reports the second version of the HDD file format as supported], Wikipedia's contributors are [[Wikipedia:Comparison of platform virtual machines#Image type compatibility|reporting the first version may work too]]. Help is welcome if you can perform some tests with the first version of the HDD format.}}
+
* Версия 2 HDD: Формат HDD разработан Parallels Inc и используются в их гипервизоре, например Parallels Desktop для Mac. Новые версии этого формата (т.е. 3 и 4) не поддерживаются из-за отсутствия документации для этого форматф. {{note_(Русский) | Существуют  споры в отношении поддержки версии 2 формата. Официальное руководство VirtualBox [https://www.virtualbox.org/manual/ch05.html#vdidetails сообщает, что поддерживается только 2 версия], авторы Википедии утверждают,что [[Wikipedia: Comparison of platform virtual machines # Image type compatibility|частично может работать и первая версия]]. Приветствуется помощь, если вы можете выполнить некоторые тесты с первой версией формата HDD.}}
  
* QED: The QEMU Enhanced Disk format is an old file format for QEMU, another free and open source hypervisor. This format was designed from 2010 in a way to provide a superior alternative to QCOW2 and others. This format features a fully asynchronous I/O path, strong data integrity, backing files, and sparse files. QED format is supported only for compatibility with virtual machines created with old versions of QEMU.
+
* QED: Формат Enhanced Disk QEMU - старый формат для QEMU, свободный и открытый. Этот формат был разработан в 2010 году таким образом, чтобы обеспечить превосходную альтернативу qcow2 и другим форматам. Этот формат имеет полностью асинхронный ввод / вывод, хорошую целостность данных, откат файлов и разреженные файлы. Формат QED поддерживается только для совместимости с виртуальными машинами, созданными в старых версиях QEMU.
  
* QCOW: The QEMU Copy On Write format is the current format for QEMU. The QCOW format does support zlib-based transparent compression and encryption (the latter has flaw and is not recommended). QCOW is available in two versions: QCOW and QCOW2. The latter tends to supersede the first one. QCOW is [https://www.virtualbox.org/manual/ch15.html#idp63002176 currently fully supported by VirtualBox]. QCOW2 comes in two revisions: QCOW2 0.10 and QCOW2 1.1 (which is the default when you create a virtual disk with QEMU). VirtualBox does not support this QCOW2 format (both revisions have been tried).
+
* QCOW: QEMU CoW - нынешний формат для QEMU.Формат QCOW поддерживает  прозрачное сжатие на основе ZLIB и шифрование (последнее имеет недостаток, и не рекомендуется к сипользованию). QCOW доступен в двух версиях: QCOW и qcow2. Последний, как правило, заменяет первый. QCOW [https://www.virtualbox.org/manual/ch15.html#idp63002176 в настоящее время  поддерживается VirtualBox]. Qcow2 поставляется в двух версиях: qcow2 0.10 и qcow2 1.1 (по умолчанию используемый при создании виртуального диска с QEMU). VirtualBox не поддерживает  qcow2.
  
* OVF: The Open Virtualization Format is an open format which has been designed for interoperability and distributions of virtual machines between different hypervisors. VirtualBox supports all revisions of this format via the [https://www.virtualbox.org/manual/ch08.html#idp55423424 {{ic|VBoxManage}} import/export feature] but with [https://www.virtualbox.org/manual/ch14.html#KnownProblems known limitations].
+
* OVF: Open Virtualization Format является открытым форматом, который был разработан для обеспечения взаимодействия и распределения виртуальных машин между различными гипервизоров. VirtualBox поддерживает все версии этого формата через [https://www.virtualbox.org/manual/ch08.html#idp55423424 {{ic|VBoxManage}} импорт / экспорт], но с [https: //www.virtualbox.org/manual/ch14.html#KnownProblems известными ограничениями].
  
* RAW: This is the mode when the virtual disk is exposed directly to the disk without being contained in a specific file format container. VirtualBox supports this feature in several ways: converting RAW disk [https://www.virtualbox.org/manual/ch08.html#idp59139136 to a specific format], or by [https://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi cloning a disk to RAW], or by using directly a VMDK file [https://www.virtualbox.org/manual/ch09.html#idp57804112 which points to a physical disk or a simple file].
+
* RAW: Это режим, когда виртуальный диск скидывается непосредственно на диск без определенного формата файл контейнера. VirtualBox поддерживает эту функцию несколькими способами: преобразование RAW диск [https://www.virtualbox.org/manual/ch08.html#idp59139136 к определенному формату], или [https://www.virtualbox.org/manual/ch08.html#VBoxManage-clonevdi клонированием диска в формате RAW], или непосредственно через файл VMDK, [https://www.virtualbox.org/manual/ch09.html#idp57804112 который указывает на физический диск или просто файл].
  
=== Disk image format conversion ===
+
=== Преобразование виртуальных дисков разных форматов ===
  
==== VMDK to VDI and VDI to VMDK ====
+
==== VMDK в VDI и VDI в VMDK ====
  
VirtualBox can handle back and forth conversion between VDI and VMDK by itself with [https://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi {{ic|VBoxManage clonehd}}].
+
VirtualBox может конвертировать  VDI в VMDK и обратно с использованием [https://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi {{ic|VBoxManage clonehd}}].
  
VMDK to VDI:
+
VMDK в VDI:
  
 
  $ VBoxManage clonehd ''source.vmdk'' ''destination.vdi'' --format VDI
 
  $ VBoxManage clonehd ''source.vmdk'' ''destination.vdi'' --format VDI
  
VDI to VMDK:
+
VDI в VMDK:
  
 
  $ VBoxManage clonehd ''source.vdi'' ''destination.vmdk'' --format VMDK
 
  $ VBoxManage clonehd ''source.vdi'' ''destination.vmdk'' --format VMDK
  
==== VHD to VDI and VDI to VDH ====
+
==== VHD в VDI и VDI в VDH ====
  
VirtualBox can handle conversion back and forth this format with [https://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi {{ic|VBoxManage clonehd}}] too.
+
VirtualBox также может конвертировать VHD в VDI и наоборот с использованием [https://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi {{ic|VBoxManage clonehd}}]:
  
VHD to VDI:
+
VHD в VDI:
  
 
  $ VBoxManage clonehd ''source.vhd'' ''destination.vdi'' --format VDI
 
  $ VBoxManage clonehd ''source.vhd'' ''destination.vdi'' --format VDI
  
VDI to VHD:
+
VDI в VHD:
  
 
  $ VBoxManage clonehd ''source.vdi'' ''destination.vhd'' --format VHD
 
  $ VBoxManage clonehd ''source.vdi'' ''destination.vhd'' --format VHD
  
==== QCOW2 to VDI and VDI to QCOW2 ====
+
==== QCOW2 в VDI и VDI в QCOW2 ====
  
[https://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi {{ic|VBoxManage clonehd}}] cannot handle the QEMU format conversion; we will thus rely on another tool. The {{ic|qemu-img}} command from {{Pkg|qemu}} can be used to convert images back and forth from VDI to QCOW2. {{Note|{{ic|qemu-img}} can handle a bunch of other formats too. According to the {{ic|qemu-img --help}}, here are the supported formats this tool supports: "''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'".}}
+
[https://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi {{ic|VBoxManage clonehd}}] не может конвертировать QEMU форматы и необходимо воспользоваться иными инструментами. Команда {{ic|qemu-img}} из пакета {{Pkg|qemu}} может  осуществлять преобразования QCOW2<=>VDI. {{note_(Русский)|{{ic|qemu-img}} также обрабатывает кучу других форматов. В соответствии выводу {{ic|qemu-img --help}}, {{ic|qemu-img}}  поддерживает данные форматы : "''vvfat vpc vmdk vhdx vdi ssh sheepdog sheepdog sheepdog raw host_cdrom host_floppy host_device file qed qcow2 qcow parallels nbd nbd nbd iscsi dmg tftp ftps ftp https http cow cloop bochs blkverify blkdebug'".}}
  
QCOW2 to VDI:
+
QCOW2 в VDI:
  
 
  $ qemu-img convert -pO vdi ''source.qcow2'' ''destination.vdi''
 
  $ qemu-img convert -pO vdi ''source.qcow2'' ''destination.vdi''
  
VDI to QCOW2:
+
VDI в QCOW2:
  
 
  $ qemu-img convert -pO qcow2 ''source.vdi'' ''destination.qcow2''
 
  $ qemu-img convert -pO qcow2 ''source.vdi'' ''destination.qcow2''
  
As QCOW2 comes in two revisions (see [[#Formats supported by VirtualBox]], use the flag {{ic|1=-o compat=}} to specify the revision.
+
Так как QCOW2 предостовляется в двух версиях (0.10 и 1.1) (см. [[#Форматы, поддерживаемые VirtualBox|форматы, поддерживаемые VirtualBox]]. Используйте параметр {{ic|1=-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=0.10
or
+
или
 
  $ qemu-img convert -pO qcow2 ''source.vdi'' ''destination.qcow2'' -o compat=1.1
 
  $ qemu-img convert -pO qcow2 ''source.vdi'' ''destination.qcow2'' -o compat=1.1
  
{{Tip|The {{ic|-p}} parameter is used to get the progression of the conversion task.}}
+
{{tip_(Русский)|Параметр {{ic|-p}} отображает прогресс выполнения преобразования.}}
  
=== Mount virtual disks ===
+
=== Монтирование виртуальных дисков ===
  
 
==== VDI ====
 
==== VDI ====
  
Mounting vdi images only works with fixed size images (a.k.a. static images); dynamic (dynamically size allocating) images are not easily mountable.
+
Монтирование образов VDI работает только с образами фиксированного размера  (т.е. статичными образами); динамические образы (динамическое выделение размера) монтируются довольно-таки не просто.
  
The offset of the partition (within the vdi) is needed, then add the value of {{ic|offData}} to {{ic|32256}} (e.g. 69632 + 32256 = 101888):
+
Если необходимо смещение раздела (в VDI), добавьте значение {{ic|offData}} в {{ic|32256}} (например, 69632 + 32256 = 101888):
  
 
  $ VBoxManage internalcommands dumphdinfo <storage.vdi> | grep "offData"
 
  $ VBoxManage internalcommands dumphdinfo <storage.vdi> | grep "offData"
  
The can now be mounted with:
+
Теперь cмонтируем:
  
 
  # mount -t ext4 -o rw,noatime,noexec,loop,offset=101888 <storage.vdi> /mntpoint/
 
  # mount -t ext4 -o rw,noatime,noexec,loop,offset=101888 <storage.vdi> /mntpoint/
  
You can also use [https://github.com/pld-linux/VirtualBox/blob/master/mount.vdi mount.vdi] script that, which you can use as (install script itself to {{ic|/usr/bin/}}):
+
Вы также можете использовать скрипт [https://github.com/pld-linux/VirtualBox/blob/master/mount.vdi mount.vdi], который можно использовать (и даже установить скрипт в {{ic|/usr/bin/}}:
  
 
  # mount -t vdi -o fstype=ext4,rw,noatime,noexec ''vdi_file_location'' ''/mnt/''
 
  # mount -t vdi -o fstype=ext4,rw,noatime,noexec ''vdi_file_location'' ''/mnt/''
  
Alternately you can use {{Pkg|qemu}}'s kernel module that can do this [[http://bethesignal.org/blog/2011/01/05/how-to-mount-virtualbox-vdi-image/ attrib]]:
+
Также можно использовать  модули ядра {{Pkg|qemu}} , которые выполняют эту же функцию [http://bethesignal.org/blog/2011/01/05/how-to-mount-virtualbox-vdi-image/ attrib]:
  
 
  # modprobe nbd max_part=16
 
  # modprobe nbd max_part=16
Line 386: Line 425:
 
  # qemu-nbd -d /dev/nbd0
 
  # qemu-nbd -d /dev/nbd0
  
If the partition nodes are not propagated try using {{ic|partprobe /dev/nbd0}}; otherwise, a vdi partition can be mapped directly to a node by: {{ic|qemu-nbd -P 1 -c /dev/nbd0 <storage.vdi>}}.
+
Если файлы раздела не распространяются, попробуйте использовать {{ic|partprobe /dev/nbd0}}. В противном случае, VDI раздел может быть отображен непосредственно в файл с помощью {{ic|qemu-nbd -P 1 -c /dev/nbd0 <storage.vdi>}}.
  
=== Compact virtual disks ===
+
=== Сжатие виртуальных дисков ===
  
Compacting virtual disks only works with {{ic|.vdi}} files and basically consists in the following steps.
+
Сжатие работает только с файлами {{ic|.vdi}} и в основном состоит из следующих действий:
  
Boot your virtual machine and remove all bloat manually or by using cleaning tools like {{Pkg|bleachbit}} which is [http://bleachbit.sourceforge.net/download/windows available for Windows systems too].
+
Загрузите виртуальную машину и удалите все ненужное вручную или с помощью специальных средств, например {{Pkg|bleachbit}} ([http://bleachbit.sourceforge.net/download/windows доступна для ОС Windows]).
  
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 {{ic|bleachbit -c system.free_disk_space}} in CLI;
+
* Если вы пользовались Bleachbit, просто установите галочку ''System > Free disk space'' в графическом интерфейсе, выполните команду {{ic|bleachbit -c system.free_disk_space}};
* On UNIX-based systems, by using {{ic|dd}} or preferably {{Pkg|dcfldd}} (see [http://superuser.com/a/355322 here] to learn the differences) :
+
* В UNIX-based системах, выполните команду {{ic|dd}} или, предпочтительно, {{Pkg|dcfldd}} (см. [http://superuser.com/a/355322 здесь] информацию об отличиях):
 
:{{bc|1=# dcfldd if=/dev/zero of=''/fillfile'' bs=4M}}
 
:{{bc|1=# dcfldd if=/dev/zero of=''/fillfile'' bs=4M}}
:When {{ic|fillfile}} reaches the limit of the partition, you will get a message like {{ic|1280 blocks (5120Mb) written.dcfldd:: No space left on device}}. This means that all of the user-space and non-reserved blocks of the partition will be filled with zeros. Using this command as root is important to make sure all free blocks have been overwritten. Indeed, by default, when using partitions with ext filesystem, a specified percentage of filesystem blocks is reserved for the super-user (see the {{ic|-m}} argument in the {{ic|mkfs.ext4}} man pages or use {{ic|tune2fs -l}} to see how much space is reserved for root applications).
+
:Когда {{ic|fillfile}} достигает лимита раздела, вам будет выдано сообщение вида {{ic|1280 blocks (5120Mb) written.dcfldd:: No space left on device}}. Это означает, что все пространство пользователя и незарезервированные блоки раздела будут затерты. Используя эту команду от суперпользователя, важно убедится в том, что все свободные блоки затерты. По умолчанию некий процент блоков ФС зарезервирован для супер-пользователя (см. вывод  {{ic|-m}} аргумента при команде {{ic|mkfs.ext4}} или используйте {{ic|tune2fs -l}} чтобы увидеть, сколько места зарезервировано под приложения запущенные от root).
:When the aforementioned process has completed, you can remove the file {{ic|''fillfile''}} you created.
+
:Когда вышеописанный процесс будет завершён, вы можете удалить созданный вами файл {{ic|''fillfile''}}.
  
* On Windows, there are two tools available:
+
* В ОС Windows есть два инструмента:
:*{{ic|sdelete}} from the [http://technet.microsoft.com/en-us/sysinternals/bb842062.aspx Sysinternals Suite], type {{ic|sdelete -s ''c:''}}, where you need to reexecute the command for each drive you have in your virtual machine;
+
:*{{ic|sdelete}} - [http://technet.microsoft.com/en-us/sysinternals/bb842062.aspx Sysinternals Suite], выполните {{ic|sdelete -s ''c:''}} для каждого виртуального диска;
:* or, if you love scripts, there is a [http://blog.whatsupduck.net/2012/03/powershell-alternative-to-sdelete.html PowerShell solution], but which still needs to be repeated for all drives.
+
:* Для любителей PowerShell есть скрипт [http://blog.whatsupduck.net/2012/03/powershell-alternative-to-sdelete.html PowerShell solution]. Его также необходимо отдельно выполнять для каждого виртуального диска.
 
::{{bc|PS> ./Write-ZeroesToFreeSpace.ps1 -Root ''c:\'' -PercentFree 0}}
 
::{{bc|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 {{ic|RemoteSigned}} and not on {{ic|Restricted}}. This can be checked with {{ic|Get-ExecutionPolicy}} and the required policy can be set with {{ic|Set-ExecutionPolicy RemoteSigned}}.}}
+
::{{note_(Русский)|Этот скрипт должен быть запущен в среде PowerShell от имени администратора. По дефолту скрипты не запускаются из-за ограничений политик безопасности. Необходимо установить необходимое значение параметра {{ic|Get-ExecutionPolicy}} в политиках безопасности: {{ic|Set-ExecutionPolicy RemoteSigned}}.}}
  
Once the free disk space have been wiped, shut down your virtual machine.
+
Перезагрузите виртуальную машину.
 +
После выполнения задач и перезагрузки виртуальной машины рекомендуется провести проверку диска.
 +
* В UNIX-based системах можно использовать {{ic|fsck}};
 +
:* В GNU/Linux системах, в том числе Arch Linux, вы можете установить проверку диска при загрузке вручную [[Fsck#Forcing the check|в параметрах загрузки ядра]];
 +
* В Windows системах:
 +
:* {{ic|chkdsk ''c:'' /F}} где  {{ic|''c:''}} заменяется на имя проверяемого диска;
 +
:* или {{ic|FsckDskAll}} [http://therightstuff.de/2009/02/14/ChkDskAll-ChkDsk-For-All-Drives.aspx отсюда], который основан на {{ic|chkdsk}}, но не требует перезапуска для каждого отдельного диска;
  
The next time you boot your virtual machine, it is recommended to do a filesystem check.
+
Теперь удалите нули из {{ic|vdi}} файлов с помощью {{ic|[https://www.virtualbox.org/manual/ch08.html#vboxmanage-modifyvdi VBoxManage modifyhd]}}:
* On UNIX-based systems, you can use {{ic|fsck}} manually;
+
  $ VBoxManage modifyhd ''your_disk.vdi'' --compact
:* On GNU/Linux systems, and thus on Arch Linux, you can force a disk check at boot [[Fsck#Forcing the check|thanks to a kernel boot parameter]];
 
* On Windows systems, you can use:
 
:* either {{ic|chkdsk ''c:'' /F}} where {{ic|''c:''}} needs to be replaced by each disk you need to scan and fix errors;
 
:* or {{ic|FsckDskAll}} [http://therightstuff.de/2009/02/14/ChkDskAll-ChkDsk-For-All-Drives.aspx from here] which is basically the same software as {{ic|chkdsk}}, but without the need to repeat the command for all drives;
 
  
Now, remove the zeros from the {{ic|vdi}} file with {{ic|[https://www.virtualbox.org/manual/ch08.html#vboxmanage-modifyvdi VBoxManage modifyhd]}}:
+
{{note_(Русский)|Если в вашей виртуальной машине есть снимки, вам необходимо выполнить команду для всех ваших {{ic|.vdi}} файлов.}}
  $ VBoxManage modifyhd ''your_disk.vdi'' --compact
+
 
 +
=== Увеличение размера виртуальных дисков ===
 +
 
 +
Если вы выходите за рамки пространства жесткого диска, которое выбрали при создании виртуальной машины, проблему можно решить по совету из руководства VirtualBox [https://www.virtualbox.org/manual/ch08.html#VBoxManage-modifyvdi {{ic|VBoxManage modifyhd}}]. Эта команда работает только для динамически расширяемых дисков VDI и VHD . Если вы хотите изменить размер фиксированного виртуального диска, можете использовать нижеописанный трюк, который работает и на виртуальной машине Windows, и в UNIX-подобных системах.
  
{{Note|If your virtual machine has snapshots, you need to apply the above command on each {{ic|.vdi}} files you have.}}
+
Во-первых, создайте новый виртуальный диск рядом с тем, который вы хотите увеличить:
  
=== Increase virtual disks ===
+
 $ VBoxManage createhd -filename '' new.vdi '' --size '' 10000 ''
  
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 [https://www.virtualbox.org/manual/ch08.html#vboxmanage-modifyvdi {{ic|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.
+
где размер указан в MiB, в этом примере 10000MiB ~ = 10GiB, ''new.vdi'' - имя создаваемого нового виртуального диска.
  
First, create a new virtual disk next to the one you want to increase:
+
Далее старый виртуальный диск должен быть клонирован в новый(это может занять длительной время):
$ VBoxManage createhd -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.
+
 $ VBoxManage clonehd ''old.vdi'' '' ew.vdi'' --existing
  
Next, the old virtual disk needs to be cloned to the new one which this may take some time:
+
{{note_(Русский)|По умолчанию, эта команда использует ''Standard'' (что соответствует динамическому выделению) формату файла диска, и, следовательно, не будет использовать тот же формат в качестве формата исходного виртуального диска. Если ваш ''old.vdi'' имеет фиксированный размер, и вы хотите, чтобы новый диск был тоже фиксированным, добавьте параметр {{ic|--variant Fixed}}.}}
$ VBoxManage clonehd ''old.vdi'' ''new.vdi'' --existing
 
  
{{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 {{ic|--variant Fixed}}.}}
+
Отключите старый диск и установите новый, обязательно заменив все выделенные курсивом аргументы на свои:
  
Detach the old hard drive and attach new one, replace all mandatory italic arguments by your own:
 
 
  $ VBoxManage storageattach ''VM_name'' --storagectl ''SATA'' --port ''0'' --medium none
 
  $ VBoxManage storageattach ''VM_name'' --storagectl ''SATA'' --port ''0'' --medium none
 
  $ VBoxManage storageattach ''VM_name'' --storagectl ''SATA'' --port ''0'' --medium ''new.vdi'' --type hdd
 
  $ VBoxManage storageattach ''VM_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 {{ic|VBoxManage showvminfo ''VM_name''}}. Among the output you will get such a result (what you are looking for is in italic):
+
Чтобы получить имя контроллера диска и номер порта, вы можете использовать команду {{ic|VBoxManage showvminfo ''VM_name''}}. Среди вывода вы получите такой результат (то, что вы ищете выделено курсивом):
  
 
{{bc|
 
{{bc|
Line 459: Line 500:
 
[...]}}
 
[...]}}
  
Download [http://gparted.org/download.php 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.
+
Скачайте [http://gparted.org/download.php GParted LiveCD] и установите его в качестве виртуального привода , загрузите вашу виртуальную машину, используйте увеличение / перемещение ваших разделов. По окончании работы отмонтируйте GParted LiveCD и перезагрузите машину.
  
{{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.}}
+
{{Примечание | На GPT дисках, увеличение размера диска приведет к созданию резервной копии заголовка GPT в месте, отличном от конца устройства. GParted попросит, чтобы исправить проблему, нажать на ''исправить'' два раза. На дисках MBR такой проблемы не возникнет.}}
 +
 
 +
Наконец, отключите старый виртуальный диск в VirtualBox и удалите его:
  
Finally, unregister the virtual disk from VirtualBox and remove the file:
 
 
  $ VBoxManage closemedium disk ''old.vdi''
 
  $ VBoxManage closemedium disk ''old.vdi''
 
  $ rm ''old.vdi''
 
  $ rm ''old.vdi''
  
=== Replace a virtual disk manually from the .vbox file ===
+
=== Замена виртуального диска из файла .vbox вручную===
  
If you think that editing a simple ''XML'' file is more convenient than playing with the GUI or with {{ic|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:
+
Если вы думаете, что редактирование простого ''XML'' файла более удобно, чем возня с GUI или {{ic|VBoxManage}} и вы хотите заменить (или добавить) виртуальный диск в вашей виртуальной машине, просто замените GUID, местоположение файла и формат для ваших нужд в конфигурационном файле ''.vbox'', соответствующем вашей виртуальной машине:
  
 
{{hc|ArchLinux_vm.vbox|2=
 
{{hc|ArchLinux_vm.vbox|2=
Line 475: Line 517:
 
}}
 
}}
  
then in the {{ic|<AttachedDevice>}} sub-tag of {{ic|<StorageController>}}, replace the GUID by the new one.
+
в {{ic|<AttachedDevice>}} (суб-тег  {{ic|<StorageController>}}) замените старый GUID на новый.
  
 
{{hc|ArchLinux_vm.vbox|2=
 
{{hc|ArchLinux_vm.vbox|2=
Line 483: Line 525:
 
}}
 
}}
  
{{Note|If you do not know the GUID of the drive you want to add, you can use the {{ic|VBoxManage showhdinfo ''file''}}. If you previously used {{ic|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 [http://www.virtualbox.org/manual/ch05.html#cloningvdis UUID is stored inside each disk image].}}
 
  
=== Clone a virtual disk and assigning a new UUID to it ===
+
{{note_(Русский)|Если вы не знаете GUID диска который вы хотите добавить, вы можете использовать {{ic|VBoxManage showhdinfo ''file''}}. Если раньше вы использовали {{ic|VBoxManage clonehd}}, для копирования или конвертирования виртуальных дисков, он выводит GUID после завершения копирования / преобразования. Применение случайного GUID не работает, так как каждый [http://www.virtualbox.org/manual/ch05.html#cloningvdis UUID хранится внутри любого образа диска].}}
  
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, the latter will keep track of all UUID of your virtual machine instance. See the [http://www.virtualbox.org/manual/ch08.html#vboxmanage-list {{ic|VBoxManage list}}] to list the items registered with VirtualBox.
+
=== Клонирование виртуального диска и назначение ему нового UUID ===
  
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).
+
UUID широко используются VirtualBox. Каждая виртуальная машина и каждый виртуальный диск виртуальной машины должны иметь разные UUID. Когда вы запускаете виртуальную машину в VirtualBox, он будет отслеживать все UUID. См [http://www.virtualbox.org/manual/ch08.html#vboxmanage-list {{ic|VBoxManage list}}], чтобы просмотреть список элементов, зарегистрированных в VirtualBox.
  
You can use this command to assign a new UUID to your virtual disk:  
+
Если вы клонировали виртуальный диск вручную путем копирования файла виртуального диска, необходимо будет назначить новый UUID клонированному виртуальному диску.  Вы можете использовать этот диск в той же виртуальной машине или даже в другой (если он уже открыт и таким образом зарегистрирован в VirtualBox).
 +
 
 +
Вы можете использовать эту команду, чтобы назначить новый UUID для вашего виртуального диска:
 
  $ VBoxManage internalcommands sethduuid ''/path/to/disk.vdi''
 
  $ VBoxManage internalcommands sethduuid ''/path/to/disk.vdi''
  
{{Tip|In the future, to avoid copying the virtual disk and assigning a new UUID to your file manually, use {{ic|[http://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi VBoxManage clonehd]}} instead.}}
+
{{tip_(Русский)|В будущем, чтобы избежать копирования виртуального диска и назначения нового UUID вручную, используйте  {{ic|[http://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi VBoxManage clonehd]}}.}}
  
{{Note|The commands above supports [[#Formats supported by VirtualBox|all virtual disk formats supported by VirtualBox]].}}
+
{{note_(Русский) | Все указанные команды поддерживают [[#Форматы, поддерживаемые VirtualBox|все форматы виртуальных дисков, поддерживаемые VirtualBox]].}}
  
== Advanced configuration ==
+
== Расширенная настройка ==
  
=== Virtual machine launch management ===
+
=== Управление запуском виртуальной машины ===
  
==== Starting virtual machines with a service ====
+
==== Запуск виртуальный машин как сервиса systemd ====
  
Find hereafter the implementation details of a systemd service that will be used to consider a virtual machine as a service.
 
  
 
{{hc|/etc/systemd/system/vboxvmservice@.service|2=
 
{{hc|/etc/systemd/system/vboxvmservice@.service|2=
Line 522: Line 564:
 
}}
 
}}
  
{{Note|Replace {{ic|''username''}} with a user that is a member of the {{ic|vboxusers}} group. Make sure the user chosen is the same user that will create/import virtual machines, otherwise the user will not see the VM appliances.}}
+
{{note_(Русский)|Замените {{ic|''username''}} на имя вашего пользователя и добавьте его в группу {{ic|vboxusers}}. Убедитесь, что это именно тот пользователь, который управляет созданием VM. Иначе ничего не получится}}
  
{{Note|If you have multiple virtual machines managed by Systemd and they are not stopping properly, try to add {{ic|RemainAfterExit&#61;true}} and {{ic|KillMode&#61;none}} at the end of {{ic|[Service]}} section.}}
+
{{note_(Русский)|Если у вас есть несколько машин запускаемых {{ic|Systemd}}, и они завершаются некорректно, попробуйте добавить {{ic|RemainAfterExit&#61;true}} и {{ic|KillMode&#61;none}} в конец {{ic|[Service]}} секции.}}
  
To enable the service that will launch the virtual machine at next boot, use:
+
Для запуска VM начиная с следующей загрузки, выполните:
 
  # systemctl enable vboxvmservice@''your_virtual_machine_name''
 
  # systemctl enable vboxvmservice@''your_virtual_machine_name''
  
To start the service that will launch directly the virtual machine, use:
+
Для запуска же в текущий момент времени выполните:
 
  # systemctl start vboxvmservice@''your_virtual_machine_name''
 
  # systemctl start vboxvmservice@''your_virtual_machine_name''
  
VirtualBox 4.2 introduces [http://lifeofageekadmin.com/how-to-set-your-virtualbox-vm-to-automatically-startup/ a new way] for UNIX-like systems to have virtual machines started automatically, other than using a systemd service.
+
VirtualBox 4.2 [http://lifeofageekadmin.com/how-to-set-your-virtualbox-vm-to-automatically-startup/ предоставляет] для UNIX-like систем также другие способы автозапуска, без использования сервисов systemd.
  
==== 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 {{ic|.xbindkeysrc}}. Please refer  to [[Xbindkeys]] for more details.
+
Может быть полезно запускать виртуальные машины непосредственно с клавиатуры вместо использования интерфейса VirtualBox (GUI или CLI). Для этого, вы можете просто определить ключевые привязки в {{ic|.xbindkeysrc}}. Обратитесь к [[Xbindkeys_(Русский)|Xbindkeys]] для более подробной информации.
  
Example, using the {{ic|Fn}} key of a laptop with an unused battery key ({{ic|F3}} on the computer used in this example):
+
Например, запуск по {{ic|Fn+F3}}:
 
  "VBoxManage startvm 'Windows 7'"
 
  "VBoxManage startvm 'Windows 7'"
 
  m:0x0 + c:244
 
  m:0x0 + c:244
 
  XF86Battery
 
  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.}}
+
{{note_(Русский)|Если у вас есть пробел в имени виртуальной машины, то заключите его в одинарные апострофы как сделано в вышеуказанном примере.}}
 +
 
 +
=== Использование конкретных устройств в виртуальной машине ===
  
=== Use specific device in the virtual machine ===
 
  
==== Using USB webcam / microphone ====
+
==== Использование USB веб-камеры/микрофона ====
  
{{Note|You will need to have VirtualBox extension pack installed before following the steps below. See [[#Extension pack]] for details.}}
+
{{note_(Русский) |Вам понадобятся установленные гостевые дополнения, прежде чем следовать приведенному ниже примеру. См. [[#Образ диска с гостевыми дополнениями|Дополнения гостевой ОС]] для более подробной информации.}}
  
# Make sure the virtual machine is not running and your webcam / microphone is not being used.
+
# Убедитесь, что виртуальная машина не работает, а веб-камера / микрофон не используется.
# Bring up the main VirtualBox window and go to settings for Arch machine. Go to USB section.
+
# Вызовите главное окно VirtualBox и перейдите к настройкам для Arch машины. Перейдите в раздел USB.
# Make sure "Enable USB Controller" is selected. Also make sure that "Enable USB 2.0 (EHCI) Controller" is selected too.
+
# Убедитесь, что стоит галочка "Включить USB-контроллер". Также убедитесь, что выбран пункт "Разрешить USB 2.0 (EHCI) контроллер"
# Click the "Add filter from device" button (the cable with the '+' icon).
+
# Нажмите кнопку "Добавить фильтр с устройства" (кабельное со значком «+»).
# Select your USB webcam/microphone device from the list.
+
# Выберите USB веб-камеру/микрофон из списка.
# Now click OK and start your VM.
+
# Нажмите кнопку ОК и запустите VM.
  
==== Detecting web-cams and other USB devices ====
+
==== Обнаружение веб-камер и прочих USB устройств ====
  
Make sure you filter any devices that are not a keyboard or a mouse so they do not start up at boot and this insures that Windows will detect the device at start-up.
+
Убедитесь, что вы фильтруете любые устройства, (кроме клавиатур или мышей), чтобы они не запускались при загрузке -это гарантирует, что ОС Windows обнаружит устройство при запуске.
  
=== Access a guest server ===
+
=== Доступ к гостевому серверу ===
  
To access [[Wikipedia:Apache_HTTP_Server|Apache server]] on a Virtual Machine from the host machine '''only''', simply execute the following lines on the host:
+
Для доступа к [[Wikipedia:Apache_HTTP_Server|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/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/GuestPort" ''80''
 
  $ VBoxManage setextradata GuestName "VBoxInternal/Devices/''pcnet''/0/LUN#0/Config/Apache/Protocol" TCP
 
  $ 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 VM will send Apache's signal on.
 
Where 8888 is the port the host should listen on and 80 is the port the VM will send Apache's signal on.
 +
Где 8888 порт должна слушать хост-система, а VM шлет сигнал Apache на 80 порт.
 +
 +
Чтобы использовать порт ниже, чем 1024 на хост-машине, изменения должны быть внесены в брандмауэр на этом хосте. Он также может быть настроен на работу с SSH или иных услуг путем изменения «Apache» с соответствующими сервисами и портами.
  
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_(Русский)|{{ic|pcnet}} относится к сетевой карте виртуальной машины. Если вы используете карту Intel в VM, необходимо изменить {{ic|pcnet}} на {{ic|e1000}}.}}
  
{{note|{{ic|pcnet}} refers to the network card of the VM. If you use an Intel card in your VM settings, change {{ic|pcnet}} to {{ic|e1000}}.}}
+
=== D3D ускорение в гостевой Windows ===
  
=== D3D acceleration in Windows guests ===
+
Последние версии Virtualbox имеют поддержку ускорения OpenGL внутри гостевой ОС. Эта функция может быть включена галочкой в настройках машины (при установленных дополнениях гостевой ОС VirtualBox). Тем не менее, большинство игр под Windows используют Direct3D (часть DirectX), а не OpenGL, и, таким образом,  этот метод не поможет. Тем не менее возможно получить ускоренное Direct3D в гостевой Windows, за счет заимствования D3D библиотеки из Wine, который переводит инструкции d3d под OpenGL, который и занимается ускорением. Эти библиотеки теперь являются частью дополнений гостевой ОС.
  
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.  
+
После включения OpenGL ускорения, как описано выше, перезагрузите гостевую ОС в безопасном режиме (нажмите F8 до появления экрана для Windows, но после  исчезновения экрана Virtualbox), и установите дополнения гостевой ОС, во время установки установите галочку ''Включить поддержку Direct3D''. Перезагрузитесь обратно в нормальный режим, и вы получите ускоренный Direct3D.
  
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.  
+
{{note_(Русский) | Этот хак может может не работать для некоторых игр, в зависимости от того, какую аппаратную проверку они делают и какие части D3D они используют}}
 +
{{note_(Русский) | Хак был проверено на Windows XP, 7 и 8,1. Если метод не работает на версии Windows, пожалуйста, добавьте эту информацию здесь.}}
  
{{Note | This hack may or may not work for some games depending on what hardware checks they make and what parts of D3D they use.}}
+
=== VirtualBox c USB-ключом ===
{{Note | This was tested on Windows XP, 7 and 8.1. If method does not work on your Windows version please add data here.}}
+
 
 +
При использовании VirtualBox с USB-ключом, например, для запуска установленной машины с ISO-образа, вы вручную должны создать VDMK-файлы существующих приводов. Тем не менее, как только новые файлы VMDK сохраняться и вы перейдёте на другую машину, у вас могут снова возникнуть проблемы. Чтобы избавиться от этой проблемы, можно использовать следующий скрипт для запуска VirtualBox. Этот сценарий будет убирать старые файлов VMDK и создавать новые:
  
=== 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:
 
 
{{bc|<nowiki>
 
{{bc|<nowiki>
 
#!/bin/bash
 
#!/bin/bash
Line 627: Line 673:
 
VirtualBox
 
VirtualBox
 
</nowiki>}}
 
</nowiki>}}
Note that your user has to be added to the "disk" group to create VMDKs out of existing drives.
+
Обратите внимание, что ваш пользователь должен быть добавлен в группу {{ic|disk}}, чтобы создать VMDKs из существующих приводов.
  
=== Run a native Arch Linux installation inside VirtualBox ===
+
=== Запуск установленного Arch Linux внутри VirtualBox ===
  
If you have a dual boot system between Arch Linux and another operating system, it can become rapidly tedious to switch back and forth if you need to work in both. Also, by using virtual machines, you just have a tiny fragment of your computer power, which can cause issues when working on projects requiring performance.
+
Если у вас есть дуалбут системы между Arch Linux и другими операционных системами, он может быстро стать утомительным для переключения туда-сюда, если вам нужно работать в обоих. Кроме того, с помощью виртуальных машин, у вас есть только крошечный фрагмент власти компьютера, который может привести к проблемам при работе на проектах, требующих производительности.
  
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.
+
Это руководство позволит вам использовать в виртуальной машине, вашу родную установку Arch Linux, когда вы используете свою вторую операционную систему. Таким образом, вы сохраняете возможность запуска каждой операционной систему изначально, но есть возможность запустить установленный физически Arch Linux внутри виртуальной машины.
  
==== 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 [[RAID#Implementation|FakeRAID]] for example. The fake RAID device will be mapped in {{ic|/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 {{ic|/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.
+
В зависимости от настроек вашего жесткого диска, файлы устройств, представляющих свои жесткие диски могут выглядеть по-разному когда вы будете запускать установку Arch Linux -  изначально или в виртуальной машине. Эта проблема возникает, например, при использовании [[RAID#Implementation|FakeRAID]]. Поддельные RAID устройстве, будут перемещены в {{ic|/dev/mapper/}} при запуске дистрибутива GNU/Linux , в то время как будут устройства по-прежнему доступны по отдельности. Тем не менее, в вашей виртуальной машине может оказаться без отображения в  {{ic|/dev/sdaX}} например, потому что драйвера, управляющие поддельными RAID в вашей локальной операционной системе (например, Windows) абстрагируются под поддельные RAID устройства.
  
To circumvent this problem, we will need to use an addressing scheme that is persistent to both systems. This can be achieved using [[Fstab#UUIDs|UUIDs]] in your {{ic|/etc/fstab}} file. Make sure your [[fstab]] file is using UUIDs, otherwise fix this issue. Read [[fstab]] and [[Persistent block device naming]].
+
Чтобы обойти эту проблему, мы должны будем использовать схему адресации, работающую в обеих системах. Это может быть достигнуто с помощью  [[Fstab#UUIDs|UUIDs]]{{Broken section link}}  в файле {{ic|/etc/fstab}}. Убедитесь, что ваш [[Fstab_(Русский)|fstab]] использует UUID - в противном случае решайте эту проблему. Читайте [[Fstab]] и [[Persistent block device naming|Устойчивое именование разделов]].
  
{{ic|/etc/fstab}} is not the only location where UUIDs are used. Bootloaders and boot managers make use of them too. Now, make sure these are really using UUIDs.
+
{{ic|/etc/fstab}} не является единственным местом, где используются UUID. Менеджеры загрузчиков тоже  их используют. Убедитесь, что они действительно используют UUID-ы.
  
; [[GRUB Legacy]]
+
; [[GRUB_Legacy_(Русский)|GRUB Legacy]]
If you are still using the old [[GRUB Legacy]], maybe is it [[GRUB Legacy#Upgrading to GRUB2|time to upgrade]], since this package is now dropped from the official Arch Linux repositories. If you want to keep it, edit {{ic|/boot/grub/menu.lst}} and replace the {{ic|1=root=/dev/sdXX}} statement in your Arch Linux boot entry by the Linux UUID mapping in {{ic|/dev/disk/by-uuid/}} corresponding to your root partition.
+
Если вы все еще используете [[GRUB_Legacy_(Русский)|GRUB Legacy]], может быть настало время его [[GRUB Legacy#Upgrading to GRUB2|обновить]], так как этот пакет в настоящее время удален из официальных репозиториев Arch Linux. Если вы хотите сохранить его, отредактируйте {{ic|/boot/grub/menu.lst}} и замените {{ic|1=root=/dev/sdXX}} в загрузочной записи Arch Linux на Linux UUID {{ic|/dev/disk/by-uuid/}}, соответствующий корневому разделу.
  
 
  title  Arch Linux
 
  title  Arch Linux
Line 651: Line 697:
 
  initrd /initramfs-linux-vbox.img
 
  initrd /initramfs-linux-vbox.img
  
Repeat the process here, for the fallback entry.
+
Предварительно создайте резервную копию файла на случай ошибок.
  
; [[GRUB]]
+
; [[GRUB_(Русский)|GRUB]]
If you are running the most recent version of [[GRUB]]; you have nothing to do. Yet another reason to upgrade to GRUB 2.
+
Если вы работаете с самой последней версией [[GRUB_(Русский)|GRUB]]; у вас нет проблем. Это ещё одна причина для перехода на GRUB 2.
  
{{Warning|
+
{{Warning_(Русский)|
* 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.
+
* Убедитесь, что ваш хост-раздел доступна только для чтения с вашей виртуальной машины Arch Linux. Это позволит избежать риска повреждения.
* 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.}}
+
* Вы никогда не должны позволять VirtualBox загружаться с момента загрузки вашей второй операционной системы, которая  используется в качестве хоста для этой виртуальной машины! Возьмите, таким образом, за правило - особенно если ваша загрузка производится по умолчанию в другую операционную систему. Установите более большой тайм-аут или переместите систему ниже в порядке предпочтений.}}
  
==== Make sure your mkinitcpio image is correct ====
+
==== Убедитесь в корректности образа mkinitcpio ====
  
Make sure your [[Mkinitcpio|mkinitcpio]] configuration uses the [[Mkinitcpio#HOOKS|HOOK]] {{ic|block}}:
+
Убедитесь, что в конфигурации вашего [[Mkinitcpio_(Русский)|mkinitcpio]] есть [[Mkinitcpio_(Русский)#Запрет обработчиков|хук]] {{ic|block}}:
  
 
{{hc|/etc/mkinitcpio.conf|2=
 
{{hc|/etc/mkinitcpio.conf|2=
Line 669: Line 715:
 
[...]}}
 
[...]}}
  
If it is not present, add it, and regenerate your initramfs, with the command {{ic|# mkinitcpio -p linux}}, whose [[Mkinitcpio#Image creation and activation|usage is described here in detail]].
 
  
==== Create a VM configuration to boot from the physical drive ====
+
Если это не так, добавьте хук и сгенерируйте свой initramfs, с помощью команды {{ic|# mkinitcpio -p linux}}, что [[Mkinitcpio_(Русский)#Создание образа|описано здесь более подробно]]{{Broken section link}}.
  
===== Create a raw disk .vmdk image =====
+
==== Создание конфигурации виртуальной машины для загрузки с физического диска ====
  
Now, we need to create a new virtual machine which will use a [https://www.virtualbox.org/manual/ch09.html#rawdisk 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 {{ic|VBoxManage}}.
+
===== Создайте потоковый(raw) образ .vmdk =====
  
Boot the host which will use the Arch Linux virtual machine. The command will need to be adapted according to the host you have.
+
Теперь нам нужно создать новую виртуальную машину, которая будет использовать [https://www.virtualbox.org/manual/ch09.html#rawdisk RAW диск] в качестве виртуального диска, для этого мы будем использовать файл ~ 1Kib VMDK, которые будет сбрасываться на физический диск. VirtualBox не имеет этой опции в графическом интерфейсе, так что мы должны использовать консоль и внутреннюю команду из {{ic|VBoxManage}}.
  
; On a GNU/Linux host:
+
Загрузите хост, который будет использовать виртуальную машину Arch Linux.Команда должны быть адаптированы в соответствии с вашей хост-машиной.
  
There is 3 ways to achieve this: login as root, changing the access right of the device with {{ic|chmod}}, adding your user to the {{ic|disk}} group. The latter way is the more elegant, let us proceed that way:
+
; На хосте GNU/Linux:
 +
 
 +
Существует 3 способа этого достичь: вход от суперпользователя, изменение прав доступа к устройству командой {{ic|chmod}}, добавление пользователя в группу {{ic|disk}}. Последний путь является более элегантным. Реализуем таким образом:
  
 
  # gpasswd -a ''your_user'' disk
 
  # gpasswd -a ''your_user'' disk
  
Apply the new group settings with:
+
Применить новые параметры сейчас же:
  
 
  $ newgrp
 
  $ newgrp
  
Now, you can use the command:
+
Теперь вы можете использовать следующую команду:
  
 
  $ VBoxManage internalcommands createrawvmdk -filename ''/path/to/file.vmdk'' -rawdisk ''/dev/sdb'' -register  
 
  $ 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.
+
Адаптируйте команду для ваших потребностей.
 +
 
 +
; На хосте с Windows:
  
; On a Windows host:
+
Откройте окно командной строки (необходимо запускать от имени администратора). {{tip_(Русский) | В Windows откройте меню Пуск / стартовый экран, введите {{ic|cmd}}, и нажмите {{ic|Ctrl+Shift+Enter}}, это ярлык для запуска выбранной программы с правами администратора.}}
  
Open a command prompt must be run as administrator. {{Tip|On Windows, open your start menu/start screen, type {{ic|cmd}}, and type {{ic|Ctrl+Shift+Enter}}, this is a shortcut to execute the selected program with admin rights.}}
+
В Windows наименование дисков отлично от UNIX. Используйте эту команду, чтобы определить значения в вашей системе Windows, и их расположение:
  
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:{{hc|# wmic diskdrive get name,size,model|
+
{{hc|# wmic diskdrive get name,size,model|
 
Model                              Name                Size
 
Model                              Name                Size
 
WDC WD40EZRX-00SPEB0 ATA Device    \\.\PHYSICALDRIVE1  4000783933440
 
WDC WD40EZRX-00SPEB0 ATA Device    \\.\PHYSICALDRIVE1  4000783933440
Line 706: Line 755:
 
Innostor Ext. HDD USB Device        \\.\PHYSICALDRIVE3  1000202273280}}
 
Innostor Ext. HDD USB Device        \\.\PHYSICALDRIVE3  1000202273280}}
  
In this example, as the Windows convention is {{ic|\\.\PhysicalDriveX}} where X is a number from 0, {{ic|\\.\PHYSICALDRIVE1}} could be analogous to {{ic|/dev/sdb}} from the Linux disk terminology.
+
В этом примере Windows называет диски {{ic|\\.\PhysicalDriveX}}, Где X представляет собой число от 0, {{ic|\\.\PHYSICALDRIVE1}} может быть сопоставим с {{ic|/dev/sdb}} из терминологии Linux.
  
To use the {{ic|VBoxManage}} command on Windows, you can either, change the current directory to your VirtualBox installation folder first with {{ic|cd C:\Program Files\Oracle\VirtualBox\}}
+
Для использования в командной строке {{ic|VBoxManage}} в Windows, вы должны изменить текущую папку в папку установки VirtualBox, обычно это {{ic|cd C:\Program Files\Oracle\VirtualBox\}}
  
 
  # .\VBoxManage.exe internalcommands createrawvmdk -filename C:\file.vmdk -rawdisk \\.\PHYSICALDRIVE1
 
  # .\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
 
  # "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" internalcommands createrawvmdk -filename C:\file.vmdk -rawdisk \\.\PHYSICALDRIVE1
  
; On another OS host:
+
; На другой хост-OS:
  
There are other limitations regarding the aforementioned command when used in other operating systems like OS X, please thus [https://www.virtualbox.org/manual/ch09.html#rawdisk read carefully the manual page], if you are concerned.
+
Есть и другие ограничения, касающиеся вышеприведенной команды, когда она используется в других операционных системах - таких как OS X.  Прочитайте [https://www.virtualbox.org/manual/ch09.html#rawdisk внимательно руководство], если это вас беспокоит.
  
===== Create the VM configuration file =====
+
===== Создание файла конфигурации виртуальной машины =====
  
{{Note|
+
{{note_(Русский) |
* 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\.
+
* Для использования команды VBoxManage в Windows, вам нужно сначало изменить текущую директорию в папку установки 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.}}
+
cd C:\Program Files\Oracle\VirtualBox\
 +
* Windows делает использование обратного слеша вместо слеша, пожалуйста, замените все  вхождения / на \ в командах, которые вы будете использовать.}}
  
After, we need to create a new machine (replace the ''VM_name'' to your convenience) and register it with VirtualBox.
+
После этого мы должны создать новую машину (замените ''VM_name'' ная ваш вариант) и зарегистрировать её в VirtualBox.
  
 
  $ VBoxManage createvm -name ''VM_name'' -register
 
  $ VBoxManage createvm -name ''VM_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.
+
Затем виртуальный диск должен быть подключен к машине. Это будет зависеть от того, находится ли корень в вашей оригинальной установке Arch Linux на IDE или контроллере SATA.
  
If you need an IDE controller:
+
Если вам нужен контроллер IDE:
  
 
  $ VBoxManage storagectl ''VM_name'' --name "IDE Controller" --add 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 storageattach machineA --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium /path/to/file.vmdk
  
otherwise:
+
В противном случае:
  
 
  $ VBoxManage storagectl ''VM_name'' --name "SATA Controller" --add sata
 
  $ 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
 
  $ VBoxManage storageattach machineA --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.
+
В то время как вы продолжаете использовать интерфейс командной строки, рекомендуется использовать VirtualBox GUI, чтобы персонализировать настройки виртуальной машины. Необходимо указать аппаратную конфигурацию  как можно ближе к  родной машине: включение ускорения 3D, увеличение видеопамяти, установка сетевого интерфейса и т.д.
  
==== Install the Guest Additions ====
+
==== Установка дополнений гостевой ОС ====
  
Finally, you may want to seamlessly integrate your Arch Linux with your host operating system and allow copy pasting between both OSes. Please refer to [[#Install the Guest Additions]] for that, since this Arch Linux virtual machine is basically an Arch Linux guest.
+
Наконец, вы можете легко интегрировать Arch Linux с хост-системой и синхронизировать буфер обмена между двумя ОС. Обратитесь к [[#Образ диска с гостевыми дополнениями|установке гостевых дополнений]] для этого.
  
{{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 {{ic|/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 {{ic|multi-user.target}} with {{ic|# systemctl isolate graphical.target}} (more details at [[Systemd#Targets table]] 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 {{ic|startx}}} manually with a custom {{ic|xorg.conf}}.}}
+
{{Warning_(Русский)| Для [[Xorg (Русский)]], чтобы работать в родной и в виртуальной машине, так как очевидно, он должен использовать другой драйвер, то лучше, если не будет {{ic|/etc/X11/xorg.conf}} - так как Xorg будет собирать все, что необходимо на лету. Однако, если вам действительно нужно свою собственную конфигурацию Xorg, может быть, стоит установить используемые по умолчанию цели Systemd к {{ic|multi-user.target}} с {{ic|# systemctl isolate graphical.target}} (более [[Systemd_(Русский)#Изменение текущей цели|подробно]]). Таким образом, графический интерфейс будет отключен (т.е. Xorg не запустится) и после входа в систему вы сможете выполнить {{ic|startx}} вручную с пользовательским {{ic|xorg.conf}}.}}
  
=== Install a native Arch Linux system from VirtualBox ===
+
=== Физическая установка системы Arch Linux из 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 [http://www.virtualbox.org/manual/ch09.html#rawdisk raw disk]. If the existing operating system is Linux based, you may want to consider following [[Install from Existing Linux]] instead.
+
В некоторых случаях это может быть полезно для установки родной системы Arch Linux из другой операционной системы: один из способов достижения этой цели является выполнение установки через VirtualBox на [http://www.virtualbox.org/manual/ch09.html#rawdisk жёсткий диск]. Если существующая операционная система на основе Linux, вы можете рассмотреть [[Install from existing Linux (Русский)|установку из существующего Linux]] вместо этого.
  
This scenario is very similar to [[#Run a native Arch Linux installation inside VirtualBox]], but will follow those steps in a different order: start by [[#Create a raw disk .vmdk image]], then [[#Create the VM configuration file]].
+
Этот сценарий очень похож на [[#Запуск установленного Arch Linux внутри VirtualBox|Запуск установленного ArchLinux в VirtualBox]], но будет реализовывать эти шаги в другом порядке: начать с создания [[#Создайте потоковый(raw) образ .vmdk|.vmdk образа жёсткого диска]], а затем [[#Создание файла конфигурации виртуальной машины|создавать файл конфигурации виртуальной машины]].
  
Now, you should have a working VM configuration whose virtual VMDK disk is tied to a real disk. The installation process is exactly the same as the steps described in [[#Installation steps for Arch Linux guests]], but [[#Make sure you have a persistent naming scheme]] and [[#Make sure your mkinitcpio image is correct]].
+
Теперь вы должны иметь рабочую конфигурацию виртуальной машины, чей виртуальный VMDK-диск связан с реальным диском. Процесс установки точно такой же, как и описанный в [[#Пошаговая установка Arch Linux как гостевой ОС|пошаговой установке ArchLinux в VirtualBox]], но сначала [[#Убедитесь, что система наименования разделов не изменяется|убедитесь в постоянной схеме наименования разделов]] и [[#Убедитесь в корректности образа mkinitcpio|корректности образа mkinitcpio]].
  
{{Warning|
+
{{Warning_(Русский)|
*For BIOS systems and MBR disks, do not install a bootloader 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.
+
* Для BIOS и MBR дисков: не устанавливайте загрузчик внутри виртуальной машины - он не будет работать, так как MBR не связан с MBR вашей реальной машины, и виртуальный диск отображается только в реальном разделе без MBR
*For UEFI systems without [[Wikipedia:Compatibility Support Module#CSM|CSM]] and GPT disks, the installation will not work at all since:
+
* Для UEFI систем без [[Wikipedia:Unified Extensible Firmware Interface#Compatibility Support Module|CSM]] и GPT дискa установка не будет работать вообще, так как:
:*the [[Wikipedia:EFI System partition|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);
+
:* [[Wikipedia:EFI system partition|ESP]] не отображается на виртуальный диск и Arch Linux требует, чтобы ядро Linux было на нём, чтобы загрузиться в качестве приложения EFI (смотрите статью [[EFISTUB (Русский)]])
:*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.
+
:* и efivars, если вы устанавливаете Arch Linux через  VirtualBox, используя режим EFI, не загрузит ни одну из ваших реальных систем: записи Bootmanager не смогут быть зарегистрированы
*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.}}
+
* Вот почему рекомендуется создавать разделы в родной установке. В противном случае разделы не будут приниматься во внимание в MBR / GPT таблице разделов}}
  
After completing the installation, boot your computer natively with an GNU/Linux installation media (whether it be Arch Linux or not), [[Beginner's Guide#Chroot and configure the base system|chroot]] into your installed Arch Linux installation and [[Beginner's Guide#Install and configure a bootloader|#Install and configure a bootloader]].
+
После завершения установки загрузите компьютер сперва с установочного носителя GNU/Linux (будь то Arch Linux или нет), выполните [[Installation guide (Русский)#Chroot|chroot]] в установленной Arch Linux и установите и настройте [[Installation guide (Русский)#Загрузчик|загрузчик]].
  
=== Move a native Windows installation to a virtual machine ===
+
=== Перемещение физически установленного Windows в виртуальную машину ===
  
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).
+
Если вы хотите перенести существующую Windows на виртуальную машину, которая будет использоваться с VirtualBox на GNU/Linux, этот вариант использования для вас. В этом разделе описан перенос только Windows с использованием схемы MSDOS/Intel разделов. Ваш  Windows должен находиться на первом после MBR разделе. Работа в других разделах доступна, но были не тестировалась (см [[#Известные ограничения|Известные ограничения]] для более подробной информации)
  
{{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 remove 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.}}
+
{{Warning_(Русский)|Если вы используете OEM версию Windows, этот процесс является неправомочным по конечной пользовательской лицензии. Действительно, лицензия OEM, как правило, указывает, что Windows Install связана с аппаратными средствами. Сделайте так, что бы у вас был полный Windows Install или полная лицензия, прежде чем продолжить. Если у вас есть полная лицензию для Windows, но последний не приходит в объеме, ни в качестве специальной лицензии на нескольких компьютерах, это означает, что вы должны будете удалить родную установку после операции клонирования в VM.}}
  
A couple of tasks are required to be done inside your native Windows installation first, then on your GNU/Linux host.
+
Несколько задач необходимо выполнить внутри вашей  Windows, а затем в хост-машине GNU/Linux.
  
==== Tasks on Windows ====
+
==== Задачи в Windows ====
  
The first three following points comes from [https://www.virtualbox.org/wiki/Migrate_Windows#HAL this outdated VirtualBox wiki page], but are updated here.
+
Первые три следующих моменты происходит от [https://www.virtualbox.org/wiki/Migrate_Windows#HAL этой устаревшей вики-страницы VirtualBox], но обновляются здесь.
  
* 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. [https://www.virtualbox.org/wiki/Migrate_Windows#HardDiskSupport 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 {{ic|.bat}} script), installing them and registering them with the regedit database.
+
* Удалите проверку IDE/ATA контроллеров (только Windows XP): Windows запоминает IDE/ATA после установки, и не будет загружаться, если он обнаружит что они изменились.Решение, предложенное Microsoft является повторным использованием того же контроллера или использовать один из той-же серии, что невозможно сделать, поскольку мы используем виртуальную машину. [https://www.virtualbox.org/wiki/Migrate_Windows#HardDiskSupport MergeIDE], немецкий инструмент, разработан как другое решением, предложенное Microsoft. Решение в основном состоит в принятии всех IDE/ATA драйверов контроллера IDE, поддерживаемые Windows XP от первоначального архива драйвера, их установке и регистрации в реестре через Regedit.
  
* Use the right type of Hardware Abstraction Layer (old 32 bits Windows versions): Microsoft ships 3 default versions: {{ic|Hal.dll}} (Standard PC), {{ic|Halacpi.dll}} (ACPI HAL) and {{ic|Halaacpi.dll}} (ACPI HAL with IO APIC). Your Windows install could come installed with the first or the second version. In that way, please [https://www.virtualbox.org/manual/ch08.html#idp56927888 disable the ''Enable IO/APIC'' VirtualBox extended feature].
+
* Используйте правильный тип слоя абстрагирования оборудования (старые 32-битный Windows): Microsoft использует с 3 версии по умолчанию: {{ic|Hal.dll}} (Standard PC), {{ic|Halacpi.dll}} (ACPI HAL) и {{ic|halaacpi.dll}} (ACPI HAL с IO APIC). Ваша Windows-установка могла устанавитmся с первого или второго варианта. В этом случае, пожалуйста, [https://www.virtualbox.org/manual/ch08.html#idp56927888 отключите ''Enable IO/APIC '' в расширенных возможностях VirtualBox].
  
* Disable any AGP device driver (only outdated Windows versions): If you have the files {{ic|agp440.sys}} or {{ic|intelppm.sys}} inside the {{ic|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.
+
* Отключите драйвер AGP устройства (только устаревшие версии ОС Windows): Если у вас есть файлы {{ic|agp440.sys}} или {{ic|intelppm.sys}} внутри {{ic| C:\Windows\System32\drivers\}}, то удалите его. Так как VirtualBox использует PCI виртуальную графическую карту, это может вызвать проблемы, когда  используется драйвер AGP.
  
* 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).
+
* Создайте диск восстановления ОС Windows: В следующих шагах, если что-то испортится, вам нужно будет восстановить установку Windows. Убедитесь, что у вас есть установочного носителя под рукой, или создайте через ''Создать диск восстановления'' в Vista SP1, ''Создать диск восстановления системы'' в Windows 7 или ''Создать диск восстановления'' в Windows 8.x).
  
==== Tasks on GNU/Linux ====
+
==== Задачи в GNU/Linux ====
  
* Reduce the native Windows partition size to the size Windows actually needs with {{ic|ntfsresize}} available from {{Pkg|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.
+
* Уменьшите родной размер раздела Windows, для чего нужен {{ic|ntfsresize}} из пакета {{Pkg|ntfs-3g}}. Вы определяете размер, который будет равен  размере VDI, который будет создан на следующем шаге. Если этот размер будет слишком мал, вы можете сломать ваш Windows и он может не загружаться вообще.
  
:Use the {{ic|--no-action}} option first to run a test:
+
:Включите параметр {{ic|--no-action}} для тестового запуска:
 
:{{bc|# ntfsresize --no-action --size ''52Gi'' ''/dev/sda1''}}
 
:{{bc|# ntfsresize --no-action --size ''52Gi'' ''/dev/sda1''}}
  
:If only the previous test succeeded, execute this command again, but this time without the aforementioned test flag.
+
:Если только предыдущий тест прошел успешно, необходимо выполнить следующую команду снова, только без вышеупомянутого параметра {{ic|--no-action}}.
  
* Install VirtualBox on your GNU/Linux host (see [[#Installation steps for Arch Linux hosts]] if your host is Arch Linux).
+
* Установите VirtualBox на ваш GNU/Linux-хост (см. [[#Пошаговая установка на хост-компьютер под управлением 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 {{ic|sda2}} and {{ic|sda3}}will be later removed from the partition table and the MBR bootloader  will be updated.
+
* Создайте образ диска для Windows от начала диска  до конца первого раздела, на котором находится Windows. Копирование с начала диска необходимо потому, что пространство MBR в начале привода должно быть перенесено на виртуальный диск вместе с самим Windows. В этом примере следующие два раздела {{ic|sda2}} и {{ic|sda3}} будут позже удалены из таблицы разделов и загрузчик MBR будет обновляться.
  
 
:{{bc|<nowiki># sectnum=$(( $(cat /sys/block/''sda/sda1''/start) + $(cat /sys/block/''sda/sda1''/size) ))</nowiki>}}
 
:{{bc|<nowiki># sectnum=$(( $(cat /sys/block/''sda/sda1''/start) + $(cat /sys/block/''sda/sda1''/size) ))</nowiki>}}
:Using {{ic|cat /sys/block/''sda/sda1''/size}} will output the number of total sectors of the first partition of the disk {{ic|sda}}. Adapt where necessary.
+
Использование {{ic|cat /sys/block/''sda/sda1''/size}} выведет количество секторов первого раздела диска {{ic|sda}}. Адаптируйте команду, если это вам нужно.
  
 
:{{bc|<nowiki># dd if=''/dev/sda'' bs=512 count=$sectnum | VBoxManage convertfromraw stdin ''windows.vdi'' $(( $sectnum * 512 ))</nowiki>}}
 
:{{bc|<nowiki># dd if=''/dev/sda'' bs=512 count=$sectnum | VBoxManage convertfromraw stdin ''windows.vdi'' $(( $sectnum * 512 ))</nowiki>}}
:We need to display the size in byte, {{ic|$(( $sectnum * 512 ))}} will convert the sector numbers to bytes.
+
:Мы должны показать размер в байтах, {{ic|$(( $sectnum * 512 ))}} преобразует номера секторов в байты.
 +
 
 +
* Так как вы создали свой образ диска с правами администратора, установите права доступа на образ диска: {{ic|# chown $USER:users windows.vdi}}.
  
* Since you created your disk image as root, set the right ownership to the virtual disk image: {{ic|# chown $USER:users windows.vdi}}.
+
* Создайте Ваш файл конфигурации виртуальной машины - используйте виртуальный диск, созданный ранее в качестве основного виртуального жесткого диска.
  
* Create your virtual machine configuration file and use the virtual disk created previously as the main virtual hard disk.
+
* Постарайтесь загрузиться с виртуальной машины Windows (может работать). Во-первых, хотя бы отключите восстановление дисков из процесса загрузки, так как это может помешать (и, вероятно, будет мешать) загрузиться в безопасном режиме.
  
* Try to boot your Windows VM, it may just workFirst though remove and repair disks from the boot process as it may interfere (and likely will) booting into safe-mode.
+
* Попытка загрузить виртуальную машину в безопасном режиме (нажмите клавишу F8 до логотипа Windows) ... при возникновении вопросов о загрузке, читайте [[#Исправление MBR и загрузчика Microsoft|Исправление MBR и загрузчика Microsoft]]. В безопасном режиме вероятно будут установлен драйверы. Кроме того, установите Дополнения гостевой ОС через меню ''Devices'' > ''Insert Guest Additions CD image...''. Если новое диалоговое окно не отображается, перейдите к компакт-дискам и запустите программу установки вручную.
  
* 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 bootloader]].  In safe-mode, drivers will be installed likely by the Windows plug-and-play detection mechanism [http://i.imgur.com/hh1RrSp.png 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.
+
* Наконец-то у вас есть необходимый Windows в виртуальной машине. Ознакомьтесь с [[#Известные ограничения|известными ограничениями]].
  
* You should finally have a working Windows virtual machine. Do not forget to read the [[#Known limitations]].
+
==== Исправление MBR и загрузчика Microsoft ====
  
==== Fix MBR and Microsoft bootloader ====
+
Если ваша виртуальная машина с Windows отказывается загружаться, вам, возможно, потребуется применить следующие изменения в вашей виртуальной машине.
  
If your Windows virtual machine refuses to boot, you may need to apply the following modifications to your virtual machine.
+
* Начальная загрузка GNU/Live внутри виртуальной машины, прежде чем загрузится ОС Windows .
  
*Boot a GNU/Live live distribution inside your virtual machine before Windows starts up.
+
* Удалить другие записи разделы с  MBR виртуального диска. В самом деле, так как мы скопировали MBR и только раздел Windows, записи, относящихся к другим разделам по-прежнему присутствуют в MBR, но разделы ведь больше не доступны. Используйте {{ic|fdisk}}, чтобы добиться этого, например.
  
*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 {{ic|fdisk}} to achieve this for example.
 
 
:{{bc|<nowiki>fdisk ''/dev/sda''
 
:{{bc|<nowiki>fdisk ''/dev/sda''
 
Command (m for help): a
 
Command (m for help): a
 
Partition number (''1-3'', default ''3''): ''1''</nowiki>}}
 
Partition number (''1-3'', default ''3''): ''1''</nowiki>}}
  
*Write the updated partition table to the disk (this will recreate the MBR) using the {{ic|m}} command inside {{ic|fdisk}}.
+
* Запишите обновленную таблицу разделов на диск (это будет пересозданием MBR) с помощью {{ic|m}} команды в окружении {{ic|fdisk}}.
 +
 
 +
* Используйте {{Pkg|testdisk}} (см.  [http://www.cgsecurity.org/index.html?testdisk.html здесь] для более подробной информации), чтобы добавить общий MBR:
  
*Use {{Pkg|testdisk}} (see [http://www.cgsecurity.org/index.html?testdisk.html here] for details) to add a generic MBR:
 
 
:{{bc|# 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]}}
 
:{{bc|# 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 [http://support.microsoft.com/kb/927392 described here].
 
  
==== Known limitations ====
+
* С новым MBR и обновленной таблицей разделов, ваша виртуальная машина с Windows должна загрузиться. Если вы все еще сталкиваетесь с вопросами, загрузите диск восстановления Windows с предыдущей стадии, и внутри вашей среды Windows RE, выполняйте команды [http://support.microsoft.com/kb/927392 описанные здесь].
 +
 
 +
==== Известные ограничения ====
 +
 
  
*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!
+
* Ваша виртуальная машина может иногда зависать и забивать оперативную память, это может быть вызвано  конфликтующими драйверами , установленными внутри виртуальной машины Windows. Удачи вам найти их!
*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 [http://superuser.com/questions/237782/virtualbox-booting-cloned-disk/253417#253417 VirtualBox: booting cloned disk] or will require to fix the partition table [http://gparted.org/h2-fix-msdos-pt.php 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. {{ic|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. {{ic|<nowiki>{ 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 ))</nowiki>}}.
+
* Ваша Windows должна находиться в первом разделе для описанного выше процесса, чтобы заработать. Если это требование не выполнено, система может работать, но это не было испытаны. Это потребует либо копирования MBR и редактирования в шестнадцатеричном коде, см. [http://superuser.com/questions/237782/virtualbox-booting-cloned-disk/253417#253417 VirtualBox: загрузка клонированного диска] или потребуется  исправить таблицу разделов [http://gparted.org/h2-fix-msdos-pt.php вручную] или восстанавливать Windows с диска восстановления, созданного в предыдущем шаге. Рассмотрим нашу установку окна на втором раздела; мы скопируем MBR, второму разделу, где лужит образ диска {{ic|VBoxManage convertfromraw}} необходимо общее количество байтов, которые будут записаны: Вычислим как сумму  размера MBR (начало первого раздела) плюс размер второго (Windows) раздела.{{ic|<nowiki>{ 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 ))</nowiki>}}.
  
== Troubleshooting ==
+
== Возможные проблемы ==
  
 
=== VERR_ACCESS_DENIED ===
 
=== VERR_ACCESS_DENIED ===
  
To access the raw vmdk image on a windows host, run the VirtualBox GUI as administrator.
+
Чтобы получить доступ к образу vdmk, расположенного на хосте под Windows, запустите VirtualBox GUI от имени администратора.
  
=== Keyboard and mouse are blocked in my virtual machine ===
+
=== Клавиатура и мышка заблокированы виртуальной машиной ===
  
This means your virtual machine has captured the input of your keyboard and your mouse. Simply press the right {{ic|Ctrl}} key and your input should control your host again.
+
Это означает, что ваша виртуальная машина захватила ввод клавиатуры и мышки. Просто нажмите правый {{ic|Ctrl}} и ваши устройства ввода будут доступны в основной системе.
  
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 the [[#Install the Guest Additions]] step if you guest is Arch Linux, otherwise read the official VirtualBox help.
+
Для того, чтобы управление мышкой возвращалось основной ОС при выходе курсора за границы окна виртуальной машины, без нажатия каких-либо клавиш, и для возможности бесшовной интеграции, установите гостевое дополнение на виртуальную машину. Читайте шаг [[#Установка гостевых дополнений]] если вы новичок в Arch Linux, или читайте официальную справку VirtualBox.
  
=== Cannot send CTRL+ALT+Fn key to my virtual machine ===
+
=== Не могу отправить комбинацию CTRL+ALT+Fn в виртуальную машину ===
  
Your guest operating system is a GNU/Linux distribution and you want to open a new TTY shell by hitting {{ic|Ctrl+Alt+F2}} or exit your current X session with {{ic|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 {{ic|Ctrl+Alt+F2}} to the guest for example, simply hit your ''Host Key'' (usually the right {{ic|Ctrl}} key) and press {{ic|F2}} simultaneously.
+
Если в вашей виртуальной машине установлен дистрибутив GNU/Linux и вы хотите открыть новую оболочку TTY нажатием {{ic|Ctrl+Alt+F2}} или выйти из X сессии с помощью {{ic|Ctrl+Alt+Backspace}}, просто нажав это сочетание клавиш без какой-либо адаптации, гостевая машина его не получит и основная ОС (если это тоже дистрибутив GNU/Linux) распознает это сочетание клавиш. Для отправки {{ic|Ctrl+Alt+F2}} на виртуальную машину нужно просто нажать ваш ''Host Key'' (обычно это правый {{ic|Ctrl}}) и одновременно нажать {{ic|F2}}.
  
=== Fix ISO images problems ===
+
=== Исправление проблем в ISO-образах ===
  
While VirtualBox can mount ISO images without problem, there are some image formats which cannot reliably be converted to ISO. For instance, ccd2iso ignores .ccd and .sub files, which can give disk images with broken files.  
+
В то время как VirtualBox монтирует оригинальный образы ISO без проблем, есть такие форматы образов, которые не могут надежно быть преобразованы в ISO. Например, ccd2iso игнорирует .ccd и .sub файлы, что может привести к созданию образа диска с разбитыми файлами.
  
In this case, you will either have to use [[CDEmu]] for Linux inside VirtualBox or any other utility used to mount disk images.
+
В этом случае вам придется использовать [[CDemu]] для Linux внутри VirtualBox или любую другую утилиту, предназначенную для монтирования образов дисков.
  
=== VirtualBox GUI does not match my GTK Theme ===
+
=== VirtualBox GUI не видит мою тему GTK 2x/3x ===
  
See [[Uniform Look for Qt and GTK Applications]] for information about theming Qt based applications like Virtualbox.
+
Смотрите [[Uniform look for Qt and GTK applications (Русский)|Единый интерфейс GTK/QT приложений]] для получения информации о настройке GUI Qt в GTK-окружениях.
  
=== OpenBSD unusable when virtualisation instructions unavailable ===
+
=== OpenBSD не работает при недоступных инструкциях виртуализации ===
  
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 [https://www.virtualbox.org/ticket/3947 may solve the problem]. You can do it like this:
+
В то время как OpenBSD отлично работает  на других гипервизорах без включенной виртуализации (VT-х AMD-V), виртуальная машина с OpenBSD работает в VirtualBox без этих инструкций некорректно, выдавая кучу ошибок сегментации. Запуская VirtualBox с аргументом ''-norawr0'' [https://www.virtualbox.org/ticket/3947 можно избавиться от этой проблемы]. Вы можете сделать это следующим образом:
  $ VBoxSDL -norawr0 -vm ''name_of_OpenBSD_VM''
+
  $ VBoxSDL -norawr0 -vm ''имя_OpenBSD_VM''
  
 
=== VBOX_E_INVALID_OBJECT_STATE (0x80BB0007) ===
 
=== VBOX_E_INVALID_OBJECT_STATE (0x80BB0007) ===
  
This can occur if a VM is exited ungracefully. The solution to unlock the VM is trivial:
+
Это может произойти при некорректном завершении виртуальной машины. Разблокировка машины тривиальна:
 
  $ VBoxManage controlvm ''virtual_machine_name'' poweroff
 
  $ VBoxManage controlvm ''virtual_machine_name'' poweroff
  
=== USB subsystem is not working on the host or guest ===
+
=== Подсистема USB не работает в хост-машине или гостевой ОС ===
  
Your user must be in the {{ic|vboxusers}} group, and you need to install the [[#Extension pack|extension pack]] if you want USB 2 support. Then you will be able to enable USB 2 in the VM settings and add one or several filters for the devices you want to access from the guest OS.
+
Ваш пользователь должен быть в группе {{ic|vboxusers}}, и вы должны установить  [[#Пакет дополнений|пакет дополнений]], если хотите иметь поддержку USB 2. Тогда вы сможете включить USB 2 в настройках виртуальной машины и добавить один или несколько фильтров для устройств, которые будут иметь доступ  из гостевой ОС.
  
Sometimes, on old Linux hosts, the USB subsystem is not auto-detected resulting in an error {{ic|Could not load the Host USB Proxy service: VERR_NOT_FOUND}} or in a not visible USB drive on the host, [https://bbs.archlinux.org/viewtopic.php?id=121377 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 {{ic|~/.bashrc}} if you are using ''bash''):
+
Иногда, на старых Linux-хостах, подсистема USB не распознается автоматически и выдает ошибку  {{ic|Could not load the Host USB Proxy service: VERR_NOT_FOUND}} или при невидимом USB-диске в хост-машине, [HTTPS://bbs.archlinux.org/viewtopic.php?id=121377, даже когда пользователь находится в группе '''vboxusers''']. Эта проблема происходит из-за того, что VirtualBox переключается с ''usbfs'' на ''sysfs'' с версии 3.0.8. Если хост-машина не распознаёт этого изменения, вы можете вернуться к старому поведению, определив следующую переменную окружения в любом файле, которые конфигурирует  вашу оболочку (например, в {{ic|~/.bashrc}}, если вы используете ''bash''):
  
 
{{hc|~/.bashrc|VBOX_USB<nowiki>=</nowiki>usbfs}}
 
{{hc|~/.bashrc|VBOX_USB<nowiki>=</nowiki>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).
+
Затем убедитесь, что, окружающая среда приняла это изменение (перелогиньтесь, запустите новый экземпляр оболочки или перезагрузитесь).
 +
 
 +
Также убедитесь, что ваш пользователь состоит в группе {{ic|storage}}.
  
Also make sure that your user is a member of the {{ic|storage}} group.
+
=== Ошибка создания сетевого интерфейса "host-only" ===
  
=== Failed to create the host-only network interface ===
+
Убедитесь в том, что все модули ядра VirtualBox загружены (см. [[#Загрузка модулей ядра VirtualBox|Загрузка модулей ядра VirtualBox]]).
  
Make sure all required kernel modules are loaded. See [[#Load the VirtualBox kernel modules]].
+
=== WinXP: глубина цвета не может превышать 16 цветов ===
  
=== WinXP: Bit-depth cannot be greater than 16 ===
+
Если Вы работаете в 16-битной глубине цвета, то значки будут отображаться некорректно. Тем не менее, при попытке изменить глубину цвета на более высокий уровень, система может ограничить вас с более низким разрешением или просто не позволит вам изменить глубину вообще. Чтобы это исправить, запустите {{ic|regedit}} в Windows и добавьте следующий ключ реестра для виртуальной машины Windows XP:
  
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 {{ic|regedit}} in Windows and add the following key to the Windows XP VM's registry:
 
 
  [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services]
 
  [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services]
 
  "ColorDepth"=dword:00000004
 
  "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. {{ic|Host+f}} to redraw/enter full screen).
+
Затем обновите глубину цвета в "Свойствах рабочего стола". Если ничего не происходит, заставьте экран перерисоваться (например, нажмите{{ic|Host+f}}).
  
=== Use serial port in guest OS ===
+
=== Использование последовательных портов в гостевой ОС ===
  
Check you permission for the serial port:
+
Проверьте наличие прав для доступа к последовательным портам:
 
  $ /bin/ls -l /dev/ttyS*
 
  $ /bin/ls -l /dev/ttyS*
 
  crw-rw---- 1 root uucp 4, 64 Feb  3 09:12 /dev/ttyS0
 
  crw-rw---- 1 root uucp 4, 64 Feb  3 09:12 /dev/ttyS0
Line 909: Line 965:
 
  crw-rw---- 1 root uucp 4, 67 Feb  3 09:12 /dev/ttyS3
 
  crw-rw---- 1 root uucp 4, 67 Feb  3 09:12 /dev/ttyS3
  
Add your user to the {{ic|uucp}} group.
+
Добавьте пользователя в группу {{ic|uucp}}
 
  # gpasswd -a $USER uucp  
 
  # gpasswd -a $USER uucp  
and log out and log in again.
+
и перелогиньтесь.
  
=== Windows 8.x Error Code 0x000000C4===
+
=== Windows 8.x ошибка 0x000000C4===
  
If you get this error code while booting, even if you choose OS Type Win 8, try to enable the {{ic|CMPXCHG16B}} CPU instruction:
+
Если вы получаете этот код ошибки при загрузке, даже при выбранном типе OS Win 8, попробуйте включить инструкцию процессора {{ic|CMPXCHG16B}}:
  
 
  $ vboxmanage setextradata ''virtual_machine_name'' VBoxInternal/CPUM/CMPXCHG16B 1
 
  $ vboxmanage setextradata ''virtual_machine_name'' VBoxInternal/CPUM/CMPXCHG16B 1
  
=== Windows 8 VM fails to boot with error "ERR_DISK_FULL" ===
+
=== Windows 8 VM вылетает при загрузке с ошибкой "ERR_DISK_FULL" ===
  
Situation: Your Windows 8 VM refuses to start. VirtualBox throws an error stating the virtual disk is full. However, you are certain that the disk is not full.
+
Если ваша Windows 8 не запускается, VirtualBox выдаёт ошибку что виртуальный диск заполнен, но тем не менее вы уверены что диск не является заполненным,
Bring up your VM's settings at ''Settings > Storage > Controller:SATA'' and select "Use Host I/O Cache".
+
откройте настройки виртуальной машины ''Настройки>Память>Контроллер: SATA'' и выберите ''Use Host I/O Cache''.
  
=== Linux guests have slow/distorted audio ===
+
=== Гостевая ОС Linux выдает искажённый или запаздывающий звук ===
  
The AC97 audio driver within the Linux kernel occasionally guesses the wrong clock settings when running inside Virtual Box, leading to audio that is either too slow or too fast. To fix this, create a file in {{ic|/etc/modprobe.d}} with the following line:
+
Аудио драйвер AC97 в ядре linux иногда неправильно считывает время из  Virtual Box, что приводит к различным искажениям звука. Для исправления проблемы, создайте файл {{ic|/etc/modprobe.d}} со следующим содержанием:
  
 
  options snd-intel8x0 ac97_clock=48000
 
  options snd-intel8x0 ac97_clock=48000
  
=== Guest freezes after starting Xorg ===
+
=== Гостевая ОС зависает после запуска Xorg ===
  
Faulty or missing drivers may cause the guest to freeze after starting Xorg, see for example [https://bbs.archlinux.org/viewtopic.php?pid=1167838] and [https://bbs.archlinux.org/viewtopic.php?id=156079]. Try disabling 3D acceleration in ''Settings > Display'', and check if all [[Xorg]] drivers are installed.
+
Неисправные или отсутствующие драйверы могут привести к остановке после запуска Xorg, см., например, [https://bbs.archlinux.org/viewtopic.php?pid=1167838] и [https://bbs.archlinux.org/viewtopic.PHP?ID=156079]. Попробуйте отключить 3D-ускорение в ''Настройки> Дисплей'', и проверьте, все ли драйверы [[Xorg]] установлены.
  
=== "NS_ERROR_FAILURE" and missing menu items ===
+
=== Исчезновение пунктов меню и ошибка "NS_ERROR_FAILURE" ===
  
If you encounter this message when first time starting the virtual machine:
+
Если после первого запуска машины вы столкнулись с такой ошибкой:
  
 
{{bc|Failed to open a session for the virtual machine debian.
 
{{bc|Failed to open a session for the virtual machine debian.
Line 949: Line 1,005:
 
}}
 
}}
  
Exit VirtualBox, delete all files of the new machine and from virtualbox config file remove the last line in {{ic|MachineRegistry}} menu (or the offending machine you are creating):
+
Выйдите из VirtualBox, удалите все файлы новой машины и из файла конфигурации VirtualBox удалите последнюю строку в  {{ic|MachineRegistry}} меню:
  
 
{{hc|~/.config/VirtualBox/VirtualBox.xml|2=
 
{{hc|~/.config/VirtualBox/VirtualBox.xml|2=
Line 961: Line 1,017:
 
}}
 
}}
  
This happens sometimes when selecting ''QCOW''/''QCOW2''/''QED'' disk format when creating a new virutal disk.
+
Это иногда происходит при выборе ''QCOW''/''QCOW2''/''QED'' формата виртуального диска.
  
=== "The specified path does not exist. Check the path and then try again." error in Windows guests ===
 
  
This error message often appears when running an .exe file which requires administrator priviliges from a shared folder in windows guests.  See [https://www.virtualbox.org/ticket/5732 the bug report] for details.
+
=== "Указанный путь не существует. Проверьте путь и попробуйте еще раз." Ошибка в гостевой ОС Windows ===
  
There are several workarounds:
+
Это сообщение об ошибке часто появляется при работе с расширением .exe  который требует привелегий администратора из общей папки в гостевой Windows. См. [https://www.virtualbox.org/ticket/5732 отчет об ошибке].
  
# Disable UAC from Control Panel -> Action Center -> "Change User Account Control settings" from left side pane -> set slider to "Never notify" -> OK and reboot
+
Есть несколько способов обойти ошибку:
# Copy the file from the shared folder to the guest and run from there
 
# Control Panel -> Network and Internet -> Internet Options -> Security -> Trusted Sites -> Sites -> Add "VBOXSVR" as a website
 
# Start -> type "gpedit.msc" and press Enter -> Computer Configuration -> Administrative Templates -> Windows Components -> Internet Explorer -> Internet Control Panel -> Security Page -> Size to Zone Assignment List -> Add "VBOXSVR" to "2" and reboot
 
  
{{Accuracy|Haven't tested#3 and #4 workarounds myself.  If someone can confirm that they are working as well, please delete this note/template.}}
+
# Отключить UAC с помощью Панель управления -> Центр поддержки -> "Settings Change User Account Control" из левой боковой панели -> Установить ползунок "Никогда не уведомлять» -> OK и перезагрузить ОС
 +
# Скопируйте файл из папки общего доступа в гостевую ОС и запустите оттуда
  
=== No 64-bit OS client options ===
+
=== Не работают 64-битные гостевые ОС ===
  
When launching a VM client, and no 64-bit options are available, make sure your CPU virtualization capabilities (usually named {{ic|VT-x}}) are enabled in the BIOS.
+
При запуске клиента VM, если никакие 64-битные варианты не доступны, убедитесь что ваши возможности виртуализации процессора (обычно с именем {{ic|VT-X}}) включены в BIOS.
  
== See also ==
+
== Смотрите также ==
  
* [https://www.virtualbox.org/manual/UserManual.html VirtualBox User Manual]
+
* [https://www.virtualbox.org/manual/UserManual.html Руководство пользователя VirtualBox]
* [[Wikipedia:VirtualBox]]
+
* [https://ru.wikipedia.org/wiki/VirtualBox Википедия:VirtualBox]

Latest revision as of 08:58, 4 May 2019

Tango-preferences-desktop-locale.pngЭта страница нуждается в сопроводителеTango-preferences-desktop-locale.png

Статья не гарантирует актуальность информации. Помогите русскоязычному сообществу поддержкой подобных страниц. См. Команда переводчиков ArchWiki

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

Чтобы интегрировать в гостевую систему функции хост системы, такие как общие папки и общий буфер обмена, видео ускорение и режим бесшовной интеграции окон, для некоторых гостевых операционных систем предоставляются дополнения гостевой ОС.

Contents

Пошаговая установка на хост-компьютер под управлением Arch Linux

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

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

Установите пакет virtualbox. virtualbox-host-dkms будет установлен в качестве необходимой зависимости. Также нужно установить пакеты с заголовками для установленных ядер [1]:

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

Установка модулей ядра VirtualBox

Чтобы полностью виртуализировать гостевую ОС, VirtualBox предоставляет следующие модули ядра: vboxdrv, vboxnetadp, vboxnetflt, и vboxpci. Они должны быть добавлены к вашему хост ядру.

Бинарная совместимость модулей ядра зависит от API ядра, на котором они были собраны. API может не совпадать в разных версиях ядра. Чтобы избежать проблем совместимости и багов, каждый раз при обновлении ядра Linux рекомендуется перекомпилировать модули ядра с обновленным ядром. Вместе с обновлением ядра в репозиториях Arch Linux обновляются также и модули Virtualbox, так что достаточно обновиться через пакетный менеджер.

Если вы используете ядро из официального репозитория или стороннее (скомпилированное самостоятельно или установленное из AUR), то необходимо тем же способом переустановить ядро.

Использование различных версий ядра Linux на хост-машине


Обновление ядра Linux на хост-машине

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

# sudo /usr/bin/rcvboxdrv

для рекомпиляции модулей ядра.

Стороннее ядро на хост-машине

Tango-preferences-desktop-locale.pngЭта статья или раздел нуждается в переводеTango-preferences-desktop-locale.png

Примечания: Общие советы по использованию DKMS не принадлежат к этой странице. (обсуждение: Talk:VirtualBox (Русский)#)

Если вы используете или планируете использовать самостоятельно собранное ядро, вы должны знать, что VirtualBox не требует каких-либо модулей виртуализации (например, virtio, KVM, ...). Модули ядра VirtualBox обеспечивают все необходимое для нормальной работы. Таким образом, вы можете отключить в вашем ядре .config-файл модулей виртуализации, если они не требуются другим гипервизорам (например, Xen, KVM или QEMU).

Пакет virtualbox-host-modules отлично работает с пользовательской конфигурацией стокового ядра Arch Linux, такого как linux-ckAUR. virtualbox-host-modules поставляется с официальным ядром Arch Linux (linux) в зависимостях, и если вы используете иное ядро, необходимо установить virtualbox-host-dkms.

Если вы используете самостоятельно собранное ядро, версия которого не совпадает с версией стокового ядра Arch Linux , нужно установить virtualbox-host-dkms. Он поставляется в комплекте с исходниками модулей ядра VirtualBox.

Пакет virtualbox-host-dkms требует компиляции. Проверьте наличие заголовков ядра, соответствующих вашей версии пользовательского ядра, чтобы избежать ошибки Your kernel headers for kernel your custom kernel version cannot be found at /usr/lib/modules/your custom kernel version/build or /usr/lib/modules/your custom kernel version/source

  • Если вы используете самостоятельно собранное ядро и использовали make modules_install для установки модулей, директории /usr/lib/modules/your custom kernel version/build и (...)/source будут символическими ссылками на исходники ядра. Они могут использоваться в качестве заголовков ядра в случае необходимости.
  • Если вы используете ядро из AUR репозитория, убедитесь, что установлен пакет linux-headers.

После того, как virtualbox-host-dkms установится, сгенерируйте модули ядра для пользовательского ядра следующей командой:

# dkms install vboxhost/virtualbox-host-source version -k your custom kernel version/your architecture
Совет: Используйте эту команду вместо предыдущей, если вы не хотите её адаптировать:
# dkms install vboxhost/$(pacman -Q virtualbox|awk '{print $2}'|sed 's/\-.\+//') -k $(uname -rm|sed 's/\ /\//')


Чтобы автоматически перекомпилировать модули ядра VirtualBox, когда их исходники обновится (т.е. повысится версия пакета virtualbox-host-dkms) и чтобы не повторять впоследствии вручную dkms install, включите dkms сервис командой:

# systemctl enable dkms.service

При включенной службе dkms для обновления модулей можно перезагрузить компьютер. Если же вы не хотите включать эту службу, то нужно выполнять команду dkms install каждый раз при обновлении virtualbox-host-dkms. В противном случае модули не обновятся, и есть немалая возможность получить нерабочий VirtualBox.

Однако, если вы не хотите включать этот сервис (например, для оптимизации systemd) можно также использовать initramfs hook, который будет автоматически запускать dkms install во время загрузки. Он требует перезагрузки для перекомпиляции модулей VirtualBox. Чтобы включить этот хук, нужно установить пакет vboxhost-hookAUR[ссылка недействительна: сохранено в aur-mirror] из AUR и добавить vboxhost в /etc/mkinitcpio.conf. Опять же, убедитесь, что заголовки Linux доступны для нового ядра: в противном случае компиляция не удастся.

Совет: Ровно как и команда dkms, vboxhost хук выведет ошибку, если что-то пойдет не так во время перекомпиляции модулей VirtualBox.

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

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

Для загрузки модуля вручную выполните следующую команду:

# modprobe vboxdrv

Для автоматической загрузки модуля VirtualBox при старте, посмотрите Модули ядра#Автоматическое управление модулями и создайте файл *.conf (например virtualbox.conf) в каталоге /etc/modules-load.d/ с записью:

/etc/modules-load.d/virtualbox.conf
vboxdrv

Дополнительные модули VirtualBox

Следующие модули не являются обязательными, но рекомендуются, если вы не хотите проблем с некоторыми конфигурациями (подробнее смотрите ниже): vboxnetadp, vboxnetflt и vboxpci.

  • vboxnetadp и vboxnetflt необходимы, если вы собираетесь использовать "Локальную виртуальную сеть". Точнее, vboxnetadp нужен для создания интерфейса в глобальных настройках VirtualBox, и vboxnetflt нужен для запуска виртуальной машины с использованием этого интерфейса.
  • vboxpci необходим, когда вашей виртуальной машине нужно получить доступ к PCI устройству на вашей машине.

Для работы данных модулей выполните команду

# pacman -S net-tools

И создайте файл vbox-other-modules.conf в каталоге /etc/modules-load.d/ с записью

/etc/modules-load.d/vbox-other-modules.conf
vboxnetadp vboxnetflt vboxpci
Примечание: Если модули ядра VirtualBox были загружены в ядро пока вы обновляли модули, то вы должны загрузить их вручную для использования новой, обновленной версии. Что бы это сделать, запустите
# vboxreload

VirtualBox использует ifconfig и route, чтобы назначить IP и маршрут до интерфейса хоста, настроенного с помощью VBoxManage hostonlyif или с помощью GUI Settings > Network > Host-only Networks > Edit host-only network (space) > Adapter.


Добавление пользователей в группу vboxusers

Чтобы использовать USB-порты хост-системы в виртуальных машинах, нужно добавить в группу vboxusers имена пользователей, которые смогут получить доступ к USB-портам. Новая группа не будет автоматически применяться к существующим сеансам. Пользователь должен перелогиниться или добавить пользователя в новую группу в текущей сессии командой newgrp или sudo -u $USER -s. Для добавления текущего пользователя в группу vboxusers нужно выполнить:

# gpasswd -a $USER vboxusers

Образ диска с гостевыми дополнениями

Для корректной работы VirtualBox рекомендуется установить пакет virtualbox-guest-iso в хост-системе. Этот пакет создаёт образ диска, который может быть использован для установки гостевых дополнений в гостевых системах, отличных от Arch Linux. .iso образ будет находиться в /usr/lib/virtualbox/additions/VBoxGuestAdditions.iso и может быть установлен вручную после подключения образа в виртуальной машине.

Пакет дополнений

Начиная с версии VirtualBox 4.0, компоненты, не распространяющиеся под лицензией GPL были отделены от основной части приложения. Несмотря на то, что данные компоненты выпущены под несвободной лицензией и доступны только для личного использования, вам может понадобиться установка Oracle Extension Pack, который обеспечивает дополнительный функционал. virtualbox-ext-oracleAUR пакет доступен на AUR, а нестабильная версия может быть найдена в репозитории seblu.

Если вы предпочитаете использовать ручной способ, можно скачать пакет дополнений вручную и установить его с помощью графического интерфейса (Настройки > Расширения) или с помощью команды VBoxManage extpack install <.vbox-extpack>. Предварительно убедитесь, что у вас установлен инструментарий (например, Polkit, gksu и т.д.) для предоставления привилегированного доступа к VirtualBox, так как установка этого пакета требует прав суперпользователя.

Правильное использование в фронт-энде

Теперь вы готовы использовать VirtualBox. Поздравляем!

Вы можете использовать несколько удобных команд VirtualBox:

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

Если вы установили qt4AUR из дополнительных зависимостей, у вас будет приятный GUI-интерфейс.

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

Обратитесь к руководству VirtualBox, чтобы узнать, как создавать виртуальные машины.

Важно: Если вы собираетесь хранить образы виртуальных дисков в файловой системе 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-guest-modules[ссылка недействительна: replaced by virtualbox-guest-modules-arch] как необходимая зависимость.

Примечание: Метод, описанный в 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

Запуск гостевой ОС с официальным ядром

Запуск гостевой ОС со сторонним ядром

Этот шаг установки очень похож на настройку модулей ядра в разделе Vitualbox для хоста, описанную выше. Обратитесь к этому разделу[broken link: invalid section] для получения дополнительной информации и замените все virtualbox-host-modules[ссылка недействительна: replaced by virtualbox-host-modules-arch], virtualbox-host-dkms и vboxhost-hookAUR[ссылка недействительна: сохранено в aur-mirror] на virtualbox-guest-modules[ссылка недействительна: replaced by virtualbox-guest-modules-arch], virtualbox-guest-dkms и vboxguest-hookAUR[ссылка недействительна: сохранено в aur-mirror] соответственно.

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

Для загрузки модуля вручную выполните:

# modprobe -a vboxguest vboxsf vboxvideo

Чтобы загрузить модуль VirtualBox во время загрузки системы, обратитесь к Загрузка ядра#Автоматическое управление модулями и создайте *.conf файл (например, virtualbox.conf) в директории /etc/modules-load.d/ с следующим содержанием:

/etc/modules-load.d/virtualbox.conf
vboxguest
vboxsf
vboxvideo

Кроме того, команда

# systemctl enable vboxservice 

включает автозагрузку модулей и синхронизацию времени хоста и гостевой ОС.

Запуск гостевых сервисов VirtualBox

После довольно непростой установки с модулями ядра VirtualBox, необходимо обеспечить взаимодействие гостевой ОС и хоста посредством сервисов. Гостевой сервис - на самом деле просто исполняемый файл, обращающийся к VBoxClient, который будет взаимодействовать с вашей X Window System. VBoxClient управляет следующими функциями:

  • Общий буфер обмена и перетаскивания между принимающей стороной и гостевой ОС;
  • Бесшовный оконный режим;
  • Гостевой дисплей автоматически изменяется в соответствии с размером окна гостевой ОС;
  • Проверка версии VirtualBox, установленной на хосте.

Все эти особенности могут быть включены независимо следующими параметрами:  $ VBoxClient --clipboard --draganddrop --seamless --display --checkhostversion

Как ссылка, VBoxClient-all bash скрипт позволяет использовать все эти функции. Вы должны установить VBoxClient, который будет автоматически загружен в качестве DE или оконного менеджера

На практике,

  • Если вы используете DE, вам просто нужно установить флажок или добавить /usr/sbin/VBoxClient-all} в разделе автозапуска вашей DE (DE обычно устанавливают флаг на .desktop файлы в ~/.config/autostart, см. настройку автозапуска для более подробной информации);
  • Если у вас нет каких-либо DE, добавьте следующую строку в начале ~/.xinitrc перед любыми exec функциями:
~/.xinitrc
/usr/bin/VBoxClient-all

VirtualBox также может синхронизировать время между хостом и гостевой ОС. Чтобы сделать это, выполните VBoxService с правами суперпользователя. Чтобы установить автоматический запуск этого кода при загрузке, выполните:

# systemctl enable vboxservice

Теперь у вас есть рабочая гостевая 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 может не поддерживать nofail аргумент:

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

Импорт/экспорт виртуальных машин 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.

Ручное преобразование

Во-первых, ознакомьтесь с форматами, поддерживаемыми Virtualbox и форматами других гипервизоров.

  • Импорт и экспорт виртуальной машины из/в формат 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 конфигурационном файле.

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

Форматы, поддерживаемые VirtualBox

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

  • VDI: Virtual Disk Image является собственным стандартои VirtualBox, используемыи по умолчанию, когда вы создаете виртуальную машину в VirtualBox.
  • VMDK: изначально разработан VMware для своих продуктов.Спецификация была закрытым исходным кодом, но сейчас стало открытым форматом, который полностью поддерживается VirtualBox. Этот формат дает возможность разбивать себя на несколько файлов по 2 Гб. Эта функция особенно полезна, если вы хотите сохранить виртуальную машину на компьютерах, которые не поддерживают очень большие файлы. Другие форматы, за исключением формата HDD от Parallels, не обеспечивают такую эквивалентную функцию.
  • VHD: Virtual Hard Disk - формат, используемый в Microsoft в Windows Virtual PC и Hyper-V. Если вы собираетесь использовать любой из этих продуктов Microsoft, вы должны будете выбрать этот формат.
Совет: Начиная с Windows 7, этот формат может быть установлен непосредственно без каких-либо дополнительных приложений.
  • VHDX (только для чтения): Это расширенная версия формата виртуального жесткого диска, разработанного Microsoft, которая была выпущена на 2012-09-04 с Hyper-V 3.0 при переходе на Windows Server 2012. Эта новая версия имеет повышенную производительность (лучшее расположение блоков), большие размеры блоков и поддержку журнала. VirtualBox поддерживает этот формат только для чтения.
  • Версия 2 HDD: Формат HDD разработан Parallels Inc и используются в их гипервизоре, например Parallels Desktop для Mac. Новые версии этого формата (т.е. 3 и 4) не поддерживаются из-за отсутствия документации для этого форматф.
    Примечание: Существуют споры в отношении поддержки версии 2 формата. Официальное руководство VirtualBox сообщает, что поддерживается только 2 версия, авторы Википедии утверждают,что частично может работать и первая версия. Приветствуется помощь, если вы можете выполнить некоторые тесты с первой версией формата HDD.
  • QED: Формат Enhanced Disk QEMU - старый формат для QEMU, свободный и открытый. Этот формат был разработан в 2010 году таким образом, чтобы обеспечить превосходную альтернативу qcow2 и другим форматам. Этот формат имеет полностью асинхронный ввод / вывод, хорошую целостность данных, откат файлов и разреженные файлы. Формат QED поддерживается только для совместимости с виртуальными машинами, созданными в старых версиях QEMU.
  • QCOW: QEMU CoW - нынешний формат для QEMU.Формат QCOW поддерживает прозрачное сжатие на основе ZLIB и шифрование (последнее имеет недостаток, и не рекомендуется к сипользованию). QCOW доступен в двух версиях: QCOW и qcow2. Последний, как правило, заменяет первый. QCOW в настоящее время поддерживается VirtualBox. Qcow2 поставляется в двух версиях: qcow2 0.10 и qcow2 1.1 (по умолчанию используемый при создании виртуального диска с QEMU). VirtualBox не поддерживает qcow2.
  • OVF: Open Virtualization Format является открытым форматом, который был разработан для обеспечения взаимодействия и распределения виртуальных машин между различными гипервизоров. VirtualBox поддерживает все версии этого формата через VBoxManage импорт / экспорт, но с [https: //www.virtualbox.org/manual/ch14.html#KnownProblems известными ограничениями].

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

VMDK в VDI и VDI в VMDK

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

VMDK в VDI:

$ VBoxManage clonehd source.vmdk destination.vdi --format VDI

VDI в VMDK:

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

VHD в VDI и VDI в VDH

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

VHD в VDI:

$ VBoxManage clonehd source.vhd destination.vdi --format VDI

VDI в VHD:

$ VBoxManage clonehd source.vdi destination.vhd --format VHD

QCOW2 в VDI и VDI в QCOW2

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

Примечание: qemu-img также обрабатывает кучу других форматов. В соответствии выводу qemu-img --help, qemu-img поддерживает данные форматы : "vvfat vpc vmdk vhdx vdi ssh sheepdog sheepdog sheepdog raw host_cdrom host_floppy host_device file qed qcow2 qcow parallels nbd nbd nbd iscsi dmg tftp ftps ftp https http cow cloop bochs blkverify blkdebug'".

QCOW2 в VDI:

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

VDI в QCOW2:

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

Так как QCOW2 предостовляется в двух версиях (0.10 и 1.1) (см. форматы, поддерживаемые VirtualBox. Используйте параметр -o compat= для выбора версии.

$ qemu-img convert -pO qcow2 source.vdi destination.qcow2 -o compat=0.10

или

$ qemu-img convert -pO qcow2 source.vdi destination.qcow2 -o compat=1.1
Совет: Параметр -p отображает прогресс выполнения преобразования.

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

VDI

Монтирование образов VDI работает только с образами фиксированного размера (т.е. статичными образами); динамические образы (динамическое выделение размера) монтируются довольно-таки не просто.

Если необходимо смещение раздела (в VDI), добавьте значение offData в 32256 (например, 69632 + 32256 = 101888):

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

Теперь cмонтируем:

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

Также можно использовать модули ядра qemu , которые выполняют эту же функцию attrib:

# modprobe nbd max_part=16
# qemu-nbd -c /dev/nbd0 <storage.vdi>
# mount /dev/nbd0p1 /mnt/dir/
# # to unmount:
# umount /mnt/dir/
# qemu-nbd -d /dev/nbd0

Если файлы раздела не распространяются, попробуйте использовать partprobe /dev/nbd0. В противном случае, VDI раздел может быть отображен непосредственно в файл с помощью qemu-nbd -P 1 -c /dev/nbd0 <storage.vdi>.

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

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

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

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

  • Если вы пользовались Bleachbit, просто установите галочку System > Free disk space в графическом интерфейсе, выполните команду bleachbit -c system.free_disk_space;
  • В UNIX-based системах, выполните команду dd или, предпочтительно, dcfldd (см. здесь информацию об отличиях):
# dcfldd if=/dev/zero of=/fillfile bs=4M
Когда fillfile достигает лимита раздела, вам будет выдано сообщение вида 1280 blocks (5120Mb) written.dcfldd:: No space left on device. Это означает, что все пространство пользователя и незарезервированные блоки раздела будут затерты. Используя эту команду от суперпользователя, важно убедится в том, что все свободные блоки затерты. По умолчанию некий процент блоков ФС зарезервирован для супер-пользователя (см. вывод -m аргумента при команде mkfs.ext4 или используйте tune2fs -l чтобы увидеть, сколько места зарезервировано под приложения запущенные от root).
Когда вышеописанный процесс будет завершён, вы можете удалить созданный вами файл fillfile.
  • В ОС Windows есть два инструмента:
  • sdelete - Sysinternals Suite, выполните sdelete -s c: для каждого виртуального диска;
  • Для любителей PowerShell есть скрипт PowerShell solution. Его также необходимо отдельно выполнять для каждого виртуального диска.
PS> ./Write-ZeroesToFreeSpace.ps1 -Root c:\ -PercentFree 0
Примечание: Этот скрипт должен быть запущен в среде PowerShell от имени администратора. По дефолту скрипты не запускаются из-за ограничений политик безопасности. Необходимо установить необходимое значение параметра Get-ExecutionPolicy в политиках безопасности: Set-ExecutionPolicy RemoteSigned.

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

  • В UNIX-based системах можно использовать fsck;
  • В Windows системах:
  • chkdsk c: /F где c: заменяется на имя проверяемого диска;
  • или FsckDskAll отсюда, который основан на chkdsk, но не требует перезапуска для каждого отдельного диска;

Теперь удалите нули из vdi файлов с помощью VBoxManage modifyhd:

$ VBoxManage modifyhd your_disk.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/{6bb17af7-e8a2-4bbf-baac-fbba05ebd704}.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
<HardDisk uuid="{670157e5-8bd4-4f7b-8b96-9ee412a712b5}" location="ArchLinux_vm.vdi" format="VDI" type="Normal"/>

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

ArchLinux_vm.vbox
<AttachedDevice type="HardDisk" port="0" device="0">
  <Image uuid="{670157e5-8bd4-4f7b-8b96-9ee412a712b5}"/>
</AttachedDevice>


Примечание: Если вы не знаете GUID диска который вы хотите добавить, вы можете использовать VBoxManage showhdinfo file. Если раньше вы использовали VBoxManage clonehd, для копирования или конвертирования виртуальных дисков, он выводит GUID после завершения копирования / преобразования. Применение случайного GUID не работает, так как каждый UUID хранится внутри любого образа диска.

Клонирование виртуального диска и назначение ему нового UUID

UUID широко используются VirtualBox. Каждая виртуальная машина и каждый виртуальный диск виртуальной машины должны иметь разные UUID. Когда вы запускаете виртуальную машину в VirtualBox, он будет отслеживать все UUID. См VBoxManage list, чтобы просмотреть список элементов, зарегистрированных в VirtualBox.

Если вы клонировали виртуальный диск вручную путем копирования файла виртуального диска, необходимо будет назначить новый UUID клонированному виртуальному диску. Вы можете использовать этот диск в той же виртуальной машине или даже в другой (если он уже открыт и таким образом зарегистрирован в VirtualBox).

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

$ VBoxManage internalcommands sethduuid /path/to/disk.vdi
Совет: В будущем, чтобы избежать копирования виртуального диска и назначения нового UUID вручную, используйте VBoxManage clonehd.
Примечание: Все указанные команды поддерживают все форматы виртуальных дисков, поддерживаемые VirtualBox.

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

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

Запуск виртуальный машин как сервиса systemd

/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/VBoxHeadless -s %i
ExecStop=/usr/bin/VBoxManage controlvm %i savestate

[Install]
WantedBy=multi-user.target
Примечание: Замените username на имя вашего пользователя и добавьте его в группу vboxusers. Убедитесь, что это именно тот пользователь, который управляет созданием VM. Иначе ничего не получится
Примечание: Если у вас есть несколько машин запускаемых Systemd, и они завершаются некорректно, попробуйте добавить RemainAfterExit=true и KillMode=none в конец [Service] секции.

Для запуска VM начиная с следующей загрузки, выполните:

# systemctl enable vboxvmservice@your_virtual_machine_name

Для запуска же в текущий момент времени выполните:

# systemctl start vboxvmservice@your_virtual_machine_name

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 (EHCI) контроллер"
  4. Нажмите кнопку "Добавить фильтр с устройства" (кабельное со значком «+»).
  5. Выберите USB веб-камеру/микрофон из списка.
  6. Нажмите кнопку ОК и запустите VM.

Обнаружение веб-камер и прочих USB устройств

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

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

Для доступа к 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

Where 8888 is the port the host should listen on and 80 is the port the VM will send Apache's signal on. Где 8888 порт должна слушать хост-система, а VM шлет сигнал Apache на 80 порт.

Чтобы использовать порт ниже, чем 1024 на хост-машине, изменения должны быть внесены в брандмауэр на этом хосте. Он также может быть настроен на работу с SSH или иных услуг путем изменения «Apache» с соответствующими сервисами и портами.

Примечание: pcnet относится к сетевой карте виртуальной машины. Если вы используете карту Intel в VM, необходимо изменить 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/bash

# 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 file; do
  line=`grep -e "type\=\"HardDisk\"" -n $file | cut -d ':' -f 1`
  if [ -n "$line" ]; then
    sed -i ${line}d $file
    sed -i ${line}d $file
    sed -i ${line}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 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, чтобы создать VMDKs из существующих приводов.

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

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

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

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

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

Чтобы обойти эту проблему, мы должны будем использовать схему адресации, работающую в обеих системах. Это может быть достигнуто с помощью UUIDs[broken link: invalid section] в файле /etc/fstab. Убедитесь, что ваш fstab использует UUID - в противном случае решайте эту проблему. Читайте Fstab и Устойчивое именование разделов.

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

GRUB Legacy

Если вы все еще используете 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; у вас нет проблем. Это ещё одна причина для перехода на GRUB 2.

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

Убедитесь в корректности образа mkinitcpio

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

/etc/mkinitcpio.conf
[...]
HOOKS="base udev autodetect modconf block filesystems keyboard fsck"
[...]


Если это не так, добавьте хук и сгенерируйте свой initramfs, с помощью команды # mkinitcpio -p linux, что описано здесь более подробно[broken link: invalid section].

Создание конфигурации виртуальной машины для загрузки с физического диска

Создайте потоковый(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

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

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

Теперь вы должны иметь рабочую конфигурацию виртуальной машины, чей виртуальный VMDK-диск связан с реальным диском. Процесс установки точно такой же, как и описанный в пошаговой установке ArchLinux в 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 и он может не загружаться вообще.
Включите параметр --no-action для тестового запуска:
# ntfsresize --no-action --size 52Gi /dev/sda1
Если только предыдущий тест прошел успешно, необходимо выполнить следующую команду снова, только без вышеупомянутого параметра --no-action.
  • Установите 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 ))
Мы должны показать размер в байтах, $(( $sectnum * 512 )) преобразует номера секторов в байты.
  • Так как вы создали свой образ диска с правами администратора, установите права доступа на образ диска: # chown $USER:users windows.vdi.
  • Создайте Ваш файл конфигурации виртуальной машины - используйте виртуальный диск, созданный ранее в качестве основного виртуального жесткого диска.
  • Постарайтесь загрузиться с виртуальной машины Windows (может работать). Во-первых, хотя бы отключите восстановление дисков из процесса загрузки, так как это может помешать (и, вероятно, будет мешать) загрузиться в безопасном режиме.
  • Попытка загрузить виртуальную машину в безопасном режиме (нажмите клавишу F8 до логотипа Windows) ... при возникновении вопросов о загрузке, читайте Исправление MBR и загрузчика Microsoft. В безопасном режиме вероятно будут установлен драйверы. Кроме того, установите Дополнения гостевой ОС через меню Devices > Insert Guest Additions CD image.... Если новое диалоговое окно не отображается, перейдите к компакт-дискам и запустите программу установки вручную.

Исправление 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.

Не могу отправить комбинацию 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, см., например, [2] и [3]. Попробуйте отключить 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
...
<MachineRegistry>
  <MachineEntry uuid="{00000000-0000-0000-0000-000000000000}" src="/home/void/VirtualBox VMs/debian/debian.vbox"/>
  <MachineEntry uuid="{00000000-0000-0000-0000-000000000000}" src="/home/void/VirtualBox VMs/ubuntu/ubuntu.vbox"/>
  <MachineEntry uuid="{00000000-0000-0000-0000-000000000000}" src="/home/void/VirtualBox VMs/lastvmcausingproblems/lastvmcausingproblems.qcow"/>
</MachineRegistry>
...

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


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

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

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

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

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

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

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