smartctl на внешнем HDD внутренний корпус язя к usb

Что происходит, когда стрелка вниз вводится в терминале

Как сообщается xxd -p, при вводе + возврат:

xxd -p
^[[B
1b5b420a

Клавиша со стрелкой вниз приводит к последовательности 3 символов:

  • первое \x1b (иначе выйдите, посмотрите man ascii), отраженный на терминале как ^[,
  • второй \x5b, это [,
  • треть \x42, это B.

Последний знак, \x0a просто символ новой строки.

Так, стрелка вниз отражена на терминале как ^[[B. В действительности это соответствует 1b5b42 преобразуйте в шестнадцатеричную систему последовательность, которая является той, на самом деле отправленной в процесс считывания.

О Ваших экспериментах

Ваш key переменная содержит 1b5b42 шестнадцатеричная последовательность. Проверьте его с

echo -n "$key" | xxd -p
1b5b42

Конечно, grep сможет поймать 5b42 преобразуйте последовательность в шестнадцатеричную систему (который является [B) ¹.

Однако, когда Вы отправляете что-то на терминал, символ ESC \x1b интерпретируется как начало некоторой специальной escape-последовательности. Например, \x1b[31m последовательность, которая распознана большинством терминалов и означает "использование красный основной цвет". Проверьте его сами:

echo -e 'hello \x1b[31myou'

Последовательность изменит текущий цвет, но это ничего не распечатает. Можно также проверить это:

echo -e 'hello \x1b[Byou'

и Вы будете видеть что специальная последовательность \x1b[B интерпретируется терминалом, поскольку "спускают курсор один".

Вот почему Ваш echo $key не покажет что-то непосредственно видимое на терминале, за исключением некоторых пустых строк.


1. Я не уверен почему grep оказывается, печатает просто [B, У меня есть некоторый другой результат на моей установке.

37
17.01.2014, 15:55
4 ответа

Существует SAT не зависящий от производителя продукта (передача SCSI/ATA) стандарт, но AFAIK это широко не поддерживается на (более дешевых) мостах.

Существует несколько поставщиков, определенная передача ATA управляет, чтобы можно было выбрать с smartctl с -d опция:

-d TYPE, --device=TYPE
    Specify device type to one of: ata, scsi, sat[,N][+TYPE], 
    usbcypress[,X], usbjmicron[,x][,N], usbsunplus, marvell, 
    areca,N, 3ware,N, hpt,L/M/N, megaraid,N, cciss,N, auto, test

где -d sat для совместимых устройств SAT.

Поддержка USB-устройства перечисляет устройства и их параметры командной строки, поэтому если Вы получаете контроллер USB с одним из устройств, перечисленных там, как поддерживается, у Вас есть лучшее изменение получения вещей работать.

40
27.01.2020, 19:36

УМНЫЙ по USB обычно или не возможно, или сделан с (мостом) определенные для поставщика команды, таким образом, нет никакого способа добиться цели. smartctl знает о нескольких определенных микросхемах моста. Проверьте страницу справочника на список.

Это ужасно, но только 100%-й надежный способ получить доступ УМНЫЙ на диске состоит в том, чтобы отключить его от моста и прикрепить его на надлежащий хост-адаптер (как встроенный контроллер SATA или eSATA порт).

С современной абстракцией ОС настолько легко забыть, насколько отличающийся эти шины устройства хранения данных внутренне.

8
27.01.2020, 19:36

Нет соответствующего значения -d.

Проблема состоит в том, что Вы используете мост массового хранения SATA↔USB, и массовое хранение USB не имеет стандартного способа запросить ATA/SATA УМНЫЕ данные. Таким образом, вместо этого контроллер имеет или никакого пути или некоторого особенного метода поставщика получить данные. smartctl знает несколько из них; примеры включают usbjmicron и usbsubplus.

Так, если Ваш мост USB не является одним из тех, он знает о (и не использует точно те же определенные для поставщика команды), smartctl просто не может считать данные.

6
27.01.2020, 19:36
  • 1
    Любопытный. Затем, какое внешнее преобразование регистра (или другое решение) я мог затем использовать, чтобы смочь считать УМНЫЕ данные? Я не могу только включить диск Mac OS X на свой ноутбук HP. И у меня нет места для 2,5-дюймового диска в моем настольном компьютере. –  landroni 17.01.2014, 02:11
  • 2
    @landroni можно использовать 2,5 дюйма для 3,5-дюймового адаптера для помещения его в настольный компьютер. Или если Ваш компьютер имеет eSATA, используйте это (с eSATA корпусом + адаптер), Или можно искать корпус, который использует одни из микросхем USB это поддержки smartctl. AFAIK, там не являются никакими лучшими ответами :-(... но не стесняются ожидать и надеяться, что кто-то еще на сайте знает лучший. –  derobert 17.01.2014, 02:37
  • 3
    Спасибо! Очень полезный. Я буду ожидать дальнейшего входа прежде, чем принять Ваш ответ, но это уже помещает меня на правильном пути (конкретно 2,5 дюйма к 3,5-дюймовому адаптеру). –  landroni 17.01.2014, 04:04

Ваше оборудование " VID: 14CD, PID: 6600 Moai M110E / Super Top USB 2.0 в IDE " не может выполнять передачу команд ATA через USB, которые позволяют запросить состояние диска SMART, например, smartctl (или по этой ссылке hdsentinel, http: // www .hdsentinel.com / compatibility_usbharddisks.php , который дает список совместимого и недееспособного оборудования).

«Невозможно, означает, что требуемая функция отсутствует в микросхеме, поэтому никакая дополнительная информация о диске не может быть отображена. контролируется этим чипом. "(там же)

2
20.08.2021, 13:25

Теги

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