Усеките пространство empy от сырых данных dd изображение

У меня есть изображение неструктурированного диска, я взял использование dd из экземпляра Ubuntu. Общий размер диска составляет 300 ГБ, но используемых только 5,5 ГБ.

Существует ли способ изменить размер сырых данных dd изображение вниз к 20 ГБ, сохраняя всех 5,5 ГБ данных, и просто усекая пустые блоки?

1
задан 18 August 2015 в 05:15
3 ответа

В достаточно свежих версиях dd можно использовать conv=sparse для создания файла-образа в разреженном виде с самого начала.

Следует заметить, что то, что блок диска "не используется", не означает, что он на самом деле полон нулей, если блок был занят файлом, который с тех пор был удален. Существует утилита zerofree, которая может взять (не смонтированную) файловую систему и заполнить нулями все неиспользуемые блоки, что делает последующую спарсификацию более эффективной.

.
1
ответ дан 3 December 2019 в 18:38

Просто используйте virt-sparsify.

При обычном использовании он записывает временный файл, а затем перезаписывает оригинал, с отверстиями.

Если на диске не хватает места, он может даже уменьшить файл на месте, не записывая временную копию, с помощью опции -i, хотя это может и не освободить все возможное место.

.
2
ответ дан 3 December 2019 в 18:38

Если вы сделаете его разреженным файлом, метаданные файла все равно будут 300 ГБ, но реально используемое пространство будет ближе к 5.5. Например, с GNU cp --sparse=always

Смотрите также: Как преобразовать образ диска Linux в разреженный файл?

Если вы хотите уменьшить логический размер файлов, вам нужно уменьшить файловую систему, LVM и все остальное, что у вас есть, в зависимости от размера диска.

Может быть проще смонтировать большой образ, создать новый образ нужного размера и скопировать на него файлы.

0
ответ дан 3 December 2019 в 18:38

Теги

Похожие вопросы