我的服务器的文件系统进入只读状态。而且我不明白为什么会这样做以及如何解决。
我可以通过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
一旦我手动重新启动它,它只会启动而不会发出任何警告或消息说错了。
我希望有人能指出我正确的方向来解决这个问题。
#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
指令而为只读。
评论
我建议@John更改Bibhas上次发布的答案的答案,因为它在其他答案完全没有帮助的情况下可以实际使用。对于MicroSD:askubuntu.com/questions/213889/…
大家,这个问题是针对服务器的,而不是针对PC的。如果您在双启动PC上遇到此问题,请检查“快速启动”选项,可在Windows控制面板的“电源选项”中找到。我在AWS上的Ubuntu上遇到相同的问题