Virtualbox

(重定向自SDB:Virtualbox
跳转至: 导航, 搜索
Icon-cleanup.png 此頁面需要清理 因為他不遵循我們的 維基規範。 存在大量已过时内容。
如果您想要貢獻,請務必要熟悉這些規範。如果您有任何問題,別猶豫,快 聯絡我們, 我們十分樂意能幫助您! :-)

测试版本

Icon-checked.png

推荐条目

相关条目

Oracle VM VirtualBox 是一个 x86 虚拟化软件包; 它以一个应用程序的形式安装到主机操作系统上; 该主机程序允许执行额外的客户机操作系统,每个客户机操作系统叫做一个虚拟机,可以在其自身的虚拟环境中载入和运行。
注意: 如果你没有特别的需求,请使用 openSUSE 仓库提供的软件包而不是 Virtualbox 官网提供的软件包,以避免一些不必要的问题或错误。
VirtualBox

Virtualbox-7.0.png

VirtualBox 是一个广受欢迎的开源虚拟机软件

为 openSUSE 下载

软件包包名:virtualbox
发行商: openSUSE
开发者: Oracle
许可证: GPL, PUEL
网站: virtualbox.org


准备

安装 Virtualbox

 sudo zypper in virtualbox 
  • 如果你是 Leap 用户,并且希望能够使用最新版本的 virtualbox 你可以前往 software.opensuse.org,下载并安装适用于 Leap 的,由社区打包的软件包。

加入用户组

打开 YaST ,找到并打开 用户和组管理 ,然后点击左下角的 编辑 ,在新窗口中点击 细节 选项卡,在右侧的列表中找到并勾选 vboxusers,确认保存退出,然后注销并重新登录即可。或运行如下命令,将当前的用户添加至用户组:

sudo usermod -aG vboxusers $USER

然后重启系统。

安装扩展包

VirtualBox Oracle VM VirtualBox Extension Pack 扩展包主要提供了 USB 驱动和 3D 加速驱动等因版权无法自由分发的内容。

  • 下载 VirtualBox Extension Pack
  • 要安装扩展包,请先打开 VirtualBox,点击左侧 工具栏 上的选项按钮,切换到 扩展 页面,然后再点击上方的 install 安装你刚刚下载保持的扩展包文件,然后你就会看到扩展包的使用许可协议,滚动到底端,然后点击 我同意,即可安装扩展包:
  • 首次打开 VirtualBox 会提示用户是否启用 USB 功能(这可能会带来安全风险,但是它带来的便利值得这么做),个人建议可以使用该功能。

Vm-install-expak.gif

通用步骤

新建虚拟机

  • 将鼠标光标停留在某个选项上会显示该选项的简易使用说明。
  • 注意,请将虚拟机安装在固态硬盘分区中以提高虚拟机的性能。

你可以在 VirtualBox 的 管理 > 全局设定 > 常规 页面中,修改虚拟机的默认保存位置(比如放置到 ~/公共/VMs)。

打开 VirtualBox ,点击 新建,输入虚拟机的名称(VirtualBox 会根据你输入的名称快速筛选虚拟机的版本和类型),点击下一步:

Vbox-vm1.png

内存大小建议最小值为 2048MB,具体的最低配置要求详见你所安装的系统版本的最低配置要求,并根据最低需求配置你的硬件资源。点击下一步:

Vbox-vm2.png

  • CPU 核心数量可以拉到一半的位置,同时可以根据使用情况考虑是否启用 EFI。
  • 并不建议将指针拖动到红色区域,这可能会对主机的正常运行造成影响。

在选择默认的现在创建虚拟硬盘,虚拟硬盘文件类型默认为 VDI。点击下一步,选择动态分配,大小建议 20GB 或更高值,具体的最低配置详见你所安装的系统版本的最低配置要求。点击下一步完成创建:

Vbox-vm3.png

配置虚拟机

在启动安装前,你可能还需要进行一些额外的配置。

点击虚拟机详情页中的 设置,在 常规 页面中,点击 高级,然后为虚拟机启用剪贴板共享和文件拖放:

Vbox-conf-reg.png

再点击 系统;在 主板 页面,你可以点击勾选 启用 EFI(某些系统需要用户启用 UEFI 支持)或安全启动支持。在处理器页面,你可以更改虚拟机使用的 CPU 核心数

Vbox-conf-sys.png

  • 给虚拟机分配过多的资源会导致宿主机卡顿。
  • 你可以修改该页面中的启动顺序来改变虚拟机启动时引导设备的顺序。
  • 虚拟机系统安装完成后 VirtualBox 需要用户手动移除虚拟盘片。

注意,你必须在 显示 页面中,将 显存大小 拉满,否则你很有可能会遇到显存耗尽的问题。同时可以考虑是否为虚拟机启用 3D 图形加速(具体取决于你的硬件性能,如果遇到显示问题,请关闭此功能)。

  • 如果你没有启用 3D 图形加速,同时遇到了无法以 Wayland 会话正常登录系统(登录后显示为黑屏),那么你可以尝试开启此功能。

Vbox-conf-display.png

存储 中,点击 没有盘片,再点击 分配光驱 右侧的光碟小图标,再点击 '选择虚拟盘,找到并选中你准备好的 ISO 镜像文件。

Vbox-conf-iso.png

USB 设备 中,点击右侧的 添加一个 USB 筛选器,勾选你插入宿主机的 USB 设备。

该步骤为可选操作。一旦启动虚拟机,你插入宿主机的 USB 设备就会自动被重定向到虚拟机中,并且在虚拟机关机前,你都不能在宿主机访问该 USB 设备。

共享文件夹 中,点击右侧的 添加共享文件夹,点击 共享文件夹路径 右侧的倒三角符号,点击 其他,选择一个文件夹用于共享文件:

Vbox-conf-share.png

  • 该步骤为可选操作。共享文件夹可以实现主宿机间文件的实时交流。请勿将虚拟机的任何程序或者程序所使用的文件夹安装或存放到共享文件夹中。
  • 建议勾选 自动挂载 以便于虚拟机在开机后自动发现共享文件夹。

如果你在配置虚拟机的时候,没有指定使用的系统镜像文件。虚拟机在启动的时候会提醒你选择一个镜像文件。点击提示页面右侧的 选择一个虚拟光盘文件,再点击 注册,找到并选中你下载的光盘文件,点击你新添加的镜像文件,再点击 选择,确定无误后启动虚拟机。

注册 ISO 文件(可选步骤)

打开 Virtualbox,点击 工具,然后切换到 介质 页面,此时你可以看到 virtualbox 已经使用的虚拟机磁盘和镜像文件:

Vbox-iso-man.gif

你可以在虚拟镜像文件页面中将已下载好的 ISO 文件都导入到此列表中,方便后续新建虚拟机的时候可以直接使用。

快照

快照是一个非常有用的功能,它可以将你的虚拟机恢复到指定的状态,特别适合于测试环境。

点击要生成快照的虚拟机,然后切换到 备份 页面,新建一个快照即可。当你需要使用的时候,再点击恢复备份:

Vbox-snapshot.gif

安装系统

详见 通过U盘/DVD 安装 openSUSE

为虚拟机安装增强功能

请先安装 virtualbox-guest-tools:

sudo zypper in virtualbox-guest-tools

重启系统,然后再将虚拟机用户添加至对应的用户组:

sudo usermod -aG vboxsf $USER

重新登录系统即可看到你之前设置好的共享文件夹(该共享文件夹一般位于 /media 目录之下,如果你没有看到自动挂载的文件夹,你需要手动将共享文件夹固定到文件浏览器的侧边栏之中)。

杂项

快捷键组合

Virtualbox 会自动捕获用户的鼠标光标,你可以按 右 Ctrl 取消捕获。按 右 Ctrl + F 进入全屏。

断开网络连接和虚拟盘

要断开网络连接,只需要点击底部图标,取消勾选网络连接即可:

Vbox-net.png

在系统安装完成后,virtualbox 并不会自动弹出 ISO 文件,你可以手动点击底栏图标,移除虚拟盘即可:

Vbox-disk.png

用户文档

增强虚拟机的图形性能

要增强虚拟机的性能,主要有以下几个办法:

  1. 提高虚拟机可使用的 CPU 核心数;
  2. 提高虚拟机可使用的 RAM;
  3. 将虚拟机放置在宿主机的固态硬盘上以提高读写性能;
  4. 使用独立显卡运行 virtualbox(如果出现撕裂问题,可以在设置中关闭 3D 图形加速)。

过期内容(需要翻新)

注意: 以下部分直至文末均属于缺乏更新的内容,有些信息可能已经过时失效。

命令行安装扩展包(extpack)

有时候在非 GNOME/KDE 这样的其它桌面环境下,因为缺少 kdesu 这样的图形化提示输入 root 密码机制,可能无法在图形界面下安装 VirtualBox 的扩展包(extpack)。这里教大家如何使用命令行安装:

1. 列出之前安装的扩展包

$sudo VBoxManage list extpacks
Extension Packs: 1
Pack no. 0:   Oracle VM VirtualBox Extension Pack
Version:      4.2.18
Revision:     88780
Edition:      
Description:  USB 2.0 Host Controller, VirtualBox RDP, PXE ROM with E1000 support.
VRDE Module:  VBoxVRDP
Usable:       false
Why unusable: VBoxExtPackRegister returned VERR_VERSION_MISMATCH, pReg=0000000000000000 ErrInfo='VirtualBox version mismatch - expected 4.2 got 4.3'

2. 卸载之

$sudo VBoxManage extpack uninstall "Oracle VM VirtualBox Extension Pack"

3. 安装新的扩展包

$sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.3.4-91027.vbox-extpack 

4. 清理

$sudo VBoxManage extpack cleanup

Windows

所有的 Windows 设置都一样,这里以 Windows 8 为例。

Windows8 setup.gif


值得注意的是:

  • 芯片组那里是 ICH9
  • 2D 视频加速可以打开,3D 也可以,但要安装 Virtualbox 的「增强功能」也就是虚拟硬件驱动才能实现。
  • PAE/NX 和 VT-x/AMD-v 以及嵌套分页都要打开,第一个是传递主机物理地址的,第二个是 BIOS 里面的虚拟化的东西。
注意: 不开装不了 Windows 8。
  • USB 2.0 EHCI 驱动没有安装扩展包是勾选不上的。
  • 显存给到最大,CPU 用单核。不然会卡。

然后 Windows 8 安装按下图走:

Windows8 installation.gif

值得注意的就是复制好文件第一次重启,输入完计算机名之后,是注册 Microsoft 帐号,那个超麻烦,直接选下面的「不使用 Microsoft 帐号登录」,然后选择「本地帐号」。

Ubuntu

Ubuntu virtualbox setup.gif

如图,其中声音下面的 Intel HD 音频是根据你声卡来的。然后 USB 控制器的话你没有安装扩展包是勾选不上的。

为什么这么设置的原因在 为蝶变和乌斑兔打包#安装虚拟开发机中有讲。

往虚拟机内安装操作系统

如下图所示,点击右上角的光盘图标挂载操作系统的 ISO:

Virtualbox mount iso.png

Virtualbox select iso.png

或者将操作系统的光盘放入物理 DVD 驱动器。openSUSE 会自动挂载它,这里你要先选择卸载,不然被主机占用的光驱,虚拟机是没法使用的。然后在选择 ISO 那里选择物理设备。随后启动虚拟机即可进入相应的操作系统安装界面。

在虚拟机内安装 Virtualbox 驱动

Windows

Windows 需要在安全模式下才能安装 Virtualbox 增强功能,非安全模式下安装的增强功能没有 3D 虚拟硬件驱动。

首先在正常的 Windows 桌面下,找到开始菜单,在搜索栏输入“msconfig”,在「引导选项」中勾选「安全引导」-「最小」后点击确定自动重启到安全模式。

打开「我的计算机」,在光驱中已经装入了 Virtualbox Addon,但是安全模式下,直接点击是不会自动运行的。我们要进入这个光驱,然后运行 VBoxGuestAdditions。

Windows 8 按下 Win 键 + C,按图操作:

Virtualbox windows driver installaion.gif

openSUSE

如果你的 openSUSE 是在 Virtualbox 里装的,它会自动识别到你是装在 Virtualbox 环境的,因此会为您预装好 virtualbox-guest-kmp-desktop virtualbox-guest-tools virtualbox-guest-x11 这三个软件包(相当于从官网下载的那个增强功能扩展)。如果你要使用共享文件夹的功能,你需要再加入 vboxfs 用户组。

如果你的 Virtualbox 是从官网下载 RPM 安装的,这两个的版本一般是不会匹配的。这会导致显示效果不是很好,比如 GNOME shell 非全屏打开应用程序时背景是白色的,然后程序的阴影变成了大黑框,以及鼠标移动到的位置会闪色块等(看上去跟没装显卡驱动的感觉是一样的),这都是因为驱动版本不匹配的原因。

所以要先打开 YaST 软件管理,把预装的这几个软件包卸载掉。

然后安装 kernel-desktop-devel gcc make automake 这四个软件包。接着按照上面说的点击「安装增强功能」按钮就可以了。

在 GNOME 下面会直接问你有个软件,要不要安装,选是,会提示你输入 root 密码然后弹出一个 gnome terminal 窗口,等所有的项目都出现绿色的 done 后,会提示你按 return 这时按回车。然后重启就好。

KDE 下面可以打开 Dolphin 定位到挂载好的那个文件夹(跟你平时挂载 U 盘是一样的),双击那个 autorun.sh。其它同 GNOME。也可以用命令行:

cd /var/run/media/<你的用户名>
./autorun.sh

Linux

Linux 只要有 root 权限和 kernel 的开发包就可以安装虚拟硬件驱动。安装方法看下图:

Virtualbox linux driver installation.png

Linux 下面,deb 系发行版的内核开发包叫 linux-headers,而 rpm 系发行版的内核开发包叫 kernel-devel。这个搞错容易找不到开发包来装。

命令行安装

有时候你进不去图形界面(因为刚卸载了 virtualbox 的那些东西后重启没有虚拟显卡驱动了),可以这样安装:

  • 命令行登录
  • 使用 mount 命令挂载你的光驱
sudo mount /dev/sr0 /mnt
cd /mnt
  • 安装
sudo ./VBoxLinuxAdditions.run
  • 卸载光驱
sudo umount /mnt

文件夹共享设置

选中虚拟机,点击「设置 - 共享文件夹 - 右边的绿色 + 号」。「路径」选「其它」,然后选择宿主机中要共享的文件夹,会自动分配名称。下面的三个选项「只读分配」、「自动挂载」、「固定分配」请酌情选择。

启动进入虚拟机。

Windows XP

使用「网上邻居」来添加一个新的网上邻居。具体见下图。

Virtualbox share setup in XP.png

常见问题

在虚拟机中切换到 TTY

使用 Ctrl + Alt + F1 会把你的宿主机也就是物理计算机切换到 TTY 控制台。

正确的方法是使用「Host Key」也就是「右边的 Ctrl」+ F1 来做。

网银盾

进入虚拟机后使用上面工具栏的「设备 - 分配 USB 设备」把网银盾分配给虚拟机。其它照常。

Kernel driver not installed (rc=-1908)

在内核更新之后,就很可能会遇到打不开虚拟机的情况,错误如下图所示:

VirtualBox kernel driver not installed.jpg

解决方法:

su
zypper in virtualbox-host-source kernel-devel
systemctl stop vboxdrv
vboxconfig

然后重启系统。

测试于 openSUSE Tumbleweed 20180128

Vboxgtk: This parameter must be a string or Unicode object

解决方案(4 楼):https://forum.suse.org.cn/viewtopic.php?f=13&t=1373&hilit=vboxgtk

Virtualbox 中 USB 设备显示是灰色的

解决方案(2 楼):https://forum.suse.org.cn/viewtopic.php?f=13&t=3130&p=24052

Ubuntu 14.04 无法安装增强功能

在 Ubuntu 14.04 中,使用上面介绍的方法安装增强功能会失败。这时查看 /var/log/vboxadd-install.log 会看到这行:

grep: /lib/modules/3.13.0-35-generic/build/include/linux/version.h: 没有那个文件或目录

这是由于内核上游的改动造成的(这个问题曾经也使得 NVIDIA 驱动安装失败),解决方法也是通用的:

ln -sf /lib/modules/3.13.0-35-generic/build/include/generated/uapi/linux/version.h /lib/modules/3.13.0-35-generic/build/include/linux/version.h

然后重复上面的安装过程即可。

Error opening current controlling terminal for the process (`/dev/tty'): No such device or address

sudo VBoxManage extpack install Oracle_VM_XXX.vbox-extpack

不用图形界面装就行

include/generated/autoconf.h or include/config/auto.conf are missing

只是个表象,你继续往下拉真正的错误是:error: ‘alloc_netdev’ undeclared

解决方案见:http://pietrushnic.github.io/blog/2014/09/20/virtualbox-dkms-fix-alloc-netdev-problems-when-compiling-with-3-dot-17-dot-0-rcx-headers/

TW:libdevmapper.so.1.02()(64bit) 被需要

这是因为 openSUSE Tumbleweed 中的 device-mapper 在编译时人为的把 1.02.78 的版本号提升为了 1.03.01(非上游行为,我也不知道为什么,从 13.2 就开始了),所以编译出来的是 libdevmapper.so.1.03,因此无法提供 libdevmapper.so.1.02()(64bit),需要 tweak 一下,我已经提交了请求,目前可以用 home:MargueriteSu 源中的 device-mapper 先顶一下。

VT-x is not available. (VERR_VMX_NO_VMX)

这是因为你的 BIOS 中没有打开虚拟化(virtualization)选项。

这会导致比如宿主机明明是 64 位却创建不了 64 位的虚拟机,或者创建的是 64 位虚拟机却 fallback 成了 32 位的,以及启动 openSUSE 时出现“This is a 32 bit computer, you can't use 64 bit software on it”错误无法进入系统,等问题。