我有一个大约 20GiB 的 QEMU 映像myserver.img
。该文件用作服务器的“虚拟”硬盘。现在前 512 个字节包含 MBR,我正尝试用零覆盖这些字节。在普通磁盘上,这个可以工作:
dd if=/dev/zero of=/dev/sda bs=512 count=1
但是当我尝试对图像文件执行此操作时,文件会被覆盖,大小只有 512 字节(而不是 20GiB)。有没有办法只更改前 512 个字节,最好使用dd
?
答案1
添加conv=notrunc
:
dd if=/dev/zero of=YOUR_IMAGE_FILE bs=512 count=1 conv=notrunc
答案2
尝试使用 ddconv=notrunc
dd if=/dev/zero of=myserver.img bs=512 count=1 conv=notrunc
来自 dd 手册页
诺特伦克 不要截断输出文件
例如
ls -l myserver.img
-rw-r--r-- 1 iain users 1536 Mar 27 12:31 myserver.img
dd if=/dev/zero of=myserver.img bs=512 count=1 conv=notrunc
ls -l myserver.img
-rw-r--r-- 1 iain users 1536 Mar 27 12:32 myserver.img