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



@glaucidium

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

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

Прогнозирую, что есть иные способы:
3) Cкопировать dd только длину используемых данных раздела. Потом восстановить и ресайзнуть ФС.
Пробовал. Mount и resize2fs просят проверить ФС. А e2fsck, fsck жалуются на каждый утерянный блок. В общем, не вышло.
4) Как-то скопировать раздел в разреженный файл. И уже там ресайзнуть ФС.
5) Как-то создать COW блочное устройство, у которого readonly подложкой будет нужный раздел. И тогда спокойно ресайзить ФС на этом ссылочном устройстве.


Решения вопроса 1



@glaucidium Автор вопроса

Поставил бы решением ответ от Valentin Barbolin, да он ответил не туда.

https://www.baeldung.com/linux/clone-space-in-use-…
Оказывается, у dd есть опция conv=sparse, которая позволит скопировать раздел в разреженный файл.
Только перед этим надо свободное пространство на разделе забить нолями. (dd if=/dev/zero of=/mnt/sdXY/zero; rm /mnt/sdXY/zero)
А если нужно записать разреженный образ на реальный раздел, то можно смонтировать его как loop устройство и уменьшить ФС.
https://askubuntu.com/questions/260620/resize-dev-…


Ответы на вопрос 2



@pfg21

Есть такая утилита partclone одной из особенностей которой умение распарить заголовок файловой системы и скопировать в образ раздела только использованные фс блоки.
Знает кучу фс.
https://ru.linux-console.net/?p=11393#gsc.tab=0



@CityCat4

Я один помню про команду dump? Да, он создает не образ, для развертывания нужно запустить restore, но с задачей собрать с большого раздела небольшое количество файлов — справится. Бонусом идет то, что неважно какого размера будет раздел, на который все это разворачивается.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *