前言:
對於VMware虛擬機配置文件(.vmx)損壞
大家發生故障的原因可能跟我不一樣,可是解決方法應該是一樣的.
可是本方法僅適用.vmx文件損壞而其它文件完善無損的情況。
近期一直在研究hadoop,今天剛搭建完HBase。用的時候就感覺速度非常慢,結果在運行HBase shell的時候,卡住不動了。然后就報錯了錯誤信息...忘記了內容了...然后虛擬機就崩潰了。然后這個虛擬機再也打不開了,提示我的.vmx文件已損壞。
VMware虛擬機中使用.vmx文件保存虛擬機的全部軟硬件配置。假設意外損壞的話將會出現不能正常打開虛擬機的故障.
我的情況:
vmware版本號是10,
虛擬機是linux系統:CentOS release 6.4
.vmx文件名稱為:CentOS.vmx
查看日志文件:
打開虛擬機文件夾下的vmware.log文件
我在log日志最后部分。發現了以下這兩句話。
....................................................................................................................................
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"
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"
gui.lastPoweredViewMode = "fullscreen"
ide0:0.present = "FALSE"
usb:0.present = "TRUE"
usb:0.deviceType = "hid"
usb:0.port = "0"
usb:0.parent = "-1"
...........................................................................
