记录由于一次强制断电导致的服务器无法启动的恢复过程
2017-02-22 20:37
936 查看
From: 杂项
屏幕上赫然显示的是“error: unknown filesystem grub rescue”… shit,由于年关将至,机房管理者请假回家了,只能自己撸起袖子干了… 文件系统应该是损坏了,没事,有哥哥在呢;
迅速找到一个U盘启动盘,启动了ubuntu 最小系统,想着修复一下文件系统不就OK了吗? 等等,不能这么贸然,那可是大家的编译服务器,代码都在上面呢; so.. 先将原盘数据备份吧,1个T的数据啊,找了一个大小一样的盘,开始了dd拷贝;
这一下等了足足3个小时;好吧,终于拷贝完了; 开始修复吧,mkfs.ext4 /dev/xxx .. 坐等完事儿。。。
修复完毕后,我转身就走了[就这么自信啊],过来等了许久,依然连不上。。。尼玛。。。又接VGA,发现屏幕上依然显示的是“error: unknown filesystem grub rescue” 。 冷汗直流,这下装B失败了;
为什么会如此? 我决定一探究竟,又将备份盘数据重新拷贝至修改失败的盘; 又是3个小时。。。。
这次先不修复,进入mini system 后,我开始思考原因; 使用fdisk -l 看到的是不对,分区起始和end不一致啊;
不像是文件系统损坏,像是分区表损坏了;
登录看看,发现服务器是做过LVM配置的,也就是文件系统之下并不是分区,而是LUN[Logic unit number],而我进入mini system 是执行lvs已然看不到LUN相关东西了;
冒着在重新拷贝一份数据的险,将没出问题的一台服务器的分区表给dd 一份出来
dd if=/dev/sdx of=/tmp/sdx bs=512 count=24
然后直接写入损坏的服务器的分区中
dd if=/tmp/sdx of=/dev/sdx
然后partprobe
重启。。。
进入mini system 执行lvs,发现分区回来了;
然后在使用U盘启动仅仅将操作系统重组就可以啦;
这件事儿告诉我们一个道理,数据一定要做备份,避免上述问题,其实可以考虑将LUN做备份
vgcfgbackup -f /dev/mapper/xx xx
By: Keven - 点滴积累
事件起源
年前的某天早上,还是一如既往的上班,解决bug,浮现问题; 正当修改调试代码,继续跑结果的时候,发现编译服务器一般公司编译是有专门的服务器的连不上了,好气啊,群中询问原因,说是隔壁的公司将’电闸’给拉下来蛋疼,服务器所在房间的电源是被别人控制的,发现后立马跑到隔壁将电闸拉了上来;; 恩恩,没事,就是一次非正常断电么,过了5分钟,编译服务器依然连不上,又是好气哦,询问说应该起来了啊。他们已经在用呢,尼玛,你们用的和我不是一台服务器啊,小跑至服务器放置房间,插上VGA,发现了坑爹的一幕;屏幕上赫然显示的是“error: unknown filesystem grub rescue”… shit,由于年关将至,机房管理者请假回家了,只能自己撸起袖子干了… 文件系统应该是损坏了,没事,有哥哥在呢;
迅速找到一个U盘启动盘,启动了ubuntu 最小系统,想着修复一下文件系统不就OK了吗? 等等,不能这么贸然,那可是大家的编译服务器,代码都在上面呢; so.. 先将原盘数据备份吧,1个T的数据啊,找了一个大小一样的盘,开始了dd拷贝;
这一下等了足足3个小时;好吧,终于拷贝完了; 开始修复吧,mkfs.ext4 /dev/xxx .. 坐等完事儿。。。
修复完毕后,我转身就走了[就这么自信啊],过来等了许久,依然连不上。。。尼玛。。。又接VGA,发现屏幕上依然显示的是“error: unknown filesystem grub rescue” 。 冷汗直流,这下装B失败了;
为什么会如此? 我决定一探究竟,又将备份盘数据重新拷贝至修改失败的盘; 又是3个小时。。。。
这次先不修复,进入mini system 后,我开始思考原因; 使用fdisk -l 看到的是不对,分区起始和end不一致啊;
不像是文件系统损坏,像是分区表损坏了;
解决过程
这时候我突然想起,旁边也有一台服务器的配置和这台是一模一样的;登录看看,发现服务器是做过LVM配置的,也就是文件系统之下并不是分区,而是LUN[Logic unit number],而我进入mini system 是执行lvs已然看不到LUN相关东西了;
冒着在重新拷贝一份数据的险,将没出问题的一台服务器的分区表给dd 一份出来
dd if=/dev/sdx of=/tmp/sdx bs=512 count=24
然后直接写入损坏的服务器的分区中
dd if=/tmp/sdx of=/dev/sdx
然后partprobe
重启。。。
进入mini system 执行lvs,发现分区回来了;
然后在使用U盘启动仅仅将操作系统重组就可以啦;
这件事儿告诉我们一个道理,数据一定要做备份,避免上述问题,其实可以考虑将LUN做备份
vgcfgbackup -f /dev/mapper/xx xx
By: Keven - 点滴积累
相关文章推荐
- 一次由于arch参数导致oracle11g2 rac 无法启动解决过程
- 在xp系统中,由于安装程序时强制关机,导致系统启动过程中出现loader error3的问题。
- 真实案例:异常断电导致虚拟机无法启动恢复成功
- 一次断电导致华为交换机无法启动的杯具
- 解决服务器断电导致mysql数据库无法启动
- 记一次 superblock 损坏导致服务器无法启动的故障修复
- 记一次 superblock 损坏导致服务器无法启动的故障修复
- 记一次由于Superblock崩溃导致的Linux无法开机修复过程
- 记一次 superblock 损坏导致服务器无法启动的故障修复
- 记一次由于断电造成虚拟机小红帽系统无法启动
- Linux:记一次异常断电导致的系统无法正常启动(文件系统故障)
- maven 记录一次由于父级依赖无法自动下载问题导致maven Dependences库没有的问题
- Mac Lion下安装Win7后,在Win7上分区导致无法再次启动Lion的恢复方法
- 由于 ip 改变,导致 oracle dbconsole 无法启动
- 由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例。该连接将关闭
- 由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例。该连接将关闭。
- 如何解决由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例。该连接将关闭。
- SQLSERVER 占了500多M内存,原来的程序无法一次查询出50多W数据了,记录下这个问题的解决过程。