Intereting Posts
Как grep для 2 строк (условие AND) внутри блока, которые не находятся в одной строке, а затем найти что-то еще в этом же блоке Работа в каталоге symlink идентична работе непосредственно в каталоге? Запросить все пути во всех пакетах / репозиториях без установки? Почему «rmdir -p -ignore-fail-on-non-empty» терпит неудачу при столкновении с $ HOME? Как предотвратить использование Apache слишком большого количества ОЗУ Как найти рабочую среду GUI из терминала? Почему ни один из моих (установленных) принтеров не указан, когда я нажимаю Ctrl + P? Найти команду с несколькими условиями Как создать зашифрованный, файловой системы-агностик, монтируемый том? Подключение к Wi-Fi в CoreOS? Как узнать, какой загрузчик вы используете в черном небольшом дистрибутиве linux? Могу ли я сделать низкоуровневые изменения на корневом fs, установленном RO? Зачем назначать MAC и IP-адреса на интерфейсе Bridge Как запустить приложение в Wine из окна терминала Моему сценарию нужен доступ для записи в / dev / sdX. Как избежать запуска его как root?

Linux заблокирован на df

Я испытываю некоторые проблемы с внешним жестким диском. Я боюсь, что он начинает повреждаться или повреждаться: S.

В приложении я использую statfs для извлечения информации об этом внешнем жестком диске:

const char *mountPoint = "/media/hdd"; struct statfs s; statfs(mountPoint, &s); 

Однако время от времени я заметил в журналах приложений, что вся система Linux заблокирована (фактически, из-за того, что некоторые события не регистрируются в правильные времена). Я заметил это сам, набрав команду «df» в одном из этих «критических» моментов. Эффект заключается в том, что все разделы отображаются правильно, за исключением раздела жесткого диска, линия которого длится несколько секунд до появления.

Кроме того, жесткий диск отформатирован как NTFS, и я использую ntfs-3g для работы с ним.

… и последнее, но не менее важное, я обнаружил следующую проблему в dmesg:

 klogd: page allocation failure: order:0, mode:0x20 CPU: 0 PID: 1660 Comm: klogd Not tainted 3.12.20-smp #6 Hardware name: PhoenixAward 945GS/945GS, BIOS 6.00 PG 02/03/2015 [...] Call Trace: [...] [<f866806e>] e1000_alloc_rx_buffers+0x18e/0x1e0 [e1000e] [<c1a30387>] ? napi_gro_receive+0x67/0x90 [<f8666200>] e1000_clean_rx_irq+0x220/0x340 [e1000e] [<f866cc5b>] e1000e_poll+0x7b/0x2e0 [e1000e] [...] 

Я хотел бы знать, существует ли неблокирующий способ получения информации о подключенных устройствах. В этом случае мне нужен общий размер устройства и доступное или используемое дисковое пространство.

Возможно, эта проблема не связана исключительно с «df» или доступом к данным volumen, но она больше связана с функциями ОС Linux, такими как выделение памяти.

Любая помощь была бы благодарна. Заранее спасибо.

Напишите свою логику, чтобы извлечь параметры устройства и назначить его потоку / процессу. Контролируйте рабочий поток / процесс из родительского процесса и убейте его после подходящего таймаута, если он висит.