问题:
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
完美搞定。网上一大堆文章全是垃圾。