机顶盒刷linux系统,做私人网盘

  • 最近阿里云相册是事件闹的沸沸扬扬, 私人存储是有必要的, 刚好自己前几年用机顶盒刷了一个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 

image

  • 将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

image

  • 更新并安装基本软件
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等

42 个赞

干货满满 留赞一个

4 个赞

先赞一个,回看~~

4 个赞

用机顶盒不更不稳吗?
还是得用更靠谱的存储

4 个赞

目前使用快两年了,基本没啥问题,只要硬盘不出现问题,就没啥大事,机顶盒出现问题概率几乎很小

4 个赞

几个经典低价玩具了,玩客云,n1和它
百兆口的还有个破烂,比特米,虽然是s905x+1g但是人家有2个sata啊,省了个硬盘盒钱还不用挂尿袋

5 个赞

可惜缺Wi-Fi,不然就完美了

3 个赞

这个盒子我有一个,现在丢家里吃灰:rofl:

没有冗余的情况下,这个网盘就当个大号存储就行,不建议放重要资料,要不就得搞各种备份

基于种种考虑,我最后还是选了icloud​:rofl:,当然icloud也出过bug,但考虑到便利性以及数据安全(指数据不丢),还是买付费服务省心

1 个赞

不错,马克一下

大佬牛B,小白万分膜拜!

1 个赞

比特米好像还涨价了

1 个赞

我还在用n1,还有玩客云,但是32位实在没啥大用

1 个赞

收藏了,厉害,谢谢分享

1 个赞

感谢大佬教程

2 个赞

:joy:刚买了魔百盒,回头试试

2 个赞

吃灰的电脑刷个fnos

2 个赞

感谢分享大佬厉害啊

2 个赞

这个才是真大佬

1 个赞

很详细。 赞

2 个赞

类似盒子很多,2+8g带wifi的可能更合适,毕竟wifi网速还是480mbps

1 个赞