Escaping the 14 MB Trap: Expanding Storage on a GL.iNet MT1300 (Beryl) with Extroot

The Basics

One of the first things you notice when using the GL.iNet MT1300 (Beryl) as more than a basic travel router is how fast you hit a wall:

14 MB free for configs, packages, logs, and plugins.

That’s not a bug — it’s how OpenWrt is designed on small embedded devices. The good news is that the MT1300 has a microSD slot, and OpenWrt has a battle-tested solution for this exact problem: extroot.

This post walks through a working, GL.iNet-compatible extroot setup that avoids the usual traps (NTFS/exFAT, late mounts, device-path failures).


The problem: why you only have ~14 MB

OpenWrt splits storage into layers:

  • /rom → read-only firmware
  • /overlay → writable space (configs, installed packages)
  • / → union filesystem (rom + overlay)

On the MT1300, /overlay lives on internal flash:

/dev/mtdblock6  ≈ 15 MB

That space cannot be expanded internally. Installing VPNs, ad-blocking, download tools, or even logs quickly exhausts it.


The solution: extroot (overlay on SD card)

Extroot moves /overlay from internal flash to external storage.

After extroot:

  • Internal flash still boots the router
  • The SD card becomes /overlay
  • You gain GBs of writable space
  • The router behaves exactly the same

If the SD card is missing, OpenWrt safely falls back to the internal overlay.


Requirements

  • GL.iNet MT1300 (Beryl)
  • microSD card (8 GB+ recommended)
  • Filesystem: ext4
  • SSH access
  • Stock GL.iNet firmware (OpenWrt-based)

Step 1: Format the SD card as ext4

Extroot does not work with NTFS or exFAT.

Insert the SD card and SSH into the router:

ssh root@192.168.8.1

Unmount the card if it’s auto-mounted:

umount /mnt/mmcblk0p1 2>/dev/null

Format it:

mkfs.ext4 /dev/mmcblk0p1

⚠️ This wipes the card.


Step 2: Install required packages

opkg update
opkg install block-mount kmod-fs-ext4 e2fsprogs

Step 3: Generate a proper fstab (critical)

Instead of hard-coding /dev/mmcblk0p1, use OpenWrt’s block system so the SD mounts early enough during boot.

block detect > /etc/config/fstab

Edit the file:

vi /etc/config/fstab

You’ll see an entry similar to:

config mount
option target '/mnt/mmcblk0p1'
option uuid 'XXXX-XXXX'
option fstype 'ext4'
option enabled '1'

Step 4: Convert that entry into extroot

Change the block to:

config mount
option target '/overlay'
option uuid 'XXXX-XXXX'
option fstype 'ext4'
option enabled '1'
option enabled_fsck '1'

Why UUID matters:
Device paths can change during early boot. UUID ensures the overlay mounts reliably before /overlay initializes.


Step 5: Copy your existing overlay

Mount the SD card temporarily:

mkdir -p /mnt/sd
mount /dev/mmcblk0p1 /mnt/sd

Copy everything from the current overlay (preserves permissions and symlinks):

tar -C /overlay -cvf - . | tar -C /mnt/sd -xvf -

Unmount it again:

umount /mnt/sd

Step 6: Enable fstab and reboot

/etc/init.d/fstab enable
reboot

Do not remove the SD card after this point.


Step 7: Verify success

After reboot, SSH back in and run:

df -h

What success looks like

/dev/mmcblk0p1   115G   200M   110G   /overlay
overlayfs:/overlay

What failure looks like

/dev/mtdblock6   15M    1M     14M    /overlay

If you see the second output, extroot didn’t activate (usually due to filesystem type or incorrect fstab entries).


Why this works

  • ext4 supports permissions, symlinks, and overlay semantics
  • block detect ensures the mount happens early
  • UUID-based mounting avoids race conditions at boot
  • The internal flash remains untouched and bootable

What this unlocks

With extroot enabled, the MT1300 can comfortably run:

  • AdGuard Home
  • aria2 / rtorrent
  • VPN stacks + extras
  • Samba / media storage
  • Heavy logging
  • Home Assistant helpers
  • “Travel server” setups

All without worrying about storage again.


Final notes

  • Use a reliable SD card (SanDisk / Samsung)
  • Avoid hot-removal after extroot is active
  • ext4 is non-negotiable
  • Journaled filesystem makes power loss safe for travel use

Leave a Reply

Your email address will not be published. Required fields are marked *