@Igor @belegdol I was able to get it working, but maybe this can be fixed in the build?
Fix: Odroid XU4 – Armbian-unofficial_25.11.0-trunk_Noble_6.6.108 fails to boot from SATA after nand-sata-install
Problem
After running nand-sata-install on an Odroid XU4 (kernel 6.6.108), the system copies to SATA correctly but fails to boot afterward, dropping into the initramfs shell.
Checking the loaded modules shows only:
usbhid
meaning no USB or SCSI drivers are available to detect /dev/sda1. Inspecting the initramfs with:
lsinitramfs /boot/initrd.img-6.6.108-current-odroidxu4 | grep usb
reveals that usb-storage.ko, uas.ko, and other USB mass-storage modules are missing.
Root Cause
The file /etc/initramfs-tools/initramfs.conf already had:
MODULES=most
so the base configuration was fine.
However, Armbian’s initramfs build process did not automatically include the USB/SCSI modules, because the system was booted from SD and those drivers were not "in use" during image generation.
As a result, the cloned SATA system lacked the drivers needed to mount its root filesystem.
Solution
Fix the SD card initramfs before running nand-sata-install.
This ensures the SATA copy inherits a working image with all required modules.
1️⃣ Boot from SD and verify
Confirm you are booted from SD:
df -h /
You should see /dev/mmcblk0p* as /.
2️⃣ Verify initramfs configuration
Open /etc/initramfs-tools/initramfs.conf and confirm it contains:
MODULES=most
3️⃣ Add required USB and SCSI modules
Create or edit /etc/initramfs-tools/modules:
USB host + storage + SCSI stack for SATA boot usbcore usb-common ehci-hcd ehci-platform ehci-fsl fsl-mph-dr-of xhci-hcd xhci-pci xhci-plat-hcd scsi_mod sd_mod sg uas usb-storage
4️⃣ Rebuild the initramfs and regenerate uInitrd
sudo update-initramfs -c -k $(uname -r) cd /boot sudo mkimage -A arm -O linux -T ramdisk -C none -n uInitrd -d initrd.img-$(uname -r) uInitrd sync
5️⃣ Verify the new initramfs
lsinitramfs /boot/initrd.img-$(uname -r) | grep usb/storage
Expected output (partial):
.../usb-storage.ko .../uas.ko .../ums-*.ko
6️⃣ Reboot from SD to confirm it works
sudo reboot
If it boots normally, the rebuilt initramfs is valid.
7️⃣ Run nand-sata-install
sudo nand-sata-install
Select your SATA target.
Because the SD image is now fixed, the SATA copy will contain a working initramfs.
8️⃣ Update boot.ini
Edit /media/mmcboot/boot.ini and set:
setenv rootdev "UUID=<your SATA UUID>"
9️⃣ Reboot and verify SATA root
df -h /
Expected result:
/dev/sda1 → / /dev/mmcblk0p1 → /media/mmcboot
Result
✅ SATA boots successfully
✅ Kernel loads usb-storage, uas, sd_mod, scsi_mod early
✅ / mounts from SATA cleanly — no initramfs prompt
✅ nand-sata-install works correctly on Odroid XU4 (Noble 6.6.108)
Summary
Even though MODULES=most was already set, the USB/SCSI stack was not automatically included in the initramfs when booting from SD.
Manually listing the required modules in /etc/initramfs-tools/modules before rebuilding ensures the image contains usb-storage.ko, uas.ko, and related drivers.
Once rebuilt, both SD and SATA boots work reliably.
Answering my own question here for other folks. This works https://dietpi.com/forum/t/no-usb3-after-apt-upgrade-rock64/6439/29
apt install linux-dtb-current-rockchip64=21.08.2 linux-image-current-rockchip64=21.08.2
apt-mark hold linux-dtb-current-rockchip64 linux-image-current-rockchip64
I also let @TonyMac32Tony Mac-n-cheese knows on discord. I'm not sure who would find kernel deltas and fix this.