RK3588备份Ubuntu20.04系统

随便记录一下,方便查阅

参考:
1、瑞芯微RK3588开发板的固件烧录完整教程(简单好上手)
2、RK3288/RK3399 Ubuntu 系统备份
3、瑞芯微RK3399K固件备份三种方式

1、使用官方的烧写工具备份(失败,已弃坑)

  • 1、使用官方的开发工具,进行信息读取:
    在这里插入图片描述
    一开始是ADB设备,需要进行切换,切换到LOADER设备,读取设备分区表。

  • 2、备份对应的镜像

  • uboot: 程序,一个主要用于系统的引导加载程序,uboot分区简单理解就是运行存储uboot程序的磁盘分区,该程序虽然也需要开发但是很少动,所以基本上备份一次即可
  • trust: 是 U-Boot 作为二级 loader 的打包
  • misc: 用来控制是正常启动,还是进入急救模式(Recovery Mode)
  • boot: 内核的内存启动盘 (initrd),是内核启动后最先加载的根文件系统,包含重要的初始化动作,一般不需要改动。
  • recovery: 急救模式的映像,内含内核和急救模式的根文件系统。
  • backup: 预留,暂时没有用。后续跟 android 一样作为recovery 的 backup 使用.(可省略)
  • oem: 给厂家使用,存放厂家的 app 或数据。只读。代替原来音箱的 data分区。挂载在/oem 目录.(可省略)
  • rootfs: 存放 buildroot 或者 debian 编出来的 rootfs.img,只读
  • userdata: 存 放 app 临 时 生 成 的 文 件 或 者 是 给 最 终 用 户 使 用 。 可 读 写 , 挂 载在/userdata 目录下.(可省略)
    ————————————————
    版权声明:本文为CSDN博主「xiaoyaoyou.xyz」的原创文章,遵循CC 4.0
    BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_39510813/article/details/117824965

在这里插入图片描述

会报错,还是点击导出后立即出现的错误!
在这里插入图片描述

不想搞了,就到这里了

2、使用命令行进行备份(走通了流程)

2.1、RK3588上操作

2.1.1、RK3588安装rsync

终端中输入以下命令:

sudo apt-get update
sudo apt-get install rsync
  • 报错:
topeet@iTOP-RK3588:~ $ sudo apt-get update
[sudo] password for topeet:
Hit:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports focal InRelease
Get:2 http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports focal-updates InRelease [114 kB]
Get:3 http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports focal-backports InRelease [108 kB]
Get:4 http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports focal-security InRelease [114 kB]
Get:5 http://security.ubuntu.com/ubuntu xenial-security InRelease [99.8 kB]
Ign:6 http://security.ubuntu.com/ubuntu xenial-security/main arm64 Packages
Get:7 http://security.ubuntu.com/ubuntu xenial-security/main Translation-en [360 kB]
Ign:6 http://security.ubuntu.com/ubuntu xenial-security/main arm64 Packages
Ign:6 http://security.ubuntu.com/ubuntu xenial-security/main arm64 Packages
Ign:6 http://security.ubuntu.com/ubuntu xenial-security/main arm64 Packages
Ign:6 http://security.ubuntu.com/ubuntu xenial-security/main arm64 Packages
Err:6 http://security.ubuntu.com/ubuntu xenial-security/main arm64 Packages
  404  Not Found [IP: 185.125.190.36 80]
Fetched 436 kB in 4s (105 kB/s)
Reading package lists... Done
E: Failed to fetch http://security.ubuntu.com/ubuntu/dists/xenial-security/main/binary-arm64/Packages  404  Not Found [IP: 185.125.190.36 80]
E: Some index files failed to download. They have been ignored, or old ones used instead.

备份源设置:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

源文件改为:

# 改用华为源,支持arm64框架
deb https://repo.huaweicloud.com/ubuntu-ports/ focal main restricted universe multiverse
# deb-src https://repo.huaweicloud.com/ubuntu-ports/ focal main restricted universe multiverse #源码镜像,注释掉

deb https://repo.huaweicloud.com/ubuntu-ports/ focal-security main restricted universe multiverse
# deb-src https://repo.huaweicloud.com/ubuntu-ports/ focal-security main restricted universe multiverse

deb https://repo.huaweicloud.com/ubuntu-ports/ focal-updates main restricted universe multiverse
# deb-src https://repo.huaweicloud.com/ubuntu-ports/ focal-updates main restricted universe multiverse

deb https://repo.huaweicloud.com/ubuntu-ports/ focal-backports main restricted universe multiverse
# deb-src https://repo.huaweicloud.com/ubuntu-ports/ focal-backports main restricted universe multiverse

## Not recommended
# deb https://repo.huaweicloud.com/ubuntu-ports/ focal-proposed main restricted universe multiverse
# deb-src https://repo.huaweicloud.com/ubuntu-ports/ focal-proposed main restricted universe multiverse

更新源:

topeet@iTOP-RK3588:~ $ sudo apt-get update
Get:1 https://repo.huaweicloud.com/ubuntu-ports focal InRelease [265 kB]
Get:2 https://repo.huaweicloud.com/ubuntu-ports focal-security InRelease [114 kB]
Get:3 https://repo.huaweicloud.com/ubuntu-ports focal-updates InRelease [114 kB]
Get:4 https://repo.huaweicloud.com/ubuntu-ports focal-backports InRelease [108 kB]
Get:5 https://repo.huaweicloud.com/ubuntu-ports focal/main arm64 Packages [940 kB]
Get:6 https://repo.huaweicloud.com/ubuntu-ports focal/main Translation-en [506 kB]
Get:7 https://repo.huaweicloud.com/ubuntu-ports focal/main Translation-zh_CN [113 kB]
Get:8 https://repo.huaweicloud.com/ubuntu-ports focal/restricted arm64 Packages [1,300 B]
Get:9 https://repo.huaweicloud.com/ubuntu-ports focal/restricted Translation-en [6,212 B]
Get:10 https://repo.huaweicloud.com/ubuntu-ports focal/restricted Translation-zh_CN [1,324 B]
Get:11 https://repo.huaweicloud.com/ubuntu-ports focal/universe arm64 Packages [8,458 kB]
Get:12 https://repo.huaweicloud.com/ubuntu-ports focal/universe Translation-en [5,124 kB]
Get:13 https://repo.huaweicloud.com/ubuntu-ports focal/universe Translation-zh_CN [388 kB]
Get:14 https://repo.huaweicloud.com/ubuntu-ports focal/multiverse arm64 Packages [114 kB]
Get:15 https://repo.huaweicloud.com/ubuntu-ports focal/multiverse Translation-zh_CN [4,612 B]
Get:16 https://repo.huaweicloud.com/ubuntu-ports focal/multiverse Translation-en [104 kB]
Get:17 https://repo.huaweicloud.com/ubuntu-ports focal-security/main arm64 Packages [1,486 kB]
Get:18 https://repo.huaweicloud.com/ubuntu-ports focal-security/main Translation-en [338 kB]
Get:19 https://repo.huaweicloud.com/ubuntu-ports focal-security/restricted arm64 Packages [4,404 B]
Get:20 https://repo.huaweicloud.com/ubuntu-ports focal-security/restricted Translation-en [227 kB]
Get:21 https://repo.huaweicloud.com/ubuntu-ports focal-security/universe arm64 Packages [743 kB]
Get:22 https://repo.huaweicloud.com/ubuntu-ports focal-security/universe Translation-en [165 kB]
Get:23 https://repo.huaweicloud.com/ubuntu-ports focal-security/multiverse arm64 Packages [3,072 B]
Get:24 https://repo.huaweicloud.com/ubuntu-ports focal-security/multiverse Translation-en [5,488 B]
Get:25 https://repo.huaweicloud.com/ubuntu-ports focal-updates/main arm64 Packages [1,796 kB]
Get:26 https://repo.huaweicloud.com/ubuntu-ports focal-updates/main Translation-en [421 kB]
Get:27 https://repo.huaweicloud.com/ubuntu-ports focal-updates/restricted arm64 Packages [4,600 B]
Get:28 https://repo.huaweicloud.com/ubuntu-ports focal-updates/restricted Translation-en [242 kB]
Get:29 https://repo.huaweicloud.com/ubuntu-ports focal-updates/universe arm64 Packages [971 kB]
Get:30 https://repo.huaweicloud.com/ubuntu-ports focal-updates/universe Translation-en [247 kB]
Get:31 https://repo.huaweicloud.com/ubuntu-ports focal-updates/multiverse arm64 Packages [8,204 B]
Get:32 https://repo.huaweicloud.com/ubuntu-ports focal-updates/multiverse Translation-en [7,408 B]
Get:33 https://repo.huaweicloud.com/ubuntu-ports focal-backports/main arm64 Packages [45.3 kB]
Get:34 https://repo.huaweicloud.com/ubuntu-ports focal-backports/main Translation-en [16.3 kB]
Get:35 https://repo.huaweicloud.com/ubuntu-ports focal-backports/universe arm64 Packages [24.3 kB]
Get:36 https://repo.huaweicloud.com/ubuntu-ports focal-backports/universe Translation-en [16.3 kB]
Fetched 23.1 MB in 8s (2,753 kB/s)
Reading package lists... Done

再次安装:

topeet@iTOP-RK3588:~ $ sudo apt-get install rsync
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  rsync
0 upgraded, 1 newly installed, 0 to remove and 35 not upgraded.
Need to get 306 kB of archives.
After this operation, 693 kB of additional disk space will be used.
Get:1 https://repo.huaweicloud.com/ubuntu-ports focal-security/main arm64 rsync arm64 3.1.3-8ubuntu0.5 [306 kB]
Fetched 306 kB in 1s (579 kB/s)
Selecting previously unselected package rsync.
(Reading database ... 121008 files and directories currently installed.)
Preparing to unpack .../rsync_3.1.3-8ubuntu0.5_arm64.deb ...
Unpacking rsync (3.1.3-8ubuntu0.5) ...
Setting up rsync (3.1.3-8ubuntu0.5) ...
Created symlink /etc/systemd/system/multi-user.target.wants/rsync.service → /lib/systemd/system/rsync.service.
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for systemd (245.4-4ubuntu3.20) ...
2.1.1、RK3588设置SSH

配置sshd_config文件,确保SSH能够通过root用户登录!

sudo vim /etc/ssh/sshd_config

再设置sshd_config:

sudo vim /etc/ssh/sshd_config

修改其中的Authenation下的PermitRootLoginyes即可:

# Authentication:
#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
...

在这里插入图片描述

然后重启生效:

/etc/init.d/ssh restart

2.2、虚拟机Ubuntu上操作

2.2.1、把开发板上的文件同步到虚拟机中

在虚拟机的Ubuntu系统上创建一个目录,用来存放 RK3588 开发板的文件系统:

mkdir rootfs

RK3588的IP为192.168.1.123,在虚拟机上ping以下,看是否能通:
在这里插入图片描述
在虚拟机上同步开发板文件系统,执行:

# 将RK3588的文件同步到虚拟机上的rootfs文件夹上
# 需要root权限登录RK3588设备,不然没法完全把文件备份出去,做出来的镜像是没法导入的
sudo rsync -avx root@192.168.1.123:/ rootfs

rsync的使用可以参考: 1、rsync
用法教程

2、Linux下rsync(本地、远程)文件同步
例如:rsync -av root@192.168.1.77:/etc/hosts /dir1/
#将192.168.1.77服务器/etc/hosts文件拷贝到本地/dir1文件夹下
rsync 的最大特点是会检查发送方和接收方已有的文件,仅传输有变动的部分(默认规则是文件大小或修改时间有变动)

在这里插入图片描述

vim ~/.ssh/config

在文件中输入下面内容:

UserKnownHostsFile ~/.ssh/known_hosts

再次在虚拟机上执行rsync同步指令:
在这里插入图片描述
RK3588的文件开始传输到虚拟机上,等待文件传输完毕:
在这里插入图片描述
执行结束后可将开发板的文件系统同步到虚拟机上。

2.2.2、在虚拟机中打包生成img文件
  • 1、制作镜像,用dd工具创建镜像文件,在主机执行指令(可以制作出一个大小为 7000M 的空 img 文件,大小可以修改 count 值)
    3G不够用,下面还得重新创建大一点的!!!
# rk3588_230417.img是创建的img文件名字
dd if=/dev/zero of=rk3588_230417.img  bs=1M count=7000

/dev/zero:为虚拟盘的名字。
rk3588_230417.img:为要建的镜像文件。
bs=1M :表示每块读写1M数据。
count=7000:拷贝块的数量。

结果如图:
在这里插入图片描述

topeet@ubuntu:~$ dd if=/dev/zero of=rk3588_230417.img  bs=1M count=7000
记录了7000+0 的读入
记录了7000+0 的写出
7340032000字节(7.3 GB,6.8 GiB)已复制,10.9088 s,673 MB/s
  • 2、格式化镜像文件,并加入 linuxroot 卷标:
sudo mkfs.ext4 -F -L linuxroot rk3588_230417.img

在这里插入图片描述

  • 3、挂载镜像并往里面拷入修改后的文件系统
#创建镜像文件挂载目录
mkdir ubuntu-mount
#挂载空的 img 文件
sudo mount rk3588_230417.img ubuntu-mount
#将文件系统拷贝到 img 挂载的路径目录下,rootfs是同步过来的文件夹
sudo cp -rfp rootfs/* ubuntu-mount
# 卸载镜像
sudo umount ubuntu-mount

在这里插入图片描述

这样 rk3588_230417.img 里就已经有刚才制作的根目录内容了,但 rk3588_230417.img 文件大小却是定义的分区大小,不是文件系统的实际大小,所以还要经过一些处理才能发布。

  • 4、检查并修复rk3588_230417.img镜像的文件系统
sudo e2fsck -p -f rk3588_230417.img
  • 5、精简rk3588.img镜像文件的大小
sudo resize2fs -M rk3588_230417.img

在这里插入图片描述

把打包好的文件用SFTP传输到Win10主机上,就完成了。

2.3、烧写测试

开发板的文件系统已经重新打包成了rk3588_230417.img,用该文件和相应的内核文件就可生成系统镜像,烧录镜像后就可直接运行用户程序,从而省掉了重新安装包和其他配置的工作。

  • 1、删除RK3588上的文件
    在这里插入图片描述
    如图所示,删除这两个文件夹:Sambatest7_2

  • 2、解压原始镜像得到parameter.txt文件:
    在这里插入图片描述
    在输出目录中找到对应的文件即可

  • 3、用瑞芯微给的镜像烧写软件,把img 烧录到设备 rootfs 分区

开发板连接Windows电脑,并打开 RKDevTool 烧录工具,让开发板进入 Loading 模式;
在这里插入图片描述

如上图,只选择rootfs分区,点击右边的框框选择备份好的rk3588_230417.img镜像,然后点击执行,开始烧写文件:
在这里插入图片描述

但注意单独烧写rootfs时要包含parameter.txt文件,这个文件需要解压原始镜像获取,否则很可能会出问题 ——来自瑞芯微RK3399K固件备份三种方式

本人没有试过,直接两个文件一起烧录进去了。

烧录进度100% 后,开发板会自动重启,进入新系统。

在这里插入图片描述

等系统自动重启后,可以看到之前删除的文件回来了:
在这里插入图片描述
但开发板的存储空间不对:
在这里插入图片描述
rootfs的大小缩水了,上面显示只有6.7G,而我们通过parted查看理论上我们的根分区大小应该是14G大小才对,通过以下命令查看(建议使用parted,MBR和GPT分区表都能识别,目前由于磁盘容量的扩大,都在逐渐过渡到GPT分区表了):

lsblk
df -h
sudo parted /dev/mmcblk0
(parted) p

在这里插入图片描述
卧槽,没想到userdata这么多空间,14.8G。
下次使用可以把大文件放在这里
在这里插入图片描述

这个是由于我们的文件系统大小没有设置成分区大小引起的,对rk3588_230417.img做的廋身操作吗,在那个位置对镜像文件结合内容进行了搜身,所以这里默认显示的是系统的大小,那么我们将其重新设置为分区大小即可,参考这里的命令

sudo resize2fs /dev/mmcblk0p6

在这里插入图片描述

topeet@iTOP-RK3588:~/Documents/TOB $ sudo resize2fs /dev/mmcblk0p6
resize2fs 1.45.5 (07-Jan-2020)
Filesystem at /dev/mmcblk0p6 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/mmcblk0p6 is now 3670016 (4k) blocks long.

topeet@iTOP-RK3588:~/Documents/TOB $ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        14G  6.7G  6.5G  52% /
devtmpfs        3.7G  8.0K  3.7G   1% /dev
tmpfs           3.8G     0  3.8G   0% /dev/shm
tmpfs           768M  3.7M  764M   1% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           3.8G     0  3.8G   0% /sys/fs/cgroup
tmpfs           3.8G  180K  3.8G   1% /tmp
/dev/mmcblk0p7  123M   13M  104M  11% /oem
/dev/mmcblk0p8   15G   22K   15G   1% /userdata
tmpfs           768M   12K  768M   1% /run/user/1000

到此,就完成了RK3588的备份了。

  • 6
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
要在RK3588上安装Ubuntu 20.04,您需要按照以下步骤进行操作: 1. 下载Ubuntu 20.04镜像: 首先,从Ubuntu官方网站上下载RK3588Ubuntu 20.04镜像文件。确保选择与RK3588架构相匹配的版本。 2. 准备安装介质: 您需要一个可启动的USB闪存驱动器,将Ubuntu 20.04镜像烧录到该驱动器上。使用烧录工具(如Rufus或Etcher)将镜像写入USB驱动器。 3. 进入RK3588的Recovery模式: 关闭RK3588设备,然后将USB驱动器插入设备。按住设备上的恢复(Recovery)按钮,然后再次启动设备。设备将会进入Recovery模式。 4. 安装Ubuntu: 确保USB驱动器已经插入设备,然后从设备的Recovery模式菜单中选择“从外部存储器启动”。设备将会读取USB驱动器上的Ubuntu 20.04镜像,并启动安装程序。 5. 跟随安装向导: 根据安装向导的指示,选择所需的语言、时区和键盘布局。然后,选择将Ubuntu 20.04安装在RK3588设备的硬盘上,可以选择清除原有的操作系统或者进行双启动设置。 6. 等待安装完成: 完成安装后,等待系统RK3588设备上完成安装和配置。可以根据需要设置用户名和密码。 7. 重启设备: 在安装完成后,从设备的Recovery模式菜单中选择“重新启动系统”,然后拔掉USB驱动器。RK3588设备将会重新启动,进入刚安装的Ubuntu 20.04操作系统。 请记住,在进行这个过程之前,请备份您的重要数据。安装新的操作系统可能会擦除设备上的现有数据。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值