Gravação Initrd Falha em Host ZFS (mount.nfs access denied)
Introdução
Quando você grava um dispositivo Seeed Jetson com o fluxo de trabalho initrd da NVIDIA (l4t_initrd_flash.sh com --network usb0), o PC host Ubuntu compartilha temporariamente arquivos de gravação com o Jetson via NFS (Network File System). Se o seu host foi instalado com um sistema de arquivos raiz ZFS (opção do instalador do Ubuntu Erase disk and use ZFS), a gravação pode falhar com:
mount.nfs: access denied by server while mounting [fc00:1:1:0::1]:/path/to/mfi_xxx/rootfs
Flash failure
Either the device cannot mount the NFS server on the host or a flash command has failed.
Isso não é um defeito da sua placa carrier Seeed ou do módulo Jetson. É uma interação conhecida entre o ZFS e a exportação NFS temporária padrão da NVIDIA usada durante a gravação com initrd.
Qualquer produto Seeed Jetson gravado com l4t_initrd_flash.sh --flash-only --massflash 1 --network usb0 (ou gravação semelhante com initrd + rede), incluindo, mas não se limitando a:
- reComputer Classic / Mini / Super (série J401)
- reComputer Industrial / reServer J401
- reComputer Robotics J401 / J501 / J501 Mini
- reServer J501
Isso não é específico de um único SKU. A causa raiz é o sistema de arquivos do host, não o dispositivo de destino.
O que é NFS neste contexto?
Durante a gravação com initrd:
- Você extrai o pacote mfi da Seeed no host Ubuntu.
- O Jetson inicializa uma pequena imagem initrd via USB.
- O host exporta pastas como
rootfsetools/kernel_flash/imagesvia NFS. - O Jetson monta essas pastas e grava a imagem do sistema.
Aqui o NFS é apenas um mecanismo de transferência host ↔ Jetson durante a gravação. Ele não está relacionado a recursos de NFS na placa carrier.
Por que hosts com ZFS falham
O script da NVIDIA (tools/kernel_flash/l4t_network_flash.func) usa exportfs -o para criar exportações NFS temporárias, em memória.
Em ext4 (instalação padrão do Ubuntu), isso geralmente funciona.
Em ZFS, o servidor NFS do Linux não consegue atribuir automaticamente um fsid estável para o dataset. A exportação pode parecer bem-sucedida no host, mas o Jetson recebe access denied ao montar.
O Ubuntu oferece ZFS como opção de raiz desde a versão 19.10, portanto isso pode afetar qualquer usuário que tenha escolhido ZFS durante a instalação.
Solução recomendada (mais simples)
Copie todo o diretório mfi para um sistema de arquivos ext4 e então execute o comando de gravação a partir dele.
# Example: copy mfi folder to an ext4 mount (adjust paths)
cp -a /path/on/zfs/mfi_recomputer-orin-super-j401 /mnt/ext4-flash/
cd /mnt/ext4-flash/mfi_recomputer-orin-super-j401
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --flash-only --massflash 1 --network usb0 --showlogs
Dicas:
- Use uma partição ext4 dedicada, um drive USB externo formatado como ext4 ou uma imagem de loopback ext4.
- Garanta espaço livre suficiente para todo o pacote mfi extraído.
- Instale os pré-requisitos de gravação no host (
nfs-kernel-server,sshpass, etc.) conforme o guia de Introdução (Getting Started) do seu produto.
Solução avançada (permanecer em ZFS)
Se você precisar gravar a partir de um caminho em ZFS, configure exportações persistentes em /etc/exports com valores explícitos de fsid= e garanta que as permissões estejam corretas. Talvez você também precise ajustar enable_nfs_for_folder() em l4t_network_flash.func para que o script use /etc/exports + exportfs -ra em vez de exportfs -o.
Linhas de exportação de exemplo (ajuste caminhos e rede IPv6 para corresponder ao seu diretório mfi):
/path/to/mfi_xxx/rootfs fc00:1:1::/48(rw,nohide,insecure,no_subtree_check,async,no_root_squash,fsid=1)
/path/to/mfi_xxx/tools/kernel_flash/images fc00:1:1::/48(rw,nohide,insecure,no_subtree_check,async,no_root_squash,fsid=2)
Em seguida:
sudo chmod 755 /path/to/mfi_xxx/rootfs /path/to/mfi_xxx/tools/kernel_flash/images
sudo chown root:root /path/to/mfi_xxx/rootfs /path/to/mfi_xxx/tools/kernel_flash/images
sudo systemctl restart nfs-kernel-server
sudo exportfs -rav
Detalhes completos e um patch de exemplo estão em wiki-documents #4148.
Verifique o sistema de arquivos do host
df -T /
findmnt -no FSTYPE /
Se a saída mostrar zfs, use a solução com ext4 acima antes de gravar.
Recursos
- Seeed wiki-documents #4148
- NVIDIA Forums: rootfs does not support NFS export
- NVIDIA Forums: requires fsid= for NFS export
- Flash BSP with Jetpack to Selected Jetson
- reServer J501 Getting Started
- Flash JetPack with WSL2
Suporte Técnico & Discussão de Produtos
Obrigado por escolher nossos produtos! Estamos aqui para oferecer diferentes formas de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.