ARM_Linux下基于 dump 和 restore 的文件系统制作
很多时候我们在使用Linux时需要拷贝当前的文件系统,或者是将当前文件系统放到别的机子上运行,下面介绍在ARM_Linux中基于 dump 和 restore 的文件系统的制作。
首先查看当前磁盘的使用情况
df -h
可以看到所占空间最大的就是我们的文件系统,那么我们就是要把这一块的内容拷贝出来。
这里有一点要注意的是,我们要 dump 的对象不是 /dev/root,直接对这个对象进行 dump 操作会出现如下显示
也就是说,这不是一个正规的文件系统,所以我们要先找到文件系统在哪一个分区,查看 /dev/mmc*
可以看到这里有10个分区,继续查看 mount 指令的输出
我们可以看到当前文件系统所处的分区位于 /dev/mmcblk1p6 下,下面开始使用 dump 指令,在终端中输入
sudo dump -0u -f - /dev/mmcblk1p6 >> /media/path/backup.fs (/media/path 是你的U盘路径)
制作一个镜像文件,并挂载
dd if=/dev/zero of=roofs.img bs=1M count=4300
这里的 count 根据你的文件系统大小来制定,笔者的是4.3G,所以设置4300
格式化镜像文件,并加入 linuxroot 卷标
sudo mkfs.ext4 -F -L linuxroot rootfs.img
新建一个文件夹,并挂载
进入到挂载的文件夹中,执行 restore
cd img_mount/
sudo restore -rf /media/path/backup.fs
这里会提示几个失败,但没什么影响,完成后就可以在挂载的文件夹中看到拷贝的文件系统了
卸载镜像
sudo umount img_mount/
至此,文件系统的镜像 roofs.img 就制作好了。
我们可以查看一下制作好的文件系统
sudo e2fsck -p -f roofs.img
如果你设置的镜像大小比实际文件系统大很多,可以使用以下命令来减小镜像的大小
sudo resize2fs -M roofs.img