Hvordan fikse "sudo: kan ikke åpne ... Skrivebeskyttet filsystem"?

Tittelen er kanskje ikke så beskrivende som jeg skulle ønske, men jeg kunne ikke komme på noe bedre.

Filsystemet til serveren min ble skrivebeskyttet. Og jeg forstår ikke hvorfor det gjør det og hvordan jeg kan løse det.

Jeg kan SSH inn på serveren, og når jeg prøver å starte apache2 for eksempel får jeg følgende:

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.

Når jeg prøver å starte serveren på nytt får jeg:

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

Når jeg starter den på nytt manuelt, starter den bare opp uten noen advarsel eller melding om at noe er galt.

Jeg håper noen kan peke meg i riktig retning for å løse dette problemet.

Løsning

Filsystemet vil vanligvis gå i skrivebeskyttet tilstand mens systemet kjører hvis det er et konsistensproblem i filsystemet. Dette er spesifisert i fstab som errors=remount-ro og vil inntreffe når en FS-tilgang mislykkes eller en nødsituasjon med skrivebeskyttet remount blir forespurt via Alt+SysRq+U. Du kan løpe:

sudo fsck -Af -M

for å tvinge frem en sjekk av alle filsystemer. Som et av de andre svarene sier, er det også veldig nyttig å se på dmesg.

Rediger: Ikke glem -M på kommandolinjen.

MERK: Som nevnt av Bibhas i hans svar: Hvis fsck blir sittende fast etter versjonsbanneret:

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

kan det være lurt å prøve å bruke den EXT4-spesifikke fsck

$ sudo fsck.ext4 -f /dev/sda1

Forutsatt at den aktuelle partisjonen /dev/sda1 var et ext4-filsystem.

Kommentarer (19)

Her er kommandoen som løste problemet mitt:

mount -o remount /

bedre enn en reboot eller sudo fsck -Af.

Kommentarer (6)

Vanligvis setter Linux filsystemene dine i skrivebeskyttet modus når det oppstår feil, spesielt feil med disken eller selve filsystemet, feil som for eksempel en feil journaloppføring.

Du bør sjekke dmesg for diskrelaterte feil.

Google er full av diskusjoner om dette og du kan velge de som er nærmere konfigurasjonen din, men en titt på dmesg er vanligvis nok.

Kommentarer (2)