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

我这个黑群晖是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

系统内部服务 [pgsql, synoindexd] 无法启动

本人小白一枚!前几天家里的216Play消息里出现“系统事件——系统内部服务 [pgsql, synoindexd] 无法启动。请联络 Synology 支持小组以获得帮助”,同时手机端套件DS photo、DS vedio等都无法远程访问了!并且,在升级photo station、download station等套件时无法升级还会提示“此套件需要您启动 [pgsql]”。
我已将上述问题通过技术支持中心反馈给了群晖,得到了邮件回复,是通过putty登录admin账户,再sudo -i获取root权限,然后逐行输入
rm /var/services/pgsql
servicetool –set-pgsql
synoservicecfg –resume-by-reason pgsql no-volume
另实例:

ssh进去把 /volume1/@database/pgsql 重命名下,然后新建一个 pgsql 目录,用 chown 把所属用户组改成和原来相同,然后重启试试。

黑群晖安装和使用FFMPEG

黑群晖有很多地方没有办法使用,因为没有洗白,使用moments时,上传的视频没有缩略图,还有使用video station时没有办法转码,我想是不是可以通过其他的手段来解决这些呢?后来我在网上看到,可以使用ffmpeg来解决转码的问题,因为官方本来就自带ffmpeg,在官方提供的套件上找不到ffmpeg这个套件,只有通过第三方的套件中心来解决。

当然我也不知道通过自己安装ffmpeg是否能够解决转码或缩略图的问题,不过今天我打算试上一试,那么我先来安装ffmpeg这个套件,我先在自己的黑群晖添加第三方套件Synocommunity,这个比较简单就是添加一个网址。

Synocommunity

https://packages.synocommunity.com/

黑群晖安装和使用FFMPEG

选择任何发行者

黑群晖安装和使用FFMPEG

增加Synocommunity

设置完成之后选择左下角的社群后,在套件中心里找到ffmpeg安装即可,这里同时可以找到python3并且安装,作为中级电脑低手的我对于其作用并不明确,但是因为代码是拿python3写的,所以我装了。

让ffmpeg正常工作

由于需要用到ssh,在浏览器界面找到SSH并打开,windows用户下载putty,linux和osx可以直接用命令行连接服务器,我用的是osx所以无法在这里演示putty的使用方法,所以请自行百度一下;osx的用户打开终端之后输入ssh root@192.168.1.x(NAS的局域网ip地址)之后输入管理员密码即可。

登陆NAS之后,输入ffmpeg -version即可查看当前ffmpeg的版本号,如果和你在套件中心安装的ffmpeg版本号不同那么执行如下操作:

mv /usr/bin/ffmpeg /usr/bin/ffmpeg_bak

cp -r /usr/local/ffmpeg/bin/ffmpeg /usr/bin/ffmpeg

安装python3:

mv /usr/bin/python /usr/bin/python_bak

cp -r /usr/local/python3/bin/python3  /usr/bin/python

python –version

如果显示python 版本为3.5即表明完成

再次执行ffmpeg -version查看ffmpeg的版本号

黑群晖安装和使用FFMPEG

显示版本号为4.1,与套件中心显示的4.1-11一致

将脚本复制到NAS

脚本下载链接

建议创建一个新的共享文件夹作为测试,里面拷贝一些测试的视频。

通过网页登陆DSM将代码上传的共享文件夹根目录后,执行:

python /volume1/xxx/photo_thumb.py(这里的路径就是上传代码的文件路径)

黑群晖安装和使用FFMPEG

中文字似乎会乱码但是生成的缩略图正常

默认会生成mp4、avi、wmv、mkv、flv文件的缩略图,其他格式的如有需要,在代码types的中括号里添加文件格式并用英文逗号隔开,外面添加英文单引号即可。

ffmpeg默认不能生成rmvb和rm的缩略图,由于我这里测试发现VideoStation自己会生成rmvb的缩略图,所以并不提供解决办法。

最后在任务计划里添加把之前python运行的命令添加进去设置每天运行就可以了,如果添加了新的共享文件夹需要增加对应的命令,脚本会对文件夹进行遍历,所以有子文件夹时只需要在根目录运行脚本就可以。

黑群晖通过DDSM半洗白后,正常使用video staton转码功能

本人的群晖是在淘宝网购买的蜗牛星际主机来搭建的,使用群晖的DS918+ DSM 6.2-23739软件。目前使用了两个多月很正常的,但是我安装群晖的moments和video station后,发现有一些问题,就是无法正常转码,moments上传的小视频无法获得缩略图,后来通过第三方套件来安装ffmpeg来解决无法获得缩略图的问题,不过video station转码功能还是无法使用,经过百度搜索发现通过DDSM半洗白能够解决这个问题,经过我自己的操作以后,目前video station的转码功能可以正常使用了。

黑群晖通过DDSM半洗白的教程:

1、安装:先通过套件中心后安装好docker

黑群晖通过DDSM半洗白后,正常使用video staton转码功能

2、首次使用docker前需要在控制面板—网络—网络界面—管理—启用open vswitch

黑群晖通过DDSM半洗白后,正常使用video staton转码功能

3、完成设置之后进入docker套件界面选择DSM,创建DDSM容器,然后一直下一步

黑群晖通过DDSM半洗白后,正常使用video staton转码功能
4、至选择DDSM安装文件界面,点击“立即下载”,下载DDSM安装文件至本地,文件版本应该和群晖自身版本有关,下载文件名为DSM_DDSM_23739.pat

黑群晖通过DDSM半洗白后,正常使用video staton转码功能
5、然后浏览手动上传刚刚下载的DSM_DDSM_23739.pat,继续下一步直至DDSM容器创建成功后,在docker界面点击DSM开机按钮

黑群晖通过DDSM半洗白后,正常使用video staton转码功能

6、之后通过DDSM的IP地址(如果选取的是自动分配就去路由器里查看DDSM分配的IP地址)进入DDSM,查看“产品序列号”并记

黑群晖通过DDSM半洗白后,正常使用video staton转码功能

将黑群群引导盘内grub.cfg文件里的SN=XXXXXX替换为DDSM的产品序列号,之后重启黑群晖,至此替换DDSM序列号洗白成功。

也可以参阅本人的《群晖安装成功后,通过SSH修改黑群晖DS3617 DS918+的SN/MAC》文章通过ssh方法修改SN。

7、进入VIDEO STATION

黑群晖通过DDSM半洗白后,正常使用video staton转码功能

进入video station后,通过设置 公开共享,允许转码来启用转码功能。