Napraw błąd systemu plików Btrfs „tylko do odczytu” w systemie SUSE Linux Enterprise

Próbujesz zapisać plik lub zaktualizować usługę w systemie SUSE Linux Enterprise Server (SLES), a Linux odpowiada komunikatem „System plików tylko do odczytu”. Ten komunikat może oznaczać, że miejsce montowania zostało celowo ustawione na „tylko do odczytu”, uruchomiono migawkę Snapper tylko do odczytu lub system Btrfs wykrył problem i przestał akceptować zapisy, aby chronić wolumin. Te przyczyny wymagają różnych reakcji. Zacznij od zidentyfikowania systemu plików i miejsca montowania, których to dotyczy; nie wymuszaj ponownego montowania ani nie uruchamiaj polecenia naprawy przed sprawdzeniem logów jądra i zabezpieczeniem ważnych danych.

Co oznacza błąd

Btrfs to system plików Linuksa z kopią przy zapisie, używany domyślnie dla głównego systemu plików SLES w wielu standardowych instalacjach. Podwolumin Btrfs to niezależnie montowana część systemu plików; migawka to kopia podwoluminu w danym momencie, która współdzieli niezmienione bloki danych. Snapper i menu startowe SLES mogą używać migawek do odzyskiwania po zmianach w systemie. Rozruch migawki celowo montuje dołączone części tylko do odczytu. Oddzielnie Btrfs może przełączyć się w tryb tylko do odczytu po wykryciu pewnych błędów strukturalnych, aby uniknąć dalszych zapisów. SUSE dokumentuje zachowanie migawek w swoim podręczniku Snapper dla SLES 15 SP7 ; projekt Btrfs wyjaśnia, że ​​sprawdzanie struktury systemu plików może przełączyć wolumin w tryb tylko do odczytu, aby zapobiec dalszym uszkodzeniom, w dokumentacji sprawdzania drzewa . Dokładne etykiety menu i dostępne opcje odzyskiwania mogą się różnić w zależności od dodatku Service Pack i układu pamięci masowej SLES.

Problem z uprawnieniami jest inny. „Odmowa uprawnień” zazwyczaj wskazuje na własność lub kontrolę dostępu; „System plików tylko do odczytu” (często przedstawiany jako EROFS) wskazuje na stan systemu plików lub podwoluminu. Zmiana uprawnień pliku poleceniem „zapisz” chmodnie spowoduje, że montowany plik tylko do odczytu stanie się zapisywalny.

Zanim cokolwiek zmienisz

Jeśli jest to serwer produkcyjny, wolumin bazy danych lub jedyna kopia ważnych danych, skontaktuj się z administratorem systemu i potwierdź kopię zapasową przed próbą odzyskiwania. Gdy system jest nadal czytelny, skopiuj najważniejsze pliki do oddzielnej, sprawnej pamięci masowej, o ile jest to możliwe bez obciążania uszkodzonego urządzenia. System Btrfs może przechowywać ostatnie zmiany metadanych tylko w pamięci po wystąpieniu krytycznego błędu; odmontowanie lub ponowne uruchomienie może spowodować utratę tych niezatwierdzonych zmian. Jeśli w logach pojawiają się informacje o błędach wejścia/wyjścia, znikających urządzeniach lub wielokrotnych resetach, priorytetem powinna być ochrona pamięci masowej i danych, a nie przywracanie danych po zapisie.

Nie uruchamiaj tego btrfs check --repairrutynowo jako pierwszego kroku. Projekt Btrfs ostrzega, że ​​tryb naprawy może powodować uszkodzenia i nie jest w stanie naprawić każdego rodzaju uszkodzeń. Nie wymuszaj też wielokrotnie ponownego montowania w trybie odczytu i zapisu: może się to natychmiast zakończyć niepowodzeniem, gdy jądro z jakiegoś powodu zabezpieczy system plików.

Krok 1: Zidentyfikuj uszkodzony uchwyt

Użyj ścieżki, w której zapis się nie powiódł. Na przykład, jeśli usługa nie może zapisać do /srv/app, sprawdź tę ścieżkę, zamiast zakładać, że problem leży w głównym systemie plików:

findmnt -T /srv/app -o TARGET,SOURCE,FSTYPE,OPTIONS

Zastąp /srv/appodpowiednim plikiem lub katalogiem. Sprawdź dane wyjściowe dla źródła Btrfs, celu montowania oraz opcji rolub rw. Docelowym może być /, osobne montowanie danych lub podwolumin. Zapisz źródło i cel przed kontynuowaniem. Jeśli polecenie zgłosi inny typ systemu plików, kroki specyficzne dla Btrfs nie mają zastosowania do tej ścieżki.

Sprawdź komunikaty jądra z bieżącego rozruchu, aby dowiedzieć się, dlaczego system plików stał się tylko do odczytu:

sudo journalctl -k -b --no-pager | grep -iE 'btrfs|I/O error|read-only|readonly'

Szukaj błędów Btrfs lub komunikatów „wymuszony tylko do odczytu”, błędów sumy kontrolnej lub drzewa, awarii wejścia/wyjścia urządzenia oraz rozłączeń urządzenia. Wiersz w dzienniku to wskazówka, a nie pełna diagnoza. Zapisz odpowiednie komunikaty i znaczniki czasu przed ponownym uruchomieniem, ponieważ dzienniki mogą być przydatne dla zespołu wsparcia technicznego ds. pamięci masowej lub sprzętu.

Krok 2: Sprawdź, czy utworzono migawkę przeznaczoną tylko do odczytu

Jeśli serwer został uruchomiony z rozruchowej migawki w GRUB, pliki zawarte w tej migawce są domyślnie tylko do odczytu. Jest to środowisko odzyskiwania służące do sprawdzania poprzedniego stanu systemu; nie jest to automatycznie trwale przywrócony system. Potwierdź wpis rozruchowy z administratorem, a następnie zrestartuj komputer i wybierz normalny domyślny wpis SLES, jeśli rozruch z migawki był przypadkowy. SUSE dokumentuje, że uruchomienie migawki powoduje zamontowanie zawartych w niej części systemu plików w trybie tylko do odczytu i opisuje oddzielną procedurę przywracania w podręczniku odzyskiwania systemu SLES 15 SP7 Snapper .

Konkretna migawka może być również tylko do odczytu, nawet gdy nadrzędny system plików jest zamontowany w trybie odczytu i zapisu. Jeśli celowo pracujesz z migawką, sprawdź ją bez jej modyfikowania:

sudo btrfs property get -t subvol /path/to/subvolume ro

Zastąp ścieżkę ścieżką montowania podwoluminu. Wynik ro=truepotwierdza, że ​​właściwość podwoluminu jest tylko do odczytu; odwołanie do właściwości Btrfs dokumentuje tę flagę. Nie należy po prostu przełączać migawki kopii zapasowej zarządzanej lub odebranej przez Snapper do trybu odczytu i zapisu: status „tylko do odczytu” może być częścią założeń dotyczących wycofywania lub przyrostowej kopii zapasowej. Należy użyć obsługiwanego przepływu pracy Snapper lub utworzyć oddzielny podwolumin z możliwością zapisu, jeśli jest to zamierzone zadanie.

Krok 3: Sprawdź konfigurację montażu i stan pamięci masowej

Jeśli findmntraporty roi dzienniki nie wykazują błędów Btrfs ani we/wy, sprawdź odpowiedni wpis montowania w pliku /etc/fstab. Montowanie mogło zostać celowo skonfigurowane jako tylko do odczytu na potrzeby odzyskiwania, obrazu urządzenia lub polityki ochrony danych. Konfigurację należy zmieniać dopiero po potwierdzeniu zamierzonego stanu z właścicielem usługi. Sprawdź również, czy system korzysta z wdrożenia transakcyjnego, czy tylko do odczytu z uprawnieniami roota: SLES dokumentuje takie konfiguracje i ich przepływ pracy w przewodniku po aktualizacjach transakcyjnych . Jeśli wpis jest wyraźnie przeznaczony do zapisu, urządzenie jest sprawne, a ścieżka nie jest migawką tylko do odczytu, administrator może podjąć próbę tymczasowego ponownego zamontowania:

sudo mount -o remount,rw /mountpoint

Zastąp /mountpointdokładnym celem wskazanym przez findmnt. Nie diagnozuje to ani nie naprawia uszkodzeń. Jeśli operacja się nie powiedzie, zwróci błąd lub logi jądra wykażą problemy z pamięcią masową, przerwij i przejdź do planowania odzyskiwania, zamiast ponawiać próbę z większą liczbą opcji.

W przypadku potencjalnego problemu z pojemnością sprawdź alokację Btrfs i stan urządzenia:

sudo btrfs filesystem usage /mountpoint
sudo btrfs filesystem show /mountpoint

Firma SUSE zauważa, że ​​zwykłe podsumowania dotyczące wolnego miejsca na dysku mogą być mylące w systemie Btrfs, ponieważ dane i metadane są przydzielane oddzielnie. Migawki Snapper mogą również zachowywać znaczną ilość miejsca. Jednak komunikat „Brak miejsca na urządzeniu” nie jest tożsamy ​​z błędem Btrfs „tylko do odczytu”; należy zidentyfikować komunikat, który aplikacja faktycznie otrzymała. Nie należy usuwać migawek tylko po to, by przetestować teorię. Należy najpierw sprawdzić, co zawierają i postępować zgodnie z obowiązującymi zasadami przechowywania. Zapoznaj się z przewodnikiem rozwiązywania problemów z systemem plików SLES 15 SP7 .

Krok 4: Zdecyduj, czy system plików wymaga odzyskania

Jeśli w dzienniku jądra pojawią się błędy Btrfs, brakuje urządzenia lub odmówiono ponownego zamontowania, zachowaj dzienniki i utwórz zweryfikowaną kopię zapasową lub migawkę na poziomie pamięci masowej przed rozpoczęciem naprawy. W przypadku woluminu danych innego niż root, zaplanuj okno konserwacji i odmontuj go przed sprawdzeniem offline. W przypadku systemu plików root użyj nośnika instalacyjnego lub ratunkowego SUSE i postępuj zgodnie z procedurą dla dokładnej wersji SLES i sygnatury błędu. Nie zgaduj nazwy urządzenia: system plików Btrfs może obejmować wiele urządzeń, dlatego najpierw ustal wszystkie elementy i poprawne identyfikatory montowania lub urządzeń.

Podręcznik administratora systemu SUSE SLES 15 SP7 zawiera specjalną sekcję dotyczącą partycji głównej Btrfs, której nie można zamontować. Omówiono w niej opcje odzyskiwania w przypadku awarii rozruchu. Instrukcje te nie oznaczają, że każdy zamontowany system plików tylko do odczytu powinien mieć wyczyszczony dziennik. W podręczniku btrfs-rescue, wydanym przez nadrzędny system, wyjaśniono, że btrfs rescue zero-logdotyczy to pewnych błędów odtwarzania dziennika podczas montowania i może spowodować odrzucenie zmian od ostatniej zatwierdzonej transakcji. Należy z niego korzystać tylko wtedy, gdy zarejestrowany błąd odpowiada udokumentowanemu przypadkowi, a plan odzyskiwania uwzględnia ewentualną utratę danych.

btrfs checkDziała domyślnie w trybie tylko do odczytu na niezamontowanym systemie plików. Zachowaj go w tym stanie do wstępnej oceny i udostępnij jego wyniki wsparciu technicznemu SUSE lub specjaliście ds. systemu plików Btrfs. Podręcznik użytkownika btrfs-check wyraźnie ostrzega przed używaniem go --repairbez konsultacji z doświadczonym użytkownikiem lub programistą. Nigdy nie uruchamiaj programu sprawdzającego offline na zamontowanym, zmieniającym się systemie plików.

Krok 5: Sprawdź odzyskiwanie

Po usunięciu przyczyny, restartuj system tylko wtedy, gdy będzie tego wymagał plan odzyskiwania. Następnie użyj go findmnt -T /path -o TARGET,SOURCE,FSTYPE,OPTIONSponownie i upewnij się, że zamierzony montaż jest przeznaczony do odczytu i zapisu. Sprawdź dziennik jądra pod kątem nowych błędów Btrfs lub błędów wejścia/wyjścia. Na koniec sprawdź, czy usługa lub aplikacja, której dotyczy problem, może normalnie działać, i upewnij się, że kopia zapasowa jest nadal dostępna. Samo pomyślne ponowne zamontowanie nie dowodzi, że pamięć masowa jest sprawna.

Jeśli system plików powróci do trybu tylko do odczytu, urządzenie zostanie przerwane lub błędy będą się powtarzać, zapisy zostaną przerwane, a problem zostanie rozwiązany poprzez zapisanie logów, findmntdanych wyjściowych, listy urządzeń Btrfs, poziomu pakietu Service Pack SLES oraz szczegółów kontrolera pamięci masowej. Takie dowody pomagają odróżnić celowe wykonanie migawki lub opcji montowania od uszkodzenia nośnika, połączenia, sterownika lub systemu plików – i zapobiegają przekształceniu ochronnego stanu tylko do odczytu w poważniejszy problem z odzyskiwaniem danych.

Zostaw komentarz

Jak wykonać kopię zapasową i przywrócić ustawienia użytkownika w systemie operacyjnym HamoniKR

Jak wykonać kopię zapasową i przywrócić ustawienia użytkownika w systemie operacyjnym HamoniKR

Dowiedz się, jak wykonać kopię zapasową ustawień użytkownika HamoniKR na dysku zewnętrznym, zweryfikować archiwum i bezpiecznie przywrócić wybrane preferencje pulpitu i aplikacji.

Jak skonfigurować zaszyfrowany wolumin z LUKS na serwerze SUSE Enterprise Server

Jak skonfigurować zaszyfrowany wolumin z LUKS na serwerze SUSE Enterprise Server

Dowiedz się, jak utworzyć, odblokować, sformatować, zamontować i utrwalić wolumin zaszyfrowany za pomocą LUKS na serwerze SUSE Linux Enterprise Server, korzystając z kontroli bezpieczeństwa i wskazówek dotyczących odzyskiwania.

Napraw błąd systemu plików Btrfs „tylko do odczytu” w systemie SUSE Linux Enterprise

Napraw błąd systemu plików Btrfs „tylko do odczytu” w systemie SUSE Linux Enterprise

Bezpiecznie zdiagnozuj system plików Btrfs tylko do odczytu w systemie SUSE Linux Enterprise. Przed wprowadzeniem jakichkolwiek zmian sprawdź opcje montowania, migawki Snapper, logi jądra, stan pamięci masowej i limity odzyskiwania.

Jak skonfigurować AutoYaST do automatycznego wdrażania systemu SLES 15

Jak skonfigurować AutoYaST do automatycznego wdrażania systemu SLES 15

Zautomatyzuj instalacje SLES 15 za pomocą AutoYaST: zbuduj i zweryfikuj profil XML, zapewnij jego bezpieczną obsługę, uruchom system testowy i zweryfikuj wyniki wdrożenia.

Naprawa brakującego wyjścia audio HDMI w Ubuntu 24.04 LTS: Przewodnik krok po kroku

Naprawa brakującego wyjścia audio HDMI w Ubuntu 24.04 LTS: Przewodnik krok po kroku

Przywróć brakujący dźwięk HDMI w Ubuntu 24.04 LTS, sprawdzając połączenie wyświetlacza, wybierając właściwe wyjście dźwięku, sprawdzając PipeWire i weryfikując wykrywanie sprzętu.

Jak skonfigurować łączenie sieci w systemie SUSE Linux Enterprise 15

Jak skonfigurować łączenie sieci w systemie SUSE Linux Enterprise 15

Skonfiguruj połączenie sieciowe SLES 15 za pomocą plików wicked i ifcfg. Wybierz tryb połączenia, aktywuj połączenie i sprawdź stan połączenia awaryjnego i łącza.

Naprawa niedziałającego mikrofonu zestawu słuchawkowego Bluetooth w systemie Ubuntu 24.04

Naprawa niedziałającego mikrofonu zestawu słuchawkowego Bluetooth w systemie Ubuntu 24.04

Przywróć działanie mikrofonu zestawu słuchawkowego Bluetooth w Ubuntu 24.04, sprawdzając urządzenie wejściowe, profil HSP/HFP, ustawienia aplikacji, usługi PipeWire, pakiet Bluetooth i parowanie.

Napraw błąd „Nie znaleziono adaptera Bluetooth” na komputerze Pardus 23 Desktop

Napraw błąd „Nie znaleziono adaptera Bluetooth” na komputerze Pardus 23 Desktop

Napraw brakujący adapter Bluetooth w urządzeniu Pardus 23 za pomocą przyjaznych dla początkujących funkcji sprawdzania wykrywania sprzętu, rfkill, BlueZ, oprogramowania sprzętowego, usług i dzienników.

Jak utworzyć bootowalny dysk USB Pardus 23 Live w systemie Windows

Jak utworzyć bootowalny dysk USB Pardus 23 Live w systemie Windows

Utwórz live USB z Pardusem 23 w systemie Windows za pomocą oficjalnego obrazu ISO i Rufusa. Sprawdź pobranie, wybierz tryb obrazu DD i uruchom bezpiecznie bez instalacji.

Jak naprawić błąd połączenia z repozytorium APT w Pardus 23

Jak naprawić błąd połączenia z repozytorium APT w Pardus 23

Rozwiąż problemy z repozytorium Pardus 23 APT, sprawdzając sieć, DNS, zegar, wpisy w repozytorium, odpowiedź lustrzaną i konfigurację podpisywania pakietów.