Как восстановить исходную ошибку чтения DMA?

Обратите внимание, что все следующие синонимы:

kill -9 1234
kill -KILL 1234
kill -SIGKILL 1234

Стоит отметить, что в мире обработки сигналов SIGKILL является одним из немногих уникальных, которые обрабатываются операционной системой, а не программа. Когда вы запускаете kill -9, вы не сообщаете приложению о завершении, вместо этого вы говорите операционной системе, чтобы остановить запуск программы, независимо от того, что делает программа.

После SIGKILL отправляется, программа немедленно будет остановлена. Если какие-либо вызовы ядра выполняются (например, File IO) от имени программы, эти вызовы могут или не продолжаться до тех пор, пока они не закончатся, в зависимости от вызова, но сама программа больше не будет работать. Обратите внимание, что задачи для операционной системы или задачи, запущенные под отладчиком, могут вести себя по-другому здесь.

Другим сигналом, который нельзя заблокировать, является SIGSTOP, который имеет аналогичный эффект, но вместо этого зависает программа; вы можете отправить SIGCONT позже, чтобы возобновить его. Это поведение полностью контролируется ОС, и программа не получает никаких предварительных уведомлений.

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

Вот несколько полезных сигналов, которые вы можете найти в процессе:

SIGHUP - hangup Сообщает программе, что пользователь отключен (например, сеанс SSH или окно терминала закрыто ). Обычно делает изящное завершение программы. SIGINT - прерывание Отправлено, когда вы нажимаете CTRL + C. Обычно означает «остановить то, что вы делаете» - может или не может убить программу. SIGTERM - завершение. По умолчанию отправлено kill и killall. Обычно заканчивается программа ... иногда после завершения программы все, что она делает. SIGSTOP - остановка Отправляется, когда вы нажимаете CTRL + Z. Приостанавливает программу, обсуждаемую выше. SIGPIPE - трубка закрыта. Сообщает программе, что трубопровод закрыт. Обычно завершает работу программы. Например, cat /etc/passwd | head -n1 отправит SIGPIPE в процесс cat после печати первой строки, в результате чего cat завершит работу перед завершением всего файла.

Хотя все эти сигналы происходят «естественно» в их собственной настройке, вы можете использовать сигнал для подделки условия для достижения желаемого результата.

Например, если вы хотите прекратите чей-то сеанс SSH, вы можете просто убить процесс, но тем самым вы не сможете обновить его файл HISTORY, что может быть важно по соображениям безопасности. Но вместо этого, если вы отправите SIGSTOP , тогда процесс будет считать, что соединение скончалось и выполнит стандартную очистку.

1
задан 18 July 2013 в 01:46

2 ответа

Ошибка чтения DMA была реальной. Действительно, был плохой сектор, и замена кабелей SATA не помогла. Я, наконец, попытался переустановить из LiveCD, и установка завершилась неудачно из-за моего плохого диска. Я изначально пошел с SSD, потому что мне нужна быстрая загрузка, и мне сказали, что Corsair Nova 2 был хорошим, хотя более поздние обзоры (и этот опыт) опровергают это.

Итак, ответ на этот вопрос должен быть отмечен как из-за неисправного твердотельного диска.

3
ответ дан 24 May 2018 в 19:55

Сегодня я столкнулся с подобной проблемой. Я отсоединяю кабель sata и снова подключаю свой жесткий диск к материнской плате, и это сработало!

1
ответ дан 24 May 2018 в 19:55

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

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