Jetson Orin Nano 扩容 NVMe SSD 配置指南
创作时间:
作者:
@小白创作中心
Jetson Orin Nano 扩容 NVMe SSD 配置指南
引用
CSDN
1.
https://blog.csdn.net/weixin_43837762/article/details/139647951
本文将详细介绍如何在Jetson Orin Nano开发板上配置NVMe SSD,包括硬件安装、系统识别、格式化、挂载以及迁移Docker目录等步骤。通过本文的指导,你将能够充分利用NVMe SSD的高速读写性能,为存储容器镜像和rosbag文件提供更大的空间。
前言
如果你在使用Jetson开发套件,为了存储容器镜像和rosbag文件,你需要一个快速且大容量的存储设备。最好的方式是安装NVMe SSD到Jetson开发套件的载板上。
注意:通过USB 3.x连接SSD并不推荐,因为其读写速度比NVMe(PCIe)接口慢。
一、配置Jetson使用NVMe SSD
选择以下方法之一来设置Jetson的NVMe SSD:
- 在全新Jetson开发套件上安装NVMe SSD,并使用运行在Ubuntu PC上的SDK Manager将整个L4T(Jetson Linux)刷入SSD。
- 将L4T刷入Jetson的eMMC或microSD卡,然后安装NVMe SSD,并将其配置为ROS2工作区或Docker overlay文件的可选存储。
第一个选项更简单,但需要重新刷写整个Jetson,会导致现有文件丢失。第二个选项虽然步骤更多,但可以避免重新刷写Jetson。
二、使用步骤
1.SSD安装和自动挂载
- 断开Jetson开发套件的电源和所有外设
- 将NVMe SSD安装到Jetson开发套件的载板上,确保正确连接并用螺丝固定
- 重新插入电源线和外设,并启动Jetson开发套件。
验证系统是否识别到PCI总线上的新内存控制器:
lspci
典型输出应如下所示:
0007:01:00.0 Non-Volatile memory controller: Marvell Technology Group Ltd. Device 1322 (rev 02)
使用lsblk命令找到设备名称:
lsblk
典型输出应如下所示:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 16M 1 loop
mmcblk1 179:0 0 59.5G 0 disk
...
nvme0n1 259:0 0 238.5G 0 disk
识别你的SSD对应设备名称,在我的设备中为nvme0n1
2.格式化SSD,创建挂载点并挂载到文件系统(可以不格式化)
- 格式化(可选):
sudo mkfs.ext4 /dev/nvme0n1
#mkfs.ext4格式化并转成ext4格式,可以看情况跳过这一步
- 挂载
sudo mkdir -p /mnt/nova_ssd
#自己选名字,我这里写的nova_ssd
sudo mount /dev/nvme0n1 /mnt/nova_ssd
- 为了确保挂载在启动后仍然有效,需要添加一个条目到fstab文件:
找到你的SSD的UUID:
lsblk -f
- 编辑fstab文件(vim nano gedit都行,看习惯):
sudo vi /etc/fstab
- 插入以下内容,替换为你的UUID:
UUID=你的UUID /mnt/nova_ssd/ ext4 defaults 0 2
- 更改/mnt/nova_ssd目录的所有权:
sudo chown ${USER}:${USER} /mnt/nova_ssd
- 查看当前USER是谁
whoami
3.迁移Docker目录到SSD
- 将nvidia用户添加到docker组以便使用docker无需sudo:
sudo usermod -aG docker $USER
id nvidia | grep docker
newgrp docker
- 停止Docker服务
sudo systemctl stop docker
- 移动现有的Docker文件夹:
sudo du -csh /var/lib/docker/ && \
sudo mkdir /mnt/nova_ssd/docker && \
sudo rsync -axPS /var/lib/docker/ /mnt/nova_ssd/docker/ && \
sudo du -csh /mnt/nova_ssd/docker/
- 编辑/etc/docker/daemon.json文件:
sudo vi /etc/docker/daemon.json
把下面内容复制进去做替换:
{
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
},
"default-runtime": "nvidia",
"data-root": "/mnt/nova_ssd/docker"
}
- 重命名旧的Docker数据目录:
sudo mv /var/lib/docker /var/lib/docker.old
- 重新启动Docker守护进程:
sudo systemctl daemon-reload && \
sudo systemctl restart docker && \
sudo journalctl -u docker
3.在SSD上测试Docker
- 打开一个终端监控磁盘使用情况:
watch -n1 df
- 在另一个终端开始Docker拉取:
docker pull nvcr.io/nvidia/l4t-base:r35.2.1
观察/mnt/nova_ssd的磁盘使用情况随着容器镜像的下载和解压而增加
4.最终验证
重新启动Jetson,验证以下内容:
- 查找并显示已连接的NVMe SSD的UUID
sudo blkid | grep nvme
典型输出:
/dev/nvme0n1: UUID="9fc06de1-7cf3-43e2-928a-53a9c03fc5d8" TYPE="ext4"
- 以人类可读的格式显示文件系统的磁盘空间使用情况
df -h
典型输出:
Filesystem Size Used Avail Use% Mounted on
/dev/mmcblk1p1 116G 18G 94G 16% /
...
/dev/nvme0n1 458G 824M 434G 1% /mnt/nova_ssd
- 从Docker的信息输出中筛选包含“Root”字符串的行
docker info | grep Root
典型输出:
Docker Root Dir: /mnt/nova_ssd/docker
三.总结
至此,你的Jetson现在已经配置好使用SSD了!
热门推荐
保研路上如何与意向导师建立联系?这份实用指南请收好
金庸小说正确阅读顺序
精神病鉴定程序有哪些规定
小儿满月吉日择日法:从古至今的传统文化传承
职业倦怠的三个典型表现
逻辑与集合论基础及其在编程中的应用
古籍善本的整理与校勘
漫步天津:感受这座城市的独特韵味
片剂掰开服用?胶囊打开冲水?贵医附院专家为您揭开用药误区
比特币的核心机制是什么?
抵押车出了事故谁负责
排骨烹饪技巧:浸泡和腌制让排骨软烂鲜香
观鸟笔记:鹭鸟家族大齐聚~
龋齿烂到神经怎么办,需要杀神经吗?
个人与单位分别怎么缴纳住房公积金呢
蛛网膜囊肿是怎么形成的
《哪吒2》的成功绝非偶然,但恐怕也难以复制
射频仪是否可以去眼袋?
家用伍德灯与紫光灯识别猫咪猫藓
HRD如何科学选择人力资源?全流程指南与最佳实践
开设物业公司、承接物业项目、参与招投标需要什么证书
警惕!农户在安装户用光伏时易踩的五大陷阱,提防五类光伏诈骗!
消费贷款用途:如何实现合理使用?
逃票是否违法?详解逃票行为的法律责任
妇好:一生征战90多次,击败20多个国家,中国历史上第一个女将军
玻璃体混浊患者能否进行近视眼手术?专家解读来了
揭秘速效救心丸:为何它在急救药物中可以“拔得头筹”?
董事会决策失误对公司利益的影响
个人档案查询法律依据是什么
牛顿第二定律适用范围 性质是什么