сбойные блоки не могут найти никаких сбойных блоков

Я нашел в другом месте предложение запустить stty sane , которое, как вы можете представить, сбрасывается до разумных значений по умолчанию. Это решает мою проблему, но после тщательного изучения того, какими могут быть различия, я все еще не уверен, что именно в этой конкретной команде устраняет проблему. Но это работает. Спасибо за игру на резиновой утке.

-121--243206-

Я продолжаю возвращаться к хорошему ответу @ Jander в надежде на декодер копирования и вставки, когда сталкиваюсь с подобным:

user@machine:~$ grep Sig...: /proc/18475/status
SigPnd: 0000000000000000
SigBlk: fffffffe7dfbfaff
SigIgn: 0000000000001000
SigCgt: 0000000182006e47
user@machine:~$ 

Полагаю, мне придется что-то стучать... сказать:

user@machine:~$ ruby -wn - /proc/18475/status <<'EOF'
if $_.match(/Sig(Pnd|Blk|Ign|Cgt):\s([0-9a-f]{16})/) == nil
  next
end
field = $1
mask = $2.to_i(16)
names = []
Signal.list().each_pair() {
  |name, number|
  if number == 0
    # "EXIT" => 0
    next
  end
  if (mask & (1 << (number - 1))) == 0
    next
  end
  names << name
}
puts("Sig#{field}: #{names.join(" | ")}")
EOF
SigPnd: 
SigBlk: HUP | INT | QUIT | ILL | TRAP | IOT | ABRT | FPE | BUS | SYS | PIPE | ALRM | TERM | URG | TSTP | CONT | CHLD | CLD | TTIN | TTOU | IO | XCPU | XFSZ | PROF | WINCH | USR1 | USR2 | PWR | POLL
SigIgn: PIPE
SigCgt: HUP | INT | QUIT | BUS | SEGV | ALRM | TERM | VTALRM | USR1 | USR2
user@machine:~$ 

Я хотел, чтобы он был несколько разборчивым, но это сделало его немного неуклюже, чтобы вызвать, чем я хотел, так что, благодаря предложению @ alanc, я сохраню его как ~/bin/psig.

-121--5028-

Мне также не удалось получить настройку TERM для работы из ~/.ssh/rc.

Я могу получить его на работу, изменив следующее в /etc/ssh/sshd _ config

PermitUserEnvironment yes

с последующим перезапуском sshd и принимая во внимание предупреждение от man, sshd_config,

PermitUserEnvironment

Specifies ли ~/.ssh/environment и environment = параметры в ~/.ssh/authorized _ ключах обрабатываются sshd (8). Значение по умолчанию - «нет». Разрешающая обработка среды может позволить пользователям обходить ограничения доступа в некоторых конфигурациях, используя такие механизмы, как LD_PRELOAD.

Затем я создал файл ~/.ssh/environment и добавил строку,

TERM=ansi

вошел обратно и он работал.

EDIT:

Это не очень поможет, но установка TERM в командной строке перед вызовом ssh (в Linux) устанавливает тип термина на удаленном конце.

TERM=ansi ssh test@home.local
test@home.local ~ $ echo $TERM
ansi
1
19.06.2018, 09:29
1 ответ

Если у вас нет утилиты, которая может получить доступ к диску на уровне SCSI, обычное чтение с диска мало что может сделать.

Если вы хотите иметь возможность находить плохие блоки, вам необходимо иметь доступ к внутренним данным исправления ошибок с аппаратного контроллера диска. SCSI verifyможет это сделать, но обычное чтение не может.

Обратите внимание, что в прежние времена сектора с битовыми ошибками назывались сбойными блоками, но с тех пор, как IBM в Штутгарте в 1992 году выпустила первый диск с опережающей коррекцией ошибок «на лету», сбойные блоки — это блоки с определенным количеством битовых ошибок, т.е. близко к максимально корректируемому.

До 1992 года нормальное чтение могло найти плохие блоки, и многие люди, кажется, верят, что это все еще работает, так что же именно делает ваша программа?

-1
28.01.2020, 02:12

Теги

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