newifi_D2_新3_lede_扩容overlay_装可道云
转载注明来源: 本文链接 来自osnosn的博客,写于 2021-09-17.
参考
- 官方文档【Extroot configuration】,感觉较复杂,阅读吃力。
- 【软路由LEDE折腾overlay分区扩容之路】
- 参考价值高:【Openwrt的Overlay 文件系统是什么?如何扩容增加可用空间】
其他文章
- 虚拟机映像扩容,见【openwrt_21.02_img_空间扩容_改分区表大小】
设备情况
- newifi D2 (新3路由器),有不死 breed,刷了 LEDE。overlay 剩余空间 5MB。
- 买了个 32GB 的 U 盘,插上去,openwrt 识别为 sda, sda1 。sda1 是 vfat 格式(win格式化的)。
- 如果是官方版openwrt,不识别U盘,需要
opkg install block-mount kmod-fs-ext4 kmod-usb-storage
选装kmod-sdhci(SD卡支持) kmod-usb2 kmod-usb3 kmod-fs-vfat
如果还不行,再试试kmod-usb-ohci kmod-usb-uhci kmod-scsi-generic e2fsprogs blkid
- 如果是官方版openwrt,不识别U盘,需要
- 挂载在 /mnt/sda1
- 修改 /etc/opkg.conf 中,改
option rootfs_overlay /overlay
为option rootfs_overlay /mnt/sda1
软件包界面,看到剩余空间变大。但实际安装软件包,还是装到仅有5MB的overlay中,很快就满了。导致任何配置的修改,都无法保存。只能恢复出厂设置。
扩容 overlay, 其实是用U盘空间替换原来的 overlay (成功)
- 不修改
/etc/opkg.conf
。 U盘格式化为 ext4, 作为新的 overlay 分区。 - fdisk 创建磁盘 sda1。通常 U盘可以正常使用,就无需重新分区。除非你想再分出一个 swap 区。
- 如果没有 fdisk 指令,安装
opkg install fdisk
- 如果没有 fdisk 指令,安装
mkfs.ext4 /dev/sda1
格式化 sda1 分区,为 ext4 文件系统格式- 如果没有 mkfs.ext4 指令,安装
opkg install e2fsprogs
- 或者不格式化。挂载后只删除U盘中 upper 和 work 两个目录。
- 如果没有 mkfs.ext4 指令,安装
mount /dev/sda1 /mnt/sda1
将sda1分区挂载到目录cp -r /overlay/* /mnt/sda1
将overlay内容拷贝到sda1- 因为要替换原来的 overlay,所以要把内容全部 copy 过来。
- 在openwrt的web管理界面, 挂载sda1分区, 用途为"overlay使用", 并启用。
- openwrt WEB管理界面 --> 系统 --> 挂载点,
编辑挂载点,勾上"启用此挂载点",挂载点选"作为外部overlay使用",点击“保存&应用"。
提交后,web界面上看,似乎没挂上。 不理他,直接重启整个路由。
- openwrt WEB管理界面 --> 系统 --> 挂载点,
- 重启openwrt后查看,软件空间已扩容。
- 发现原来的 overlay 挂载在
/mnt/mtdblock6
。U盘挂载为 overlay。软件包页面显示,空间变大了。
- 发现原来的 overlay 挂载在
装可道云
- (nginx,php7配置ok。安装kodbox成功,但不能上传文件。安装kodExplorer失败。)
- tencent源似乎不稳定,
- 原为
src/gz openwrt_core https://mirrors.cloud.tencent.com/lede/snapshots/targets/ramips/mt7621/packages
改为src/gz openwrt_core https://mirrors.ustc.edu.cn/lede/snapshots/targets/ramips/mt7621/packages
- 换源,批量修改:
sed -i 's/mirrors.cloud.tencent.com/mirrors.ustc.edu.cn/g' /etc/opkg/distfeeds.conf
- 原为
opkg install nginx
可道云要 nginx 支持。安装失败,则用opkg --force-overwrie install nginx
不装这行,不替换uhttpd了。"opkg install nginx-mod-luci" openwrt的web配置界面,用nginx替换uhttpd。避免端口冲突。
修改/etc/config/nginx
中的 80口,改为88。(与uhttpd不冲突即可)
执行/etc/init.d/nginx restart
,或者在web界面的"启动项"中,重启 nginx。- nginx 修改端口在
/etc/config/nginx
。缺省为 80 443。
修改root路径在/etc/nginx/uci.conf.template
。缺省为root=/www;
- uhttpd 修改端口在
/etc/config/uhttpd
。缺省为 80。 - php7-fpm 修改 doc_root 在
/etc/php.ini
。缺省为doc_root="/www"
。或者注释掉这行。 opkg install php7-fpm
可道云要 php7.3 以上的支持。
opkg install php7-mod-pdo php7-mod-pdo-sqlite php7-mod-sqlite3
打算不使用mysql,使用sqlite3。
opkg install php7-mod-gd php7-mod-iconv php7-mod-json php7-mod-mbstring php7-mod-curl php7-mod-xml
opkg install php7-mod-session
没这个,数据库管理后台进不去。- php7-fpm 缺省在
/var/run/php7-fpm.sock
上监听。
php7-fpm 缺省以 nobody 身份执行。
- php7-fpm 缺省在
- 创建以下几个配置文件。
# file: /etc/nginx/php7-fpm.conf
location ~ .php(?:$|/) {
fastcgi_pass unix:/var/run/php7-fpm.sock;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+?.php)(/.*)$;
try_files $fastcgi_script_name =404;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info if_not_empty;
include fastcgi_params;
}
.
# file: /etc/nginx/conf.d/kod.locations
location /kod{
allow all;
index index.php index.htm index.html;
include php7-fpm.conf;
}
- 搞不明白 location 中, 有 php-fpm 时, root 或 alias 的配置项的效果。所以还是使用 symbolic links 算了。
mkdir /overlay/kod
ln -s /overlay/kod /www/kod
- 去可道云官网下载源码,copy到openwrt的
/overlay/kod/
目录中,解压。- openwrt 中有 unzip 命令可以解压 .zip,如果没有
opkg install unzip
- 不要 kodbox,要下载个人使用的 kodExplorer。(kodbox安装后,无法使用,不能上传文件。)
- openwrt 中有 unzip 命令可以解压 .zip,如果没有
- 权限设置,让 php-fpm 可以访问,
chown -R nobody /overlay/kod
- 用浏览器,访问
http://路由器的IP/kod/
开始安装可道云。根据提示一步一步安装。
(实际访问时,返回空白页面,无法进入安装,不知道少了什么组件)- 数据选择 sqlite3 或者 pdo + sqlite3 (新3就不跑 MariaDB-10 这么重的应用了)
转载注明来源: 本文链接 https://www.cnblogs.com/osnosn/p/15303262.html
来自 osnosn的博客 https://www.cnblogs.com/osnosn/ .