На розділі EXT у мене є маса зображень на дисках, зроблених за допомогою ddrescue, і я хочу зменшити їх розмір, не втрачаючи даних, будучи все ще монтуваними.
Як я можу заповнити порожній простір у файловій системі зображення нулями, а потім перетворити файл у розріджений файл, щоб цей порожній простір фактично не зберігався на диску?
Наприклад:
> 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
не встановлено зображення, встановлене на диску.
sudo cat /dev/zero > zero.file
не працює, тому що ваш bash (працює як ви, а не root) виконує перенаправлення перед виконанням sudo
команди. Дивіться unix.stackexchange.com/questions/1416/…