1.VM快照管理

这个功能实在太常用,不用我多废话。这里只是提醒一下还没有用过快照的同学,赶紧的给自己的VM保存点快照吧,这样VM里的系统出了问题或是有其它需要很容易让你还原到原来的某个点,这功能可比Ghost的克隆、恢复真机系统要来的方便的多。快照唯一的毛病就是VM占用的空间大小会急剧增加,是实际增加的空间的好几倍,不知道VMware是怎么搞的。

2.扩大硬盘容量

有时候你可能会遇到原先给定的VM的硬盘空间不够了,这个时候就需要扩大硬盘容量了,如果增加额外的一个硬盘(如下图)能满足需求那问题是比较简单的了。

但是有时候可能必须要扩大某个已有的硬盘分区(比如原来D盘只有10G,现在必须把D盘扩大到20G),这个时候就需要用到vmware-vdiskmanager.exe(位于VMware安装路径根目录,如:C:Program FilesVMwareVMware Workstation,有些安装版本可能不自带这个,如果没有就去下一个对应的版本吧),vmware-vdiskmanager.exe的帮助信息非常清楚,如下:

VMware Virtual Disk Manager - build 34685.
Usage: vmware-vdiskmanager.exe OPTIONS diskName | drive-letter:
Offline disk manipulation utility
Options:
-c : create disk; need to specify other create options
-d : defragment the specified virtual disk
-k : shrink the specified virtual disk
-n : rename the specified virtual disk; need to
specify destination disk-name
-p : prepare the mounted virtual disk specified by
the drive-letter for shrinking
-q : do not log messages
-r : convert the specified disk; need to specify
destination disk-type
-x : expand the disk to the specified capacity
Additional options for create and convert:
-a : (for use with -c only) adapter type (ide, buslogic or lsilogic)
-s : capacity of the virtual disk
-t : disk type id
Disk types:
0 : single growable virtual disk
1 : growable virtual disk split in 2Gb files
2 : preallocated virtual disk
3 : preallocated virtual disk split in 2Gb files
The capacity can be specified in sectors, Kb, Mb or Gb.
The acceptable ranges:
ide adapter : [100.0Mb, 950.0Gb]
scsi adapter: [100.0Mb, 950.0Gb]
ex 1: vmware-vdiskmanager.exe -c -s 850Mb -a ide -t 0 myIdeDisk.vmdk
ex 2: vmware-vdiskmanager.exe -d myDisk.vmdk
ex 3: vmware-vdiskmanager.exe -r sourceDisk.vmdk -t 0 destinationDisk.vmdk
ex 4: vmware-vdiskmanager.exe -x 36Gb myDisk.vmdk
ex 5: vmware-vdiskmanager.exe -n sourceName.vmdk destinationName.vmdk
ex 6: vmware-vdiskmanager.exe -k myDisk.vmdk
ex 7: vmware-vdiskmanager.exe -p m:
(A virtual disk first needs to be mounted at m:
using the VMware Diskmount Utility.)

示例ex 4就是一个扩大硬盘分区的例子,找到对应的你要扩大的.vmdk文件照着做就可以了,比如下面是将我的一个VM的D盘扩大到20G(文件路径有空格得用引号“”括一下):

vmware-vdiskmanager.exe -x 20Gb “D:9.VMbuild_vmvm_40Windows XP Professional-000001.vmdk”

对于Windows系统的VM来说,新增的这部分磁盘空间在VM里暂时是看不到的,需要到系统管理工具里的磁盘管理工具里去分配一下就OK了。

对于win7或server 2008(其他的环境没有试),可以使用系统自带的分区扩展命令增加的空间分配到已有的分区中。

1)启动VM,进入Windows系统,在磁盘管理中查看新增加的“未分配的磁盘空间”,确认后在CMD中输入“diskpart”回车,如下图:

2)使用list disk命令列出系统中的所有物理磁盘,然后使用select disk x命令选定要扩展的磁盘,示例选择disk 1,如下图:

3) 使用list partition命令列出已选定磁盘上的所有分区,使用select partition x选定要扩展的分区,示例扩展partition 1,如下图:

4)在已选定分区的情况下,输入“extend”扩展所选分区,默认会合并其后的所有未分配空间,当然,也可以在extend命令后跟size参数设定要扩展多少M空间,如:extend size=2000; 如下图:

5)扩展完毕,查看原分区中的数据,完好无损;

3.释放硬盘空间

VM用的时间一长,有个大毛病就是占用的文件空间越来越大,而实际使用的空间并没有那么多(比如Kyle Hu遇到的问题:VM分区大小是80GB,使用27GB,虚拟机文件夹为41.9GB,困惑!)。具体原因未明,我的理解可能是因为虚拟硬盘在占用某块空间后,即使这块空间后面被释放了(如:文件删除),VM占用的空间也不能完全缩回去。对于这种情况,如果硬盘吃紧心疼这些被吃掉的空间,就需要用到VM的disk shrink功能来释放这些空间,关于disk shrink具体见官方的文档:http://www.vmware.com/support/ws5/doc/ws_disk_shrink.html,不过disk shrink有很多限制条件,比如不能有快照、空间不能被预分配等。要使用disk shrink需要先安装VMware Tools,安装VMware Tools需要先将你的VM打开,然后按下图选择安装VMware Tools,

这样在VM里面就会自动插入一张VMware Tools的安装盘,VM是Windows系统的话进入光盘安装即可,如果是linux的话,操作步骤大致如下:

# 到光驱目录
cd /media/cdrom0
# 找到VMware Tools压缩文件
ls
# 解压到TMP文件夹下
tar xvfz VMwareTools-8.1.3-203739.tar.gz -C /tmp
cd /tmp
# 找到VMwareTools安装文件夹
ls
cd vmware-tools-distrib
# 用root权限安装
sudo ./vmware-install.pl
# 输入密码,一路回车,然后就安装完毕了。
# 这个时候应该有vmware-toolbox这个命令了,如果还没有再运行一下vmware-tools-config.pl就OK了。

VMware Tools 安装完成后就可以在VM里按上面提供的链接里讲的那样进行disk shrink了,做完disk shrink后VM的使用空间和VM文件实际占用的空间基本能保持一致了。

4.磁盘碎片整理

跟真机一样,VM使用时间一长,就会产生很多磁盘碎片,VM的性能会有所下降,这个时候可以通过VM的Defragment来整理磁盘碎片。

磁盘碎片整理结合上面介绍的disk shrink来使用(在disk shrink之后)效果更佳。

5.命令行启动VM

除了通过界面来操作VM,其实也是可以通过命令行来启动一个VM的(这个可能很少有人用到),比如下面的批处理命令能启动并全屏vm-40这个VM:

start vmware -X “D:9.VMbuild_vmvm_40winxppro.vmx”

你还可以在VM的启动项(如:windows的startup,linux的init.d等)里面预先加入一些自定义的任务,这样就可以自动控制一些VM去做一些事情,完成一些自动化的任务了。

VMware实用技巧的更多相关文章

  1. Notepad++ 实用技巧

    Notepad++是一款开源的文本编辑器,功能强大.很适合用于编辑.注释代码.它支持绝大部分主流的编程语言. 本文主要列举了本人在实际使用中遇到的一些技巧. 快捷键 自定义快捷键 首先,需要知道的是: ...

  2. javascript实用技巧、javascript高级技巧

    字号+作者:H5之家 来源:H5之家 2016-10-31 11:00 我要评论( ) 三零网提供网络编程. JavaScript 的技术文章javascript实用技巧.javascript高级技巧 ...

  3. iOS开发实用技巧—Objective-C中的各种遍历(迭代)方式

    iOS开发实用技巧—Objective-C中的各种遍历(迭代)方式 说明: 1)该文简短介绍在iOS开发中遍历字典.数组和集合的几种常见方式. 2)该文对应的代码可以在下面的地址获得:https:// ...

  4. iOS开发实用技巧—在手机浏览器头部弹出app应用下载提示

    iOS开发实用技巧—在手机浏览器头部弹出app应用下载提示 本文介绍其简单使用: 第一步:在本地建立一个访问的服务端.  打开本地终端,在本地新建一个文件夹,在该文件夹中存放测试的html页面.   ...

  5. iOS开发实用技巧—项目新特性页面的处理

    iOS开发实用技巧篇—项目新特性页面的处理 说明:本文主要说明在项目开发中会涉及到的最最简单的新特性界面(实用UIScrollView展示多张图片的轮播)的处理. 代码示例: 新建一个专门的处理新特性 ...

  6. IOS 网络浅析-(十三 SDWebImage 实用技巧)

    IOS 网络浅析-(十三 SDWebImage 实用技巧) 首先让我描述一下为了什么而产生的实用技巧.(在TableView.CollectionView中)当用户所处环境WiFi网速不够快(不能立即 ...

  7. NSString的八条实用技巧

    NSString的八条实用技巧 有一篇文章写了:iOS开发之NSString的几条实用技巧 , 今天这篇,我们讲讲NSString的八条实用技巧.大家可以收藏起来,方便开发随时可以复制粘贴. 0.首字 ...

  8. ###《VIM实用技巧》

    ###<VIM实用技巧> #@author: gr #@date: 2015-11-20 #@email: forgerui@gmail.com <VIM实用技巧>阅读笔记. ...

  9. PowerDesigner实用技巧小结(3)

    PowerDesigner实用技巧小结(3) PowerDesigner 技巧小结 sqlserver数据库databasevbscriptsqldomain 1.PowerDesigner 使用 M ...

随机推荐

  1. vue2.0 路由传参(router-link传过去)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. 如何选安卓android|linux系统开发板,简化学习难度,缩短开发进程

    平台一:iTOP-4412精英版 系统支持:Android 4.0.3系统  / Android 4.4系统 / Linux + Qt系统 / Ubuntu12.04系统 开发板特点:Cortex-A ...

  3. Android(java)学习笔记190:ContentProvider使用之学习ContentProvider(内容提供者)的目的

    1. 使用ContentProvider,把应用程序私有的数据暴露给别的应用程序,让别的应用程序完成对自己私有的数据库数据的增删改查的操作. 2. ContentProvider的应用场景: 获取手机 ...

  4. WPF知识点--渐变色(LinearGradientBrush、GradientStop)

    [LinearGradientBrush-- 使用线性渐变绘制区域](https://msdn.microsoft.com/zh-cn/library/system.windows.media.lin ...

  5. Html 内联元素、外联元素 和 可变元素

    块元素(block element)一般是其他元素的容器元素 块元素一般都从新行开始,它可以容纳内联元素和其他块元素,常见块元素是段落标签'P".“form"这个块元素比较特殊,它 ...

  6. 类unix系统 递归删除指定文件

    递归删除当前目录下所有以 ._开头的文件 find . -name "._*" | xargs rm -f 或者: find . -name "._*" -ex ...

  7. 子例程 subroutine

    #! /usr/bin/perluse strict;use warnings;print "\n---------summation_STDIN_parameter----------\n ...

  8. Android全局异常捕获

    PS:本文摘抄自<Android高级进阶>,仅供学习使用 Java API提供了一个全局异常捕获处理器,Android引用在Java层捕获Crash依赖的就是Thread.Uncaught ...

  9. python中的next()以及iter()函数

    我们首先要知道什么是可迭代的对象(可以用for循环的对象)Iterable: 一类:list,tuple,dict,set,str 二类:generator,包含生成器和带yield的generato ...

  10. 树莓派--bcm2835 library (2) 交叉编译BCM2835

    在上文中,按照guide, 在树莓派目标板上install bcm2835. 因为bcm2835是用户空间应用,所以可以在宿主机上交叉编译,生成binary后在树莓派执行 按照guide: Insta ...