出現(xiàn)IO錯(cuò)誤。重啟虛擬機(jī)表示磁盤錯(cuò)誤,用命令“fsck / -y”修復(fù)磁盤錯(cuò)誤。這種情況出現(xiàn)過幾次,有時(shí)修復(fù)磁盤之后可以繼續(xù)啟動(dòng),后來干脆就無法啟動(dòng)了。
重新安裝虛擬機(jī)并checkout代碼,也很容易出現(xiàn)這個(gè)問題。宿主系統(tǒng)運(yùn)行任務(wù)比較多,系統(tǒng)比較慢。有一次svn checkout出錯(cuò),在宿主系統(tǒng)(Ubuntu)用iotop看進(jìn)程IO狀況,發(fā)現(xiàn)updatedb.mlocate寫入速度很大,達(dá)到10M/s以上。
這個(gè)頁(yè)面解析了原因:High I/O causing filesystem corruption
當(dāng)宿主系統(tǒng)和虛擬機(jī)的IO都比較繁忙時(shí),虛擬機(jī)的IO請(qǐng)求得不到及時(shí)的響應(yīng)。虛擬機(jī)Linux不知道自己運(yùn)行在虛擬機(jī)里面,會(huì)認(rèn)為是磁盤IO錯(cuò)誤,為了保護(hù)磁盤數(shù)據(jù)會(huì)remount分區(qū)為只讀。
解決方法見上面的鏈接,不過都比較高級(jí)(使用直接IO、修改內(nèi)核參數(shù)、使用LVM分區(qū)等)。
簡(jiǎn)單解決辦法:
1) 不要在宿主系統(tǒng)和虛擬機(jī)同時(shí)運(yùn)行高IO任務(wù)(別以為你的i7電腦很厲害);
2) 備份虛擬機(jī)(復(fù)制vmdk文件或使用VirtualBox快照),就算出錯(cuò)了也容易恢復(fù)。