web-dev-qa-db-ja.com

「複数要求されたブロックを複製する<y>」に対して「はい」と答えるべきですか? e2fsckを実行するとき?

E2fsck -cck/dev/mapper/xxxを実行すると、

   has 487 multiply-claimed block(s), shared with 84 file(s): 
    ... (inode #221446306, mod time Tue Feb 20 19:48:38 2018) 
    ... (inode #221446305, mod time Tue Feb 20 19:48:32 2018) 
    ... (inode #221446304, mod time Tue Feb 20 19:48:38 2018) 
    ... (inode #221446303, mod time Tue Feb 20 19:48:12 2018) 
    ... (inode #221446302, mod time Tue Feb 20 19:59:04 2018) 
    ... (inode #221446300, mod time Tue Feb 20 19:47:52 2018) 
Clone multiply-claimed blocks<y>?

「はい」を押し続けると、どのような結果になる可能性がありますか。完全なデータ損失はありますか?いいえで続行すると、結果はどうなりますか?

8
john test

多重クレームブロックは、複数のファイルで使用されるべきではないときに使用されるブロックです。その結果、影響を受けるブロックの1つでこれらのファイルの1つに加えられた変更は、ブロックを共有するファイルへの変更としても表示されますが、これは望ましくありません。 (ハードリンクは別のシナリオであり、ここには表示されません)。

ここでデータの損失がある場合、それはすでに発生しており、簡単に元に戻すことはできません。しかし、それは悪化する可能性があります...

fsckの質問に「いいえ」と答えると、ファイルシステムは不整合な状態のままになります。 「はい」と答えると、fsckは共有ブロックをコピーして1つのファイルに再割り当てできるようにします。ここでは84個のファイルが含まれているため、各ブロックは83回コピーされます。予想どおり、ファイルへの変更は個々のファイルに限定されるため、これにより将来のデータ損失が回避されます。 ただしブロックの複製には、現在使用されていないように見えるが、保持したいデータが含まれている可能性がある他のブロックのデータの上書きが含まれる場合があります。

したがって、従来のデータ回復のアドバイスが適用されます。ファイルシステムからデータを回復する必要があると思われる場合は、触れないでください。別のディスクにそのコピーを作成し、そのデータに取り組んでデータを回復します。これが望ましい場合のシナリオは次のとおりです。以前はファイルAとBは別々でしたが、どこかで破損が発生したため、ファイルBはファイルAとブロックを共有します。ファイルBの古いブロックを上書きしたものが何もない場合、データはまだそこにありますが、アクセスできなくなります。これらのブロックを上書きするものが何もない限り、それらは(おそらくかなりの労力で)リカバリーできます。しかし、いったん上書きされると、消えてしまいます。ここで、ファイルAから共有ブロックを複製すると、古いデータが上書きされる可能性があります...

要約すると、バックアップがある場合、またはデータを簡単に復元できることがわかっている場合は、「はい」と答えます。それ以外の場合は、fsckを停止し、ファイルシステムを別の場所にコピーします。システムをバックアップして実行する必要がある場合は、再度fsckを実行して「はい」と答えます(そしてコピーからデータを復元します)。 。データが重要で回復が必要な場合は、ファイルシステムを別の場所にコピーしますが、元のシステムはそのままにしておきます。システムをバックアップして実行する必要がある場合は、fsck

11
Stephen Kitt