更优雅的(不拆硬盘)拯救死翘翘了的WD MyCloud(Ubuntu 17.10)

以前 WD MyCloud被捣鼓坏掉了,都是参考拯救死翘翘了的 WD MyCloud来处理的,但是这种处理方式需要拆机,非常的费力。最近看到有人发布了可以不拆机的方式修复的方法。研究了一下,非常可行,推荐使用这种方法。

下面的这些操作都是WD论坛上的一些达人通过分析 WD MyCloud的源代码得到的,没有非公开的黑科技,都是一些明确公布的内容。

原理大致讲一下,在 WD MyCloud主板上有一块 Flash闪存,闪存里面是已经写入的 bareboxWD MyCloud启动的时候会把 barebox从闪存载入到内存中,并且启动 barebox,而 barebox启动后,会等待 5S的时间,检测是否有人向自己的网卡发送内容为 WD-ICMP-BEACONWD-ICMP-BEACONWD-ICMP-BEACONWD-ICMP-ICMP报文(本质就是 PING),一旦检测到这个报文,就会连接这个报文的发送方的 69号端口( TFTP服务器端口),获取一个名为 startup.sh的脚本,并且下载完成后,执行这个脚本。因此我们就可以在这个脚本中拉取一个自己编译好的内核,然后运行这个内核,达到修改系统的目的。

对于使用 Ubuntu 16.10以及之后的版本( ubuntu 17.10),可能需要调整一下网卡的命名方式,把网卡命名方式调整为以前 Linux版本的命名方式,否则可能导致无法后面的 dhcp服务无法绑定网卡。具体的操作如下:

列出当前机器上的网卡,为我们的后续操作指定网卡提供信息

注意上面的有线网卡的名称" eth0",后面我们的 DHCP服务需要用到这个参数。

配置 DHCP服务绑定的网卡,我们需要有线网卡

指定 DHCP服务可以分配的 IP地址段

去掉如下部分的注释,我们需要 bootp的功能

并且配置 IP只能在 192.168.0.x这个地址段内分配,其他地址段不能触发主板上的 TFTP客户端从目标主机下载,这个是主板固件的限制。

必须手工配置有线网卡的 IP地址,否则无法激活网卡进行数据的传输

重启 DHCP服务,使得配置生效

安装 tftp服务端,我们的电脑作为服务端为 WD MyCloud提供文件下载服务。

下载编译脚本代码,并构建激活 WD MyCloud主板下载启动脚本的应用

如果上面的代码下载不成功。可以从本站下载一份代码拷贝

如果 WD MyCloud的源代码下载不成功,可从本站下载一份拷贝。点击这里下载
如果 busybox-1.23.2的源代码不能下载,可从本站下载一份代码拷贝。点击这里下载

编译完成后,把需要的文件拷贝到 TFTP服务器目录

准备激活 WD MyCloud的脚本下载功能。

WD MyCloud外壳底部的贴纸中找到 MAC Address信息,类似" 00:99:88:xx:xx:xx"的一串数字,下面的操作我们会用到。

上面的准备动作完成后,直接用网线连接电脑跟 WD MyCloud连接,先不要通电,然后打开一个 Shell,执行

然后不再理会这个 Shell,并给 WD MyCloud通电。

可能我们需要多次断电才能激活 WD MyCloud的下载逻辑,目前测试发现,很多时候,尽管发送了激活报文,但是没有 TFTP的下载逻辑,多次尝试就可以了。

然后不断调用

直到列表中出现这个" 00:99:88:xx:xx:xx"地址的设备获取到了 IP

最后,通过

可以获得一个可以操作的 Shell,用来执行修复。

通过如下链接增加 parted-3.0/parted-2.3mdadm-3.2.6
WD MyCloud编译的busybox-1.23.2中增加parted-3.0/parted-2.3
WD MyCloud编译的busybox-1.23.2中增加mdadm-3.2.6(独立编译uClibc版本)

重新完整创建磁盘分区(参考/etc/nas/config/disk-param.conf)

参考链接


发布者

默默

默默码农

发表评论

电子邮件地址不会被公开。 必填项已用*标注