一滴也没有了——榨干老矿渣N1盒子

一、开篇

  • 斐讯N1盒子作为一款矿渣玩法众多,比较常见的玩法:给它刷入OpenWrt系统做旁路由,提供特殊服务;刷入电视盒子系统,搭配一个遥控器做电视盒子;刷入游戏系统,当作一台游戏机;跑PCDN等等
  • 今天的教程是准备把Armbian系统刷入N1盒子,让它来扮演一个家庭服务器的角色。服务器需要一个运行稳定的系统,而armbian系统可以看做是运行在Arm架构机器上的Debian系统,最大的特点是其作为底层系统运行起来还是比较稳定的。
  • 在armbian系统上,可以根据自己的需求部署相应的服务——简单举例——我们可以部署:私人笔记服务、轻NAS服务、相册服务、去广告服务、旁路由(特殊服务)、挂载各大网盘、家庭智能控制服务……
  • 将N1盒子刷成电视盒子系统并开启优先从USB启动的步骤在这里就省略了,网上的教程比较多,这里直接进入刷写armbian系统的步骤。

二、准备工具

  1. 8G空间以上的U盘,用来写入并启动armbian系统
  2. 软件:Rufus或者BalenaEtcher
  3. 固件:armbian固件(以bullseye版本为例)

三、写入U盘,从U盘启动armbian系统

  1. 用写盘软件把armbian固件写入U盘(提前备份U盘资料)
  2. 写盘完成后,将U盘插入N1盒子USB口。
    提醒一下,罗嗦几句:
    比较常见的情况是,在我们给N1盒子激活从U盘启动时,此时N1盒子是电视盒子系统——AndroidTV系统,如果在电视盒子系统开机状态下已经把写完armbian系统U盘插入N1盒子,AndroidTV系统会对U盘目录、文件予以读取甚至权限更改。简单说,会影响armbian系统设置。
    如果第一次激活N1盒子从U盘启动,为了避免以上情况。
    我能想到的是三种途径:
    (1)如果在插着U盘的情况下激活从U盘启动,等着从U盘成功启动armbian系统后,为了万无一失,再断电重刷一遍U盘,重新写入一遍armbian系统。
    (2) 如果在插着U盘的情况下激活从U盘启动,准备两个刷好armbian系统的U盘,第一个启动成功后,断电换第二个U盘重启。
    (3) 在激活N1盒子U盘启动时,不要插入U盘,等激活N1盒子命令行界面提示激活成功后,等1-2秒,马上插入刷好系统的U盘。

四、将系统写入EMMC&前期设置

N1盒子连接网线,开机。使用MobaXterm 连接登录armbian系统

1. 设置root密码、普通用户密码、语言时区设置等等
2. 写入EMMC

(1)输入命令进入写盘程序:armbian-install
(2)型号选择 N1
(3)等待刷写完成,输入poweroff关机
(4)拔掉U盘,插入移动硬盘,重新插电重启N1,用MobaXterm重新连接登录armbian

3. 更换软件源

(1)输入 nano /etc/apt/sources.list 编辑,用#将旧源注释掉或者干脆用新源覆盖掉(以清华大学源为例)

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
#deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
#deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
#deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security/ bullseye-security main contrib non-free
#deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security/ bullseye-security main contrib non-free

按Ctrl+X保存退出
(2)新源测试,退出后可用apt update测试是否可以更新成功,如成功后可再执行apt upgrade -y升级

4. 挂载移动硬盘

(1)格式化移动硬盘
注:armbian系统可直接挂载ntfs格式的硬盘,想挂载现有的移动硬盘可以不执行以下格式化的步骤

  • 输入lsblk查看硬盘设备,比如设备识别为dev/sda
#格式化移动硬盘
mkfs.ext4 /dev/sda
# 创建挂载点 /mnt/usb1
mkdir /mnt/usb1
# 把移动硬盘挂载至挂载点/mnt/usb1
mount /dev/sda /mnt/usb1
  • 完成后可输入lsblk检验一下
    (2)设置开机启动自动挂载移动硬盘
sed -i '/exit 0/i\mount -v /dev/sda /mnt/usb1' /etc/rc.local
5. 安装、设置samba(为了方便在PC管理移动硬盘内容)
# 安装samba
apt install samba
# 编辑samba配置文件
nano /etc/samba/smb.conf

一拉到底,在最底部添加以下内容
[usb1]是显示的共享名字,path = /mnt/usb1是准备共享出来的目录

[usb1] 
comment = myshare
path = /mnt/usb1
writable = yes    
create mask = 0755
directory mask = 0755

设置完,Ctrl+X退出确认
创建samba的用户和密码:

touch /etc/samba/smbpasswd
smbpasswd -a root

重启服务

service smbd restart

五、安装docker、迁移docker根目录至外挂的硬盘

  • N1盒子自身带的 8G ROM太小了,可能部署几个docker后就空间告紧了,所以把docker根目录迁移到外挂的硬盘。
1. 安装docker

通过输入armbian-software命令安装docker,然后输入101,自动化安装。选择镜像源时,可先选择默认的官方源地址,无关紧要,因为后面也有改为国内源的步骤

2. 迁移docker至外挂的硬盘

(1)停止docker

service docker stop

(2)迁移docker数据
在外挂硬盘创建目录

mkdir /mnt/usb1/docker -p

(3)拷贝相关数据

cp /var/lib/docker/* /mnt/usb1/docker -rpvb
mv /var/lib/docker/ /var/lib/docker.bak

(4)创建软链接

ln -s /mnt/usb1/docker /var/lib

(5)启动

systemctl daemon-reload
service docker restart

(6)验证

docker info

在列出的信息界面中的后面看到以下有以下信息,即迁移成功

Docker Root Dir: /mnt/usb1/docker

3. 更换docker源

创建或修改nano /etc/docker/daemon.json文件

nano /etc/docker/daemon.json

替换为以下内容

{

    "registry-mirrors" : [

    "https://registry.docker-cn.com",

    "http://hub-mirror.c.163.com",

    "https://docker.mirrors.ustc.edu.cn",

    "https://cr.console.aliyun.com",

    "https://mirror.ccs.tencentyun.com"

  ]

}

重启docker服务使配置生效:

systemctl daemon-reload
systemctl restart docker.service
4. 安装汉化版Portainer,方便管理docker项目
docker run -d \
--name=portainer-zh \
-p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
--restart=always \
6053537/portainer-ce

六、举例:部署部分docker服务

  1. alist--网盘神器(用armbian-software选择对应编号自动化安装)
  2. kodbox--可道云(用armbian-software选择对应编号自动化安
  3. qinglong--青龙面板(用armbian-software选择对应编号自动化安
  4. wiznote--为知笔记(私人笔记服务器,需手动添加容器,但占用RAM比较大,不太推荐在N1盒子部署)

七、特殊服务&LXC OpenWrt

在这里提供两种方式,第一种比较简单但涉及敏感词,部署成功后,n1盒子也会扮演一个透明网关。第二种是部署LXC容器版的openwrt,作为单网口旁路由与物理机几乎没区别。

1. ShellCr**h(此处省略)
export url='https://fastly.jsdelivr.net/gh/juewuy/ShellCrash@master' && wget -q --no-check-certificate -O /tmp/install.sh $url/install.sh  && bash /tmp/install.sh && source /etc/profile &> /dev/null
2. lxc openwrt

修改宿主机armbian系统网络配置

nano /etc/network/interfaces

替换为以下内容

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
        dns-nameservers 223.5.5.5
auto vmbr0
iface vmbr0 inet static
        address 10.10.10.66/24  # 根据自己的网络设定自行修改
        gateway 10.10.10.1      # 根据自己的网络设定自行修改
        bridge-ports eth0
        bridge-stp off
        bridge-fd 0

停用NetworkManager

systemctl stop NetworkManager
systemctl disable NetworkManager

重启网络服务

/etc/init.d/networking restart

注:完成这一步后,可以在命令行输入ip a命令查看所有网卡信息,确保里面有一个名称为vmbr0,即刚刚创建的虚拟桥接网卡的名字。如果没有,有可能是设置的ip与其他设备冲突了。当然有条件的在这一步可以粗暴地重启一下n1主机,再去查看一下。如果没有这个网卡,说明没有创建成功,后面启动lxc openwrt容器时也会报错。

安装lxc

apt install lxc
3. 上传LXC openwrt模板,修改LXC openwrt环境配置文件
  • 在 /var/lib/lxc 路径下创建名为“openwrt”的目录(openwrt该名字可以自定义,后期将是lxc 容器的名字)
mkdir /var/lib/lxc/openwrt
  • 接着在openwrt目录下创建名为rootfs的目录
mkdir /var/lib/lxc/openwrt/rootfs
4. 通过MobaXterm将下载好的lxc openwrt模板上传到 rootfs 目录下
  • 解压模板
cd /var/lib/lxc/openwrt/rootfs
tar -zxvf rootfs.tar.gz
  • openwrt目录下创建并修改config文件
nano /var/lib/lxc/openwrt/config
  • 添加以下内容
# Distribution configuration
lxc.include = /usr/share/lxc/config/common.conf
lxc.arch = aarch64
# Container specific configuration
lxc.apparmor.profile = generated
lxc.apparmor.allow_nesting = 1
lxc.rootfs.path = dir:/var/lib/lxc/openwrt/rootfs
lxc.uts.name = openwrt
# Network configuration eth0
lxc.net.0.type = veth
lxc.net.0.link = vmbr0
lxc.net.0.flags = up
# PPPoe 根据自身需求决定是否添加该项
lxc.cgroup2.devices.allow = c 108:0 rwm
lxc.mount.entry = /dev/ppp dev/ppp none bind,create=file
# TUN 根据自身需求决定是否添加该项
lxc.cgroup2.devices.allow = c 10:200 rwm
lxc.mount.entry = /dev/net/tun dev/net/tun none bind,create=file

Ctrl+X保存退出

5. 启动并完善LXC容器中的openwrt设置
  • 启动lxc-openwrt:lxc-start openwrt
  • 进入openwrt命令界面:lxc-attach openwrt
  • 修改openwrt lan口ip:nano /etc/config/network
  • 重启openwrt网络服务:/etc/init.d/network restart
    修改好ip后,即可登录OpenWrt后台
6. 修改umount配置,防止关闭lxc openwrt后再次手动启动时报错
nano /etc/rc.d/K90umount  # 该命令在LXC OpenWrt容器的命令行输入,非宿主机命令行

在编辑界面中去掉里面的 -r,保存退出

  • 退出LXC openwrt容器的命令行界面:exit
7. 为lxc openwrt配置自动启动
  • 编辑配置文件:nano /var/lib/lxc/openwrt/config
  • 在配置文件中添加:lxc.start.auto = 1,保存退出

八、安装PVE

说在前面

  • 安装PVE的优缺点:最大的的优点是有一个交互界面,方便创建、管理LXC项目;缺点是PVE自身占用的RAM空间有600MB-700MB,N1盒子安装完armbian系统后可用RAM为1.76G,如果再运行几个docker、LXC容器,RAM空间会吃紧。
    个人观点:总体上不太建议在N1盒子上安装PVE。
  • 当然也可根据自己实际情况进行斟酌
  • 安装方法比较简单,通过系统内置的armbian-soft命令安装,选择 308

安装过程中一般有两项需要确认:1.主机名称(保持默认即可);2.弹出一个窗口后,选第一个。

然后是比较漫长的安装过程。
默认登陆账户和密码即armbian系统的root账户及密码。

在此感谢网上各位大佬们无私放出的各类教程:
1.https://molezz.net/n1-debian-ubuntu-lxc-openwrt
2.https://github.com/cooip-jm/About-openwrt/wiki
3.https://www.right.com.cn/forum/thread-8253409-1-1.html
4.https://blog.8086k.cn/archives/88/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,245评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,749评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,960评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,575评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,668评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,670评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,664评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,422评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,864评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,178评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,340评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,015评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,646评论 3 323
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,265评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,494评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,261评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,206评论 2 352

推荐阅读更多精彩内容