У меня есть петлевой файл, который содержит одну файловую систему, назовем его fs.image
. У меня есть еще один, гораздо больший файл обратной петли, который содержит несколько разделов и несколько файловых систем, назовем его disk.image
.
fs.image
точно такой же, как у одного из разделов в disk.image
. Я хотел бы скопировать данные из него в файл disk.image
в правильное место.
У меня есть скрипт, который вычисляет правильное смещение, и пытается сделать это с помощью dd
. Я предполагал, что это будет работать, потому что это работает с блочным устройством, но это не так. disk.image
усекается в позиции, следующей сразу за только что записанными данными.
Есть ли способ не допустить усечения файла dd
?
fs.image
сжимается как fs.image.bz2
, и выполняемая мной команда выглядит следующим образом:
bzcat fs.image.bz2 | dd of=disk.image bs=4M seek=$OFFSET
где $OFFSET
- мое вычисленное смещение.
Я думал о других способах достижения этого, но это кажется самым простым (если это сработало). Однажды можно будет скопировать данные до точки вставки в другой файл, добавить файловую систему и, наконец, добавить оставшуюся часть исходного файла. Однако это будет медленно, потому что я буду копировать много данных, которые мне не нужны. Я открыт для других вариантов.