入手了一个支持 OpenWrt 的路由器,并且支持了 OpenWrt 官方的固件,官方的固件可玩性不大,于是便刷到了原生的 OpenWrt 固件,但是由于机器的存储只有 128MB 在刷完固件之后留给插件的空间就剩下了 45MB,几乎丧失了可玩性。
由于这个机器有一个 USB 3.1 的借口,便想着是不是可以使用 U 盘对可用空间进行扩容,经过到网上进行搜索和自己的尝试,将网上的内容进行了整合形成了这篇内容。
如果要对 overlay 进行扩容需要进行一下几步:
- 安装需要用到的插件。
- 格式化 sda1 分区(主分区)。
- 挂载 sda1 到 /mnt 目录。
- 拷贝 /overlay 目录下的所有内容到 sda1 中。
- 更新 fstab,使用 sda1 的 overlay 进行系统的启动。
opkg update
opkg install block-mount kmod-usb-storage kmod-usb-storage-uas kmod-fs-ext4 e2fsprogs cfdisk
mkfs.ext4 /dev/sda1
mount -t ext4 /dev/sda1 /mnt
cp /overlay/* /mnt -a
umount /mnt
block detect > /etc/config/fstab
uci set fstab.@mount[0].target='/overlay'
uci set fstab.@mount[0].enabled='1'
uci commit fstab
reboot
由于 sda1 是原始 overlay 的一个拷贝,那么在使用 sda1 中的 overlay 运行的过程中出现了什么问题,可以拔掉 u 盘重启,就会启动到原来的 overlay,此时在插入 u 盘,重新执行上面的操作就能将系统原来的 overlay。
如果不想拔掉 u 盘恢复到原来的 overlay,此时需要知道原来的 overlay 在什么盘的分区,在确定之后可以执行下面的命令,其中 ubi0_2 为原始 overlay 的分区。
rm -rf /overlay/*
mount -t ubifs -o ro /dev/ubi0_2 /mnt/original_overlay
cp -a /mnt/original_overlay/* /overlay/
reboot
对 swap 进行扩容(如果 ram 的大小是 512MB 及以上并不推荐设置 swap)
对 swap 进行扩容并不建议在 u 盘上面创建一个 sda2 然后格式化为 swap 分区的方法,推荐使用 zram 的方法。
安装完成之后在 System -> System -> ZRam Settings 中设置 zram 的大小和压缩算法。
opkg update
opkg install kmod-zram zram-swap
swapon -s
cat /sys/block/zram0/comp_algorithm
cat /sys/block/zram0/disksize