Extroot: cannot find device with UUID

Hi,
I configured Extroot based on this Wiki article.

However after reboot the USB device is not mounted.

Here's some output for troubleshooting:

root@eddie:~# block info
/dev/mtdblock8: UUID="bd699133-53e1f799-8bcf4b95-ea59fe6e" VERSION="4.0" MOUNT="/rom" TYPE="squashfs"
/dev/mtdblock9: MOUNT="/overlay" TYPE="jffs2"
/dev/sda1: UUID="2f7a4335-5bd2-4e09-9463-c197a92e0c68" VERSION="1.0" TYPE="ext4"
root@eddie:~# uci show fstab
fstab.@global[0]=global
fstab.@global[0].anon_swap='0'
fstab.@global[0].anon_mount='0'
fstab.@global[0].auto_swap='1'
fstab.@global[0].auto_mount='1'
fstab.@global[0].check_fs='0'
fstab.@global[0].delay_root='15'
fstab.rwm=mount
fstab.rwm.device='/dev/mtdblock9'
fstab.rwm.target='/rwm'
fstab.overlay=mount
fstab.overlay.uuid='2f7a4335-5bd2-4e09-9463-c197a92e0c68'
fstab.overlay.target='/overlay'
root@eddie:~# logread | sed -n -e "/- preinit -/,/- init -/p"
Sun Jun 12 23:47:46 2022 user.info kernel: [    2.051370] init: - preinit -
Sun Jun 12 23:47:46 2022 kern.info kernel: [    2.639092] usb 1-1: new high-speed USB device number 2 using xhci-mtk
Sun Jun 12 23:47:46 2022 kern.notice kernel: [    2.807117] random: procd: uninitialized urandom read (4 bytes read)
Sun Jun 12 23:47:46 2022 kern.info kernel: [    2.825330] mtk_soc_eth 1e100000.ethernet eth0: configuring for fixed/rgmii link mode
Sun Jun 12 23:47:46 2022 kern.info kernel: [    2.833626] mtk_soc_eth 1e100000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
Sun Jun 12 23:47:46 2022 kern.info kernel: [    2.842091] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Sun Jun 12 23:47:46 2022 kern.notice kernel: [    3.042914] random: jshn: uninitialized urandom read (4 bytes read)
Sun Jun 12 23:47:46 2022 kern.notice kernel: [    3.155557] random: jshn: uninitialized urandom read (4 bytes read)
Sun Jun 12 23:47:46 2022 kern.info kernel: [    3.495607] mt7530 mdio-bus:1f lan2: configuring for phy/gmii link mode
Sun Jun 12 23:47:46 2022 kern.info kernel: [    3.502634] 8021q: adding VLAN 0 to HW filter on device lan2
Sun Jun 12 23:47:46 2022 kern.info kernel: [    6.587547] mt7530 mdio-bus:1f lan2: Link is Up - 1Gbps/Full - flow control rx/tx
Sun Jun 12 23:47:46 2022 kern.info kernel: [    6.595070] IPv6: ADDRCONF(NETDEV_CHANGE): lan2: link becomes ready
Sun Jun 12 23:47:46 2022 kern.notice kernel: [    7.869974] jffs2: notice: (640) jffs2_build_xattr_subsystem: complete building xattr subsystem, 85 of xdatum (81 unchecked, 4 orphan) and 149 of xref (10 dead, 2 orphan) found.
Sun Jun 12 23:47:46 2022 user.info kernel: [    7.897432] mount_root: loading kmods from internal overlay
Sun Jun 12 23:47:46 2022 user.err kernel: [    8.411193] kmodloader: failed to open /tmp/overlay/upper/lib/modules/5.4.188/xhci-hcd.ko
Sun Jun 12 23:47:46 2022 user.err kernel: [    8.419771] kmodloader: failed to open /tmp/overlay/upper/lib/modules/5.4.188/xhci-mtk.ko
Sun Jun 12 23:47:46 2022 user.err kernel: [    8.428309] kmodloader: failed to open /tmp/overlay/upper/lib/modules/5.4.188/xhci-pci.ko
Sun Jun 12 23:47:46 2022 user.err kernel: [    8.436837] kmodloader: failed to open /tmp/overlay/upper/lib/modules/5.4.188/xhci-plat-hcd.ko
Sun Jun 12 23:47:46 2022 user.err kernel: [    8.493250] mount_root: failed to launch kmodloader from internal overlay
Sun Jun 12 23:47:46 2022 user.info kernel: [    8.668707] block: attempting to load /tmp/jffs_cfg/upper/etc/config/fstab
Sun Jun 12 23:47:46 2022 user.info kernel: [    8.686282] block: extroot: device not present, retrying in 15 seconds
Sun Jun 12 23:47:46 2022 kern.notice kernel: [   14.567320] crng init done
Sun Jun 12 23:47:46 2022 kern.notice kernel: [   14.570031] random: 7 urandom warning(s) missed due to ratelimiting
Sun Jun 12 23:47:46 2022 user.err kernel: [   23.831112] block: extroot: cannot find device with UUID 2f7a4335-5bd2-4e09-9463-c197a92e0c68
Sun Jun 12 23:47:46 2022 user.info kernel: [   23.840958] mount_root: switching to jffs2 overlay
Sun Jun 12 23:47:46 2022 kern.warn kernel: [   23.848508] overlayfs: upper fs does not support tmpfile.
Sun Jun 12 23:47:46 2022 user.warn kernel: [   23.857934] urandom-seed: Seeding with /etc/urandom.seed
Sun Jun 12 23:47:46 2022 kern.info kernel: [   23.951129] mt7530 mdio-bus:1f lan2: Link is Down
Sun Jun 12 23:47:46 2022 user.info kernel: [   23.977645] procd: - early -
Sun Jun 12 23:47:46 2022 user.info kernel: [   23.980659] procd: - watchdog -
Sun Jun 12 23:47:46 2022 user.info kernel: [   24.591219] procd: - watchdog -
Sun Jun 12 23:47:46 2022 user.info kernel: [   24.595622] procd: - ubus -
Sun Jun 12 23:47:46 2022 user.info kernel: [   24.656748] procd: - init -

This means block device /dev/sda1 with UUID=2f7a4335-5bd2-4e09-9463-c197a92e0c68 is not mounted although fstab is configured correctly.

15s delay in fstab is already configured, too.

I can mount block device /dev/sda1 manually w/o problems after router has booted.
However there's no directory .extroot-uuid, and I assume the setup of Extroot was not successfull.

root@eddie:~# mount /dev/sda1 /mnt/
root@eddie:~# ls -la /mnt/
drwxr-xr-x    5 root     root          4096 Jun 12 23:40 .
drwxr-xr-x    1 root     root             0 May 14 12:22 ..
lrwxrwxrwx    1 root     root             1 Jun 12 23:40 .fs_state -> 2
drwx------    2 root     root         16384 Apr 17 19:19 lost+found
drwxr-xr-x   11 root     root          4096 Jun 12 23:40 upper
drwxr-xr-x    3 root     root          4096 Jun 12 23:40 work

Can you please advise how to fix this issue?

I'd probably try setting the delay to something rather ridiclous like e.g. 180 seconds (3 minutes), just to check that increasing it further won't fix things. If setting it to 3 or 5 minutes does end up fixing the mounting, you can then proceed to find the lowest working value by experimenting.

1 Like

This is not solving the issue.

In the meantime I have added another partition to the MicroSD card: /dev/sda2
I configured this partition as linux-swap.

With this fstab configuration the swap partition is identified correctly, but extroot still fails:

# uci show fstab
fstab.@global[0]=global
fstab.@global[0].anon_swap='0'
fstab.@global[0].anon_mount='0'
fstab.@global[0].check_fs='0'
fstab.@global[0].auto_swap='0'
fstab.@global[0].auto_mount='0'
fstab.@global[0].delay_root='180'
fstab.@swap[0]=swap
fstab.@swap[0].device='/dev/sda2'
fstab.@swap[0].enabled='1'
fstab.overlay=mount
fstab.overlay.target='/overlay'
fstab.overlay.uuid='2f7a4335-5bd2-4e09-9463-c197a92e0c68'
fstab.overlay.enabled='1'

My conclusion is that the MicroSD card works for swap partition, this means there's no general issue with it.