Virtualbox
目录
- 1 准备
- 2 通用步骤
- 3 往虚拟机内安装操作系统
- 4 在虚拟机内安装 Virtualbox 驱动
- 5 文件夹共享设置
- 6 常见问题
- 6.1 在虚拟机中切换到 TTY
- 6.2 网银盾
- 6.3 Kernel driver not installed (rc=-1908)
- 6.4 Vboxgtk: This parameter must be a string or Unicode object
- 6.5 Virtualbox 中 USB 设备显示是灰色的
- 6.6 Ubuntu 14.04 无法安装增强功能
- 6.7 Error opening current controlling terminal for the process (`/dev/tty'): No such device or address
- 6.8 include/generated/autoconf.h or include/config/auto.conf are missing
- 6.9 TW:libdevmapper.so.1.02()(64bit) 被需要
- 6.10 VT-x is not available. (VERR_VMX_NO_VMX)
准备
安装 Virtualbox
sudo zypper in virtualbox
- 如果你是 Leap 用户,并且希望能够使用最新版本的 virtualbox 你可以前往 software.opensuse.org ,下载并安装适用于 tumbleweed 的软件包。
加入用户组
打开 YaST ,找到并打开 用户和组管理 ,然后点击左下角的 编辑 ,在新窗口中点击 细节 选项卡,在右侧的列表中找到并勾选 vboxusers ,确认保存退出,然后注销并重新登录即可。
安装扩展包
扩展包主要提供了 USB 驱动和 3D 加速驱动等版权内容。
- 下载 VirtualBox Extension Pack。
- 打开 VirtualBox ,点击 管理 ,再点击 全局设定 ,再点击 扩展 ,再点击右侧的 添加新包 的小图标,安装你刚刚下载保持的扩展包文件。
- 首次打开 VirtualBox 会提示用户是否启用 USB 功能(这可能会带来安全风险,但是它带来的便利值得这么做),个人建议可以使用该功能。
命令行安装扩展包(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
通用步骤
新建虚拟机
- 将鼠标光标停留在某个选项上会显示该选项的简易使用说明。
- 注意,请将虚拟机安装在固态硬盘分区中以提高虚拟机的性能。
- 如果你的根目录(宿主机为 Linux )存放在固态硬盘且有剩余空间(且你拥有一个独立的 /home 分区(非固态硬盘)),你可以参考如下步骤创建一个文件夹:
$ cd / # 移动到根目录 $ sudo mkdir vm # 创建一个名为 vm 的文件夹 $ sudo chown <username>:users vm # 将该文件夹(vm)的所有权限赋予给普通用户组(users)的普通用户(将 <username> 替换为你的用户名) $ ls bin boot dev etc home lib lib64 mnt opt proc root run sbin srv sys tmp usr var vm $ exit
打开 VirtualBox ,点击 新建 ,输入虚拟机的名称(VirtualBox 会根据你输入的名称快速筛选虚拟机的版本和类型),点击下一步。
- 此时,你可以将 文件夹 修改为你刚刚创建的文件夹的路径。
内存大小建议最小 2048 MB ,具体的最低配置详见你所安装的系统版本的最低配置要求。点击下一步。
选择默认的 现在创建虚拟硬盘 ,类型可选为 VDI ,为了向外兼容,你可以考虑其他格式,具体相见 Virtualbox 和其他虚拟机的使用文档。点击下一步,选择 动态分配 ,大小建议 20 GB 起步,具体的最低配置详见你所安装的系统版本的最低配置要求。点击下一步。
配置虚拟机
在 VirtualBox 的首页,点击 设置 ,点击 系统 ,在 主板 页面,你可以点击勾选 启用 EFI(某些系统需要用户启用 UEFI ,例如 Arch Linux)。在 处理器 页面,你可以更改虚拟机使用的 CPU 核心数。
- 给虚拟机分配过多的资源会导致宿主机卡顿。
- 你可以修改该页面中的启动顺序来改变虚拟机启动时引导设备的顺序。
- KVM 会在系统安装完成后自动禁用系统镜像文件,让用户可以直接重启进入系统;VirtualBox 需要用户手动移除虚拟盘片。
在 显示 中,将 显存大小 拉满,可以考虑是否为虚拟机启用 3D 图形加速(具体取决于你的硬件性能)。
- 如果你遇到无法调节虚拟机屏幕分辨率的问题,你可以在关闭虚拟机后,更换虚拟机使用的虚拟显卡或者关闭 3D 图形加速。
在 存储 中,点击 没有盘片 ,点击 分配光驱 右侧的光碟小图标,再点击 选择虚拟盘 ,找到并选中你准备好的系统镜像文件。
在 USB 设备 中,点击右侧的 添加一个 USB 筛选器 ,勾选你插入宿主机的 USB 设备。
- 该步骤为可选操作。
- 一旦启动虚拟机,你插入宿主机的 USB 设备就会自动被重定向到虚拟机中,并且在虚拟机关机前,你都不能在宿主机访问该 USB 设备。
在 共享文件夹 中,点击右侧的 添加共享文件夹 ,点击 共享文件夹路径 右侧的倒三角符号,点击 其他 ,选择一个文件夹用于共享文件。然后勾选 自动挂载 。
- 该步骤为可选操作。
- 共享文件夹可以实现主宿机间文件的实时交流
- 请勿将虚拟机的任何程序或者程序所使用的文件夹安装或存放到共享文件夹中。
- 虚拟机在共享文件夹所创建的,非你手动创建的文件,基本可以在使用完虚拟机后删除。
如果你在配置虚拟机的时候,没有指定使用的系统镜像文件。虚拟机在启动的时候会提醒你选择一个镜像文件。 点击右侧的 选择一个虚拟光盘文件 ,再点击 注册 ,找到并选中你下载的光盘文件,点击你新添加的镜像文件,再点击 选择 ,确定无误后启动虚拟机。
安装系统
请参考你所要安装的系统的官方指南或相关可用的教程。
杂项
Virtualbox 会自动捕获用户的鼠标光标,你可以按 右 Ctrl 取消捕获。按 右 Ctrl + F 进入全屏。
为了能够让你的虚拟机的识别你的 USB 设备,你需要安装增强功能:点击上方的 设备 ,再点击 安装增强功能 。
Windows
所有的 Windows 设置都一样,这里以 Windows 8 为例。
值得注意的是:
- 芯片组那里是 ICH9
- 2D 视频加速可以打开,3D 也可以,但要安装 Virtualbox 的「增强功能」也就是虚拟硬件驱动才能实现。
- PAE/NX 和 VT-x/AMD-v 以及嵌套分页都要打开,第一个是传递主机物理地址的,第二个是 BIOS 里面的虚拟化的东西。
- USB 2.0 EHCI 驱动没有安装扩展包是勾选不上的。
- 显存给到最大,CPU 用单核。不然会卡。
然后 Windows 8 安装按下图走:
值得注意的就是复制好文件第一次重启,输入完计算机名之后,是注册 Microsoft 帐号,那个超麻烦,直接选下面的「不使用 Microsoft 帐号登录」,然后选择「本地帐号」。
Ubuntu
如图,其中声音下面的 Intel HD 音频是根据你声卡来的。然后 USB 控制器的话你没有安装扩展包是勾选不上的。
为什么这么设置的原因在 为蝶变和乌斑兔打包#安装虚拟开发机中有讲。
往虚拟机内安装操作系统
如下图所示,点击右上角的光盘图标挂载操作系统的 ISO:
或者将操作系统的光盘放入物理 DVD 驱动器。openSUSE 会自动挂载它,这里你要先选择卸载,不然被主机占用的光驱,虚拟机是没法使用的。然后在选择 ISO 那里选择物理设备。随后启动虚拟机即可进入相应的操作系统安装界面。
在虚拟机内安装 Virtualbox 驱动
Windows
Windows 需要在安全模式下才能安装 Virtualbox 增强功能,非安全模式下安装的增强功能没有 3D 虚拟硬件驱动。
首先在正常的 Windows 桌面下,找到开始菜单,在搜索栏输入“msconfig”,在「引导选项」中勾选「安全引导」-「最小」后点击确定自动重启到安全模式。
打开「我的计算机」,在光驱中已经装入了 Virtualbox Addon,但是安全模式下,直接点击是不会自动运行的。我们要进入这个光驱,然后运行 VBoxGuestAdditions。
Windows 8 按下 Win 键 + C,按图操作:
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 的开发包就可以安装虚拟硬件驱动。安装方法看下图:
Linux 下面,deb 系发行版的内核开发包叫 linux-headers,而 rpm 系发行版的内核开发包叫 kernel-devel。这个搞错容易找不到开发包来装。
命令行安装
有时候你进不去图形界面(因为刚卸载了 virtualbox 的那些东西后重启没有虚拟显卡驱动了),可以这样安装:
- 命令行登录
- 使用 mount 命令挂载你的光驱
sudo mount /dev/sr0 /mnt cd /mnt
- 安装
sudo ./VBoxLinuxAdditions.run
- 卸载光驱
sudo umount /mnt
文件夹共享设置
选中虚拟机,点击「设置 - 共享文件夹 - 右边的绿色 + 号」。「路径」选「其它」,然后选择宿主机中要共享的文件夹,会自动分配名称。下面的三个选项「只读分配」、「自动挂载」、「固定分配」请酌情选择。
启动进入虚拟机。
Windows XP
使用「网上邻居」来添加一个新的网上邻居。具体见下图。
常见问题
在虚拟机中切换到 TTY
使用 Ctrl + Alt + F1 会把你的宿主机也就是物理计算机切换到 TTY 控制台。
正确的方法是使用「Host Key」也就是「右边的 Ctrl」+ F1 来做。
网银盾
进入虚拟机后使用上面工具栏的「设备 - 分配 USB 设备」把网银盾分配给虚拟机。其它照常。
Kernel driver not installed (rc=-1908)
在内核更新之后,就很可能会遇到打不开虚拟机的情况,错误如下图所示:
解决方法:
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
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”错误无法进入系统,等问题。