【誤報】Ubuntu 24.04 LTSと外付けHDDの相性問題を解決

【誤報】Ubuntu 24.04 LTSと外付けHDDの相性問題を解決

2025年 8月 14日

ユニットコム製 外付けHDDケースUNI-RAID35U3-BLACKとUbuntu 24.04 LTSの相性問題を解決したので共有

解決できてなかった(´;ω;`)

課題

Ubuntu 24.04 LTSで運用しているファイルサーバにて、USB接続の外付けHDDに100GB程度のデータを書き込むと、接続が切れてマウントが外れる問題が発生
dmesgを確認すると、カーネルから下記のようなエラーが大量に出力されていた。

  • EXT4-fs warning (device sdb): ... error -5 reading directory block
  • rclone: attempt to access beyond end of device

ハードウェア構成

項目 仕様
CPU Intel N100
RAM DDR4 16GB
OS Ubuntu Server 24.04.3 LTS
外付けHDDケース UNI-RAID35U3-BLACK(RAID1)
HDD TOSHIBA DT02ABA600(6TB) x2

結論

UAS (USB Attached SCSI) ドライバを無効化することで解決
gemini先生に聞いたら一発で解決した。
検索の時代は終わったのかもしれないと思う、今日この頃。

原因

エラーログから、問題はアプリケーションやファイルシステム (EXT4) ではなく、より下層のUSB接続とドライバにあると判断

高負荷なデータ書き込みによって、Ubuntu標準の高速なuasドライバと、外付けHDDケースに搭載されているUSB-SATA変換コントローラーとの間で相性問題が発生。 これによりOSとHDD間の通信が不安定になり、I/Oエラー (error -5) を誘発。最終的にOSがデバイスを正常に認識できなくなり (attempt to access beyond end of device)、マウントが外れていたと考えられる。

対処法

特定のデバイスに対してuasドライバを無効化し、より互換性の高い従来のusb-storageドライバで動作するように設定を変更する。

  1. HDDのIDを確認lsusbコマンドで、問題のHDDのベンダーIDとプロダクトID (xxxx:yyyyの形式) を特定する。

    例: Bus 002 Device 003: ID 152d:0578 JMicron Technology Corp. 
  2. UASを無効化する設定ファイルを作成/etc/modprobe.d/に設定ファイルを作成する。ファイル名は任意(例: blacklist-uas.conf)。

    sudo nano /etc/modprobe.d/blacklist-uas.conf
  3. 設定を記述 ファイル内に下記を記述し保存する。xxxx:yyyyの部分はステップ1で確認したIDに書き換える。末尾の:uがUASを無効にするフラグ。

    options usb-storage quirks=xxxx:yyyy:u
  4. 設定を反映して再起動 initramfsを更新してから再起動する。Bash

    sudo update-initramfs -u
    sudo reboot

筆者の環境では、上記対応により外付けHDDのマウントが外れることはなくなった。

最終更新日