再起動時にfsck.ext4を強制するが、実際には「強制」


21

Ubuntu 10.04サーバーの1つで問題が発生しています。実行fsck.ext4 -n /dev/sda5すると、空きiノード数、空きブロック数などにエラーがあることがわかります。

私が試してみました:

touch /forcefsck

また試してみました:

shutdown -rF now

それでも、再起動後にエラーが表示されます。

また、eeePCネットブックUbuntu 10.10を確認したところ、同じ問題が発生しています!

再起動時に「/」ファイルシステムの本当に「強制」「強制」「ファイルシステムを真剣に修正」fsckを強制するにはどうすればよいですか?

明確化:fsck.ext4 -nエラーがあるかどうかを確認するためにマウントされたファイルシステムであるため、私は実行します。これはあることを教えてくれます。起動プロセス中の30マウントごとの自動fsck は、ルートファイルシステムのエラーを正確に処理するためのものだと思いました。しかし、私の場合はそうしません。LiveCDで再起動してエラーを修正してから再起動することもできますが、それはライブサーバーの深刻なダウンタイムです。再起動し、自動fsckを実行し、起動を続行することは、ライブサーバー上ではるかに持続可能であり、適切な動作であると考えています。

追加情報:出力は次のとおりです。autofsckで修正できるように見えますよね?

root@server:~# fsck.ext4 -n /dev/sda5
e2fsck 1.41.11 (14-Mar-2010)
Warning!  /dev/sda5 is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.
/dev/sda5 contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Free blocks count wrong (1849368, counted=1948909).
Fix? no

Free inodes count wrong (545504, counted=552134).
Fix? no


/dev/sda5: ********** WARNING: Filesystem still has errors **********

/dev/sda5: 116752/662256 files (0.2% non-contiguous), 795324/2644692 blocks

使用しているUbuntuサーバーのバージョンは何ですか?
crncosta

10.04。質問を編集します。
UrkoM

実際にそれを行うことはできないと思います。実際には、手動でチェックを行う方が良いかもしれません。
RolandiXor

1
申し訳ありませんが、まだ詳細が必要です。マウントされたファイルシステムでfsckを実行していますか?LiveCDから起動して、もう一度確認できますか(/ dev / sda5がマウント解除されています)?
crncosta

ファイルシステムではなく、ハードドライブが壊れている可能性はありませんか?その場合、ext4はエラーを修正していないだけでなく、いくつかの不良セクタがあるだけであると予想されます。
ステファノパラッツォ

回答:


10

e2fsckのmanページから:

「一般に、マウントされたファイルシステムでe2fsckを実行することは安全ではないことに注意してください。唯一の例外は、-nオプションが指定され、-c、-l、または-Lオプションが指定されない場合です。ただし、安全であってもファイルシステムがマウントされている場合、e2fsckによって出力される結果は無効です。e2fsckがマウントされているファイルシステムをチェックするかどうかを尋ねる場合、唯一の正しい答えは '' no ''です。他の方法でこの質問に答えることを検討すべきです。」

そのため、-nオプションを使用してもfsckでマウントされたFSをチェックすると、結果がまったく有効でない場合があります。マウントされたファイルシステムをチェックしないでください。Live-CD / Live-USBを使用します。

マウント中にファイルシステムをチェックしないと、なぜ使用touch /forcefsckする必要があるのか​​わかりませんが、単にマウントを解除して修正することができます。しかし、それが事実であり、修正後もFSにエラーが残っている場合は、次の使用を検討できます:

e2fsck -cy /dev/sda5

これにより、不良ブロックと呼ばれるハードドライブ関連の問題が修正されます(これには時間がかかります)。

マウントされたファイルシステムを確認したい場合、どうすればよいかわかりませんが、別の質問を作成する必要があると思います。


あなたは正しい、ファイルシステムがマウントされています。そしてもちろん、アンマウント時にfsckを実行する必要があります。ただし、マウント中にfsck -nを実行して、変更を加えずに確認すると、エラーがあることがわかります。そして、再起動時のfsckはそれらを修正するべきではありませんか???
UrkoM

最初の文であなたが言ったことに気付いた:マウントされたファイルシステムではなぜfsck -nは有効ではないのか?マウントされたファイルシステムにエラーがあるかどうかを信頼できる方法で確認するにはどうすればよいですか?
-UrkoM

「マウントされたファイルシステムでe2fsckを実行することは一般に安全ではないことに注意してください。唯一の例外は、-nオプションが指定され、-c、-l、または-Lオプションがただし、安全であっても、ファイルシステムがマウントされている場合、e2fsckによって出力される結果は無効です。e2fsckが、マウントされているファイルシステムをチェックするかどうかを尋ねる場合、唯一の正しい答えは ''ですいいえ」。自分が何をしているかを本当に知っている専門家だけが、他の方法でこの質問に答えることを検討すべきです。」
ニャミオウガレアンスロペ

マウントされたファイルシステムを確認する方法がわかりません。別の質問を作成する必要があるかもしれません。
ニャミオウガリアンスロポ

これらの最後の2つのコメントを回答に追加できますか?それから私はそれを受け入れます。私はそれを知らなかったので、それが理由です... fsck -nがジャーナルを処理しないためだと思うので、ファイルシステムの状態はそこに保持されている最新の変更を見ずに矛盾しています。
UrkoM

24

私はこれが本当に古いスレッドであることを知っていますが、最近この問題を解決する必要があったため、ブートアップ中にfsckで見つかった問題をOSに強制的に修正する方法を投稿したかった(12.04)。

コマンドを実行する必要があります sudo touch /forcefsck。これにより、次回の起動時にfsckが実行されます。/var/log/boot.logでfsckの結果を確認できます。

ただし、fsckが見つけたものをすべて修正する保証はありません。これを行うには、ファイル/ etc / default / rcSを編集する必要があります。そのファイルの最後に行があります:

FSCKFIX=no

これを次のように変更する必要があります。

FSCKFIX=yes

これは、-yオプションを指定してfsckを実行するのと同じ効果があり、実装可能なすべての修正を強制し、ユーザーの操作を要求しません。

これにより、OPが要求したようにfsckを実行できるようになります。特にリモートシステムを使用している場合、ライブディスクからの起動は常に可能とは限りません。


1
Ubuntu EC2インスタンスでこのエントリをsudo touch /forcefsckand sudo shutdown -rコマンドとともに編集すると、ファイルシステムの問題とログイン時のチェック警告が正常に解決されました。簡単で中断しない-乾杯。
c.gutierrez

サーバーフォールトでも同じ質問が行われましたが、この答えはUbuntu 14.04システムで私にとってもうまくいきました。ただ実行しsudo touch /forcefsckてから再起動しませんでした。編集rcSが必要でした。
テームLeisti

12
sudo touch /forcefsck
sudo reboot

タイプミスがあります。/forcefcskに触れています。「c」と「s」が入れ替わっています。fsckはFileSystemChecKの略です。


ルートファイルシステムは修正するエラーのために読み取り専用でマウントされているため、これは私には機能しませんfsck!鶏肉と卵の問題は、liveCDまたはドライブを別のマシンに引き込むことによってのみ解決できます。
–HDave

3

パーティションが使用中のため、修復する/にfsckを強制することはできません。別のパーティションまたはライブCDからチェックを実行してください。


2
非常に本当ですが、パーティションが使用される前に、正確に「/」のエラーを修正できるように、ブート時の自動fsckを実行する必要があります。それ以外の場合、ポイントは何ですか?
UrkoM

3
チェックは使用前に行われると思いますが、それは単なるアドバイザリチェックです。エラーの修正方法を決定するのはあなた次第です。簡単なチェックは、/ etc / fstabを見ることです。「/」は、他のパーティションとは異なるチェックを取得します。
チャーリーtca

ルートがピボットされる前に発生しますか?すなわち。初期RAMディスク。
mckenzm

1

次の方法で自動的に改訂を行うことができます。

Tune2fs -c 5 -i 10 / dev / sda1

-cマウントの最大数は、実行前にあるfsckと、-i実行する前に、日の最大数ですfsck

この場合、5回のマウントごと、または10日ごとのいずれか早い方に行われます。

私は2台のコンピューターを所有しています。1台はLinux SuSE 13.2で、もう1台はLinux Mint 18.0で、両方とも完全に動作します。


Tune2fs -c 5 -i 10 / dev / sda1ここで、-cはfsckを実行する前の最大マウント数です。-iはfsckを実行する前の最大日数です。この場合、5回のマウントごと、または10日ごとのいずれか早い方に行われます。私は2台のコンピューターを持っています。1台はLinux SuSE 13.2で、もう1台はLinux MInt 18.0で、両方とも完全に動作します。
hk3jld

Tune2fs -c 5 -i 10 / dev / sda1ここで、-cはfsckを実行する前のマウントの最大数です。ここで、-iはfsckを実行する前の最大日数です。この場合、5回のマウントごと、または10日ごとのいずれか早い方に行われます。私は2台のコンピューターを持っています。1台はLinux SuSE 13.2で、もう1台はLinux MInt 18.0で、両方とも完全に動作します。英語はわかりませんが、翻訳者を使用しています。トレーニングがうまくいくことを願っています
hk3jld

1
Ubuntuでも動作しますか?
ジョージウドセン

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.