我遇到了一些驱动器错误,因此我跑去e2fsck -cckty
寻找 2TB 驱动器上的坏块。一开始发现了一些坏块,但是一天半了还没有发现。 e2fsck
已运行 40 小时,已完成 53%。如果我Ctrl-C它,它会更新文件系统中的坏块信息以反映它在开始时发现的坏块吗?
答案1
我看到下面的答案这里。
启动时的文件系统检查通常是只读的,直到发现问题为止,然后它会在进行任何更改之前提示您,因此可以安全地进行干预。
但是很有可能将其设置为自动修复(对于需要在断电后恢复的服务器来说并不罕见),因此除非您确定您的系统没有以这种方式配置,否则让它运行以确保安全完成。
大多数 fsck 程序都是以这样的方式编写的:所做的任何更改都与原子尽可能,他们会清理(完成或回滚任何当前更改)在响应 TERM 或 INT 信号之前(SIGINT 是按下 ctrl+c 时发送到活动进程的信号),因此即使是主动写入 fsck 也应该可以安全地中断,但我不建议冒险 - 比对不起!
答案2
据我所知,没有。如果我正确理解源代码,e2fsck
运行badblocks
,读取它的输出,然后在badblocks
完成后一次运行中更新坏块索引节点。如果您Ctrl- C,则不应到达此路径。
可行的方法是badblocks
显式终止生成的进程,因为e2fsck
似乎不关心退出代码,因此它将采用到目前为止所输出的内容并对其进行处理,但不能保证这会起作用。