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. 字符串(String)几个常用方法的详解

    String:(字符串) indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置. stringObject.indexOf(searchvalue,fromindex) searc ...

  2. centos7.2密码在单用户下面的修改

    centos7.2在但用户模式下面的修改 1.开机启动 2.grub模式按E健 3.Linux16行的"ro"修改为 "rw init=/sysroot/bin/sh&q ...

  3. Vue beaforeCreate时获取data中的数据

    异步获取即:通过    $this.$nextTick或者settimeout,这连dom都可以拿出来 beforeCreate() { this.$nextTick(function() { con ...

  4. AttributeError: 'tuple' object has no attribute 'extend'

    出错demo In [5]: a.extend([4,5]) --------------------------------------------------------------------- ...

  5. 前端工程化与webpack

    (1) 前端工程化   近几年来,前端领域飞速发展,前端的工作早已不再是切几张图,写几个页面那么简单,项目比较大时,很可能会多人协同开发,模块化,组件化,CSS预编译等技术也被广泛的使用.前端自动化( ...

  6. java线程池 多线程 搜索包含关键字的文件路径

    package org.jimmy.searchfile20180807.main; public class ThreadMain implements Runnable{ private int ...

  7. Java代码的编译和执行

    Java代码编译和执行的整个过程包含了以下三个重要的机制: (1)Java源码编译机制 (2)类加载机制 (3)类执行机制 1.Java代码编译是由Java源码编译器来完成,流程图: Java 源码编 ...

  8. JavaScript exec()方法

    exec() 方法用于检索字符串中的正则表达式的匹配.返回一个数组,其中存放匹配的结果.如果未找到匹配,则返回值为 null. var str = "我今年25岁明年26岁后年27岁千年24 ...

  9. rbac组件之权限初始化(五)

    当用户登陆后,根据用户的角色要为用户生成对应的权限菜单,此时需要将登陆的用户信息获取且获取角色信息,从数据库中获取菜单以及权限信息,并且存入session中. 1.权限流程 第一次请求的页面是登陆页面 ...

  10. java中"=="和equals方法究竟有什么区别?

    为什么会说到这个问题呢,是因为在java中遇到这个问题太常见了,无论是在写代码时还是在面试时.下面就一起探讨一下它们之间的联系与区别吧. 首先对于这样的问题,一般是先单独把一个东西说清楚,然后再说另一 ...