Spakowany obraz dysku twardego jest bardzo duży

20

Właśnie stworzyłem obraz świeżo zainstalowanego podwójnego rozruchu (Ubuntu i Windows) za pomocą tego polecenia (którego używam od dłuższego czasu w przypadku mniejszych obrazów):

dd if=/dev/sda | gzip > /mnt/drive.img.gz

Na tym dysku użyto mniej niż 60G z 500G. Niemniej jednak ten plik obrazu ma teraz rozmiar 409G.

W jaki sposób? Czy gzip nie powinien skompresować wszystkich tych zer? Jak powiedziałem, jest to świeżo zainstalowany system. Nie mogło być tak zagracone.

Teraz nie spodziewałem się, że plik będzie miał 60G, ale 400G wydaje mi się bardzo duży.

chris137
źródło
13
... jakie zera?
Wyścigi lekkości z Moniką

Odpowiedzi:

29

W jaki sposób? Czy gzip nie powinien skompresować wszystkich tych zer?

Tak, gdyby były zerami .

Niewykorzystane miejsce na dysku nie oznacza, że ​​zawiera zera; oznacza to, że jest nieużywany i może zawierać wszystko .

Istnieją programy, które usuwają nieużywane miejsce na dysku do zera. Sugeruję, aby użyć ich przed utworzeniem obrazu dysku. (Nie przypominam sobie żadnego ciągle wprowadzamy; w Linuksie, to bym po prostu użyć dd if=/dev/zero bs=1048576 of=somefiledo tworzenia plików zawierających tylko zer, wypełniając każdy system plików;., A następnie usunąć je przed podjęciem obraz Również wolę xzponad gzip).

Nominalne zwierzę
źródło
O dzięki, nawet nie pomyślałem o tym, co było na tym dysku, zanim go zainstalowałem! Wydaje mi się, że szybciej jest teraz rozpakować ten obraz i zmniejszyć go (do czego również wydają się istnieć rozwiązania). Rozważę również użycie Xz. Dzięki!
chris137,
12
Zapis 400 G zer za każdym razem, gdy chcesz utworzyć klon, nie wydaje się dobrym pomysłem na dysku SSD. Inne rozwiązanie (przy użyciu programu do klonowania uwzględniającego system plików) wydaje się lepsze.
Federico Poloni
4
@FedericoPoloni: Nie, ale wygenerowany obraz jest doskonałym, surowym obrazem dysku . Narzędzia do klonowania dysków używają różnych formatów, więc potrzebujesz narzędzia do przywrócenia obrazu. Nie znam (ale też nie sprawdziłem, czy) takich, które mogą faktycznie wygenerować surowy obraz, zastępując nieużywane bloki obrazu zerami; to byłoby naprawdę przydatne. Używanie ddw Linuksie jest najprostszym i najłatwiejszym rozwiązaniem problemu z rozmiarem surowego obrazu, i jako jednorazowe rozwiązanie jest w porządku nawet na dysku SSD.
Nominal Animal
1
@FedericoPoloni: Tak, zarówno obrazy skompresowane gzip, jak i xz mogą być montowane przy użyciu nbdkit . (Naprawdę nie martwię się o formaty, jeśli są otwarte i obsługiwane przez więcej niż jedno narzędzie; martwię się tylko o to, że narzędzia staną się nieobsługiwane i nie będą działać na nowych systemach. Z przyjemnością skorzystam z SquashFS zamiast Xz lub gzip, na przykład.)
Nominal Animal
3
@Gilles Przycięte miejsce po odczytaniu nie ma zer. Niektóre kontrolery to dają, inne nie.
deviantfan
14

W przypadku kopii zapasowych poszczególnych partycji można zamiast tego użyć partclone .

Partclone czyta system plików, aby zobaczyć, gdzie są przechowywane pliki, i tworzy kopie zapasowe tylko tych części partycji.

Pelle
źródło
3
Ponadto Clonezilla jest doskonałym GUI do tego celu.
Federico Poloni
partimage jest doskonałym narzędziem i znajduje się już w wielu dystrybucjach Linux / CD na żywo.
Criggie,
Innym narzędziem w tym stylu jest fsarchiver.
Iwillnotexist Idonotexist 29.09.16