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#