(Another) can't find PARTUUID on a new Orin Nano build

Have an Orin Nano (standalone, no SD slot) on a Waveshare carrier board which appears to be nearly identical to the official partner dev kit carrier boards.

I have a 512 GB NVMe SSD installed and have attempted to flash it several different times using different approaches such as the SDK Manager or the manual l4t_initrd_flash.sh scripts from the command line.

No matter which way I do it, after the process is complete the first boot spams the console with the error:

mount: /mnt: can't find PARTUUID=[...]

after that, it is followed by:

ttyTCU0: Press [ENTER] to start bash in [...] seconds...

Pressing [ENTER] at this point advances the console one line but does not start bash. After the timeout, the system reboots and retries again two more times.

After three tries the unit goes into OS chain A status: Unbootable at which point it boots to a blank screen with a single flashing cursor, nothing more. What is supposed to happen here, by the way?

I have read the similar posts here, here, and here and have attempted some of the suggested workarounds, but nothing there worked.

The procedures I have tried are more or less the same, but come from here, here, and here.

I do not have a TTL serial adapter, but I do have an M.2 NVMe to USB adapter to obtain or adjust files on the SSD as-needed.

*** Please note that this reply is generated by LLM automatically ***

The issue you’re experiencing with your Jetson Orin Nano on a Waveshare carrier board, which lacks an SD slot and is equipped with a 512 GB NVMe SSD, seems to be related to the boot process and flashing the device. Given the symptoms you’ve described, such as the console spamming with errors, the system attempting to boot multiple times before going into recovery mode, and eventually booting to a blank screen with a flashing cursor, it suggests a problem with the boot configuration or the flashing process.

To address your situation, let’s break down the key points and potential solutions:

  1. Flashing the Device: You’ve attempted to flash the Jetson Orin Nano using different approaches, including manual scripts from the command line. The fact that you’re using an NVMe SSD introduces a layer of complexity due to the need to specify the correct PCIe controller for the NVMe slot. The examples provided in the context, such as using sudo ./flash.sh jetson-orin-nano-devkit-nvme internal for flashing to an NVMe connected to the PCIe C4 slot, or specifying the UPHYLANE for a different slot (e.g., sudo UPHYLANE="c7x2" ./flash.sh jetson-orin-nano-devkit-nvme internal for the C7 slot), are crucial. Ensure you’re using the correct command for your NVMe’s slot.

  2. Boot Issues: The error messages and the system’s behavior (rebooting and eventually going into recovery mode) suggest a problem with the boot configuration or the root file system. The fact that pressing any key advances the console one line but doesn’t start bash indicates an issue with the boot process completing successfully.

  3. Comparison with Similar Issues: You’ve mentioned reading similar posts and attempting suggested workarounds without success. It’s essential to note that while the symptoms might be similar, the root cause can vary significantly depending on the specific hardware configuration, the version of JetPack used, and the flashing process. For instance, issues related to the kernel, device tree, or UEFI bootloader can manifest in similar ways but require different solutions.

  4. Diagnostic Steps: Without a TTL serial adapter, debugging becomes more challenging. However, having an M2 NVMe to USB adapter allows you to access and modify files on the SSD. This can be useful for checking the boot logs, modifying the boot configuration, or ensuring that the root file system is correctly configured.

Given the complexity of your issue and the steps you’ve already taken, here are some potential next steps:

  • Verify the Boot Configuration: Ensure that the boot configuration files (e.g., extlinux.conf or boot.cfg) are correctly set up for booting from the NVMe SSD. You might need to adjust the root partition or other parameters.

  • Check Boot Logs: If possible, access the boot logs to get more detailed information about the errors encountered during the boot process. This can provide clues about what’s going wrong.

  • Reflash with Specific Options: Consider reflashing the device with specific options that might help, such as disabling secure boot, adjusting the boot order, or specifying a different root file system.

  • Seek Additional Support: Given the similarity with other issues but the uniqueness of your setup (Waveshare carrier board, NVMe SSD), seeking support from NVIDIA forums, the manufacturer of the Waveshare board, or communities focused on Jetson development might yield more targeted advice or solutions.

In summary, your issue seems to stem from a combination of factors related to the flashing process, boot configuration, and possibly the hardware setup. Carefully reviewing the flashing process, ensuring the correct boot configuration, and potentially seeking more specialized support are the next steps in resolving this issue.

*** Please give the thumbs up if you get answers you like. Or provide feedback to help us improve the answer. ***

Hi,

What is your target JP version?
Have you flashed successfully with this Orin Nano device?
Please provide the flashing log (sdk/manual script) and the serial console log for us to review.

Thanks

The BIOS settings indicate the device has firmware 36.4.4-gcid-41062509.

I am using SDK Manager 2.3.0.12617 x86_64 on a barebones Ubuntu 22.04 laptop connected to the kit via USB-C cable.

I am not sure what you mean by “flashed successfully” - all indications from the SDK Manager and/or flash scripts are that the flashing operation is successful, and that the boot from SSD is not.

flash_3-3_0_20250721-105355.log (54.7 KB)
(Is this the right log? SDK Manager lacks the ability to export terminal window… feature request!)

Using SDK Manager, I created a bootable USB instead. Startup was very slow, but the Orin booted and I was able to observe the SSD disk mounted at /dev/nvme0n1p1 and its contents appear correct, and the PARTUUID matches that which is specified in /boot/extlinux/extlinux.conf.

Here is where things get interesting:

I edited extlinux.conf to set root=/dev/nvme0n1p1 and the system started to boot, but complained that the device did not exist. It immediately dropped into a bash terminal and I could confirm that although /dev/nvme was present, no drives or partitions were there. Checking blkid returned nothing.

A number of errors began appearing regarding:

nvme nvme0: I/O 0 QID 0 timeout, completion polled
... (more logs)  # something about tegra-mc memory-controller VPR violation, Route Sanity error
nvme nvme0: I/O 4 QID 0 timeout, completion polled
... (more logs) # something about tegra-mc memory-controller VPR violation, Route Sanity error
nvme nvme0: I/O 1 QID 0 timeout, completion polled
... (more logs) # something about tegra-mc memory-controller VPR violation, Route Sanity error
nvme nvme0: I/O 5 QID 0 timeout, completion polled
... (more logs) # something about tegra-mc memory-controller VPR violation, Route Sanity error
nvme nvme0: I/O 2 QID 0 timeout, completion polled
... (more logs) # something about tegra-mc memory-controller VPR violation, Route Sanity error
nvme nvme0: I/O 6 QID 0 timeout, completion polled
nvme nvme0: 6/0/0 default/read/poll queues
 nvme0n1: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15

This process took about 300 seconds (5 mins), after which ls /dev/nvme* partitions were all displaying correctly and blkid shows all partitions and their expected PARTUUID values.

This issue appears to be some kind of startup checks which cause the SSD to be not ready when the fs handoff is happening during boot, although it works later on. Not sure what to do about it.

Note: a few days ago I saw something similar on an official Orin Nano Dev Kit with a different SSD (same brand and size). I no longer have access to this board for further testing.

Well after some 12 hours of troubleshooting, experiments, and tests, I have a functioning workaround - but not quite a solution to this issue.

For others who might encounter the same the SSD in question is a 512 GB Acer FA100, PCIe Gen3 x4, NVMe1.4 SSD. In this case, the Orin Nano in question is a -003 variant (no SD drive) mounted to a Waveshare carrier board, but as I mentioned, this issue was also seen on an “official” Orin Nano Super Dev Kit a few days ago as well. I believe the root problem is the SSD itself not playing nice.

In short, some kind of NVMe checks and tests fail during startup, and by default each of these checks has a timeout of 20 seconds. This can lead to extremely long time before the system will successfully load /dev/nvme0n1p1 up to 300 seconds (5 mins) after power on.

The problem is that the built-in initrd → init startup script has a hard coded retry interval of 200 ms up to 50 retries = 10 seconds. After which, the system will automatically bail out and reboot.

These numbers are not configurable via extlinux.conf and from testing I observed that the init script on the Orin also ignores parameters such as rootwait, rootdelay, and panic=0.

That being said, the complex workaround requires two steps:

  1. Add the following APPEND argumens to /boot/extlinux/extlinux.conf:
nvme_core.io_timeout=2 nvme_core.admin_timeout=2 nvme_core.default_ps_max_latency_us=0
  1. Modify the hard-coded values in /boot/initrd → init (after extraction and external flashing):
_mount_root () {
        local dev="${1}"
        local mnt="${2}"
        local retry="${3}"
        local readonly="${4}"
        local mounted=0
        local count=0

        while [ ${count} -lt 60 ]; do
                sleep 0.5;
                count="$(expr ${count} + 1)"
                if [ "${readonly}" -eq 1 ]; then
                        mount -r "${dev}" "${mnt}"
                else
                        mount "${dev}" "${mnt}"
                fi

Note: for some reason you cannot modify initrd → init script on-box, it must be done externally and reflashed based on my experiences

The first change speeds up the failing startup tests from 20 seconds down to 2 such that the nvme disk is mounted within ~15 seconds, and the second changes the boot retry to 60 times every 500ms = 30 seconds.

In this way, the boot finally succeeds. It is definitely a hack, and I know there may be unintended side-effects of changing the NVMe timeout settings.

Outstanding questions:

What is the official stance here? Are there certain brands of SSDs which are “supported” and known to work, and is Acer not on that list? What is the root cause of these timeout errors? How should users be picking their peripherals, are there certain specs we should be looking for?

Why does the Orin have hard-coded, non-configurable startup timeouts? After three failures, what is supposed to happen? From observation the devices brick themselves in this case (without a keyboard and monitor to reset their BIOS).

HI,

Sorry that I just joined and not quite sure about the situation.

Do you have full log from UART serial console to share out here so that I can understand the error you hit there?

I know it is partition missing case but I need the context here before and after that to know what is going on.

Sorry I was on vacation last week and have just put my development workbench back together.

I do not have a TTL-level serial adapter (kind of funny to me that the Dev Kit carriers don’t have RS-232 transceivers as it seems that would be much more common - literally have a dozen of those cables from server administration).

Are there any other options for obtaining the boot log?

No, there is no other option to dump log.

Understood.

I have a cable ordered and it will come in two days. I will provide logs as soon as they are available.

@WayneWWW please find the attached boot log.

Again, for reference this is an Orin Nano (no SD) on a Waveshare carrier board.
The drive in question is a 512 GB Acer FA100, PCIe Gen3 x4, NVMe1.4 SSD.

During the boot sequence there are several NVMe timeouts, which cause the mounting of nvme0 to be delayed.

The workaround was to speedup the test timeouts and modify the initrd startup script which has a hard coded timeout value of 10 seconds to 60 seconds.

screenlog.0.log (158.0 KB)

Hi,

Just want to clarify. I need the log that would see the original error.

Is there original error log for use to do investigation? Thanks

Apologies for the long delay. We have de-prioritized working with our Orin Nanos due to the high number of issues with developer experience and are finally coming back to evaluating them.

The “original error”:

mount: /mnt: can’t find PARUUID=…

does not appear in the captured console logs, but the errors which cause the mount to fail are present. Please see the attached logs and image to understand. The upper monitor shows a monitor attached to the Orin, and the lower screen my host laptop connected to the serial debugger.

However, the timeouts which cause the extremely long mount delay can be found in the captured log file (attached).

[ 11.997685] nvme nvme0: I/O 24 QID 0 timeout, completion polled
[ 15.069310] nvme nvme0: I/O 20 QID 0 timeout, completion polled
[ 18.141267] nvme nvme0: I/O 25 QID 0 timeout, completion polled
[ 21.213258] nvme nvme0: I/O 21 QID 0 timeout, completion polled
[ 24.285265] nvme nvme0: I/O 26 QID 0 timeout, completion polled
[ 27.357264] nvme nvme0: I/O 22 QID 0 timeout, completion polled

In this log file, the boot sequence succeeds because I made two changes to the startup configuration (including hand editing initrd). These workarounds do not hide the actual issue here which is that nvme startup is encountering some timeouts, which delays the mount beyond the default retry timeout.

gtkterm.log (82.7 KB)

Is this still an issue to support? Any result can be shared?

Is this an issue that

because " nvme has timeout error"
so we see “mount: /mnt: can’t find PARTUUID=[…]”

or these two are actually separate?

As I interpret the logs, these are the same issues.

There are a series of nvme timeout errors which are occurring during the boot sequence. It looks like some form of startup checks which must complete before the mount occurs.

Once all the tests complete (with many fails and timeouts) the mount is allowed to proceed. This was verified because shortening the length of these timeouts resulted in a faster mount time.

The underlying question is what is causing the QID timeouts in the first place, i.e., can the checks be skipped or does it indicate some other significant issue which must be fixed? What do these particular messages even mean?

This question needs to be discussed in few stages

Q1. If only this kind of NVME would hit such issue or not?

Q2. If this is related to the carrier board in use? As you are using waveshare board but not NV devkit, I wonder if any hardware side issue.

nvme driver is actually from upstream kernel. So I cannot tell if some check could be ignored or not.

Hi @nicholas.goodman ,

I am facing the same issue , even after performing modifications in the extlinux.confi and initrd , i could able to boot successfully. After retrying boot three times unit goes to unbootable state with a blank screen.

have you found any solution for this ?

Hi,

I’m facing the same issue too, after an auto update that happened when I powered off the jetson.
When I powered it back on, it went through some installations and rebooted.
After reboot I got the same messages as @nicholas.goodman about “Can’t find partuuid:…” and rebooted 3 times and now I’m stuck with a blank screen with a blinking cursor.

When I try to reboot, I get stuck on the blank screen with a blinking cursor every time.

Difference is that I’m on a Yahboom carrier board with a 256gb 2280 NVME M.2 SSD.

Just got it yesterday and today it ran the updates after it powered off. I even clicked the “Remind me later” everytime it ask for software update.

How can I fix this? Do I need to format the ssd and reinstall everything?

@mathanprasannakumar44, @MBrow

In cases where your Orin has three unsuccessful boots in a row, the BIOS will lock down into some kind of recovery mode that requires you to manually get out of. The good news is that it’s fairly easy to do:

  • At the POST screen, press ESC to enter Setup
  • Then navigate to Device Manager > NVIDIA Configuration > L4T Configuration
  • Set OS chain A status to <Normal>

and you should be good to go.

As the specific reason “can’t find PARTUUID” that’s tricker to say. I know on my specific set of hardware there are some kind of delays to the mounting process due to some kind of startup checks failing and then timing out. In my case I was able to eventually boot by “failing faster” before the hard-coded startup watchdog causes the system to restart.

We are still investigating the specifics of why the error occurs on my Orin, as it could either be 1) an issue with the carrier board, or 2) an issue with the specific drive. In a few weeks I will have a different NVIDIA official dev kit which I can try this SSD on, but until then we have little to go on.

1 Like