有没有办法将多个分区 DD 到单个原始映像文件中以便启动?

有没有办法将多个分区 DD 到单个原始映像文件中以便启动?

到目前为止,我的 USB 项目已经取得了很大进展,但是我想知道是否有办法将多个分区 DD 到一个 Raw 映像文件中以供重新分发。以下是我用来实现从 USB 到 USB 的完整克隆的命令:

  DD if=/dev/sd[x] status=progress | gzip > newredhat.raw.gz

但是,唯一的问题是,它会复制整个 USB 盘(这意味着它会将卷复制为 28GB),并且在某些情况下,当尝试转到较小的 USB 盘时它不起作用。我曾尝试执行以下操作来解决这个问题:

dd if=/dev/sdb1 | dd if=/dev/sdb2 | dd if=/dev/sdb3 | gzip > newredhat.raw.gz

令我惊讶的是,它成功了,但是我不相信它以我想象的方式保存文件。有什么方法可以避免复制整个磁盘驱动器 (SDB),而只复制必要的分区 SDB1、SDB2 和 SDB3,这样我就可以将它们保存到一个映像文件中,然后将该文件 zcat 到大小可变的新 USB 中,以便它运行?

提前感谢所有帮助!

答案1

如果您只是想避免在最后复制空白,那么以下方法应该有效。

  1. fdisk在设备上运行。
  2. 确保单位设置为扇区(在较新版本的 fdisk 中,它们是默认的)
  3. 按下p可打印分区表。
  4. 读取最后一个分区的结束扇区。
  5. 添加 1
  6. 除以 2048 即可转换为兆字节
  7. 圆形的向上最接近的整数(复制不需要的扇区比不复制需要的扇区更好)
  8. 使用此命令:

DD if=/dev/sd[x] bs=1M count=<size in megabytes you calculated> status=progress | gzip > newredhat.raw.gz

相关内容