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.

  • I recommend to @John to change the answer to the last posted answer by Bibhas as it actually works where the other answers are not helpful at all actually. – Joshua Robison Nov 9 '14 at 6:30
  • Everyone, this question is for a server, not a PC. If you have this issue on your dual boot PC, Please check The **quick start** option can be found in **power options** in the control panel of Windows. I'm having the same issue with an Ubuntu on AWS – vanduc1102 Jul 14 at 8:35

15 Answers 15

up vote 54 down vote accepted

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.

  • 2
    I think you should not force a filesystem check on other r/w mounted filesystems. That will potentially corrupt your data. Add the -M option to skip mounted filesystems. (-M Do not check mounted filesystems and return an exit code of 0 for mounted filesystems. from FSCK(8)) – gertvdijk Jun 24 '13 at 18:35
  • 32
    This doesn't help, I just get the same error when trying to run that command. sudo: unable to open /var/lib/sudo/kuplack/1: Read-only file system fsck from util-linux 2.20.1 – Mark Kramer Dec 8 '13 at 21:47
  • 1
    But... -M will skip mounted file systems, including /dev/sda1 (or what ever mounted drive includes /var/lib/sudo/... ). @MarkKramer: I highly recommend always setting the root password when installing linux, with sudo su; passwd. Then you can use su -c fsck -Af -M. – naught101 Mar 1 '15 at 0:33
  • Yea for me I needed to remove -M since /dev/sda1 was mounted, and to make your life easier, add -Afy (The y means answer yes to all prompts)... I play fast and loose with VM's so I'm usually ok with this type of solution, but if this is unbacked up hardware, might take a different approach and read dmesg. – FreeSoftwareServers Jul 19 '16 at 21:57
  • 2
    @DarshanChaudhary The -M flag causes fsck to skip mounted filesystems. See the fsck (8) manpage. – hexafraction Mar 1 '17 at 19:07

Here is the command that solved my problem :

mount -o remount /

better than a reboot or sudo fsck -Af

  • 17
    Not better if the OS made your disk read-only to prevent possible corruption. – Drew Noakes Feb 11 '13 at 17:24
  • 5
    Not only that - only root will be able to remount the filesystem and sudo isn't going to work if the filesystem is read-only. – Nathan Osman Aug 30 '13 at 7:21
  • 11
    Doesn't help, I just get the same message: 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 Dec 8 '13 at 21:49
  • 3
    o yes this one worked. – R T Jan 6 '16 at 5:04
  • 3
    Aaaaw Yeah! Thanks a ton fella! – shramee Aug 28 '16 at 5:05

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.

  • 4
    Thank you for this answer. This is the only thing that had actually worked – Joshua Robison Nov 9 '14 at 6:27
  • 4
    -M means not to do mounted filesystems. Your filesystem /dev/sda1 was mounted (I'm guessing at /). So it was skipped. – dalore Apr 13 '15 at 14:41
  • 3
    sudo fsck.ext4 -f /dev/sda1 works. Still a restart needs. – efkan Jan 27 '17 at 15:09
  • 1
    It worked for me on ubuntu 16.04.3 Thank you – Rosário Pereira Fernandes Oct 25 '17 at 14:39

Try running dmesg | grep "EXT4-fs error" to see if you have any issues related to the filesystem / journaling system itself. I would recommend you to restart your system, then. Also, sudo fsck -Af answer by ObsessiveSSOℲ won't hurt.

If you want to force your root filesystem to remount as rw, you can do the following.

mount -o remount,rw /

Note that sometimes this can be caused by the computer forgetting the system time - disk check fails because the dates in the journal are in THE FUTURE!

Setting the BIOS time (and checking the BIOS battery) fixed this problem for me, without having to do any disk recovery.

  • Welcome to Ask Ubuntu! I recommend editing this answer to expand it with specific details about how to do this. (See also How do I write a good answer? for general advice about what sorts of answers are considered most valuable on Ask Ubuntu.) – David Foerster Feb 23 '16 at 8:50
  • I am fairly certain this is happening to me right now, given that my computer told me it forgot its time this morning. – nomen Jan 22 at 4:14

Usually linux puts your filesystems in read only when errors occur, especially errors with the disk or the filesystem itself, errors like a wrong journal entry for example.

You better check your dmesg for disk related errors.

Google is full of discussion about this and you can pick the ones that is closer to your configuration, but a look at dmesg is usually enough.

  • What should one look at / grep for in dmesg output? – isomorphismes Mar 8 '13 at 23:47
  • Unfortunately if you opted to encrypt your home folder, dmesg is bound to be full of useless errors from ecryptfs. – Nathan Osman Aug 30 '13 at 7:22

(Deleted previous answer)

Edit: The main problem was on the windows side. After updating my Windows 10, the 'quick start' option automatically got enabled. On disabling that option again, and then again re-starting the machine, the problem went away. Windows 10 gave me heavy headache for days :(

The 'quick start' option can be found in 'power options' in the control panel. Disable that!!! :)

If you're dual booting your machine with Ubuntu and Windows together and this issue occurs,it's because Windows changes the filesystem,in that case this might do the trick. Try disabling fast startup

Control Panel > Hardware and Sounds > Power Options > (in the left) Choose what closing the lid does > Change settings that are currently unavailable > Untick 'Turn on fast startup'

Now booting into Ubuntu will solve the issue. Hope this helps!

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

In my case it was down to RAID 1 stabilizing after the initial installation. I have /boot and / on s/w RAID1. Having left the system overnight and rebooted, everything is working fine. Richard

Check if you have any faulty hardware.I got this error due to a hardisk loosening. Ran mount -o remount,rw / and it worked fine.

If you were in situations that can not use live disc, e.g. you are remotely ssh into your system, you can still using the command that @Bibhas had answered:

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

It will prompt for fixing your filesystem error. You also need to reboot your system remotely.

It's misconfigured boot settings (try mounting / as ext2) not drive or partition physical error.

dmesg | grep "error" gave me:

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)

It mounted / as read only due to the fstab error=mount-ro directive.

For me,Rebooting a system solving this issue

sudo reboot

as he mentioned about it.

I am using the 18.04 LTS release and what I did was, first I unmounted my damaged drives then I went into “Disks” app by seaching in the dash. From there I selected the drive which was damaged. Make sure it is unmounted else it won’t work. In the options menu (the little gear shape), and clicked on “repair file system”. Boom! Worked like a charm.

protected by heemayl Jun 2 at 12:10

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.