SMB zwykle przesyła bajty plików bez zmian, więc niezgodność sum kontrolnych oznacza, że porównywana zawartość uległa zmianie, została odczytana niespójnie albo nie dotyczyła tego samego strumienia danych.
Niezgodność może wynikać z obliczenia skrótu źródła przed zakończeniem zapisu przez aplikację, porównania rozwidlenia zasobów lub strumienia alternatywnego po jednej stronie, zezwolenia aplikacji multimedialnej lub zabezpieczającej na przepisanie miejsca docelowego, odczytu z nieaktualnej pamięci podręcznej klienta albo wystąpienia błędów nośnika i transmisji. Prawidłowy test polega na zamrożeniu źródła, obliczeniu skrótów obu plików za pomocą tego samego narzędzia i w tym samym trybie oraz powtórzeniu transferu kontrolowaną ścieżką, zanim obwini się sam protokół SMB.
Sprawdź, czy obie sumy kontrolne obejmują te same dane pliku
Zapisz dokładną ścieżkę źródłową, ścieżkę docelową, polecenie obliczania skrótu, algorytm, tryb binarny lub tekstowy oraz czas wygenerowania każdej sumy kontrolnej. Upewnij się, że żadne z poleceń nie odczytało skrótu, celu dowiązania symbolicznego, pliku tymczasowego ani pliku pomocniczego.
Narzędzie SHA-256 oblicza skrót na podstawie bajtów odczytanych ze wskazanego pliku. Dokumentacja sha256sum umożliwia użycie tego samego algorytmu i wywołania na obu urządzeniach.
Jeśli rozmiary się różnią, najpierw zdiagnozuj niepełne lub zmodyfikowane kopiowanie, a dopiero potem porównuj skróty. Jeśli rozmiary są takie same, ale skróty się różnią, sprawdź stabilność źródła, zakres strumienia, odczyty z nośnika i modyfikacje miejsca docelowego.
Zatrzymaj aplikacje, które mogą modyfikować źródło podczas kopiowania
Zatrzymaj bazy danych, klientów pobierania, maszyny wirtualne, edytory multimediów, narzędzia synchronizacji oraz każdą aplikację zapisującą do pliku źródłowego. Wygeneruj nową sumę kontrolną źródła dopiero po zamknięciu pliku.
Dokumentacja rsync ostrzega, że pliki należy przenosić do obserwowanego katalogu źródłowego dopiero po ich całkowitym zapisaniu, ponieważ zmieniający się plik źródłowy może zostać przesłany niespójnie.
Porównaj sumę kontrolną źródła przed skopiowaniem przez SMB i natychmiast po nim. Jeśli oba skróty źródła się różnią, SMB nie jest pierwszą przyczyną — źródło zmieniło się podczas testu.
Sprawdź blokady oportunistyczne, lokalne procesy zapisujące i stan pamięci podręcznej pliku
Wyświetl otwarte uchwyty SMB oraz lokalne procesy korzystające ze źródła i miejsca docelowego. Zwróć szczególną uwagę na sytuacje, w których ten sam udział jest jednocześnie zapisywany przez SMB i bezpośrednio na hoście NAS.
Samba wyjaśnia, że blokady oportunistyczne pozwalają klientowi buforować lokalnie zmiany w plikach i synchronizować je z serwerem, gdy jest to wymagane. Jej model blokad i blokad oportunistycznych pokazuje, dlaczego podczas testów integralności należy kontrolować jednoczesne zapisy lokalne i przez SMB.
Nie wyłączaj blokad oportunistycznych na całym serwerze jako pierwszej reakcji. Zamknij konkurujące aplikacje, otwórz nową sesję i powtórz kopiowanie jednego pliku, aby sprawdzić, czy przyczyną była współbieżność.
Oddziel zawartość pliku od atrybutów rozszerzonych i strumieni alternatywnych
Ustal, czy oczekiwana suma kontrolna obejmuje tylko główne dane pliku, czy także archiwum zawierające rozwidlenia zasobów, atrybuty rozszerzone, strumienie alternatywne, listy ACL i metadane. Po obu stronach użyj tego samego zakresu.
ArchWiki opisuje atrybuty rozszerzone jako metadane przechowywane oddzielnie od zwykłej zawartości pliku. Utrata tych metadanych lub ich przekształcenie może zmienić skrót archiwum albo pakietu bez zmiany sumy kontrolnej głównego strumienia danych.
W przypadku plików macOS porównaj osobno główne rozwidlenie danych oraz ewentualne rozwidlenie zasobów lub plik pomocniczy AppleDouble. Nie uznawaj niezgodności metadanych za dowód zmiany podstawowych bajtów pliku.
Użyj narzędzia do kopiowania z możliwością wznowienia i rejestrowaniem
Powtórz transfer za pomocą jednej sprawdzonej metody kopiowania i użyj nowej nazwy pliku docelowego. Zapisz dziennik ponowień, wznawiania, pomijania i błędów zamiast polegać na oknie postępu menedżera plików.
Firma Microsoft definiuje SMB jako protokół umożliwiający aplikacjom odczytywanie, tworzenie i aktualizowanie plików zdalnych. Jej model dostępu do plików SMB pozwala traktować zmieniony skrót jako problem ze ścieżką danych lub procesem zapisującym, a nie jako oczekiwaną transformację protokołu.
Jeśli kopiowanie z wiersza poleceń z rejestrowaniem daje zgodny wynik, a przeciąganie i upuszczanie nie, porównaj aplikację, sposób ponawiania, obsługę częściowych plików, skanowanie antywirusowe i przetwarzanie po skopiowaniu, zamiast zmieniać konfigurację serwera SMB.
Porównaj miejsce docelowe, zanim indeksatory lub aplikacje je przepiszą
Oblicz skrót miejsca docelowego natychmiast po skopiowaniu, gdy plik jest zamknięty i zanim skanery multimediów, konwertery dokumentów, menedżery zdjęć, narzędzia antywirusowe lub klienci synchronizacji będą mogli go zmodyfikować.
Przewodnik Oregon State dotyczący Robocopy podkreśla kopiowanie z rejestrowaniem i możliwością wznowienia, które wyraźniej oddziela zakończenie transferu od późniejszego dostępu aplikacji do miejsca docelowego.
Jeśli skrót miejsca docelowego jest zgodny bezpośrednio po skopiowaniu, ale później się zmienia, ustal, który proces jako pierwszy otwiera plik do zapisu. Trwałego rozwiązania należy szukać w sposobie obsługi metadanych, optymalizacji lub synchronizacji przez tę aplikację.
Powtórz test między granicami nośników i sieci
Skopiuj ten sam zamknięty plik lokalnie na źródłowym serwerze NAS, lokalnie na docelowym systemie plików, przez SMB z innego klienta oraz przez pierwotnego klienta. Po każdym kroku oblicz skrót.
Przewodnik ZimaSpace dotyczący zachowywania metadanych podczas migracji NAS przedstawia powiązaną zasadę: skróty zawartości i pola metadanych należy weryfikować jako osobne kryteria akceptacji.
Problem zostaje rozwiązany, gdy zamknięty plik źródłowy generuje zgodne skróty podczas kolejnych kopii i pozostaje niezmieniony po uruchomieniu usług działających po kopiowaniu. Wstrzymaj migrację i zabezpiecz źródło, jeśli niezgodności dotyczą jednego dysku, kontrolera, klienta lub powtarzalnego przesunięcia w pliku.
Wsparcie i wskazówki
Więcej do przeczytania

Czy Plex może współdzielić kartę graficzną z innym kontenerem Dockera?
Plex i inny kontener często mogą korzystać z tego samego układu GPU, ale należy przetestować obsługę sterowników, mapowanie urządzeń, obciążenie silnika wideo, pamięć oraz...

Jak ustalić, czy błąd Plex pochodzi od klienta, czy od serwera
Odtwórz ten sam przypadek na innym kliencie, porównaj ścieżkę sesji, a następnie zbierz dowody z serwera dopiero wtedy, gdy zakres analizy wskaże, gdzie faktycznie...

Jak skonfigurować pamięć podręczną Plex i tymczasową pamięć na transkodowane pliki
Chroń trwały stan Plex, umieszczając tymczasowe pliki transkodowania na odpowiedniej pamięci lokalnej, a następnie zweryfikuj czyszczenie, ilość wolnego miejsca i zachowanie podczas ponownego uruchamiania.

