Задать вопрос

Как создать маленький(только данные) образ большого раздела?

У способа cp /dev/sdXY ~/file.img недостаток в том, что он копирует данные + не занятое пространство.
А как бы сделать чтобы образ был без пустот?

Доступные способы:
1) Уменьшить оригинальную файловую систему и тогда снять образ.
Это работает, но не хочется лишний раз тревожить разметку диска.
2) Создать раздел нужного размера и перекопировать туда данные файлами.
Это работает, но надо соблюсти права; не ходить по ссылкам; мало ли ещё какие хитрые файлы попадутся. А в случае множества мелких файлов скорость копирования будет низкой.

Прогнозирую, что есть иные способы:
3) Cкопировать dd только длину используемых данных раздела. Потом восстановить и ресайзнуть ФС.
Пробовал. Mount и resize2fs просят проверить ФС. А e2fsck, fsck жалуются на каждый утерянный блок. В общем, не вышло.
4) Как-то скопировать раздел в разреженный файл. И уже там ресайзнуть ФС.
5) Как-то создать COW блочное устройство, у которого readonly подложкой будет нужный раздел. И тогда спокойно ресайзить ФС на этом ссылочном устройстве.
  • Вопрос задан
  • 782 просмотра
Подписаться 4 Средний 5 комментариев
Ответ пользователя pfg21 К ответам на вопрос (3)
@pfg21
ex-турист
Есть такая утилита partclone одной из особенностей которой умение распарить заголовок файловой системы и скопировать в образ раздела только использованные фс блоки.
Знает кучу фс.
https://ru.linux-console.net/?p=11393#gsc.tab=0
Ответ написан
Комментировать