虚拟机
虚拟机介绍
Wikipedia上虚拟机
的定义是:“有效的、独立的真实机器的副本。”,结合到实际中就是用各种虚拟机软件
创建不同的“虚拟机”;从使用层面来说,这些“虚拟机”和物理机没有什么区别,甚至比物理机更加灵活方便,可以随时修改硬件配置、网络参数等等。
下面几个文章是对虚拟机及其技术的简单介绍:
- 虚拟机-wikipedia
- 虚拟 Linux-虚拟化方法、架构和实现概述
- 虚拟机是怎么实现的?
虚拟机软件
我知道的虚拟机软件有下面三个(文章最后有它们的界面截图):
- VMware,支持Win、Mac、Linux,收费
- Fusion for Mac,
Fusion
VS Fusion Pro
- Workstation for Windows,
Workstation Player
VS Workstation Pro
- Workstation for Linux,
Workstation Player
VS Workstation Pro
- VirtualBox,支持Win、Mac、Linux,免费
- Parallels Desktop,只支持
Mac
版本,收费
它们各有特点,关于它们的对比和区别,可参考下面的文章:
- 哪款虚拟机最好 ParallelsDesktop 10和VMware Fusion 7和VirtualBox 4对比分析,基于Mac系统对比
- 【整理】虚拟机的选择,VMWare还是VirtualBox – 绝对推荐VirtualBox
我的使用体验
由于我只使用过其中的VMware和VirtualBox,所以只能说一下这两个软件的使用体验:
- VMware Workstation
- 功能强大、软件复杂
- 收费(找破解版麻烦),虽然Play版本免费,但是功能缩水,而且所谓的“不能用于商业用途”
- 非常耗资源
- VirtualBox
- 简单易用
- 完全免费
- 节省资源,一台普通电脑开好几个Ubuntu虚拟机无压力
从长期的个人使用来看,对于一般的功能需求,两个都能满足,在没有特殊需求的情况下建议使用VirtualBox,免费又好用。
学习资料
基本都是谷歌解决问题,查资料的过程中发现下面两个资料,看评价还不错,貌似值得一看:
- 精通VMware10虚拟机视频课程
- VMware Workstation 10—虚拟化入门神器完全讲解视频课程
VirtualBox
基本功能
- 导入、导出:方便虚拟机文件备份、分享
- 注册:注册一个新的虚拟机目录,支持多个虚拟机在不同的路径,比如A虚拟机在D盘,B虚拟机在F盘,磁盘空间受限时非常有用处;
- 修改虚拟机配置
- 内存
- CPU
- 网络:NAT、桥接等
- 修改存储:一个虚拟机可以切换不同的存储文件(.vmdk、.vdi),个人理解类似于一个物理机,可以插不同的启动盘启动
一些参考文档
- What disk image should I use with VirtualBox, VDI, VMDK, VHD or HDD?
- Converting vmdk files to vdi using VBoxManage
- How to resize a VirtualBox vmdk file
- mkfs - The device apparently does not exist; did you specify it correctly?
虚拟机磁盘扩容
虚拟机使用久了,或者开始创建的时候空间设置小了,在后期都可能遇到磁盘空间不足的问题,一般有下面三种方式处理该问题:
- 重新创建一个大容量的虚拟机,环境都得从头搭起
- 添加新的分区:根目录依旧还是那么大,基于根目录的操作依旧面临空间不足的限制
- VirtualBox如何扩展虚拟机Ubuntu的硬盘容量?,添加新分区
- 我的实践总结: github gist
- 直接增加根目录分区的大小:完美扩容
- VMware下扩展ubuntu虚拟机根目录分区,扩展根目录分区 ☆☆☆☆
- HOW TO EXPAND THE ROOT FILESYSTEM OF A 12.04 UBUNTU RUNNING INSIDE VMWARE PLAYER 对应的英文原文
在下面的环境亲测上述2方案、3方案均ok:
- Windows 10
- VirtualBox 5.1.6 r110634 (Qt5.5.1)
- Ubuntu 16.04 LTS
创建Ubuntu虚拟机
这里我想写一下我基于VirtualBox创建和使用Ubuntu的方法,充分发挥虚拟机的优势,重复利用已有的虚拟机;
创建全新的虚拟机
具体可参考网上的教程创建,非常简单,没遇到过什么问题;
建议:磁盘空间尽量设置大一点,避免后期扩容的痛苦;
该版本简称V1
;
将虚拟机导出备份
- “管理”->“导出虚拟电脑”
- 选择要导出的虚拟机
- 选择导出目录
- 其他默认即可
- 即可导出
.ova
格式的虚拟机文件,用导入功能即可导入该虚拟机文件;
在V1的基础上安装软件,生成新的虚拟机版本
- v2
- vim
- ssh
- zsh
- wget
- curl
- git
- autojump
- Nodejs
- TDLR
- v3
- dos2unix
- pyenv
- pyenv-virtualenv
对于上述每一个版本的虚拟机都可以导出备份,后期可以从任何一个版本开始搭建新的开发环境,省去了搭建基础环境的过程,而且可以快速的分享给Team里面其他人,避免多次搭建环境的麻烦;
也可以用Docker完成类似的工作,但是个人感觉开发更使用虚拟机。
创建OS X(现在的macOS)虚拟机
注:以下实验都是在Windows上完成的;
我的物理机参数
以下是鲁大师检测的参数,外加一个1T的普通硬盘:
- 电脑型号
技嘉 B85-HD3 台式电脑
- 操作系统
Windows 10 Enterprise 64位 ( DirectX 12 )
- 处理器
英特尔 第四代酷睿 i5-4590 @ 3.30GHz 四核
- 主板
技嘉 B85-HD3 ( 英特尔 Haswell - Lynx Point )
- 内存
16 GB ( 金士顿 DDR3 1600MHz )
- 主硬盘
三星 SSD 850 EVO 250GB ( 250 GB / 固态硬盘 )
- 显卡
Nvidia GeForce GTX 750 ( 2 GB / Nvidia )
- 显示器
戴尔 DEL4091 DELL E2414H ( 24 英寸 )
- 声卡
瑞昱 ALC892 @ 英特尔 Lynx Point 高保真音频
- 网卡
瑞昱 RTL8168/8111/8112 Gigabit Ethernet Controller / 技嘉
我的建议
在上述硬件环境下,使用VMware Workstation和VirtualBox我均搭建过OS X虚拟机,实际的体检都很差,特别卡,所以我建议:
- 直接购买Mac系列产品;
- 直接裸机装苹果系统,俗称黑苹果;
使用VMware Workstation
- OS X 10.11.4 15E65 原版安装U盘镜像(百度云分享)
- OS X Yosemite,密码:
eqjm
,内含unlocker203.zip
、darwin6.0.3.zip
;
- OS X El Capitan,密码:
tjpi
;
- VMware 11安装Mac OS X 10.10
遇到的问题:
- 不能验证这个“安装 OS X El Capitan”应用程序副本。它在下载过程中可能已遭破坏或篡改。
- 解决办法是修改系统时间到15年:
sudo date 122501112015.20
- 问:不能验证这个“安装 OS X El Capitan”应用程序副本。它在下载过程中可能已遭破坏
- 求助大神 不能验证 安装OS X Ei Capitan
使用VirtualBox
- [APP开发] 在 Win 7或8 下使用 VirtualBOX 虚拟机安装 OS X 10.11 El Capitan 及 Xcode 7.0
- VirtualBox安装OS X El Capitan笔记
安装方式更简单,源文件获取方式同“使用VMware Workstation”。
遇到的问题:
(1) 虚拟机分辨率太小,不足以全屏
- [How To Change Display Resolution On OS X (VirtualBox)](https://www.youtube.com/watch?v=0ws3gHc0k70)
具体的操作过程如下:
1 2 3 4 5 6 7 8 9 10
| # 进入VirtualBox的安装目录,我的是(C:\Program Files\Oracle\VirtualBox) > cd "C:\Program Files\Oracle\VirtualBox" # 以管理员权限运行CMD,然后运行下面的命令 # 参数说明 # OSXElCapitan:虚拟机名称 # N:Where N can be one of 0,1,2,3,4,5 referring to the 640*480, 800*600, 1024*768, 1280*1024, 1440*900, 1900*1200 > VBoxManage setextradata "OSXElCapitan" VBoxInternal2/EfiGopMode 5 # 完成设置时重启VirtualBox
|
几款虚拟机软件截图对比
VMware Workstation
VMware Workstation Play
VMware Workstation Pro
VirtualBox
OS X
Ubuntu V3
Parallels Desktop