SATAのリンク速度を制限
目次
症状
ドライブの交換が簡単かと思って、ホットスワップ対応のマウンタを使ってハードディスクをパソコンに取り付けました。
ハードディスクは SATA3.0 対応なので、SATA のリンク速度は最高 6.0Gbps です。しかし激しくディスクにアクセスするとたまにエラーが出たり、次のようなログが記録される。
Apr 21 20:00:38 pool kernel: [ 891.836436] ata2: limiting SATA link speed to 3.0 Gbps
このログが記録された後は、エラーが出ることはありません。
目的
そこで SATA のリンク速度を自動的に決定しないで、リンク速度を制限(指定)してディスクを接続したい。
対応
SATA のリンク速度は、Linux のカーネルパラメータlibata
で指定することができます。具体的には、/etc/default/grub
を編集してカーネルの起動オプションとしてlibata
を加えます。
/etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="libata.force=3.0Gbps"
ファイルを編集したらupdate-grub
コマンドを実行して編集した内容を grub に反映させます。
再起動すると、次のように指定した 3.0Gbps でディスクに接続していることがわかります。
$ demesg|grep 'SATA link'
[ 1.118975] ata4: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
[ 1.119005] ata6: SATA link down (SStatus 0 SControl 320)
[ 1.119038] ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
[ 1.119065] ata5: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
[ 1.119090] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
[ 1.119116] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 320)