上海最好的网站建设,制作人是什么意思,微信网页上的网站怎么做的,seo怎么刷排名1.问题与需求
问题:
新部署的机器设备(主控RK3588), 没有经过烧录定制镜像, 研发部署, 直接组装发送到客户现场需要通过frpc远程部署: 安装ros2 python包 docker镜像 环境配置 自启动配置 SN设备信息写自动部署脚本, 实现一键部署升级无奈物联网卡做了白名单限制, apt 和…1.问题与需求
问题:
新部署的机器设备(主控RK3588), 没有经过烧录定制镜像, 研发部署, 直接组装发送到客户现场需要通过frpc远程部署: 安装ros2 python包 docker镜像 环境配置 自启动配置 SN设备信息写自动部署脚本, 实现一键部署升级无奈物联网卡做了白名单限制, apt 和 pip 在线安装依赖库失败, 需要现场人员支持, 开放手机热点,在线安装速度较慢, 需要30~40分钟, 才能安装, 部署, 调试好一台设备
需求:
期望能有一种不依赖现场人员 介入/操作, 更快速的部署方式
2.方案选择_与_实现
1.方案汇总优点缺点RKDevTool.exe 烧录1.官方工具, 烧录镜像速度最快1.需要现场人员支持, 让主控rk3588进入 dload/maskrom 模式2.需要现场人员, 携带笔记本电脑usb线, 安装瑞芯微usb驱动, 进行固件烧录dd备份,还原1.还原速度极快1.系统运行时, dd 还原 rootfs分区, 覆写根文件系统分区, 导致命令失败; 需要进入recovery模式还原2.需现场人员支持, 按recovery键重启, 让系统进入recovery模式(类似PC电脑进入Live CD模式), dd还原分区tar备份,还原1.部署速度中等1.系统运行时, tar覆盖根文件系统文件, 概率导致进程运行异常; 导致部署失败2.同dd还原, 需要现场人员支持, 让控制器进入recovery模式(类似PC Live CD模式), tar 还原才能安全还原成功rsync备份,还原1.属于增量升级 2.部署成功率较高, 较为安全1.第一次部署速度较慢, 后续增量更新速度较快一键部署脚本部署成功率高1.部署速度慢2.物联网卡有白名单限制, apt和pip安装命令失败, 需求现场人员手机热点, 或连接其它可上网网络2.各方案命令实现[!info] 说明
系统磁盘: /dev/nvme0p1
rootfs分区: /dev/nvme0p1p8
第二磁盘(扩展磁盘): /dev/sda3, 挂载目录/mnt/disk1.dd 系统备份_还原命令
备份
# 备份
dd if/dev/nvme0p1p8 of/mnt/disk/rootfs.img
# 修复文件错误
e2fsck -f -p rootfs.img
# 减少镜像大小
resize2fs -M rootfs.img还原
# 还原
dd ifrootfs.img of/dev/nvme0p1p8
# 分区扩容
resize2fs /dev/nvme0p1p8ssh远程dd_备份_还原
# 远程主机磁盘备份到本地
ssh userip dd if /dev/nvme0p1p8 | dd ofrootfs.img# 本地备份恢复到远程主机
dd ifrootfs.img | ssh userip dd of/dev/sdassh远程dd_备份_还原_压缩版
# 备份
ssh usrip sudo dd if/dev/sda | gzip -c | dd ofrootfs.img.gz# 还原
dd ifrootfs.img.gz | ssh userip gunzip | dd of/dev/sda2.tar 系统备份_还原命令
备份
# 备份
tar -pcf /mnt/disk/rootfs.tar --exclude{/dev,/proc,/sys,/tmp,/var,/run,/mnt,/media,/lostfound} /# 备份压缩为gz
tar -zpcf /mnt/disk/rootfs.tar.gz --exclude{/dev,/proc,/sys,/tmp,/var,/run,/mnt,/media,/lostfound,/bak} /还原
# 还原
tar -pxf /mnt/disk/rootfs.tar -C /# 解压gz 还原
tar -zpxf /mnt/disk/rootfs.tar.gz -C /3.rsync 系统备份_还原命令
备份
# 备份
sudo rsync -aAX --delete --exclude{/dev/*,/proc/*,/sys/*,/tmp/*,/var,/run/*,/mnt/*,/media/*,/lostfound,/bak} / /mnt/disk/rootfs# 压缩
tar -zpcf /mnt/disk/rootfs.tar.gz /mnt/disk/rootfs还原
# 解压
tar -zpxf /mnt/disk/rootfs.tar.gz -C /mnt/disk/rootfs# 还原
sudo rsync -aHAXx --no-perms --exclude{/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lostfound} /mnt/disk/rootfs/ /rsync远程备份_还原
# 备份到其它设备上
rsync -aAXvz --delete --progress -e ssh \--exclude{/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lostfound,/var/cache/*,/var/tmp/*} \/ usrip:/home/xxx/rootfs# 从远程设备还原到本地
sudo rsync -aAXvz --delete -e ssh usrip:/home/xxx/rootfs /3.方案确认
经过20~30台机器设备部署, 实测rsync升级_部署_较快,较安全(在系统已经运行情况下)成功率100%
1.rsync本质上, 属于增量备份_还原, 系统已有的文件不会被复写, 只有新文件变更文件, 才会被更新同步;
在系统已经运行状态下:
dd 还原命令失败tar 覆写系统文件, 会导致系统服务/进程异常, 已运行进程禁止写, 导致失败2.rsync解压与还原速度中等, 慢于RKDevTool.exe烧录, 和 dd还原
3.优点是: 不需要人工介入/操作, 只需要下载 解压 还原 (注: 烧录,dd,tar 需要人工操作, 进入指定模式)
注:
rsync同步也同样推荐在recovery模式(类似PC Live CD模式), 安全性才最高
4.其它想法
能否够通过修改uboot配置, 让系统进入recovery模式 -- 从而实现dd还原假设 / 和 /boot 挂载到不同的分区, 创建一个新根文件分区, 并有一个基础的linux系统环境, 通过修改grub/uboot参数, 让系统从另一个 根文件分区启动(类似recovery分区) -- 从而实现dd还原想尝试新一代文件系统: zfs, brtfs 快照, 导出, 部署功能; 文件系统支持特性, 实现快速导出, 部署到其它设备
uboot修改 根文件分区
vim /boot/extlinux/extlinux.conf
consolettyFIQ0,1500000 root/dev/mmcblk1p5 rw rootwait
consolettyFIQ0,1500000 root/dev/mmcblk1p6 rw rootwaitgrub修改 根文件分区
vim /boot/grub/grub.cfg
linux /vmlinuz-5.19.0-32-generic rootUUID19cceeeb-61f6-43e4-afbd-1bff9940bac5 ro recovery nomodeset dis_ucode_ldr
linux /vmlinuz-5.19.0-32-generic rootUUID19cceeeb-61f6-43e4-afbd-1bff9940xxxx ro recovery nomodeset dis_ucode_ldr