E2fsck'in ilerleme bilgilerini göstermesini nasıl sağlarsınız?


42

E2fsk ile çok büyük (1TB +) bir ext3 disk üzerinde çalışıyorum

e2fsck -v /dev/sda1

RIPLinux PXE ile açıldı.

alırım

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

ve sonra çok uzun bir duraklama ...

Bir etkinlik hakkında nasıl bir fikir edinebilirim?

İdeal olarak, toplam ve bir tür ETA'ya karşılık gelen tamamlanmış maddelerin sayısı.


Ancak, tamamlama çubuğu görünmeden önce "Geçiş 1: İnode'ları, blokları ve boyutları kontrol etme" mesajından sonra bir süre olabilir. Tamamlama çubuğunu güncellemeyen erken bir Pass 1 aşaması olduğundan şüpheleniyorum, ancak gerçekten büyük disklerde çok fazla zaman alıyor.
user2864482

Yanıtlar:


70

-CBayrak bir ilerleme çubuğu görüntüler. Fsck’in nasıl adlandırıldığına bağlı olarak performans farkları.

Ve çok havalı, e2fsckzaten çalışıyorsa, USR1ilerleme çubuğunu göstermeye başlaması için bir sinyal gönderebilirsiniz . USR2durdurmak için. Örnek:

killall -USR1 e2fsck

FSCK'den (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’den (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
Görünen o ki adam sayfanız e2fsck’in farklı bir sürümü için. Sürümümden bir cevap göndereceğim, ancak çok yakın ve cevabınız bana man sayfasının doğru bölümünü okumam için yeterliydi. Çok teşekkürler!
Tim Abell

Ah, güzel görüşme-- Ben güncellendi. Rica ederim.
Warner

4
Hmm ... bugün öğrendim (bu çıkışı fsck'ten almak için USR sinyali). Bilgi için teşekkürler, @Warner.
Bart Silverstrim

1
-USR1 bayrağı paha biçilmezdir. Burada bir hesap yarattım, böylece oy verebildim.
Rajesh J Advani,

17

man sayfasından 1.41 sürümü için

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

bu yüzden cevabı sanırım

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

süreç kimliği ile,

öldür -USR1 5079


2
Bu cevap, kabul edilen cevap ile aynıdır, ancak kullanıcının talimatlarınızı neden takip ettiğini anlamalarına yardımcı olacak bağlamsal bilgi sağlamaz . Gelecek için biz, Nasıl ve her iki açıklamak cevapları tercih ettiği notu memnun Neden bir çözümün ( "balık erkeğe öğretmesi" ilkesi).
voretaq7

3

Neden?

BSD Sistemleri ve onların soyundan gelenlerin SIGINFO sinyali var. Programların geçerli durumlarını konsola çıkarmasını sağlar. Birçok BSD aracı bu sinyali biliyor ve destekliyor. Bu sinyali Ctrl + T tuşlarını kullanarak geçerli bir işleme gönderebilirsiniz.

SysV sistemlerinde böyle bir sinyal yoktur ve Ctrl + T de yoktur. Linux araçlarından bazıları SIGUSR1'i destekliyor. Sadece "dd" ve "e2fsck" hakkında bilgim var ama daha fazlası olabilir. Ctrl + yok ​​mu? göndermek için kısayol olduğundan, işlemin pidinde "kill -USR1" i kullanarak elle yapmanız gerekir.

Diğer çoğu program SIGUSR1’e SIGTERM’e (çıkış) tepki verdikleri gibi tepki verir, bu yüzden desteklenmediğini bilmediğiniz sürece bu sinyali göndermeyin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.