Frage Wie bekommen Sie e2fsck um Fortschrittsinformationen anzuzeigen?


Ich führe e2fsk auf einer sehr großen (1TB +) ext3 Platte mit

e2fsck -v /dev/sda1

von RIPLinux gestartet mit PXE.

Ich bekomme

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

und dann eine sehr lange Pause ...

Wie bekomme ich eine Vorstellung von Aktivität?

Idealerweise eine Anzahl abgeschlossener Items und eine Art ETA.


39
2018-03-03 15:25


Ursprung


Es kann jedoch eine Weile nach der "Pass 1: Inodes, Blöcke und Größen überprüfen" Nachricht sein, bevor die Abschlussleiste angezeigt wird. Ich vermute, dass es eine frühe Phase von Pass 1 gibt, die die Abschlussleiste nicht aktualisiert, aber auf wirklich großen Festplatten viel Zeit benötigt. - user2864482


Antworten:


Das -C Flag zeigt eine Fortschrittsanzeige an. Leistungsunterschiede abhängig davon, wie fsck aufgerufen wird.

Und sehr cool, wenn e2fsck läuft bereits, Sie können senden USR1 signalisieren Sie, dass es einen Fortschrittsbalken anzeigt. USR2 stoppen. Beispiel:

killall -USR1 e2fsck

Von 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.

Aus 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.

63
2018-03-03 15:28



Es sieht so aus, als ob deine Manpage für eine andere Version von e2fsck ist. Ich werde eine Antwort von meiner Version veröffentlichen, aber es ist sehr nahe und Ihre Antwort war genug, um mich das richtige Bit der Manpage lesen zu lassen. Vielen Dank! - Tim Abell
Ah, guten Ruf-- Ich habe aktualisiert. Bitte. - Warner
Hmm ... heute habe ich gelernt (das USR-Signal, um diese Ausgabe von fsck zu bekommen). Danke für das Wissen, @Warner. - Bart Silverstrim
Das Flag -USR1 ist von unschätzbarem Wert. Ich habe hier einen Account angelegt, damit ich updaten konnte. - Rajesh J Advani


von Man Seite für Version 1.41

   -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.

also denke ich, die Antwort ist

e2fsck -C 0 /dev/sda1

15
2018-03-03 15:45





ps -ef | grep fsck

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

mit der Prozess-ID,

kill -USR1 5079


2
2017-12-08 01:10



Diese Antwort ist die gleiche wie die angenommene Antwort, mit der Ausnahme, dass keine kontextbezogenen Informationen bereitgestellt werden, die dem Benutzer beim Verständnis helfen Warum Sie folgen Ihren Anweisungen. Für die Zukunft bitte beachten Sie, dass wir Antworten bevorzugen, die sowohl das Wie und das Warum einer Lösung (das Prinzip "Teach a Man to fish"). - voretaq7


Warum?

BSD Systems und ihre Nachkommen haben das Signal SIGINFO. Es bewirkt, dass Programme ihren aktuellen Status an die Konsole ausgeben. Viele grundlegende BSD-Tools kennen dieses Signal und unterstützen es. Sie können dieses Signal mit Strg + T an einen aktuellen Prozess senden.

SysV-Systeme haben kein solches Signal und auch keine Strg + T. Einige der Linux-Tools unterstützen stattdessen SIGUSR1. Ich weiß nur über "dd" und "e2fsck", aber es kann mehr geben. Es gibt keine Strg +? Verknüpfung, um es zu senden, also müssen Sie es manuell tun, indem Sie "Kill -USR1" auf der PID des Prozesses verwenden.

Die meisten anderen Programme reagieren auf SIGUSR1 genauso wie sie auf SIGTERM (exit) reagieren. Senden Sie dieses Signal also nur, wenn Sie wissen, dass es unterstützt wird.


2
2018-06-20 14:40