Итак, я пытаюсь выполнить флешку SD-карты с 7-Гбайт-изображением, и она длится вечно (например, 15 часов плюс), поэтому я решил настроить pv, чтобы я мог видеть прогресс. Проблема, с которой я сталкиваюсь, заключается в том, что как только я вхожу в команду, появляется сообщение о прогрессе, мешая подсказке пароля, поэтому я не могу продолжить передачу.
Вот код, который я использовал.
Сначала я пробовал это:
sudo dd if=diskimage.img | pv -s 7340M | sudo dd of=/dev/disk2 bs=64k
Как только я нажал enter прогресс появляется, поэтому запрос пароля заполняется этим текстом. Мне было интересно, если это связано с использованием sudo dd для выходной стороны, так как мне не нужно это делать, когда не используете pv, но все примеры, которые я видел, делают это.
Затем я попытался оставить модификатор размера, но все равно это произошло. Наконец я сдался и просто вернулся к использованию dd без pv и просто проверил прогресс с помощью ctrl-t, но мне бы очень хотелось, чтобы pv работал.
Любые и вся помощь приветствуется.
На стороне примечания, когда я использую ctrl -t, это результаты, которые я получаю. (загрузка осуществляется с помощью t -t)
sudo dd if=diskimage.img of=/dev/disk2 bs=64k
load: 1.09 cmd: dd 906 uninterruptible 0.00u 0.17s
176+0 records in
175+0 records out
11468800 bytes transferred in 37.236996 secs (307995 bytes/sec)
load: 0.60 cmd: dd 906 uninterruptible 0.01u 3.92s
4573+0 records in
4572+0 records out
299630592 bytes transferred in 2322.619605 secs (129005 bytes/sec)
Когда команды вокруг труб начинаются одновременно, ваши два sudo dd и pv все запускаются одновременно.
Два sudo dd запрашивают пароль, а pv начинает
Чтобы решить эту проблему, вы можете использовать группировку команд bash и использовать sudo только для bash: [ ! d2]
sudo bash -c '{ dd if=diskimage.img | pv -s 7340M | dd of=/dev/disk2 bs=64K ;}'
Или используйте подоболочку:
sudo bash -c '( dd if=diskimage.img | pv -s 7340M | dd of=/dev/disk2 bs=64K )'
В обоих случаях вам будет предложено ввести пароль sudo один раз, и никакая другая форма переключения пользователя не требуется.