• 那是云首页
  • 快捷导航
  • 更多
    设为首页收藏本站
  • |
花生壳

将WD Mycloud Gen2改造成私人在线云播服务器

My Cloud NAS  / 教程分享  / 倒序浏览   © 著作权归作者本人所有

#楼主# 2017-3-9 11:53

跳转到指定楼层
本帖最后由 sirenest 于 2017-3-13 09:16 编辑

这边不能用markdown排版,代码显示不好,我修改了下发在简书了→ http://www.jianshu.com/p/26b66871e841

============================================

前段时间入手了西数的Mycloud伪NAS,本来想用原生系统+内网穿透就算了,折腾一个多星期,拆机救砖了几次都没搞定,最后还是只能刷成Debian8来用,现在把折腾的过程和一些坑分享下。
西数论坛上的俄罗斯大神fox_exe对Gen2提供了三种折腾方式:
  • 原生系统破解:教程 文件下载
    用define.js把控制面板的第三方app安装限制解除(这一步也可以直接通过浏览器插件做),安装WDMyCloud_WDCrack_1.0.bin,然后就可以随意安装大神们打包好的各种第三方app了。注意其中有一个叫WDMyCloud_Debian_8.0-1.bin的app装了以后可以用chroot的方式使用debian8(平时ssh进去的是阉割版的busybox)
    最终没有采用这种方法的原因是搞不定内网穿透服务的自启动问题。Gen2默认重启就重置在busybox中的配置,西数论坛上有Gen2脚本自启动教程,但我变砖两次都没不行,遂放弃。
  • 黑群晖DSM:文件下载
    装黑群晖貌的方法貌似和装第三方app一样,也是从控制面板上传bin,但是fox_exe警告说
    Its a "Beta" version of DSM, and "Alpha" of Firmware itself.Its have some bugs.But one "Bug" is really important:Sometime few lib (.so files) was "damaged" and system cant run normally. (Random bugs).
    ……有未知原因的严重bug,所以还是不搞了
  • 纯净版Debian8 + OpenMediaVault:教程 文件下载
    这个方法是把硬盘彻底格式化装个Debian8系统然后加装开源的NAS管理系统OpenMediaVault。OpenMediaVault集成了很多工具,有很多设置选项,但不知为何我装的OpenMediaVault在控制面板中根本发现不了磁盘(现在回想起来也许是没有把/dev/sda2 mount 到/home或者/root)
    总之 OpenMediaVault 用起来太复杂并不适合小白玩家,但对于高级玩家还不如直接SSH命令行操作,反正Nas这种东西不用经常改配置。

最终采取方法是自己搭积木
  • 系统:Debian8
  • Web服务器:apache2 + mysql + php5
  • 内网穿透:frp
  • 文件管理:芒果云
  • 文件下载:Aria2
  • 文件同步:ResilioSync(就是btsync)
  • 在线播放:h5ai


评分

参与人数 1贡献 +10 收起 理由
ASHway + 10

查看全部评分

那是云论坛 - 国内知名的NAS交流平台
http://www.nasyun.com
分享淘帖
回复 印象

使用道具

0

精华

8

回帖

230

积分

入门用户

Rank: 1

云币
0
贡献
45
活跃
0
精华
0
sirenest 发表于 2017-3-9 11:54 来自 中国广东广州
本帖最后由 sirenest 于 2017-3-9 11:55 编辑

### 具体教程

#### 1 安装debian 8

基本是参照fox_exe的教程来做,英文好的可以直接看[英文版](https://ftp.anionix.ru/WDMyCloud ... ebian/_howto_en.txt),主要需用到[uImage, uRamdisk和jessie-rootfs.tar.gz三个文件](https://ftp.anionix.ru/WDMyCloud/WDMyCloud-Gen2/Debian/)。注意英文教程里把jessie-rootfs.tar.gz错写成了rootfs-jessie.tar.xz

```sh
======= 把硬盘分成三个分区 ========
/dev/sda1 - Swap 交换分区
/dev/sda2 - User data 用户数据
/dev/sda3 - Rootfs/Boot (Important for bootloader) 系统文件和启动分区

======= 正常步骤(用telnet刷系统) =======
# 在控制面板的“网络”那里开启ssh访问,然后命令行访问MyCloud
# Windows下的ssh客户端
ssh sshd@你的MyCloud_IP
#  在MAC终端
ssh -oHostKeyAlgorithms=+ssh-dss sshd@你的MyCloud_IP

# 将uImage, uRamdisk和jessie-rootfs.tar.gz放进/boot/boot里。
# 重启MyCloud
# 通过telnet链接MyCloud (telnet的ip和原ssh的ip不一样,可在路由器上查看)
telnet your_device_telnet_ip
# 使用parted命令重新分区(删除分区124567留下分区3)
parted /dev/sda
rm 1
rm 2
rm 4
rm 5
rm 6
rm 7
# 建立大小为1G的分区1
mkpart primary 0% 1G
# 退出parted
q
# 将分区1 格式化为ext4格式
mkfs.ext4 /dev/sda1

# 把分区3 /boot/boot里的三个文件,复制到分区1里)
mkdir -p /mnt/root /mnt/data
mount /dev/sda1 /mnt/data
mount /dev/sda3 /mnt/root
cp /mnt/root/boot/uImage /mnt/data/
cp /mnt/root/boot/uRamdisk /mnt/data/
cp /mnt/root/boot/jessie-rootfs.tar.gz /mnt/data/
umount /mnt/root

# 删除原分区3,建立新的分区2和分区3
parted /dev/sda
rm 3
# 建立大小为剩余空间大小的的分区2
mkpart primary 4G 100%  
# 建立大小为3G的分区3
mkpart primary 1G 4G
q
mkfs.ext4 /dev/sda2
mkfs.ext4 /dev/sda3

# 把分区1里的3个文件解压并复制回分区3,
mount /dev/sda3 /mnt/root
tar xvf /mnt/data/jessie-rootfs.tar.gz -C /mnt/root
mkdir -p /mnt/root/boot
cp /mnt/data/uImage /mnt/root/boot/uImage
cp /mnt/data/uRamdisk /mnt/root/boot/uRamdisk
umount /mnt/root

# 把分区1格式化成swap
umount /mnt/data
mkswap /dev/sda1

# 重启完成Debian8安装
sync
reboot -f

# ssh进入Debian8 初始密码是 mycloud
ssh root@your_device_ip

======= 非正常步骤(救砖并刷debian8)=======
# 把硬盘拆出来安装到另一台linux电脑上,并安装parted
# centos下
yum install parted
# debian/Ubuntu下
apt-get install parted
# 查看硬盘及分区情况
parted -l
# 进入parted分区,注意/dev/sdb改成你 parted -l 看到的那个
parted /dev/sdb
mklabel gpt
# 删掉所有分区
rm 1
rm 2
rm 3
rm 4
rm 5
rm 6
rm 7
# 建立大小为1G的分区1
mkpart primary 0% 1G
# 建立大小为剩余空间大小的的分区2
mkpart primary 4G 100%  
# 建立大小为3G的分区3
mkpart primary 1G 4G
q
# 格式化
mkswap /dev/sdb1
mkfs.ext4 /dev/sdb2
mkfs.ext4 /dev/sdb3

# 上传文件,把三个文件解压复制到分区3
mkdir /mnt/root
mount /dev/sdb3 /mnt/root
mkdir /mnt/root/boot
tar xvf  jessie-rootfs.tar.gz -C /mnt/root
cp uImage /mnt/root/boot/uImage
cp uRamdisk /mnt/root/boot/uRamdisk

# 重启完成Debian8安装
sync
reboot -f
```

#### 2 Debian安装Web服务器

```shell
# 默认在root用户下操作

## 更改debian软件源为华中科大
## 打开/etc/apt/sources.list文件注释掉原来的源(在每行前加#)##
## 复制以下代码到sources.list ##
vi /etc/apt/sources.list
deb http://mirrors.ustc.edu.cn/debian/ jessie main contrib non-free
deb http://mirrors.ustc.edu.cn/debian/ jessie-updates main contrib non-free
deb http://mirrors.ustc.edu.cn/debian/ jessie-backports main contrib non-free
deb http://mirrors.ustc.edu.cn/debian-security/ jessie/updates main contrib non-free
apt-get update
apt-get upgrade

#语言设置
apt-get install locales
dpkg-reconfigure locales

# 时间同步(很重要)
apt-get install -y ntp

# 时区设置(参考:http://coolnull.com/235.html
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

# 安装nano文本编辑器(我不习惯用原生的vi编辑器)
apt-get install nano

# 安装Apache2服务器(参考 https://www.centos.bz/2016/10/debian-8-jessie-install-lamp/
apt-get install apache2
# 配置服务器
nano /etc/apache2/apache2.conf
# 重启服务器
systemctl restart apache2
# 此时用浏览器访问Mycloud的IP应该可以看到apache的默认页面了。

# 安装Mysql数据库
apt-get install mysql-server
# 初始化mysql数据库
mysql_secure_installation

# 安装PHP
apt-get install php5 php-pear
# 安装PHP的mysql支持
apt-get install php5-mysql
# 配置PHP
nano /etc/php5/apache2/php.ini
```

#### 3 安装芒果云

```shell
# 安装wget命令行下载工具
apt-get install wget
# 安装zip文件解压工具
apt-get install zip
# 下载芒果云
wget http://static.kalcaddle.com/update/download/kodexplorer3.39.zip
# 解压到/home/kod
upzip -d /home/kod kod*.zip
# 建立软连接
ln -s  /home/kod /var/www/kod
# 把apache2服务器的默认首页改成kod(也可以删掉这个默认conf文件另建一个)
nano /etc/apache2/sites-enabled/000-default.conf
# 把文件里面的DocumentRoot /var/www/html 替换成 DocumentRoot /var/www/kod
# 现在重新用浏览器访问Mycloud的IP应该可以看到芒果云了。
# 注意kod文件夹必须放在/home目录下,因为只有/home目录是挂载了分区2,/var目录和/root目录都在分区3里,而分区3只有3G空间。
# 如果出现权限错误,尝试 chmod -R 777 [目录名] 来提升目录权限
```

#### 4 安装aria2并设置开机启动

```shell
# 我是参考https://www.zrj96.com/post-296.html 这篇文的
# 安装Aria2
apt-get -y install aria2
# 在/root目录下建立.aria2目录
mkdir .aria2
# 建立配置文件(参考后面的代码)
nano /root/.aria2/aria2.conf
# 建立进度保存空文件
echo '' > /root/aria2.session;
# 建立开机启动文件(参考后面)
nano /lib/systemd/system/aria2c.service
# 启动程序并加入开机启动
systemctl start aria2c.service
systemctl enable aria2c.service
# 下载aria2的图形界面 https://github.com/mayswind/AriaNg/releases
# 解压后复制到/home/www/kod/aria2下,就可以直接通过 http//myloud的ip/aria2 访问了
```
###### /root/.aria2/aria2.conf
```shell
dir=/home/kod/data/Group/public/home/downloads
file-allocation=trunc
continue=true
max-concurrent-downloads=10
max-connection-per-server=5
min-split-size=10M
split=20
disable-ipv6=true
input-file=/root/aria2.session
save-session=/root/aria2.session
enable-rpc=true
rpc-allow-origin-all=true
rpc-listen-all=true
listen-port=51413
enable-dht=true
enable-peer-exchange=true
peer-id-prefix=-TR2770-
user-agent=Transmission/2.77
seed-ratio=0.1
bt-seed-unverified=true
bt-save-metadata=true
```
###### /lib/systemd/system/aria2c.service
```shell
[Unit]
Description=Aria2 Service
After=network.target

[Service]
ExecStart=/usr/bin/aria2c --conf-path=%h/.aria2/aria2.conf

[Install]
WantedBy=default.target
```

我的aria2还没有搞定磁力链接下载,大家谁搞好的可以分享一下。

#### 5 设置内网穿透并设置Timer启动

国内的宽带貌似都成了局域网没有外网IP,所以无论把MyCloud放公司还是家里,想要远程操作MyCloud都必须搞内网穿透。内网穿透主要有 ① SSH反向连接+Autossh ② 花生壳 ② ngrok及各类衍生的收费Tunnel服务等几种方式。我试过感觉都比较复杂,最后选用了[frp](https://github.com/fatedier/frp/)这个工具,实现起来还不错。

使用frp你需要有一部有外网IP的机器或者VPS之类,把frps(服务端程序)放在外网机器上,把frpc(客户端程序)放在MyCloud里,配置好INI文件,各自运行起来就可以了,[官方中文文档](https://github.com/fatedier/frp/blob/master/README_zh.md)写得很清楚就不重复了。

这里主要把frp自启动的方式分享一下。

因为MyCloud主板没有电池,所以每次重启系统时间都会变回1970年1月1日,如果frp的服务器端时间是2017年,frp的客户端时间是1970年,frp是链接不上的,所以我们需要ntp来做时间同步。

但ntp完成时间同步的时间是不一定的,所以frp的自启动不能设置为像aria2一样设为开机启动。在Debian8里,我们可以用timer(定时器)来启动service解决这个问题。

在/lib/systemd/system/目录下建立两个文件frpc.service 和 frpc.timer

###### /lib/systemd/system/frpc.service

```shell
[Unit]
Description=Frp Client Service
[Service]
Type=simple
ExecStart=/usr/bin/frpc -c %h/.frp/frpc.in
```

###### /lib/systemd/system/frpc.timer

```shell
[Unit]
Description=Run frpc daily and on boot

[Timer]
# 开机一分钟后启动
OnBootSec=1min
# 每天启动一次
OnUnitActiveSec=1d

[Install]
WantedBy=timers.target
```

编辑保存好这两个文件以后输入:

```shell
systemctl enable frpc.timer
```

应该就可以愉快地食用了。

#### 6 一些坑

- Chrome浏览器安装插件stylish,然后添加这个 > [Style](https://userstyles.org/styles/13 ... ble-hidden-function) < 可直接在网页安装app,可以不用ssh操作define.js之类。
- Gen2不支持USB启动,所以如果ssh和telnet都连不上,那就得拆机,把硬盘接到**另一台Linux电脑**上对硬盘进行分区、格式化、刷系统
- 拆外壳需要**两张卡**插进去分别顶开两边扣子,然后把外壳朝后拉,注意两边的扣子的位置是不对称的
- 如果没有台式机来插硬盘,那么你需要一个**外置硬盘盒**
- 如果要插入外置硬盘盒,那么你需要到五金店买**六角匙**来拧开硬盘上的螺丝
- 分区格式化的时候注意/dev/sda 和/dev/sdb的区别,网上教程一般直接把要格式化的硬盘写成sda,但实际上**插进Linux里会变成/dev/sdb**(第二块硬盘)
回复 支持 反对 印象

使用道具 举报

0

精华

9

回帖

449

积分

入门用户

Rank: 1

云币
0
贡献
73
活跃
79
精华
0
Kinsonn 发表于 2017-3-9 14:27 来自 中国广东深圳
折腾无极限啊
回复 支持 反对 印象

使用道具 举报

0

精华

43

回帖

1373

积分

发烧玩家

Rank: 2

云币
0
贡献
122
活跃
741
精华
0
ASHway 发表于 2017-3-9 21:14 来自 中国云南昆明
厉害,果断收藏了,改天有空研究下
回复 支持 反对 印象

使用道具 举报

0

精华

146

回帖

3234

积分

搞机大神

Rank: 3Rank: 3

云币
0
贡献
514
活跃
586
精华
0
badcrazy 发表于 2017-3-12 00:02 来自 中国河南郑州
本帖最后由 badcrazy 于 2017-3-12 00:04 编辑

我就是怕搞成这么麻烦,所以我选择用kodi,这样内网只要共享就行了,如果需要外网,只要穿透,有ftp就行了,比较方便,而且kodi全平台制霸,使用上也不复杂
回复 支持 反对 印象

使用道具 举报

0

精华

85

回帖

751

积分

入门用户

Rank: 1

云币
0
贡献
108
活跃
165
精华
0
xuplus 发表于 2017-3-14 10:16 来自 中国安徽合肥
我ResilioSync卡出翔了,长时间CPU22%以上。
回复 支持 反对 印象

使用道具 举报

0

精华

64

回帖

1863

积分

发烧玩家

Rank: 2

云币
0
贡献
298
活跃
337
精华
0
yhny 发表于 2017-5-24 12:39 来自 中国广东深圳
好帖mark,先看看
回复 支持 反对 印象

使用道具 举报

0

精华

62

回帖

706

积分

入门用户

Rank: 1

云币
0
贡献
94
活跃
203
精华
0
hxcisunxiang 发表于 2017-6-20 21:04 来自 中国广东深圳
下载地址 一直打不开 翻墙也不行 有没有其他的下载地址?
回复 支持 反对 印象

使用道具 举报

0

精华

63

回帖

322

积分

入门用户

Rank: 1

云币
0
贡献
23
活跃
175
精华
0
yshengu 发表于 2017-6-29 16:46 来自 中国江苏常州
先收藏备用,感谢楼主的分享!学习一下!
谢谢分享!
回复 支持 反对 印象

使用道具 举报

0

精华

33

回帖

307

积分

入门用户

Rank: 1

云币
0
贡献
42
活跃
80
精华
0
hoogeo 发表于 2017-6-30 10:34 来自 中国广东东莞
超级好的东西  必须顶露珠楼主
回复 支持 反对 印象

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回列表 搜索 官方QQ群
懒人地图| 手机版|小黑屋| 智能生活 , 上那是云 |闽ICP备2020018196号-1 |网站地图