安装OpenWrt后squashfs扩容overlay的方法

问题:

128G的SD卡刷入openwrt后发现可用空间不足100M(我用的squashfs固件,ext4也存在同样的问题,但能否用此方法需要自己尝试一下)。

root@OpenWrt:~# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 5.0M      5.0M         0 100% /rom
tmpfs                   928.4M     64.0K    928.4M   0% /tmp
/dev/loop0               87.3M      3.3M     77.1M   4% /overlay
overlayfs:/overlay       87.3M      3.3M     77.1M   4% /
/dev/mmcblk0p1        63.9M     17.7M     46.2M  28% /boot
tmpfs                   512.0K         0    512.0K   0% /dev

其它空间用不了,随便装几个软件就会出现空间满的问题。

解决:

1 先安装必要工具:

opkg install blkid fdisk resize2fs

2 再fdisk分区:

fdisk /dev/mmcblk0
输入p先查看原有/dev/mmcblk0p2的起始位置(我的是147456)
输入d 回车 3 删除mmcblk0p3分区(如果有做这一步,如果没有不需要)
输入d 回车 2 删除mmcblk0p2分区
输入n 回车 新建一个分区,开始位置需与原来的mmcblk0p2一致(这里是147456)
root@OpenWrt:~# fdisk /dev/mmcblk0

Welcome to fdisk (util-linux 2.39).
Changes will remain in memory only, until you decide to write them. 
Be careful before using the write command.
This disk is currently in use - repartitioning is probably a bad idea. It's recommended to umount all file systems, and swapoff all swap partitions on this disk.

Command (m for help): p
Disk /dev/mmcblk0: 119.08 GiB, 127865454592 bytes, 249737216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x5452574f
Device         Boot  Start       End   Sectors   Size Id Type
/dev/mmcblk0p1 *      8192    139263    131072    64M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      147456    360447    212992   104M 83 Linux
/dev/mmcblk0p3      360448 249737215 249376768 118.9G 83 Linux

Command (m for help): d
Partition number (1-3, default 3): <----如果没有这个分区不需要删。这里删了它,是为了后面合入2做准备!
Partition 3 has been deleted.

Command (m for help): d
Partition number (1,2, default 2): <----先把2分区删了,后面会加回来的,主要是为了修改End区的值。
Partition 2 has been deleted.

Command (m for help): n
Partition type
    p   primary (1 primary, 0 extended, 3 free)
    e   extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (2-4, default 2): First sector (2048-249737215, default 2048): 147456 <----这个值一定要用上面mmcblk0p2的原始值,后面就直接回车
Last sector, +/-sectors or +/-size{K,M,G,T,P} (147456-249737215, default 249737215):
Created a new partition 2 of type 'Linux' and of size 119 GiB.
Partition #2 contains a squashfs signature.
Do you want to remove the signature? [Y]es/[N]o: N <----注意这里选No!!!

Command (m for help): w  <----保存
The partition table has been altered. Syncing disks.

3 重启:

reboot

4 重启后resize2fs -f /dev/loop0调分区:

root@OpenWrt:~# df -h  <----先查看,没有变
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 5.0M      5.0M         0 100% /rom
tmpfs                   928.4M     64.0K    928.4M   0% /tmp
/dev/loop0               87.3M      3.3M     77.1M   4% /overlay
overlayfs:/overlay       87.3M      3.3M     77.1M   4% /
/dev/mmcblk0p1           63.9M     17.7M     46.2M  28%
/boot tmpfs                   512.0K         0    512.0K   0% /dev
root@OpenWrt:~# resize2fs -f /dev/loop0    <----调整
resize2fs 1.47.0 (5-Feb-2023)
Filesystem at /dev/loop0 is mounted on /overlay; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 953
The filesystem on /dev/loop0 is now 124789824 (1k) blocks long.

再查看,生效:

root@OpenWrt:~# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 5.0M      5.0M         0 100% /rom
tmpfs                   928.4M     64.0K    928.4M   0% /tmp
/dev/loop0              111.9G      3.3M    107.1G   0% /overlay
overlayfs:/overlay      111.9G      3.3M    107.1G   0% /
/dev/mmcblk0p1           63.9M     17.7M     46.2M  28% /boot
tmpfs                   512.0K         0    512.0K   0% /dev

完美搞定。网上一大堆文章全是垃圾。

树莓派刷入OpenWrt后squashfs扩容overlay的方法_路由squashfs固件扩容方式-CSDN博客

Leave a Comment