Fixing NFS‑over‑IPv6 “No such file or directory” Export Error

The log from the issue ::


Step 3: Start the flashing process


Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for device to expose ssh …Waiting for device to expose ssh …Run command: flash on fc00:1:1:0::2
SSH ready
mount.nfs: mounting [fc00:1:1:0::1]:/home/…/nvidia-jetson-orin/Linux_for_Tegra/rootfs failed, reason given by server: No such file or directory
Flash failure
Either the device cannot mount the NFS server on the host or a flash command has failed. Check your network setting (VPN, firewall,…) to make sure the device can mount NFS server. Debug log saved to /tmp/tmp.sou25WqtBs. You can access the target’s terminal through “sshpass -p root ssh root@fc00:1:1:0::2”
Cleaning up…

////////////////////////////////////// Down the problem solving ////////////////////////////////////////////////////////////

NFS‑over‑IPv6 Export “No such file or directory”
Issue:
When exporting NFS shares to an IPv6 client, un‑bracketed IPv6 prefixes in /etc/exports (e.g. fc00:1:1::/48) are mis‑parsed as hostnames, so the server never really exports to that network. Clients then see:

mount.nfs: mounting [fc00:1:1:0::1]:/path/to/share failed, reason given by server: No such file or directory

Problem Statement

  1. In /etc/exports you have lines like:

    /home/…/rootfs    fc00:1:1::/48(rw,async)
    /home/…/images    fc00:1:1::/48(ro,async)
    
  2. showmount -e does not list these under [fc00:1:1::]/48.

  3. Jetson (or any IPv6 client) cannot mount—they get “No such file or directory.”


Why It Happens

  • NFS’s export parser treats the slash in an un‑bracketed IPv6 address as part of its own syntax, not as a CIDR mask.

  • To export to an IPv6 network, you must wrap the address (and mask) in brackets:

    [2001:db8:1::]/64
    

Public‑Friendly Fix

  1. Edit /etc/exports
    Change any line exporting to IPv6 from this:

    - /path/to/share    fc00:1:1::/48(rw,async,no_subtree_check)
    + /path/to/share    [fc00:1:1::]/48(rw,async,no_subtree_check)
    
    • Brackets disambiguate the colons from export syntax.
    • The /48 mask must follow the closing bracket.
  2. Reload exports and restart NFS

    sudo exportfs -ra
    sudo systemctl restart nfs-kernel-server
    
  3. Adjust your firewall (UFW) for IPv6
    If you use UFW, allow NFS (2049) and rpcbind (111) on your IPv6 subnet:

    sudo ufw allow from fc00:1:1::/48 to any port 2049 proto tcp
    sudo ufw allow from fc00:1:1::/48 to any port 2049 proto udp
    sudo ufw allow from fc00:1:1::/48 to any port 111 proto tcp
    sudo ufw allow from fc00:1:1::/48 to any port 111 proto udp
    sudo ufw reload
    

Result:
Your Jetson (or any IPv6 client) will now successfully mount the NFS share instead of failing with “No such file or directory.”

Hi,
Do you mean you are not able to flash the device successfully?

One suggestion is to make sure the IPv6 address is valid. For example, go here and try to convert “fc00:1:1:0::1”:
https://www.whatsmydns.net/ipv6-to-ipv4

Not all IPv6 can be IPv4 though, so the above might not apply. However, can you manually “ping fc00:1:1:0::1”? Ping from the machine which has that address should succeed if it is valid. Other computers might not have IPv6 support, but mostly they will, and should be able to ping or traceroute that address.

1 Like

Yes, I’m sharing this as a solution that worked for me because I couldn’t find answers in other forums. My post is intended to help others who might encounter the same issue.