Як я можу побачити файл температури жорсткого диска безпосередньо?


1

Я - загальний користувач, який використовує x86-64 Ubuntu.

Я роблю скрипт bash, щоб зробити перевірку температури. Є дубляж, і я задаю вам питання.

Як я можу побачити файл температури жорсткого диска безпосередньо, як cat / sys / class / thermal / thermal_zone0 / temp? (не схожий на hddtemp, smartctl)

Чи це дурне питання?


1
вони кажуть, що в linux "все це файл", хоча я їм не дуже довіряю, можливо, це не так cyberciti.biz/tips/howto-monitor-hard-drive-temperature.html є команда для виведення температури hdd з SMART даних hdd, але це не є файлом.
barlop

thx, але я знаю це. просто цікаво ... "де знаходиться файл температури жорсткого диска?"
Kwon Jihye

Я не знаю .. Я сподіваюся, що хтось робить .. Інший спосіб, ви могли б отримати відповідь, щоб попросити на мові програмування форум, як це зробити в С, а потім після цього, як C це зробити.
barlop

Відповіді:


2

Не існує "апаратного файлу температури" для жорсткого диска. Такі речі sys/class/thermal/thermal_zone0/temp не є реальними файлами, вони є інтерфейсами до ядра, і коли ви читаєте з них, що відбувається в тому, що ядро ​​виконує код, який зчитує температуру з датчиків.

Тепер жорсткий диск не має спеціального драйвера ядра для зчитування температури, тому у файлі немає відповідного файлу /sys. Замість цього можна використовувати спеціальний протокол ( SMART ), який використовує звичайну обробку диска, доступну з програми, наприклад, через /dev/sd* допитувати мікроконтролер на жорсткому диску, який, крім усього іншого, може зчитувати поточну температуру.

Таким чином, немає іншого способу отримати цю інформацію, крім використання такої програми smartctl або hddtemp.


Ви також дійсно не хочете витрачати дорогоцінні ресурси на контролер жорсткого диска, який постійно запитує його про температуру, коли те, що ви дійсно хочете робити, передає дані. На шинах та пристроях з високою пропускною здатністю, де код вже запущений (наприклад, читання датчиків температури процесора), це є меншою проблемою, оскільки він читає регістр у поточному пристрої, але на жорсткому диску можна ефективно блокувати читання або записуйте протягом декількох мілісекунд, щоб отримати температуру.
Mokubai

так ... що я можу зробити? використовує smartctl або hddtemp? І тоді я задатиму інше питання. Якщо тільки hdd має пройти через s.m.a.r.t, що відрізняється від посилання на ядро, чи потрібно приступити до встановлення hddtemp і smartctl окремо до всіх ОС? (У Ubuntu це була не установка за замовчуванням), якісь інші способи? спасибі за відповідь.
Kwon Jihye

Так, найпростіший спосіб - це просто періодичний виклик smartctl і hddtemp, і так, ви повинні встановити їх (що не повинно бути проблемою). Альтернативно, ви можете, звичайно, витягти код і написати власну програму або плагін, щоб отримати цю інформацію.
dirkt
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.