web-dev-qa-db-ja.com

リモートサーバーで自動化されたfsckを実行する

Dfについて別の質問がありましたが、パーティションをfsckで実行する必要があるという結論に達しました。これについて読んでいるので、可能であればアドバイスをお願いします。

状況はこのようなもので、サーバーへの物理的なアクセスがなく、fsckを実行したいと思います。

私が読んだものからtouch /forcefsckする必要があり、再起動するとfsckが実行されます。

私の質問は、基本的に、fsckはどのような引数で実行されるのでしょうか?エラーなどを修正するためにユーザー入力が必要ですか?

実行後、何が起こったかのログが保存されますか?

これがどのように実行されたのか、とにかく再起動時にそれを強制するのは完璧でしょう?

fsck -v -p /machine/disk/p1 2>&1 > fscklog.txt

また ここ 彼らはこれを説明します:

また、debianおよびubuntuのようなdebian派生物では、リモートサーバーで/ etc/default/rcSを編集し、起動時間fsckに「-y」を追加する「FSCKFIX = yes」を設定することをお勧めします。これにより、リスクが発生しなくなります。リモートサーバーがスタックし、誰かがコンソールにログインしてfsckを実行するのを待っています。

しかし、存在しないように見えるCentosでは

現時点ではsshにしかアクセスできないので、とてもうるさいです。

サーバー上のディスクとマウントされたボリュームに関する情報は次のとおりです。 http://Pastebin.centos.org/33314

ありがとう。

7
GriffinHeart

わかりました、それで私はあなたがこれをすることができるCentOSで見つけました:

touch /forcefsck
echo -n "-ys" > /fsckoptions

どのfsckを実行したかをログに記録するには、より難しいルートをたどる必要がありました。
警告:これは自己責任で行ってください。問題が発生した場合にどのような影響があるかについては、私にはわかりません

/etc/rc.sysinit(バックアップすることを忘れないでください)を編集して、目的の動作を取得しました。

500行目から(-Cを-Vに変更すると、プログレスバーが削除されます)

if [ "$BOOTUP" = "color" ]; then
       fsckoptions="-C $fsckoptions"
else
       fsckoption="-V $fsckoptions"

648行目から、fsckを実行するブロックを次のように変更しました。

outputtt="$(fsck -T -t noopts=_netdev -A $fsckoptions)"
mount -n -o remount,rw /
echo $outputtt > /var/log/fsckoutput
mount -n -o remount,ro /

小さな特典の1つは、新しい行を保存しないことですが、緊急に必要なときに読み取り可能です。
すべての助けに感謝します。

6
GriffinHeart

CentOS/Redhatの「autofsck」設定は、他のディストリビューションとは異なる方法で設定します。このメーリングリストの投稿で説明されているように、/ etc/sysconfig/autofsckを必要な設定で編集する必要があります: http://lists.centos.org/pipermail/centos/2006-November/029837.html

4
Cory J