Только сегодня про
dd рассказывали.
habrahabr.ru/blogs/nix/117050/#comment_3812727:
Применив фантазию, с dd можно вообще много чего делать. Первое, что приходит на ум — дополнить файл нулями до нужной длины (нужно при создании образов разделов прошивок, например):
dd if=/dev/zero of=new_file bs=x count=y
dd if=old_file of=new_file bs=x count=y notrail
Т.е. создаем файл-болванку нужного размера, затем начало заменяем своими даными. Параметр notrail запрещает обрезать файл после выполнения операции.
Т.о. сначала читаем данные из файла №2 (который читается в конце), с пропуском ошибок, затем — дополняем данными из файла №1.