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é :
lsblkVous 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 :
sudo tmux new -s clonesudo dd if=/dev/mmcblk0 of=/dev/nvme0n1 bs=4M status=progress conv=fsyncL’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.
sudo apt install cloud-guest-utilssudo e2fsck -f /dev/nvme0n1p1sudo growpart /dev/nvme0n1 1sudo resize2fs /dev/nvme0n1p1Vous 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 :
sudo mkdir -p /mnt/nvmesudo mount /dev/nvme0n1p1 /mnt/nvmecat /mnt/nvme/boot/extlinux/extlinux.confVous verrez quelque chose comme :
APPEND ${cbootargs} root=/dev/mmcblk0p1 rw rootwait ...Remplacez mmcblk0p1 par nvme0n1p1 :
sudo sed -i 's|root=/dev/mmcblk0p1|root=/dev/nvme0n1p1|g' /mnt/nvme/boot/extlinux/extlinux.confsudo 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 :
sudo mkfs.fat -F 32 /dev/nvme0n1p10sudo mkdir -p /mnt/nvme-efisudo mount /dev/nvme0n1p10 /mnt/nvme-efisudo cp -r /boot/efi/* /mnt/nvme-efi/sudo umount /mnt/nvme-efiRécupérez le nouvel UUID et mettez à jour /etc/fstab :
sudo blkid /dev/nvme0n1p10sudo sed -i 's|UUID=<old-uuid>|UUID=<new-uuid>|' /etc/fstabVé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
efibootmgr -vSur 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 :
sudo efibootmgr -o XXXX,YYYY,...Étape 6 : redémarrer et vérifier
sudo rebootAprès le redémarrage, vérifiez que vous tournez bien depuis le NVMe :
lsblkdf -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) :
sudo poweroffTesté sur Jetson Orin Nano Super, JetPack 6.2 (R36.4.7)