Amazon EC2 上的 Ubuntu 12.04:下次重新启动时将检查 /dev/xvda1 是否有错误?

cwd*_*cwd 28 amazon-ec2

我在 Amazon EC2 上运行Canonical的最新 Ubuntu 12.04 AMI ( ami-a29943cb)并且经常在我登录时收到消息:

*** /dev/xvda1 will be checked for errors at next reboot ***
Run Code Online (Sandbox Code Playgroud)

我已经阅读了大量关于此的文档,并且似乎明白每一次重启(大约 37 次,见Mount count/Maximum mount count下方)Ubuntu 都想检查磁盘是否有错误。我可以通过使用dumpe2fs -h /dev/xvda1参考)来获取信息,例如:

Last mounted on:          /
Filesystem UUID:          1ad27d06-4ecf-493d-bb19-4710c3caf924
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              524288
Block count:              2097152
Reserved block count:     104857
Free blocks:              1778055
Free inodes:              482659
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      511
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Flex block group size:    16
Filesystem created:       Tue Apr 24 03:07:48 2012
Last mount time:          Thu Nov  8 03:17:58 2012
Last write time:          Tue Apr 24 03:08:52 2012
Mount count:              3
Maximum mount count:      37
Last checked:             Tue Apr 24 03:07:48 2012
Check interval:           15552000 (6 months)
Next check after:         Sun Oct 21 03:07:48 2012
Lifetime writes:          2454 MB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:           256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      0a25e04c-6169-4d68-bfa6-a1acd8e39632
Journal backup:           inode blocks
Journal features:         journal_incompat_revoke
Journal size:             128M
Journal length:           32768
Journal sequence:         0x0000158b
Journal start:            1
Run Code Online (Sandbox Code Playgroud)

我已经尝试过这些事情来摆脱消息,通常badblocks这对我有用:

运行此命令并重新启动:

sudo touch /forcefsck
Run Code Online (Sandbox Code Playgroud)

运行 badblocks 检查磁盘:

badblocks /dev/sda1
Run Code Online (Sandbox Code Playgroud)

相应地编辑/etc/fstab并更改最后一个“0”,即该fs_passno列,然后重新启动:

根文件系统应指定 fs_passno 为 1,其他文件系统应指定 fs_passno 为 2。

我不明白:

  1. 如果这是一个虚拟驱动器,它不应该更不容易出错吗?
  2. 图像是否使用设置的标志之一创建?如果不是,是什么触发了它?
  3. 为什么在 Amazon EC2 Ubuntu 映像上fs_passno设置为0?这不是第一个这样的。

cwd*_*cwd 18

来自 Eric 的链接问答,简短版本是:

这是 Ubuntu 11.04 和 12.04 上的一个错误……这会导致使用包含该消息的未来时间戳创建文件。

修复此错误的最简单解决方案是删除通知文件:

sudo rm /var/lib/update-notifier/fsck-at-reboot
Run Code Online (Sandbox Code Playgroud)

其他处理方法可以在该问答中找到。


Eri*_*ond 10

为什么在 Amazon EC2 Ubuntu 映像上将 fs_passno 设置为 0?

如果 fsck 在启动时运行并发现问题,那么它可能正在等待对提示的回答。但是,由于 Amazon EC2 不提供对实例控制台的访问权限,因此您无法回答提示并且实例将变得不可用。


相关问答: