Squashfs文件系统扩容
对于squashfs文件系统,扩容通常涉及到overlayfs的使用,以下是步骤:
1、创建新分区:使用fdisk或parted创建新分区。
2、格式化新分区:将新分区格式化为ext4文件系统。
3、挂载新分区:将新分区挂载到临时目录。
4、拷贝现有overlay文件:将/overlay目录下的文件复制到新分区。
5、设置overlay挂载点:在OpenWrt的Web界面中设置新的overlay挂载点。
6、重启OpenWrt:应用设置并重启。
7、验证扩容:使用df -h命令检查文件系统大小。
请注意,操作前建议备份重要数据,以防不测。如果你不熟悉这些步骤,建议在专业人士的指导下操作,或者在虚拟机环境中尝试,以避免丢失数据或损坏系统。
对于一键扩容的方法,OpenWrt官方文档提供了一个脚本,可以简化扩容操作:
下载并运行扩容脚本,重点应该是用reboot命令,不能拔电源:
wget -U "" -O expand-root.sh "https://openwrt.org/_export/code/docs/guide-user/advanced/expand_root?codeblock=0"
chmod +x expand-root.sh
./expand-root.sh
这个脚本会自动调整分区大小并重启系统。
执行完第一条之后,找到root/expand-root.sh文件打开,在第三行插入mount -o remount,rw /然后保存,继续执行后面两条命令就可以了。这样扩容问题和重启变只读问题就都解决了。
在if这行前面增加进去
# Configure startup scripts
cat << "EOF" > /etc/uci-defaults/70-rootpt-resize
mount -o remount,rw
if [ ! -e /etc/rootpt-resize ] \
这样的,不是替换,是增加一行
今天试了一下成功了,原因的重启要reboot,不能拔电源。
expand-root.sh 内容如下:
# Configure startup scripts
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
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
评论前必须登录!
注册