2

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

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

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

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

1 ответ1

2

Вы не можете сделать это легко, используя 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 . Это может или не может работать для вас в зависимости от того, смонтирована ли ваша файловая система или нет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .