openwrt进阶篇,怎样在线云编译,怎样扩容,怎样安装docker

 本博客视频

一、前言

本期视频主要讲解怎样在官网进行在线云编译openwrt,怎样对下载的固件映像本身进行扩容,怎样对已经正在运行的openwrt系统进行扩容,怎样安装docker,怎样自定义docker根目录安装位置。

本期视频是我上期视频的延续,上期视频主要讲解怎样用最简单的方法打造一个自己专属的简洁高效安全的openwrt系统以及怎样设置旁路网关并解决使用主路由wifi通过旁路网关不能访问国内网站的问题。 上期视频讲到的概念和知识点本期不再重复,没有看过我的上期视频的朋友可以点击下面链接观看。

openwrt基础篇 

二、编译固件的两种主要方法

1、代码级编译

优点:可以对固件进行极限自定义。

缺点:

a、门槛太高,非职业程序员就不要想了,新手朋友可能连合格的编译环境都无法自己搭建。

b、对电脑硬件要求高,耗时长,通常5、6个小时起步。

c、易出错,编译十几个小时最后只出个错误代码是家常便饭。

2、利用imagebuilder进行编译,主要有三种方式。

a、本地用linux系统创建imagebuilder编译环境进行编译。门槛不是很高,但要求使用者对linux系统有一定的了解。

b、 利用github的action进行编译。github提供了编译环境,但依然需要自己编写脚本进行编译。

c、最简单的方式:官网在线云编译。可以像搭积木一样把需要的软件包放进去,当然也可以把不需要的软件包从基础固件里面删除掉。有一定编程基础的朋友也可以自定义启动脚本。

下面用上个视频用到的immortalwrt做演示,把我们上次从软件仓库安装的刚需插件直接编译进固件。

immortalwrt官网链接

上个视频用到的刚需插件:

汉化软件仓库:luci-i18n-package-manager-zh-cn

汉化防火墙:luci-i18n-firewall-zh-cn

argon主题:luci-i18n-argon-config-zh-cn

常用科学上网插件:

luci-i18n-passwall-zh-cn

luci-app-openclash

luci-i18n-homeproxy-zh-cn

每个软件包名用空格隔开,直接粘贴进去。

luci-i18n-package-manager-zh-cn luci-i18n-firewall-zh-cn luci-i18n-argon-config-zh-cn luci-i18n-passwall-zh-cn luci-app-openclash luci-i18n-homeproxy-zh-cn

上面的软件可以根据需求自行添加。如果不知道软件名称,可以在下面的软件镜像仓库搜索和查询。

软件镜像仓库

三、固件扩容。

squashfs文件系统格式是可恢复文件系统格式,推荐大家使用。下面以squashfs文件格式为例进行演示。

务必注意:以下扩容方法不适用于ext4文件格式!!!

1、 固件映像本身进行扩容

前面编译进刚需插件的原始固件总容量不到250M,使用了20%

 A、扩容环境:安装了必要插件的linux系统

考虑到大多数朋友可能没有linux系统,这里采用istoreos来演示, istoreos本身就是linux,而且具备我们需要的插件。如果大家没在使用istoreos,可以下载一个安装在虚拟机或者u盘上临时使用。

istoreos官网

B、在把映像上传到istoreos之前,最好在istoreos上新建一个分区,挂载为一个单独的目录。

注意:我的istoreos是安装在一个32G的u盘上面的,后面有很多剩余空间,如果istoreos安装在虚拟机上,可以新建一个磁盘。

步骤:

a、进入istoreos首页,点击系统根目录后面的三个点

b、点击未分区后面的分区并格式化

c、完成后,记住左下的目录名,后面要用到。每个人的不一样,我的是/mnt/usb1_6-5

C、进入文件管理,进入刚才新建的目录,上传映像。

注意:文件上传以前最好把文件名改短一点,便于后面操作。比如:我把映像压缩包名字改为immortalwrt.img.gz 

D、进入终端并登录(用户名:root,密码就是登录istoreos的密码),按照以下步骤扩容。

a、进入刚才新建的目录(目录名改为自己的目录名)

cd  /mnt/usb1_6-5

b、解压缩(文件名也要改为自己的文件名)

gzip -kd immortalwrt.img.gz

c、给img镜像末尾填充1GB空数据,bs=1M表示单位,count=1000 表示1000个1M就是1G,这个数字大家可以根据需要随意修改。

dd if=/dev/zero bs=1M count=1000 >> immortalwrt.img

d、为了将空间真正赋予具体的分区,使用分区工具parted操作映像。这条指令执行时间很长,一定要耐心等到终端上出现(parted),才能执行后面的指令。

parted immortalwrt.img

 e、查看分区情况。注意:如果映像为efi启动格式的话,中间会有两次提示,按要求回答OK和Fix即可。

print

f、调整分区大小,将第 2 个分区扩展至映像文件的 100%

resizepart 2 100%

g、再次查看分区情况。正常情况下这时第二个分区会增加1G容量

print

h、退出分区工具

quit

i、把映像重新压缩为gz格式(压缩之前要把之前上传的旧的映像压缩包删除)

gzip -k immortalwrt.img

F、下载扩容后的映像压缩包,从下图可以看到,扩容后的总容量已变为1.22G。

2、固件运行中扩容

a、配置openwrt网络,使其可以正常联网。

b、进入软件仓库,安装 diskman工具。

软件包名称:luci-i18n-diskman-zh-cn 

c、在系统菜单下挂载点中设置,禁用“自动挂载”相关选项。图中三个勾全部去掉

d、在系统菜单下磁盘管理中找到安装openwrt的磁盘,点击编辑,创建一个2G的新分区(根据自己的需求调整大小),并将其格式化为 ext4 文件系统。

e、在系统菜单下挂载点中点击添加,将新分区挂载为/mnt/sda3。

注:sda3是我按照通用规则起的名字,大家可以随意修改,但是必须和后面的拷贝命令对应上。

f、可选:安装ftp服务, 可在SSH软件中查看openwrt的目录和文件。

软件包名:openssh-sftp-server

g、用任意SSH软件连接openwrt后执行下面命令,将原overlay下的文件拷贝至新分区,执行后没报错表示拷贝成功。如果安装了ftp服务,可以进入/mnt/sda3目录查看一下。

cp -r /overlay/* /mnt/sda3

h、删除刚刚的/mnt/sda3 挂载

i、将新分区重新挂载为overlay

j、重启openwrt

四、安装docker

1、可选:修改docker根目录位置。docker根目录默认是安装在overlay目录下面:/overlay/upper/opt/docker。就像我建议在使用windows的时候系统盘和数据盘一定要分开一样,我也强烈建议大家新建一个磁盘分区作为docker根目录。

a、在系统菜单下磁盘管理中找到安装openwrt的磁盘,点击编辑,创建一个3G的新分区(根据自己的需求调整大小),并将其格式化为 ext4 文件系统。

b、在系统菜单下挂载点中点击添加,将新分区挂载为/opt/docker。

注意:必须是这个名字。

2、进入软件仓库,安装 dockerman工具。

软件包名称:luci-i18n-dockerman-zh-cn

3、出现下图错误,不用担心,是因为docker比较大,浏览器连接超时,实际上安装程序还在后台运行。

 
 
4、出现上面提示后,耐心等待大约5分钟,等待安装程序完成,然后重启openwrt,就可以看到docker已经安装好了。

评论