到目前为止,我的 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
如果您只是想避免在最后复制空白,那么以下方法应该有效。
fdisk
在设备上运行。- 确保单位设置为扇区(在较新版本的 fdisk 中,它们是默认的)
- 按下p可打印分区表。
- 读取最后一个分区的结束扇区。
- 添加 1
- 除以 2048 即可转换为兆字节
- 圆形的向上最接近的整数(复制不需要的扇区比不复制需要的扇区更好)
- 使用此命令:
DD if=/dev/sd[x] bs=1M count=<size in megabytes you calculated> status=progress | gzip > newredhat.raw.gz