BLOGCZEJNalpha

Kompresja systemu plików w Windows i Linux

Dyski twarde są coraz pojemniejsze - i jest to prawda. Nawet mój "nowy" laptop ma 1TB pamięci, ale przecież nie każdy użytkownik ma pojemny dysk lub na mało danych, a pomieścić je trzeba. Dzisiaj opowiem jak włączyć kompresję.

https://cdn.pixabay.com/photo/2014/10/25/18/45/oxygen-502887_960_720.jpg

Czym jest kompresja?

Kompresja to algorytm komputerowy służący do zapisania danych na możliwie najmniejszej przestrzeni dyskowej. Mamy dwa rodzaje kompresji:

  • Stratna, w której część danych jest tracona, dla przykładu w wysokiej jakości obrazie 3 bardzo podobne kolory można zapisać jako jeden i w ten sposób zapisać ogólną informację.
  • Bezstratna, w której dane po dekompresji są takie same jak przed tym zabiegiem.

Kompresję oczywiście stosuje się nie tylko do zapisu danych na dyskach, ale również powszechnie w internecie, by ograniczyć ilość przesyłanych danych (co oszczędza pieniądze).

Windows

NTFS czyli domyślny system plików Microsoftu ma wbudowaną opcję kompresji, ale domyślnie wyłączoną. Nie jest ona tak imponująca jak Linuksowa, ale "daje radę". Aby ją włączyć należy wejść w Komputer.

image.png

Wybieramy dysk prawym przyciskiem myszy i dajemy właściwości
image.png

Zaznaczamy opcję "Kompresuj ten dysk, aby zaoszczędzić miejsce na dysku".
image.png

I Zastosuj.

Podczas kompresowania może wyskakiwać błąd (np. aplikacja jest wykorzystywana albo brak dostępu), naciskamy przycisk "Ignoruj wszystko" i idziemy sobie aż proces się nie skończy.
image.png

Brawo - kompresja włączona.

W moim przypadku (czystego Windowsa) 8.78GB udało się zrobić 8.69GB. Nie jest to dużo, ale należy pamiętać, że kompresja działa cały czas, czyli wgrywając pliki przepaść będzie się zwiększać jakby (czyli więcej miejsca zaoszczędzimy).

Linux

Nie każdy system plików wspiera kompresję dlatego warto tutaj zaopatrzyć się w system plików BTRFS, który taką obsługę posiada. Sam system plików jest dla wielu godnym następcą Ext4 i z czasem się przekonuję do niego (głównie za sprawą kompresji i wielu funkcji).

Krok 1 - Upewnij się, że partycja /boot jest na drugiej partycji

Jest to bardzo ważne zalecenie, by /boot (konfiguracja bootloadera i kernel) znajdowały się na niekompresowanym systemie plików, przez parę dni nie mogłem rozgryźć czemu po aktualizacji gruba system nie działa. Odpowiedź prosta - BTRFS kompresował konfigurację bootloadera, a ten nie mógł jej rozczytać, co powodowało awarię.

Krok 2 - Upewnij się, że masz jądro w wersji 4.14 lub nowszej

Osobiście preferuję najnowszej generacji algorytm ZStandard ("mocno" kompresuje, ale zarazem jest bardzo szybki). Jest to dość "świeża" rzecz i stare systemy (ze starym jądrem) mogą przestać działać.

Krok 3 - Wyedytuj /etc/fstab

Jest to przykładowy plik konfiguracyjny jak coś ;) Jako inspiracja


Mamy tutaj interesującą nas linię informującą gdzie w hierarchii katalogów znajduje się dysk twardy o identyfikatorze 97(...). Jeśli chcemy włączyć kompresję należy po defaults dać przecinek i wpisać compress=zstd


Zapisać i zrestartować. Kompresja plików została włączona.

KOMENTARZE

  • emsonic

    Nie spowoduje to na Windows, że aplikacje będą się dłużej uruchamiać ?

    Posted using Partiko Android

  • m-san

    Jeśli chodzi o BTRFS to warto dodać, że:

    • System plików sam zdecyduje które pliki skompresować, które nie. Wpis w pliku fstab tylko informuje o włączeniu tej funkcji. W ten sposób np. filmy (które już są mocno skompresowane) nie będą się niepotrzebnie kompresować drugi raz. W razie potrzeby regulacje można prowadzić granularnie - per plik lub katalog (włączyć wymuszenie kompresji lub wymuszenie dekompresji).
    • W przypadku dysków SSD w pliku fstab bardzo warto dodać przełącznik "ssd", co da np. "defaults,ssd,compress=zstd".
    • BTRFS obsługuje aż trzy rodzaje kompresji. ZSTD to jedna z nich.
    • Nie zaleca się kompresji plików baz danych (Oracle, MySQL, Postgres, itp), jako iż bazy same próbują optymalizować miejsce na dysku i tylko zmniejszy to ich wydajność.
    • Kompresja BTRFS niestety nie da zabójczo dobrych rezultatów, jako iż sama struktura systemu plików BTRFS zabiera trochę miejsca (więcej niż EXT4). W zamian ten system plików daje bardzo duże możliwości (snapshots, immutable files, deduplikacja takich samych plików w różnych katalogach, partycje logiczne itp).