需要制作我的 DD 的映像磁盘。这是一个 4to 硬盘,有 2 个分区(总共使用:1,7 TO)。如何使用 dd 命令获取 1,7 TO 正确映像?
用过的 :
dd if=/dev/sdq count=2399842303 of=/tmp/imagedisk.img bs=4096 状态=进度
但这不起作用..任务将继续进行 2,3,4 TO。
请有人能给我正确的命令吗?
答案1
首先,请注意,如果你正在制作磁盘图像(或者甚至分割图像),你不能只是克隆使用量文件系统级别(Used
即如图所示df
)。
此外,即使您所说的“已使用”是指分区的大小,如果您没有制作完整的磁盘映像,您可能应该制作分区的映像(并且可以选择将分区表/ MBR 备份到单独的文件中,尤其是在 GPT 的情况下 - 有sgdisk
)。
如果由于备用存储空间不足而确实无力制作磁盘/分区映像,则可以考虑:
- 使用 partclone 之类的工具或针对某些类型文件系统的上游/官方方法进行“文件系统克隆”,例如
btrfs send
。 dd
使用conv=sparse
,这可以避免完全为零的块(我认为大小为bs=
)占用太多空间(参见这更多细节。)- 尽可能缩小文件系统,以便您可以在克隆之前调整分区大小。但有些类型的文件系统不支持缩小。
顺便说一句,我实际上没有conv=sparse
这方面的经验。此外,它的效果如何可能取决于几个因素,例如写入/存储图像的文件系统类型,以及/或者源驱动器是否是至少部分为 RZAT(“修剪后读为零”)的 SSD,等等。
最后,谈谈dd
,有iflag=count_bytes
,这将允许你使用来count=
确定有多少字节(代替块的大小(i)bs=
)进行克隆。
bs=4k
往往足够好/最好用,不是因为可能是硬盘的物理块大小,但因为它是典型的页面大小。尽管从某些闪存存储设备读取时,128k 或 512k 这样的大小可能会效果更好。
答案2
bs=512 应该可以解决问题。起始和结束列中显示的逻辑扇区是 512 字节扇区
答案3
dd if=/dev/sdq of=/tmp/imagedisk.img bs=1MB count=1700000
bs=1MB
将块大小设置为 1 兆字节(1000000 字节),并将count=1700000
其乘以 1,从而达到 TB 级。
如果你真的想坚持使用 4Kb 块,你必须进行计算:1.700.000.000.000/4096 = 415039062,5 ~ 415039063
结果如下:
dd if=/dev/sdq of=/tmp/imagedisk.img bs=4k count=415039062
(4k = 4096)。