# The difference between ./flash.sh and ./l4t\_initrd\_flash.sh

**URL:** <https://forums.developer.nvidia.com/t/the-difference-between-flash-sh-and-l4t-initrd-flash-sh/216780>\
**Category:** Jetson TX2\
**Tags:** reflash\
**Created:** [June 7, 2022, 10:21am UTC](https://forums.developer.nvidia.com/t/the-difference-between-flash-sh-and-l4t-initrd-flash-sh/216780 "2022-06-07T10:21:09Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![ultwcz1997](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@ultwcz1997](https://forums.developer.nvidia.com/u/ultwcz1997)\
**Post date:** [June 7, 2022, 10:21am UTC](https://forums.developer.nvidia.com/t/the-difference-between-flash-sh-and-l4t-initrd-flash-sh/216780/1 "2022-06-07T10:21:09Z")

</div>

when i use xxx/Linux\_for\_tegra/tools/kernel\_flash/l4t\_initrd\_flash.sh,it will show using ./flash.sh,for example,  
_ **sudo ./tools/kernel\_flash/l4t\_initrd\_flash.sh --no-flash --external-device nvme0n1 -S 100GiB --external-only -c ./xxx/flash\_l4t\_nvme.xml jetson-xavier-nx-devkit-emmc nvme0n1p1** _  
it will instead of flowing  
_ **BOOTDEV=nvme0n1 ./flash.sh --no-flash --signed --external-device -S 100GiB -c ./xxx/flash\_l4t\_nvme.xml jetson-xavier-nx-devkit-emmc nvme0n1p1** _

so it means i could use ./flash.sh instead  
./tools/kernel\_flash/l4t\_initrd\_flash.sh?

---

<div class="post-metadata">

**Author:** ![WayneWWW](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/waynewww/32/14043_2.png) [@WayneWWW](https://forums.developer.nvidia.com/u/WayneWWW)\
**Post date:** [June 8, 2022, 2:07am UTC](https://forums.developer.nvidia.com/t/the-difference-between-flash-sh-and-l4t-initrd-flash-sh/216780/3 "2022-06-08T02:07:37Z")

</div>

flash.sh cannot flash anything to your nvme. If you plug an empty nvme to jetson, run flash.sh only, then in the end your nvme will still be empty. Flash.sh can only flash mmcblk0p1.

But initrd flash will use flash.sh to boot into initrd, and then flash the nvme from initrd. Thus, nvme drive will have file in the end.

---

<div class="post-metadata">

**Author:** ![ultwcz1997](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@ultwcz1997](https://forums.developer.nvidia.com/u/ultwcz1997)\
**Post date:** [June 8, 2022, 2:15am UTC](https://forums.developer.nvidia.com/t/the-difference-between-flash-sh-and-l4t-initrd-flash-sh/216780/4 "2022-06-08T02:15:07Z")

</div>

ok,thank your reply,i know it.  
so if i will repalce files in a not empty nvme ,i should still use initrd flash.

---

<div class="post-metadata">

**Author:** ![WayneWWW](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/waynewww/32/14043_2.png) [@WayneWWW](https://forums.developer.nvidia.com/u/WayneWWW)\
**Post date:** [June 8, 2022, 2:18am UTC](https://forums.developer.nvidia.com/t/the-difference-between-flash-sh-and-l4t-initrd-flash-sh/216780/5 "2022-06-08T02:18:45Z")

</div>

If you want to flash file system to an empty nvme, then use initrd flash.

If you just want to boot from nvme and nvme already had a filesystem on it, then you can also use flash.sh.  
[https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3261/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/flashing.html#wwpID0E0QN0HA](https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3261/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/flashing.html#wwpID0E0QN0HA)

---

<div class="post-metadata">

**Author:** ![ultwcz1997](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@ultwcz1997](https://forums.developer.nvidia.com/u/ultwcz1997)\
**Post date:** [June 8, 2022, 4:14am UTC](https://forums.developer.nvidia.com/t/the-difference-between-flash-sh-and-l4t-initrd-flash-sh/216780/6 "2022-06-08T04:14:30Z")

</div>

Hi,WayneWWW:  
Now i will repalce dtb file of nvme driver(nvme driver has filesystem already), i used ./flash.sh sricpt

> sudo BOOTDEV=nvme0n1p1 ./flash.sh -r --no-systemimg -k kernel-dtb jetson-xavier-nx-devkit-emmc nvme0n1p1

or

> sudo BOOTDEV=nvme0n1p1 ./flash.sh -r --no-systemimg -k kernel-dtb -c ./tools/kernel\_flash/flash\_l4t\_nvme\_256GB.xml jetson-xavier-nx-devkit-emmc nvme0n1p1  
> ./flash\_l4t\_nvme\_256GB.xml is partition specific for my 256GB ssd,

but the dtb of nvme ssd can’t changed , so what i should do?

thanks you !

---

<div class="post-metadata">

**Author:** ![WayneWWW](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/waynewww/32/14043_2.png) [@WayneWWW](https://forums.developer.nvidia.com/u/WayneWWW)\
**Post date:** [June 8, 2022, 5:15am UTC](https://forums.developer.nvidia.com/t/the-difference-between-flash-sh-and-l4t-initrd-flash-sh/216780/7 "2022-06-08T05:15:15Z")

</div>

As I said in previous comment, flash.sh has no ability to flash anything to the nvme drive.

---

<div class="post-metadata">

**Author:** ![ultwcz1997](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@ultwcz1997](https://forums.developer.nvidia.com/u/ultwcz1997)\
**Post date:** [June 8, 2022, 5:44am UTC](https://forums.developer.nvidia.com/t/the-difference-between-flash-sh-and-l4t-initrd-flash-sh/216780/8 "2022-06-08T05:44:22Z")

</div>

ok, appreciate.

---

<div class="post-metadata">

**Author:** ![system](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/system/32/68080_2.png) [@system](https://forums.developer.nvidia.com/u/system)\
**Post date:** [June 29, 2022, 6:23am UTC](https://forums.developer.nvidia.com/t/the-difference-between-flash-sh-and-l4t-initrd-flash-sh/216780/10 "2022-06-29T06:23:52Z")

</div>

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.
