kledgeb Ubuntuの使い方や日本語化、アプリの使い方を紹介しています。 Ubuntuの最新情報も紹介しています。

一部のSSDでボリュームが読み込み専用になってしまう現象

一部のNVMe(NVM Express)接続のSSDで、ボリュームが読み込み専用になってしまう現象が報告されています。


現状報告されている内容では、Samsung製SSD、Toshiba製SSD、Intel製SSDでこの現象が発生しているとのことです。

いずれもNVMeデバイスの省電力を制御するAPST(Autonomous Power State Transition)に起因する問題です。

APSTの導入のきっかけ

APSTはNVMeドライブの消費電力を抑えるため、「Ubuntu 17.04(Linux Kernel 4.10)」を機に導入されました。


結果、消費電力が8.26ワットから4.23ワットにまで抑えられ、またPC3までしか移行しなかったCPUのPower Saving Stateが、PC8まで移行するようになったとのことです。

その後、「Ubuntu 16.10(Linux Kernel 4.8)」にも導入されています。

ユーザーから見た現象

ユーザーから見た現象としては、しばらくUbuntuを利用していると、突然ルートファイルシステム(/)が読み込み専用になり、TTY(Ctrl+Alt+F1)に切り替えると、以下のような内容が出力されれます。

[ 746.341551] EXT4-fs error (device nvme0n1p7): ext4_find_entry:1463: inode #525023: comm NetworkManager: reading directory iblock 0
[ 746.343318] EXT4-fs error (device nvme0n1p7): ext4_find_entry:1463: inode #524289: comm pool: reading directory iblock 0
[ 746.356125] EXT4-fs error (device nvme0n1p7): ext4_find_entry:1463: inode #11272213: comm systemd-udevd: reading directory iblock 0
[ 746.356139] EXT4-fs error (device nvme0n1p7): ext4_find_entry:1463: inode #11272210: comm systemd-udevd: reading directory iblock 0
[ 746.356332] EXT4-fs error (device nvme0n1p7): ext4_find_entry:1463: inode #11272193: comm systemd-udevd: reading directory iblock 0
[ 746.356338] EXT4-fs error (device nvme0n1p7): ext4_find_entry:1463: inode #11272825: comm systemd-udevd: reading directory iblock 0
[ 746.356400] EXT4-fs error (device nvme0n1p7): ext4_find_entry:1463: inode #11272210: comm systemd-udevd: reading directory iblock 0
[ 746.474632] EXT4-fs error (device nvme0n1p7): ext4_find_entry:1463: inode #524539: comm unity-settings-: reading directory iblock 0
[ 746.992814] EXT4-fs error (device nvme0n1p7): ext4_find_entry:1463: inode #5506108: comm BrowserBlocking: reading directory iblock 0
[ 746.304451] EXT4-fs error (device nvme0n1p7): ext4_find_entry:1463: inode #5506117: comm BrowserBlocking: reading directory iblock 0

ボリュームが読み込み専用となってしまうため、アプリの動作がおかしくなったり、システムがフリーズします。

APSTが有効になっているか調べるには

APSTが有効になっているか調べるには、以下のコマンドを実行します。

sudo nvme get-feature -f 0x0c -H /dev/nvme0

APSTが有効になっていれば、以下の出力結果が得られます。

get-feature:0xc (Autonomous Power State Transition), Current value:0x000001
Autonomous Power State Transition Enable (APSTE): Enabled

nvmeコマンドが見つからない時は

nvmeコマンドが見つからない時は、以下のボタンをクリックして「nvme-cli」パッケージをインストールしてください。


APSTを無効にするには

APSTを無効にする方法です。

1./etc/default/grubを開く

以下のコマンドを実行し、「/etc/default/grub」ファイルをrootで開きます。

sudo -i gedit /etc/default/grub

2.編集箇所の検索

「GRUB_CMDLINE_LINUX_DEFAULT」で始まる行を検索します。


3.パラメーターの追加

その行に「nvme_core.default_ps_max_latency_us=0」パラメーターを追加します。
上記の場合「GRUB_CMDLINE_LINUX_DEFAULT」行の内容は、以下のようになります。

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nvme_core.default_ps_max_latency_us=0"

編集したらファイルを上書き保存します。

4.GRUB2設定ファイルの更新

以下のコマンドを実行し、GRUB2設定ファイルを更新します。

sudo update-grub


作業が完了したら、PCを再起動します。

5.パラメーターの確認

PCを再起動したら以下のコマンドを実行し、パラメーターが反映されているか確認します。

cat /proc/cmdline


後は上記で紹介した方法でAPSTが無効(disabled)になっているか確認してください。


関連コンテンツ
同一カテゴリーの記事
コメント
オプション