当前位置: 首页 > news >正文

宇树 G1 部署(七)——系统重装与镜像还原

使用过程中系统崩了,不知道是自己操作不当还是系统故障

但是宇树售后还是蛮好的,可以直接在售后提交工单,反馈的很快:宇树客户服务


参考链接:宇树科技 文档中心

既然有镜像,那就简单了,记一下流程,省的再重装忘了

有几个重点先说明:

1. 强烈不建议把普通 U 盘作为引导设备,nvme 盘是必须的,因此 nvme 移动硬盘盒也是必须的

2. 系统镜像还原后还挺大的,如果想做个新系统记得 1T 及以上 nvme 盘

3. 我一开始以为 G1 系统重装和 win/linux 一样靠启动盘,直到我买的 256g nvme 盘没装下 8g 的引导系统后,才明白这应该是直接在上面装的系统而不是制作启动盘

4. 宇树售后也会犯错,很多问题还是要根据自己判断

目录

1 整体流程及逻辑

2 系统重装

2.1 查看端口

2.2 格式化

2.3 镜像烧录

2.4 替换 G1 设备树

3 镜像备份


1 整体流程及逻辑

重装有两种方法:

1. 拆机取下 G1 内部的 nvme 硬盘,然后直接在此硬盘上安装系统;

2. 拿一个新的硬盘重装系统,然后在启动过程中按 F11 进入 BIOS/UEFI 选择新装好的系统盘,然后通过引导往 G1 的 pc2 里面烧系统,然后取下新硬盘重启

说实话我觉得2更靠谱,但是官方给的答复是:

重装的过程中突然想到,官方教程说到系统恢复是“上述实验的逆过程”,那第二种方法才应该是更好的吧......有种被坑了的感觉

如果下次再重装系统那就测试一下2!

记录一下拆机系统重装的流程

2 系统重装

首先拆掉背板取下 nvme 硬盘(此处吐槽一下,G1 真的更像是一个玩具而不是工业级机器人,后盖的四个角螺钉根本就没有,只要把两个内六角螺栓拧下来就可以撬开了,假装式设计)

然后再准备一个 nvme 移动硬盘盒,组装装好后插在 PC 端上开始重装

2.1 查看端口

lsblk -o NAME,SIZE,MODEL,FSTYPE,MOUNTPOINT
(base) yejiangchen@yejiangchen:~$ lsblk -o NAME,SIZE,MODEL,FSTYPE,MOUNTPOINT
NAME          SIZE MODEL                 FSTYPE   MOUNTPOINT
loop0           4K                       squashfs /snap/bare/5
loop1        73.9M                       squashfs /snap/core22/2045
loop2        73.9M                       squashfs /snap/core22/2010
loop3       245.5M                       squashfs /snap/firefox/6316
loop4       245.3M                       squashfs /snap/firefox/6495
loop5         497M                       squashfs /snap/gnome-42-2204/141
loop6         516M                       squashfs /snap/gnome-42-2204/202
loop7        91.7M                       squashfs /snap/gtk-common-themes/1535
loop8        12.3M                       squashfs /snap/snap-store/959
loop9        12.2M                       squashfs /snap/snap-store/1216
loop10       50.9M                       squashfs /snap/snapd/24718
loop11       49.3M                       squashfs /snap/snapd/24792
loop12        568K                       squashfs /snap/snapd-desktop-integration/253
loop13        576K                       squashfs /snap/snapd-desktop-integration/315
sdc           1.9T iPlus5000 2TB                  
├─sdc1        1.9T                       ext4     /media/yejiangchen/7073f027-1f76-471e-8386-b7ac9f58e0e6
├─sdc2         64M                                
├─sdc3        448K                                
├─sdc4         32M                                
├─sdc5         64M                                
├─sdc6        448K                                
├─sdc7         32M                                
├─sdc8         80M                                
├─sdc9        512K                                
├─sdc10       300M                                
├─sdc11        64M                       vfat     
├─sdc12        80M                                
├─sdc13       512K                                
└─sdc14        64M                                
nvme0n1       1.9T ZHITAI TiPlus7100 2TB          
├─nvme0n1p1   512M                       vfat     /boot/efi
└─nvme0n1p2   1.9T                       ext4     /

可以看到该 nvme 存储设备的设备节点为 sdc

2.2 格式化

如果存储设备是第一次使用,需要将磁盘进行格式化为 ext4:

sudo mkfs -t ext4 /dev/sdc

但是我是直接取下之前的,做不做理论都可以,但我格式化了

2.3 镜像烧录

备注:宇树出厂的镜像下载地址在这里
NX 镜像:nx.img.bz2
链接:https://pan.baidu.com/s/1yPnZ6hCGSEAlpht3YvNzAQ?pwd=1221 
提取码:1221NANO 镜像:nano.img.bz2
链接:https://pan.baidu.com/s/1lkj-VhcczexOgr4dEnge0Q?pwd=1221 
提取码:1221

下载 NX 镜像:nx.img.bz2

完成后,开始镜像烧写:

bzip2 -dc /home/yejiangchen/Desktop/Codes/unitree/nx.img.bz2 | sudo dd of=/dev/sdc status=progress

此处说明几点:

1. 用 dd 写整个镜像到目标盘:

  • dd 会原样把整个镜像的内容(分区表、MBR/GPT、分区、文件系统、数据等)按扇区全部覆盖写入到目标磁盘
  • 旧系统、原有分区、文件系统等全部被抹掉/覆盖,和格式化没本质区别,最终磁盘结构和 img 文件内容100%一致
  • 即使目标盘之前有任何数据、分区、格式化信息,都会被新镜像覆盖。

2. bzip2 -dc:解压文件并输出到标准流,路径采用了绝对路径

3. status=progress:显示实时进度,如下图

重要的事情说三遍:

烧录(dd 镜像写入)的时候,硬盘必须是 unmount(未挂载)状态!!!

烧录(dd 镜像写入)的时候,硬盘必须是 unmount(未挂载)状态!!!

烧录(dd 镜像写入)的时候,硬盘必须是 unmount(未挂载)状态!!!

因为如果烧录的磁盘仍有分区挂载,操作系统和文件系统会认为这个分区还在被使用,这会导致烧录写入时文件系统和磁盘结构冲突

就因为每次格式完手贱点进去看一眼,让我烧了四次每次都是空的,排查后才发现这个问题

(base) yejiangchen@yejiangchen:~$ bzip2 -dc /home/yejiangchen/Desktop/Codes/unitree/nx.img.bz2 | sudo dd of=/dev/sdc status=progress
[sudo] password for yejiangchen: 
256037900800 bytes (256 GB, 238 GiB) copied, 5675 s, 45.1 MB/s
500118192+0 records in
500118192+0 records out
256060514304 bytes (256 GB, 238 GiB) copied, 5675.46 s, 45.1 MB/s
  • dd 输出中 records in 和 records out 数字相同,说明数据流没有中断/丢失

  • 数据总量和镜像大小基本一致

  • 命令返回到了shell提示符,没有报错,烧录100%完成

再次查看可以看到 sda 1.9T iPlus5000 2TB 已经装好了

(base) yejiangchen@yejiangchen:~/Desktop/Codes/unitree$ lsblk -o NAME,SIZE,MODEL,FSTYPE,MOUNTPOINT
NAME          SIZE MODEL                 FSTYPE   MOUNTPOINT
loop0           4K                       squashfs /snap/bare/5
loop1        73.9M                       squashfs /snap/core22/2010
loop2        73.9M                       squashfs /snap/core22/2045
loop3       245.5M                       squashfs /snap/firefox/6316
loop4       245.3M                       squashfs /snap/firefox/6495
loop5         497M                       squashfs /snap/gnome-42-2204/141
loop6         516M                       squashfs /snap/gnome-42-2204/202
loop7        91.7M                       squashfs /snap/gtk-common-themes/1535
loop8        12.2M                       squashfs /snap/snap-store/1216
loop9        12.3M                       squashfs /snap/snap-store/959
loop10       50.9M                       squashfs /snap/snapd/24718
loop11       49.3M                       squashfs /snap/snapd/24792
loop12        568K                       squashfs /snap/snapd-desktop-integration/253
loop13        576K                       squashfs /snap/snapd-desktop-integration/315
sda           1.9T iPlus5000 2TB                  
├─sda1      237.7G                       ext4     /media/yejiangchen/7073f027-1f76-471e-8386-b7ac9f58e0e6
├─sda2         64M                                
├─sda3        448K                                
├─sda4         32M                                
├─sda5         64M                                
├─sda6        448K                                
├─sda7         32M                                
├─sda8         80M                                
├─sda9        512K                                
├─sda10       300M                                
├─sda11        64M                       vfat     
├─sda12        80M                                
├─sda13       512K                                
└─sda14        64M                                
sdb           1.8T Elements 2621                  
└─sdb1        1.8T                       ntfs     /media/yejiangchen/Elements
nvme0n1       1.9T ZHITAI TiPlus7100 2TB          
├─nvme0n1p1   512M                       vfat     /boot/efi
└─nvme0n1p2   1.9T                       ext4     /

2.4 替换 G1 设备树

系统起来后,仍需:

1. 替换成 G1 设备树,把 kernel_tegra234-p3767-0000-p3768-0000-a0.dtb 拷贝到 /boot/dtb/ 下面, 设备树下载链接:G1设备树文件

2. 修改 ip 为 192.168.123.164

3. 安装各种驱动:网卡驱动

 此时已经完成了基础功能,但依然缺很多驱动,具体安装什么后面笔记已记录

3 镜像备份

为了防止系统崩溃装的各种驱动没了,还是建议每隔一段时间备份一次系统

备份逻辑如下,和恢复的逻辑基本就是逆过程:

把 nvme 存储设备插入主机(借助 nvme 移动硬盘盒),lsblk -f 查看存储设备的节点,比如存储设备节点是 /dev/sdc/,存储设备格式是 ext4

把 nvme 存储设备备份到当前的 PC 主机上:

sudo dd if=/dev/sdc status=progress | bzip2 > nx.img.bz2

上述命令执行结束后,把系统盘从主机移除

拿到新的 nx.img.bz2 就可以下次使用啦

更多问题可以查看 G1 SDK 开发指南

http://www.dtcms.com/a/283342.html

相关文章:

  • 第13章 AB实验平台的建设
  • Redis原理和应用以及整合SpringBoot+Vue
  • RAG优化秘籍:基于Tablestore的知识库答疑系统架构设计
  • 智能体架构深度解构:一次用户请求的完整旅程
  • 多维动态规划题解——最小路径和【LeetCode】空间优化一维数组
  • Java设计模式之-组合模式
  • Fiddler 中文版 API 调试与性能优化实践 官方中文网全程支持
  • 怎么删除 wps 的右键菜单
  • Android-EDLA【CTS】CtsMediaRecorderTestCases存在fail
  • 初等数论简明教程
  • watermark的作用
  • 剑指offer63_扑克牌的顺子
  • 如何加快golang编译速度
  • Cursor区域限制问题解决方案:AI模型访问技术突破与环境隔离实践
  • 如何在硬件中进行有效地调试
  • SIMATIC HMIWinCC UnifiedPerformance Insight - 使用 KPI 优化流程
  • 冰岛人(map)
  • Java破解零工市场“真需求”
  • Day04_C语言网络编程20250716
  • 认识ETL流程:数据工程的基石
  • 暑期自学嵌入式——Day04(C语言阶段)
  • 深度学习中的注意力机制:原理、应用与实践
  • 【Linux】如何使用nano创建并编辑一个文件
  • 暑期算法训练.2
  • PHP8.5.0 Alpha 1 正式发布!
  • 1_需求规格编写提示词_AI编程专用简化版
  • 华为OD机试_2025 B卷_完美走位(Python,100分)(附详细解题思路)
  • mongodb操作巨鹿
  • 9.IEnumerable可枚举接口 C#例子 WPF例子
  • NE综合企业网络实验:从VLAN到OSPF全配置