У меня интересная проблема ...
Друг попросил меня восстановить данные с неисправного внешнего (usb) жесткого диска, что я и делал с помощью утилиты ddrescue. Однако каждые несколько часов диск перестает отвечать (именно поэтому я восстанавливаю данные), и скорость чтения падает до 0. В этот момент, если я отключу его на 5 минут и снова подключу, я могу перезапустить ddrescue и продолжить восстановление , Мне интересно, есть ли какой-нибудь способ автоматизировать это, поскольку скорость чтения довольно низкая, и есть много данных для восстановления.
Я могу выключить диск, используя:
udisks --unmount /dev/sdd1
udisks --detach /dev/sdd
Но я не нашел способа снова раскрутить диск после того, как он был «отсоединен»
Другой проблемы у меня нет Выяснилось, что есть какой-то способ выяснить, когда скорость чтения упала до 0, и пришло время сделать этот цикл питания.
У кого-нибудь есть идеи?
Вы можете попробовать usbctl или uhubctl . Оба инструмента могут выключать / включать USB-порты, если ваш чипсет USB поддерживает это.
После того, как вы выключите и включите порт с внешним диском, он должен быть снова распознан.
Чтобы автоматизировать это, можно либо отслеживать активность процесса с помощью lsof
или аналогичного, либо просто наблюдать за растущим размером выходного файла изображения, и если размер не изменяется через некоторое время, pkill ddrescue
один раз, дождитесь его завершения. затем выключите и снова включите диск и перезапустите процесс восстановления.