Я фанат этого блога! Подписаться

Linux дистрибутивы

На нашем линукс блоге вы можете скачать linux дистрибутивы, а так же найти много информации по линуксу

Subscribe

Что делать при ЧП

Июнь 27th, 2009

cp.jpg
В некоторых случаях администратор системы будет сталкиваться с проблемой выкарабкивания из абсолютной катастрофы, такой например, как забытие пароля root или крах файловой системы. Лучший совет: без паники! Все делают глупые ошибки: это лучший способ освоить системное администрирование, хотя и тяжелый.

Linux не является нестабильной версией UNIX. Действительно, у меня было значительно меньше проблем с зависанием системы, чем с коммерческими версиями UNIX на многих платформах. Linux также выигрывает от большого расположения к нему крутых программистов, которые могут помочь выпутаться из сложной ситуации.

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

Очень редки случаи, когда после краха системы требуется переинсталляция: это вам не винды… Многие начинающие пользователи случайно удаляют некоторые важные системные файлы и немедленно бегут за инсталляционным диском. Прежде чем применять такие отвратительные меры, исследуйте проблему и попросите других помочь ее решить. В большинстве случаев вы можете восстановить систему с дискеты сопровождения (maintenance diskette).

Восстановление с использованием дискеты сопровождения.

Одно незаменимое средство для администратора системы, это так называемый “boot/root disk”, дискета, которая может загрузить полный Linux, вне зависимости от вашего жесткого диска. Boot/root disks в действительности очень прост: вы создаете корневую файловую систему на дискете, помещая на нее все необходимые утилиты, инсталлируя на дискете LILO и загружаемое ядро. Другой способ, это использовать одну дискету для ядра и другую для корневой файловой системы. В любом случае результат одинаков: Вы запускаете Linux полностью с дискет.

Канонический пример boot/root disk это загрузочный диск Slackware. Для этого вам не надо скачивать дистрибутив полностью: хватит только boot и root дискеты). Эти дискеты содержат загрузочную таблицу и корневую файловую систему. Предполагается, что они используются при инсталляции дистрибутивов Slackware, но они бывают очень полезны и для сопровождения системы.

Boot/root disk, созданный H.J Lu, который можно взять в /pub/Linux/GCC/rootdisk на sunsite.unc.edu другой пример такого рода диска сопровождения.

Использовать boot/root disk очень легко. Просто загрузите диск на вашей системе и войдите под root (обычно без пароля). Чтобы получить доступ к файлам вашего жесткого диска, необходимо смонтировать ваши файловые системы вручную. Например, команда:

# mount -t ext2 /dev/hda2 /mnt

смонтирует файловую систему ext2fs на /dev/hda2 под /mnt. Помните, что / теперь находится на boot/root disk; вам необходимо смонтировать файловую систему вашего жесткого диска под каким-то каталогом, чтобы получить доступ к файлам. Так что /etc/passwd вашего жесткого диска теперь /mnt/etc/passwd, если вы смонтировали вашу корневую файловую систему на /mnt.

Восстановление пароля для root.

Если вы забыли пароль вашего root, нет проблем. Просто загрузитесь с boot/root disk, смонтируйте вашу корневую файловую систему под /mnt и сотрите поле пароля для root в /mnt/etc/passwd, как например:

root::0:0:root:/:/bin/sh

теперь root остался вообще без пароля; когда вы перезагрузитесь с жесткого диска, вы сможете войти как root и снова установить пароль, используя команду passwd.

Не правда ли, вы счастливы, что научились работать с vi? На вашей boot/root disk, редакторов, вроде Emacs наверняка нет, а vi должен быть, (Прим. переводчика: администратор должен отдавать себе отчет, что процедуру снятия пароля root умеет запросто выполнять не он один).

Восстановление файловой системы.

Если у вас каким-то образом грохнулась файловая система, вы можете использовать e2fsck (это в случае, если вы используете файловую систему типа ext2fs) для исправления запорченных данных файловой системы с дискет. Другие файловые системы используют другие формы команды fsck

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

Частая причина неисправности файловой системы: порча суперблока. Суперблок, это заголовок (“header’)'файловой системы, который содержит информацию о статусе файловой системы, размере, свободных блоках и т.д. Если вы попортили ваш суперблок (например, случайно прямо в него записали какие-то данные) операционная система может вообще не распознать файловую систему. Все попытки примонтировать файловую систему потерпят неудачу, и e2fsck не поможет решить проблему.

К счастью, файловая система типа ext2fs сохраняет копии суперблока в границах “группы блоков” (“block group”) на диске, обычно через каждые 8 KБ блоков. Для того, чтобы приказать e2fsck использовать копию суперблока, вы можете использовать команду:

# e2fsck -b 8193 partition

здесь partition, это раздел, на котором располагается файловая система. Опция -b 8193 приказывает e2fsck использовать копию суперблока, хранящуюся в блоке 8193 файловой системы.

Восстановление потерянных файлов.

Если вы случайно удалили важные файлы, нет способа их “разудалить” обратно. Однако, вы можете скопировать соответствующие файлы с дискеты к себе на жесткий диск. Например, если вы удалите /bin/login в своей системе (который обеспечивает вход в систему), просто загрузите boot/root дискету, смонтируйте корневую файловую систему на /mnt и используйте команду:

# cp -a /bin/login /mnt/bin/login

опция -a приказывает cp сохранить права доступа копируемых файлов.

Разумеется, если удаленные файлы не столь существенны, что они не были удостоены копирования на дискету boot/root, значит вам не повезло. Если вы создавали резервные копии, вы можете скопировать файлы оттуда.

Восстановление потерянных библиотек.

Если вы случайно потеряли свои библиотеки или символические связи в /lib, скорее всего команды, которые зависят от этих библиотек, больше не будут выполняться . Простейшее решение: загрузиться с дискеты boot/root, смонтировать вашу корневую файловую систему и восстановить библиотеки в /mnt/lib.

Комментировать

 


melayu boleh