vasek |
|
Темы:
48
Сообщения:
11340
Участник с: 17 февраля 2013
|
Мои друзья, зная мой интерес к таким вещам, выслали мне один интересный документ. Привожу небольшую часть, может быть кому-нибудь и пригодится. Надеюсь, что за большой объем текста, меня не наругают. Зависание системы Хотя большинство ошибок в коде ядра приводят к сообщению “oops”, иногда, вы можете полностью повесить систему. Если система повисла, то никаких сообщений напечатано быть не может. Например, если код ядра вошел в бесконечный цикл, то в ядре перестает работать диспетчер переключения задач, и система перестает реагировать на все внешние воздействия, включая “магическую” комбинацию CTRL+ALT+DEL. Ваше отношение к зависанию системы, как и к всему остальному, может быть выражено одним из двух вариантов – либо вы предотвратите это заблаговременно, либо будете отлаживать это по факту возникновения. …........ лишнее убрал........... Иногда может создаться видимость зависания системы. Это может случиться, например, если клавиатура окажется блокированной каким-то странным способом. Такие ложные зависания могут быть определены с помощью специальной программы, которая занимается непрерывным выводом какой-нибудь информации. Например, вывод системных часов, один из удачных вариантов такой программы – если показания часов изменяются, значит диспетчер задач продолжает работать. Если вы не использует графический десктоп, то проверку работы диспетчера можно осуществить с помощью программ, которые вызывают мигание светодиодов на клавиатуре, включают и выключают двигатель на флоппи-дисководе, или управляют спикером. Последнее действует особенно раздражающе, поэтому лучше познакомиться с ioctl-командой KDMKTONE. Пример программы (misc-progs/heartbeat.c), которая моргает светодиодами клавиатуры в ритме сердцебиения доступна в источниках на FTP-сайте O'Reilly. Если клавиатура не принимает ввод, то можно попробовать соединиться к вашей системе по сети и убить все подозрительные процессы, или сбросить клавиатуру через kdb_mode -a. Однако, если сеть вам не доступна, то от наблюдения зависания вашего компьютера по блокировке клавиатуры не принесет много пользы. В этом случае, вам желательно иметь какое-нибудь альтернативное устройство ввода, чтобы иметь возможность, хотя бы, аккуратно перегрузить систему. Это, в любом случае, лучше, чем вызов перезагрузки компьютера какой-нибудь кнопкой на системном блоке, после которой вы будете вынуждены выждать время отработки программы проверки файловой системы fsck. Таким альтернативным устройством может быть мышь. Начиная с версии 1.10, сервер консольной мыши gpm, через параметры командной строки предлагает такую возможность, но это работает только в текстовом режиме. Наверное единственным исключительным инструментом в таких ситуациях является “магическая” клавиша SysRq, которая доступна на большинстве архитектур под ядром 2.2 и выше. Такая возможность вызывается комбинацией ALT+SysRq на клавиатуре PC и комбинацией ALT+Stop на клавиатурах SPARC. Третья клавиша, которую необходимо нажать после этих двух, вызывает то, или иное полезное действие. Приведем список некоторых возможных “третьих” клавиш: r Выключает режим “сырого” ввода в ситуациях, когда вы не можете запустить kbd_mode. k Вызывает функцию “secure attention” (SAK). SAK убивает все процессы, запущенные с текущей консоли, оставляю вас с “чистым” терминалом. s Выполняет критическую (emergency) синхронизации для всех дисков. u Попытка перемонтировать все диски в режиме read-only. Эта операция, обычно вызывается сразу же после s, и поможет вам избежать потери времени на проверку файловой системы при возникновении серьезных проблем в системе. b Немедленная перезагрузка системы. Будьте уверены, что предварительно вы выполнили синхронизацию и перемонтирование дисков. p Печатает текущее состояние регистров t Печатает текущий список задач m Печатает информацию по использованию памяти Существуют и другие третьи клавиши SysRq. Полных список смотрите в файле sysrq.txt каталога Documentation источников ядра. Заметьте, что такое SysRq-волшебство должно быть явно разрешено в конфигурации ядра. Большинство дистрибутивов включают эту возможность по соображениям безопасности. Эту возможность можно разрешить во время работы ядра следующей командой: echo 1 > /proc/sys/kernel/sysrq Другая предосторожность, которую нужно выполнять при воспроизведении зависания системы заключается в монтировании всех дисков в режиме read-only (или не монтировать ненужные файловые системы вообще). Если диски примонтированы в режиме read-only, или не примонтированы вообще, то отсутствует риск повреждения файловой системы. Также, можно монтировать все файловые системы через NFS (network file system – сетевая файловая система). При этом, в конфигурации ядра должно быть разрешено монтирование “NFS-Root” и, необходимо передать специальные параметры ядру при загрузке. В этом случае, вы избежите повреждение файловой системы даже без использования SysRq-комбинаций.
Ошибки не исчезают с опытом - они просто умнеют
|
killer1804 |
|
Темы:
54
Сообщения:
515
Участник с: 13 марта 2007
|
С год назад пользовался Alt+SysRq+k, эта комбинация убивала иксы и давала консоль, сейчас эта комбинация после убийства иксов дает черный экран, и нет возможности переключится в соседнюю консоль по Alt+F(x). Кроме того такая комбинация серъезная дыра в безопасности, как мне кажется :) - неаунитифицированный локальный пользователь сможет вызвать отказ в работе системы :) |
vasek |
|
Темы:
48
Сообщения:
11340
Участник с: 17 февраля 2013
|
Меня пока берегло, уже писал об этом раньше. Дальше “oops” не выходило - всегда удавалось попасть в консоль по Alt+F(n). PS - а насчет дыры, если локально, то защиты от проникновения в компьютер нет. Сейчас используется, узким кругом лиц, совсем другой способ защиты информации, совсем противоположный ее назначению - уничтожение информации + к этому расстановка ловушек. Просто смешно смотреть как показывают по телевизору - люди в масках врываются в офис и изымают диски. Ну не ужели фирма, ворочающая миллионами и миллиардами, не потратит несколько десятков или сот тысяч на защиту наиболее важной (открытой к доступу) информации (читай здесь уничтожение)
Ошибки не исчезают с опытом - они просто умнеют
|