OpenWrt 一键扩容

简介: 本教程提供OpenWrt x86平台根分区扩容方案,支持ext4/squashfs。含一键脚本自动执行(下载+配置+重启调整)及完整手动部署步骤,涵盖分区重调、文件系统扩展与升级持久化配置,操作安全可靠。

前言
网上扩容教程千千万,不如官方一根毛,一键脚本
前提得是 「x86」,ext4 或者 squashfs 都行
实操
自动化

安装软件包

opkg update
opkg install parted losetup resize2fs blkid

下载 expand-root.sh

wget -U "" -O expand-root.sh "https://openwrt.org/_export/code/docs/guide-user/advanced/expand_root?codeblock=0"

执行脚本(创建 /etc/uci-defaults/70-rootpt-resize 和 /etc/uci-defaults/80-rootpt-resize 文件,并将它们添加到 /etc/sysupgrade.conf 文件中,以便在系统升级后重新运行)

. ./expand-root.sh

调整根分区和文件系统大小(将调整分区大小,重启,调整文件系统大小,然后再次重启)

sh /etc/uci-defaults/70-rootpt-resize
手动
手动安装脚本(复制粘贴)

配置启动脚本

cat << "EOF" > /etc/uci-defaults/70-rootpt-resize
if [ ! -e /etc/rootpt-resize ] \
&& type parted > /dev/null \
&& lock -n /var/lock/root-resize
then
ROOT_BLK="$(readlink -f /sys/dev/block/"$(awk -e \
'$9=="/dev/root"{print $3}' /proc/self/mountinfo)")"
ROOT_DISK="/dev/$(basename "${ROOT_BLK%/}")"
ROOT_PART="${ROOT_BLK##
[^0-9]}"
parted -f -s "${ROOT_DISK}" \
resizepart "${ROOT_PART}" 100%
mount_root done
touch /etc/rootpt-resize

if [ -e /boot/cmdline.txt ]
then
NEW_UUID=blkid ${ROOT_DISK}p${ROOT_PART} | sed -n 's/.*PARTUUID="\([^"]*\)".*/\1/p'
sed -i "s/PARTUUID=[^ ]*/PARTUUID=${NEW_UUID}/" /boot/cmdline.txt
fi

reboot
fi
exit 1
EOF
cat << "EOF" > /etc/uci-defaults/80-rootfs-resize
if [ ! -e /etc/rootfs-resize ] \
&& [ -e /etc/rootpt-resize ] \
&& type losetup > /dev/null \
&& type resize2fs > /dev/null \
&& lock -n /var/lock/root-resize
then
ROOT_BLK="$(readlink -f /sys/dev/block/"$(awk -e \
'$9=="/dev/root"{print $3}' /proc/self/mountinfo)")"
ROOT_DEV="/dev/${ROOT_BLK##*/}"
LOOP_DEV="$(awk -e '$5=="/overlay"{print $9}' \
/proc/self/mountinfo)"
if [ -z "${LOOP_DEV}" ]
then
LOOP_DEV="$(losetup -f)"
losetup "${LOOP_DEV}" "${ROOT_DEV}"
fi
resize2fs -f "${LOOP_DEV}"
mount_root done
touch /etc/rootfs-resize
reboot
fi
exit 1
EOF
cat << "EOF" >> /etc/sysupgrade.conf
/etc/uci-defaults/70-rootpt-resize
/etc/uci-defaults/80-rootfs-resize
EOF
然后执行

安装软件包

opkg update
opkg install parted losetup resize2fs blkid

扩展根分区 / 文件系统

sh /etc/uci-defaults/70-rootpt-resize

相关文章
|
1月前
|
机器学习/深度学习 人工智能 JSON
AI 术语满天飞?90% 的人只懂名词,不懂为什么!
本文不堆砌概念,只讲前因后果:从大模型底层逻辑,到 Context、RAG、Function Calling、MCP、Skills 的核心关联,拆解所有面试高频考点,让你告别 “名词解释”,吃透原理,面试直接碾压面试官!
AI 术语满天飞?90% 的人只懂名词,不懂为什么!
|
应用服务中间件 nginx Windows
windows下面Nginx日志切割
windows下面Nginx日志切割
772 0
windows下面Nginx日志切割
|
9月前
|
编解码 网络协议 网络安全
OpenWrt x86 虚拟机VMware ESXi安装
OpenWrt x86 虚拟机VMware ESXi安装
|
1月前
|
人工智能 Linux API
保姆级OpenClaw(Clawdbot)部署手册:阿里云一键部署、本地部署、百炼API配置与避坑指南
OpenClaw(曾用名Clawdbot/Moltbot)是一款面向任务自动化与工具调用的开源AI智能体框架,支持通过自然语言完成文件处理、代码编写、数据分析、系统管理、信息检索等自动化操作,可在云端与本地环境稳定运行。2026年版本进一步优化了部署流程、模型兼容与国内网络适配,尤其完善了对阿里云轻量服务器与阿里云百炼大模型的原生支持。本文基于2026年最新版本,提供**零基础可直接复制执行**的阿里云部署、本地部署、阿里云百炼API配置流程,附带完整代码命令、服务管理指令与高频问题解决方案,不涉及其他云平台信息,满足新手快速搭建与稳定使用需求。
1156 2
|
1月前
|
缓存 项目管理 开发工具
UV实战教程,我啥要从Anaconda切换到uv来管理包?
本文对比Anaconda“手动挡”与uv“全自动挡”环境管理:uv以“项目即环境”为核心,支持`uv init`一键初始化、自动下载Python、智能依赖管理(`uv add/sync/run`)及PyCharm无缝对接,大幅提升Python开发效率与协作体验。(239字)
599 11
UV实战教程,我啥要从Anaconda切换到uv来管理包?
|
物联网 数据处理 持续交付
Docker适合哪些场景
【10月更文挑战第18天】Docker适合哪些场景