淘宝买的WD 2TB红盘以及Orico硬盘座到了,立马搞起作为NAS的第一步:迅雷离线下载机。使用的主要硬件当然是我那落灰已久的Raspberry Pi啦!红盘和RPi的耗电量都非常小,即使7×24小时不停下载,也不会心疼电费。请叫我下载强迫症患者……
从头说起,先把硬盘插到硬盘座上,然后usb连上RPi……dmsg里显示有mass storage device连上了。ls一下/dev,确认出现了sda。接下来就要给硬盘分区:
fdisk /dev/sda
fdisk里输入n新建分区,然后直接把所有空间作为一个primary分区,按w搞定!
接着就是格式化了:
mkfs.ext4 -m 1 /dev/sda1
没错,就是要格式化成ext4格式,因为RPi的CPU性能毕竟有限,如果使用ntfs-3g来读写NTFS分区的话,势必会带来很高的CPU占用率,同时对读取及写入速度也有影响。RPi官方论坛里也有帖子讨论这个问题,大家一致认为格式化成ext格式分区有助于提高I/O。相信玩RPi的大家对Linux已经很熟悉了,也不会抱着NTFS格式不放吧。格式化成ext4的另外一个好处,是配合aria2里的一项设定,可以更快地生成预分配文件。
至于-m参数,是将文件系统默认的5%的保留空间降到1%。5%这个默认值太古老了,不适应时代发展,2TB的5%都要将近100G了……
如果你格式化的时候忘了加-m参数,也没问题。随时可以用下面的命令修改保留空间百分比:
tune2fs -m 1 /dev/sda1
好了,硬盘格式化完成后就要考虑自动挂载了。虽然作为NAS的RPi不会经常重启,不过还是要把自动挂载功能加上的。
首先新建一个文件夹作为挂载点,本文使用”/home/pi/HDD”。然后修改/etc/fstab:
pi@raspberrypi ~ $ cat /etc/fstab proc /proc proc defaults 0 0 /dev/mmcblk0p1 /boot vfat defaults 0 2 /dev/mmcblk0p2 / ext4 defaults,noatime 0 1 /dev/sda1 /home/pi/HDD ext4 defaults,noatime,nofail 0 0
最下面那行就是新加的。那3个挂载参数就不一一解释了,自己去Google吧。如果你用的是Archlinux,也许会写成下面这种形式:
UUID="d54342e7-98da-4992-b322-da7ba7d79866" /home/pi/HDD ext4 defaults,noatime,nofail 0 0
其中UUID的值是通过blkid这个命令得到的你的外接硬盘的UUID。
编辑好fstab,就可以用root权限执行mount -a试试看能否正常挂载啦!
一切正常的话,就可以在挂载目录里看到ext4分区自带的lost+found目录了。接下来还有非常重要的一步——设置权限。此时只有root用户有挂载硬盘的读写权限,我们需要让普通用户也能读写硬盘,否则太不方便了。这里使用了一种简单粗暴的方法:
chmod 777 /home/pi/HDD
具体路径根据你的需要修改。记住一定要在成功挂载硬盘后执行一次上述命令。
到此,硬盘部分就折腾得差不多了,下面开始软件部分。这里使用的系统为Raspbian,Debian的分支。Archlinux下也大同小异。
首先需要在RPi下部署LAMP或者LNMP。如果比较懒,也可以只装nginx或者apache。(此处省略500字,具体安装步骤自己Google去吧)
确认nginx/apache正常工作后,安装这次的主角软件——aria2。aria2在Linux下有多著名就不多说了,反正一般国内用户只用迅雷……顺便也把git装上,等会有用:
sudo apt-get install aria2 git
接着新建~/.aria2/aria2.conf文件(即准备用哪个用户运行aria2就建在那个用户的家目录里),并且写入下面参数:
continue=true daemon=true dir=/home/pi/HDD/Downloads/ enable-rpc=true file-allocation=falloc force-sequential=true input-file=/home/pi/HDD/aria2/aria2.session log=/home/pi/HDD/aria2/aria2.log log-level=notice max-concurrent-downloads=3 max-connection-per-server=5 parameterized-uri=true rpc-allow-origin-all=true rpc-listen-all=true rpc-save-upload-metadata=false save-session=/home/pi/HDD/aria2/aria2.session save-session-interval=60 split=5
具体含义不一一讲解了,可以参考aria2官方文档,说得都很详细。aria2的选项相当多,这里只是根据需要修改了其中很小一部分。需要注意的是,上面选项里的目录及文件都必须实际存在,没有的话就mkdir/touch一下,否则aria2可能会无法启动。
配置文件搞定后,可以直接运行/usr/bin/aria2c,aria2会以守护进程模式进入后台运行。你也可以写个脚本,让aria2开机自动运行。
紧接着就要搞个GUI界面了,cd到nginx或apache的www目录里(本人配置的是LAMP,所以是/var/www),执行下面命令:
git clone https://github.com/ziahamza/webui-aria2.git .
这样就把一个webui-aria2下载到了本地,现在可以在电脑上用浏览器访问http://RPi的IP/webui-aria2/来控制aria2了。
一开始可能会提示无法连接aria2,需要通过界面里的Settings->Connection Settings来设好RPi的IP地址。端口号保持默认的6800就可以了。另外Settings->Global Settings里面有很多选项,其实就是和~/.aria2/aria2.conf里一一对应的,有需要改动的话可以参考画面上的说明进行修改。
至此,一个下载机就完成了,可以通过网页上的Add按钮添加下载链接进行下载。不过对我来说还没结束,因为我要的是能够从迅雷离线那里下东西!
接着就是配置迅雷离线了。首先,你得有个Firefox或者Chrome浏览器,并且安装了Greasemonkey或者Tampermonkey插件。这里用chrome+Tampermonkey演示。
到ThunderLixianExporter这个网站,点击上面的”ThunderLixianExporter.user.js”链接,或者直接点击这里,安装迅雷离线地址解析脚本。
接着,用chrome登陆你的迅雷离线下载网页版(什么?你没有迅雷VIP会员账号?那后面就不用看了-_-),点击右上角的小齿轮,在Aria2 JSON-RPC Path部分输入如下地址:
http://192.168.1.100:6800/jsonrpc
其中192.168.1.100是你的RPi的IP,按需要修改;6800是默认端口号。
试着建立几个离线任务,待服务器端下载完成后,勾上那些文件,然后点击指令栏里的”批量导出”按钮,选择”YAAW”。
画面上方会提示你已经向aria2发出了下载指示,可以去之前配置好的webui界面里确认了。
截一张正在下载中的状态图(点击看大图),各种数据显示得很直观:
附带一个数据:我这里20M宽带,RPi未超频,全速下载(~2.3MB/s)时aria2大概占用30%-35%的CPU。
教程至此结束,如有疑问,欢迎留言探讨!
本文为悠然居(https://wordpress.youran.me/)的原创文章,转载请注明出处!
请问一下,你硬盘外接电源了吗?还有你的树莓派用的电源是什么规格的?
我用的是WD MyBook Essential 2TB移动硬盘,有外接电源的。树莓派用的品胜ipad电源(2.1A)。我试过Orico硬盘座,结果出现供电问题导致无法从树莓派通过网络传输文件。
\
用这么高电流的电源会损坏树莓派吗?还有一个问题,可以通过远程访问Samba服务器吗?
2.1A是电源能提供的最大电流,不是实际电流。不过树莓派用iphone的1.2A电源就足够了,ipad的有点浪费。samba服务器我只配置过相同网段的,远程不清楚
qq旋风有办法配置不?迅雷白金会员基本没用了,你观看的内容未经过审核………………。
Chrome webstore里有个插件可以用于qq旋风,不过我不用旋风没试过