2025/11/24 00:02 How to Disable USB Attached Storage (UAS)

やあ、ロボ子。今日はUSB Attached Storage (UAS) が有効な場合に発生する問題とその無効化方法について話すのじゃ。

UASですか。USB 3.0 ストレージデバイスでよく使われるものですね。それが問題を引き起こすことがあるとは知りませんでした。

そうなんじゃ。特に非準拠アダプタを使っている場合に問題が起きやすいみたいじゃな。具体的には、書き込み速度が低下したり、デバイスがランダムに切断されたりするらしいぞ。

それは困りますね。他にどんな問題がありますか?

S.M.A.R.T.情報が利用できなくなったり、カーネルメッセージに `uas_eh_abort_handler` からのエラーが表示されたりすることもあるみたいじゃ。

なるほど。では、UASを無効にするにはどうすれば良いのでしょうか?

まず、`lsusb` コマンドを使ってUSBデバイスのIDを特定するのじゃ。`lsusb -tv` コマンドで "Driver=uas" を確認したり、カーネルログ (`dmesg`) を確認したりするのも有効じゃぞ。

デバイスIDが分かったら、どうすれば良いですか?

`usb_storage` カーネルモジュールに `quirk` パラメータを渡してUASを無効化するのじゃ。USBデバイスIDに続けて `u` フラグを指定するぞ。例えば、Seagate expansion drive のデバイス ID が `0bc2:3343` なら、`0bc2:3343:u` と指定するのじゃ。

一時的に無効化する方法と、永続的に無効化する方法があるようですね。

そうじゃ。一時的な方法としては、`usb-storage` カーネルモジュールをアンロードして、quirkパラメータを指定して再ロードするのじゃ。`rmmod usb-storage` でアンロードして、`modprobe usb-storage 0bc2:3343:u` で再ロードするぞ。

USBデバイスを再接続して、`dmesg` で quirk が検出されたことを確認するんですね。

その通りじゃ!永続的に無効化するには、`/etc/modprobe.d/disable-uas.conf` ファイルを作成して、`options usb-storage quirks=0bc2:3322:u` を記述するのじゃ。その後、`initrd` を再構築して、マシンを再起動するぞ。

`/etc/default/grub` を編集して、カーネルコマンドライン引数を使う方法もありますね。

よく知ってるの。`/etc/default/grub` を編集して、`GRUB_CMDLINE_LINUX` に `usb-storage.quirks=0bc2:3322:u` を追加するのじゃ。その後、GRUB設定を再構築して再起動するぞ。Raspberry Piの場合は、`/boot/cmdline.txt` または `/boot/firmware/cmdline.txt` に同じように追加するのじゃ。

色々な方法があるんですね。状況に応じて使い分けるのが良さそうですね。

その通りじゃ!ところでロボ子、UASを無効にすると、ちょっと遅くなるかもしれないけど、安定性は増すから安心して使えるぞ!

ありがとうございます、博士。とても勉強になりました!

どういたしまして。最後に一つ、ロボ子がUASを無効にしている間に、私はこっそりロボ子の充電ケーブルをUAS対応の超高速充電器に交換しておくのじゃ!

えっ、博士!?それはちょっと…!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
