现在我新建了一个img镜像文件名字叫hello.img,然后用fdisk工具给这个镜像文件进行分区。
然后将数据保存在分区里面,再卸载镜像文件。
可以用fdisk的a指令指定分区引导。
1.新建img文件
我这里新建一个7000Mb的名为hello.img的文件。
sudo dd if=/dev/zero of=hello.img bs=1M count=7000
2.对新建文件进行分区
sudo chmod 777 hello.img sudo fdisk hello.img
这里输入n进行分区,两个区块为1kb。
所以1M为1024*2个区块,1G为1024*1024*2个区块。
然后输入a,再输入1,将分区1设为引导分区。
3. 建立回环设备与img分区的映射
sudo losetup -f //查看空闲loop设备,我这里空闲设备为:/dev/loop21 sudo losetup /dev/loop21 hello.img //建立img文件与回环设备的连接 sudo kpartx -av /dev/loop21 //将img文件分区链接到回环设备 sudo mkfs.vfat /dev/mapper/loop21p1 //格式化img的第一个分区为vfat格式 sudo mkfs.ext4 /dev/mapper/loop21p2 //格式化img的第二个分区为ext4格式 mkdir test_img //新建一个文件夹作为挂载点 sudo mount /dev/mapper/loop21p1 ./test_img //挂载img的第一个分区到test_img文件夹 sudo cp -rdf /media/zhitong/boot/* ./test_img //将内存卡第一个分区root分区文件强制递归复制到test_img文件夹下 sudo umount /dev/mapper/loop21p1 //卸载img的第一个分区 sudo mount /dev/mapper/loop21p2 ./test_img //挂载img的第二个分区到test_img文件夹 sudo cp -rdf /media/zhitong/rootfs/* ./test_img //将内存卡第二个分区rootfs分区所有文件强制递归复制到test_img文件夹下 sudo umount /dev/mapper/loop21p2 //卸载img的第二个分区 sudo kpart -dv /dev/loop21 //卸载img文件的分区映射 sudo losetup -d /dev/loop21 //删除img文件与loop回环设备的映射关系
然后这个内存卡里面的boot和root文件系统就已经备份到了img文件的两个分区了。
参考链接:
0.[镜像]镜像操作losetup - aaronGao - 博客园
1.linux 制作分区镜像img文件_墨1024-CSDN博客
2.ubuntu利用dd命令备份系统_道友请留步-CSDN博客
3.对比cp和scp命令 将数据从一台linux服务器复制到另一台linux服务器 - 冒雨ing - 博客园
4.linux 制作分区镜像img文件_墨1024-CSDN博客
5.如何挂载.img格式的镜像 - 简书



