文章目录
一、挂载TF卡
1.先把树莓派上的TF卡插到虚拟机上
2.查看TF挂载情况
sdb1为/boot sdb2为/(根)
由此TF卡已经挂载到Ubuntu。
二、准备工作
1.安装工具软件
安装工具软件
sudo apt-get install dosfstools dump parted kpartx
2.新建文件夹
mkdir backuping
进入文件夹
3.创建空白的img文件
原TF卡已使用空间大概5.5G,就创建一个6G大小的img文件
原TF卡的使用情况,可以从挂载信息处查看
sudo dd if=/dev/zero of=raspberrypi.img bs=1M count=6000
三、分区
1.查看分区表
sudo fdisk -l
2.给img文件分区
按照原来的起始位置设置分区
原来的起始位置上一步查看
sudo parted raspberrypi.img --script -- mklabel msdos
sudo parted raspberrypi.img --script -- mkpart primary fat32 8192s 532480s
sudo parted raspberrypi.img --script -- mkpart primary ext4 540672s -1
执行这三条什么也不显示
3.检查分区是否成功
sudo parted raspberrypi.img
在parted后面输入 print free ,最后输入quit退出
四、格式化img文件分区并挂载
1.查看img文件对应的Loop device的设置
sudo losetup -f --show raspberrypi.img
下面的命令中输入/dev/loop0,如果不是loop0请做相应调整。
2.查看设备
sudo kpartx -va /dev/loop0
可以可无
ls /dev/mapper/loop0p*
有下面这两个设备
3.格式化
sudo mkfs.vfat -n boot /dev/mapper/loop0p1
sudo mkfs.ext4 -L rootfs /dev/mapper/loop0p2
4.挂载
在backuping文件夹下新建两个文件夹,将两个分区挂载在下面
mkdir tgt_boot tgt_Root
id 查看uid和gid
下面的uid和gid请根据上面的查看进行修改
sudo mount -t vfat -o uid=topeet,gid=lat,umask=0000 /dev/mapper/loop0p1 ./tgt_boot/
sudo mount -t ext4 /dev/mapper/loop0p2 ./tgt_Root/
什么都不返回
五、备份/boot
sudo cp -rfp /media/boot/* ./tgt_boot/
六、备份/
sudo chmod 777 ./tgt_Root
sudo chown topeet.lat tgt_Root
sudo rm -rf ./tgt_Root/*
cd tgt_Root/
开始备份
sudo dump -0uaf - /media/rootfs/ | sudo restore -rf -
耗时几分钟,请等待
返回上层目录
cd ..
七、修改PARTUUID
1.查看PARTUUID
sudo blkid
2.修改cmdline.txt文件
将其中root=PARTUUID的值改为loop0p2的PARTUUID
nano tgt_boot/cmdline.txt
3.修改fstab文件
nano tgt_Root/etc/fstab
八、收尾
卸载各个挂载的分区,删除loop device,删除挂载点目录
sudo umount tgt_boot tgt_Root
sudo kpartx -d /dev/loop0
sudo losetup -d /dev/loop0
rmdir tgt_boot tgt_Root
参考文档:详细文档