Корпус жесткого диска USB представляет диск с секторами 4K как содержащий 512B секторов

Расширение псевдонима в функции выполняется при чтении функции, а не при ее выполнении. Определение псевдонима в функции выполняется при выполнении функции.

См. Псевдоним и функции
иhttps://www.gnu.org/software/bash/manual/html_node/Aliases.html

Это означает, что псевдоним будет определен при выполнении функции main, но при первом чтении функции псевдоним еще не был определен. Таким образом, в первый раз функция mainвыполнит функцию Hiтри раза.

Когда вы используете сценарий во второй раз, псевдоним уже определен из предыдущего запуска и может быть расширен при чтении определения функции. Теперь, когда вы вызываете функцию, она запускается с развернутым псевдонимом.

Различное поведение возникает только в том случае, если сценарий исходный с . Sample.sh, т. е. когда он запускается в одной и той же оболочке несколько раз. Когда вы запускаете его в отдельной оболочке как ./Sample.sh, он всегда будет показывать поведение первого запуска.

3
27.07.2019, 08:00
1 ответ

Это ошибка моста USB -на -ATA в корпусе USB. У меня та же ошибка, мой мостовой чип от JMicron (, и если вы погуглите для этого производителя, вы найдете других людей, затронутых этим ).

Я изучил это, когда впервые заметил, и IIRC, проблема в том, что протокол SCSI имеет информацию о физическом и логическом размере в некоторых из более поздних полей в ответе на команду, которая его запрашивает., и прошивка моста, вероятно, имеет некоторую константу длины для этого ответа, которая слишком мала и не передает это поле.

В то время я также пытался найти способ просто сообщить ядру напрямую о размере физического сектора и переопределить неверную информацию, но не смог его найти. Может быть, что-то изменилось за это время.

Если данные важны, приобретите несколько корпусов с микросхемой моста без ошибки.

0
27.01.2020, 21:33

Теги

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