Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
S.M.A.R.T.のソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
S.M.A.R.T.
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:ストレージ]] [[en:S.M.A.R.T.]] [[fr:S.M.A.R.T.]] [[ru:S.M.A.R.T.]] [[Wikipedia:ja:Self-Monitoring, Analysis and Reporting Technology|S.M.A.R.T.]] (Self-Monitoring, Analysis, and Reporting Technology) は、最近のストレージデバイスの多くに内蔵されている補助コンポーネントであり、これによってデバイスは動作の健康状態を監視、保存、そして分析します。ソフトウェアは、収集された統計 (温度、代替処理されたセクタ数、シークエラーなど) を用いてデバイスの健康状態の計測、デバイスの障害の予測、危険な値に達した際の通知を行うことができます。 == Smartmontools == smartmontools パッケージには、ストレージデバイスの分析と監視のためのユーティリティプログラム {{ic|smartctl}} と {{ic|smartd}} が含まれています。これらのツールを使用するには {{Pkg|smartmontools}} パッケージを[[インストール]]してください。 これらのツールを効果的に使用するには、各ストレージデバイスで SMART サポートが利用可能であり、かつ有効化されていなければなりません。[[#smartctl]] を使うことで SMART サポートを確認したり有効化したりすることができます。それが済んだら、手動で [[#テストを実行する]] ことも [[#テスト結果を表示する]] こともできますし、[[#smartd]] を使って自動的にテストを実行してメールで通知することもできます。 === smartctl === smartctl は、「ほとんどの ATA/SATA 及び SCSI/SAS ハードドライブやソリッドステートドライブに組み込まれている Self-Monitoring, Analysis and Reporting Technology (SMART) システムを制御する」コマンドラインツールです。 {{ic|-i}}/{{ic|--info}} オプションは、デバイスに関する様々な情報を出力します (SMART が利用可能で有効であるかどうかに関する情報を含む): {{hc|# smartctl --info /dev/sda {{!}} grep 'SMART support is:'| SMART support is: Available - device has SMART capability. SMART support is: Enabled }} SMART が利用可能であるが、有効でない場合、有効化することができます: # smartctl --smart=on /dev/''device'' 場合によっては、デバイスのタイプを指定する必要があります。例えば、{{ic|1=--device=ata}} は、デバイスのタイプが ATA であることを smartctl に伝え、smartctl がそのデバイスに SCSI コマンドを発行してしまうことを防ぎます。 ==== テストを実行する ==== デバイスが実行できる自己テストには3種類あります (どのテストもユーザデータに対して安全です): * Short: デバイスの問題を検出する可能性の高いテストを実行します。 * Extended 或いは Long: このテストは short チェックと同じですが、時間制限が無く、完全なディスクサーフェス検査を行います。 * Conveyance: デバイスの輸送中にダメージが発生したかどうかを調べます。 {{ic|-c}}/{{ic|--capabilities}} フラグは、デバイスがサポートしているテストと各テストの推定実行時間を出力します。例えば: {{hc|# smartctl -c /dev/sda| ... Short self-test routine recommended polling time: ( 1) minutes. Extended self-test routine recommended polling time: ( 74) minutes. Conveyance self-test routine recommended polling time: ( 2) minutes. ... }} テストを実行するには {{ic|-t}}/{{ic|1=--test=''test_name''}} フラグを使用してください: # smartctl -t short /dev/''device'' # smartctl -t long /dev/''device'' # smartctl -t conveyance /dev/''device'' ==== テスト結果を表示する ==== {{ic|-H}} フラグでデバイスの全体的な健康状態を表示できます。「デバイスが健康状態に問題があると報告した場合、デバイスがすでに故障しているか、24時間以内にデバイス自体が故障することが予測されていることを意味します。この場合 […] 可能な限り早くディスクからデータを取り出し、別の安全な場所に移してください。」 # smartctl -H /dev/''device'' 最近のテスト結果の一覧やデバイスの詳細な情報を表示することもできます: # smartctl -l selftest /dev/''device'' # smartctl -a /dev/''device'' ==== 全ディスクの属性表を生成する ==== #!/bin/bash function drives_csv { declare -A drive_values for d in `smartctl --scan -d scsi | cut -d' ' -f1`; do drive_values["-Drive-----------------"]="${drive_values[-Drive-----------------]},$d" for l in `smartctl -A $d | grep ATTRIBUTE_NAME -A30 | grep -v ATTRIBUTE_NAME | column -H1,3,4,5,6,7,8,9,11,12,13,14,15 -t -o, | sed 's/ //g'`; do key=`echo $l | cut -d',' -f1` value=`echo $l | cut -d',' -f2` existing=${drive_values["$key"]} drive_values["${key}"]="${existing},${value}" #~ echo "${key},${drive_values[$key]}" done done for key in "${!drive_values[@]}"; do echo "${key}${drive_values[$key]}" done | sort } drives_csv | column -s, -t === smartd === smartd デーモンは SMART の状態を監視して、何か問題が発生したら通知します。このデーモンは systemd で管理でき、設定ファイル {{ic|/etc/smartd.conf}} で設定できます。設定ファイルの構文は難解であり、この wiki ページではクイックリファレンスしか提供しません。より完全な情報は設定ファイル内の例やコメントを読んだり、{{man|5|smartd.conf}} を読んだりしてください。 ==== デーモン管理 ==== デーモンの起動、ステータスの確認、システムブート時の自動起動、最近のログファイルエントリの確認を行うには、{{ic|smartd.service}} systemd ユニットを[[起動/有効化]]してください。 smartd は通常の [[systemctl]] と [[journalctl]] のコマンドすべてを尊重します。 ==== 管理すべきデバイスを定義する ==== 全ディスク上のすべての SMART エラーを監視するには、以下の設定を設定ファイルに追加しなければなりません: {{hc|/etc/smartd.conf|DEVICESCAN -a}} 注意点として、これはデフォルトの ''smartd'' 設定であり、{{ic|-a}} パラメータ (デフォルトのパラメータ) は省略できます。 {{ic|/dev/sda}} と {{ic|/dev/sdb}} のすべての SMART エラーを監視し、他のデバイスすべてを無視するには: {{hc|/etc/smartd.conf| /dev/sda -a /dev/sdb -a }} 外部接続のディスクのすべての SMART エラーを監視する場合、ドライブの {{ic|/dev/sd''X''}} は再起動後に変化するかもしれないので、ドライブの UUID を ''smartd'' に渡すのが賢明です。 まず、監視すべきディスクの UUID を手に入れなければなりません。{{ic|ls -lah /dev/disk/by-uuid/}} を実行して、監視したいディスクを見つけてください: {{hc|$ ls -lah /dev/disk/by-uuid/| lrwxrwxrwx 1 root root 9 Nov 5 22:41 820cdd8a-866a-444d-833c-1edb0f4becac -> ../../sde lrwxrwxrwx 1 root root 10 Nov 5 22:41 b51b87f3-425e-4fe7-883f-f4ff1689189e -> ../../sdf2 lrwxrwxrwx 1 root root 9 Nov 5 22:42 ea2199dd-8f9f-4065-a7ba-71bde11a462c -> ../../sda lrwxrwxrwx 1 root root 10 Nov 5 22:41 fe9e886a-8031-439f-a909-ad06c494fadb -> ../../sdf1 }} USB ディスクは /dev/sde に接続されていることが分かっています。{{ic|/dev/disk/by-uuid/}} のパスを使って ''smartd'' にこのディスクを監視するように指示します: {{hc|/etc/smartd.conf| /dev/disk/by-uuid/820cdd8a-866a-444d-833c-1edb0f4becac -a }} 注意点として、''smartd'' を機能させるために {{ic|-d removable}} も必要である場合があります。 これで、{{ic|/dev/sd''X''}} のパスが再起動によって変化しても、USB ディスクが監視されるようになりました。 ==== 潜在的な問題を通知する ==== 障害や新しいエラーが発生した場合にメールを送信させるには、{{ic|-m}} オプションを使用してください: {{hc|/etc/smartd.conf| DEVICESCAN -m address@domain.com }} (root メールアカウントではなく) 外部にメールを送信するには、MTA (Mail Transport Agent) か MUA (Mail User Agent) のインストール・設定が必要です。一般的な MUA は [[msmtp]] と [[Postfix]] ですが、おそらく最も簡単な [[dma]] で十分でしょう。一般的な MTA は sendmail と [[Postfix]] です。メールだけであれば [[S-nail]] を設定するだけで十分ですが、[//web.archive.org/web/20161011211420/https://dominicm.com/configure-email-notifications-on-arch-linux/ これらの手順]に従う必要があります。 {{ic|-M test}} オプションで、smartd デーモンが起動する度にテストメールを送信します: {{hc|/etc/smartd.conf| DEVICESCAN -m address@domain.com -M test }} メールが届くまでに時間がかかることもあります。ハードドライブの障害が発生したときにすぐに対応が必要な場合、メールの送信に加えて実行されるスクリプトを定義することもできます: {{hc|/etc/smartd.conf| DEVICESCAN -m address@domain.com -M exec /usr/local/bin/smartdnotify }} メールとシステム通知を送信するには、{{ic|/usr/local/bin/smartdnotify}} に以下のようなコードを記述してください: #!/bin/sh # Send email echo "$SMARTD_MESSAGE" | mail -s "$SMARTD_FAILTYPE" "$SMARTD_ADDRESS" # Notify user wall "$SMARTD_MESSAGE" デスクトップ環境を使っている場合、デスクトップ上にポップアップを表示させたい場合があります。そのようなときは、以下のスクリプトを使用することができます ({{ic|''X_user''}} と {{ic|''X_userid''}} は X を実行しているユーザとユーザ ID にそれぞれ置き換えてください): {{hc|/usr/local/bin/smartdnotify|2= #!/bin/sh sudo -u ''X_user'' DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/''X_userid''/bus notify-send "S.M.A.R.T Error ($SMARTD_FAILTYPE)" "$SMARTD_MESSAGE" --icon=dialog-warning -u critical }} このスクリプトは {{Pkg|libnotify}} と完全なデスクトップ環境を必要とします。詳細は [[デスクトップ通知]] を見てください。 また、カスタムのスクリプトを {{ic|/usr/share/smartmontools/smartd_warning.d/}} に置くこともできます: このスクリプトは、システム上のログイン中の全ユーザに libnotify を介して通知を送ります。 {{hc|/usr/share/smartmontools/smartd_warning.d/smartdnotify|2= #!/bin/sh IFS=$'\n' for LINE in `w -hs` do USER=`echo $LINE {{!}} awk '{print $1}'` USER_ID=`id -u $USER` DISP_ID=`echo $LINE {{!}} awk '{print $8}'` sudo -u $USER DISPLAY=$DISP_ID DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$USER_ID/bus notify-send "S.M.A.R.T Error ($SMARTD_FAILTYPE)" "$SMARTD_MESSAGE" --icon=dialog-warning -u critical done }} このスクリプトは {{Pkg|libnotify}}、{{Pkg|procps-ng}} そして完全なデスクトップ環境を必要とします。 以下でカスタムのスクリプトを実行することができます: {{hc|/etc/smartd.conf|DEVICESCAN -m @smartdnotify}} ==== 電源管理 ==== 電源管理の制御下にあるコンピュータを使用している場合、低消費電力モードでディスクを扱う方法を smartd に指示する必要があります。通常、ディスクプラッタは、smartd によって発行された SMART コマンドに応答してスピンアップします。なので、以下のオプションを使用しなかった場合、smartd によって定期的にポーリングされたときに、低消費電力モードにあるディスクがスピンアップして高電力モードになる場合があります。 {{hc|/etc/smartd.conf| DEVICESCAN -n standby,15,q }} 詳細は [https://www.smartmontools.org/wiki/Powermode smartmontools wiki] を参照してください。 一部のデバイスでは {{ic|-n}} が機能しません。syslog に以下のエラーメッセージが出力されます: {{hc|# journalctl -u smartd| CHECK POWER MODE: incomplete response, ATA output registers missing Device: /dev/sdb [SAT], no ATA CHECK POWER STATUS support, ignoring -n Directive }} 別の方法として smartd の {{ic|-i}} オプションを使用することができます。このオプションは、ドライブの状態を確認するためにディスクをスピンアップする頻度を制御します。デフォルトは30分です。頻度を変更するには {{ic|/etc/conf.d/smartd}} を編集してください。 {{hc|/etc/conf.d/smartd| output=SMARTD_ARGS="-i 10800" Check status every 10800 seconds (3 hours) }} 詳細は {{man|8|smartd}} を参照してください。 ==== 自己テストをスケジュールする ==== smartd は、スケジュールに従って自己診断の実行をするようディスクに指示を出すことができます。以下の {{ic|/etc/smartd.conf}} の設定では毎日午前2-3時の間に短い自己診断、土曜日の午前3-4時の間に長い自己診断が行われるようにします: {{hc|/etc/smartd.conf| DEVICESCAN -s (S/../.././02{{!}}L/../../6/03) }} ==== 温度の変化を警告する ==== smartd はディスクの温度を記録して、急激な温度上昇が起こった時や温度の上限に達した時に警告をすることができます。以下の例では、温度が4度以上変化したときにログを取り、温度が35度に達したときにログを取り、40度に達したときに警告をログに記録しメールを送信します: {{hc|/etc/smartd.conf| DEVICESCAN -W 4,35,40 }} {{Tip| * コマンド {{ic|smartctl -A /dev/''device'' {{!}} grep Temperature_Celsius}} を実行することで、現在のディスクの温度を知ることができます。 * 一部のディスクが専ら他のディスクより熱い/冷たい場合、{{ic|DEVICESCAN}} を削除して個々のデバイスを定義し、適切な温度設定をしてください。 }} ==== 完全な smartd.conf の例 ==== 上記の例を全てまとめると以下のような設定になります: * {{ic|DEVICESCAN}}: smartd ディスクをスキャンし、検出されたディスクすべてを監視する * {{ic|-a}}: 全ての属性を監視する * {{ic|-o on}}: オンラインデータの自動収集を有効化する * {{ic|-S on}}: 属性の自動保存を有効化する * {{ic|-n standby,q}}: ディスクが待機中の時チェックを実行せず、ディスクアクセスが発生しないようにログに書き込まない * {{ic|-s ...}}: 短いテストと長いテストの予定を立てる * {{ic|-W ...}}: 温度を監視する * {{ic|-m ...}}: メールアラート {{hc|/etc/smartd.conf| DEVICESCAN -a -o on -S on -n standby,q -s (S/../.././02{{!}}L/../../6/03) -W 4,35,40 -m ''username-or-email'' }} == コンソールアプリケーション == * {{App|skdump|SMART デバイスの監視と管理、及びハードディスクドライブの健康状態の監視と報告を行うユーティリティ。|https://0pointer.de/blog/projects/being-smart.html|{{Pkg|libatasmart}}}} * {{ic|iostat -x}} ({{Pkg|sysstat}} に含まれる) もいくつかのディスクの健康指標を提供します。特に、f_await 列の値が大きい場合は、ディスクがリクエストに素早く応答していないことを意味しており、障害が発生しているのかもしれません。 == GUI アプリケーション == * {{App|DisKMonitor|SMART デバイスと MDRaid 健康状態を監視する KDE ツール集。|https://github.com/papylhomme/diskmonitor|{{AUR|diskmonitor}}}} * {{App|Plasma Disks|KDE Plasma のためのハードディスクの健康状態の監視。|https://invent.kde.org/plasma/plasma-disks/|{{Pkg|plasma-disks}}}} * {{App|Gnome Disks|{{Pkg|libatasmart}} を使用してハード・ディスク・ドライブの県っこう状態を監視・報告する GNOME フロントエンド (gnome デスクトップの一部であり、gsd-disk-utility-notify も組み込まれている)。|https://gitlab.gnome.org/GNOME/gnome-disk-utility/|{{Pkg|gnome-disk-utility}}}} * {{App|GSmartControl|smartctl のハードディスクドライブの健康状態調査ツール用の GNOME フロントエンド。|https://gsmartcontrol.sourceforge.io/|{{Pkg|gsmartcontrol}}}} == 参照 == * [https://www.smartmontools.org/ Smartmontools ホームページ] * [https://help.ubuntu.com/community/Smartmontools Ubuntu Wiki の Smartmontools] * [[Gentoo: smartmontools]] {{TranslationStatus|S.M.A.R.T.|2023-05-03|766540}}
このページで使用されているテンプレート:
テンプレート:AUR
(
ソースを閲覧
)
テンプレート:App
(
ソースを閲覧
)
テンプレート:Grp
(
ソースを閲覧
)
テンプレート:Hc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:Man
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
テンプレート:Tip
(
ソースを閲覧
)
テンプレート:TranslationStatus
(
ソースを閲覧
)
S.M.A.R.T.
に戻る。
検索
検索
S.M.A.R.T.のソースを表示
話題を追加