Extroot does not work on Slate 7

I have been trying to get Extroot to work on a Slate 7 router running 4.8.1(newest firmware as of this writing).

It seems as if the boot order in the GL.iNet custom kernel does not allow this to work.

I am using the following config

root@GL-BE3600:~# uci show fstab
fstab.@global[0]=global
fstab.@global[0].anon_swap='0'
fstab.@global[0].anon_mount='1'
fstab.@global[0].auto_swap='1'
fstab.@global[0].auto_mount='1'
fstab.@global[0].delay_root='5'
fstab.@global[0].check_fs='0'
fstab.extroot=mount
fstab.extroot.uuid='4d9409af-2236-4d22-996b-c7ecc257609f'
fstab.extroot.target='/overlay'
fstab.extroot.enabled='1'

We can see in the log that it does attempt to mount the extroot but the device is not yet present

Thu Jan 15 16:04:22 2026 user.err kernel: [ 16.421414] block: extroot: cannot find device with UUID 4d9409af-2236-4d22-996b-c7ecc257609f

Later in the boot process we see USB devices are discovered and enumerated

Thu Jan 15 16:04:22 2026 kern.info kernel: [   23.325275] hub 1-0:1.0: USB hub found
Thu Jan 15 16:04:22 2026 kern.info kernel: [   23.330807] hub 1-0:1.0: 1 port detected
Thu Jan 15 16:04:22 2026 kern.info kernel: [   23.336674] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
Thu Jan 15 16:04:22 2026 kern.info kernel: [   23.338419] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2
Thu Jan 15 16:04:22 2026 kern.info kernel: [   23.343767] xhci-hcd xhci-hcd.0.auto: Host supports USB 3.0 SuperSpeed
Thu Jan 15 16:04:22 2026 kern.info kernel: [   23.351352] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
Thu Jan 15 16:04:22 2026 kern.info kernel: [   23.358477] hub 2-0:1.0: USB hub found
Thu Jan 15 16:04:22 2026 kern.info kernel: [   23.366192] hub 2-0:1.0: 1 port detected
Thu Jan 15 16:04:22 2026 kern.info kernel: [   23.778949] scsi host0: uas
Thu Jan 15 16:04:22 2026 kern.notice kernel: [   23.786425] scsi 0:0:0:0: Direct-Access      USB      SanDisk 3.2Gen1 1.00 PQ: 0 ANSI: 7
Thu Jan 15 16:04:22 2026 kern.notice kernel: [   23.791230] sd 0:0:0:0: [sda] 240328704 512-byte logical blocks: (123 GB/115 GiB)
Thu Jan 15 16:04:22 2026 kern.notice kernel: [   23.796351] sd 0:0:0:0: [sda] Write Protect is off
Thu Jan 15 16:04:22 2026 kern.debug kernel: [   23.803329] sd 0:0:0:0: [sda] Mode Sense: 43 00 00 00
Thu Jan 15 16:04:22 2026 kern.notice kernel: [   23.803771] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
Thu Jan 15 16:04:22 2026 kern.info kernel: [   23.823137]  sda: sda1

If we try to increase delay_root to 20 to give more time for hardware to be detected it does not help

Thu Jan 15 16:08:50 2026 user.err kernel: [   31.494880] block: extroot: cannot find device with UUID 4d9409af-2236-4d22-996b-c7ecc257609f
...
Thu Jan 15 16:08:50 2026 kern.info kernel: [   38.305970] hub 1-0:1.0: USB hub found
Thu Jan 15 16:08:50 2026 kern.info kernel: [   38.312894] hub 1-0:1.0: 1 port detected
Thu Jan 15 16:08:50 2026 kern.info kernel: [   38.338734] hub 2-0:1.0: USB hub found
Thu Jan 15 16:08:50 2026 kern.info kernel: [   38.346505] hub 2-0:1.0: 1 port detected
...
Thu Jan 15 16:08:50 2026 kern.info kernel: [   38.777910] scsi host0: uas
Thu Jan 15 16:08:50 2026 kern.notice kernel: [   38.779842] scsi 0:0:0:0: Direct-Access      USB      SanDisk 3.2Gen1 1.00 PQ: 0 ANSI: 7
Thu Jan 15 16:08:50 2026 kern.notice kernel: [   38.783827] sd 0:0:0:0: [sda] 240328704 512-byte logical blocks: (123 GB/115 GiB)
Thu Jan 15 16:08:50 2026 kern.notice kernel: [   38.788870] sd 0:0:0:0: [sda] Write Protect is off
Thu Jan 15 16:08:50 2026 kern.debug kernel: [   38.795597] sd 0:0:0:0: [sda] Mode Sense: 43 00 00 00
Thu Jan 15 16:08:50 2026 kern.notice kernel: [   38.796102] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
Thu Jan 15 16:08:50 2026 kern.info kernel: [   38.816670]  sda: sda1
Thu Jan 15 16:08:50 2026 kern.notice kernel: [   38.818662] sd 0:0:0:0: [sda] Attached SCSI removable disk

All we have done is push back the boot process but the GL.iNet custom kernel does not attempt to discover USB hardware till after extroot fails.

I have been using this process for many years and this still works as expected in the vanilla open source builds of openWRT.

Does GL.iNet intend to fix this so the boot order permits using external fs as the overlay root?

Thank you.

It appears this is a known issue within the upstream OpenWRT project and will require a fix from their side.

You can track the progress here:

In the meantime, you might want to try a workaround by adding the following content to your /etc/rc.local file. Please ensure you insert it before the exit 0 line:

export PREINIT=1
mount_root

image

It is there any update about this topic? The best I can reach is below: the overlay looks good but the actual of space no expanded.

/dev/ubi0_3 62.0G 31.5M 58.8G 0% /overlay
overlayfs:/overlay 340.9M 80.9M 255.3M 24% /

Hi

Have you tried the rc.local method suggested in this post?
In our environment, this method seems to work fine.

I put like this then it works fine.

root@GL-BE3600:~# cat /etc/rc.local

Put your custom commands here that should be executed once

the system init finished. By default this file does nothing.

export PREINIT=1
mount_root

. /lib/functions/gl_util.sh
remount_ubifs

echo 3 > /proc/sys/vm/drop_caches
exit 0
root@GL-BE3600:~# df -h
Filesystem Size Used Available Use% Mounted on
/dev/mtdblock18 94.8M 94.8M 0 100% /rom/rom
tmpfs 443.6M 1.7M 441.9M 0% /tmp
/dev/ubi0_3 326.9M 21.1M 301.1M 7% /rom/overlay
overlayfs:/overlay 326.9M 21.1M 301.1M 7% /rom
tmpfs 512.0K 4.0K 508.0K 1% /dev
/dev/mtdblock16 5.8M 5.8M 0 100% /rom/lib/firmware/IPQ5332/WIFI_FW
/dev/sda1 853.5G 289.5G 520.5G 36% /tmp/mountd/disk1_part1
/dev/sda2 62.0G 36.4M 58.8G 0% /overlay
overlayfs:/overlay 62.0G 36.4M 58.8G 0% /
root@GL-BE3600:~#

1 Like

Summery the key steps like this:

1.etc/rc.local

export PREINIT=1
mount_root

2.vi /etc/config/fstab

config global
option anon_swap '0'
option anon_mount '0'
option auto_swap '1'
option auto_mount '1'
option delay_root '60'
option check_fs '0'

config mount
option target '/overlay'
option uuid 'xxxxx'
option fstype 'ext4'
option options 'rw,noatime'
option enabled '1'
option enabled_fsck '1

3.Copy overylay into the USB

4.Reboot

1 Like