简介
VirtualBox是由德国InnoTek公司出品的自由开源的虚拟机软件,现在被甲骨文Orcale公司收购发行。 VirtualBox是易用性、开源可信的最佳平衡,支援Windows/Linux/MacOS/Solaris等各种桌面操作系统,性能足够,迁移配置方便友好。
作为系统级软件,开源是非常重要的,一般应用可以丢到容器或虚拟机中,但虚拟机软件本身必然是获取最高许可的。
增强工具
虚拟机软件通常会配套增强工具,用以提供虚拟机和物理机的互动功能,通常共享剪贴板、拖拽等需要增强工具支援。 增强工具还通常包含虚拟硬件特定的驱动。 一般增强工具随虚拟机软件包以ISO格式提供。
下载&安装
下载
官网直接提供针对各OS的安装包,还有适配各种小众Linux的通用安装包。
硬件设定
通常虚拟化软件需要打开CPU的虚拟化功能,尽管VirtualBox支援完全软件虚拟化,没有硬件支援也能运行x86虚拟机,但性能会非常糟糕。
CPU虚拟化功能在Intel系列叫 VT-x 在 AMD 系列叫 AMD-V,通常在BIOS中预设启用。
安装
Windows/Linux/MacOS 都可以直接用安装包简易安装。
对于Linux发行版,如果仓库中有VirtualBox,建议安装发行版官方仓库维护的版本。
- Arch
- 从发行版仓库安装
sudo pacman -S virtualbox
- 从发行版仓库安装
- Ubuntu
- 确认启用multiverse通道
/etc/apt/sources.list - 从发行版仓库安装
sudo apt install virtualbox
- 确认启用multiverse通道
扩展
Orcale将部分高阶功能以专有许可发布,通过扩充套件的方式强化VirtualBox功能,主要包括USB3.0的支援等。 扩展包可以从官网下载页面免费下载,需要接受专有协议。
最新版本USB3.0也转移到自由开源部分了,所以扩充套件已经没什么安装必要了。
全局设定
打开软件介面,左上角 File->Preferences 进入全局设定。 这里简介常用设定项,不同版本名称和分级略有区别,这里以7.2.8版本为参考。
- General
- Default Machine Folder
- 预设虚拟机存放位置,每个虚拟机会在里面的一个子档案夹中存放虚拟磁盘、设定档案等
- 建议改到空间充裕的分区,虚拟机档案体积通常很大。
- VRDP Authentication Library
- 虚拟机软件自带远程桌面的认证库选择
- 预设就好
- Default Machine Folder
- Input
- 快捷键设定
- 只有 Virtual Machine 的 Host Key Combo 常用,预设右侧Ctrl,不习惯可以改。
- Update
- 更新策略和周期
- 当然不自动检查更新
- Language
- 介面语言
- 这里可以改成中文,但不是每个OS都有效,翻译也不全面,所以本文以英文为准。
- Display
- 虚拟显示器的设定
- 预设就好
- Proxy
- 虚拟机软件本身的代理设定,和虚拟机无关。
VM设定详解
每个VM都有一套单独的设定档案,在对应档案夹中的 VMname.vdi。
虚拟机条目右键或上方点击 Settings 进入设定。
- General
- Identity
- 设定名称和OS类型
- OS类型会自动调整之后设定的兼容性提示
- Features
- 截图档案夹、剪贴板、拖拽
- 启用与否可以运行时修改
- 启用后需要增强工具才能实际有效
- Description
- 给虚拟机写一些说明
- Disk Encryption
- 虚拟磁盘加密
- 预设不启用适合绝大多数用户
- Identity
- System
- Motherboard
- Base Memory
- 内存
- 可以设定超越物理机真实内存,当然不能真用超。
- Boot Device order
- 启动顺序,可以把Floppy去掉了
- Chipset
- 晶片组,预设即可
- TPM Version
- 加密模组,Win11需要2.0
- Point Device
- 鼠标,预设即可
- Features
- 选好OS类型这里会自动设置好
- Linux需要UTC
- Win11需要UEFI和SecureBoot
- Base Memory
- Processor
- CPU核心数
- 可设置超越物理真实规模,当然实际使用超不了,可以骗骗测试的OS
ested VT-x/AMD-v如果启用则虚拟机中可以再装虚拟机并加速。
- Acceleration
- CPU加速方式,虚拟机跑的跟物理机差不多快就靠这个。
- 预设即可,Linux通常会是KVM,Windows则为Hyper-V。
- Motherboard
- Display
- Screen
- Video Memory 显存建议直接拉到最大。
- Number of Virtual Monitors 虚拟显示器数目,预设1即可。
- Scale Factor 放缩
- Graphics Controller 虚拟显卡,根据OS类型预设的即可。
- 3D Acceleration 运行3D游戏需要,但VirtualBox这方面很弱,几乎不可用。
- Remote Display
- 虚拟机软件直接提供的远端桌面没什么用
- Recording
- 录屏一般用不到
- Screen
- Storage
- Controller控制器类型按照OS类型预设的即可
- 硬盘可以虚拟成HDD或SSD
- 光驱通常只用来安装系统和增强工具
- Audio
- Host Audio Driver
- 主机驱动,预设即可,选错了主机放不出VM的声音。
- Audio Controller
- 虚拟声卡
- 按OS类型的预设即可,错了VM内OS不识别
- Features
- 通常仅输出比较隐私友好
- Host Audio Driver
- Network
- 共可配置4块网卡
- Attached to 网络模式
- NAT 预设通过主机上网,虚拟机可以通过网关地址访问主机,主机不能访问虚拟机。
- Bridged Adapter 桥接,将虚拟机直接和所桥接的物理网卡平级暴露给外部,其他网络设备可以直接访问VM。
- Internal Network 内部网络,只能虚拟机共用互联,和主机或外部都不通。
- Host-only Adapter 主机网络,虚拟机和主机上的一块虚拟网卡组网互联,不直接外联。
- Generic Driver 通用驱动,扩展用法一般用不到。
- NAT Network 更高级的NAT模式设定,提供主机访问虚拟机等方法。
- Not attached 只虚拟接口不插入网卡。
- Name 网卡名称
- 选择同样名称虚拟网卡的虚拟机可以互联
- Adapter Type
- 虚拟网卡型号
- 预设
Intel PRO/1000 MTDesktop (82540EM)兼容性最好 - Linux Guest 选 virtio-net 可能性能更好
- Promiscuous Mode 黑客功能预设即可
- MAC Address
- MAC地址可以随意设定,建议预设的080027开头的即可。
- Serial Ports
- 古老的序列埠,通常用不到。
- USB
- 不想启用USB功能,需要把鼠标改成PS/2。
- USB2.0/3.0支援需要安装专有扩展包,免费但不完全开源。
- 这里还可以将一些主机的USB附件直接绑定到VM。
- Shared Folders
- 共享档案夹,有只读模式,需VM安装增强工具起效。
- User Interface
- 一些窗口排版、按钮之类的设置,可以运行时修改。
VM装机
- New一个新的VM
- 初始设定
- 首先起名字并设定OS类型,会决定之后的预设和兼容性提示。
- 对于支援的系统可以设定自动安装,建议都手动,略过此项。
- 硬件设定内存和CPU核心数,后期都好改。
- 虚拟磁盘设定很重要,尤其是档案类型和容量后期修改很麻烦。
- 参考上一节设定VM并指定系统ISO
- 像在物理机上一样用虚拟光盘安装系统
- [可选]安装增强工具
- LinuxVM 依赖内核头档案可不提供,剪切板/拖拽等常用功能仍然可用。
- 为了便捷使用共享档案夹等功能Linux客户机需要将user添加到vboxsf组。
sudo usermod -aG vboxsf $USER
- Windows7 可能遇到驱动签名问题,7.x版本强行确认安装即可。
隔离指南
虚拟机的主要用途就是模拟测试OS,或者隔离不可信的程序。
很多发行版借助虚拟机技术来实现隐私强化和匿名访问,如果自行配置虚拟机隔离环境可以参考这些发行版。 其中比较知名的推荐参考是 Qubes OS 和 Whonix
实用技巧
压缩虚拟磁盘占用空间
虚拟磁盘通常几十GiB大小,预设的vdi格式会只存储用过的(非全0)的部分而减小真实硬盘占用。
但随着使用体积会越来越大,但VirtualBox的图形界面没有VMware那样的虚拟磁盘压缩功能。
这就需要用命令行来进行 vboxmanage modifyhd --compact 虚拟磁盘路径.vdi
在压缩前可以打开虚拟机用 SDelete(Windows) 或 dd(Linux/MacOS) 将闲置空间写入全0.