前言:
对于VMware虚拟机配置文件(.vmx)损坏
大家发生故障的原因可能跟我不一样,可是解决方法应该是一样的.
可是本方法仅适用.vmx文件损坏而其它文件完善无损的情况。
问题发生:
近期一直在研究hadoop,今天刚搭建完HBase。用的时候就感觉速度非常慢,结果在运行HBase shell的时候,卡住不动了。然后就报错了错误信息...忘记了内容了...然后虚拟机就崩溃了。然后这个虚拟机再也打不开了,提示我的.vmx文件已损坏。
VMware虚拟机中使用.vmx文件保存虚拟机的全部软硬件配置。假设意外损坏的话将会出现不能正常打开虚拟机的故障.
我的情况:
vmware版本号是10,
虚拟机是linux系统:CentOS release 6.4
.vmx文件名称为:CentOS.vmx
查看日志文件:
....................................................................................................................................
2014-11-01T21:51:09.100+08:00| vmx| W110: Minidump failed: There is not enough space on the disk
2014-11-01T21:51:09.137+08:00| vmx| I120: CoreDump error: Write, page 0x113 (0xffffffff) No space left on device
....................................................................................................................................
显而易见,是磁盘空间不足,导致写数据的时候出错了。终于导致配置CentOS.vmx出错。
1.将.vmx文件删除(别删错了!!!),然后新建一个相同名字的.vmx文件,我的是CentOS.vmx;
2.找到“ DICT --- CONFIGURATION”(前面是日期和时间的信息);
3.找到“ DICT --- USER DEFAULTS”(前面是日期和时间的信息);
4.将这两行的之间的数据复制出来(上面提到的两行不须要复制);
5.黏贴到.vmx文件(我的是CentOS.vmx)中。
6.删除CentOS.vmx文件里全部行的前边的日期时间标志,仅保留后面的信息,比如:
2014-11-01T20:50:32.963+08:00| vmx| I120: DICT config.version = "8"
将“2014-11-01T20:50:32.963+08:00| vmx| I120: DICT”部分删除,仅仅保留config.version = "8"。
ps:假设你自己不知道简单的删除列的方法。我推荐使用NotePad++,按出Alt,就能够选择列,然后将表示时间的标志的列所有删除。
然后全选,Tab+Shift能够将所有内容左移。最后让前面的空格所有去除。达到日志信息左对齐的效果。
7.照上边格式所有改动,然后给所有行的等号后的字符加上英文双引號(注意不要使用中文输入法的双引號)
比如:config.version = 8 改为config.version = "8"
假设你跟我一样,已经有英文双引號,就不须要加入了;
8.保存.vmx文件(CentOS.vmx)。
9.又一次打开.vmx文件(CentOS.vmx);
10.OK,启动虚拟机。
最后附上,改动过的CentOS.vmx文件的部分内容(首+尾,中间省略了):
...........................................................................
config.version = "8"
virtualHW.version = "8"
scsi0.present = "TRUE"
scsi0.virtualDev = "lsilogic"
memsize = "256"
scsi0:0.present = "TRUE"
scsi0:0.fileName = "CentOS-000010.vmdk"
ide1:0.present = "TRUE"
ide1:0.fileName = "auto detect"
ide1:0.deviceType = "cdrom-raw"
floppy0.startConnected = "FALSE"
.
.
.
checkpoint.vmState.readOnly = "FALSE"
gui.lastPoweredViewMode = "fullscreen"
ide0:0.present = "FALSE"
usb:0.present = "TRUE"
usb:0.deviceType = "hid"
usb:0.port = "0"
usb:0.parent = "-1"
...........................................................................