As long as the unit can reach recovery mode you can clone the rootfs partition and save your work (it does take time and a lot of disk space on the host PC). Clones can not only be examined, they can also be used for flashing in place of a generated default image.
Note that Windows has no ability to work with a recovery mode Jetson, and the host must be a Linux PC (the GUI software requires Ubuntu 18.04, but command line works with any Linux PC). A recovery mode Jetson is a custom USB device, and is not mass storage. Recovery mode requires a special driver to work with, and there is no such driver (for good reasons) on Windows.
Before talking about cloning, you will probably need a serial console boot log to see what is going wrong. It isn’t unusual for the GUI to fail, and yet the system otherwise boots normally. For example, the monitor must be an HDMI monitor, and not a VGA monitor with HDMI adapter…for this latter case you might get lucky and it would boot and display correctly, but would randomly stop working…in which case an actual HDMI monitor would fix the issue.There are a lot of reasons to not trust the GUI to say if the unit failed or not. You can find information on serial console here:
Serial console can log all activity, and you could log the full boot and post the log here, which would be very useful.
FYI, the “default” install may be rather out of date, and you’d want to update anyway (though you probably want a clone of your work). Clones cannot be directly flashed if the release version changes, but for example, home directory and your content could simply be copied in to the location where the default image is generated…the content would just “be there” when flash completes (takes a bit of extra knowledge though).
VMs can be made to work, but are not officially supported. A VM will not handle USB connect/reconnect correctly without extra knowledge and work, and a recovery mode Jetson connects and reconnects during flash operations. You would be far better off with a native Linux install, preferably Ubuntu 18.04 so you can use the GUI. You need plenty of extra space. Even a base flash implies you’d want about 50GB of free space, but as soon as you clone, you can expect the clone to be nearly the entire size of the memory of the Jetson all by itself.
Regarding clones: You can clone with most any release of flash software. The clone information will change depending on release. You should restore only with the release which originally created the clone. You should pick the release based on the newest release which has a compatible CUDA release version (CUDA release is tied to the install release due to strong dependencies…CUDA version does not correctly mix across install versions).
An install/flash starts with stock Ubuntu and adds drivers from NVIDIA, and becomes known as “Linux for Tegra” (“L4T”) after that. JetPack/SDK Manager are just GUI front ends. Actual flash is from the package known as the “driver package”, and JetPack/SDKM download and install this from a GUI for you, but the driver package itself is capable of command line. The driver package only flashes or clones. If flashing with default software, then you would also be unpacking the sample rootfs package and the driver package would create a flash from that content.
You can find the different releases of L4T and JetPack/SDKM here (you will probably have to go there, log in, and then go there a second time since redirect tends to not work):
FYI, when installing the GUI software (JetPack/SDKM), and then running that software, a directory “
~/nvidia/nvidia_sdk/JetPack_...some version.../Linux_for_Tegra/” is created (the “
~” is a shortcut in Linux and other *NIX clones for the home directory). The content of the “
Linux_for_Tegra/” directory is actually the driver package (and like with “
Linux_for_Tegra/rootfs/” having been populated with a generic Ubuntu 18.04). So it takes plenty of space, and then during the flash you’ll want to have about 50GB or more free. If you work with clones, then you’ll want to add another 35GB or so.
As painful as that may sound, once you have an Ubuntu host PC life is much easier. You can set up for dual boot if you have disk space (and you can even add a new disk and leave the Windows disk alone), or use the partition manager to reduce size of Windows to leave spare space for Linux (I’m guessing you won’t want to do that, most people do not unless they have a rather large disk).
To summarize, if you can post a serial console boot log, then it might turn out that things are actually working, and perhaps a non-GUI login method would allow you to fix things. We need that log though to find out (a serial console logs even in boot stages prior to Linux ever starting, so it works reliably).
If you decide you want to clone, or flash, just ask for more information.