在Linux中,我们可以

dd if=/dev/sdb of=bckup.img

但是,如果磁盘为32GB,仅使用4GB,则32GB映像文件会浪费时间.有没有什么方法或工具可以创建只有有效数据的图像?

推荐答案

最好的办法是

  1. 从保存元数据的所有分区复制所有文件

    mkdir -p myimage/partition1

    mkdir myimage/partition2

    sudo cp -rf --preserve=all /media/mount_point_partition1/* myimage/partition1/

    sudo cp -rf --preserve=all /media/mount_point_partition2/* myimage/partition2/

  2. 提取MBR

    sudo dd if=/dev/sdX of=myimage/mbr.img bs=446 count=1

    用相应的设备替换/dev/sdX.

  3. 将目标磁盘划分为大小大于复制数据的分区,并且应采用相同的格式和相同的标志,使用gparted.谷歌如何划分磁盘.

  4. 装入新格式化和分区的磁盘.在大多数计算机上,你只需要连接磁盘,就可以在/media文件夹中找到挂载的分区.

  5. 使用以下命令将以前复制的数据复制到目标分区

    sudo cp -rf --preserve=all myimage/partition1/* /media/mount_point_partition1/

    sudo cp -rf --preserve=all myimage/partition2/* /media/mount_point_partition2/

  6. 复制回MBR

    sudo dd if=myimage/mbr.img of=/dev/sdX bs=446 count=1

现在欢迎你的新磁盘!

Linux相关问答推荐

变量在vim中打印良好,但在bashshell中打印不好,这怎么可能发生?

在查找命令中使用 printf

AWK:按第一列匹配两个文件不起作用

Linux:用户态线程在执行系统调用时是否有更高的优先级?

awk 使用动态列号

如何比较 2 个文件并将第二个文件的所有行打印到输出文件 awk

如何拆分和计算 Bash 中单词的出现次数?

使用 sed 命令仅打印正则表达式匹配

Linux 系统调用文档

使用打印命令 Select 子域

如何判断 Linux 机器是否支持 AVX/AVX2 指令?

将以前忽略的目录添加到 Git 存储库

加密/解密在两个不同的 openssl 版本之间不能很好地工作

将 bash 脚本添加到路径

Linux 配置/制作,--prefix?

如何在没有空格的情况下打印 awk?

在 Emacs 中匹配括号的命令是什么?

如何关闭被杀死的程序打开的套接字?

当父进程被杀死时,使用 fork() 创建的子进程是否会自动被杀死?

使用 WGET 运行 cronjob PHP