我有一个在亚马逊 EC2 上运行的 Ubuntu 微型实例。
最近登录后我收到警报:
*** /dev/xvda1 will be checked for errors at next reboot ***
我已经使用 重新启动了几次init 6
,但是当我登录时,我仍然收到相同的通知,因此显然fsck
没有在启动时运行。
我读这篇博文其中提到,如果 /etc/fstab<pass>
列设置为,0
则在重新启动期间将跳过磁盘检查。这是我的fstab
文件:
<file system> <mount point><type><options><dump><pass>
LABEL=cloudimg-rootfs / ext4 defaults 0 0
/dev/xvdh /vol xfs noatime 0 0
这是来自的 ec2 图像的默认配置ubuntu
。
<pass
>设置在这里正常吗0
?- 为什么会被设置为
0
? - 最好的运行方式是什么
fsck
- 我应该更改此值还是仅在收到警报时手动运行?
答案1
为什么会被设置为
0
?我可以看到一些可能的原因。
由于您在 EC2 上运行,因此您的硬件(存储和计算实例)是虚拟化的。这种配置遇到任何类型的导致文件系统损坏的故障的可能性要小得多,并且存储中的实际物理缺陷(例如磁存储上的坏块)几乎是不可能的。
这意味着文件系统问题不太常见,因此不必频繁检查文件系统。也许当您怀疑有问题时,您需要手动运行 fsck。
EC2“旨在”拥有一个只读根文件系统,或者至少一个在实例启动时恢复固定状态的文件系统。 EC2 的主要优点是能够按需启动小型实例,然后在需求下降时终止它们,始终运行相同的操作系统配置。在这种情况下,检查根文件系统是没有意义的,因为它永远不会改变。如果您将该系统用于“开发”或一般用途,这显然不适用,但我不认为这是亚马逊对 EC2 的真正意图。
在 EC2 上运行
fsck
会浪费带宽和处理器能力。这对于用户和亚马逊来说都转化为成本。
<pass>
设置在这里正常吗0
?我相信
1
这是新 Linux 安装的典型情况,但这可能是特定于发行版的。 Amazon 的预构建 EC2 映像也经过预先配置以适合 EC2。最好的运行方式是什么
fsck
- 我应该更改此值还是仅在收到警报时手动运行?两种选择都有优点。如果您经常重新启动,您可能更愿意手动运行它,而不是频繁增加卷的安装计数。
顺便说一句,我不确定根文件系统通常是在安装之后(当fstab
可用时)还是安装之前进行检查。如果是之前,“典型”的 Ubuntu 安装实际上可能会在挂载根文件系统之前执行fsck
in , 。initramfs
在这种情况下,initramfs
EC2 上可能会有所不同,并且可能会忽略建议检查文件系统的任何标志。