挂载 Synology Active Backup for Business 的备份镜像文件
背景说明
群晖存储自带有个 Active Backup for Business 看着可以选择单独的硬盘分区备份,以为和 Symantec Ghost 一样,恢复的时候可以选择某个分区直接还原。
然而,湾湾的开发人员的脑回路和正常人不太一样,经过尝试和咨询客服,想要使用 Active Backup for Business 恢复向导 对镜像进行恢复,有以下限制和需要满足的条件
- 不能单独选择某个分区恢复,只能全盘恢复,即使你备份的时候只选择了其中某个分区。
- 目标硬盘是全新的硬盘,不能经过初始化。
- 目标硬盘整个大小比原备份硬盘要大。
WTF...
想尝试使用群晖自带的 Active Backup for Business Portal 按文件恢复。文件是能恢复,但是,但是...文件的创建、修改、访问时间全部变成了恢复时的时间,而不是原来的时间。看着满盘同一个时间的文件,mdzz。
官方工具不靠谱或者说不能按照我想要的方式恢复,但能否挂载镜像,然后镜像恢复呢?问下客服,客服回答的很直接:不能
。
....
正题
使用 File Station
打开名为ActiveBackupforBusiness
的共享文件夹。展开到如下类型的文件路径:
/ActiveBackupforBusiness/ActiveBackupData/PC-NULL-MBP-Data/ActiveBackup_2019-04-19_030002
- PC-NULL-MBP-Data 是备份任务,包含备份设备类型(PC)、电脑主机名(NULL_MBP)、任务名(Data)
- ActiveBackup_2019-04-19_030002 某个备份,包含有备份时间点。
在该文件夹上点击右键
-属性
,在所在位置
中可以看到当前目录的位置:
/volume2/ActiveBackupforBusiness/ActiveBackupData/PC-NULL-MBP-Data/ActiveBackup_2019-04-19_030002
通过ssh使用root账号进入到存储,进入到上面的路径。
# cd /volume2/ActiveBackupforBusiness/ActiveBackupData/PC-NULL-MBP-Data/ActiveBackup_2019-04-19_030002
# ls -la
total 118182592
dr-xr-xr-x 1 ActiveBackup ActiveBackup 76 Apr 19 07:39 .
dr-xr-xr-x 1 ActiveBackup ActiveBackup 1480 May 11 00:00 ..
-rw-r--r-- 1 ActiveBackup ActiveBackup 500277792768 Apr 19 07:39 0.img
-r--r--r-- 1 root root 129024 Apr 19 07:39 backup_db.sqlite
-r--r--r-- 1 root root 13172 Apr 19 07:35 device_spec
其中的 0.img
是备份镜像。在 device_spec
文件中保存有硬盘分区信息。用 cat 显示文件内容。我的是D盘,所以我找到相应内容如下
{
"device_spec" : {
"cpu_number" : 4,
"disk_layout" : {
"0" : [
....,
{
"alias_name" : "D:\\",
"attribute" : 2,
"available_space" : "0",
"device_name" : "\\Device\\HarddiskVolume5",
"device_type" : 7,
"disk_extents" : [
{
"disk_number" : 0,
"length" : "128859504640",
"offset" : "370721947648",
"partition_number" : 4
}
],
"file_system" : "NTFS",
"is_primary_partition" : true,
"mount_path" : "D:\\",
"volume_label" : "Data",
"volume_name" : "\\\\?\\Volume{f1d71d4f-ab23-4532-b1b6-5fdda451aeff}\\"
}
]
}
}
....
}
这里面只有 "offset" : "370721947648"
字段是我们需要的,表示分区的开始位置,记住这个值。
执行以下命令挂载
mkdir /mnt/tmp
mount -o loop,offset=370721947648 -o ro 0.img /mnt/tmp
如果没错误信息返回,则表示挂载成功了。其中的370721947648是从刚才的device_spec
文件中找到的。-o ro
表示只读挂载。
使用
ls /mnt/tmp
可以看到分区里面的文件了。这时候,你可以用其他方式复制里面的文件出来,scp 什么的。
注意事项:
- 可以挂载到其他共享目录,这样可以直接在
File Station
中直接访问,方便通过文件共享方式复制。 - 不要尝试修改备份镜像,可能会导致镜像损坏。