     =====================================================================
     Program do tworzenia kopii zapasowych SnapRAID dla macierzy dyskowych
     =====================================================================


1 SKłADNIA (SYNOPSIS)
=====================

snapraid [-c, --conf CONFIG]
	[-f, --filter PATTERN] [-d, --filter-disk NAME]
	[-m, --filter-missing] [-e, --filter-error]
	[-a, --audit-only] [-h, --pre-hash] [-i, --import DIR]
	[-p, --plan PERC|bad|new|full]
	[-o, --older-than DAYS] [-l, --log FILE]
	[-s, --spin-down-on-error] [-w, --bw-limit RATE]
	[-t, --tail]
	[-Z, --force-zero] [-E, --force-empty]
	[-U, --force-uuid] [-D, --force-device]
	[-N, --force-nocopy] [-F, --force-full]
	[-R, --force-realloc] [-W, --force-realloc-tail]
	[-S, --start BLKSTART] [-B, --count BLKCOUNT]
	[-L, --error-limit NUMBER]
	[-A, --stats]
	[-v, --verbose] [-q, --quiet]
	status|smart|probe|up|down|diff|sync|scrub|fix|check
	|list|dup|pool|devices|touch|rehash|locate

snapraid [-V, --version] [-H, --help] [-C, --gen-conf CONTENT]


2 OPIS (DESCRIPTION)
====================

SnapRAID to program do tworzenia kopii zapasowych przeznaczony
dla macierzy dyskowych, przechowujący informacje parzystości
do odzyskiwania danych w przypadku awarii do sześciu dysków.

Przeznaczony głównie dla domowych centrów multimedialnych z dużymi,
rzadko zmieniającymi się plikami, SnapRAID oferuje kilka funkcji:

* Możesz używać dysków już wypełnionych plikami bez
  konieczności ich ponownego formatowania, uzyskując do nich dostęp jak zwykle.
* Wszystkie Twoje dane są haszowane, aby zapewnić integralność danych i zapobiec
  cichej korupcji.
* Gdy liczba uszkodzonych dysków przekracza liczbę parzystości,
  utrata danych ogranicza się do dotkniętych dysków; dane na
  innych dyskach pozostają dostępne.
* Jeśli przypadkowo usuniesz pliki na dysku, możliwe jest ich odzyskanie.
* Dyski mogą mieć różne rozmiary.
* Możesz dodawać dyski w dowolnym momencie.
* SnapRAID nie blokuje Twoich danych; możesz przestać go używać
  w dowolnym momencie bez ponownego formatowania ani przenoszenia danych.
* Aby uzyskać dostęp do pliku, wystarczy, że zakręci się tylko jeden dysk,
  co oszczędza energię i zmniejsza hałas.

Więcej informacji można znaleźć na oficjalnej stronie SnapRAID:

    https://www.snapraid.it/


3 OGRANICZENIA (LIMITATIONS)
============================

SnapRAID jest hybrydą pomiędzy RAID a programem do tworzenia kopii zapasowych, mającą na celu połączenie
najlepszych zalet obu tych rozwiązań. Posiada jednak pewne ograniczenia, które należy
wziąć pod uwagę przed jego użyciem.

Głównym ograniczeniem jest to, że w przypadku awarii dysku można odzyskać dane tylko do
stanu z momentu ostatniej operacji `sync` (synchronizacji). Wszelkie dane dodane lub modyfikacje dokonane
od ostatniej synchronizacji, które znajdują się na uszkodzonym dysku, zostaną utracone.

W związku z tym SnapRAID nadaje się głównie do danych, które rzadko się zmieniają.

W przypadku danych, które już istniały podczas ostatniej synchronizacji, niezawodność odzyskiwania zależy
od tego, czy użyto opcji `snapshot` (migawki):

* Z obsługą migawek (dostępną w systemach plików Btrfs, ZFS, Bcachefs i NTFS),
  SnapRAID może automatycznie utrzymywać niezależny, zamrożony punkt
  odniesienia dla każdego obsługiwanego systemu plików z danymi.
  Zapewnia to, że nawet jeśli zmodyfikujesz lub usuniesz pliki w aktywnym systemie plików
  w trakcie lub po synchronizacji, proces odzyskiwania pozostanie spójny i niezawodny.

* Bez obsługi migawek, usunięcie lub zmiana plików po operacji `sync`
  może uniemożliwić pełne odzyskanie danych z innych uszkodzonych dysków. Dzieje się tak,
  ponieważ parzystość nie odpowiada już zmodyfikowanym plikom, nawet jeśli
  pliki te nie znajdują się na uszkodzonym dysku. Z drugiej strony, nowo dodane
  pliki nie uniemożliwiają odzyskania już istniejących plików.

Inne ograniczenia SnapRAID to:

* W SnapRAID nadal masz oddzielne systemy plików dla każdego dysku.
  W RAID otrzymujesz jeden duży system plików.
* SnapRAID nie rozdziela danych.
  W RAID uzyskujesz wzrost prędkości dzięki rozdzielaniu.
* SnapRAID nie obsługuje odzyskiwania w czasie rzeczywistym.
  W RAID nie musisz przerywać pracy, gdy dysk ulegnie awarii.
* SnapRAID może odzyskać dane tylko z ograniczonej liczby awarii dysków.
  W przypadku kopii zapasowej możesz odzyskać dane po całkowitej
  awarii całej macierzy dysków.
* Zapisywane są tylko nazwy plików, znaczniki czasu, dowiązania symboliczne
  i dowiązania twarde.
  Uprawnienia, właściciel (własność) i rozszerzone atrybuty nie są zapisywane.


4 PIERWSZE KROKI (GETTING STARTED)
==================================

Aby użyć SnapRAID, musisz najpierw wybrać jeden dysk w swojej macierzy
dysków, który zostanie przeznaczony na informacje o `parzystości`. Z jednym dyskiem
na parzystość będziesz w stanie odzyskać dane po awarii pojedynczego dysku,
podobnie jak w RAID5.

Jeśli chcesz odzyskać dane po większej liczbie awarii dysków, podobnie jak
w RAID6, musisz zarezerwować dodatkowe dyski na parzystość. Każdy dodatkowy
dysk parzystości umożliwia odzyskanie danych po jeszcze jednej awarii dysku.

Jako dyski parzystości musisz wybrać największe dyski w macierzy,
ponieważ informacje o parzystości mogą urosnąć do rozmiaru największego
dysku danych w macierzy.

Dyski te będą przeznaczone do przechowywania plików `parzystości`.
Nie powinieneś na nich przechowywać swoich danych.

Następnie musisz zdefiniować dyski `danych`, które chcesz chronić
za pomocą SnapRAID. Ochrona jest bardziej skuteczna, jeśli te dyski
zawierają dane, które rzadko się zmieniają. Z tego powodu lepiej jest
NIE włączać dysku C:\ w systemie Windows ani katalogów /home, /var i /tmp
w systemie Unix.

Lista plików jest zapisywana w plikach `zawartości`, zwykle
przechowywanych na dyskach danych, parzystości lub rozruchowych.
Plik ten zawiera szczegóły Twojej kopii zapasowej, w tym wszystkie
sumy kontrolne w celu weryfikacji jej integralności.
Plik `zawartości` jest przechowywany w wielu kopiach, a każda kopia musi
znajdować się na innym dysku, aby zapewnić, że nawet w przypadku wielu
awarii dysków, przynajmniej jedna kopia jest dostępna.

Na przykład, załóżmy, że interesuje Cię tylko jeden poziom parzystości
i Twoje dyski znajdują się w:

    /mnt/diskp <- wybrany dysk dla parzystości
    /mnt/disk1 <- pierwszy dysk do ochrony
    /mnt/disk2 <- drugi dysk do ochrony
    /mnt/disk3 <- trzeci dysk do ochrony

Musisz utworzyć plik konfiguracyjny /etc/snapraid.conf z
następującymi opcjami:

    parity /mnt/diskp/snapraid.parity
    content /var/snapraid/snapraid.content
    content /mnt/disk1/snapraid.content
    content /mnt/disk2/snapraid.content
    data d1 /mnt/disk1/
    data d2 /mnt/disk2/
    data d3 /mnt/disk3/

Jeśli używasz systemu Windows, powinieneś użyć formatu ścieżek Windows,
z literami dysków i ukośnikami odwrotnymi zamiast ukośników:

    parity E:\snapraid.parity
    content C:\snapraid\snapraid.content
    content F:\array\snapraid.content
    content G:\array\snapraid.content
    data d1 F:\array\
    data d2 G:\array\
    data d3 H:\array\

Jeśli masz wiele dysków i zabrakło Ci liter dysków, możesz zamontować
dyski bezpośrednio w podfolderach. Zobacz:

    https://www.google.com/search?q=Windows+mount+point

W tym momencie jesteś gotowy do uruchomienia polecenia `sync`, aby zbudować
informacje o parzystości.

    snapraid sync

Ten proces może zająć kilka godzin za pierwszym razem, w zależności od rozmiaru
danych już obecnych na dyskach. Jeśli dyski są puste,
proces jest natychmiastowy.

Możesz go zatrzymać w dowolnym momencie, naciskając Ctrl+C, a przy następnym
uruchomieniu wznowi się w miejscu, w którym został przerwany.

Kiedy to polecenie się zakończy, Twoje dane są BEZPIECZNE.

Teraz możesz zacząć używać swojej macierzy, jak chcesz, i okresowo
aktualizować informacje o parzystości, uruchamiając polecenie `sync`.

4.1 Scrubbing (Scrubbing)
-------------------------

Aby okresowo sprawdzać dane i parzystość pod kątem błędów, możesz
uruchomić polecenie `scrub`.

    snapraid scrub

To polecenie porównuje dane w Twojej macierzy z haszem obliczonym
podczas polecenia `sync`, aby zweryfikować integralność.

Każde uruchomienie polecenia sprawdza około 8% macierzy, z wyłączeniem danych
już sprawdzonych w ciągu poprzednich 10 dni.
Możesz użyć opcji -p, --plan, aby określić inną ilość,
oraz opcji -o, --older-than, aby określić inny wiek w dniach.
Na przykład, aby sprawdzić 5% macierzy dla bloków starszych niż 20 dni, użyj:

    snapraid -p 5 -o 20 scrub

Jeśli podczas procesu zostaną znalezione ciche błędy lub błędy wejścia/wyjścia,
odpowiednie bloki zostaną oznaczone jako złe w pliku `content`
i wymienione w poleceniu `status`.

    snapraid status

Aby je naprawić, możesz użyć polecenia `fix`, filtrując złe bloki
za pomocą opcji -e, --filter-error:

    snapraid -e fix

Przy następnym `scrub`, błędy znikną z raportu `status`,
jeśli zostały faktycznie naprawione. Aby przyspieszyć, możesz użyć -p bad, aby
sprawdzić tylko bloki oznaczone jako złe.

    snapraid -p bad scrub

Uruchomienie `scrub` na niezsynchronizowanej macierzy może zgłosić błędy
spowodowane usuniętymi lub zmodyfikowanymi plikami. Błędy te są zgłaszane
w wyniku `scrub`, ale powiązane bloki nie są oznaczane jako złe.

4.2 Łączenie w pulę (Pooling)
-----------------------------

Uwaga: Funkcja łączenia w pulę opisana poniżej została zastąpiona przez
narzędzie mergerfs, które jest obecnie zalecaną opcją dla użytkowników Linuksa
w społeczności SnapRAID. Mergerfs zapewnia bardziej elastyczny i wydajny
sposób łączenia wielu dysków w jeden ujednolicony punkt montowania,
umożliwiając bezproblemowy dostęp do plików w całej macierzy bez polegania
na dowiązaniach symbolicznych. Dobrze integruje się z SnapRAID w celu ochrony
parzystości i jest powszechnie używane w konfiguracjach takich jak
OpenMediaVault (OMV) lub niestandardowe konfiguracje NAS.

Aby wszystkie pliki w Twojej macierzy były widoczne w tym samym drzewie katalogów,
możesz włączyć funkcję `pooling`. Tworzy ona wirtualny, tylko do odczytu,
widok wszystkich plików w Twojej macierzy za pomocą dowiązań symbolicznych.

Katalog `pooling` możesz skonfigurować w pliku konfiguracyjnym za pomocą:

    pool /pool

lub, jeśli używasz systemu Windows, za pomocą:

    pool C:\pool

a następnie uruchom polecenie `pool`, aby utworzyć lub zaktualizować wirtualny widok.

    snapraid pool

Jeśli używasz platformy Unix i chcesz udostępnić ten katalog
przez sieć maszynom Windows lub Unix, powinieneś dodać
następujące opcje do swojego /etc/samba/smb.conf:

    # W sekcji globalnej smb.conf
    unix extensions = no

    # W sekcji udziału smb.conf
    [pool]
    comment = Pula
    path = /pool
    read only = yes
    guest ok = yes
    wide links = yes
    follow symlinks = yes

W systemie Windows udostępnianie dowiązań symbolicznych przez sieć wymaga od klientów
zdalnego ich rozwiązywania. Aby to umożliwić, oprócz udostępnienia katalogu puli,
musisz również udostępnić wszystkie dyski niezależnie, używając nazw dysków
zdefiniowanych w pliku konfiguracyjnym jako punkty udostępniania. Musisz również
określić w opcji `share` w pliku konfiguracyjnym ścieżkę UNC Windows,
której klienci zdalni muszą użyć, aby uzyskać dostęp do tych udostępnionych dysków.

Na przykład, działając z serwera o nazwie `darkstar`, możesz użyć
opcji:

    data d1 F:\array\
    data d2 G:\array\
    data d3 H:\array\
    pool C:\pool
    share \\darkstar

i udostępnić w sieci następujące katalogi:

    \\darkstar\pool -> C:\pool
    \\darkstar\d1 -> F:\array
    \\darkstar\d2 -> G:\array
    \\darkstar\d3 -> H:\array

aby umożliwić zdalnym klientom dostęp do wszystkich plików pod adresem \\darkstar\pool.

Możesz również potrzebować skonfigurować klientów zdalnych, aby umożliwić dostęp
do zdalnych dowiązań symbolicznych za pomocą polecenia:

    fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1

4.3 Cofanie usuwania (Undeleting)
---------------------------------

SnapRAID działa bardziej jak program do tworzenia kopii zapasowych niż system RAID
i może być użyty do przywrócenia lub odzyskania usuniętych plików do ich poprzedniego
stanu za pomocą opcji -f, --filter:

    snapraid fix -f FILE

lub dla katalogu:

    snapraid fix -f DIR/

Możesz go również użyć do odzyskania tylko przypadkowo usuniętych plików wewnątrz
katalogu za pomocą opcji -m, --filter-missing, która przywraca
tylko brakujące pliki, pozostawiając wszystkie inne nienaruszone.

    snapraid fix -m -f DIR/

Lub aby odzyskać wszystkie usunięte pliki na wszystkich dyskach za pomocą:

    snapraid fix -m

4.4 Odzyskiwanie (Recovering)
-----------------------------

Najgorsze się wydarzyło i straciłeś jeden lub więcej dysków!

NIE PANIKUJ! Będziesz w stanie je odzyskać!

Pierwszą rzeczą, którą musisz zrobić, to unikać dalszych zmian w Twojej macierzy dysków.
Wyłącz wszelkie zdalne połączenia z nią i wszelkie zaplanowane procesy, w tym
jakąkolwiek zaplanowaną nocną synchronizację lub scrub SnapRAID.

Następnie postępuj zgodnie z poniższymi krokami.

---- 4.4.1 KROK 1 -> Ponowna konfiguracja ----
Potrzebujesz trochę miejsca do odzyskania, najlepiej na dodatkowych
zapasowych dyskach, ale wystarczy zewnętrzny dysk USB lub dysk zdalny.

Zmodyfikuj plik konfiguracyjny SnapRAID, aby opcja `data` lub `parity`
uszkodzonego dysku wskazywała na lokalizację z wystarczającą ilością pustego
miejsca do odzyskania plików.

Na przykład, jeśli dysk `d1` uległ awarii, zmień z:

    data d1 /mnt/disk1/

na:

    data d1 /mnt/new_spare_disk/

Jeśli dysk do odzyskania jest dyskiem parzystości, zaktualizuj odpowiednią
opcję `parity`.
Jeśli masz wiele uszkodzonych dysków, zaktualizuj wszystkie ich opcje konfiguracyjne.

---- 4.4.2 KROK 2 -> Naprawa ----
Uruchom polecenie fix, zapisując log w pliku zewnętrznym za pomocą:

    snapraid -d NAME -l fix.log fix

Gdzie NAME to nazwa dysku, taka jak `d1` w naszym poprzednim przykładzie.
Jeśli dysk do odzyskania jest dyskiem parzystości, użyj nazw `parity`, `2-parity`,
itp.
Jeśli masz wiele uszkodzonych dysków, użyj wielu opcji -d, aby określić
wszystkie z nich.

To polecenie zajmie dużo czasu.

Upewnij się, że masz kilka gigabajtów wolnego miejsca na zapisanie pliku fix.log.
Uruchom je z dysku z wystarczającą ilością wolnego miejsca.

Teraz odzyskałeś wszystko, co jest możliwe do odzyskania. Jeśli niektóre pliki
są częściowo lub całkowicie nie do odzyskania, zostaną one przemianowane
poprzez dodanie rozszerzenia `.unrecoverable`.

Szczegółową listę wszystkich bloków nie do odzyskania znajdziesz w pliku fix.log,
sprawdzając wszystkie linie zaczynające się od `unrecoverable:`.

Jeśli nie jesteś zadowolony z odzyskiwania, możesz spróbować ponownie
tyle razy, ile chcesz.

Na przykład, jeśli usunąłeś pliki z macierzy po ostatniej
`sync`, może to spowodować, że niektóre pliki nie zostaną odzyskane.
W tym przypadku możesz ponowić próbę `fix` za pomocą opcji -i, --import,
określając, gdzie te pliki znajdują się teraz, aby włączyć je ponownie
do procesu odzyskiwania.

Jeśli jesteś zadowolony z odzyskiwania, możesz kontynuować,
ale pamiętaj, że po synchronizacji nie możesz już ponowić próby polecenia `fix`!

---- 4.4.3 KROK 3 -> Sprawdzenie ----
Jako ostrożne sprawdzenie, możesz teraz uruchomić polecenie `check`, aby upewnić się, że
wszystko jest poprawne na odzyskanym dysku.

    snapraid -d NAME -a check

Gdzie NAME to nazwa dysku, taka jak `d1` w naszym poprzednim przykładzie.

Opcje -d i -a mówią SnapRAID, aby sprawdził tylko określony dysk
i zignorował wszystkie dane parzystości.

To polecenie zajmie dużo czasu, ale jeśli nie jesteś zbyt ostrożny,
możesz je pominąć.

---- 4.4.4 KROK 4 -> Synchronizacja ----
Uruchom polecenie `sync`, aby ponownie zsynchronizować macierz z nowym dyskiem.

    snapraid sync

Jeśli wszystko zostanie odzyskane, to polecenie jest natychmiastowe.


5 POLECENIA (COMMANDS)
======================

SnapRAID udostępnia kilka prostych poleceń, które pozwalają na:

* Wyświetlenie stanu macierzy -> `status`
* Kontrola dysków -> `smart`, `probe`, `up`, `down`
* Utworzenie punktu kopii zapasowej/przywracania -> `sync`
* Okresowe sprawdzanie danych -> `scrub`
* Przywrócenie ostatniego punktu kopii zapasowej/przywracania -> `fix`.

Polecenia muszą być wpisywane małymi literami.

5.1 status
----------

Wyświetla podsumowanie stanu macierzy dysków.

Zawiera informacje o fragmentacji parzystości, jak stare
są bloki bez sprawdzenia i wszystkie zarejestrowane ciche
błędy napotkane podczas scrubbingu.

Prezentowane informacje odnoszą się do ostatniego momentu, w którym
uruchomiłeś `sync`. Późniejsze modyfikacje nie są brane pod uwagę.

Jeśli wykryto złe bloki, ich numery bloków są wymienione.
Aby je naprawić, możesz użyć polecenia `fix -e`.

Pokazuje również wykres reprezentujący ostatni raz, kiedy każdy blok
został sprawdzony lub zsynchronizowany. Sprawdzone bloki są pokazane
za pomocą `*`, bloki zsynchronizowane, ale jeszcze niesprawdzone, za pomocą `o`.

Nic nie jest modyfikowane.

5.2 smart
---------

Wyświetla raport SMART wszystkich dysków w systemie.

Zawiera oszacowanie prawdopodobieństwa awarii w następnym
roku, co pozwala zaplanować wymianę konserwacyjną dysków, które wykazują
podejrzane atrybuty.

To oszacowanie prawdopodobieństwa uzyskuje się poprzez skorelowanie atrybutów SMART
dysków z danymi Backblaze dostępnymi pod adresem:

    https://www.backblaze.com/hard-drive-test-data.html

Jeśli SMART zgłosi, że dysk ulega awarii, dla tego dysku
wyświetlane jest `FAIL` lub `PREFAIL`, a SnapRAID zwraca błąd.
W takim przypadku natychmiastowa wymiana dysku jest wysoce zalecana.

Inne możliwe ciągi statusu to:
    logfail - W przeszłości niektóre atrybuty były niższe niż
        próg.
    logerr - Dziennik błędów urządzenia zawiera błędy.
    selferr - Dziennik autotestu urządzenia zawiera błędy.

Jeśli określono opcję -v, --verbose, dostarczana jest głębsza analiza
statystyczna. Ta analiza może pomóc Ci zdecydować, czy potrzebujesz
więcej czy mniej parzystości.

To polecenie używa narzędzia `smartctl` i jest równoważne
uruchomieniu `smartctl -a` na wszystkich urządzeniach.

Jeśli Twoje urządzenia nie zostaną poprawnie wykryte automatycznie, możesz określić
niestandardowe polecenie za pomocą opcji `smartctl` w pliku konfiguracyjnym.

Nic nie jest modyfikowane.

5.3 probe
---------

Wyświetla stan ZASILANIA wszystkich dysków w systemie.

`Standby` oznacza, że dysk się nie kręci. `Active` oznacza,
że dysk się kręci.

To polecenie używa narzędzia `smartctl` i jest równoważne
uruchomieniu `smartctl -n standby -i` na wszystkich urządzeniach.

Jeśli Twoje urządzenia nie zostaną poprawnie wykryte automatycznie, możesz określić
niestandardowe polecenie za pomocą opcji `smartctl` w pliku konfiguracyjnym.

Nic nie jest modyfikowane.

5.4 up
------

Rozpędza wszystkie dyski macierzy.

Możesz rozpędzić tylko określone dyski za pomocą opcji -d, --filter-disk.

Rozpędzanie wszystkich dysków w tym samym czasie wymaga dużo energii.
Upewnij się, że Twój zasilacz jest w stanie to wytrzymać.

Nic nie jest modyfikowane.

5.5 down
--------

Zatrzymuje wszystkie dyski macierzy.

To polecenie używa narzędzia `smartctl` i jest równoważne
uruchomieniu `smartctl -s standby,now` na wszystkich urządzeniach.

Możesz zatrzymać tylko określone dyski za pomocą opcji -d, --filter-disk.

Aby automatycznie zatrzymać dyski w przypadku błędu, możesz użyć
opcji -s, --spin-down-on-error z dowolnym innym poleceniem, co jest
równoważne ręcznemu uruchomieniu `down`, gdy wystąpi błąd.

Nic nie jest modyfikowane.

5.6 diff
--------

Wyświetla listę wszystkich plików zmodyfikowanych od ostatniej `sync`, które
wymagają ponownego obliczenia danych parzystości.

To polecenie nie sprawdza danych pliku, a jedynie znacznik czasu pliku,
rozmiar i inode.

Po wyświetleniu listy wszystkich zmienionych plików, prezentowane jest
podsumowanie zmian, pogrupowane według:
    equal - Pliki niezmienione od wcześniej.
    added - Pliki dodane, których wcześniej nie było.
    removed - Pliki usunięte.
    updated - Pliki o innym rozmiarze lub znaczniku czasu, co oznacza, że
        zostały zmodyfikowane.
    moved - Pliki przeniesione lub o zmienionej nazwie na tym samym dysku
        z zachowaniem tego samego i-węzła (inode). Są identyfikowane przez
        ten sam inode, rozmiar i znacznik czasu, ale inną ścieżkę. Nazwa
        pliku może być również inna.
    copied - Pliki skopiowane na ten sam lub inny dysk, gdzie
        oryginalny plik nadal istnieje.
        Są one identyfikowane przez posiadanie tej samej nazwy, rozmiaru
        i znacznika czasu.
        Jeśli podsekundowy znacznik czasu wynosi zero, pełna ścieżka
        musi być zgodna, aby plik został zidentyfikowany, a nie
        tylko nazwa.
    relocated - Pliki przeniesione do innego katalogu lub na inny dysk,
        gdzie oryginalny plik zniknął, a inode nie został zachowany.
        Są identyfikowane przez posiadanie tej samej nazwy, rozmiaru i
        znacznika czasu. Jeśli podsekundowy znacznik czasu wynosi zero,
        pełna ścieżka musi być zgodna, aby plik został zidentyfikowany.
        W przeciwieństwie do plików 'moved', pliki relokowane wymagają,
        aby nazwa pliku pozostała taka sama.
    restored - Pliki o innym inode, ale pasującym katalogu,
        nazwie, rozmiarze i znaczniku czasu.
        Są to zazwyczaj pliki przywrócone po ich usunięciu.

Jeśli wymagana jest `sync`, kod powrotu procesu wynosi 2, zamiast
domyślnego 0. Kod powrotu 1 jest używany dla ogólnego stanu błędu.

Nic nie jest modyfikowane.

5.7 sync
--------

Aktualizuje informacje o parzystości. Wszystkie zmodyfikowane pliki
w macierzy dysków są odczytywane, a odpowiednie dane parzystości
są aktualizowane.

Możesz zatrzymać ten proces w dowolnym momencie, naciskając Ctrl+C,
bez utraty już wykonanej pracy.
Przy następnym uruchomieniu proces `sync` wznowi się w miejscu, w którym
został przerwany.

Jeśli podczas procesu zostaną znalezione ciche błędy lub błędy wejścia/wyjścia,
odpowiednie bloki zostaną oznaczone jako złe.

Pliki są identyfikowane po ścieżce i/lub inode i sprawdzane
po rozmiarze i znaczniku czasu.
Jeśli rozmiar pliku lub znacznik czasu się różni, dane parzystości
są ponownie obliczane dla całego pliku.
Jeśli plik zostanie przeniesiony lub zmieniony na tym samym dysku, zachowując ten sam inode,
parzystość nie jest ponownie obliczana.
Jeśli plik zostanie przeniesiony na inny dysk, parzystość jest ponownie obliczana,
ale wcześniej obliczone informacje o haszu są zachowywane.

Pliki `content` i `parity` są modyfikowane w razie potrzeby.
Pliki w macierzy NIE są modyfikowane.

5.8 scrub
---------

Sprawdza macierz, szukając cichych błędów lub błędów wejścia/wyjścia w danych
i dyskach parzystości.

Każde wywołanie sprawdza około 8% macierzy, z wyłączeniem
danych już sprawdzonych w ciągu ostatnich 10 dni.
Oznacza to, że sprawdzanie raz w tygodniu zapewnia sprawdzenie każdego bitu danych
przynajmniej raz na trzy miesiące.

Możesz zdefiniować inny plan sprawdzania lub ilość za pomocą opcji -p, --plan,
która akceptuje:
bad - Sprawdza bloki oznaczone jako złe.
new - Sprawdza bloki właśnie zsynchronizowane, jeszcze niesprawdzone.
full - Sprawdza wszystko.
0-100 - Sprawdza określony procent bloków.

Jeśli określisz wartość procentową, możesz również użyć opcji -o, --older-than,
aby zdefiniować, jak stary powinien być blok.
Najpierw sprawdzane są najstarsze bloki, co zapewnia optymalne sprawdzenie.
Jeśli chcesz sprawdzić tylko bloki właśnie zsynchronizowane, jeszcze niesprawdzone,
użyj opcji `-p new`.

Aby uzyskać szczegóły statusu sprawdzania, użyj polecenia `status`.

Dla każdego znalezionego cichego błędu lub błędu wejścia/wyjścia, odpowiednie bloki
są oznaczane jako złe w pliku `content`.
Te złe bloki są wymienione w `status` i mogą zostać naprawione za pomocą `fix -e`.
Po naprawie, przy następnym sprawdzeniu, zostaną one ponownie sprawdzone, a jeśli okaże się,
że zostały poprawione, oznaczenie złego zostanie usunięte.
Aby sprawdzić tylko złe bloki, możesz użyć polecenia `scrub -p bad`.

Zaleca się uruchamianie `scrub` tylko na zsynchronizowanej macierzy, aby uniknąć
zgłaszania błędów spowodowanych przez niezsynchronizowane dane. Błędy te są rozpoznawane
jako niebędące cichymi błędami, a bloki nie są oznaczane jako złe,
ale takie błędy są zgłaszane w wyniku polecenia.

Plik `content` jest modyfikowany w celu zaktualizowania czasu ostatniego sprawdzenia
dla każdego bloku i oznaczenia złych bloków.
Pliki `parity` NIE są modyfikowane.
Pliki w macierzy NIE są modyfikowane.

5.9 fix
-------

Naprawia wszystkie pliki oraz dane parzystości.

Wszystkie pliki i dane parzystości są porównywane ze stanem zapisanym podczas
ostatniej operacji `sync`. W przypadku znalezienia różnicy, następuje przywrócenie stanu zapisanego.

UWAGA!
Polecenie `fix` nie odróżnia błędów od celowych modyfikacji.
Bezwzględnie przywraca stan plików do momentu ostatniej operacji `sync`.

Jeśli nie określono żadnej innej opcji, przetwarzana jest cała macierz.
Użyj opcji filtra, aby wybrać podzbiór plików lub dysków do operacji.

Aby naprawić tylko bloki oznaczone jako złe podczas `sync` i `scrub`,
użyj opcji -e, --filter-error.
W przeciwieństwie do innych opcji filtra, ta stosuje poprawki tylko do plików, które są
niezmienione od ostatniej `sync`.

SnapRAID zmienia nazwy wszystkich plików, których nie można naprawić, dodając
rozszerzenie `.unrecoverable`.

Przed naprawą, cała macierz jest skanowana w celu znalezienia wszelkich plików przeniesionych
od ostatniej operacji `sync`.
Pliki te są identyfikowane na podstawie ich znacznika czasu, ignorując ich nazwę
i katalog, i są używane w procesie odzyskiwania, jeśli to konieczne.
Jeśli przeniosłeś niektóre z nich poza macierz, możesz użyć opcji -i, --import,
aby określić dodatkowe katalogi do skanowania.

Pliki są identyfikowane tylko po ścieżce, a nie po inode.

Plik `content` NIE jest modyfikowany.
Pliki `parity` są modyfikowane w razie potrzeby.
Pliki w macierzy są modyfikowane w razie potrzeby.

5.10 check
----------

Weryfikuje wszystkie pliki i dane parzystości.

Działa jak `fix`, ale tylko symuluje odzyskiwanie i żadne zmiany
nie są zapisywane w macierzy.

To polecenie jest przeznaczone głównie do ręcznej weryfikacji,
takiej jak po procesie odzyskiwania lub w innych specjalnych warunkach.
Do okresowych i zaplanowanych sprawdzeń użyj `scrub`.

Jeśli użyjesz opcji -a, --audit-only, sprawdzane są tylko
dane pliku, a dane parzystości są ignorowane, co zapewnia
szybsze działanie.

Pliki są identyfikowane tylko po ścieżce, a nie po inode.

Nic nie jest modyfikowane.

5.11 list
---------

Wyświetla listę wszystkich plików zawartych w macierzy w momencie
ostatniej `sync`.

Z -v lub --verbose, wyświetlany jest również czas z dokładnością do podsekundy.

Nic nie jest modyfikowane.

5.12 dup
--------

Wyświetla listę wszystkich zduplikowanych plików. Dwa pliki są uważane za równe, jeśli ich
hasze pasują. Dane pliku nie są odczytywane; używane są tylko
wcześniej obliczone hasze.

Nic nie jest modyfikowane.

5.13 pool
---------

Tworzy lub aktualizuje wirtualny widok wszystkich
plików w Twojej macierzy dysków w katalogu `pooling`.

Pliki nie są kopiowane, ale linkowane za pomocą
dowiązań symbolicznych.

Podczas aktualizacji, wszystkie istniejące dowiązania symboliczne i puste
podkatalogi są usuwane i zastępowane nowym
widokiem macierzy. Wszelkie inne zwykłe pliki pozostają na swoim miejscu.

Nic nie jest modyfikowane poza katalogiem puli.

5.14 devices
------------

Wyświetla urządzenia niskiego poziomu używane przez macierz.

To polecenie wyświetla skojarzenia urządzeń w macierzy
i jest przeznaczone głównie jako interfejs skryptowy.

Pierwsze dwie kolumny to identyfikator i ścieżka urządzenia niskiego poziomu.
Następne dwie kolumny to identyfikator i ścieżka urządzenia wysokiego poziomu.
Ostatnia kolumna to nazwa dysku w macierzy.

W większości przypadków masz jedno urządzenie niskiego poziomu dla każdego dysku w
macierzy, ale w niektórych bardziej złożonych konfiguracjach możesz mieć wiele
urządzeń niskiego poziomu używanych przez pojedynczy dysk w macierzy.

Nic nie jest modyfikowane.

5.15 touch
----------

Ustawia arbitralny znacznik czasu z dokładnością do podsekundy dla wszystkich plików,
które mają go ustawiony na zero.

Poprawia to zdolność SnapRAID do rozpoznawania przeniesionych
i skopiowanych plików, ponieważ sprawia, że znacznik czasu jest prawie unikalny,
redukując możliwe duplikaty.

Dokładniej, jeśli znacznik czasu z dokładnością do podsekundy nie jest zerowy,
przeniesiony lub skopiowany plik jest identyfikowany jako taki, jeśli pasuje do
nazwy, rozmiaru i znacznika czasu. Jeśli znacznik czasu z dokładnością do podsekundy
jest zerowy, jest uważany za kopię tylko wtedy, gdy pasują pełna ścieżka,
rozmiar i znacznik czasu.

Znacznik czasu z dokładnością do sekundy nie jest modyfikowany,
więc wszystkie daty i czasy Twoich plików zostaną zachowane.

5.16 rehash
-----------

Planuje ponowne haszowanie całej macierzy.

To polecenie zmienia używany rodzaj hasza, zazwyczaj podczas aktualizacji
z systemu 32-bitowego na 64-bitowy, aby przełączyć się z
MurmurHash3 na szybszy SpookyHash.

Jeśli używasz już optymalnego hasza, to polecenie
nic nie robi i informuje Cię, że nie jest potrzebne żadne działanie.

Ponowne haszowanie nie jest wykonywane natychmiast, ale odbywa się
stopniowo podczas `sync` i `scrub`.

Możesz sprawdzić stan ponownego haszowania za pomocą `status`.

Podczas ponownego haszowania SnapRAID zachowuje pełną funkcjonalność,
z jedynym wyjątkiem, że `dup` nie może wykryć zduplikowanych
plików używających innego hasza.

5.17 locate
-----------

Lokalizuje pliki zapisane na dyskach parzystości. Dla każdego dopasowanego pliku
wypisuje jego lokalizację w pliku parzystości oraz liczbę zajmowanych przez
niego fragmentów.

Możesz użyć opcji -t, --tail, aby ograniczyć operację do plików zajmujących
określoną końcową część parzystości.

Jeśli chcesz dokonać realokacji tych plików, możesz użyć opcji
-W, --force-realloc-tail.
Pamiętaj, że takie pliki nie będą chronione przez parzystość podczas procesu
realokacji.


6 OPCJE (OPTIONS)
=================

SnapRAID udostępnia następujące opcje:

    -c, --conf CONFIG
        Wybiera plik konfiguracyjny do użycia. Jeśli nie określono, w systemie Unix
        używa pliku `/usr/local/etc/snapraid.conf`, jeśli istnieje,
        w przeciwnym razie `/etc/snapraid.conf`.
        W systemie Windows używa pliku `snapraid.conf` w tym samym
        katalogu co `snapraid.exe`.

    -f, --filter PATTERN
        Filtruje pliki do przetworzenia w `check` i `fix`.
        Przetwarzane są tylko pliki pasujące do określonego wzorca.
        Ta opcja może być używana wielokrotnie.
        Zobacz sekcję PATTERN, aby uzyskać więcej szczegółów na temat
        specyfikacji wzorców.
        W systemie Unix upewnij się, że znaki globbing są cytowane, jeśli są używane.
        Ta opcja może być używana tylko z `check` i `fix`.
        Nie może być używana z `sync` i `scrub`, ponieważ zawsze
        przetwarzają całą macierz.

    -d, --filter-disk NAME
        Filtruje dyski do przetworzenia w `check`, `fix`, `up` i `down`.
        Musisz określić nazwę dysku zdefiniowaną w pliku konfiguracyjnym.
        Możesz również określić dyski parzystości za pomocą nazw: `parity`, `2-parity`,
        `3-parity`, itp., aby ograniczyć operacje do określonego dysku parzystości.
        Jeśli połączysz wiele opcji --filter, --filter-disk i --filter-missing,
        wybrane zostaną tylko pliki pasujące do wszystkich filtrów.
        Ta opcja może być używana wielokrotnie.
        Ta opcja może być używana tylko z `check`, `fix`, `up` i `down`.
        Nie może być używana z `sync` i `scrub`, ponieważ zawsze
        przetwarzają całą macierz.

    -m, --filter-missing
        Filtruje pliki do przetworzenia w `check` i `fix`.
        Przetwarzane są tylko pliki brakujące lub usunięte z macierzy.
        Użyte z `fix`, działa to jako polecenie `undelete`.
        Jeśli połączysz wiele opcji --filter, --filter-disk i --filter-missing,
        wybrane zostaną tylko pliki pasujące do wszystkich filtrów.
        Ta opcja może być używana tylko z `check` i `fix`.
        Nie może być używana z `sync` i `scrub`, ponieważ zawsze
        przetwarzają całą macierz.

    -e, --filter-error
        Przetwarza pliki z błędami w `check` i `fix`.
        Przetwarza tylko pliki, które mają bloki oznaczone cichymi
        błędami lub błędami wejścia/wyjścia podczas `sync` i `scrub`, jak wymieniono w `status`.
        Ta opcja może być używana tylko z `check` i `fix`.

    -p, --plan PERC|bad|new|full
        Wybiera plan sprawdzania. Jeśli PERC jest wartością numeryczną od 0 do 100,
        jest interpretowany jako procent bloków do sprawdzenia.
        Zamiast wartości procentowej możesz określić plan:
        `bad` sprawdza złe bloki, `new` sprawdza bloki jeszcze niesprawdzone,
        a `full` sprawdza wszystko.
        Ta opcja może być używana tylko z `scrub`.

    -o, --older-than DAYS
        Wybiera najstarszą część macierzy do przetworzenia w `scrub`.
        DAYS to minimalny wiek w dniach dla bloku, który ma być sprawdzony;
        domyślnie jest to 10.
        Bloki oznaczone jako złe są zawsze sprawdzane niezależnie od tej opcji.
        Ta opcja może być używana tylko z `scrub`.

    -a, --audit-only
        W `check`, weryfikuje hasz plików bez
        sprawdzania danych parzystości.
        Jeśli interesuje Cię tylko sprawdzenie danych pliku, ta
        opcja może znacznie przyspieszyć proces sprawdzania.
        Ta opcja może być używana tylko z `check`.

    -h, --pre-hash
        W `sync`, uruchamia wstępną fazę haszowania wszystkich nowych danych
        w celu dodatkowej weryfikacji przed obliczeniem parzystości.
        Zazwyczaj w `sync` nie jest wykonywane wstępne haszowanie, a nowe
        dane są haszowane tuż przed obliczeniem parzystości, gdy są odczytywane
        po raz pierwszy.
        Ten proces zachodzi, gdy system jest pod
        dużym obciążeniem, wszystkie dyski się kręcą, a CPU jest zajęte.
        Jest to ekstremalny warunek dla maszyny, a jeśli ma
        ukryty problem sprzętowy, ciche błędy mogą pozostać niewykryte,
        ponieważ dane nie są jeszcze haszowane.
        Aby uniknąć tego ryzyka, możesz włączyć tryb `pre-hash`, aby
        wszystkie dane były odczytywane dwukrotnie w celu zapewnienia ich integralności.
        Ta opcja weryfikuje również pliki przeniesione wewnątrz macierzy,
        aby upewnić się, że operacja przeniesienia zakończyła się pomyślnie, i, jeśli to konieczne,
        umożliwia uruchomienie operacji fix przed kontynuowaniem.
        Ta opcja może być używana tylko z `sync`.

    -i, --import DIR
        Importuje z określonego katalogu wszelkie pliki usunięte
        z macierzy po ostatniej `sync`.
        Jeśli nadal masz takie pliki, mogą być użyte przez `check`
        i `fix`, aby poprawić proces odzyskiwania.
        Pliki są odczytywane, w tym w podkatalogach, i są
        identyfikowane niezależnie od ich nazwy.
        Ta opcja może być używana tylko z `check` i `fix`.

    -s, --spin-down-on-error
        W przypadku każdego błędu, zatrzymuje wszystkie zarządzane dyski przed wyjściem
        z niezerowym kodem statusu. Zapobiega to pozostawaniu dysków
        aktywnymi i kręcącymi się po przerwanej operacji,
        pomagając uniknąć niepotrzebnego gromadzenia się ciepła i zużycia
        energii. Użyj tej opcji, aby upewnić się, że dyski są bezpiecznie
        zatrzymane, nawet gdy polecenie zakończy się niepowodzeniem.

    -w, --bw-limit RATE
        Stosuje globalne ograniczenie przepustowości dla wszystkich dysków. RATE to
        liczba bajtów na sekundę. Możesz określić mnożnik,
        taki jak K, M lub G (np. --bw-limit 1G).

    -t, --tail SIZE
        Ogranicza listę plików do tych, które nie wykraczają poza określoną
        sekcję końcową (ogon) plików parzystości.
        Możesz użyć mnożników takich jak K, M, G lub T (np. --tail 1G).
        Opcja ta jest ważna tylko wtedy, gdy jest używana wraz z poleceniem
        `locate`.

    -A, --stats
        Włącza rozszerzony widok statusu, który pokazuje dodatkowe informacje.
        Ekran wyświetla dwa wykresy:
        Pierwszy wykres pokazuje liczbę buforowanych pasków dla każdego
        dysku, wraz ze ścieżką pliku, do którego aktualnie uzyskuje się dostęp
        na tym dysku. Zazwyczaj najwolniejszy dysk nie będzie miał dostępnego
        bufora, co determinuje maksymalną osiągalną przepustowość.
        Drugi wykres pokazuje procent czasu spędzonego na czekaniu
        w ciągu ostatnich 100 sekund. Oczekuje się, że najwolniejszy dysk
        spowoduje większość czasu oczekiwania, podczas gdy inne dyski powinny mieć
        niewielki lub żaden czas oczekiwania, ponieważ mogą używać swoich buforowanych pasków.
        Ten wykres pokazuje również czas spędzony na czekaniu na obliczenia
        hasza i obliczenia RAID.
        Wszystkie obliczenia są wykonywane równolegle z operacjami dyskowymi.
        Dlatego, dopóki istnieje mierzalny czas oczekiwania dla
        przynajmniej jednego dysku, oznacza to, że CPU jest wystarczająco szybkie, aby
        nadążyć za obciążeniem.

    -Z, --force-zero
        Wymusza niebezpieczną operację synchronizacji pliku o zerowym
        rozmiarze, który wcześniej był niezerowy.
        Jeśli SnapRAID wykryje taki stan, zatrzymuje przetwarzanie,
        chyba że określisz tę opcję.
        Pozwala to łatwo wykryć, kiedy po awarii systemu
        niektóre dostępne pliki zostały obcięte.
        Jest to możliwy stan w systemie Linux z systemami plików ext3/ext4.
        Ta opcja może być używana tylko z `sync`.

    -E, --force-empty
        Wymusza niebezpieczną operację synchronizacji dysku z brakującymi
        wszystkimi oryginalnymi plikami.
        Jeśli SnapRAID wykryje, że brakuje wszystkich plików pierwotnie obecnych
        na dysku lub zostały przepisane, zatrzymuje przetwarzanie,
        chyba że określisz tę opcję.
        Pozwala to łatwo wykryć, kiedy system plików danych nie jest
        zamontowany.
        Ta opcja może być używana tylko z `sync`.

    -U, --force-uuid
        Wymusza niebezpieczną operację synchronizacji, sprawdzania i naprawiania
        z dyskami, które zmieniły swój UUID.
        Jeśli SnapRAID wykryje, że niektóre dyski zmieniły UUID,
        zatrzymuje przetwarzanie, chyba że określisz tę opcję.
        Pozwala to wykryć, kiedy Twoje dyski są zamontowane w
        niewłaściwych punktach montowania.
        Dozwolona jest jednak pojedyncza zmiana UUID z
        pojedynczą parzystością i więcej z wielokrotną parzystością, ponieważ jest to
        normalny przypadek podczas wymiany dysków po odzyskaniu.
        Ta opcja może być używana tylko z `sync`, `check` lub
        `fix`.

    -D, --force-device
        Wymusza niebezpieczną operację naprawiania z niedostępnymi dyskami
        lub z dyskami na tym samym urządzeniu fizycznym.
        Na przykład, jeśli straciłeś dwa dyski danych i masz zapasowy dysk do odzyskania
        tylko pierwszego, możesz zignorować drugi niedostępny dysk.
        Lub, jeśli chcesz odzyskać dysk w wolnym miejscu pozostawionym na
        już używanym dysku, współdzielącym to samo urządzenie fizyczne.
        Ta opcja może być używana tylko z `fix`.

    -N, --force-nocopy
        W `sync`, `check` i `fix`, wyłącza heurystykę wykrywania kopii.
        Bez tej opcji SnapRAID zakłada, że pliki o tych samych
        atrybutach, takich jak nazwa, rozmiar i znacznik czasu, są kopiami z tymi
        samymi danymi.
        Pozwala to na identyfikację skopiowanych lub przeniesionych plików z jednego dysku
        na inny i ponowne wykorzystanie już obliczonych informacji o haszu
        w celu wykrycia cichych błędów lub odzyskania brakujących plików.
        W niektórych rzadkich przypadkach to zachowanie może prowadzić do fałszywych alarmów
        lub spowolnienia procesu z powodu wielu weryfikacji hasza, a ta
        opcja pozwala rozwiązać takie problemy.
        Ta opcja może być używana tylko z `sync`, `check` i `fix`.

    -F, --force-full
        W `sync`, wymusza pełne ponowne obliczenie parzystości.
        Ta opcja może być używana, gdy dodajesz nowy poziom parzystości lub jeśli
        powróciłeś do starego pliku zawartości, używając nowszych danych parzystości.
        Zamiast ponownego tworzenia parzystości od podstaw, pozwala to
        na ponowne wykorzystanie haszy obecnych w pliku zawartości do walidacji danych
        i utrzymania ochrony danych podczas procesu `sync` za pomocą
        istniejących danych parzystości.
        Ta opcja może być używana tylko z `sync`.

    -R, --force-realloc
        W `sync`, wymusza pełną realokację plików i przebudowę parzystości.
        Ta opcja może być używana do całkowitej realokacji wszystkich plików,
        usuwając fragmentację, jednocześnie ponownie wykorzystując hasze obecne w pliku zawartości
        do walidacji danych.
        Ta opcja może być używana tylko z `sync`.
        OSTRZEŻENIE! Ta opcja jest tylko dla ekspertów i jest wysoce
        zalecane, aby jej nie używać.
        NIE MASZ ochrony danych podczas operacji `sync`.

    -W, --force-realloc-tail SIZE
        Działa jak -R, --force-realloc, ale ogranicza się do określonej części
        końcowej (ostatnie SIZE bajtów) każdego pliku parzystości.
        Wymusza realokację (przeniesienie) wszelkich fragmentów/bloków plików
        obecnie przechowywanych w tej sekcji końcowej, pozwalając na ich
        umieszczenie w dowolnym miejscu w pliku (plikach) parzystości, gdzie
        dostępne jest wolne miejsce (w tym w istniejących lukach).
        Głównym celem tej opcji jest zmniejszenie rozmiaru pliku parzystości
        na dysku.
        Jeśli realokacja pomyślnie wyczyści całą sekcję końcową (nie pozostaną
        żadne bloki korzystające z niej), plik parzystości zostanie przycięty,
        odzyskując nieużywane miejsce na końcu.
        Możesz użyć mnożników takich jak K, M, G lub T (np.
        --force-realloc-tail 1G).
        Możesz użyć locate -t, --tail, aby wcześniej poznać pliki, których
        będzie to dotyczyć.
        OSTRZEŻENIE!
        Ta opcja jest przeznaczona wyłącznie dla ekspertów i zdecydowanie
        zaleca się jej nie używać.
        Podczas operacji `sync` pliki, których to dotyczy, NIE mają ochrony
        danych.

    -l, --log FILE
        Zapisuje szczegółowy log do określonego pliku.
        Jeśli ta opcja nie jest określona, nieoczekiwane błędy są drukowane
        na ekranie, potencjalnie prowadząc do nadmiernego wyjścia w przypadku
        wielu błędów. Gdy -l, --log jest określone, tylko
        krytyczne błędy, które powodują zatrzymanie SnapRAID, są drukowane
        na ekranie.
        Jeśli ścieżka zaczyna się od `>>`, plik jest otwierany
        w trybie dołączania. Wystąpienia `%D` i `%T` w nazwie są
        zastępowane datą i czasem w formacie RRRRMMDD i
        GGMMSS. W plikach wsadowych Windows musisz podwoić
        znak `%`, np. result-%%D.log. Aby użyć `>>`, musisz
        ująć nazwę w cudzysłów, np. `">>result.log"`.
        Aby wyprowadzić log do standardowego wyjścia lub standardowego błędu,
        możesz użyć odpowiednio `">&1"` i `">&2"`.
        Opisy tagów logu znajdziesz w pliku snapraid_log.txt lub na stronie podręcznika.

    -L, --error-limit NUMBER
        Ustawia nowy limit błędów przed zatrzymaniem wykonania.
        Domyślnie SnapRAID zatrzymuje się, jeśli napotka więcej niż 100
        błędów wejścia/wyjścia, co wskazuje, że dysk prawdopodobnie ulega awarii.
        Ta opcja dotyczy `sync` i `scrub`, które mogą
        kontynuować po pierwszym zestawie błędów dysku, aby spróbować
        ukończyć swoje operacje.
        Jednak `check` i `fix` zawsze zatrzymują się przy pierwszym błędzie.

    -S, --start BLKSTART
        Zaczyna przetwarzanie od określonego
        numeru bloku. Może to być przydatne do ponownej próby sprawdzenia
        lub naprawy określonych bloków w przypadku uszkodzonego dysku.
        Ta opcja jest przeznaczona głównie do zaawansowanego ręcznego odzyskiwania
        i jest obsługiwana tylko przez `check` i `fix`.

    -B, --count BLKCOUNT
        Przetwarza tylko określoną liczbę bloków.
        Ta opcja jest przeznaczona głównie do zaawansowanego ręcznego odzyskiwania
        i jest obsługiwana tylko przez `check` i `fix`.

    -C, --gen-conf CONTENT
        Generuje atrapę pliku konfiguracyjnego z istniejącego
        pliku zawartości.
        Plik konfiguracyjny jest zapisywany na standardowe wyjście
        i nie nadpisuje istniejącego.
        Ten plik konfiguracyjny zawiera również informacje
        potrzebne do rekonstrukcji punktów montowania dysków na wypadek
        utraty całego systemu.

    -v, --verbose
        Wyświetla więcej informacji na ekranie.
        Jeśli określono raz, drukuje wykluczone pliki
        i dodatkowe statystyki.
        Ta opcja nie ma wpływu na pliki logów.

    -q, --quiet
        Wyświetla mniej informacji na ekranie.
        Jeśli określono raz, usuwa pasek postępu; dwa razy,
        bieżące operacje; trzy razy, komunikaty informacyjne; cztery razy,
        komunikaty statusu.
        Krytyczne błędy są zawsze drukowane na ekranie.
        Ta opcja nie ma wpływu na pliki logów.

    -H, --help
        Wyświetla krótki ekran pomocy.

    -V, --version
        Wyświetla wersję programu.


7 KONFIGURACJA (CONFIGURATION)
==============================

SnapRAID wymaga pliku konfiguracyjnego, aby wiedzieć, gdzie znajduje się Twoja macierz
dysków i gdzie przechowywać informacje o parzystości.

W systemie Unix używa pliku `/usr/local/etc/snapraid.conf`, jeśli istnieje,
w przeciwnym razie `/etc/snapraid.conf`.
W systemie Windows używa pliku `snapraid.conf` w tym samym
katalogu co `snapraid.exe`.

Musi zawierać następujące opcje (uwzględniające wielkość liter):

7.1 parity FILE [,FILE] ...
---------------------------

Definiuje pliki do użycia do przechowywania informacji o parzystości.
Parzystość umożliwia ochronę przed awarią pojedynczego dysku,
podobnie jak w RAID5.

Możesz określić wiele plików, które muszą znajdować się na różnych dyskach.
Gdy plik nie może już rosnąć, używany jest następny.
Całkowita dostępna przestrzeń musi być co najmniej tak duża jak największy dysk danych w
macierzy.

Możesz dodać dodatkowe pliki parzystości później, ale nie możesz
ich zmieniać kolejności ani usuwać.

Trzymanie dysków parzystości zarezerwowanych dla parzystości zapewnia, że
nie ulegną fragmentacji, co poprawia wydajność.

W systemie Windows 256 MB jest pozostawione niewykorzystane na każdym dysku, aby uniknąć
ostrzeżenia o pełnych dyskach.

Ta opcja jest obowiązkowa i może być używana tylko raz.

7.2 (2,3,4,5,6)-parity FILE [,FILE] ...
---------------------------------------

Definiuje pliki do użycia do przechowywania dodatkowych informacji o parzystości.

Dla każdego określonego poziomu parzystości włączany jest jeden dodatkowy
poziom ochrony:

* 2-parity włącza podwójną parzystość RAID6.
* 3-parity włącza potrójną parzystość.
* 4-parity włącza poczwórną (cztery) parzystość.
* 5-parity włącza pięciokrotną (pięć) parzystość.
* 6-parity włącza sześciokrotną (sześć) parzystość.

Każdy poziom parzystości wymaga obecności wszystkich poprzednich poziomów parzystości.

Obowiązują te same uwagi, co dla opcji `parity`.

Te opcje są opcjonalne i mogą być używane tylko raz.

7.3 z-parity FILE [,FILE] ...
-----------------------------

Definiuje alternatywny plik i format do przechowywania potrójnej parzystości.

Ta opcja jest alternatywą dla `3-parity`, przeznaczoną głównie dla
procesorów niskiej klasy, takich jak ARM lub AMD Phenom, Athlon i Opteron,
które nie obsługują zestawu instrukcji SSSE3. W takich przypadkach zapewnia
lepszą wydajność.

Ten format jest podobny, ale szybszy niż ten używany przez ZFS RAIDZ3.
Podobnie jak ZFS, nie działa powyżej potrójnej parzystości.

Podczas używania `3-parity` zostaniesz ostrzeżony, jeśli zaleca się użycie
formatu `z-parity` w celu poprawy wydajności.

Możliwa jest konwersja z jednego formatu na inny poprzez dostosowanie
pliku konfiguracyjnego z pożądanym plikiem z-parity lub 3-parity
i użycie `fix` do jego ponownego utworzenia.

7.4 content FILE
----------------

Definiuje plik do użycia do przechowywania listy i sum kontrolnych wszystkich
plików obecnych w Twojej macierzy dysków.

Może być umieszczony na dysku używanym do danych, parzystości lub
każdym innym dostępnym dysku.
Jeśli użyjesz dysku danych, ten plik jest automatycznie wykluczony
z procesu `sync`.

Ta opcja jest obowiązkowa i może być używana wielokrotnie do zapisania
wielu kopii tego samego pliku.

Musisz przechowywać co najmniej jedną kopię dla każdego używanego dysku parzystości
plus jeden. Używanie dodatkowych kopii nie szkodzi.

7.5 data NAME DIR
-----------------

Definiuje nazwę i punkt montowania dysków danych w
macierzy. NAME służy do identyfikacji dysku i musi
być unikalna. DIR to punkt montowania dysku w
systemie plików.

Możesz zmieniać punkt montowania w razie potrzeby, o ile
zachowasz stałą nazwę NAME.

Jednak skonfigurowana ścieżka musi spójnie wskazywać na te same
dane bazowe. Jeśli ścieżka zawiera dowiązania symboliczne,
ich cele muszą pozostać stabilne. Zmiana takich dowiązań w celu
przełączenia katalogu danych w locie jest nieobsługiwana.

Powinieneś użyć jednej opcji dla każdego dysku danych w macierzy.

Możesz później zmienić nazwę dysku, zmieniając bezpośrednio nazwę NAME
w pliku konfiguracyjnym, a następnie uruchamiając polecenie `sync`.
W przypadku zmiany nazwy, skojarzenie odbywa się za pomocą zapisanego
UUID dysków.

7.6 extra NAME DIR
------------------

Definiuje nazwę i punkt montowania dodatkowych dysków do
monitorowania za pomocą poleceń `smart` oraz `probe`.

Jest to przydatne do monitorowania dysków, które nie są częścią
macierzy, ale są wymagane do funkcjonowania systemu, takich jak
dysk rozruchowy.

Należy zauważyć, że polecenia `up` i `down` nie mają wpływu na takie
dyski, ponieważ oczekuje się, że będą one zawsze w ruchu.

7.7 snapshot
------------

Włącza używanie migawek systemu plików dla poleceń `sync`, `scrub`,
`check` oraz `fix`.

Po włączeniu, SnapRAID tworzy migawkę w trybie tylko do odczytu dla każdego
obsługiwanego systemu plików z danymi na początku operacji 'sync'. Zapewnia to
stabilny obraz każdego systemu plików, zapobiegając sytuacji, w której późniejsze
modyfikacje zmieniłyby dane użyte do obliczenia parzystości.

To znacznie usprawnia odzyskiwanie danych: jeśli plik zostanie usunięty z aktywnego systemu
plików, pozostaje zachowany w migawce. Zapobiega to sytuacji, w której parzystość staje się "uszkodzona"
dla tego bloku, zapewniając możliwość pomyślnego odzyskania danych,
jeśli ulegnie awarii inny dysk.

Opcja ta dotyczy wyłącznie dysków z danymi sformatowanych w systemach plików
Btrfs, Bcachefs lub ZFS w systemie Linux oraz NTFS w systemie Windows.
Dyski parzystości lub dyski z danymi korzystające z innych systemów plików będą zawsze używać
aktywnej wersji systemu plików.

Tworzenie i usuwanie migawek wymaga uprawnień administratora.
Upewnij się, że SnapRAID jest uruchamiany z wymaganymi uprawnieniami (np. sudo), gdy
opcja ta jest włączona.

Szczegółowe wyjaśnienie cyklu życia migawek znajduje się w sekcji SNAPSHOTS.

7.8 nohidden
------------

Wyklucza wszystkie ukryte pliki i katalogi.
W systemie Unix ukryte pliki to te zaczynające się od `.`.
W systemie Windows są to te z atrybutem ukrycia.

7.9 exclude/include PATTERN
---------------------------

Definiuje wzorce plików lub katalogów do wykluczenia lub włączenia
do procesu synchronizacji.
Wszystkie wzorce są przetwarzane w określonej kolejności.

Jeśli pierwszy pasujący wzorzec jest `exclude`, plik
jest wykluczony. Jeśli jest to `include`, plik jest włączony.
Jeśli żaden wzorzec nie pasuje, plik jest wykluczony, jeśli ostatni określony
wzorzec to `include`, lub włączony, jeśli ostatni określony wzorzec to `exclude`.

Należy pamiętać, że filtrowanie odbywa się hierarchicznie podczas
przechodzenia katalogów. Jeśli katalog pasuje do reguły `exclude`, cały
katalog jest pomijany (odrzucany), a wszelkie reguły `include` dla plików
lub podkatalogów w nim zawartych nie będą oceniane.

Zobacz sekcję PATTERN, aby uzyskać więcej szczegółów na temat specyfikacji
wzorców.

Ta opcja może być używana wielokrotnie.

7.10 blocksize SIZE_IN_KIBIBYTES
--------------------------------

Definiuje podstawowy rozmiar bloku w kibibajtach dla parzystości.
Jeden kibibajt to 1024 bajty.

Domyślny rozmiar bloku to 256, co powinno działać w większości przypadków.

OSTRZEŻENIE! Ta opcja jest tylko dla ekspertów i jest wysoce
zalecane, aby nie zmieniać tej wartości. Aby zmienić tę wartość w przyszłości,
będziesz musiał ponownie utworzyć całą parzystość!

Powodem użycia innego rozmiaru bloku jest posiadanie wielu małych
plików, rzędu milionów.

Dla każdego pliku, nawet jeśli ma tylko kilka bajtów, alokowany jest cały blok parzystości,
a przy wielu plikach może to skutkować znaczną nieużywaną przestrzenią parzystości.
Kiedy całkowicie wypełnisz dysk parzystości, nie możesz
dodawać więcej plików do dysków danych.
Jednak marnowana parzystość nie gromadzi się na dyskach danych. Marnowane miejsce
wynikające z dużej liczby plików na dysku danych ogranicza tylko
ilość danych na tym dysku danych, a nie na innych.

Jako przybliżenie, możesz założyć, że połowa rozmiaru bloku jest
marnowana dla każdego pliku. Na przykład, z 100 000 plików i rozmiarem bloku 256 KiB,
zmarnujesz 12,8 GB parzystości, co może skutkować
12,8 GB mniejszą dostępną przestrzenią na dysku danych.

Możesz sprawdzić ilość zmarnowanego miejsca na każdym dysku za pomocą `status`.
Jest to ilość miejsca, którą musisz pozostawić wolną na dyskach danych
lub użyć dla plików niewłączonych do macierzy.
Jeśli ta wartość jest ujemna, oznacza to, że jesteś blisko wypełnienia
parzystości i reprezentuje to przestrzeń, którą nadal możesz zmarnować.

Aby uniknąć tego problemu, możesz użyć większej partycji dla parzystości.
Na przykład, jeśli partycja parzystości jest o 12,8 GB większa niż dyski danych,
masz wystarczająco dużo dodatkowego miejsca, aby obsłużyć do 100 000
plików na każdym dysku danych bez marnowania miejsca.

Sztuczką, aby uzyskać większą partycję parzystości w systemie Linux, jest sformatowanie jej
za pomocą polecenia:

    mkfs.ext4 -m 0 -T largefile4 DEVICE

Daje to około 1,5% dodatkowego miejsca, około 60 GB dla
dysku 4 TB, co pozwala na około 460 000 plików na każdym dysku danych bez
marnowania miejsca.

7.11 hashsize SIZE_IN_BYTES
---------------------------

Definiuje rozmiar hasza w bajtach dla zapisanych bloków.

Domyślny rozmiar hasza to 16 bajtów (128 bitów), co powinno działać
w większości przypadków.

OSTRZEŻENIE! Ta opcja jest tylko dla ekspertów i jest wysoce
zalecane, aby nie zmieniać tej wartości. Aby zmienić tę wartość w przyszłości,
będziesz musiał ponownie utworzyć całą parzystość!

Powodem użycia innego rozmiaru hasza jest to, że Twój system ma
ograniczoną pamięć. Z reguły, SnapRAID zwykle wymaga
1 GiB pamięci RAM na każde 16 TB danych w macierzy.

Konkretnie, aby przechowywać hasze danych, SnapRAID wymaga
około TS*(1+HS)/BS bajtów pamięci RAM,
gdzie TS to całkowity rozmiar w bajtach Twojej macierzy dysków, BS to
rozmiar bloku w bajtach, a HS to rozmiar hasza w bajtach.

Na przykład, z 8 dyskami po 4 TB, rozmiarem bloku 256 KiB
(1 KiB = 1024 bajty) i rozmiarem hasza 16, otrzymujesz:

RAM = (8 * 4 * 10^12) * (1+16) / (256 * 2^10) = 1,93 GiB

Przełączając się na rozmiar hasza 8, otrzymujesz:

RAM = (8 * 4 * 10^12) * (1+8) / (256 * 2^10) = 1,02 GiB

Przełączając się na rozmiar bloku 512, otrzymujesz:

RAM = (8 * 4 * 10^12) * (1+16) / (512 * 2^10) = 0,96 GiB

Przełączając się zarówno na rozmiar hasza 8, jak i rozmiar bloku 512, otrzymujesz:

RAM = (8 * 4 * 10^12) * (1+8) / (512 * 2^10) = 0,51 GiB

7.12 autosave SIZE_IN_GIGABYTES
-------------------------------

Automatycznie zapisuje stan podczas synchronizacji lub sprawdzania po przetworzeniu
określonej ilości GB.
Ta opcja jest przydatna, aby uniknąć ponownego uruchamiania długich poleceń `sync`
od zera, jeśli zostaną przerwane przez awarię maszyny lub inne zdarzenie.

7.13 temp_limit TEMPERATURE_CELSIUS
-----------------------------------

Ustawia maksymalną dozwoloną temperaturę dysku w stopniach Celsjusza. Po określeniu,
SnapRAID okresowo sprawdza temperaturę wszystkich dysków za pomocą
narzędzia smartctl. Aktualne temperatury dysków są wyświetlane podczas
działania SnapRAID. Jeśli którykolwiek dysk przekroczy ten limit, wszystkie operacje
zostają zatrzymane, a dyski są wyłączane (przechodzą w stan czuwania / uśpienia) na czas
zdefiniowany przez opcję `temp_sleep`. Po okresie uśpienia, operacje
są wznawiane, potencjalnie ponownie zatrzymując się, jeśli limit temperatury
zostanie ponownie osiągnięty.

Podczas działania SnapRAID analizuje również krzywą nagrzewania każdego
dysku i szacuje długoterminową stałą temperaturę, którą mają
osiągnąć, jeśli aktywność będzie kontynuowana. Oszacowanie jest wykonywane tylko po
czterokrotnym zarejestrowaniu wzrostu temperatury dysku, co zapewnia, że
dostępnych jest wystarczająco dużo punktów danych do ustalenia wiarygodnego trendu.
Ta przewidywana stała temperatura jest pokazywana w nawiasach obok
aktualnej wartości i pomaga ocenić, czy chłodzenie systemu jest
odpowiednie. Ta szacowana temperatura ma charakter wyłącznie informacyjny
i nie ma wpływu na zachowanie SnapRAID. Działania programu
opierają się wyłącznie na faktycznie zmierzonych temperaturach dysków.

Aby wykonać tę analizę, SnapRAID potrzebuje odniesienia dla temperatury systemu.
Najpierw próbuje odczytać ją z dostępnych czujników sprzętowych.
Jeśli nie można uzyskać dostępu do żadnego czujnika systemu, jako awaryjne odniesienie
wykorzystuje najniższą temperaturę dysku zmierzoną na początku uruchomienia.

Normalnie SnapRAID pokazuje tylko temperaturę najgorętszego dysku.
Aby wyświetlić temperaturę wszystkich dysków, użyj opcji -A lub --stats.

7.14 temp_sleep TIME_IN_MINUTES
-------------------------------

Ustawia czas wstrzymania (czuwania), w minutach, po osiągnięciu limitu temperatury.
W tym okresie dyski pozostają zatrzymane. Domyślnie jest to 5 minut.

7.15 pool DIR
-------------

Definiuje katalog puli, w którym tworzony jest wirtualny widok macierzy
dysków za pomocą polecenia `pool`.

Katalog musi już istnieć.

7.16 share UNC_DIR
------------------

Definiuje ścieżkę UNC Windows wymaganą do zdalnego dostępu do dysków.

Jeśli ta opcja jest określona, dowiązania symboliczne utworzone w katalogu puli
używają tej ścieżki UNC do dostępu do dysków.
Bez tej opcji generowane dowiązania symboliczne używają tylko ścieżek lokalnych,
co nie pozwala na udostępnianie katalogu puli w sieci.

Dowiązania symboliczne są tworzone przy użyciu określonej ścieżki UNC,
dodając nazwę dysku określoną w opcji `data`, a na końcu dodając
katalog i nazwę pliku.

Ta opcja jest wymagana tylko dla systemu Windows.

7.17 smartctl DISK/PARITY OPTIONS...
------------------------------------

Definiuje niestandardowe opcje smartctl do uzyskania atrybutów SMART dla
każdego dysku. Może to być wymagane dla kontrolerów RAID i niektórych dysków USB,
których nie można wykryć automatycznie. Symbol zastępczy %s jest zastępowany
nazwą urządzenia, ale jest opcjonalny dla stałych urządzeń, takich jak kontrolery RAID.

DISK to ta sama nazwa dysku określona w opcji `data`.
PARITY to jedna z nazw parzystości: `parity`, `2-parity`, `3-parity`,
`4-parity`, `5-parity`, `6-parity` lub `z-parity`.

W określonych OPCJACH ciąg `%s` jest zastępowany
nazwą urządzenia. W przypadku kontrolerów RAID, urządzenie jest
prawdopodobnie stałe i może nie być konieczne użycie `%s`.

Możesz również określić niestandardowy ciąg opcji informacyjnych za pomocą
znacznika `[info: ...]`, aby zastąpić domyślną opcję `-a`.

Zapoznaj się z dokumentacją smartmontools, aby uzyskać możliwe opcje:

    https://www.smartmontools.org/wiki/Supported_RAID-Controllers
    https://www.smartmontools.org/wiki/Supported_USB-Devices

Na przykład:

    smartctl d1 [info: -H -i -c -A] -d sat %s
    smartctl parity -d sat %s

7.18 smartignore DISK/PARITY ATTR [ATTR...]
-------------------------------------------

Ignoruje określony atrybut SMART podczas obliczania prawdopodobieństwa
awarii dysku. Ta opcja jest przydatna, jeśli dysk zgłasza nietypowe lub
wprowadzające w błąd wartości dla określonego atrybutu.

DISK to ta sama nazwa dysku określona w opcji `data`.
PARITY to jedna z nazw parzystości: `parity`, `2-parity`, `3-parity`,
`4-parity`, `5-parity`, `6-parity` lub `z-parity`.
Specjalna wartość * może być użyta do zignorowania atrybutu na wszystkich dyskach.

Można określić wiele atrybutów oddzielonych spacjami.
Każdy atrybut można określić jako liczbę od 1 do 255 lub jako nazwę
niewrażliwą na wielkość liter (np. `Current_Pending_Sector`).

Na przykład, aby zignorować atrybuty `Current Pending Sector Count` i
`Reallocated Sectors Count` na wszystkich dyskach za pomocą ich numeru lub nazwy:

    smartignore * 197 5
    smartignore * Current_Pending_Sector Reallocated_Sector_Ct

Aby zignorować je tylko na pierwszym dysku parzystości:

    smartignore parity 197 5

7.19 Examples
-------------

Przykład typowej konfiguracji dla systemu Unix:

    parity /mnt/diskp/snapraid.parity
    content /mnt/diskp/snapraid.content
    content /var/snapraid/snapraid.content
    data d1 /mnt/disk1/
    data d2 /mnt/disk2/
    data d3 /mnt/disk3/
    exclude /lost+found/
    exclude /tmp/
    smartctl d1 [info: -H -i -c -A] -d sat %s
    smartctl d2 -d usbjmicron %s
    smartctl parity -d areca,1/1 /dev/sg0
    smartctl 2-parity -d areca,2/1 /dev/sg0

Przykład typowej konfiguracji dla systemu Windows:

    parity E:\snapraid.parity
    content E:\snapraid.content
    content C:\snapraid\snapraid.content
    data d1 G:\array\
    data d2 H:\array\
    data d3 I:\array\
    exclude Thumbs.db
    exclude \$RECYCLE.BIN
    exclude \System Volume Information
    smartctl d1 [info: -H -i -c -A] -d sat %s
    smartctl d2 -d usbjmicron %s
    smartctl parity -d areca,1/1 /dev/arcmsr0
    smartctl 2-parity -d areca,2/1 /dev/arcmsr0


8 MIGAWKI (SNAPSHOTS)
=====================

Jeśli opcja snapshot jest włączona w konfiguracji, SnapRAID
używa migawek systemu plików, aby utrzymać stabilność danych odczytywanych
podczas operacji, nawet jeśli pliki w aktywnych systemach plików zostaną
później zmodyfikowane lub usunięte.

Zarządzanie migawkami jest całkowicie automatyczne i przejrzyste.
Możesz nadal używać SnapRAID dokładnie tak jak dotychczas, z dodatkową
ochroną zapewnianą przez migawki, która jest realizowana w całości w
tle.

Zapewnia to dwie główne korzyści:

Spójność - Pliki zmodyfikowane w aktywnym systemie plików podczas długotrwałej
    operacji sync lub scrub nie spowodują niezgodności parzystości ani przerwania
    operacji, ponieważ każdy objęty migawką system plików pozostaje niezmieniony
    przez cały czas trwania operacji.
Odzyskiwanie - Jeśli plik zostanie zaktualizowany lub usunięty z aktywnego systemu plików,
    pozostaje zachowany w migawce. Jeśli awaria dysku nastąpi
    przed uruchomieniem kolejnej operacji sync, SnapRAID użyje danych zachowanych
    w migawce do odbudowania uszkodzonego dysku.

    W przypadku awarii dysku podczas aktywnego procesu sync,
    SnapRAID jest również w stanie automatycznie czytać zarówno z migawki
    poprzedniego obliczenia parzystości, jak i z bieżącej.
    Maksymalizuje to prawdopodobieństwo pełnego odzyskania danych poprzez
    zapewnienie dostępu do dokładnych bloków danych wymaganych do rozwiązania
    równań parzystości, nawet jeśli bloki te zostały zmodyfikowane
    lub usunięte pomiędzy operacjami sync.

    Bez migawek, zaktualizowany lub usunięty plik na sprawnym dysku
    skutkuje brakiem bloków danych, które mogą być wymagane do
    naprawy innych uszkodzonych dysków.

Migawki są tworzone tylko dla dysków z danymi i tylko wtedy, gdy bazowy
system plików obsługuje tę funkcjonalność. Dyski parzystości zawsze używają
aktywnego systemu plików.

Obecnie jest to obsługiwane w systemach Btrfs, Bcachefs i ZFS w systemie Linux
oraz NTFS w systemie Windows.

Można mieszać dyski z danymi o różnych systemach plików. Tylko te, które
obsługują migawki, będą z nich korzystać, podczas gdy inne dyski będą nadal
działać bezpośrednio na aktywnym systemie plików.

Tworzenie i usuwanie migawek wymaga uprawnień administratora.
Upewnij się, że SnapRAID jest uruchamiany z wymaganymi uprawnieniami (np. sudo),
gdy migawki są włączone.

8.1 Zachowanie poleceń przy użyciu migawek
------------------------------------------

Polecenia `sync` oraz `scrub` używają migawek dla dysków z danymi, których
systemy plików je obsługują. Na dysku objętym migawką polecenie widzi stabilny
obraz systemu plików, na który nie mają wpływu równoczesne zmiany w aktywnym
systemie plików.
Podczas operacji `sync` nowa migawka jest tworzona niezależnie dla każdego
obsługiwanego systemu plików z danymi. Migawki te łącznie dostarczają dane
używane do obliczenia parzystości.
W przeciwieństwie do tego, polecenie `scrub` wykorzystuje ostatnią migawkę, tę
utworzoną podczas najnowszej synchronizacji, aby utrzymać wiarygodny punkt odniesienia
odpowiadający istniejącej parzystości.

W przypadku poleceń `check` oraz `fix`, użycie ostatniej migawki
zależy od tego, czy konkretne dyski są wskazywane za pomocą opcji
-d, --filter-disk.

Dysk jawnie wybrany za pomocą opcji -d ("cel" operacji)
zawsze używa aktywnego systemu plików. Dla `fix` pozwala to na przywrócenie
danych na aktywny dysk zamienny. Dla `check` pozwala to na symulację
operacji `fix` w tych samych warunkach.

Wszystkie inne dyski z danymi (dyski "referencyjne") będą dostępne za pośrednictwem
swoich migawek. Zapewnia to, że nawet jeśli modyfikujesz pliki
na sprawnych dyskach podczas trwania odzyskiwania danych, SnapRAID
posiada stabilny, zamrożony punkt odniesienia do rozwiązania równań parzystości.

Jeśli nie podano opcji -d, SnapRAID zakłada, że operacja dotyczy
całej macierzy. W takim przypadku `check` oraz `fix` będą używać wyłącznie
aktywnych systemów plików.

Wszystkie inne polecenia działają wyłącznie na aktywnym systemie plików.


9 CYKL żYCIA MIGAWEK (SNAPSHOTS LIFECYCLE)
==========================================

SnapRAID zarządza trzema określonymi migawkami, `stable` (stabilną), `pending` (oczekującą) oraz `scan` (skanowania),
w ukrytym katalogu w katalogu głównym każdego podwolumenu danych.
W systemach Btrfs, Bcachefs i NTFS używany jest katalog `.snapraid/`,
w systemie ZFS standardowy `.zfs/snapshot/`.

Migawka `stable` reprezentuje stan ostatniej
pomyślnie zakończonej operacji `sync`, zawierając dokładne dane użyte do
obliczenia bieżącej parzystości. Służy ona jako główne źródło danych
dla poleceń `scrub`, `check` i `fix`.

Migawka `scan` to tymczasowy obraz tworzony na początku
operacji `sync` w celu zapewnienia zamrożonego stanu do skanowania i obliczenia parzystości.
Po zeskanowaniu i zapisaniu nowego stanu zawartości zastępuje ona poprzednią
migawkę `pending`.

Migawka `pending` to obraz używany przez przerwaną operację `sync`.
Po pomyślnym zakończeniu operacji poprzednia migawka `stable`
jest usuwana, a migawka `pending` zostaje podniesiona do rangi
nowej stabilnej referencji.

Jeśli operacja `sync` zostanie przerwana, migawka `pending` zostaje zachowana.
Kolejne polecenia `scrub`, `check` i `fix` będą używać tej oczekującej migawki,
ponieważ odpowiada ona stanowi systemu plików zapisanemu w pliku .content,
nawet jeśli parzystość jest zsynchronizowana tylko częściowo.

W przypadku przerwania operacji `sync`, polecenia `check` i `fix`
odczytują dane również z migawki `stable`, aby pobrać bloki danych
z plików, które zostały zaktualizowane lub usunięte podczas synchronizacji.
Jest to możliwe, ponieważ plik .content zachowuje metadane dla
wszystkich zmodyfikowanych lub usuniętych plików przez cały proces sync.
Te informacje historyczne są czyszczone dopiero po pomyślnym zakończeniu operacji sync
i zapisaniu ostatecznej wersji pliku .content.

Jeśli operacja `sync` zostanie zrestartowana po przerwaniu, istniejąca
oczekująca (pending) migawka jest usuwana, a tworzona jest nowa, aby
uchwycić bieżący stan aktywnego systemu plików.
Jeśli jednak operacja `sync` zostanie przerwana, należy unikać modyfikowania,
usuwania, zastępowania lub przenoszenia plików do momentu pomyślnego ukończenia
kolejnej operacji `sync`. Parzystość może nadal zawierać bloki obliczone na podstawie
migawki użytej przez przerwaną synchronizację. Późniejsza synchronizacja może zastąpić
tę migawkę, uniemożliwiając odzyskanie pośrednich wersji plików.

9.1 Kopie zapasowe z migawkami systemu plików (External backups with filesystem snapshots)
------------------------------------------------------------------------------------------

Gdy migawki systemu plików są włączone, SnapRAID uzyskuje dostęp do migawek
lub tworzy je w katalogu głównym każdego podwoluminu danych, woluminu lub
zestawu danych (dataset).

Prostym sposobem na uniknięcie jakichkolwiek konfliktów z zewnętrznymi
narzędziami jest wskazanie w konfiguracji `data` zwykłego podkatalogu
wewnątrz podwoluminu lub woluminu (na przykład `/mnt/subvol/data` zamiast
`/mnt/subvol`). SnapRAID zawsze tworzy katalog migawek w katalogu głównym
podwoluminu (na przykład `/mnt/subvol/.snapraid/`), pozostawiając podkatalog
danych czysty, dzięki czemu migawki pozostają na zewnątrz i są niewidoczne
dla narzędzi do tworzenia kopii zapasowych działających w tym katalogu.

W przeciwnym razie, jeśli skonfigurowany katalog `data` jest sam w sobie
katalogiem głównym podwoluminu lub woluminu, SnapRAID utworzy katalog
`.snapraid/` bezpośrednio w nim (w systemach Btrfs, Bcachefs i NTFS).
Chociaż SnapRAID automatycznie wyklucza ten katalog z własnego skanowania,
zewnętrzne narzędzia do tworzenia kopii zapasowych lub synchronizacji
plików napotkają go. Jeśli nie zostanie wykluczony, mogą wejść do migawek
lub dowiązań katalogów i skopiować całe zamrożone drzewo danych, duplikując
dane i wyczerpując przestrzeń dyskową kopii zapasowej. Zawsze konfiguruj
zewnętrzne narzędzia do tworzenia kopii zapasowych tak, aby wykluczały
katalog `.snapraid/`.

W systemie ZFS migawki są udostępniane za pośrednictwem standardowego
katalogu wirtualnego `.zfs/snapshot/` zamiast `.snapraid/`. Domyślnie
(`snapdir=hidden`) system ZFS ukrywa ten katalog na listach katalogów, więc
zewnętrzne narzędzia do tworzenia kopii zapasowych go nie przeskanują. Jeśli
włączono opcję `snapdir=visible`, upewnij się, że narzędzia do tworzenia kopii
zapasowych wykluczają katalog `.zfs/`.


10 WZORCE (PATTERN)
===================

Wzorce zapewniają elastyczny sposób filtrowania plików do uwzględnienia lub
wykluczenia. Używając znaków globbingowych, można zdefiniować reguły, które
pasują do określonych nazw plików lub całych struktur katalogów bez
ręcznego wymieniania każdej ścieżki.

Znak zapytania `?` dopasowuje dowolny pojedynczy znak z wyjątkiem
separatora katalogów. Dzięki temu jest przydatny do dopasowywania nazw plików ze
zmiennymi znakami, przy jednoczesnym ograniczeniu wzorca do jednego poziomu katalogu.

Pojedyncza gwiazdka `*` dopasowuje dowolną sekwencję znaków, ale podobnie jak
znak zapytania, nigdy nie przekracza granic katalogów. Zatrzymuje się na
ukośniku, co czyni ją odpowiednią do dopasowywania w obrębie jednego
składnika ścieżki. Jest to standardowe zachowanie symboli wieloznacznych znane
z globbingu powłoki (shell).

Symbol wieloznaczny podwójnej gwiazdki `**` dopasowuje się poprzez separatory
katalogów tylko wtedy, gdy sąsiaduje z separatorem katalogów (jest poprzedzony
lub zakończony ukośnikiem). W tej formie dopasowuje zero lub więcej znaków
na wielu poziomach katalogów. Na przykład `foo/**/bar` dopasowuje `foo/bar`,
`foo/a/bar` oraz `foo/a/b/bar`; `**/build` dopasowuje `build` oraz
`foo/bar/build`; a `src/**.js` dopasowuje `src/main.js` oraz
`src/ui/components/main.js`.
Samodzielna forma `/**/` nie jest akceptowana jako kompletny wzorzec.

Gdy `**` nie sąsiaduje z ukośnikiem, zachowuje się jak `*` i nie dopasowuje
separatorów katalogów. Na przykład `**.jpg` dopasowuje `photo.jpg` w bieżącym
katalogu, ale nie pasuje do `dir/photo.jpg`. W tym celu należy użyć `**/*.jpg`.

Klasy znaków używające nawiasów kwadratowych `[]` dopasowują pojedynczy znak z
określonego zestawu lub zakresu. Podobnie jak inne wzorce pojedynczych znaków,
nie pasują one do separatorów katalogów. Klasy obsługują zakresy i negację za pomocą
wykrzyknika.

Podstawową różnicą, o której należy pamiętać, jest to, że `*`, `?` i klasy znaków
wszystkie respektują granice katalogów i dopasowują się tylko w obrębie jednego
składnika ścieżki, podczas gdy `**` może dopasowywać się poprzez separatory
katalogów tylko wtedy, gdy sąsiaduje z ukośnikiem.

Istnieją cztery różne typy wzorców:

    FILE
        Wybiera dowolny plik o nazwie FILE.
        Ten wzorzec dotyczy tylko plików, a nie katalogów.

    DIR/
        Wybiera dowolny katalog o nazwie DIR i wszystko, co się w nim znajduje.
        Ten wzorzec dotyczy tylko katalogów, a nie plików.

    /PATH/FILE
        Wybiera dokładnie określoną ścieżkę pliku. Ten wzorzec dotyczy
        tylko plików, a nie katalogów.

    /PATH/DIR/
        Wybiera dokładnie określoną ścieżkę katalogu i wszystko, co się w nim
        znajduje. Ten wzorzec dotyczy tylko katalogów, a nie plików.

Gdy określisz ścieżkę bezwzględną zaczynającą się od /, jest ona stosowana w
katalogu głównym macierzy, a nie w katalogu głównym lokalnego systemu plików.

W systemie Windows możesz użyć ukośnika odwrotnego \ zamiast ukośnika /.
Katalogi systemowe Windows, połączenia, punkty montowania i inne
specjalne katalogi Windows są traktowane jako pliki, co oznacza, że aby je
wykluczyć, musisz użyć reguły pliku, a nie katalogu.

Jeśli nazwa pliku zawiera znak `*`, `?`, `[`,
lub `]`, musisz go zamaskować (poprzedzić znakiem ucieczki), aby uniknąć interpretacji jako
znaku globbing. W systemie Unix znakiem ucieczki jest `\`; w systemie Windows jest to `^`.
Gdy wzorzec znajduje się w wierszu poleceń, musisz podwoić znak ucieczki,
aby uniknąć interpretacji przez powłokę poleceń.

W pliku konfiguracyjnym możesz użyć różnych strategii do filtrowania
plików do przetworzenia.
Najprostszym podejściem jest użycie tylko reguł `exclude`, aby usunąć wszystkie
pliki i katalogi, których nie chcesz przetwarzać. Na przykład:

    # Wyklucza dowolny plik o nazwie `*.unrecoverable`
    exclude *.unrecoverable
    # Wyklucza katalog główny `/lost+found`
    exclude /lost+found/
    # Wyklucza dowolny podkatalog o nazwie `tmp`
    exclude tmp/

Odwrotnym podejściem jest zdefiniowanie tylko plików, które chcesz przetwarzać,
używając tylko reguł `include`. Na przykład:

    # Włącza tylko niektóre katalogi
    include /movies/
    include /musics/
    include /pictures/

Ostatecznym podejściem jest mieszanie reguł `exclude` i `include`. W tym przypadku
kolejność reguł jest ważna. Wcześniejsze reguły mają
pierwszeństwo przed późniejszymi.
Aby uprościć, możesz najpierw wymienić wszystkie reguły `exclude`, a następnie
wszystkie reguły `include`. Na przykład:

    # Wyklucza dowolny plik o nazwie `*.unrecoverable`
    exclude *.unrecoverable
    # Wyklucza dowolny podkatalog o nazwie `tmp`
    exclude tmp/
    # Włącza tylko niektóre katalogi
    include /movies/
    include /musics/
    include /pictures/

Należy pamiętać, że wykluczenie katalogu (za pomocą DIR/ lub /PATH/DIR/)
uniemożliwia programowi SnapRAID wejście i skanowanie tego katalogu.
W konsekwencji nie jest możliwe ponowne włączenie pliku lub podkatalogu
znajdującego się w wykluczonym katalogu nadrzędnym, ponieważ skaner nigdy
do niego nie przechodzi.

Na przykład poniższa konfiguracja NIE uwzględni pliku `file.dat`,
ponieważ katalog `/keep/` zostanie odrzucony, zanim `file.dat` będzie
mógł zostać sprawdzony:

    # NIE działa zgodnie z oczekiwaniami: /keep/ jest całkowicie pomijany
    include /keep/file.dat
    exclude /keep/

Aby wykluczyć pliki wewnątrz katalogu, zachowując wybrane, należy dopasować
wzorzec plików wewnątrz katalogu, zamiast wykluczać sam katalog:

    # Działa: /keep/ jest przeszukiwany, ale pozostałe pliki są wykluczane
    include /keep/file.dat
    exclude /keep/*

W wierszu poleceń, używając opcji -f, możesz użyć tylko wzorców `include`.
Na przykład:

    # Sprawdza tylko pliki .mp3.
    # W systemie Unix użyj cudzysłowów, aby uniknąć rozszerzenia globbing przez powłokę.
    snapraid -f "*.mp3" check

W systemie Unix, używając znaków globbing w wierszu poleceń, musisz
je cytować, aby zapobiec ich rozszerzeniu przez powłokę.


11 PLIK IGNOROWANIA (IGNORE FILE)
=================================

Oprócz reguł globalnych w pliku konfiguracyjnym, możesz umieścić pliki
`.snapraidignore` w dowolnym katalogu w macierzy, aby zdefiniować
zdecentralizowane reguły wykluczania.

Reguły zdefiniowane w `.snapraidignore` są stosowane po regułach w pliku
konfiguracyjnym. Oznacza to, że mają one wyższy priorytet i mogą być używane
do wykluczania plików, które zostały wcześniej uwzględnione przez konfigurację
globalną. Skutecznie, jeśli reguła lokalna pasuje, plik jest wykluczany bez
względu na globalne ustawienia uwzględniania.

Logika wzorców w `.snapraidignore` odzwierciedla konfigurację globalną, ale
zakotwicza wzorce w katalogu, w którym znajduje się plik:

    FILE
        Wybiera dowolny plik o nazwie FILE w tym katalogu lub poniżej.
        Podlega to tym samym zasadom dopasowywania (globbing) co wzorzec globalny.

    DIR/
        Wybiera dowolny katalog o nazwie DIR i wszystko w jego wnętrzu,
        znajdujący się w tym katalogu lub poniżej.

    /PATH/FILE
        Wybiera dokładnie określony plik względem lokalizacji
        pliku `.snapraidignore`.

    /PATH/DIR/
        Wybiera dokładnie określony katalog i wszystko w jego wnętrzu,
        względem lokalizacji pliku `.snapraidignore`.

W przeciwieństwie do konfiguracji globalnej, pliki `.snapraidignore` obsługują
tylko reguły wykluczania; nie można używać wzorców `include` ani negacji (!).

Na przykład, jeśli masz `.snapraidignore` w `/mnt/disk1/projects/`:

    # Wyklucza TYLKO /mnt/disk1/projects/output.bin
    /output.bin
    # Wyklucza każdy katalog o nazwie `build` wewnątrz projects/
    build/
    # Wyklucza każdy plik .tmp wewnątrz projects/ lub jego podfolderach
    *.tmp


12 ZAWARTOść (CONTENT)
======================

SnapRAID przechowuje listę i sumy kontrolne Twoich plików w pliku zawartości.

Jest to plik binarny, który zawiera listę wszystkich plików obecnych w Twojej macierzy dysków,
wraz ze wszystkimi sumami kontrolnymi w celu weryfikacji ich integralności.

Plik zawartości jest odczytywany i zapisywany przez polecenia `sync`,
`scrub`, `touch` i `rehash`. Jest odczytywany przez polecenia `status`,
`diff`, `check`, `fix`, `list`, `dup`, `locate` i `pool`, oraz jest
całkowicie ignorowany przez polecenia `smart`, `probe`, `up`, `down`
i `devices`.


13 PARZYSTOść (PARITY)
======================

SnapRAID przechowuje informacje o parzystości Twojej macierzy w plikach
parzystości.

Są to pliki binarne zawierające obliczoną parzystość wszystkich
bloków zdefiniowanych w pliku `content`.

Pliki te są odczytywane i zapisywane przez polecenia `sync` i `fix`
oraz tylko odczytywane przez polecenia `scrub` i `check`.


14 KODOWANIE (ENCODING)
=======================

SnapRAID w systemie Unix ignoruje wszelkie kodowanie. Odczytuje i przechowuje
nazwy plików z tym samym kodowaniem używanym przez system plików.

W systemie Windows wszystkie nazwy odczytane z systemu plików są konwertowane i
przetwarzane w formacie UTF-8.

Aby nazwy plików były poprawnie drukowane, musisz ustawić konsolę Windows
na tryb UTF-8 za pomocą polecenia `chcp 65001` i użyć
czcionki TrueType, takiej jak `Lucida Console`, jako czcionki konsoli.
Dotyczy to tylko drukowanych nazw plików; jeśli
przekierujesz wyjście konsoli do pliku, wynikowy plik jest zawsze
w formacie UTF-8.


15 KOD WYJśCIA (EXIT CODE)
==========================

SnapRAID kończy działanie z następującymi kodami błędów:

0 - Wszystko w porządku.
1 - Polecenie napotkało błędy.
2 - Polecenie `diff` wykazało, że wszystko jest w porządku, ale wymagane jest `sync`.
3 - Polecenie urządzenia dyskowego (`probe`, `smart`, `devices`, `up`,
    `down`) zostało zakończone, ale co najmniej jeden system plików działa
    w trybie zdegradowanym z brakującymi urządzeniami.


16 ZNANE PROBLEMY (KNOWN ISSUES)
================================

16.1 Granice systemu plików
---------------------------

SnapRAID nie przekracza granic systemów plików, punktów montowania ani
podwolumenów podczas skanowania dysku z danymi. Po wykryciu takiej granicy
SnapRAID zgłasza OSTRZEŻENIE i nie skanuje dalej.

Pliki znajdujące się poza takimi granicami nie są uwzględniane na dysku
z danymi i muszą zostać skonfigurowane oddzielnie, jeśli mają być chronione.

16.2 Punkty montowania z migawkami systemu plików
-------------------------------------------------

Gdy migawki systemu plików są włączone, zagnieżdżone punkty montowania oraz
montowania bind wewnątrz dysku z danymi nie są obsługiwane.

Punkty montowania są częścią przestrzeni nazw montowania działającego
systemu i nie są zachowywane w migawkach systemu plików. W związku z tym
podczas skanowania migawki katalog ukryty przez punkt montowania w aktywnym
systemie plików może stać się widoczny.

Nie umieszczaj zagnieżdżonych punktów montowania ani montowań bind wewnątrz
dysków z danymi, gdy migawki systemu plików są włączone.

16.3 Wiele konfiguracji z migawkami systemu plików
--------------------------------------------------

Obsługa migawek nie może być bezpiecznie współdzielona przez wiele
niezależnych konfiguracji SnapRAID korzystających z tej samej przestrzeni
nazw migawek systemu plików.

W systemach Btrfs i Bcachefs tylko jedna konfiguracja SnapRAID z włączoną
obsługą migawek może używać katalogów danych w obrębie tego samego
podwolumenu. W systemie ZFS to samo ograniczenie dotyczy datasetu, a w NTFS
woluminu.

Wiele konfiguracji współdzielących tę samą przestrzeń nazw migawek używa tych
samych migawek `stable`, `pending` oraz `scan`. Uruchomienie jednej
konfiguracji może zatem zastąpić lub usunąć migawki odzyskiwania wymagane
przez inną.

16.4 Modyfikacje plików w miejscu bez zmiany znacznika czasu
------------------------------------------------------------

SnapRAID wykrywa modyfikacje plików, porównując rozmiary plików oraz
znaczniki czasu modyfikacji (mtime).

Jeśli aplikacja modyfikuje plik w miejscu bez zmiany jego rozmiaru ani
aktualizacji znacznika czasu modyfikacji, polecenia "diff" i "sync" nie
wykryją zmiany pliku, a jego parzystość nie zostanie zaktualizowana.

Aby SnapRAID rozpoznał takie zmiany, zaktualizuj znacznik czasu modyfikacji
pliku (na przykład za pomocą narzędzia "touch"). W przeciwnym razie różnica
zostanie wykryta dopiero jako niezgodność skrótu podczas kolejnego "scrub"
lub "check".

16.5 Dopasowywanie wielkości liter znaków spoza ASCII w systemie Windows
------------------------------------------------------------------------

SnapRAID używa standardowego, przewidywalnego kodowania UTF-8 na wszystkich
platformach, ograniczając dopasowywanie bez uwzględniania wielkości liter do
znaków ASCII.

Systemy plików Windows cierpią z powodu przestarzałego projektu narzucania
braku rozróżniania wielkości liter w nazwach plików Unicode za pomocą
arbitralnych, zależnych od systemu tabel składania znaków (folding tables).
W rezultacie Windows zaciera rzeczywistość systemu plików, traktując zupełnie
różne sekwencje bajtów Unicode tak, jakby były tym samym plikiem.

Na przykład `À.txt` i `à.txt` to odrębne nazwy Unicode, a jednak Windows
nielogicznie traktuje je jako identyczne, podczas gdy SnapRAID zachowuje ich
rzeczywiste rozróżnienie.

Ograniczenie to wynika z niespójnej obsługi nazw plików Unicode przez system
Windows oraz jego uporczywego stosowania aliasów bez uwzględniania wielkości
liter. Aby zapobiec rozbieżnościom wynikającym ze składania znaków przez
Windows, zawsze podawaj dokładną wielkość liter w przypadku znaków spoza ASCII
w ścieżkach konfiguracyjnych i filtrach.

16.6 Odzyskiwanie za pomocą częściowego fix
-------------------------------------------

Gdy polecenie `fix` jest ograniczone za pomocą `-S, --start` lub `-B, --count`,
SnapRAID działa tylko na wybranych blokach i nie przeprowadza finalizacji
na poziomie plików ani kwarantanny.

Jeśli odzyskiwanie da dane typu best-effort, co do których nie można udowodnić,
że reprezentują bieżącą zawartość, takie bloki mogą nadal zostać zapisane pod
zwykłą nazwą pliku. Niepewność związana z tymi odzyskanymi blokami nie jest
zachowywana po zakończeniu polecenia.

W rezultacie późniejsze wykonanie `fix` potraktuje te czytelne bloki jako
prawidłowe dane pliku i nie podejmie ponownej próby ich odzyskania. Może to
spowodować, że późniejsze odzyskiwanie zgłosi sukces, pozostawiając w pliku
niekompletne lub nieaktualne dane.

Opcje `-S` i `-B` są przeznaczone wyłącznie do zaawansowanego odzyskiwania
ręcznego, zazwyczaj po niepowodzeniu normalnego `fix`. Jeśli częściowy `fix`
zgłosi dane niemożliwe do odzyskania, przed podjęciem kolejnej próby odzyskiwania
należy usunąć lub zmienić nazwę plików, których to dotyczy, albo ręcznie zweryfikować
ich zawartość.

16.7 Twarde dowiązania NTFS i wykluczone ścieżki
------------------------------------------------

W systemie plików NTFS wpisy katalogowe niezależnie buforują rozmiar pliku
i znaczniki czasu dla każdego twardego dowiązania. Gdy plik zostanie
zmodyfikowany za pośrednictwem jednego dowiązania, wpisy katalogowe innych
dowiązań wskazujących ten sam plik mogą zachowywać nieaktualne metadane
do momentu uzyskania do nich dostępu.

SnapRAID automatycznie wykrywa i normalizuje ten stan, gdy podczas skanowania
napotka co najmniej dwa twarde dowiązania do tego samego pliku. Jeśli jednak
zeskanowane zostanie tylko jedno twarde dowiązanie, podczas gdy pozostałe są
wykluczone przez filtry lub znajdują się poza ścieżką dysku danych, SnapRAID
nie może wykryć kolizji i-węzłów (inode) i polega na buforowanych metadanych
jedynego widocznego dowiązania.

W konsekwencji modyfikacje dokonane za pośrednictwem wykluczonego lub
zewnętrznego twardego dowiązania mogą pozostać niezauważone przez SnapRAID,
dopóki metadane uwzględnionego dowiązania nie zostaną odświeżone przez system
operacyjny (na przykład po uzyskaniu dostępu do pliku lub otwarciu go
przez tę ścieżkę).

Aby uniknąć tego ograniczenia, należy unikać modyfikowania chronionych plików
za pośrednictwem twardych dowiązań wykluczonych ze SnapRAID lub upewnić się,
że wszystkie twarde dowiązania do danego pliku są uwzględnione w skanowaniu,
aby SnapRAID mógł je znormalizować.

16.8 Odzyskiwanie po przerwanym sync z wieloma parzystościami
-------------------------------------------------------------

W macierzy z wieloma dyskami parzystości przerwane polecenie `sync` może
pozostawić różne poziomy parzystości chwilowo niezsynchronizowane ze sobą.
Na przykład parzystość 1 może już zawierać nowo zaktualizowane dane,
podczas gdy parzystość 2 nadal zawiera stare dane.

Podczas wykonywania `check` lub `fix` SnapRAID sprawdza różne kombinacje
parzystości i weryfikuje zrekonstruowane dane z wykorzystaniem znanych
skrótów bloków (obejmujących cały blok, zazwyczaj 256 KiB).

Jeśli SnapRAID podejmie próbę rekonstrukcji z użyciem niespójnej
mieszanki starej i nowej parzystości, liniowe równania RAID dadzą
nieprawidłowe dane. Aby taka niepoprawna kombinacja została omyłkowo
zaakceptowana, równania musiałyby przypadkowo zrekonstruować co najmniej
jeden pełny blok 256 KiB tak idealnie, aby jego skrót się zgadzał,
podczas gdy inne niezsynchronizowane bloki w tym samym pasku zostaną
zrekonstruowane z błędnymi danymi.

Scenariusz ten nie zależy od kolizji skrótów; wymagałby raczej, aby same
równania mieszanej parzystości przypadkowo odtworzyły dokładną,
oryginalną zawartość 256-KiB bloku. Choć jest to matematycznie możliwe
w przypadku specjalnie spreparowanych lub silnie powtarzalnych danych,
jest to praktycznie niemożliwe w przypadku rzeczywistych danych.

Jeśli wszystkie dyski są sprawne, dokończenie przerwanego `sync` przed
wprowadzeniem dalszych zmian usuwa tę niejednoznaczność. Jeśli nastąpiła
awaria dysku i konieczne jest odzyskanie danych, należy unikać modyfikacji
dysków danych przed uruchomieniem `check` lub `fix`.

16.9 Zastrzeżone nazwy plików i katalogów
-----------------------------------------

SnapRAID rezerwuje niektóre nazwy plików, katalogów i migawek do swoich
wewnętrznych operacji. Nie używaj tych nazw dla danych użytkownika:

.snapraidignore - Lokalny plik reguł wykluczeń.
.snapraid - Katalog kontenera migawek.
snapraid-* - Nazwy migawek ZFS zarządzanych przez SnapRAID.
*.unrecoverable - Uszkodzone pliki objęte kwarantanną podczas odzyskiwania.
CONTENT.tmp - Plik tymczasowy do aktualizacji pliku content.
CONTENT.lock - Plik blokady pliku content.
PARITY.spaceholder - Tymczasowy plik rezerwacji miejsca podczas alokacji
    parzystości w systemie Windows.

Użycie tych nazw dla niepowiązanych danych może spowodować, że pliki lub
migawki zostaną zignorowane, błędnie zinterpretowane jako metadane,
nadpisane, przemianowane lub usunięte.

W systemie Windows wszystkie warianty wielkości liter są również zastrzeżone,
nawet w katalogach NTFS skonfigurowanych do rozróżniania wielkości liter
(na przykład .SNAPRAIDIGNORE, .SnapRaid, CONTENT.TMP i CONTENT.Lock).


17 TłUMACZENIE (TRANSLATION)
============================

Ten dokument jest automatycznym tłumaczeniem angielskiej instrukcji.
Wersję oficjalną stanowi oryginalny podręcznik w języku angielskim.


18 PRAWA AUTORSKIE (COPYRIGHT)
==============================

Ten plik jest chroniony prawem autorskim (C) 2026 Andrea Mazzoleni


19 ZOBACZ RóWNIEż (SEE ALSO)
============================

snapraid_log(1), snapraidd(1), rsync(1)
