本帖最后由 aming.ou 于 2024-10-1 08:55 编辑
Squashfs文件系统扩容对于squashfs文件系统,扩容通常涉及到overlayfs的使用,以下是步骤: 创建新分区:使用fdisk或parted创建新分区。 格式化新分区:将新分区格式化为ext4文件系统。 挂载新分区:将新分区挂载到临时目录。 拷贝现有overlay文件:将/overlay目录下的文件复制到新分区。 设置overlay挂载点:在OpenWrt的Web界面中设置新的overlay挂载点。 重启OpenWrt:应用设置并重启。 验证扩容:使用df -h命令检查文件系统大小。
请注意,操作前建议备份重要数据,以防不测。如果你不熟悉这些步骤,建议在专业人士的指导下操作,或者在虚拟机环境中尝试,以避免丢失数据或损坏系统。 对于一键扩容的方法,OpenWrt官方文档提供了一个脚本,可以简化扩容操作:
bash
- 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
复制代码 这个脚本会自动调整分区大小并重启系统
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
复制代码
|