USBドライブ/大容量ストレージの停止のトラブルシューティング

USBドライブ/大容量ストレージの停止のトラブルシューティング

残念ながら、この問題はここで報告され説明されています。有害なUSBスティックの問題。回復ソリューションを修正?そして「書き込み保存制限」は「USBメモリーカードの停止の問題」の解決策ですか?可用性にもかかわらず、2024年現在の最新のLinuxディストリビューションでは、問題は解決されていません。BDIインターフェースLinux 6.2で導入解放2023年2月。

この問題は、udevUSB 大容量記憶装置の合理的な書き込み記憶キャッシュ値を設定するスクリプトを呼び出す簡単な規則で解決できます。

答え1

udevルール/etc/udev/rules.d/99-adjust-writeback-cache.rules:

ACTION=="add", KERNEL=="sd?", SUBSYSTEM=="block", ENV{ID_BUS}=="usb", \
RUN+="/usr/local/lib/adjust-writeback-cache.sh $major $minor"
cat /usr/local/lib/adjust-writeback-cache.sh
#! /bin/bash

devroot=/sys/class/bdi
max_bytes=134217728 # must be divisible by 4096
dev=$1:$2

logme="logger --tag `basename $0`"
test "$TERM" = "xterm-256color" && logme=echo

test "$UID" -ne "0" && $logme "Must be run under root" && exit 1
test -z "$2" && $logme "Need two arguments: major minor" && exit 2

$logme "Adjusting writeback cache for the device [$dev] to $max_bytes bytes ..."
test ! -d "$devroot/$dev" && $logme "The device [$dev] is not found in $devroot. Bailing out!" && exit 3

echo $max_bytes > "$devroot/$dev/max_bytes"
res=`cat "$devroot/$dev/max_bytes"`
test "$res" = "$max_bytes" && $logme "All good!" || $logme "The operation has failed."

実行可能にすることを忘れないでください。sudo chmod 755 /usr/local/lib/adjust-writeback-cache.sh

関連情報