dmesg 中的“mounting fs with errors”是什么意思,之后怎么办?

use*_*951 9 filesystems ext4 fsck

我运行 dmesg,这是我看到的:

EXT4-fs (sda1): warning: mounting fs with errors, running e2fsck is recommended
EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: 
Run Code Online (Sandbox Code Playgroud)

这是上下文中的内容

EXT3-fs (sdd1): using internal journal
EXT3-fs (sdd1): mounted filesystem with ordered data mode
EXT4-fs (sda1): warning: mounting fs with errors, running e2fsck is recommended
EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: 
EXT4-fs (sdb1): warning: maximal mount count reached, running e2fsck is recommended
EXT4-fs (sdb1): mounted filesystem with ordered data mode. Opts: 
EXT4-fs (sdc1): warning: maximal mount count reached, running e2fsck is recommended
EXT4-fs (sdc1): mounted filesystem with ordered data mode. Opts: 
Adding 4194296k swap on /dev/sdd2.  Priority:-1 extents:1 across:4194296k SSD
kjournald starting.  Commit interval 5 seconds
EXT3-fs (loop0): warning: maximal mount count reached, running e2fsck is recommended
EXT3-fs (loop0): using internal journal
EXT3-fs (loop0): mounted filesystem with ordered data mode
Run Code Online (Sandbox Code Playgroud)

e2fsck 到底是什么?如何运行它?

ter*_*don 9

首先,据我所知,您的磁盘很好,每个人都应该放松一下。这是一项安全功能,您可以设置在每次安装时或在指定数量的安装后检查磁盘。如果你还没有这样做,你的系统会给你你显示的警告,让你知道自上次检查磁盘已经有一段时间了,检查它是否有错误是个好主意(这就是这样e2fsck做的) .

请注意,错误说:

警告:已达到最大挂载计数,建议运行 e2fsck

这是警告,而不是错误,是建议,而不是命令。

这warning: mounting fs with errors, running e2fsck is recommended有点令人担忧,但可能可以通过e2fsck.

这一切都归结为/etc/fstab选项。典型的fstab分区条目如下所示:

# <file system>       <dir>         <type>    <options>             <dump> <pass>
UUID=123-456-ABC-DEF   /             ext4      defaults,noatime      0      1
Run Code Online (Sandbox Code Playgroud)

最后一个字段pass指定应如何/何时检查磁盘是否有错误。如果设置为0,则永远不会检查驱动器,如果设置为1,将在每次启动时检查,如果设置为2或更多,则每次安装超过指定(默认为 30)时都会检查没有被检查的次数。

鉴于您遵守警告,我的猜测是,你已经将它设置为0你的/etc/fstab。推荐值适用1于您的/分区,2或更高的值适用于其他所有内容。如果设置为大于 的值1,系统将每 30 次安装检查您的驱动器是否存在错误。要更改检查频率(例如,每 20 次安装检查一次),请运行:

tune2fs -c 20 /dev/sda1
Run Code Online (Sandbox Code Playgroud)

因此,虽然@vfbsilva 的答案是完全正确的,但简单地编辑您的/etc/fstab,将pass相关分区的值更改为 2 并重新启动会容易得多。这应该会导致检查驱动器并消除警告。


vfb*_*lva 5

看来您的磁盘已损坏我建议您停止使用它。Fsck 代表文件系统检查,它是一种修复文件系统问题的工具。因为如果没有观察到某些细节(即在已挂载的文件系统上运行它),使用此工具可能会导致数据丢失,强烈建议您在做出任何决定之前阅读此手册页并谷歌一下。

不要在活动或挂载的文件系统上运行 fsck。fsck 用于检查和有选择地修复一个或多个 Linux 文件系统。在挂载的文件系统上运行 fsck 通常会导致磁盘/数据损坏。所以请不要这样做。你有两个选择

  1. 关闭系统到单用户模式和卸载系统
  2. 从安装 CD 启动到救援模式

以下是每种情况下的相关步骤:

  1. 关闭系统到单用户模式和卸载系统

    • 使用 init(进程控制初始化)命令更改运行级别 1(单用户模式)
    • 使用 umount 命令卸载/home文件系统
    • 使用fsck命令运行文件系统检查

假设您想fsck在/home(/dev/sda3) 上运行:

init 1
umount /home
umount /dev/sda
fsck /homeOR
fsck /dev/sda3
Run Code Online (Sandbox Code Playgroud)

或者

e2fsck -y /dev/sda3
Run Code Online (Sandbox Code Playgroud)

2.从安装光盘启动进入救援模式

如果您使用 Cent OS/Fedora Core/RHEL Linux,请从第一张 CD 引导并在引导提示符下键入:

boot: linux rescue nomount
Run Code Online (Sandbox Code Playgroud)

现在为磁盘和分区 3 创建新节点:

mknod /dev/sda
mknod /dev/sda3
fsck /dev/sda3
Run Code Online (Sandbox Code Playgroud)

或者

e2fsck -y /dev/sda3
Run Code Online (Sandbox Code Playgroud)

不要忘记重新启动系统:

exit
reboot
Run Code Online (Sandbox Code Playgroud)


rep*_*lay 0

显然,在安装该设备时,内核检测到您的文件系统尚未完全卸载,因此可能存在错误。

您必须首先卸载它,然后运行文件系统检查,例如e2fsck /dev/sda1。这将检查是否有任何错误,如果有,它会询问您是否应该修复它们。