@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