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了!
热门推荐
相机照片传输方法详解:USB、无线、云存储等多种方式
看到火山喷出那朵云,有人立刻逃命,有人成了千年遗骸
地铁和地下停车场火灾防范措施
编译码器在现代通信中的重要作用与应用分析
共同居住证明开具指南
运动控血糖,这些关键点要掌握
心理学上有一个词:应激反应
找回失落学位证书编号的全面指南
科幻作品中的地球观:从《三体》到《沙丘》,地球在宇宙中的不同命运
回迁房与安置房的区别及拆迁补偿相关问题详解
如何选择历代性价比高的NVIDIA显卡
我国法律对孤儿年龄的定义和保护措施
食品安全公益诉讼典型案例:法律实务与实践精析
植物与生活:芹叶牡丹的栽培要点
3个月宝宝爱哭怎么办
本科和一本哪个学历高?考上一本大学需要多少分?
火车全程票能在中间站上车吗?解密火车旅行的灵活选择
网络用语"CUE"是什么意思?
澳大利亚葡萄酒重返中国市场:机遇与挑战并存
儿童眼药水有哪些种类?它们的主要用途和结果是什么?
RISC-V生态崛起:国产芯片的“平权革命”与A股投资机遇
Meta分析法的理论与实践
电影《苏州河》:一段关于爱情与救赎的都市寓言
体内合成cDNA的步骤及cDNA的定义
租房安全事故责任如何划分?房东与租客各自承担什么?
安置房和回迁房的区别及征地补偿方式详解
TikTok这泼天流量,小红书的AI接得住吗?
7种常用于消化不良、胃胀、慢性胃肠炎的中成药,建议收藏
使用Visual Studio Code创建.NET控制台应用程序教程
企业泄密问题预想及其法律防范对策研究