First boot after install hangs at "Waiting for root device PARTUUID=..."

I am trying to install OpenWrt on an x86 machine that uses an msata drive.
I use a liveboot Arch instance to DD OpenWrt on the msata drive. I need to use Arch because neither OpenWrt itself nor Linux Mint seem to recognize the msata drive in lsblk.
After DDing the flash drive on to the msata drive and restarting, the boot sequence hangs and shows me this:
image
This indicates a problem with the msata drive, which is weird, because I have used this exact machine for OpenWrt previously with no problems. Also, I checked and the PARTUUID that grub is waiting for seems to match that of the actual root partition, so no problem there (I confirmed this in Arch using blkid).

I have tried different ways of installing, including:

  • DDing an entire separate usb flash drive that has OpenWrt already flashed on to it
  • DDing an ISO file that is on a separate flash drive

Note: the msata drive is only 2GB in size. Because of how DD works, I've had to use flash drives smaller than 2GB in order to DD. I've tried 2 different flash drives. Don't know how relevant this is, but I'm including it, just in case :slight_smile:

I have used different image files, including:

  • openwrt-23.05.3-x86-64-generic-ext4-combined-efi
  • openwrt-23.05.3-x86-64-generic-ext4-combined
  • openwrt-23.05.2-x86-64-generic-ext4-combined-efi
  • openwrt-22.03.0-rc6-x86-64-generic-ext4-combined-efi

I have also DD-d the entire msata drive with /dev/urandom and /dev/zero multiple times and deleted all partitions with fdisk.

I googled all of the drive related errors separately and also read through many previous threads on this topic, but with no luck. I am still relatively new to OpenWrt so excuse me if I'm misunderstanding something or if there is crucial info missing from my post.

My suggestion would be taking 'booting from mSATA' out of the equation for now, by booting OpenWrt from a USB stick and then trying to access (lsblk, fdisk -l, etc.) first. The requirements for booting from a device (necessary modules need to be built statically into the kernel) are higher for booting from the device, while if you boot from a working source medium you can experiment with the things needed (addon kmods) to get it working first. Comparing the output of ls -1 /sys/module on arch vs OpenWrt might provide further hints, as well as dmesg from either.

dmesg On Arch:

[    0.918525] ata2: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[    0.918710] ata2.00: ATA-9: Innodisk Corp. mSATA 3SE DEMSR- 02GB, S130604, max UDMA/133
[    0.918777] ata2.00: 3880960 sectors, multi 16: LBA48 NCQ (depth 32), AA
...
[   16.858119] ata2.00: qc timeout after 15000 msecs (cmd 0x2f)
[   16.858144] ata2.00: Read log 0x00 page 0x00 failed, Emask 0x4
[   16.858208] ata2.00: failed to set xfermode (err_mask=0x40)
[   26.858168] ata2: softreset failed (1st FIS failed)
[   27.124786] ata2: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[   27.125019] ata2.00: failed to IDENTIFY (INIT_DEV_PARAMS failed, err_mask=0x80)
[   27.125034] ata2.00: revalidation failed (errno=-5)
[   27.125090] ata2: limiting SATA link speed to 3.0 Gbps
[   32.484785] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
[   32.485274] ata2.00: configured for UDMA/133

dmesg On OpenWrt:

[    3.327932] ata2: SATA max UDMA/133 abar m1024@0xfea6a000 port 0xfea6a180 irq 28
...
[    3.455253] ata2: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[    3.455444] ehci-pci 0000:00:13.2: new USB bus registered, assigned bus number 2
[    3.461764] ata2.00: ATA-9: Innodisk Corp. mSATA 3SE DEMSR- 02GB, S130604, max UDMA/133
[    3.469091] ehci-pci 0000:00:13.2: applying AMD SB700/SB800/Hudson-2/3 EHCI dummy qh workaround
[    3.477178] ata2.00: 3880960 sectors, multi 16: LBA48 NCQ (depth 32), AA
...
[   18.730460] ata2.00: qc timeout (cmd 0x2f)
[   18.734669] ata2.00: Read log 0x00 page 0x00 failed, Emask 0x4
[   18.740598] ata2.00: ATA Identify Device Log not supported
[   18.746179] ata2.00: failed to set xfermode (err_mask=0x40)
[   18.861747] ata2: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[   18.868237] ata2.00: failed to IDENTIFY (INIT_DEV_PARAMS failed, err_mask=0x80)
[   18.875777] ata2.00: revalidation failed (errno=-5)
[   18.880771] ata2: limiting SATA link speed to 3.0 Gbps
[   24.040571] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
[   39.210459] ata2.00: qc timeout (cmd 0x2f)
[   39.214718] ata2.00: Read log 0x00 page 0x00 failed, Emask 0x4
[   39.220715] ata2.00: ATA Identify Device Log not supported
[   39.226334] ata2.00: failed to set xfermode (err_mask=0x40)
[   39.232057] ata2.00: disabled
[   39.350354] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 320)

It seems I've made a mistake in my OP, lsblk and fdisk -l do both show the msata drive on both operating systems. Though fdisk on OpenWrt shows the "Disk model" as "Card Reader" while on Arch it's "Innodisk Corp. m"
As for ls -1 /sys/module, I'm not exactly sure what I should be comparing between the two.

if the drive with openwrt is the 1st/only drive in the computer, you could stop the grub count down, and edit the boot entry, replace root=PARTUUID=.... with root=/dev/sda2.
I'm curious if it'll make it boot ...

Unfortunately, no. I tried it and the boot sequence still hangs at the same exact spot :frowning:

Error messages should be slightly different though?

Same errors as in the OP, just the root device is different (last line).