登录到 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 上,默认情况下,检查未启用響鳴文件。所以
- 编辑 rcS 文件
sudo vi /etc/default/rcS
低于标准线
#FSCKFIX=no
添加
FSCKFIX=yes
- 编辑 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
- 创建 /forcefsck 文件:
sudo touch /forcefsck
从 ec2 控制台重新启动。
在 /etc/fstab1
中将fsckorder 值从 恢复为删除该行以将 rcS 文件恢复到原始状态。0
FSCKFIX=yes
希望能帮助到你。
答案3
由于您无法启动到实时光盘,这听起来可能有点奇怪,但我想它可以完成这项工作)
高水平:
- 启动到新的(另一个)实例。
- 将存储从旧实例附加到新实例(当前)。
- 跑步
fsck
。 - 从新的(当前)实例中分离存储并将其重新附加到旧实例。
答案4
请遵循以下三个步骤:
- 编辑
rcS
文件
sudo vi /etc/default/rcS
低于标准线
# FSCKFIX=no
添加FSCKFIX=yes
- 然后执行以下操作:
sudo touch /forcefsck
- 从 EC2 控制台重新启动。
您可以重新登录并检查它是否已消失