搬瓦工快照本地读取(抢救无法启动/联网的服务器中数据)

事情的起因是在生产环境下第一次装haproxy,结果写了个错误的.service,还设置成了自启动,结果一重启服务器就连不了网了。万幸的是搬瓦工的快照是可以下载的,可以取回网站数据文件再重装系统后导入。

首先Create new snapshot的步骤不赘述了,如果要下载自动备份产生的快照就先点Import to my Snapshots,最后在Snapshots选项卡里点Download下载(几乎是全速)。重点讲如何取回里面的文件。

首先下载的压缩包解压缩后可以看到一个.disk文件,这个是raw格式磁盘文件(好坑,发工单问了客服才知道)。这种文件是可以直接挂载在本地文件系统中的,不过鉴于服务器基于linux,下面的操作在ubuntu中进行,不然windows下可以挂载但是无法读取。进入放着.disk文件的文件夹,输入(以root权限):

fdisk -lu ./XXX.disk 

会得到类似这样的信息:

Disk ./XXX.disk:20 GiB,21474836480 字节,41943040 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000929da

设备               启动   起点     末尾     扇区  大小 Id 类型
./XXX.disk1 *      2048   821247   819200  400M 83 Linux
./XXX.disk2      821248 41940607 41119360 19.6G 83 Linux

我们的数据在第二个分区,据显示数据算出offset=821248×512=420478976。offset即偏移量,开始读取的位置,不正确会无法挂载。

然后

mkdir /mnt/vd

mount -o loop,offset=420478976 ./XXX.disk /mnt/vd/

然后/mnt/vd/里面就是服务器快照中的原始数据了,可以直接读取。

题外话1:宝塔面板默认mysql数据文件放在/www/server/data/网站名/,直接用快照里的文件覆盖掉重装后新创建出来的同名文件即可,注意先停止mysql服务,覆盖后把文件(夹)权限设为700,所有者为mysql,再开启服务。

题外话2:再也不在生产环境下乱搞了,以后先在本地虚拟机试好再重复操作……

赞(0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址