Foolproof guide to move from microSD to USB SSD?

I am still fairly new to the Jetson Nano but have it set up for my needs over the last couple of weeks. As JetPack 4.5 seems to be natively able to boot from USB now I would love to move my existing installation (4.5).

What I found so far is a bit of “do this, afterwards look there, download something and follow guide a and b” which overall is very confusing for me and might render the Nano unbootable.

Is there a single functioning and easy to follow guide for this?

1 Like

You can check this youtube video.

This video, and the corresponding guide, is over a year old and will not work with current JetPack 4.5 afaik. JP 4.5 comes with somewhat built-in support but the current docs are not very clear Imho.

1 Like

I’m also very interested in such a tutorial!!

In our blogpost, we can move our root file system from EMMC to SSD in our DSBOARDs.

However, you can also use this guide for your development kit. The difference is only your microSD’s location.

Our EMMC’s location is: /dev/nvme0n1p1. So that, we used “sudo ./change-rootfs-storage.sh /dev/nvme0n1p1” command.

Your command should like that: sudo ./change-rootfs-storage.sh <full_path_of_microsd>

1 Like

Think I managed to do it - just took a spare MicroSD-Card so I would hopefully be able to simply swap back to a running system. What I did so far:

  1. flash JP 4.5 onto the spare MicroSD
  2. insert into Jetson Nano, let it boot up and finalize basic setup
  3. switch to root
  4. downloaded the fix in step 2 from here
  5. chmod a+x the downloaded file and moved it to /usr/sbin/l4t_payload_updater_t210 (overwriting the existing one)
  6. followed step 1-5 from here (remove existing partitions with fdisk eventually)
  7. ran umount /dev/<sdx>1 *
  8. downloaded copyRootToUSB.sh from Jetson Hacks GitHub repo
  9. chmod a+x the file copyRootToUSB.sh just downloaded
  10. executed ./copyRootToUSB.sh -p /dev/<sdx>1 *
  11. ran mount /dev/<sdx>1 /mnt
  12. edited both /boot/extlinux/extlinux.conf and /mnt/boot/extlinux/extlinux.conf to point to /dev/<sdx>1 *
  13. rebooted with MicroSD inserted and USB SSD connected
  14. shutdown Jetson Nano
  15. removed MicroSD and rebooted from USB SSD

(*) replace <sdx> with whatever your USB SSD’s name is

It did boot up totally fine and I was able to login so far - now restoring my previous setup, hoping everything works well…

Edit:
30 minutes later and my setup is restored and running just fine from USB

7 Likes

well, i’m in a quite different boat, i’d like to boot from NVME connected to the NVME port through an adaptor, one i bought on amazon. when i was in 4.4 all i could do was to boot from the microsd and point extlinux to the nvme disk, and it worked (even if i needed to put pci=noaer and pci=nomsi to the append line).
now it seems that something is not working anymore as the nano, after a certain (random) time just reboots. I was able to update ubuntu to devel but the nano rebooted while building the kernel with the modules i need (remotes, mostly, and lzo support for squashfs). I ended thinking my image was wrong (not well downloaded), but the sha1 is right
I updated the payload, but can’t understand if it worked or not, now i’m going to try to build an sd with the tools i need (updated payload, rootonusb and fan control) and follow the step by step guide, will let you know

@succo69 the steps I outlined should also work for NVME, just the spx placeholder will need to be replaced by your NVME’s path

yes, they should work but simply they don’t (if i use an adaptor like this
when used with pci=noaer,nomsi (which i need to let the nano boot without blocking with a flood of aer errors) it pops up kernel panic on boot of after some time running. It seens to me that a CPU seems to lock up, but i can’t be sure

This is what happens when i can see the kernel panic

Hey Dirk, just used your method and it works fine for me with the Samsung T5 500GB as recommended by JetsonHacks. I’ve tried several other schemes prior and was getting quite frustrated. Thank you! Now to see how much of a speed increase i get vs the sd card.

1 Like

did anyone try with a NVME ssd attached through a NVME adaptor to the M.2 A+B slot? I tried to put the system on an usb disk and everything works, but as far as i try to use the NVME i can’t boot at all (without adding pci=noaer,nomsi to the append line of extlinux.conf, with the log flooded by aer errors) or get kernel panic or sudden reboots (when booting with pci=noaer,nomsi). I even tried to rebuild the kernel with config_pcieaspm=n but the result is still no boot. Does all the people who wrote in the m.2 thread boot with no error? or are they still on 4.4 (which worked fine with pci=noaer,nomsi)?

Did anybody successfully follow my steps with JP 4.5.1? They should work but I wonder if 5. is still necessary…

Thank you so much

1 Like

Yes your method worked for me

@ahsaanraazaa did you flash JP 4.5.1 or 4.5.0? And did you leave out step 5 or followed it?

Glad I could help anyway ;)

I flash JP 4.5.1 and I followed step 5.

2 Likes

Step 5 ist still required for JP 4.5.1 and should be until 4.6 is released. 4.6 will have a fix implemented that makes it obsolete - but the rest of the guide should continue to work…

Hello everyone,

Can I get any clarification or advice if it is possible at this moment - JP 4.5.1 to create and put on USB drive image to boot Nano without using SD card and booting Nano from the SD card?

My story - got SD card, JP 4.5.1. Managed to install JP, create image on 32GB SD card, installed all the rest of the software. It took the whole day and after booting, firmware was upgraded to 4.5.1

However, apparently, SD card got corrupted and I got errors both in logs and when I tried to log on via ssh. After several reboots I could not boot at all.

I would rather not go again creating SD card image if it is possible to directly create USB image and use it to boot the box.

Thanks

I personally do not know a way without using an scarf for the basic installation, sorry :(