Как вы получаете e2fsck, чтобы показать информацию о прогрессе?
Я запускаю e2fsk на очень большом (1 ТБ +) диске ext3 с
e2fsck -v /dev/sda1
из RIPLinux загружается с PXE.
я получил
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.
4 ответа
-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.
Со страницы руководства для версии 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.
так что я думаю, что ответ
e2fsck -C 0 /dev/sda1
ps -ef | grep fsck
5079 5007 47 00:55 pts/1 00:08:25 /sbin/fsck.ext3 -yv /dev/hda2
с идентификатором процесса,
убить -USR1 5079
Зачем?
Системы BSD и их потомки имеют сигнал SIGINFO. Это заставляет программы выводить их текущее состояние на консоль. Многие базовые инструменты BSD знают об этом сигнале и поддерживают его. Вы можете отправить этот сигнал текущему процессу, используя Ctrl+T.
Системы SysV не имеют такого сигнала и Ctrl + T тоже. Некоторые из инструментов Linux поддерживают SIGUSR1. Я знаю только о "dd" и "e2fsck", но их может быть больше. Там нет Ctrl+? ярлык для отправки, так что вы должны сделать это вручную, используя "kill -USR1" в pid процесса.
Большинство других программ будут реагировать на SIGUSR1 так же, как они реагируют на SIGTERM (выход), поэтому не отправляйте этот сигнал, если вы не знаете, что он поддерживается.