今天一早,开虚拟机做个测试,一开始都很正常;中间上了一趟洗手间......,之后就是悲剧的开始。
因为今天要做个单分区的RAID0,从洗手间回来这后,我就开始在机器上开始执行(我本机用的是RHEL5,测试环境也是RHEL5,并且分区表的信息差不多)。几步下来,RAID建好了,但系统死活要重启才能生效,使用partprobe刷了多次都不行。算了,那就重启吧。
当我输入init 6 的时候,我的物理机居然重启了;我才发现原来之前建RAID我是在本机上操作的,理论上是要在虚拟机上操作,但因为是使用SSH连接过去,并且开了好几个终端,误在物理机上操作了,导致以下问题;不禁冷吸一口气,我在建RAID的时候 在物理机上执行了以下操作:
1、我有6个分区,/dev/sda6空间有151G,其他分区略下,并且这个分区是我在数据的地方。数据大小约为114G,这东西要丢了,我都不知道从哪儿找去.......
2、使用fdisk /dev/sda ,通过p查看/dev/sda这么大,我就把/dev/sda6给删了,然后重新建立了一个/dev/sda6大小为30G,并将分区格式改为raid
3、保存退出后,使用partprobe刷新分区表
4、使用mdadm -C /dev/md0 -l 0 -l 1 /dev/sda6 -f 提示一长串,一下子想不起来了,不过提示跟分区有关,于是我继续刷新了两次分区表,无果。
5、重启计算机
重启计算时,我的物理机也重启了,我第一反应是我把自己的物理机的分区给删了,并且改了文件系统格式。计算机启动后,我发现我之前的/dev/sda6里的所有资料都不见了。
具体现象:
1、到之前的挂载目录,发现该目录里仍然有之前的文件夹,但进不去,也打不开。
2、使用df -h 看到/dev/sda6数据大小,没有变。
解救方法:
因为我没有把/dev/md0给格式化,所以在分区表里,还能看到/dev/sda6的数据占用大小,所以,我觉得重建分区表,还是可以将分区表恢复回来的。
解救步骤:
1、fdisk /dev/sda 删除/dev/sda6的分区,并且新建一个分区(还是/dev/sda6),将其用完剩下的所有的扇区(这个要跟出问题之前是一样的)
2、文件系统默认为ext3
3、保存完毕后,使用partprobe 刷新分区表
4、重新挂载该分区。进入目录,仍然无法打开目录。
我觉得自己的思路是正确的,但是为何不能打开/dev/sda6里的目录呢。
于是突然试着想重新启动一次PC试试,启动之后,/dev/sda6里的数据又恢复了。
这种事以后还是尽量少出,太吓人了。要是公司的服务器,真的要淡定。
本文出自 “潜入技术的海洋” 博客,请务必保留此出处http://myhat.blog.51cto.com/391263/541207