标题可能不像我希望的那样具有描述性,但无法提出更好的标题。

我的服务器的文件系统进入只读状态。而且我不明白为什么会这样做以及如何解决。

我可以通过SSH进入服务器,例如,当尝试启动apache2时,我得到以下信息:

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.


当我尝试重新启动服务器时,我得到:

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


一旦我手动重新启动它,它只会启动而不会发出任何警告或消息说错了。

我希望有人能指出我正确的方向来解决这个问题。

评论

我建议@John更改Bibhas上次发布的答案的答案,因为它在其他答案完全没有帮助的情况下可以实际使用。

对于MicroSD:askubuntu.com/questions/213889/…

大家,这个问题是针对服务器的,而不是针对PC的。如果您在双启动PC上遇到此问题,请检查“快速启动”选项,可在Windows控制面板的“电源选项”中找到。我在AWS上的Ubuntu上遇到相同的问题

#1 楼

如果存在文件系统一致性问题,则文件系统通常会在系统运行时进入只读状态。在fstab中将其指定为errors=remount-ro,当FS访问失败或通过Alt + SysRq + U请求紧急只读重新挂载时,将发生这种情况。您可以运行:

sudo fsck -Af -M


强制检查所有文件系统。作为其他答案之一,看dmesg也非常有帮助。

编辑:不要忘记在命令行上使用-M

注意:如前所述by Bibhas在他的回答中:如果fsck在其版本标语后卡住:

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


您可能想尝试使用EXT4专用的fsck

$ sudo fsck.ext4 -f /dev/sda1


提供了有问题的分区/dev/sda1是ext4文件系统。

评论


我认为您不应该在其他读/写挂载的文件系统上强制执行文件系统检查。这可能会破坏您的数据。添加-M选项以跳过已挂载的文件系统。 (-M不要检查已安装的文件系统,并且从FSCK(8)返回已安装文件系统的退出代码0。)

– Gertvdijk
13年6月24日在18:35

这无济于事,在尝试运行该命令时,我只会遇到相同的错误。 sudo:无法打开/ var / lib / sudo / kuplack / 1:util-linux 2.20.1中的只读文件系统fsck

– Mark Kramer
2013年12月8日在21:47



但是... -M将跳过已挂载的文件系统,包括/ dev / sda1(或已挂载的驱动器包括/ var / lib / sudo / ...)。 @MarkKramer:我强烈建议在安装linux时始终使用sudo su设置root密码;密码。然后,您可以使用su -c fsck -Af -M。

–naught101
2015年3月1日,0:33

对我来说,由于已安装/ dev / sda1,因此我需要删除-M,并且为了使您的生活更轻松,请添加-Afy(y表示对所有提示都回答是)...我在VM上玩得很快而松散,所以我m通常可以使用这种类型的解决方案,但是如果这是未备份的硬件,则可能会采用其他方法并读取dmesg。

– FreeSoftwareServers
16年7月19日在21:57

@DarshanChaudhary -M标志使fsck跳过已挂载的文件系统。请参见fsck(8)联机帮助页。

– Nanofarad
17年1月1日19:07在

#2 楼

这是解决我的问题的命令:

mount -o remount /


比重启或sudo fsck -Af

评论


如果操作系统将磁盘设置为只读磁盘以防止可能的损坏,那就更好了。

–德鲁·诺克斯(Drew Noakes)
13年2月11日在17:24

不仅如此-如果文件系统是只读的,那么只有root才能重新挂载文件系统,而sudo将无法工作。

–内森·奥斯曼(Nathan Osman)
13年8月30日在7:21

无济于事,我只得到相同的消息:sudo:无法打开/ var / lib / sudo / kuplack / 1:只读文件系统挂载:无法重新挂载块设备/ dev / sda2读写,是可写的受保护的

– Mark Kramer
2013年12月8日在21:49

是的,这个工作了。

– R T
16年6月6日在5:04

挂载:无法重新挂载/ dev / sda8读写,具有写保护

–瑞沙(Rishabh Agrahari)
18年6月5日在3:57

#3 楼

hexafraction的答案对我不起作用。每次我尝试执行sudo fsck -Af -M时,它只会显示

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


,没有其他显示。没有错误或任何东西。对我来说,引导到活动磁盘并执行此工作-

sudo fsck.ext4 -f /dev/sda1

提供了问题的分区/dev/sda1是ext4文件系统。

评论


感谢您的回答。这是唯一真正起作用的东西

–约书亚·罗宾逊(Joshua Robison)
2014年11月9日下午6:27

-M表示不执行挂载的文件系统。您的文件系统/ dev / sda1已挂载(我猜是/)。因此它被跳过了。

– dalore
15年4月13日在14:41

sudo fsck.ext4 -f / dev / sda1可以工作。仍然需要重启。

–efkan
17年1月27日在15:09

它在ubuntu 16.04.3上对我有用

–Rosário Pereira Fernandes
17-10-25在14:39

我们到了2020年,这保存了我的Ubuntu笔记本电脑。谢谢@Bibhas!

–Forty3
20年5月5日在4:55

#4 楼

如果要强制将根文件系统重新安装为rw,则可以执行以下操作。

mount -o remount,rw /


评论


这解决了我的问题,我使用hetzner cloud和160gb ssd,之前从未遇到过此类错误

– Fathur Rohim
19年2月2日在22:52

真棒兄弟💪

–FaridLU
20年5月6日在10:38

#5 楼

尝试运行dmesg | grep "EXT4-fs error"来查看是否存在与文件系统/日记系统本身有关的任何问题。我建议您重新启动系统。另外,ObsessiveSSOℲ的sudo fsck -Af回答也不会受到伤害。

#6 楼

请注意,有时这可能是由于计算机忘记了系统时间而导致的-磁盘检查失败,因为日志中的日期在“未来”中!

设置BIOS时间(并检查BIOS电池)可以为我解决此问题,而无需进行任何磁盘恢复。

评论


欢迎来到Ask Ubuntu!我建议编辑此答案以使用有关此操作的特定详细信息将其扩展。 (另请参阅我如何编写一个好的答案?有关在Ask Ask Ubuntu上哪些答案最有价值的一般建议。)

–大卫·福斯特(David Foerster)
16-2-23在8:50

鉴于我的计算机告诉我它忘记了今天早上的时间,所以我可以肯定这正在发生。

–名门
18年1月22日在4:14

#7 楼

(删除先前的答案)

编辑:主要问题在Windows方面。更新我的Windows 10后,“快速启动”选项自动启用。再次禁用该选项,然后再次重新启动计算机,问题就消失了。 Windows 10令我头痛不已,好几天了:(

可以在控制面板的“电源选项”中找到“快速启动”选项。请禁用!!! :)

评论


只有一个有效。以启动速度为代价。

–NelsonGon
19年7月4日在12:26

#8 楼

如果您同时使用Ubuntu和Windows双重引导计算机,并且会出现此问题,那是因为Windows更改了文件系统,在这种情况下,可以解决此问题。
尝试禁用快速启动


控制面板>硬件和声音>电源选项>(在左侧)选择关闭盖子的方式>更改当前不可用的设置>取消选中“打开快速启动”


现在启动进入Ubuntu将解决此问题。希望这会有所帮助!

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

#9 楼

通常,在发生错误(尤其是磁盘或文件系统本身的错误,例如错误的日志条目之类的错误)时,Linux将文件系统置于只读状态。

您最好检查dmesg是否存在与磁盘相关的错误。 br />
Google对此进行了充分的讨论,您可以选择更接近于您的配置的那些,但是通常查看一下dmesg就足够了。

评论


在dmesg输出中应该如何看待/ grep?

–同构
13年8月8日在23:47

不幸的是,如果您选择加密主文件夹,则dmesg肯定充满了来自ecryptfs的无用错误。

–内森·奥斯曼(Nathan Osman)
13年8月30日在7:22

#10 楼

对我来说,重新启动系统以解决此问题

sudo reboot


他提到过。

#11 楼

如果您处于无法使用直播光盘的情况下,例如您正在远程SSH进入系统,仍然可以使用@Bibhas回答的命令:

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


它将提示您修复文件系统错误。您还需要远程重新引导系统。

#12 楼

在我的情况下,最初安装后应归因于RAID 1的稳定。我在/ s RAID RAID1上有/ boot和/。离开系统过夜并重新启动后,一切正常。
Richard

#13 楼

请检查您的硬件是否有问题。由于硬键松动,导致出现此错误。 ran mount -o remount,rw /,效果很好。

#14 楼

看起来某些装入的文件已损坏,因此,内核已将文件系统设置为RO,以防止进一步损坏。要查找哪个文件系统已损坏,我们可以运行:
cat /proc/mounts | grep -i ro

输出将类似于以下内容:
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
/dev/sda1 / ext4 ro,relatime,data=ordered 0 0
tmpfs /sys/fs/cgroup tmpfs ro,nosuid,nodev,noexec,mode=755 0 0

解决此问题的方法之一是重新安装损坏的文件系统。

#15 楼

如果您在Windows 10旁边同时启动ubuntu双重启动,则可能是Windows 10的快速启动在您的文件系统上留下了痕迹,它无法正确卸载硬盘。
要解决此问题,您需要启动到Windows 10中启动

开始> Power Settings

单击右侧的Additional power setting
单击左侧的choose what thepower buttons do
change settings that are currently unavailable的时钟

取消标记turn on fast-startup


save changes
,然后重新启动进入ubuntu,一切都会正常!


#16 楼

我在计算机上遇到此问题已有1年以上,并尝试一切解决问题的方法。突然Linux进入只读模式。如果您正在编辑内容,则无法保存,必须执行fsck命令并重置计算机。电脑也很慢,一直冻结。我删除了双重引导,只保留了Ubuntu,将Ubuntu从18.04 LTS升级到了版本20.04 LTS,但是它没有用。解决问题的关键是使用dmesg命令。对于我来说,这种体验是行不通的,只是这个命令。此命令的功能是监视计算机。
在我的情况下,问题与SSD与Ubuntu的不兼容性有关。我使用了HDD,切换到SSD后出现了问题。通过更新SSD固件解决了该问题,这只有分区的Windowns才可以实现,因为金士顿没有通过Linux更新固件的程序。我还安装了双引导Windowsns和Linux,首先在整个SSD上安装Windows,然后通过Windowns分配空间并安装Ubuntu,但这不可能解决问题。

#17 楼

这是配置错误的启动设置(尝试将/安装为ext2)而不是驱动器或分区物理错误。

dmesg | grep "error"给了我:

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)


它安装了/由于fstab error=mount-ro指令而为只读。

#18 楼

我正在使用18.04 LTS发行版,当时的工作是,首先卸载损坏的驱动器,然后通过短划线找到“ Disks”应用程序。从那里,我选择了损坏的驱动器。确保它已卸载,否则将无法使用。在选项菜单中(小齿轮形状),然后单击“修复文件系统”。繁荣!像魅力一样运作。