环境准备
1 ubuntu系统电脑
2 需要备份的树莓派系统SD卡
3 U盘 / 移动硬盘
移动硬盘分区
创建分区
ubuntu系统接入U盘
sudo fdisk /dev/sda
划分32G空间, 其他空间可以继续做U盘使用
设置分区卷标
sudo e2label /dev/sda1 PI3BROOT
后面配置fstab可以使用
查看卷标
sudo e2label /dev/sda1
分区格式化为ext4
sudo mkfs.ext4 /dev/sda1
附带命令行格式为boot分区的格式
sudo mkfs.vfat /dev/sdxx
电脑端备份SD卡镜像
将SD卡与U盘同时接入ubuntu系统
直接做文件拷贝备份, 不受空间限制
挂载SD卡与U盘到ubuntu系统
如果系统未自动挂载, 手工做挂载操作
sudo mount -t ext4 /dev/sdxx /mnt/upan1
SD卡第二个分区挂载到 /mnt/sd1
U盘挂载到 /mnt/upan1
直接对考SD卡根分区全部文件
sudo cp -rf /mnt/sd1/* /mnt/upan1/
修改U盘的启动挂载文件
sudo vim /mnt/upan1/etc/fstab
方法一: 使用卷标挂载
LABLE=PI3BROOT / ext4 defaults,noatime 0 1
方法二: 使用uuid挂载
ls /dev/disk/by-uuid/ -l 查看UUID
UUID=bc26b625-0865-4105-b1ad-be3b9bdbe9e3 / ext4 defaults,noatime 0 1
修改U盘的sudo命令权限
chown root:root /mnt/upan1/usr/bin/sudo
chmod 4755 /mnt/upan1/usr/bin/sudo
不修改 无法使用sudo命令会有如下提示:
sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set
修改引导和用户组
修改SD引导
修改SD第一个分区. 第一个分区为Vfat格式, 也可以在WIN下修改
cmdline.txt文件 ( ubuntu系统的树莓派镜像是 nobtcmd.txt)
root=/dev/mmcblk0p2
改为:
root=/dev/sdax 根据实际情况设置
U盘启动后, 修改pi目录的用户与组
sudo chown -R pi.pi /home/pi
树莓派直接备份SD卡
直接拷贝
备份boot分区
WIN下操作
备份根分区
sudo mount -t ext4 /dev/sda2 /mnt
#!/bin/bash
## 不用使用sudo运行
## sudo 修改文件权限, 后续sudo不用输入密码
dst_dir=${1} ## 目标挂载盘
if [ ! -d ${dst_dir} ]; then
echo "==ERR: not exist dst path ${dst_dir}"
exit 1
fi
folder_list="bin etc home lib opt root sbin srv sys usr var"
for folder in ${folder_list}; do
if [ -d ${dst_dir}/${folder} ]; then
echo "==INFO: exist folder ${dst_dir}/${folder}, rm"
sudo rm -rf ${dst_dir}/${folder}
fi
echo "==INFO: copy folder /${folder}"
sudo cp -raxf /${folder} ${dst_dir}/
done
create_list="boot dev media mnt run tmp proc"
for folder in ${create_list}; do
sudo mkdir -p ${dst_dir}/${folder}
done
sudo chmod -R 777 ${dst_dir}/tmp
date > ${dst_dir}/home/${USER}/root_mark
df -lh | grep '${dst_dir}$' >> ${dst_dir}/home/${USER}/root_mark
sudo umount /mnt
参考文档
https://blog.youkuaiyun.com/zhouguangfei0717/article/details/82768474