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了!
热门推荐
镇远:千年底蕴孕育古城文化之魂
十年生死两茫茫 不思量自难忘全诗赏析
稳态电流和电流密度
深圳十大景点探秘:自然风光与人文底蕴交相辉映旅游胜地不容错过
Unity环境渲染与反射探针的深入探索
牛奶饮用指南:从营养到创新饮用方式
拿捏一个人最狠的方式:并非强硬控制,而是无声的心理操控
中年男人,为何悄悄婚外“藏人”?逃不过这三个原因
全球资本流动的新趋势及对经济稳定性的影响
航天员如何在太空中自给自足?这些细菌可能帮得上忙
世界三大避险货币是什么
Grafana配置动态阈值,让你的门限实时更新
深度解析电影《大鱼海棠》:爱与牺牲的东方寓言
形容离家不舍的句子(形容离家不舍心情的话)
【译】编程语言未来十年
公司税务注销全流程指南:从预检到申请,详解三种注销方式
【澳洲留学费用全解析】2025年赴澳留学费用估算指南
上海十大特色名小吃,你居然还没吃过?!
智能抄表系统中的集中器:I型与II型的功能与应用
长白山满族剪纸:世界文化遗产中的独特瑰宝
教育部白名单赛事到底是什么?大家为什么那么重视它?
赏青岩古韵今风 品一座“石头城”的文化魅力
美图大赏!史上最强航空发动机——F35的御用发动机F135
工伤报销需要哪些医院材料?
液塑限实验报告
易筋经洗髓经:说以武入道,还是得先有武功,炼体筑基才是首要的
爱宠学院丨应激与猫友好
无级调光原理大揭秘
破解不用1秒!2024全球最糟密码出炉:看看你用过没
中国企业年金现状及发展建议