# OpenWRT 24.10.0 Extroot on XE-300

## 1. Insert card & install required packages

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

block-mount - block info, fstab handling, extroot logic
kmod-fs-ext4 - kernel driver for ext4 filesystem
kmod-usb-storage -  makes the SD slot show up as /dev/sda
e2fsprogs - provides mkfs.ext4

## 2. Confirm the SD card is /dev/sda and /dev/sda1

Check dmesg:

dmesg | grep -i sd


Sample Output:
sd 0:0:0:0: [sda] 1000005632 512-byte logical blocks: (512 GB/477 GiB)
sda: sda1
sd 0:0:0:0: [sda] Attached SCSI removable disk


## 3. Format /dev/sda1 as ext4 for extroot
mkfs.ext4 -L extroot /dev/sda1

You should see output ending with success and a UUID.

## 4. Grab the UUID and create the extroot fstab entry
UUID=$(block info | awk -F\" '/sda1/ {print $2}')
echo $UUID

Sample UUID output:

4851f00e-696b-47d3-a529-82c2aca292db

Now write the minimal extroot config using uci:

uci set fstab.extroot="mount"
uci set fstab.extroot.uuid="$UUID"
uci set fstab.extroot.target="/overlay"
uci set fstab.extroot.fstype="ext4"
uci set fstab.extroot.enabled="1"
uci commit fstab

Sanity-check the file:

cat /etc/config/fstab

Sample output:

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

config mount 'extroot'
    option uuid '4851f00e-696b-47d3-a529-82c2aca292db'
    option target '/overlay'
    option fstype 'ext4'
    option enabled '1'


## 5. Reboot into extroot

reboot

Wait for the router to come back up, then SSH in again.

## 6. Verify that the SD card is now your root overlay

df -h

Expected output:

Filesystem           Size  Used Available Use% Mounted on
/dev/root            4.0M  4.0M        0 100% /rom
tmpfs                58.7M  200.0K    58.5M  0% /tmp
/dev/sda1           468.3G  2.1M     444.4G  0% /overlay
overlayfs:/overlay  468.3G  2.1M     444.4G  0% /


Explanation:

/dev/root at /rom → read-only squashfs from flash
/dev/sda1 at /overlay → SD card is the writable layer
overlayfs:/overlay on / → full rootfs = ROM + SD overlay
You now have a 468 GB OpenWrt box.

No /rwm mount
No copy of internal overlay
This is a clean, SD-only overlay setup.