Apr 22, 2024, 9:13 AM
想问一下,我们想把现有CM5的系统和已安装的东西备份出来,再安装到另一个CM5上。如何操作。(大概意思就是克隆一份)
想问一下,我们想把现有CM5的系统和已安装的东西备份出来,再安装到另一个CM5上。如何操作。(大概意思就是克隆一份)
@ytfycy
保存下面代码为sh脚本,然后放到U盘或者移动硬盘里边执行,执行前先增加一下权限。然后以root权限运行脚本。
!# /bin/sh
IMAGE_NAME="$(date "+%Y%m%d")-rootfs.img"
IMAGE_SIZE=8192
LOOP_NUMBER=$(losetup -f)
echo "01:remove firstrun"
rm /var/lib/misc/firstrun
echo "02:Establishing a mount directory"
mkdir ./mnt
echo "03:dd image file"
dd if=/dev/zero of=./$IMAGE_NAME bs=1M count=$IMAGE_SIZE
echo "04:Mirror Partition"
printf 'n\np\n1\n32768\n1081343\nn\np\n2\n1081344\n16777215\nw\n' | fdisk ./$IMAGE_NAME
echo "05:format partition"
partx -a -v ./$IMAGE_NAME
mkfs.vfat $LOOP_NUMBER"p1"
echo 'yes\n' | mkfs.ext4 $LOOP_NUMBER"p2"
echo "06:copy boot files"
mount $LOOP_NUMBER"p1" ./mnt
cp /boot/firmware/* ./mnt/ -R
umount ./mnt
echo "07:backup rootfs"
rm ./backup.fs
dump -0u -f - /dev/mmcblk0p2 >> ./backup.fs
echo "08:copy rootfs files"
mount $LOOP_NUMBER"p2" ./mnt
cd ./mnt
restore -rf ../backup.fs
umount ./mnt
cd ../
e2fsck -p -f $LOOP_NUMBER"p2"
resize2fs -M $LOOP_NUMBER"p2"
e2label $LOOP_NUMBER"p2" writable
losetup -d $LOOP_NUMBER
echo "09:backimg ok"
fdisk -l ./$IMAGE_NAME
@george 是用空U盘吗?这个操作是从现有CM5上备份吗?那怎么操作去克隆到新CM5上
@ytfycy
是从现有的CM5备份,操作完以后会生成一个img文件,再用etcher升级到其它CM5机器即可。
@george 到别的CM5升级怎么操作能给说一下吗
@ytfycy
按照如下文档操作,机器先进入UMS模式,然后用etcher烧录脚本生成的镜像即可完成升级。
https://wiki.cool-pi.com/en/home/cm5_quick_start
@george 但是我在操作第一步备份时,就是执行脚本报找不到命令。我就是做了一个sh脚本放在优盘里,用chmod给脚本加了权限sudo执行的
@ytfycy
缺少什么包就安装一下。
@george 为什么我拷贝出来的系统跟我系统的实际大小不符合,安装到新板子上也启动不了
@george 好像还有一个backup.fs跟文件系统,我如何烧写进板子呢?