关于FreeBSD异常断电后所有用户无法正常登录的处理
公司有一台虚拟服务器托管在某机房,一直正常运行好几个月.有一天突然收到监控报警,提示说系统宕机.等了好一会儿没有自动恢复.打电话去机房询问,告之线路是正常的.因为太远了,所以就托机房帮忙重启服务器.约十分钟之后,系统恢复了.但只是正常了约五分钟,又挂了.感觉到问题有点儿大.决定第二天去机房看看.
先说说这台虚拟服务器.这台服务器安装的是ESXi5.里边装了一个pfsense,两个FreeBSD9,一个Windows XP.设置了随ESXi自动启动和关机.
来到机房,用笔记本上的ESXi客户端连上服务器,查看原来是服务器上边的物理磁盘空间不够导致的.可能是当初在安装虚拟机内的操作系统的时候,对于空间的划分没有规划好导致的.终于在某一天空间耗光了,导致里边的虚拟系统宕机.
解决方法是,删除服务器上边的一些无关紧要的文件,如安装系统用的一些ISO镜像,用以释放空间.然后再删除一些快照.这么一折腾终于有了100多G的空间了.然后将挂掉的FreeBSD系统重新开机.不过应用系统却一直不能访问.于是SSH登录,想看看究竟,结果却发现怎么也没办法Login.晕~
好吧…直接在ESXi客户端里边用控制台登录吧.更晕,所有的用户和密码都试遍了,都提示无法登录.以前没碰到过这样的呢.心里边有点犯嘀咕:该不会是被人黑了吧?俺的安全措施还是很严密的啊…
重启到单用户模式,将root的密码进行重置.然后再正常启动,在控制台下终于可以正常进行系统了.然后马上对其它的用户进行更改密码,发现全部都失败了.提示说用户不存在云云…Kao~用户明明在里边嘛…
后来联想到FreeBSD之前因为断电重启过,会不会破坏了系统文件比如用户密码文件之类的?于是在网上搜了一下.找到了一个命令:
pwd_mkdb /etc/master.passwd
执行完了之后,果然正常了.
在16度的机房里边,我擦了擦头上的汗…