У меня есть куча образов дисков, созданных с помощью ddrescue, в разделе EXT, и я хочу уменьшить их размер без потери данных, оставаясь при этом монтируемым.
Как я могу заполнить пустое пространство в файловой системе изображения нулями, а затем преобразовать файл в разреженный файл, чтобы это пустое пространство фактически не сохранялось на диске?
Например:
> du -s --si --apparent-size Jimage.image
120G Jimage.image
> du -s --si Jimage.image
121G Jimage.image
Это на самом деле имеет только 50G реальных данных, поэтому второе измерение должно быть намного меньше.
Это якобы заполнит пустое пространство нулями:
cat /dev/zero > zero.file
rm zero.file
Но если разреженные файлы обрабатываются прозрачно, он может фактически создать разреженный файл, ничего не записывая на виртуальный диск, иронически не давая мне превратить образ виртуального диска в сам разреженный файл. :) Является ли?
Примечание. По какой-то причине sudo dd if=/dev/zero of=./zero.file
работает, когда cat
отсутствует на смонтированном образе диска.