Сделать образ ОС

469
ron123456

Я использую устройство Nano Pi, на котором установлена ​​ОС Debian. Образ ОС существует во внутренней памяти (8 ГБ). Общий объем используемой памяти составляет около 4 ГБ. Я хочу сделать резервную копию этой ОС в файл образа.

После выполнения

dd if=/dev/mmcblk1 of=NanoPi.img bs=8M status=progress 

Общий размер файла изображения достигает 8 ГБ. Как я могу сделать образ только использованной памятью и не всем?

2
Вы также можете сначала изменить размер раздела, а затем создать образ с помощью `dd` Nordlys Jeger 6 лет назад 0
но .. образ будет сделан из всего правого блока ... mmcblk1 ... с загрузочным разделом mmcblk1p0, основным разделом mmcblk1p1 и новым разделом mmcblk1p2 ... так что ... как поможет изменение размера раздела? ron123456 6 лет назад 0
ах, я неправильно понял ваш вопрос Nordlys Jeger 6 лет назад 0

1 ответ на вопрос

2
Rokas Kupstys

Вы не можете сделать это легко, используя, ddпотому что блочное устройство - это просто дамп байтов. Может содержать данные о давно удаленных файлах в нераспределенном пространстве. ddне знает об этом, потому что это работа файловой системы. У вас есть несколько вариантов:

Продолжайте использовать дд

... и принять больше пространства. Вместо этого сделайте что-нибудь подобное dd if=/dev/mmcblk1 of=NanoPi.img bs=64K conv=noerror,sync status=progress. Меньший размер блока дает вам немного больше безопасности в случае ошибок чтения. Если ddне удается прочитать хотя бы один сектор - остальная часть блока не будет обработана. Размер блока - это максимальное количество байтов, которое вы можете потерять за один поврежденный сектор. conv=noerrorобеспечивает клонирование в случае ошибки. conv=syncсдвигает указатель в целевом файле вперед в случае ошибок чтения, чтобы данные оставались выровненными и, следовательно, действительными.

Вы можете передать ddвывод, gzipчтобы сжать данные и сэкономить место: dd if=/dev/mmcblk1 bs=64K conv=noerror,sync status=progress | gzip -c > NanoPi.img.gz Для возврата необработанного изображения сделайте gunzip -c ./NanoPi.img.gz > NanoPi.img.

Используйте rsync

... и иметь дело с необработанными файлами. rsync -aAXv /path/to/mounted/mmcblk1 /path/to/destination/folder, Это может или не может работать для вас в зависимости от того, смонтирована ли ваша файловая система или нет.