虚拟机硬盘直通挽救黑群晖数据

我这个黑群晖是1个U盘作为引导盘,一块1T硬盘安装DSM和存放数据.无法被群晖助手搜索的原因应该是安装DSM的硬盘分区出现了问题。因为我使用PE使用Diskgenius,还是可以看到这块硬盘的分区情况。如下图

经检查,这个硬盘没有发现坏道,用SMART或者DG自带的坏道检测都没查出来

个人感觉无法进入DSM的原因是硬盘系统区由于频繁快速断电导致某些文件受损,在读写的时候可能只保存了一半就断电导致文件缺失。而非硬件故障。这种情况恢复数据是很有希望的。

在无法启动DSM的情况下,我用DG把硬盘的第一个分区,也是群晖DSM的安装分区给备份后重新格式化掉,原来格式为EXT4,格式化成FAT(但是千万不要删除任何一个分区)准备重新安装DSM

但是,重新安装DSM也失败,报错无法安装此文件,文件可能已经损毁如下

其实这也是早就料到的事情,只要DSM发生损坏,不把硬盘上所有的分区都删掉的话,是无法直接安装DSM的。换句话说,黑群晖的DSM安装的时候必须挂一块空白盘。但是删除分区意味着这块盘上的所有数据都没了。

但是好处是,虽然自带DSM已经损坏,又无法安装新DSM,但是数据区的东西还是在硬盘上的,只不过因为是Linux 软 raid形式的磁盘分区,所以拆下来用Windows系统是看不了的,我们这里可以采用群晖官网的方法,制作一个Ubuntu的启动盘(和制作PE启动盘差不多),然后在linux中读取软raid分区中的数据,参考文章如下

https://www.synology.com/zh-cn/knowledgebase/DSM/tutorial/Storage/How_can_I_recover_data_from_my_DiskStation_using_a_PC

如果你打不开上面的连接,那么通过输入下面命令来读取即可

在Ubuntu的Disk工具或者PE下面的Diskgenius工具中可以看到这块硬盘的分区结构如下

第一分区安装DSM,第二个和最大那个分区就是群晖里设置的一个存储“集群”

通过这种方式,可以像开启了群晖中的终端机一样读取文件,可以在Ubuntu中把数据拷贝出来(硬盘是只读的),放到其他磁盘上去,挽救数据。

可是我现在没有那么大的硬盘把数据拷贝出来,而是想把这块硬盘插到黑群晖里继续读写数据。此时有原理相同的两种方案。

1、在一个黑群晖物理中插入至少两块硬盘,一块新硬盘,一块是我坏掉的那个,先使用USB加那个新硬盘引导并安装DSM,不要插旧硬盘,正常启动后,再插入坏掉的硬盘到SATA口上。正常启动,就可以在新的DSM中看到老硬盘中的“储存空间”和“储存集群”了。

2、在普通操作系统上装VirtualBox虚拟机,然后在虚拟机中使用两块虚拟硬盘安装DSM,正常运行后,再使用VirtualBox的物理硬盘直通方式把坏掉的硬盘转为vmdk文件,挂到虚拟机的下面。和第一种方法一样,能在新的DSM中看到原来的文件。

两种方法下,原先DSM中安装的套件,Docker容器都无法找回,只能找回原来的文件。

使用虚拟机的方法成本较低,因为只需要把坏掉的硬盘插入到随便一台比较好的机器就可以了,具体方法可以看我上一篇博客《Windows10下VirtualBox 硬盘直通设置方式》我是用的Ubuntu宿主机开的VirtualBox,因为linux下面的权限更方便调整

下面是我的VirtualBox上虚拟机的配置截图

第一块是虚拟硬盘,写入了1.04b的引导文件,第二块是用来安装DSM的,第三块是我的物理直通硬盘。

首先只插入第一块和第二块虚拟硬盘,安装全新的DSM。启动正常运行后,再插入第三块物理直通硬盘,就可以在新DSM中看到原来的文件了。由于这块硬盘原来安装了一个DSM,所以系统会提示你

原先建立的存储空间可以直接看到

存储集群也能正常看到,不过由于DSM所在分区已经损毁,会提示你“无法存取系统集群”,但是健康状态仍然为良好

虽然有红色叹号,但是并不影响我们读写原来存储的数据文件


使用File Station可读可写,跟用普通的一样。

至于套件,就相当于都卸载了,如果你之前用了moments,那么照片的实体文件还在,只是不大好找,需要开“终端机”找。同样Docker如果持久化了,那么物理文件还在,如果你原先的DSM版本和现在的DSM版本一致或者相似,那么可以去“套件中心”再下载Docker和Moments的套件,这样原先的套件和里面的内容据都恢复了。另外也可以通过docker命令行的技术把原先docker恢复出来,不过这就是另外一项高深的技术了。

下面是我恢复后的Docker套件里原来的容器,不仅还都在,而且能正常的启动,恢复dou效果非常好,同样Moments,Chat,Note Station都可以重新安装试一下,不要忘记把现在DSM的用户新建几个成为原来DSM一样名称的用户哦

下面是我恢复后的Docker原来的容器,还可以正常的启动和运行,wordpress里面的图片和文章都还在

系统配置,原来的用户、权限设定,网络设定肯定都没了,因为是新DSM了,如果你之前备份出单独文件来的话,那就非常好了。

对了,我坏掉的旧DSM版本为DSM_DS918+_24922,恢复到虚拟机的新DSM版本为DSM_DS918+_25426,小小升级了一下,引导程序都是918+的1.04b