Nuit Blanche
· 3 min de lecture · Mis à jour

Booter un Jetson Nano Super depuis un SSD NVMe (JetPack 6)

Booter un Jetson Nano Super depuis un SSD NVMe (JetPack 6)

En bref

Comment faire démarrer un Jetson Nano Super depuis un SSD NVMe plutôt que depuis une carte microSD, sous JetPack 6.

Par défaut, le Jetson Nano Super démarre depuis une carte microSD. Ça fonctionne très bien pour un usage basique, mais un SSD NVMe offre des performances d’I/O nettement supérieures (un point crucial pour des charges comme les containers Docker, l’inférence de LLM en local ou toute tâche gourmande en disque). Dans ce guide, je clone la carte SD vers le NVMe et je configure le système pour qu’il démarre dessus.

Prérequis

  • Un Jetson Nano Super sous JetPack 6 (R36)
  • Un SSD NVMe installé et détecté par le système
  • Un accès SSH au Jetson

Vérifier que le NVMe est bien détecté :

Terminal window
lsblk

Vous devez voir nvme0n1 dans la sortie.

Étape 1 : cloner la carte SD vers le NVMe

Utilisez dd pour copier l’intégralité de la carte SD vers le NVMe. Lancez la commande dans une session tmux pour éviter une interruption si votre connexion SSH tombe :

Terminal window
sudo tmux new -s clone
sudo dd if=/dev/mmcblk0 of=/dev/nvme0n1 bs=4M status=progress conv=fsync

L’opération prend quelques minutes selon la taille de la carte SD. Attendez la fin de la commande avant de continuer. (Si la connexion tombe et que dd est interrompu, relancez simplement la même commande : elle réécrit le NVMe depuis zéro.)

Étape 2 : réparer et redimensionner la partition NVMe

Après le clonage, le système de fichiers a besoin d’une vérification et la partition racine doit être étendue pour exploiter toute la capacité du NVMe.

Terminal window
sudo apt install cloud-guest-utils
sudo e2fsck -f /dev/nvme0n1p1
sudo growpart /dev/nvme0n1 1
sudo resize2fs /dev/nvme0n1p1

Vous pouvez vérifier le résultat avec lsblk : nvme0n1p1 doit maintenant refléter la taille complète du SSD.

Étape 3 : mettre à jour la configuration de boot

Le bootloader cloné pointe toujours vers la carte SD comme système de fichiers racine. Montez la partition racine du NVMe et éditez extlinux.conf :

Terminal window
sudo mkdir -p /mnt/nvme
sudo mount /dev/nvme0n1p1 /mnt/nvme
cat /mnt/nvme/boot/extlinux/extlinux.conf

Vous verrez quelque chose comme :

APPEND ${cbootargs} root=/dev/mmcblk0p1 rw rootwait ...

Remplacez mmcblk0p1 par nvme0n1p1 :

Terminal window
sudo sed -i 's|root=/dev/mmcblk0p1|root=/dev/nvme0n1p1|g' /mnt/nvme/boot/extlinux/extlinux.conf
sudo umount /mnt/nvme

Étape 4 : copier la partition EFI vers le NVMe

Sous JetPack 6, /boot/efi est une partition séparée qui réside par défaut sur la carte SD (mmcblk0p10). Il faut copier son contenu vers l’équivalent sur le NVMe (nvme0n1p10).

N’utilisez pas dd ici : cela dupliquerait l’UUID de la partition, et /etc/fstab monterait alors le mauvais périphérique. À la place, formatez la partition EFI du NVMe à neuf et copiez le contenu manuellement :

Terminal window
sudo mkfs.fat -F 32 /dev/nvme0n1p10
sudo mkdir -p /mnt/nvme-efi
sudo mount /dev/nvme0n1p10 /mnt/nvme-efi
sudo cp -r /boot/efi/* /mnt/nvme-efi/
sudo umount /mnt/nvme-efi

Récupérez le nouvel UUID et mettez à jour /etc/fstab :

Terminal window
sudo blkid /dev/nvme0n1p10
Terminal window
sudo sed -i 's|UUID=<old-uuid>|UUID=<new-uuid>|' /etc/fstab

Vérifiez le résultat avec cat /etc/fstab : la ligne /boot/efi doit désormais référencer l’UUID du NVMe.

Étape 5 : vérifier l’ordre de boot

Terminal window
efibootmgr -v

Sur un Jetson Nano Super avec un NVMe installé, l’entrée NVMe est généralement déjà en tête de BootOrder (vérifiez BootCurrent pour confirmer). Si ce n’est pas le cas, placez-la en premier :

Terminal window
sudo efibootmgr -o XXXX,YYYY,...

Étape 6 : redémarrer et vérifier

Terminal window
sudo reboot

Après le redémarrage, vérifiez que vous tournez bien depuis le NVMe :

Terminal window
lsblk
df -h /

Le système de fichiers racine / doit maintenant être monté sur /dev/nvme0n1p1, et /boot/efi sur /dev/nvme0n1p10. La carte SD n’apparaîtra plus dans lsblk une fois retirée.

Une fois la vérification faite, vous pouvez éteindre le Jetson en toute sécurité et retirer la carte SD (elle ne sert plus) :

Terminal window
sudo poweroff

Testé sur Jetson Orin Nano Super, JetPack 6.2 (R36.4.7)

Articles liés