-
最近阿里云相册是事件闹的沸沸扬扬, 私人存储是有必要的, 刚好自己前几年用机顶盒刷了一个linux系统上面跑docker运行了一个cloudreve网盘,相比起成品NAS价格, 这款经济实惠, 非常适合自用, 废话不多说,开始分享, 有问题请留言;
-
成品图
-
物料准备
- 一个及机顶盒(一般会带有遥控器,HDMI线.网线)
- U盘一个(2.0, 小容量 4G及以上)
- 硬盘一个,主要用于后期数据存储
- 电脑一台
- 显示器一个,电视也行
-
演示机顶盒介绍
- 我这以我购买的魔百和CM311-1a, 芯片是晶晨s905l3a, 2+16g演示, 这款机顶盒不用拆机线刷,可直接使用刷机, 2022年海鲜市场买的65元, 现在大约50元左右;
-
刷安卓固件包
- 准备一个U盘,推荐usb2.0接口而且小于16G的,内存太大或者usb3.0会无法识别, 该U盘主要用户系统安装,不用太大, 能安装系统即可, 我的是一个家里的4G老U盘
- 下载安卓固件包, 将下面三个文件拖入U盘中, 无需解压
链接: https://pan.baidu.com/s/1fU6Bc0iO2BrUFaZcmyJIhw?pwd=7vte 提取码: 7vte
-
将U盘插入靠近网口的一侧机顶盒,使用HDMI线连接一个显示屏,并插入网线
-
然后开机,同时不停按遥控器左键,出现升级进度条马上关机,然后迅速(大约一秒钟)开机。接下来机顶盒就会自动刷入安卓系统
-
刷写完成后,会进入一个电视当贝界面,查看盒子系统信息以及IP地址,确保IP和电脑在一个网段,然后就可以关闭机顶盒,将U盘拔掉插入电脑
-
制作linux启动U盘
-
安装balenaEtcher 烧录工具, 并将U盘插入电脑
-
使用 balenaEtcher 烧录 U 盘系统
- 镜象地址 (Ubuntu 版本的 Armbian 就选择 jammy 这个版本, bullseye 是 Debian 的)
- 我当时根据盒子配置选择的是
Armbian_22.08.0_Aml_s905l3a_jammy_5.15.55_server_2022.07.16.img.gz
, 现在最新的应该是24版本的,对应下载即可
-
打开balenaEtcher, 点击Flash from file, 选择刚才下载的镜像, 然后选择U盘, 最后点击flash 开始烧录
-
烧录完成. 将U盘插入机顶盒上
-
启动linux
只有第一次启动需要,后边就不需要了
-
修改启动方式, 下载电视盒子助手, 使用无线连接电视,点击从U盘启动,并开机
-
打开电视盒子助手,选择
YesStbToolV4D.exe
-
连接电视盒子,修改启动方式
-
进入 armbian 系统
进入系统后可以使用
armbian-install
将 U 盘系统写入盒子的 EMMC, 后边就不需要插U盘使用, 但是不建议, 使用U盘方式比较灵活, 插 U 盘启动就是 armbian, 拔掉 U 盘启动就是安卓底包系统
-
机顶盒接入显示屏, 启动机顶盒, 显示器会出现突然花屏,然后出现经典的 Linux 启动信息,即是成功进入 U 盘的 armbian 系统, 大约1分钟左右, 启动完成出现
Welcome to ARMBIAN!
-
初次登入系统会有一个初始化配置过程, 先修改 root 用户密码 再选择系统解释器, 以及创建用户, 设置时区语言等流程,这里不进行进一步展开, 都是一些基础操作
-
所有操作都完成了,我们就能进入linux系统
-
基本软件安装
- 进行静态ip, dns配置,方便我们后期远程连接
# 修改成自己的
cat <<EOF > /etc/network/interfaces.d/eth0
auto eth0
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1 114.114.114.114
iface eth0 inet6 auto #这里启动ipv6 用于后期, 使用公网ipv6+ddns进行外网访问,根据情况自行选择
EOF
# 重启网络服务
systemctl restart networking.servic
- 查看linux ip地址, 以及确认sshd 服务是否正常启动, 电脑使用ssh 工具,远程连接机顶盒
- 更换国内镜像源(如果网络条件好,可以忽略)
- 磁盘分区和挂载(可选)
# 我外置了一块硬盘,用于后期数据存储
# 现在对硬盘分区
parted /dev/sdb
p #查看当前磁盘分区
mklabel #创建分区
新的磁盘标签类型? gpt
mkpart #创建分区表
分区名称? []? 1 #分区名称
文件系统类型? xfs #文件系统类型设置为xfs
起始点? 0% #起始点设置为从0开始
结束点? 100GB #结束点设置为磁盘容量总大小100GB
print #打印分区详细信息
quit #退出
# 格式化分区,并挂载
mkfs.xfs /dev/sdb1
mkfs.xfs /dev/sdb2
mkdir -p /data/docker_data # 将作为docker数据盘
mkdir -p /data/cloud_data # 左右后面网盘文件存储
#永久挂载
vim /etc/fstab
UUID=xxx自行替换xxx /data/docker_data xfs defaults,nofail 0 0
UUID=xxx自行替换xxx /data/cloud_data xfs defaults,nofail 0 0
- 更新并安装基本软件
apt-get update
apt-get upgrade
# 安装基本软件(更具需求自行安装)
apt-get install -y vim net-tools sqlite3
- docker安装
curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh
- 启动docker服务
systemctl enable docker.service --now
# 查看docker是否启动成功
systemctl status docker.service
- 修改docker数据存储位置和镜像加速
# 前面我们已经把硬盘分区并挂载了,现在可以直接使用
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"], # 阿里云镜像仓库修改成自己的
"data-root": "/data/docker_data" #更改存储位置
}
EOF
# 在 Docker 1.10.0 及以后版本中,配置数据存储目录的参数从 "graph" 改为 "data-root"
# 重启docker服务,并检查是否修改成功
systemctl daemon-reload
systemctl restart docker.service
systemctl status docker.service
docker info | grep -i "Docker Root Dir" # 查看目录是否修改成功
- 运行Cloudreve 容器
# 启动Cloudreve容器
# 端口可以不修改保持默认5212,自行决定, 如果修改了需要进入容器修改conf.ini文件中的Listen
# 数据映射目录,根据自己需求自行修改
# 如果镜像下载失败可以使用github+阿里云海外构建进行同步或者更换镜象源
docker run -d --name cloudreve -p 5212:5212 --restart=always -v /data/cloud_data/cloudreve/uploads:/cloudreve/uploads cloudreve/cloudreve:latest
# 我没使用外置数据库,用的是它自带的SQLite,不需要额外的数据库配置
# 如果需要请进入容器修改conf.ini,添加, 修改完成后重启容器
[Database]
# 数据库类型,目前支持 sqlite/mysql/mssql/postgres
Type = mysql
# MySQL 端口
Port = 3306
# 用户名
User = root
# 密码
Password = root
# 数据库地址
Host = 127.0.0.1
# 数据库名称
Name = v3
# 数据表前缀
TablePrefix = cd_
# 字符集
Charset = utf8mb4
# 进程退出前安全关闭数据库连接的缓冲时间
GracePeriod = 30
# 使用 Unix Socket 连接到数据库
UnixSocket = false
-
访问Cloudreve
- 访问
http://你的机顶盒ip:5212
- 默认账号密码: 使用: docker logs
cloudreve容器名或容器id
- 重置管理员密码
./cloudreve --database-script ResetAdminPassword
- 访问
-
cloudrece 使用就不阐述,都是些图形化界面操作
-
目前只支持内网访问,如果想外网访问, 可以考虑ipv6+ddns 域名访问、内网穿透、公网ipv4等