2. 准备 VirtualBox 用户
我们使用普通用户来管理及创建虚拟机,而不是 root 用户。如果你没有普通用户,通过下面命令来创建,这里我们创建一个 vmuser 的普通用户,组也为 vmuser
# groupadd vmuser# useradd -d /home/vmuser -m -g vmuser -s /bin/bash vmuser 为新用户创建登录密码
# passwd vmuser 然后用这个用户登录
3. 安装 VirtualBox
安装 VirtualBox 需要 root 权限,因此要运行
# su更新你的 linux 内核
# yum install kernel更新完成后,必须重启电脑
# reboot用普通用户登录后,再转为 root
$ su接下来安装 VirtualBox 4.3 的依赖包
# yum groupinstall 'Development Tools'
# yum install SDL kernel-devel kernel-headers dkms安装下载工具 wget
# yum install wget下一步下载并注册 VirtualBox 的 rpm 公钥
# wget -q
# rpm --import Oracle_vbox.asc
# rm -f oracle_vbox.asc现在我们开启 VirtualBox 的 RHEL 软件仓库(CentOS 是从 RedHat 衍生出来的 Linux 版本)
# cd /etc/yum.repos.d/
# wget (注:如果是 Fedora 系统,将上面下载地址中的 rhel 改为 fedora,你也可以取地址前面部分,直接在网站上浏览,找找看有哪些系统被支持软件仓库)
在软件仓库中搜索并安装最新的 VirtualBox 版本
# yum search virtualbox
VirtualBox-3.2.x86_64 : Oracle VM VirtualBox
VirtualBox-4.0.x86_64 : Oracle VM VirtualBox
VirtualBox-4.1.x86_64 : Oracle VM VirtualBox
VirtualBox-4.2.x86_64 : Oracle VM VirtualBox
VirtualBox-4.3.x86_64 : Oracle VM VirtualBox用下面这条简单的命令来安装
# yum install VirtualBox-4.3.x86_64VirtualBox 4.3 核心包有 72M,如果在安装时,下载失败,可以重复执行安装命令,yum install 会断点续传,不用担心下载失败问题
从 4.0 版本开始,VirtualBox 提供扩展包,提供远程桌面连接(VRDP),USB运行等功能。因为我们接下来需要 VRDP 功能来安装管理虚拟机系统。
下载并安装扩展包(具体下载地址请到官方网站的下载页面查看)
# cd /tmp
# wget
# VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.3.6-91406.vbox-extpack(注:请确认下载最新版本)
现在,将要运行 VirtualBox 的用户添加到组 vboxusers 中(这里,我们创建的用户是 vmuser)
# /usr/sbin/usermod -G vboxusers vmuser好了,现在已经完成安装了。
输入
# exit退出 root 用户,返回到普通用户
4. 在命令行字符模式下使用 VirtualBox
4.1 创建一个虚拟机
常用的命令是 VBoxManage,你可以加 --help 参数来查看帮助,也可以在官方手册的第8单查看详细说明:
$ VBoxManage --help
创建一个 Windows2003 虚拟机。加参数 --register 直接注册到虚拟机列表
$ VBoxManage createvm --name "Windows2003" --register --ostype Windows2003接下来设置内存为 1024M,打开 acpi,设置启动项,以及桥接到主机的 p3p1 物理网卡上
$ VBoxManage modifyvm "Windows2003" --memory 1024 --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 p3p1下一步是创建一个虚拟机硬盘,分配 10G 空间,默认动态增长文件大小
$ cd /home/vmuser/Virtual\ VMs/Windows2003/
$ VBoxManage createhd --filename Windows2003_CN.vdi --size 10000添加一个 IDE 控制器,然后将虚拟硬盘添加到 IDE 的第一个接口,并作为主设备
$ VBoxManage storagectl “Windows2003" --name "IDE Controller" --add ide
$ VBoxManage storageattach "Windows2003" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium Windows2003_CN.vdi添加一个 IDE 光驱,并指定光盘映像
$ VBoxManage storageattach "Windows2003" --storagectl "IDE Controller" --port1 --device 0 --type dvddrive --medium /mnt/usb/windows2003.iso
你也可以从其它电脑上复制现成的 vdi 文件,只要将 --medium Windows2003_CN.vdi 改为你复制过来的 VDI 文件即可。
同样,你也可以从其它电脑上复制整个虚拟机,只要将它注册到虚拟机列表即可。
如:
$ VBoxManage registervm /home/Virtual\ VMs/myvm/myvm.vbox这里,vbox文件是一个 xml 格式的配置文件,复制时,保持文件相对位置不变。
复制过来的文件,有可能无法启动,如网卡桥接模式,绑定的物理网卡通常不在当前的宿主机网卡列表中,这时只要打开 vbox 文件,找到 bridge 配置项,将网卡名称改为当前宿主机上的网卡名称就可以了。
BTW,大部分的 VBoxManage 命令最终就是修改这个 vbox 文件。
现在你可以用下面的命令来查看刚才创建的虚拟机
$ VBoxManage showvminfo Windows2003
4.2 用 Headless 方式启动虚拟机
$ VBoxHeadless --startvm Windows2003默认,会打开 VRDP,端口为 3389,这时,就可以用标准的 VRDP 客户端来连接虚拟机进行系统安装及管理了。
在命令行,按 Ctrl + Z,可以将虚拟机任务挂机。
$ jobs可以看到挂起的任务,我们用 bg + 任务号,将它转为后台运行
$ bg 1这时,你输入下面命令,可以查看当前在运行的虚拟机
$ VBoxManage list runningvms
"Windows2003" {7eee7d4b-ef1b-4dc7-8d08-dab2b6531646}显示了运行中的虚拟机名称及 UUID 列表
关闭虚拟机:
$ VBoxManage controlvm Windows2003 --acpipowerbutton或
$ VBoxManage controlvm Windows2003 --poweroff前者相当于按一下电源按钮,系统开始关闭处理,后者相当于直接拨电源线
4.3 挂载 USB 设备
首先要启用 USB 支持,并打开 USB 2.0 增强
$ VBoxManage modifyvm Windows2003 --usb on --usbehci on接入 USB 设备,查看 USB 列表
$ VBoxManage list usbhost
Host USB Devices:
UUID: 1af60eb8-0cad-4bf9-89b1-edae0c38e97b
VendorId: 0x05ac (05AC)
ProductId: 0x8510 (8510)
Revision: 128.37 (12837)
Port: 0
USB version/speed: 2/2
Manufacturer: Apple Inc.
Product: FaceTime HD Camera (Built-in)
SerialNumber: CCGCBM05XJDWC8C0
Address: sysfs:/sys/devices/pci0000:00/0000:00:0b.0/usb1/1-1//device:/dev/vboxusb/001/002
Current State: Busy 接下来,用 usbfilter 命令来添加
$ VBoxManage usbfilter add 0 --target "Windows2003" --name "myusbdevice" --action ignore --serialnumber CCGCBM05XJDWC8C0这里用的是 USB 设备序列号来添加,有些 USB 设备没有序列号,那还可以用 productid, product 等来进行选择设备
完成 USB 挂载后,启动 Windows 系统,就可以看到找到新设备了。