备份vps硬盘镜像到本地硬盘
准备停止conoha的vps,停止前备份硬盘,方便以后挂载找文件
操作流程
conoha 已用空间只有 7G, 如果不将可用空间写0,在之后压缩时会占用很大空间。
命令写一个0文件占用所有的可用储存空间,等待命令出错结束后
删除文件来对硬盘可用空间写零。
由于硬盘有50G大,如果直接 dd 速度较快,有很大可能被限速,所以需要 pv 命令限制带宽速度。
首先添加 box 的公钥到 conoha,这样就可以 root 登陆 conoha
在 box 上运行下边命令,将 conoha 的硬盘拷贝到 box 的 conoha.img 文件。
[推荐]或者使用如下命令先做 gzip 压缩再传输,可以减少大量的流量。
其中 163.44.x.x 为 conoha ip地址,-p22 中的 22 为 ssh 端口号
结束后输出为
104857600+0 records out
53687091200 bytes (54 GB) copied, 1696.5 s, 31.6 MB/s
6099153+22125 records in
6109798+1 records out
3128216883 bytes (3.1 GB) copied, 1702.21 s, 1.8 MB/s
使用 ls -lh 查看显示经过 写0 和 gzip 处理的镜像只有 3G,节省了大量的带宽和存储空间。
完成后测试挂载
如果使用了压缩传输,需要先解压文件
由于备份的整个硬盘,需要添加 offset 参数来挂载镜像
查看并计算 offset
255 heads, 63 sectors/track, 6527 cylinders, total 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0006811d
Device Boot Start End Blocks Id System
conoha.img1 * 2048 102762495 51380224 83 Linux
conoha.img2 102764542 104855551 1045505 5 Extended
conoha.img5 102764544 104855551 1045504 82 Linux swap / Solaris
根目录在 conoha.img1, Start 为 2048, Units 为 512 所以 offset 为 2048*512=1048576。使用如下命令挂载测试
mount -o loop,offset=1048576 conoha.img conoha
使用 df -h 查看挂载情况,进入 conoha 目录查看挂载的文件。使用 umount conoha 卸载。
压缩镜像文件
注意 如果没有进行 写0的操作, zip 压缩后空间几乎不变,可能生成的文件还是 50G
为了节省空间及方便下载,将 conoha.img 进行 zip 压缩,并添加压缩密码
[推荐]如果已使用gzip压缩,则可以直接以存储方式保存 zip 并添加密码。如果不需要密码,可以直接下载 conoha.img.gz 文件。
对 conoha.img.gz 文件添加zip密码
其中的 password 为 zip压缩包密码
之后通过 http/https 下载 conoha.img.zip 本地硬盘备份。
[注] 这个方法也应该适用于其他 xen 或 kvm 架构的 vps,只需要将 dd if=/dev/vda 修改为对应的硬盘设备即可。
Tags: backup dd ssh备份硬盘 vps 挂载,硬盘镜像 硬盘备份
发表评论