Jetson nano is not able to totally boot from external storage. The emmc inside the module is still required.
The boot flow is as below:
nvtboot → cboot → uboot → kernel → kernel to mount the file system (rootfs).
Where you can have options are in bold.
nvtboot (emmc) → cboot (emmc) → uboot (emmc) → kernel → kernel to mount the file system (rootfs).
The option means you can select to boot kernel from any external devices, unless the uboot does not support that device. And same to rootfs.
Thus, there are lots of combinations could be used. For example, have sdcard and usb drive both connected on device, I can ask uboot to use kernel from sdcard and then use that kernel to mount the rootfs from usb drive. Of course common people will not do such things. Just an example to explain.
Thus, for case (1), you can follow this page.
As for case(2), the only difference is let uboot choose to search kernel on sdcard instead of emmc. Thus, doing the same page as above page, but stop the uboot boot process and change the boot order with following command.
setenv boot_targets usb0 mmc1 mmc0 nvme0 pxe dhcp