Mam kilka obrazów dysków, wykonanych za pomocą narzędzia ddrescue, na partycji EXT i chcę zmniejszyć ich rozmiar bez utraty danych, ale nadal można je montować.
Jak mogę wypełnić puste miejsce w systemie plików obrazu zerami, a następnie przekonwertować plik na plik rzadki, aby to puste miejsce nie było faktycznie przechowywane na dysku?
Na przykład:
> du -s --si --apparent-size Jimage.image
120G Jimage.image
> du -s --si Jimage.image
121G Jimage.image
W rzeczywistości zawiera on tylko 50G rzeczywistych danych, więc drugi pomiar powinien być znacznie mniejszy.
To rzekomo wypełni puste miejsce zerami:
cat /dev/zero > zero.file
rm zero.file
Ale jeśli pliki rozrzedzone są obsługiwane w sposób przezroczysty , może faktycznie utworzyć plik rozrzedzony bez zapisywania czegokolwiek na dysku wirtualnym, co ironicznie uniemożliwia mi przekształcenie obrazu dysku wirtualnego w sam plik rzadki. :) Czy to?
Uwaga: Z jakiegoś powodu sudo dd if=/dev/zero of=./zero.file
działa, gdy cat
nie ma obrazu zamontowanego dysku.
sudo cat /dev/zero > zero.file
nie działa, ponieważ twoja bash (działająca jak ty, a nie root) dokonuje przekierowania przed wykonaniem sudo
polecenia. Zobacz unix.stackexchange.com/questions/1416/…