我如何检查 /dev/xvda1?

我如何检查 /dev/xvda1?

登录到 EC2(Ubuntu)实例时,我看到

*** /dev/xvda1 should be checked for errors ***

我无法做到,fsck /dev/xvda1因为它已安装,并且sudo umount /dev/xvda1失败,因为它正在使用中。 lsof显示

jbd2/xvda  172               root  cwd       DIR              202,1     4096          2 /
jbd2/xvda  172               root  rtd       DIR              202,1     4096          2 /
jbd2/xvda  172               root  txt   unknown                                        /proc/172/exe

并且kill -SIGKILL 172无效。

该怎么办?

答案1

如今,大多数 Linux 系统在启动时都会执行强制 fsck,只要系统中存在文件 /forcefsck。如果您愿意重新启动虚拟机,请运行

touch /forcefsck

然后根据需要重新启动

答案2

对于我们的 ec2 ubuntu 实例,上述答案并未完全起作用。

在 Ubuntu 上,默认情况下,检查未启用響鳴文件。所以

  1. 编辑 rcS 文件 sudo vi /etc/default/rcS

低于标准线

#FSCKFIX=no

添加

FSCKFIX=yes
  1. 编辑 fstab 文件:sudo vi /etc/fstab

查找 / 的记录,如果最后一位数字是 ,则将0其更改为1。最后一个字段是 fsckorder,fsck 使用它来决定检查磁盘的顺序。如果值为0该磁盘被跳过

例如,

LABEL=cloudimg-rootfs   /        ext4   defaults,discard        0 0

LABEL=cloudimg-rootfs   /        ext4   defaults,discard        0 1 
  1. 创建 /forcefsck 文件:sudo touch /forcefsck

从 ec2 控制台重新启动。

在 /etc/fstab1中将fsckorder 值从 恢复为删除该行以将 rcS 文件恢复到原始状态。0FSCKFIX=yes

希望能帮助到你。

答案3

由于您无法启动到实时光盘,这听起来可能有点奇怪,但我想它可以完成这项工作)

高水平:

  • 启动到新的(另一个)实例。
  • 将存储从旧实例附加到新实例(当前)。
  • 跑步fsck
  • 从新的(当前)实例中分离存储并将其重新附加到旧实例。

答案4

请遵循以下三个步骤:

  1. 编辑rcS文件
    sudo vi /etc/default/rcS

低于标准线

# FSCKFIX=no

添加FSCKFIX=yes

  1. 然后执行以下操作:

sudo touch /forcefsck

  1. 从 EC2 控制台重新启动。

您可以重新登录并检查它是否已消失

原答案在这里

相关内容