e2fsckで進捗情報を表示するにはどうすればよいですか?


42

私は非常に大きな(1TB +)ext3ディスクでe2fskを実行しています

e2fsck -v /dev/sda1

PXEでブートされたRIPLinuxから。

私は得る

e2fsck 1.41.6 (30-May-2009)
/dev/sda1 contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes

その後、非常に長い一時停止...

アクティビティのアイデアを取得するにはどうすればよいですか?

理想的には、完了したアイテムの数と合計および何らかのETAの数。


ただし、「パス1:iノード、ブロック、およびサイズを確認しています」というメッセージが表示されてから、完了バーが表示されるまでしばらく時間がかかる場合があります。完了バーを更新しないパス1の初期段階があると思いますが、実際に大きなディスクではかなりの時間がかかります。
user2864482 14

回答:


70

-Cフラグは、プログレスバーが表示されます。fsckの呼び出し方法によるパフォーマンスの違い。

また、e2fsck既に実行されている場合は非常にクールでUSR1、進行状況バーの表示を開始するための信号を送信できます。 USR2止まる。例:

killall -USR1 e2fsck

FSCK(8)から:

   -C     Display completion/progress bars for those filesys-
          tems  checkers (currently only for ext2) which sup-
          port them.   Fsck will manage the filesystem check-
          ers  so  that  only  one  of  them  will  display a
          progress bar at a time.

E2FSCK(8)から:

   -C fd  This  option  causes  e2fsck  to  write  completion
          information  to  the  specified  file descriptor so
          that the progress of the filesystem  check  can  be
          monitored.   This  option is typically used by pro-
          grams  which  are  running  e2fsck.   If  the  file
          descriptor specified is 0, e2fsck will print a com-
          pletion bar as it goes about  its  business.   This
          requires  that e2fsck is running on a video console
          or terminal.

2
あなたのmanページはe2fsckの異なるバージョンのものであるようです。私のバージョンから回答を投稿しますが、非常に近いので、manページの適切な部分を読むにはあなたの回答で十分でした。どうもありがとう!
ティムアベル

ああ、いい電話だ-更新した。どういたしまして。
ワーナー

4
うーん...今日私は学びました(fsckからその出力を取得するためのUSRシグナル)。@Warner、知識をありがとう。
バートシルバース

1
-USR1フラグは非常に貴重です。賛成できるように、ここでアカウントを作成しました。
ラジェシュJアドヴァニ14

17

バージョン1.41のmanページから

   -C fd  This option causes e2fsck to write completion information to the specified file descriptor so that the progress of the
          filesystem  check  can be monitored.  This option is typically used by programs which are running e2fsck.  If the file
          descriptor number is negative, then absolute value of the file descriptor will be used, and the  progress  information
          will  be  suppressed  initially.  It can later be enabled by sending the e2fsck process a SIGUSR1 signal.  If the file
          descriptor specified is 0, e2fsck will print a completion bar as it goes  about  its  business.   This  requires  that
          e2fsck is running on a video console or terminal.

だから答えは

e2fsck -C 0 /dev/sda1

3

ps -ef | grep fsck

  5079  5007 47 00:55 pts/1    00:08:25 /sbin/fsck.ext3 -yv /dev/hda2

プロセスID

キル-USR1 5079


2
この回答は、ユーザーが指示に従っている理由を理解するのに役立つコンテキスト情報を提供しないことを除いて、受け入れられた回答と同じです。将来的には、解決策の方法と理由の両方を説明する回答をお勧めします(「魚に魚を教える」原則)。
voretaq7

3

どうして?

BSDシステムとその子孫にはSIGINFOシグナルがあります。現在の状態をコンソールに出力するプログラムを作成します。多くの基本的なBSDツールは、このシグナルを知っており、サポートしています。Ctrl + Tを使用して、この信号を現在のプロセスに送信できます。

SysVシステムには、そのような信号はなく、Ctrl + Tもありません。一部のLinuxツールは、代わりにSIGUSR1をサポートしています。私は「dd」と「e2fsck」についてのみ知っていますが、もっとあります。Ctrl +はありませんか?ショートカットを送信するため、プロセスのPIDで「kill -USR1」を使用して手動で実行する必要があります。

他のほとんどのプログラムは、SIGTERM(終了)に反応するのと同じ方法でSIGUSR1に反応するため、サポートされていることがわかっていない限り、このシグナルを送信しないでください。

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