Installer iso aarch64: /dev/root: Can't open blockdev

I have an Arm SBC the ROC-RK3399-PC which I’ve installed Tow-Boot onto so it can handle UEFI. I’ve tried a couple different images but I consistently get after 28 seconds three repeated errors of:

/dev/root: Can't open blockdev

Reading the source a bit it seems that stage-1-init.sh gets called with root=LABEL=<nixos-iso-id> which should then create a symlink of /dev/root to /dev/disk/by-label/<nixos-iso-id>. Something appears to be going wrong at this step.

In debug mode I get:

waiting for device /dev/root to appear.............
Timed out waiting for device /dev/root, trying to mount anyway.
mounting /dev/root on /iso...
/dev/root: Can't open blockdev
/dev/root: Can't open blockdev
/dev/root: Can't open blockdev
mount: mounting /dev/root on /mnt-root/iso fialed: No such file or directory
An error occureed in stage 1 of the boot process, which must mount the root filesystem on `/mount-rootm' and then start stage 2.

It then gives me some instructions on running an interactive shell, but attempting to do so doesn’t work.

Also in case it’s the USB drive I’m using I tried a second one with the same results.

I believe I’m writing to the drive correctly but perhaps I’m doing something wrong there:

sudo dd if=nixos-minimal-23.11pre488026.f91ee3065de-aarch64-linux.iso of=/dev/sdb bs=4M status=progress conv=fdatasync

The other image I tried was the minimal new kernel version, but it seems that hasn’t been building correctly on hydra since February, but the last working build had the same result for me.

The closest issue I could find in nixpkgs was: Systemd Stage 1 ISO Boot · Issue #217173 · NixOS/nixpkgs · GitHub but that seems to be related to using systemd-initrd, and I don’t think that’s what’s happening currently with the installer ISOs.

Not sure if I’m doing something wrong or if there is a problem with the iso itself. Hopefully someone has some insight that can help. Thanks.

I had the exact same issue with a RockPro64 install, also using TowBoot and an aarch64-linux minimal installer iso.

This post fixed my problem Error in stage 1 while mounting /dev/loop0 - #2 by fwc.

I had been running dd with oflag=direct,sync status=progress and also got stuck at boot with a similar error message.

I removed all extra args from dd and just did if= of=, made sure to run sync after it finished before unplugging and the next boot it worked. I also changed USB Stick, as well just in case.

Ahh, thank you. I’ll give that a shot and see if it works when I get a chance.

Thanks again for your suggestion, unfortunately it didn’t work for me. I get the same error using https://hydra.nixos.org/build/231702653/download/1/nixos-minimal-23.11pre514857.caac0eb6bdca-aarch64-linux.iso

Perhaps you could let me know which version of the iso you used?

I tried dd with just if= and of= args as you suggested, running both sudo sync and sudo sync /dev/sdb, and a different time with only conv=fsync as per the NixOS manual’s instructions. Same error in all cases.

I’m reasonably sure it’s not the USB drive as I used it recently to install an x86_64 NixOS iso on another device without issue.

On the installer iso I used this time, I noticed a copytoram mode which I tried but got an error message about invalid size where the Can't open blockdev usually occurs for me.