本站 Onion 的地址变更为 gqnl3d7yfcge6ayhubuzvfgzx3pe76mvhqacrmm6as2howkfctodsxad.onion ,至于为什么改变还要从昨天说起。

昨天早晨起来和往常一样打开了树莓派的屏幕,树莓派链接了服务器的一个 Windows 的虚拟机用于测试环境用,然后发现 RDP 断开了,重新链接过了许久提示链接超时,这时心中不详的预感油然而生。

于是打开了日常用的笔记本电脑,用 virt-manager 链接进入服务器,发现 Windows 的虚拟机状态为“paused”,顿时有些好奇,于是 console 链接进入另外一台 Linux 虚拟机,刚登录成功之后瞬间这个虚拟机也被 paused 了。

于是尝试 resume 这个虚拟机,失败。强制关机,成功。重新开启,失败,原因为 “Permission Denied”。这时彻底方了,SSH 到服务器上查看日志,发现 SELinux 报错误,想了想我最近也没动服务器啊,难不成被黑了?不然不可能有人会动 SELinux 的配置。继续往下看,Hmmmm,No space left on device。好吧。

于是 df -H 了一下,发现跑这组虚拟机的磁盘空间满了,就剩 40 多 KB,博客虚拟机也在这一组上。

看了下大概是哪个 img 占用了所有的,发现是 Windows 虚拟机把磁盘空间吃光了,Windows 虚拟机里包括 3 个虚拟磁盘,虚拟磁盘 0:镜像容量 1 TB 剩 60 GB,虚拟磁盘 1: 镜像容量 1 TB,剩 700 多 GB,虚拟磁盘 2:分配最大占用容量 768 GB。跑的测试是在这个虚拟磁盘上的,然后跑的东西只能看到分配的容量,并不知道宿主机上还剩多少空间,就一直 extend 直到吃到满,然后炸了。当然当时预想的解决的方案是开机,然后把虚拟磁盘 2 的内容都转移到虚拟磁盘 1 上,然后删除虚拟磁盘 2。由于涉及到之前的历史遗留问题,也没想到当时分配的空间实际已经超过了 /data 总分区的空间。

要开机就得腾点儿空间出来,看了看就博客的网关机我敢动,其他的都不敢碰。网关机分配了 4 GB 的虚拟磁盘空间,实际使用了不到 1 GB,理论上 shrink 是从后面砍掉,所以当时就做了一个比较冒险的举动:直接 shrink raw image 的 size 到 3 GB,腾出 1 GB 的空间。

(当时没有意识到)网关机的分区表如下:
/boot 128 MB EFI 启动盘
/ 3.* GB 系统盘
/data 100 MB Tor Hidden Services 私钥存储

(有经验的读者应该已经在笑了)于是灾难就发生了。。。

Windows 机器的事情弄完之后删除了虚拟磁盘 2,顺利腾出了 700 多 GB 的空间,然后重新给网关机磁盘加了 1 GB 之后启动了博客的网关机,启动失败。打开了 console,发现文件系统损坏,然后 xfs_repair 了一下 /dev/vda2 和 /dev/vda3。当修复到 /dev/vda3 的时候死活找不到 superblocks,拿 hexedit 一看全都是空的,顿时心凉了,因为 Hidden Services 的私钥在 /dev/vda3 里,之后想起来之前的大力出奇迹强制 shrink 了,悔不当初。。。。。万万没想到我当时怎么分的区,把 key 放在磁盘最后面了,然后 shrink 掉了。

然后你懂的,因为已经覆盖了所以不可能再恢复出来了,所以就是这个样子,,,

Leave a Reply

Your email address will not be published.

*

code