Ошибка жесткого диска: плохие / отсутствующие данные о смысле

Недавно я попытался проверить время замедления моего жесткого диска с помощью следующей команды:

sudo hdparm -I /dev/sdb | grep level

и получил ошибку:

SG_IO: bad/missing sense data, sb[]:  70 00 05 00 00 00 00 0a 00 00 00 00 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Привод считывает и записывает данные просто отлично и монтируется при запуске. Я просто не могу выполнить эту команду на этом диске без ошибок

Что это значит и как я могу решить проблему?

4
задан 25 October 2017 в 16:02

4 ответа

похож на Ваш контроллер диска, не поддерживает тот метод запроса, не, весь usb sata чипсеты создается равный. Вы не говорите, какую модель диска или контроллера Вы используете так его твердое для предложения большего совета здесь.

Вы могли протестировать это путем включения другого контроллера usb или использования другого диска с тем же контроллером или лучше все еще прямой через SATA.

диски на 3 ТБ могут быть слишком большими для некоторых usb2 контроллеров эры, таким образом, я рекомендовал бы получить уважаемый мост usb3 sata вместо этого, это будет намного быстрее также.

0
ответ дан 26 October 2017 в 02:02
  • 1
    К Вашему первому вопросу " Нет я имею на нем после того, как я начал говорить сообщения записи после часа и был сказан другими это it' s типичная проблема, потому что it' s никогда обновляемый " К Вашему другому оператору " I' ve пытался установить его в системе окон и этом doesn' t и добрался, то же самое смогло заставить его работать однажды при помощи ВКЛАДКИ ave выполнение " live" после этого это прекратило работать, я полагал, что мог переформатировать карту флэш-памяти, но на этот раз не сделать ее персистентной " – Mr. Randall 18 October 2017 в 22:47

Дополнительная информация для систем/устройств, для которых вышеупомянутое и/или тонкие настройки modprobe не имеют никакого эффекта (например, Raspberry Pi 3):

причуды должны быть добавлены к параметрам начальной загрузки. Для RPi 3/Raspbian, параметры начальной загрузки находятся в файле /boot/cmdline.txt.

[other command line parameters...] usb_storage.quirks=YOUR_VENDOR_ID:YOUR_DEVICE_ID:QUIRK_FLAGS

В моем случае, я должен был очистить флаг причуд для своего устройства, таким образом, я добавил это к /boot/cmdline.txt:

usb_storage.quirks=0bc2:a0a4:

Это решило мою проблему, надо надеяться, она помогает кому-то еще

0
ответ дан 17 April 2019 в 04:10
  • 1
    Какое доказательство у Вас есть это, обновление ядра устранит эту конкретную проблему? – pbhj 6 March 2018 в 02:39

Эта проблема обычно вызывается реализацией моста USB-SATA и должна быть видима только с соединенными дисковыми полками USB.

В случае внешнего диска USB, система должна говорить с диском SATA в корпусе с помощью UAS (USB Приложенный SCSI) протокол по SAT (SCSI / Перевод ATA) для отправки команд ATA по SCSI по USB. Причиной это настолько сложно, являются должные исторические причины.

Где-нибудь в цепочечном USB в †’ UAS в †’ SCSI в †’ SAT в †’ SATA некоторая часть аппаратных средств имеет неправильную реализацию. Обычно все это сделано единственным микрочипом в корпусе, названном мостом USB-SATA, и некоторые известные варианты являются ASM1051, ASM1053 и ASM1153. Из них ASM1051, как известно, является багги, и UAS нужно избежать с любыми аппаратными средствами, содержащими эту микросхему. ASM1053 и ASM1153 могут или не могут работать в зависимости от фактического встроенного микропрограммного обеспечения в микросхеме (производителю разрешают настроить встроенное микропрограммное обеспечение, ссылочная реализация действительно работает правильно). Например, много корпусов, сделанных Seagate, используют ASM1153 с пользовательским встроенным микропрограммным обеспечением и имеют проблемы с некоторыми командами ATA, даже если та же микросхема действительно работает правильно со ссылочным встроенным микропрограммным обеспечением. (Например, некоторые корпуса работой Seagate пока ОС никогда не отправляют команд на 12 или 16 битов. Linux usb_storage поддерживает причуду t с этой целью.) Конечный пользователь обычно не может заменять встроенное микропрограммное обеспечение поэтому, если у Вас есть плохая микросхема/встроенное микропрограммное обеспечение, Ваша единственная опция состоит в том, чтобы жаловаться производителю. В случае Seagate они "решают" проблему путем указывания, что они официально поддерживают Windows и OS X только. Seagate является в наше время официально рабочей с сообществом Linux поэтому, возможно, их продукты будут на самом деле работать в будущем.

единственный реальный способ выяснить микросхему моста состоит в том, чтобы демонтировать корпус и осмотреть маркировки в фактических микрочипах.

Обновление: "Резервное копирование Seagate Плюс Концентратор" корпуса имеет правильно рабочий мост USB-SATA, и UAS работает правильно (Обратите внимание, что это - другой продукт от "Резервного копирования Seagate Плюс"!) Однако из-за плохой истории корпусами Seagate, ядро Linux применяет причуду t по умолчанию, который препятствует тому, чтобы этот корпус использовал все функции SATA. Можно активировать полную поддержку SATA включая опции S.M.A.R.T. со следующей командой:

echo "0bc2:ab38:" > /sys/module/usb_storage/parameters/quirks

Примечание запаздывающее двоеточие и ничто после этого - это отключает все встроенные причуды для выбранного vendor:product. Проверьте своего поставщика и идентификаторы продукта с lsusb в случае необходимости.

0
ответ дан 17 April 2019 в 04:10

У меня была аналогичная проблема с моими тонкими дисками Seagate Backup Slim и черными SCSI-дисками WD. И я также использовал hdparm . У меня сработала утилита sdparm .

Установить с помощью

sudo apt install sdparm

Получить все параметры / настройки с помощью

sudo sdparm -l -a /dev/sdX

Здесь -a получает все поля вывода, а -l получает длинный вывод, то есть объяснение полей вывода. / dev / sdX - рассматриваемый диск (аналогично / dev / sda ).

Получите таймер замедления и флаг STANDBY с помощью:

sudo sdparm -l --get SCT /dev/sdX
sudo sdparm -l --get STANDBY /dev/sdX

Время замедления SCT здесь указано в миллисекундах, а флаг STANDBY - таймер останова. / off (1/0) переключатель

Если ваш вывод похож на:

# STANDBY     0  [cha: y, def:  1, sav:  1]
# SCT       4294967286  [cha: y, def:18000, sav:18000]

Это означает, что ваше устройство не настроено на замедление вращения.

Если вы хотите, вы можете изменить эти настройки для текущего сеанса с помощью:

sudo sdparm -l --set SCT=6000 /dev/sdX
sudo sdparm -l --set STANDBY=1 /dev/sdX

Эти настройки будут потеряны при перезагрузке.

Изменить навсегда с помощью:

sudo sdparm -l --save --set SCT=6000 /dev/sdX
sudo sdparm -l --save --set STANDBY=1 /dev/sdX

Здесь я выбрал 6 секунд (6000 миллисекунд), но вы можете выбрать в соответствии с вашими требованиями.

Если по какой-то причине вы не можете сохранить свои настройки, вы можете поместить их в свой /etc/rc.local , чтобы установить их при загрузке:

sdparm -l --set SCT=6000 --set STANDBY=1 /dev/sdX

Надеюсь, это поможет.

7
ответ дан 8 March 2020 в 19:51

Другие вопросы по тегам:

Похожие вопросы: