此方法扩容非 那个挂载的方式扩容,更可靠稳定。
opkg update
opkg install parted losetup resize2fs
参考
[OpenWrt 维基]扩展根分区和文件系统
新建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
支持和图像类型。ext4 squashfs
自动识别根分区和文件系统。
使用可用空间扩展根分区和文件系统。
通过固件升级保留脚本。
固件升级后自动运行。
首席执行这个sh,然后执行
sh /etc/uci-defaults/70-rootpt-resize
我刚开始执行的时候提示 readonly然后重启了,之后再执行没变化,执行/etc/uci-defaults/80-rootfs-resize 就提示不存在,
于是我
rm /etc/rootpt-resize
rm /etc/rootfs-resize
然后关闭 虚拟机然后pve给磁盘扩大,重启后发现生效了 。
![](https://img.haomeiwen.com/i2815884/35ebcdad1586dae1.png)
网友评论