文章目录

  • 一、挂载TF卡
  • 二、准备工作
  • 1.安装工具软件
  • 2.新建文件夹
  • 3.创建空白的img文件
  • 三、分区
  • 1.查看分区表
  • 2.给img文件分区
  • 3.检查分区是否成功
  • 四、格式化img文件分区并挂载
  • 1.查看img文件对应的Loop device的设置
  • 2.查看设备
  • 3.格式化
  • 4.挂载
  • 五、备份/boot
  • 六、备份/
  • 七、修改PARTUUID
  • 1.查看PARTUUID
  • 2.修改cmdline.txt文件
  • 3.修改fstab文件
  • 八、收尾


一、挂载TF卡

1.先把树莓派上的TF卡插到虚拟机上

2.查看TF挂载情况

树莓派arm架构操作系统虚拟机镜像 制作树莓派镜像_txt文件


sdb1为/boot sdb2为/(根)

由此TF卡已经挂载到Ubuntu。

二、准备工作

1.安装工具软件

安装工具软件

sudo apt-get install dosfstools dump parted kpartx

树莓派arm架构操作系统虚拟机镜像 制作树莓派镜像_树莓派arm架构操作系统虚拟机镜像_02

2.新建文件夹

mkdir backuping

进入文件夹

树莓派arm架构操作系统虚拟机镜像 制作树莓派镜像_树莓派arm架构操作系统虚拟机镜像_03

3.创建空白的img文件

原TF卡已使用空间大概5.5G,就创建一个6G大小的img文件
原TF卡的使用情况,可以从挂载信息处查看

sudo dd if=/dev/zero of=raspberrypi.img bs=1M count=6000

树莓派arm架构操作系统虚拟机镜像 制作树莓派镜像_树莓派arm架构操作系统虚拟机镜像_04

三、分区

1.查看分区表

sudo fdisk -l

树莓派arm架构操作系统虚拟机镜像 制作树莓派镜像_txt文件_05

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

执行这三条什么也不显示

树莓派arm架构操作系统虚拟机镜像 制作树莓派镜像_工具软件_06

3.检查分区是否成功

sudo parted raspberrypi.img

在parted后面输入 print free ,最后输入quit退出

树莓派arm架构操作系统虚拟机镜像 制作树莓派镜像_树莓派arm架构操作系统虚拟机镜像_07

四、格式化img文件分区并挂载

1.查看img文件对应的Loop device的设置

sudo losetup -f --show raspberrypi.img

树莓派arm架构操作系统虚拟机镜像 制作树莓派镜像_txt文件_08


下面的命令中输入/dev/loop0,如果不是loop0请做相应调整。

2.查看设备

sudo kpartx -va /dev/loop0

树莓派arm架构操作系统虚拟机镜像 制作树莓派镜像_树莓派_09


可以可无

ls /dev/mapper/loop0p*

有下面这两个设备

树莓派arm架构操作系统虚拟机镜像 制作树莓派镜像_分区表_10

3.格式化

sudo mkfs.vfat -n boot /dev/mapper/loop0p1
sudo mkfs.ext4 -L rootfs /dev/mapper/loop0p2

树莓派arm架构操作系统虚拟机镜像 制作树莓派镜像_分区表_11

4.挂载

在backuping文件夹下新建两个文件夹,将两个分区挂载在下面

mkdir tgt_boot tgt_Root

id 查看uid和gid

树莓派arm架构操作系统虚拟机镜像 制作树莓派镜像_txt文件_12


下面的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/

树莓派arm架构操作系统虚拟机镜像 制作树莓派镜像_分区表_13

六、备份/

sudo chmod 777 ./tgt_Root
sudo chown topeet.lat tgt_Root
sudo rm -rf ./tgt_Root/*
cd tgt_Root/

树莓派arm架构操作系统虚拟机镜像 制作树莓派镜像_分区表_14


开始备份

sudo dump -0uaf - /media/rootfs/ | sudo restore -rf -

树莓派arm架构操作系统虚拟机镜像 制作树莓派镜像_工具软件_15


耗时几分钟,请等待

返回上层目录

cd ..

七、修改PARTUUID

1.查看PARTUUID

sudo blkid

树莓派arm架构操作系统虚拟机镜像 制作树莓派镜像_分区表_16

2.修改cmdline.txt文件

将其中root=PARTUUID的值改为loop0p2的PARTUUID

nano tgt_boot/cmdline.txt

树莓派arm架构操作系统虚拟机镜像 制作树莓派镜像_txt文件_17

3.修改fstab文件

nano tgt_Root/etc/fstab

树莓派arm架构操作系统虚拟机镜像 制作树莓派镜像_txt文件_18

八、收尾

卸载各个挂载的分区,删除loop device,删除挂载点目录

sudo umount tgt_boot tgt_Root
sudo kpartx -d /dev/loop0
sudo losetup -d /dev/loop0
rmdir tgt_boot tgt_Root

树莓派arm架构操作系统虚拟机镜像 制作树莓派镜像_txt文件_19


参考文档:详细文档