如何检查/ dev / xvda1?


60

登录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无效。

该怎么办?


您可以在fstab中将/ dev / xvda1设置为“ noauto”并重新启动吗?
Nils Toedtmann 2014年

Answers:


51

目前,大多数Linux在系统上存在文件/ forcefsck时,应在引导时执行强制fsck。如果您有权重启虚拟机,请运行

touch /forcefsck

然后在您方便的时候重启


95

对于我们的ec2 ubuntu实例,以上答案无法完全解决。

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

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

线下

#FSCKFIX=no

FSCKFIX=yes
  1. 编辑fstab文件。须藤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文件

    须藤触摸/ forcefsck

从ec2控制台重启。

将/ etc / fstab中的fsckorder值从“ 1”还原为“ 0”。删除该行,FSCKFIX=yes以使rcS文件恢复为原始状态。

希望能帮助到你。


5
这对我有用。仅仅执行“ touch / forcefsck”并不能解决问题,我还必须启用FSCKFIX。
弗洛林·安德烈

1
同样在这里; 仅sudo touch /forcefsck在重启之前执行的操作在Ubuntu 14.04系统上不起作用,但是此答案可以。
Teemu Leisti 2015年

我不得不做另外一步-修改/ etc / fstab,如下所述:nathanpfry.com/… 奇怪,因为上次发生这种情况时,我使用了您的答案,并且按原样工作。
childofsoong

2
谢谢,这为我在AWS的ec2实例上解决了问题。我不必从控制台重新启动,只需sudo reboot进行更改即可解决此问题。
拉尔夫(Ralph)

这也解决了我本地计算机上的问题。我认为这应该标记为最佳。
阿尔达(Arda)

7

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

高水平:

  • 启动到新的(另一个)实例。
  • 将存储从旧实例附加到新实例(当前)。
  • 运行fsck
  • 将存储与新(当前)存储区分开,然后将其重新附加到旧实例。

0

我只需执行以下3个步骤即可解决问题。

  1. 将“ FSCKFIX = yes”添加到/ etc / default / rcS
  2. 须藤触摸/ forcefsck
  3. 须藤重启

谢谢大家

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.