ddはファイルの一部を上書きできますか? [コピー]

ddはファイルの一部を上書きできますか? [コピー]

1TBの大容量ファイル(破損したドライブのディスクイメージ)と1.3MBの小さなファイル(ディスクファイルの先頭)があります。

小さなファイルの内容を使って大きなファイルの内容の一部を上書きしたいと思います。つまり、1TBイメージの最初の1.3MBを小さなファイルに挿入/上書きしたいのです。

小さな一時ファイルでテストすると、ファイルの一部を上書きできません。代わりに、ddはファイルを完全に上書きします。これは私が望むものではありません。

ddはこれを行うことができますか?

ベストアンサー1

このパラメータを使用すると、conv=notrunc最初の数バイトを置き換えることができます。
例えば dd conv=notrunc if=small.img of=large.img

root@debian:~/ddtest# dd if=/dev/zero of=file1.img bs=1M count=10
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 1.14556 s, 9.2 MB/s
root@debian:~/ddtest# dd if=/dev/urandom of=file2.img bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.207185 s, 5.1 MB/s
root@debian:~/ddtest# head file1.img 

<< Blank space here as it's all Zeroes >>

root@debian:~/ddtest# dd conv=notrunc if=file2.img of=file1.img 
2048+0 records in
2048+0 records out
1048576 bytes (1.0 MB) copied, 0.00468016 s, 224 MB/s
root@debian:~/ddtest# head file1.img 
^�v�y�ے!� E�91����  << SNIP Random garbage >>
root@debian:~/ddtest# 

おすすめ記事