Jak naprawić „sudo: nie można otworzyć… System plików tylko do odczytu”?


137

Tytuł może nie być tak opisowy, jak bym chciał, ale nie mógłby wymyślić lepszego.

System plików mojego serwera przeszedł w tryb tylko do odczytu. I nie rozumiem, dlaczego tak się dzieje i jak to rozwiązać.

Mogę włączyć SSH do serwera, a na przykład podczas próby uruchomienia apache2 otrzymuję:

username@srv1:~$ sudo service apache2 start
[sudo] password for username:
sudo: unable to open /var/lib/sudo/username/1: Read-only file system
 * Starting web server apache2                                                                                                                                                                                                               (30)Read-only file system: apache2: could not open error log file /var/log/apache2/error.log.
Unable to open logs
Action 'start' failed.
The Apache error log may have more information.

Kiedy próbuję zrestartować serwer, otrzymuję:

username@srv1:~$ sudo shutdown -r now
[sudo] password for username:
sudo: unable to open /var/lib/sudo/username/1: Read-only file system

Po ponownym uruchomieniu ręcznie po prostu uruchamia się bez ostrzeżenia lub komunikatu informującego, że coś jest nie tak.

Mam nadzieję, że ktoś wskaże mi właściwy kierunek, aby rozwiązać ten problem.


Polecam @John, aby zmienić odpowiedź na ostatnią opublikowaną odpowiedź Bibhasa, ponieważ faktycznie działa ona tam, gdzie inne odpowiedzi w ogóle nie są pomocne.
Joshua Robison


Wszyscy, to pytanie dotyczy serwera, a nie komputera. Jeśli masz ten problem na komputerze z podwójnym uruchomieniem, sprawdź The **quick start** option can be found in **power options** in the control panel of Windows. Mam ten sam problem z Ubuntu na AWS
vanduc1102

Odpowiedzi:


66

System plików zwykle przechodzi w tryb tylko do odczytu, gdy system jest uruchomiony, jeśli występuje problem ze spójnością systemu plików. Jest to określone fstabjako errors=remount-roi pojawi się, gdy dostęp FS nie powiedzie się lub zostanie zażądany remont tylko do odczytu za pośrednictwem Alt+ SysRq+ U. Możesz uruchomić:

sudo fsck -Af -M

aby wymusić sprawdzenie wszystkich systemów plików. Jak stwierdza jedna z pozostałych odpowiedzi, dmesgbardzo pomocne jest również patrzenie na nie.

Edycja: Nie zapomnij -Mw wierszu polecenia.

UWAGA: Jak wspomniał Bibhas w swojej odpowiedzi : Jeśli fsckutknie po transparentu swojej wersji:

$ sudo fsck -Af -M
fsck from util-linux 2.20.1

możesz spróbować użyć fsck specyficznego dla EXT4

$ sudo fsck.ext4 -f /dev/sda1

Pod warunkiem, że partycja /dev/sda1była systemem plików ext4.


2
Myślę, że nie powinieneś wymuszać sprawdzania systemu plików na innych systemach plików montowanych z poziomu r / w. To potencjalnie uszkodzi twoje dane. Dodaj -Mopcję pomijania zamontowanych systemów plików. ( -M Do not check mounted filesystems and return an exit code of 0 for mounted filesystems.z FSCK (8))
gertvdijk

35
To nie pomaga, po prostu pojawia się ten sam błąd podczas próby uruchomienia tego polecenia. sudo: unable to open /var/lib/sudo/kuplack/1: Read-only file system fsck from util-linux 2.20.1
Mark Kramer,

1
Ale ... -M pominie zamontowane systemy plików, w tym / dev / sda1 (lub co kiedykolwiek zamontowany dysk zawiera / var / lib / sudo / ...). @MarkKramer: Gorąco polecam zawsze ustawiania hasła roota podczas instalacji systemu Linux, z sudo su; passwd. Następnie możesz użyć su -c fsck -Af -M.
naught101

1
Tak, dla mnie musiałem usunąć -M, odkąd zamontowano / dev / sda1, i aby ułatwić ci życie, dodaj -Afy (y oznacza odpowiedź tak na wszystkie monity) ... Gram szybko i swobodnie z maszynami wirtualnymi, więc „ m zwykle jest w porządku z tego typu rozwiązaniem, ale jeśli nie ma kopii zapasowej sprzętu, może przyjąć inne podejście i przeczytać dmesg.
FreeSoftwareServers

2
@DarshanChaudhary -MFlaga powoduje, że fsck pomija zamontowane systemy plików. Zobacz stronę fsck (8)podręcznika.
ζ--

45

Oto polecenie, które rozwiązało mój problem:

mount -o remount /

lepsze niż ponowne uruchomienie lub sudo fsck -Af


21
Nie lepiej, jeśli system operacyjny uczynił twój dysk tylko do odczytu, aby zapobiec możliwemu uszkodzeniu.
Drew Noakes,

5
Mało tego - tylko root będzie mógł ponownie zamontować system plików i sudonie będzie działać, jeśli system plików jest tylko do odczytu.
Nathan Osman

11
Nie pomaga, po prostu dostaję tę samą wiadomość:sudo: unable to open /var/lib/sudo/kuplack/1: Read-only file system mount: cannot remount block device /dev/sda2 read-write, is write-protected
Mark Kramer,

3
o tak, ten zadziałał.
RT

2
mount: cannot remount /dev/sda8 read-write, is write-protected
Rishabh Agrahari

42

Odpowiedź heksafrakcji nie działała dla mnie. Za każdym razem, gdy próbowałem sudo fsck -Af -Mto wykonać , pokazywałem

$ sudo fsck -Af -M
fsck from util-linux 2.20.1

i nic więcej. Bez błędów i nic. Dla mnie uruchomienie z dysku na żywo i wykonanie tego działało -

sudo fsck.ext4 -f /dev/sda1

Pod warunkiem, że partycja /dev/sda1była systemem plików ext4.


4
Dziękuję za tę odpowiedź. To jedyna rzecz, która faktycznie działała
Joshua Robison

5
-M oznacza brak wykonywania zamontowanych systemów plików. Twój system plików / dev / sda1 został zamontowany (domyślam się w /). Więc zostało pominięte.
dalore

3
sudo fsck.ext4 -f /dev/sda1Pracuje. Nadal wymaga ponownego uruchomienia.
efkan

1
Działa dla mnie na Ubuntu 16.04.3 Dziękuję
Rosário Pereira Fernandes

13

Spróbuj uruchomić, dmesg | grep "EXT4-fs error"aby sprawdzić, czy masz jakiekolwiek problemy związane z samym systemem plików / systemem kronikowania. W takim razie zaleciłbym ponowne uruchomienie systemu. Również sudo fsck -Afodpowiedź ObsessiveSSOℲ nie zaszkodzi.


10

Jeśli chcesz zmusić główny system plików do ponownego zamontowania jako rw, możesz wykonać następujące czynności.

mount -o remount,rw /

to zostało rozwiązane mój problem, używam chmury hetzner z 160 GB SSD, nigdy wcześniej nie miałem takiego błędu
Fathur Rohim

9

Pamiętaj, że czasami może to być spowodowane zapomnieniem czasu systemowego przez komputer - sprawdzanie dysku kończy się niepowodzeniem, ponieważ daty w dzienniku są w PRZYSZŁOŚCI!

Ustawienie czasu BIOS (i sprawdzenie baterii BIOS) naprawiło dla mnie ten problem, bez konieczności przywracania dysku.


Witamy w Ask Ubuntu! Zalecam edycję tej odpowiedzi, aby rozszerzyć ją o szczegółowe informacje na temat tego, jak to zrobić. (Zobacz także Jak napisać dobrą odpowiedź? Zawiera ogólne porady na temat tego, jakie rodzaje odpowiedzi są uważane za najbardziej wartościowe w Ask Ubuntu.)
David Foerster,

Jestem całkiem pewien, że tak się teraz dzieje, biorąc pod uwagę, że mój komputer powiedział mi, że dziś rano zapomniało czasu.
nomen

2

Zazwyczaj Linux powoduje, że systemy plików są odczytywane tylko wtedy, gdy wystąpią błędy, szczególnie błędy na dysku lub w samym systemie plików, na przykład błędy takie jak błędny wpis do dziennika.

Lepiej sprawdź, czy nie występują dmesgbłędy związane z dyskiem.

Google jest pełen dyskusji na ten temat i możesz wybrać te, które są bliżej twojej konfiguracji, ale spojrzenie na dmesgto zwykle wystarcza.


Na co należy patrzeć / grepna dmesgwyjściu?
izomorfizmy

Niestety, jeśli zdecydowałeś się zaszyfrować swój folder domowy, dmesgna pewno będzie pełen bezużytecznych błędów ecryptfs.
Nathan Osman

2

Dla mnie ponowne uruchomienie systemu rozwiązującego ten problem

sudo reboot

jak o tym wspomniał.


2

(Usunięto poprzednią odpowiedź)

Edycja: Główny problem był po stronie systemu Windows. Po zaktualizowaniu systemu Windows 10 automatycznie włączono opcję „szybkiego startu”. Po ponownym wyłączeniu tej opcji, a następnie ponownym uruchomieniu komputera problem zniknął. Windows 10 sprawiał mi ból głowy przez wiele dni :(

Opcja „szybkiego startu” znajduje się w „opcjach zasilania” w panelu sterowania. Wyłącz to !!! :)


Tylko jeden działał. Kosztem prędkości uruchamiania.
NelsonGon

2

Jeśli podczas podwójnego uruchamiania komputera z systemem Ubuntu i systemem Windows występuje ten problem, to dlatego, że system Windows zmienia system plików, w takim przypadku może to załatwić sprawę. Spróbuj wyłączyć szybkie uruchamianie

Panel sterowania> Sprzęt i dźwięki> Opcje zasilania> (po lewej) Wybierz, co robi zamknięcie pokrywy> Zmień ustawienia, które są obecnie niedostępne> Odznacz „Włącz szybkie uruchamianie”

Teraz uruchomienie systemu Ubuntu rozwiąże problem. Mam nadzieję że to pomoże!

https://youtu.be/KJ-0KPZhAFo


1

Jeśli znalazłeś się w sytuacjach, w których nie można użyć dysku na żywo, np. Jesteś zdalnie ssh w swoim systemie, nadal możesz użyć polecenia, na które @Bibhas odpowiedział:

sudo fsck.ext4 -f /current/filesystem/mount/point

Pojawi się monit o naprawienie błędu systemu plików. Musisz także zdalnie zrestartować system.


0

W moim przypadku chodziło o stabilizację RAID 1 po pierwszej instalacji. Mam / boot i / on s / w RAID1. Po opuszczeniu systemu na noc i ponownym uruchomieniu wszystko działa dobrze. Richard


0

Sprawdź, czy masz wadliwy sprzęt. Ten błąd wystąpił z powodu poluzowania dysku twardego. Ran mount -o remount, rw / i działało dobrze.


-1

To źle skonfigurowane ustawienia rozruchu (spróbuj zamontować /jako ext2), a nie błąd fizyczny dysku lub partycji.

dmesg | grep "error" dałeś mi:

ext3-fs (sda2): error: couldn't mount because of unsupported optional features (240) 
ext2-fs (sda1): error: couldn't mount because of unsupported optional features (240) 
ext4-fs (sda2): mounted file system with ordered data mode: opts: (null)

Montowane /jako tylko do odczytu ze względu na error=mount-rodyrektywę fstab .


-1

Korzystam z wersji 18.04 LTS i to, co zrobiłem, najpierw odmontowałem uszkodzone dyski, a następnie przeszedłem do aplikacji „Dyski”, szukając w desce rozdzielczej. Stamtąd wybrałem dysk, który został uszkodzony. Upewnij się, że jest odmontowany, bo inaczej nie zadziała. W menu opcji (mały kształt koła zębatego) i kliknij „napraw system plików”. Bum! Działa jak urok.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.