How to fix "sudo: unable to open ... Read-only file system"?
The title might not be as descriptive as I would like it to be but couldn't come up with a better one.
My server's file system went into Read-only. And I don't understand why it does so and how to solve it.
I can SSH into the server and when trying to start apache2 for example I get the following :
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.
When I try restarting the server I get :
username@srv1:~$ sudo shutdown -r now
[sudo] password for username:
sudo: unable to open /var/lib/sudo/username/1: Read-only file system
Once I restart it manually it just start up without any warning or message saying something is wrong.
I hope somebody could point me into the right direction to resolve this issue.
Solution 1:
The filesystem will usually go into read-only while the system is running if there is a filesystem consistency issue. This is specified in fstab
as errors=remount-ro
and will occur when a FS access fails or an emergency read-only remount is requested via Alt+SysRq+U. You can run:
sudo fsck -Af -M
to force a check of all filesystems. As one of the other answers states, looking at dmesg
is also very helpful.
Edit: Don't forget the -M
on the command-line.
NOTE: As mentioned by Bibhas in his answer: If fsck
gets stuck after its version banner:
$ sudo fsck -Af -M
fsck from util-linux 2.20.1
you may want to try using the EXT4-specific fsck
$ sudo fsck.ext4 -f /dev/sda1
Provided the partition in question /dev/sda1
was an ext4 filesystem.
Solution 2:
The answer by hexafraction didn't work for me. Every time I tried executing sudo fsck -Af -M
it just showed
$ sudo fsck -Af -M
fsck from util-linux 2.20.1
and nothing else. No error or anything. For me, booting into a live disc and executing this worked -
sudo fsck.ext4 -f /dev/sda1
Provided the partition in question /dev/sda1
was an ext4 filesystem.
Solution 3:
Here is the command that solved my problem :
mount -o remount /
better than a reboot or sudo fsck -Af