设备及系统:nuc幻影峡谷工控机,ubuntu20.04
一、确定SD卡设备号的两种方法
方法1:
将有ubuntu镜像的SD卡插入读卡器,再将读卡器插入电脑主机,在 工具 中打开 磁盘,查看SD卡设备号,如下图所示,因为我的SD卡分区了,因此有/dev/sda1和/dev/sda2,但是总的设备号是/dev/sda 。
方法2:
通过运行以下命令确定SD 卡的设备号:
sudo fdisk -l
df -h # 查看内存空间使用情况
以上两种方法都确定了该SD卡的设备号码是 /dev/sda
二、备份SD卡
(1)完整备份
sudo dd bs=30M if=/dev/sda of=res_Pi4B.img
(2)压缩备份
sudo dd if=/dev/sda conv=sync,noerror bs=30M | gzip -c > res_Pi4B.img.gz
其中,bs是读入和写出的速度,最高可以达到60MB/s左右的速度,我设置的是30MB/s,数值根据电脑主机配置可以修改; of = res_Pi4B.img中 res_Pi4B.img 是指备份出来的镜像名称,可以自定义该名称,不要有中文。
读写过程中不会显示进度,可以用下述命令查看:
运行一次下述命令,就会出来一个读写进度
sudo pkill -USR1 -n -x dd
备份完成之后,可以通过 ls 查找备份文件:
ls
三、烧录镜像
按照 一、确定SD卡设备号的两种方法 找到要烧录镜像的SD 卡的设备号。
我要烧录镜像的SD 卡的设备号是/dev/sda
(1)Ubuntu端烧录
将新的SD卡插入到Ubuntu系统中,输入刷镜像命令:
完整烧录:
sudo dd bs=30M if=res_Pi4B.img of=/dev/sda
压缩烧录:
sudo gunzip -c res_Pi4B.img.gz | dd of=/dev/sda bs=30M
烧录过程中不会显示进度,可以用下述命令查看:
运行一次下述命令,就会出来一个烧录进度(和备份时候运行的命令一样):
sudo pkill -USR1 -n -x dd
烧录完成后,拔出SD卡,插入树莓派4B,接入显示器屏幕,检测烧录的ubuntu是否可用。
接入接入显示器屏幕 后,进入系统,输入 roscore, 可以正常输出。烧录进去的镜像可用。