今天手贱把服务器硬盘格式化了,整个118论坛直接嗝屁。我当场傻眼,赶紧把修复过程记下来,顺便给大伙看看要用什么家伙事儿。
抱着硬盘跑电脑城
我先把那块闯祸的硬盘拆下来揣怀里,直奔楼下电脑维修店。老板拿个绿联硬盘盒给我怼上,插他电脑一看——好家伙,整个盘显示“未分配空间”,原文件系统直接消失。老板直摇头说悬得很,让我赶紧回家自己扫盘试试,数据恢复软件都认不出分区基本没戏。
回家摸出祖传的破U盘,塞进去五个工具:
- DiskGenius(扫分区)
- WinHex(看文件底层)
- R-Studio(救数据库)
- 7-Zip(解压备份包)
- Notepad++(改配置文件)
先开DiskGenius全盘扫描,进度条像蜗牛爬。等了俩小时突然叮一声,居然认出EXT4分区!我激动得差点把泡面扣键盘上。
跟数据库玩命
分区能看见但文件全灰,点啥都提示损坏。赶紧打开R-Studio开深度扫描,这玩意直接显示“预计时间:7小时”。我泡了三包咖啡守通宵,天亮时候终于看到mysql文件夹冒出来了。
导出的sql文件全是乱码,拿WinHex一查发现文件头被削了。掏出十六进制编辑器手动补上:
- 删掉前200字节乱码
- 补上标准的SQL文件头
折腾到下午三点,数据库终于能导入了!结果论坛附件文件夹又报错,30G用户上传图片全变碎片。
血的教训这时候才想起三个月前的备份包。翻出移动硬盘找到forum_backup.7z,解压时候弹窗提示“文件头损坏”——艹!当时偷懒没做压缩包校验。急得拿WinHex对比备份文件二进制码,发现中间有整段00覆盖。靠R-Studio的RAW恢复功能硬捞,500张用户头像只剩300张能看,附件基本全灭。
服务器诈尸
拿记事本++改nginx配置时又踩坑:
- 手滑把server_name写成*
- php-fpm端口填错
- 忘记开opcache加速
重启服务器五次才跑起来。首页能打开了,但用户登录就跳500错误。查日志发现数据库权限没还原,原来备份的.sql文件里没带GRANT权限语句!又手动给mysql用户赋权,搞到凌晨四点论坛终于能发帖。
现在看着恢复的论坛直后怕,重要文件真得存三份。下次再手贱剁手!顺便提醒大伙:
- 扫盘用DiskGenius比什么外国货都好使
- 改十六进制记得备份原文件
- 改配置时泡浓茶别喝咖啡——手抖代价太大
补一刀:那个没抢救回来的附件包正好是站长老婆的婚纱照合集,现在全论坛都在问为啥删除公告栏里的婚礼通知。我准备装死到过年...