Zamontowany system plików może umożliwiać tworzenie plików, a jednocześnie odrzucać zmianę nazw, ponieważ operacja zmiany nazwy ma osobne wymagania dotyczące katalogów, własności, granic systemu plików, flag i otwartych uchwytów.
Pomyślne zamontowanie potwierdza tylko, że system plików został podłączony, a pomyślny zapis pliku dowodzi, że klient może utworzyć lub zmodyfikować co najmniej jeden obiekt. Zmiana nazwy jest operacją na wpisie katalogowym i może wymagać uprawnień do obu katalogów — źródłowego i docelowego — praw do usuwania, ścieżki w obrębie tego samego systemu plików, prawidłowej nazwy docelowej oraz braku konfliktu trybu udostępniania SMB lub chronionej flagi pliku. Zapisz dokładny błąd i porównaj osobno operacje tworzenia, zmiany nazwy, przenoszenia i usuwania, zanim uznasz, że system plików jest uszkodzony.
Zapisz dokładny błąd zmiany nazwy przed zmianą uprawnień
Powtórz jedną zmianę nazwy z hosta i z klienta, którego dotyczy problem. Zapisz ścieżkę źródłową, ścieżkę docelową, tożsamość użytkownika, system plików, punkt montowania, kod błędu oraz informację, czy nazwa docelowa już istnieje.
Błędy wywołania systemowego rename w systemie Linux rozróżniają błędy uprawnień, zajęte punkty montowania, przenoszenie między urządzeniami, systemy plików tylko do odczytu, niepuste cele i inne warunki, które w graficznym menedżerze plików mogą wyglądać identycznie.
Jeśli utworzenie nowego pliku się udaje, ale zmiana jego nazwy kończy się niepowodzeniem, zachowaj ten kontrast. Zawęża on problem do zastępowania wpisu katalogowego, uprawnień do usuwania, reguł nazewnictwa, blokad lub granicy ścieżki, a nie zwykłego dostępu do zapisu.
Sprawdź uprawnienia w obu katalogach nadrzędnych
Sprawdź własność, bity uprawnień, listy ACL i efektywną tożsamość w katalogu zawierającym starą nazwę oraz w katalogu, który będzie zawierał nową nazwę. Uprawnienia do zmiany nazwy zależą przede wszystkim od katalogów, a nie od bitu zapisu pliku.
Red Hat wyjaśnia, że bit sticky ogranicza zmianę nazw i usuwanie we współdzielonych katalogach z prawem zapisu do właściciela pliku, właściciela katalogu lub uprzywilejowanego użytkownika, nawet gdy wielu użytkowników może tworzyć w nich pliki.
Wykonaj test przy użyciu tego samego użytkownika NAS, który otrzymuje błąd. Pomyślne wykonanie operacji przez administratora nie dowodzi, że zwykłe konto ma prawa do usuwania lub zmiany nazw obu wpisów katalogowych.
Sprawdź flagi niezmienności, ochrony przed usuwaniem i tylko do dopisywania
Oprócz zwykłych uprawnień i list ACL sprawdź flagi systemu plików dla pliku oraz jego katalogów nadrzędnych. Przywracanie danych, narzędzia bezpieczeństwa lub procesy przechowywania danych mogą zachować flagi, które nie są widoczne w podstawowym zestawieniu uprawnień.
Podręcznik bezpieczeństwa FreeBSD wskazuje, że flaga pliku niezmiennego uniemożliwia jego modyfikację lub usunięcie, a flagi tylko do dopisywania i ochrony przed usuwaniem również mogą blokować zmiany katalogu wymagane do zmiany nazwy.
Usuń flagę ochronną dopiero po ustaleniu, która zasada lub aplikacja ją ustawiła. Globalne wyczyszczenie flag może osłabić mechanizmy przechowywania danych, tworzenia kopii zapasowych lub ochrony przed ransomware.
Wyklucz przenoszenie między systemami plików ukryte za jednym drzewem katalogów
Ustal dla katalogów źródłowego i docelowego identyfikatory urządzeń, punkty montowania, montowania bind, zbiory danych i ścieżki kontenerów. Dwa katalogi znajdujące się w tym samym udziale nadal mogą należeć do różnych zamontowanych systemów plików.
Biblioteka GNU C definiuje EXDEV jako błąd zmiany nazwy między urządzeniami. Narzędzie wyższego poziomu do przenoszenia może obejść problem, kopiując i usuwając plik, natomiast aplikacja oczekująca atomowej zmiany nazwy może po prostu zakończyć działanie błędem.
Jeśli lokalne przeniesienie kończy się powodzeniem tylko po skopiowaniu całego pliku, operacja nie była atomową zmianą nazwy. Popraw ścieżki tymczasowe i docelowe aplikacji albo umieść oba etapy w tym samym systemie plików.
Sprawdź otwarte uchwyty i udostępnianie usuwania przez SMB
Wyświetl otwarte pliki i sesje SMB dla katalogów źródłowego i docelowego. Po kolei zamykaj podglądarki, generatory miniatur, edytory, skanery multimediów, narzędzia antywirusowe i klientów kopii zapasowych.
Firma Microsoft opisuje przypadek folderu sieciowego, w którym otwarty uchwyt pamięci podręcznej miniatur blokuje zmianę nazwy, pokazując, dlaczego możliwość odczytu lub tworzenia innych plików nie eliminuje naruszenia zasad udostępniania dotyczącego konkretnego obiektu.
Nie uruchamiaj ponownie całego NAS przed zachowaniem informacji o otwartym uchwycie. Ponowne uruchomienie może zwolnić blokadę, ale ukryć, który klient lub usługa ją utworzyły.
Porównaj reguły zmiany nazw SMB z nazwą pliku używaną przez klienta
Przetestuj prostą nazwę składającą się z małych liter ASCII w tym samym katalogu. Następnie porównaj zmianę wyłącznie wielkości liter, znaki zastrzeżone, końcowe kropki lub spacje, normalizację Unicode oraz przypadek istniejącej nazwy docelowej.
Moduł interoperacyjności Samby z systemem macOS udostępnia opcję zgodności zmiany nazw POSIX, pokazując, że semantyka nazewnictwa po stronie klienta i serwera może decydować o tym, czy zmiana nazwy katalogu zostanie zaakceptowana.
Jeśli nie działa tylko jeden wzorzec nazwy pliku, zachowaj pierwotne mapowanie nazw przed ich normalizacją. Masowa zmiana nazw bez listy umożliwiającej wycofanie zmian może uszkodzić biblioteki multimediów, zadania synchronizacji, skróty i kopie zapasowe.
Napraw ustaloną warstwę problemu i zweryfikuj każdą operację
Napraw wyłącznie potwierdzoną przyczynę: uprawnienia katalogu nadrzędnego, własność z bitem sticky, chronioną flagę, ścieżkę w obrębie tego samego systemu plików, otwarty uchwyt lub niezgodną nazwę pliku. Powtórz test przy użyciu pierwotnego użytkownika i aplikacji.
Artykuł ZimaSpace dotyczący kolizji nazw plików różniących się wyłącznie wielkością liter omawia węższy przypadek międzyplatformowy, w którym dwie nazwy stają się równoważne w miejscu docelowym.
Problem jest rozwiązany, gdy tworzenie, zamykanie, zmiana nazwy, przenoszenie, usuwanie i ponowne tworzenie plików działają w zamierzonej ścieżce po ponownym połączeniu i uruchomieniu systemu. Wstrzymaj zapisy, jeśli system plików przełączy się w tryb tylko do odczytu lub zgłosi uszkodzenie albo sprzętowe błędy wejścia-wyjścia.
Często zadawane pytania
Dlaczego mogę utworzyć plik, ale nie mogę zmienić jego nazwy?
Utworzenie pliku wymaga uprawnienia do dodania wpisu katalogowego, natomiast zmiana nazwy może wymagać również praw do usunięcia starego wpisu, praw zapisu i wykonywania w obu katalogach nadrzędnych, zgodnych reguł nazewnictwa oraz braku chronionych flag lub konfliktujących uchwytów.
Czy błąd EXDEV przy zmianie nazwy oznacza, że system plików jest uszkodzony?
Nie. Zwykle oznacza, że źródło i miejsce docelowe znajdują się w różnych systemach plików, dlatego jądro nie może wykonać jednej atomowej zmiany nazwy. Przeniesienie przez kopiowanie i usuwanie może nadal działać.
Czy można zmienić nazwę otwartego pliku?
Wiele lokalnych systemów plików POSIX na to pozwala, ale klienci SMB i aplikacje mogą otwierać pliki bez udostępniania ich do usuwania, przez co serwer odrzuca zmianę nazwy do czasu zamknięcia uchwytu.
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.

