如何修复“sudo:无法打开…只读文件系统”?

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

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

我可以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 

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

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

如果存在文件系统一致性问题,文件系统通常会在系统运行时进入只读状态。 这在fstab中指定为errors=remount-ro并且在FS访问失败或通过Alt + SysRq + U请求紧急只读重新安装时发生。 你可以运行:

 sudo fsck -Af -M 

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

编辑:不要忘记命令行上的-M

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

 mount -o remount / 

重启sudo fsck -Af更好

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文件系统。

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

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

 mount -o remount,rw / 

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

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

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

您最好检查dmesg是否存在与磁盘相关的错误。

Google对此进行了充分的讨论 ,您可以选择更接近您配置的那些,但看看dmesg通常就足够了。

(删除上一个答案)

编辑:主要问题是在Windows端。 更新我的Windows 10后,“快速启动”选项自动启用。 再次禁用该选项,然后再次重新启动机器时,问题就消失了。 Windows 10让我头疼了几天:(

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

如果您使用Ubuntu和Windows双重启动计算机并出现此问题,那是因为Windows更改了文件系统,在这种情况下,这可能会起到作用。 尝试禁用快速启动

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

现在启动到Ubuntu将解决问题。 希望这可以帮助!

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

首先在恢复菜单(只读)中选择dpgk修复损坏的数据包,最后恢复菜单将是恢复菜单(读/写)选择root命令窗口用户,您将能够以root用户身份使用它!

在我的情况下,初始安装后,RAID 1稳定下来。 我有/ boot和/ on s / w RAID1。 一夜之间离开系统并重新启动,一切正常。 理查德

它配置错误的引导设置(尝试挂载/作为ext2 )不驱动或分区物理错误。

dmesg | grep "error" 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指令而挂载/只读。

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

 sudo reboot 

正如他提到的那样。

检查您是否有任何有故障的硬件。由于硬盘松动,我收到此错误。 Ran mount -o remount,rw /并且工作正常。

这对我有用

首先,我列出了分区:

 sudo fdisk -l 

分区

  Device Boot Start End Blocks Id System /dev/sda1 2048 999423 498688 82 Linux swap / Solaris /dev/sda2 999424 83886079 41443328 83 Linux 

所以我修复了系统的分区:

 sudo fsck -f -y /dev/sda2 

只有参数f(力)对我有用,参数y在所有问题中都回答是

最后我重新启动了机器:

 sudo reboot 

我正在使用18.04 LTS版本,我做的是,首先我卸载了我的损坏驱动器然后我通过在仪表板中搜索进入“磁盘”应用程序。 从那里我选择了损坏的驱动器。 确保它已卸载,否则它将无法工作。 在选项菜单(小齿轮形状)中,单击“修复文件系统”。 繁荣! 工作就像一个魅力。

如果您遇到无法使用实时光盘的情况,例如您远程ssh进入系统,您仍然可以使用@Bibhas已经回答的命令:

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

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