入手树莓派,记录踩坑若干(最近更新2018/03/03)
入手原因
大D以前用于备份的美国VPS因为忘记续费,主机服务商生成了滞纳金,晚了1天,滞纳金就是10刀。
这台VPS一年都不值10刀好不好?发邮件沟通,还不予取消,反而在工单还开着的情况下删除了主机及数据。干脆,不用你了。
这次备份机事件还连带着大D好友 @兔兔 的数据覆灭了,最近的记录只能找到2015年的,真是心里过不去啊。。
这样VPS备份到哪里又成了新问题,本来是打算备份到百度云的,但是百度云盘的API token貌似有时间限制,超时之后要重新授权,很麻烦。而且现在百度云非会员下载速度真的是慢。于是就想干脆备份到本地算了。
每天开自己电脑下载备份回来也不现实,于是想到树莓派,那就进一个好了,现在也不是很贵,200以内就可以搞定了。
晒张图吧。
踩坑日记
以下内容为:2018年1月10日更新
安装OpenMediaVault
OMV是一个基于Debain的NAS解决方案,包含SSH、FTP、SMB等服务,并且具有插件扩展能力。
感谢 @老谢 的安利。
1.下载镜像
镜像下载地址:https://sourceforge.net/projects/openmediavault/files/Raspberry%20Pi%20images/
大D使用的版本是:OMV_3_0_88_RaspberryPi_2_3_4.9.41.img.xz
2.写入TF卡
Win32DiskImager、dd等软件写入TF卡。
3.更换软件源
安装完毕之后,建议第一时间更换软件源,Debain的源是国内有的,OMV的源国内貌似是没有的,大D是没有找到。
较新版本的源,大D推荐中科大和清华的源。
清华源:https://mirror.tuna.tsinghua.edu.cn/help/raspbian/
中科大源:https://lug.ustc.edu.cn/wiki/mirrors/help/raspbian
编辑/etc/apt/sources.list
注释全部行,加入以下行:
1 2 3 |
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ jessie main non-free contrib deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ jessie main non-free contrib |
编辑/etc/apt/sources.list.d/raspberry.list
注释全部行,加入以下行
1 |
deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ stretch main |
然后执行
1 2 |
apt-get update apt-get upgrade |
更新系统,其中遇到的所有提示及询问,均以默认值继续即可。
更新完毕之后,就可以在浏览器中输入树莓派IP地址,登陆OMV Web管理界面了。
4.挂载硬盘时遇到错误:fuse device is missing, try 'modprobe fuse' as root
在OMV内挂载硬盘是遇到如下错误:
Failed to execute command 'export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/loc export LANG=C; mount -v --source '/dev/sda1' 2>&1' with exit code '21': modprobe: ERROR:../libkmod/libkmode.c:557 kmod_serach_moddep() could not open moddep file '/lin/modules/4.9.41-v7+/modules.dep.bin' ntfs-3g-mount: fuse device is missing, try 'modprobe fuse' as root,
这个问题上还是花了不少时间,后来发现是内核的问题。
那就升级一下内核:
1 |
apt-get -q --reinstall -y install raspberrypi-kernel --force-yes |
升级完毕之后,安装ngfs-3g
1 |
sudo apt-get install ntfs-3g |
完成之后重启树莓派,没问题的话,就可以继续在OMV Web管路页面里面挂载硬盘了。
移动硬盘不稳定问题(已解决)
2018/01/11 更新
更换硬盘盒后稳定不掉盘。
为了进行下载工作,挂了一块附加电源的USB 2.0硬盘,用的是SSK的盒子,会产生掉盘的情况。
由于有外置电源,应该不是USB口电力不足的问题导致的,目前猜测可能是硬盘盒芯片的兼容性问题,稍后换个盒子试一试。
自动挂载分区
OMV内挂载的分区是可以开机自动挂载的,但是大D有需要指定挂载点,毕竟后面这树莓派还要承担VPS备份数据,数据可以存储在NTFS分区内,但是还是开了两个小一点的ext3分区,用来存储以后要跑的脚本、数据库等东西。
按照大D自己的习惯,挂载在/home上。
在/home内新建目录,名称自取,这里用aaa代替。
编辑/etc/fstab
加入如下:
1 |
/dev/sda2 /home/aaa ext3 defaults 0 0 |
解释:
第一列为设备号或卷标
第二列为挂载点
第三列为文件系统
第四列为文件系统参数
第五列为是否可以使用demp命令进行备份,0:不备份,1:备份,2:备份,但重要性比1小。
第五列为系统启动时是否检验分区
以下为2018/03/03更新
解决ll Command not found
1 |
echo "alias ll='ls -l'" >> ~/.bashrc && source ~/.bashrc |
编译安装新版Aira2
解决依赖
1 |
apt-get install wget libcurl4-openssl-dev libevent-dev ca-certificates libssl-dev pkg-config build-essential intltool libxml2-dev libgcrypt-dev libssl-dev |
获取源码并安装
aria2官网地址: https://aria2.github.io/
1 2 3 4 5 |
wget https://github.com/aria2/aria2/releases/download/release-1.33.1/aria2-1.33.1.tar.gz tar -zxvf aria2-1.33.1.tar.gz cd aria2-1.33.1.tar.gz ./configure make |
在./configure
之后,确认一下磁力链和BT下载的支持,如下图:
安装完成之后,到源码~/aria2-1.33.1/src
目录下拷贝文件:
1 2 |
cd ~/aria2-1.33.1/src cp aria2c /usr/bin |
新建配置文件
1 2 |
mkdir /home/other/aria2 vim /home/other/aria2/aria2.conf |
配置文件内容如下,可根据需要自行配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# 文件保存目录 dir=/srv/dev-disk-by-id-usb-ATA_ST9500325AS_0123456789ABCDE-0-0-part1/download # 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M disk-cache=16M # 断点续传 continue=true # 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc # 预分配所需时间: none < falloc ? trunc < prealloc # falloc和trunc则需要文件系统和内核支持 # NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项 file-allocation=prealloc ## 下载连接相关 ## # 最大同时下载任务数, 运行时可修改, 默认:5 #max-concurrent-downloads=5 # 同一服务器连接数, 添加时可指定, 默认:1 max-connection-per-server=15 # 整体下载速度限制, 运行时可修改, 默认:0(不限制) #max-overall-download-limit=0 # 单个任务下载速度限制, 默认:0(不限制) #max-download-limit=0 # 整体上传速度限制, 运行时可修改, 默认:0(不限制) #max-overall-upload-limit=0 # 单个任务上传速度限制, 默认:0(不限制) #max-upload-limit=0 # 禁用IPv6, 默认:false disable-ipv6=true # 最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M # 假定size=10M, 文件为20MiB 则使用两个来源下载; 文件为15MiB 则使用一个来源下载 min-split-size=10M # 单个任务最大线程数, 添加时可指定, 默认:5 split=12 ## 进度保存相关 ## # 从会话文件中读取下载任务 input-file=/home/other/aria2/aria2.session # 在Aria2退出时保存错误的、未完成的下载任务到会话文件 save-session=/home/other/aria2/aria2.session # 定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0 save-session-interval=60 ## RPC相关设置 ## # 启用RPC, 默认:false enable-rpc=true # 允许所有来源, 默认:false rpc-allow-origin-all=true # 允许外部访问, 默认:false rpc-listen-all=true # RPC端口, 仅当默认端口被占用时修改 # rpc-listen-port=6800 # 设置的RPC授权令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 选项 #rpc-secret=<TOKEN> ## BT/PT下载相关 ## # 当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务, 默认:true #follow-torrent=true # 客户端伪装, PT需要 peer-id-prefix=-TR2770- user-agent=Transmission/2.77 # 强制保存会话, 即使任务已经完成, 默认:false # 较新的版本开启后会在任务完成后依然保留.aria2文件 #force-save=false # 继续之前的BT任务时, 无需再次校验, 默认:false bt-seed-unverified=true # 保存磁力链接元数据为种子文件(.torrent文件), 默认:false bt-save-metadata=true |
新建一个session文件用于存储下载任务信息
1 |
touch /home/other/aria2/aria2.session |
设置开机自启动
1 |
vim /etc/inti.d/aria2c |
启动脚本内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
#!/bin/sh ### BEGIN INIT INFO # Provides: aria2 # Required-Start: $remote_fs $network # Required-Stop: $remote_fs $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Aria2 Downloader ### END INIT INFO case "$1" in start) echo -n "Starting aria2c\n" sudo -u root aria2c --conf-path=/home/other/aria2/aria2.conf -D #根据需要修改conf文件路径 ;; stop) echo -n "Shutting down aria2c " killall aria2c ;; restart) echo -n "Shutting down aria2c " killall aria2c sleep 3 echo -n "Starting aria2c" sudo -u root aria2c --conf-path=/home/other/aria2/aria2.conf -D #根据需要修改conf文件路径 ;; *) echo 'Usage:' `basename $0` '[option]' echo 'Available option:' for option in start stop restart do echo ' -' $option done ;; esac |
配置自动启动可以直接编辑/etc/rc.local加入启动命令即可
BT下载加速
在配置文件内增加一组Tracker服务器,可以一定程度上给BT下载加速,Github上有他人整理好的Tracker清单。
https://github.com/ngosang/trackerslist
在配置文件内增加:
1 |
bt-tracker=udp://tracker.cyberia.is:6969/announce,udp://tracker.coppersurfer.tk:6969/announce,udp://tracker.swateam.org.uk:2710/announce,udp://tracker.skyts.net:6969/announce,udp://tracker.safe.moe:6969/announce,udp://tracker.piratepublic.com:1337/announce,udp://tracker.opentrackr.org:1337/announce,udp://bt.aoeex.com:8000/announce,udp://allesanddro.de:1337/announce,udp://9.rarbg.to:2710/announce,udp://tracker.open-internet.nl:6969/announce,udp://trackerxyz.tk:1337/announce,udp://tracker4.itzmx.com:2710/announce,udp://tracker2.christianbro.pw:6969/announce,udp://tracker1.wasabii.com.tw:6969/announce,udp://tracker.zer0day.to:1337/announce,udp://public.popcorn-tracker.org:6969/announce,udp://tracker.xku.tv:6969/announce,udp://tracker.vanitycore.co:6969/announce,udp://inferno.demonoid.pw:3418/announce,udp://open.facedatabg.net:6969/announce,udp://mgtracker.org:6969/announce,udp://ipv4.tracker.harry.lu:80/announce,udp://tracker.mg64.net:6969/announce,udp://tracker.bluefrog.pw:2710/announce,udp://tracker.acg.gg:2710/announce,udp://thetracker.org:80/announce,udp://p4p.arenabg.com:1337/announce,udp://open.stealth.si:80/announce,http://tracker.city9x.com:2710/announce,ws://tracker.btsync.cf:2710/announce,udp://zephir.monocul.us:6969/announce,udp://tracker.internetwarriors.net:1337/announce,udp://tracker.halfchub.club:6969/announce,udp://tracker.grepler.com:6969/announce,udp://tracker.files.fm:6969/announce,udp://tracker.dler.org:6969/announce,udp://tracker.desu.sh:6969/announce,udp://tracker.cypherpunks.ru:6969/announce,udp://tracker.christianbro.pw:6969/announce,udp://pubt.in:2710/announce,udp://tracker.torrent.eu.org:451/announce,udp://explodie.org:6969/announce,udp://bt.xxx-tracker.com:2710/announce,http://retracker.telecom.by:80/announce,http://retracker.mgts.by:80/announce,udp://retracker.coltel.ru:2710/announce,http://0d.kebhana.mx:443/announce,udp://tracker.tiny-vps.com:6969/announce,udp://tracker.tvunderground.org.ru:3218/announce,udp://tc.animereactor.ru:8082/announce,udp://sd-95.allfon.net:2710/announce,udp://santost12.xyz:6969/announce,udp://sandrotracker.biz:1337/announce,udp://peerfect.org:6969/announce,http://sandrotracker.biz:1337/announce,http://alpha.torrenttracker.nl:443/announce,udp://tracker.uw0.xyz:6969/announce,udp://tracker.kamigami.org:2710/announce,,udp://z.crazyhd.com:2710/announce,udp://retracker.nts.su:2710/announce,udp://104.238.198.186:8000/announce,https://open.kickasstracker.com:443/announce,https://open.acgnxtracker.com:443/announce,http://tracker.opentrackr.org:1337/announce,http://torrent.nwps.ws:6969/announce,http://retracker.spark-rostov.ru:80/announce,http://retracker.bashtel.ru:80/announce,http://open.kickasstracker.com:80/announce,http://open.acgtracker.com:1096/announce,http://open.acgnxtracker.com:80/announce,http://fxtt.ru:80/announce,http://agusiq-torrents.pl:6969/announce,http://104.238.198.186:8000/announce,udp://tracker.justseed.it:1337/announce,udp://retracker.lanta-net.ru:2710/announce,udp://packages.crunchbangplusplus.org:6969/announce,https://evening-badlands-6215.herokuapp.com:443/announce,http://tracker2.itzmx.com:6961/announce,http://tracker.vanitycore.co:6969/announce,http://tracker.torrentyorg.pl:80/announce,http://tracker.tfile.me:80/announce,http://tracker.mg64.net:6881/announce,http://tracker.electro-torrent.pl:80/announce,http://torrentsmd.me:8080/announce,http://share.camoe.cn:8080/announce,http://servandroidkino.ru:80/announce,http://retracker.omsk.ru:2710/announce,http://omg.wtftrackr.pw:1337/announce,http://mgtracker.org:6969/announce,http://bt.dl1234.com:80/announce |
增加抗DMCA选项
1 2 3 |
enable-dht=true bt-enable-lpd=true enable-peer-exchange=true |
配置OMV自带Nginx
查找Nginx安装位置及配置文件路径
1 2 3 4 5 6 7 8 9 10 11 12 |
root@raspberrypi:/usr/sbin# ps aux | grep nginx root 1230 0.0 0.2 15680 2320 ? Ss 21:10 0:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; www-data 1231 0.0 0.3 16180 3908 ? S 21:10 0:00 nginx: worker process www-data 1232 0.0 0.3 16176 3908 ? S 21:10 0:00 nginx: worker process www-data 1233 0.0 0.3 15824 3160 ? S 21:10 0:00 nginx: worker process www-data 1234 0.0 0.3 15824 3160 ? S 21:10 0:00 nginx: worker process root 9195 0.0 0.1 4192 1992 pts/0 S+ 23:00 0:00 grep nginx **** root@raspberrypi:/usr/sbin# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful |
根据需要自行调整配置文件即可,大D自己开了一个Web用于访问Aria2GUI
lftp限速及关闭ssl验证
HK VPS备份的任务现在落到树莓派身上了,花了些时间来重新编写适用于不同于以往的异地备份方式的Bash脚本。
同是根据以前写的博客来配置了vsftpd加密ftp,但证书无法被lftp直接认证,只好手动处理一下。
1 2 3 4 5 |
vim /etc/lftp.conf #限速20k set net:limit-rate 20480:20480 #关闭SSL证书认证 set ssl:verify-certificate no |
已有 6 条评论
发表评论
电子邮件地址不会被公开。 必填项已标注。
大D也开始了树莓派折腾之旅,哈哈哈……
哈哈,生命在于折腾嘛。
很好用,我有一块一直24H开着做路由器、离线下载和NAS,不心疼。
哈哈哈,确实确实,我现在是拿它做下载,NAS用它我还是不放心,回头还是要搞一台NAS存储照片和代码什么的。
这个东西干啥用的
哈哈,现在在做下载机,回头会用来跑一些别的任务。