将装有固态硬盘的Jetson AGX Xavier的镜像拷贝并安装到其他Xavier上

前言

公司之前有一台Xavier,环境啥的都配置好了在使用着,但是以后量产后每台机器总不能都手动配环境软件吧,所以就决定将装好环境的Xavier的Ubuntu系统备份镜像,然后再拷贝到新的Xavier板子上。由此遇到了一堆堆的问题,经过了九九八十一难终于搞好了,特此记录下遇到的坑,以供大家参考

制作系统备份

小坑:因为之前的时候我也做过Ubuntu系统备份,所以就直接用我之前的做法来做,就是用Systemback来制作镜像,结果怎么也装不上,然后一查才知道,Systemback只能装在AMD的板子上,而Xavier是arm架构的板子,因此就此作罢。

所需电脑:两台Xavier,一台是公司配好环境的机子X1,一台是刚买的Xavier机子X2,两台电脑都又插有256G的固态硬盘;再准备一台linux系统的电脑(host)做中介作用。
参考教程:link1link2

一,两个教程互补着看,先将host和X1配置到同一个局域网内,然后host通过ssh连接X1,可以把raw文件给做到host电脑上.
在host电脑上操作:

ssh X1@192.168.0.110
sudo echo "u" | sudo dd of=/proc/sysrq-trigger
sudo dd if=/dev/mmcblk0p1 | ssh host@192.168.0.85 dd of=/home/host/xavier-image.raw

二,将host中的raw文件转化成img文件,这个我贴的两个教程上的两种方法都可以,我都试过了都可以,然后放到~/nvidia/JetPack_4.3_Linux_P2888/Linux_for_Tegra/bootloader/文件夹中(但是这个路径的产生是你需要执行Jetson OS image什么的,link1里有介绍,不过我没安装,因为我的电脑上之前有同事已经安装好了,就省了事),不过如果这个文件夹下本来就有system.img(官方自带镜像,后悔药)的话,先备份保存下,然后在放入新的img文件。

cd  ~/nvidia/JetPack_4.3_Linux_P2888/Linux_for_Tegra/bootloader/
mv system.img system.img.bk
ln -s /home/host/xavier-image.raw system.img 

三,现在就可以用Xavier的原装USB线连接host和X2用来刷机了,但是一定要注意,type-c端一定要插入P2电源灯亮一侧的type-c口,而不是电源线插口一侧,然后接着就可以让X2进入recovery模式了,进入方式:先按下中间的recovery键不松开,然后再按下电源键,过个一两秒后同时松开,就进入了该模式了

四,host上输入如下命令行

cd ~/nvidia/JetPack_4.3_Linux_P2888/Linux_for_Tegra/
sudo ./flash.sh -r jetson-xavier mmcblk0p1

五,好了,上面写的其实和教程几乎一样,就对我自己注意的点多说了几句。如果你的Xavier没有多加固态的话,等安装完开机后应该就可以用了。

但是我的X1是带有固态的,而且把/home挂载在固态上的。导致上面的步骤做完只会显示you are in emergency mode这样的字样。因为此时X2的/home是没有挂载上固态的,而且在上面的教程中,只将X1自身的内存(/dev/mmcblk0p1)给做成镜像了,而固态硬盘(/dev/nvme0n1p1)的内容并没有拷出来,因此需要做如下操作(不要此时就按步操作,看到最后,后面有我自己当时绕弯的做法,可以借鉴):

1,X2在登录界面时,同时按下Ctrl+alt+f2,如果没反应你再加fn键试一试,这都是从网上搜出来的方法,然后进入命令行界面。

2,依次输入用户名和密码,然后输入sudo vi /etc/fstab 查看磁盘挂载情况,其实现在X2和X1的根目录的内容已经完全一样了,只是X2缺少家目录而已,所以相当于查看X1的磁盘挂载情况。该文件里为

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mmcblk0p1    /              ext4     default          0       1
/dev/nvme0n1p1    /home          ext4     default          1       2

也就是说明/dev/nvme0n1p1在X1是我的固态硬盘,挂载在/home下,因此需要X2也挂载上固态。

3,由于X2上的固态是新装的,需要先对他进行分区,再挂载,可参考教程link3,对/dev/nvme0n1进行分区,只分一个区,并挂载到/home下,然后重启,这时会进入到输入密码界面,但遗憾的是只能进入到这个界面,输入密码后显示屏一闪后仍然回到这个登录界面,这是因为固态虽然已经挂载上了,但是固态里面什么都没有,需要将X1的/home目录中的内容完全拷贝到X2的/home下。

4,拷贝的方式采用rsync命令来远程拷贝,这时就是让X2和X1同处于一个局域网内,然后给两个Xavier都安装rsync命令:

sudo apt-get install rsync; 

参考教程link4,在X2里输入命令行

rsync -avzh X1@192.168.0.110:/home/X1/ /home/X2

这里面的X2和X1只是便于理解,真是拷贝镜像的话,两台Xavier的用户名和密码都是一样的。

5,home目录拷贝完后输入reboot重启,没有问题的话就可以登录进去了。


其实上面的1-5步(不是一到五)我不是这样做的,是我自己总结出来的最简步骤。我是先没有给X2刷X1的镜像而是直接打开X2,他自己有预装Ubuntu18.04系统,接着把固态硬盘/dev/nvme0n1p1先分区(参考link3)再挂载在/home目录下(参考教程link5);然后再给X2刷X1的镜像,刷完之后他仍会困在登录界面,再通过按Ctrl+alt+fn+f2进入命令行界面,修改/home目录下的用户文件夹的名称,要和X1的用户名一样。修改后输入reboot,这样的话X2就能够进入系统了,但是此时的X2和X1的区别在于X2的/home文件夹是原装系统的内容而不是X1中/home文件夹的内容,还是需要通过rsync命令把X1的拷贝过来

  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值