smartmontools を用いたドライブ情報の取得(FreeBSD の場合)
- FreeBSD を使う.
- ドライブ情報の取得には root 権限が必要である.
前準備
(オプション) システム/アプリケーションの更新作業
- システム(ベースシステム)の更新
以下のようにコマンドを実行して,FreeBSD のベースシステムにセキュリティ修正などを適用する.
freebsd-update fetch freebsd-update install - パッケージの更新
以下のようにコマンドを実行して,インストール済みのアプリケーションを更新する.
pkg update pkg upgrade
smartmontools のインストールと設定手順
インストール
パッケージを用いる方法と,ポーツツリーを用いる方法がある. 通常はパッケージを用いる方法で十分である.
- パッケージを使ってインストール
pkg install smartmontools - (別法)ポーツツリーを使ってビルドとインストール
ビルドオプションを変更したい場合などに用いる. ポーツツリーが無い場合は,先に git で取得する(portsnap は FreeBSD 14.0 で削除された).
pkg install git git clone --depth 1 https://git.FreeBSD.org/ports.git /usr/ports cd /usr/ports/sysutils/smartmontools make install clean - インストール完了の確認
以下のようにコマンドを実行し,バージョンが表示されることを確認する.
/usr/local/sbin/smartctl --version
設定
- (オプション)/etc/periodic.conf の設定
periodic(8) が生成する日毎レポート (daily status reports) にドライブの状態を含めたいときは, /etc/periodic.conf に次のような1行を含めておく. 「/dev/ada0 /dev/da0」の部分は監視したいドライブ名に設定すること.
daily_status_smart_devices="/dev/ada0 /dev/da0" - (オプション)/usr/local/etc/smartd.conf の設定
ドライブの常時監視 (monitoring) を行いたいときは,設定ファイル /usr/local/etc/smartd.conf を作成すること.
* サンプルが /usr/local/etc/smartd.conf.sample にある. これをコピーして編集するとよい.
cp /usr/local/etc/smartd.conf.sample /usr/local/etc/smartd.conf - (オプション)/etc/rc.conf の設定
/etc/rc.conf に次の1行を含めておく. これで smartd デーモンがシステム起動時に自動的に起動するようになる.
smartd_enable="YES"設定後,次のコマンドで smartd デーモンを起動する.
service smartd start
smartmontools を試しに使ってみる
ドライブ名の確認
ドライブ名の確認を行ってみる. FreeBSD でのドライブ名は,SATA/IDE 接続では /dev/ada0, SCSI/USB 接続では /dev/da0,NVMe 接続では /dev/nvme0 あるいは /dev/nda0 のようになる.
camcontrol devlist
nvmecontrol devlist
ドライブ情報の取得
ドライブ情報の取得を行ってみる.
「/dev/ada0」の部分は,扱いたいドライブ名にしてください.
/usr/local/sbin/smartctl -i /dev/ada0
* モデル名 (Device Model), 容量 (User Capacity), ファームウェアのバージョン (Firmware Version), S.M.A.R.T. の対応状況と有効・無効が表示される.
SMART に関する情報の取得
S.M.A.R.T. の属性値,エラーログ,セルフテストの結果を含む全情報を取得する.
「/dev/ada0」の部分は,扱いたいドライブ名にしてください.
/usr/local/sbin/smartctl -a /dev/ada0
* S.M.A.R.T. が無効になっている場合は,次のコマンドで有効化できる.
/usr/local/sbin/smartctl -s on /dev/ada0
セルフテストの実行
ドライブ自身による自己診断を実行する. short テストは数分,long テストはドライブの容量に応じて数十分から数時間かかる.
/usr/local/sbin/smartctl -t short /dev/ada0
実行結果は,次のコマンドで確認する.
/usr/local/sbin/smartctl -l selftest /dev/ada0