Hello! I was setting up my Beryl 7 and came across some errors adding filter lists to Adguard Home. Specifically, the error was that my “disk was full” and I was unable to add new lists. I did a bit of digging (with the help of Claude) and this was what the investigation revealed. I should note that I’ve never had any problem with this on either my Beryl 6 (MT-3000) or Flint 3 (BE9300) – so it seems unique to this device.
Findings
GL-iNet's AdGuard Home init script (/etc/init.d/adguardhome) contains a model-specific case block that creates a small loopback image file specifically for AGH filter storage on the MT3600BE:
case "$model" in
"mt3600be")
mount_filter_img 5M 2
;;
esac
This creates a 10MB ext4 image file at /etc/AdGuardHome/data.img, which is then mounted at /etc/AdGuardHome/data/filters/. With ext4 filesystem overhead, only about 8.5MB is usable — and it starts partially full. Any reasonably sized blocklist will push it over the limit.
Other routers don't have a matching case block and simply use the regular overlay filesystem, which has hundreds of MB free.
I was able to confirm this on my device with:
df -h /etc/AdGuardHome/data/filters
cat /sys/block/loop0/loop/backing_file
Workaround
- Edit the init script to increase the image size:
vi /etc/init.d/adguardhome
Change:
mount_filter_img 5M 2
To: (or something larger; e.g. 5M * 20 == 100MB as shown below
mount_filter_img 5M 20
This will create a 100MB image on next startup (5M * 20 == 100MB, but you can adjust as you see fit). This will leave plenty of room for multiple large filter lists. Check your underlying file system storage space to ensure you’ve got enough (for me, I had about 340MB free on a fresh out-of-the-box setup).
- Stop AGH, unmount the loop device, and delete the old image:
/etc/init.d/adguardhome stop
umount /etc/AdGuardHome/data/filters
rm /etc/AdGuardHome/data.img
- Start AGH again:
/etc/init.d/adguardhome start
The init script will detect that data.img is missing, recreate it at the new size, format it as ext4, mount it, and start AdGuard Home.
Note: Deleting data.img will wipe your existing filter list configuration, so you'll need to re-add your blocklists in the AGH interface afterwards. Back up /etc/AdGuardHome/config.yaml first if you want a reference.
To verify:
root@GL-MT3600BE:~# df -h /etc/AdGuardHome/
Filesystem Size Used Available Use% Mounted on
overlayfs:/overlay 354.3M 19.1M 330.5M 5% /
To GL-iNet Staff:
Is there a reason for the specific mt3600be case here, or is this a bug? If it’s intentional, 10MB is far too small for practical use and it should be increased by default or simply removed; letting it use the overlay filesystem like other routers.