原创文章,转载请注册出处,本文地址:http://velep.com/archives/143
前言:今天的确有点悲催,自装好后从未出现过大问题的虚拟机ubuntu9.10今天出现了致命问题:mount of root filesysytem failed,现象如下:
Mount of root filesystem failed.
A maintenance shell will now be started.
CONTROL-D will terminate this shell and reboot the system.
Give root password for maintenance
(or type CONTROL-D to continue):
起因:今天把代码上传到SVN服务器后,出现点问题,于是重新生成eclipse工程,再从SVN服务器上把代码检出来,这时在虚拟机ubuntu9.10上执行如rm等命令时会出现:sudo: unknow uid: 1000提示,估计是ubuntu shell脚本识别不了用户,因此重启了虚拟机ubuntu9.10。悲剧就从这里开始,出现了上述错误:挂载不了根文件系统。尝试了N多种方法,问题依旧。网上搜索到的方法讲述的都是使用fsck命令对分区进行磁盘修复,但不管如何,在虚拟机ubuntu9.10上都是无效的。
网上解决方法:
解决方法: 使用系统修复,
fsck /dev/sdxy (例如我的:fsck /dev/sda1)
或是简单点:fsck /
还尝试了:
fsck -f
fsck -f /dev/sda1
等方式,都无济于事,希望对看到这文章的人有用。
此外,对于ubuntu9.10而言,默认的文件系统类型是ext4,对于我的虚拟机ubuntu9.10而言,启动分区是/dev/sda1上。fsck命令会自动识别文件系统类型。
后记:幸好虚拟机和里面的数据都有备份,否则真的是悲催了。所以,在这里提醒用虚拟机linux进行嵌入式开发的朋友,1. 要时常对虚拟机和里面的数据进行备份,以防万一;2. 用快照管理虚拟机,不要轻易重启虚拟机(或者重启前对虚拟机进行备份)。当然,我们的虚拟机linux也不是说的那么脆弱,好好用一般都不会出现重大问题。