Восстановление загрузчика в Linux

Восстановление загрузчика в Linux В связи с часто возникающими вопросами о восстановлении загрузчика Linux хочется опубликовать пару строчек на эту тему.

Восстановление загрузчика. Иногда может возникнуть ситуация, когда загрузчик lilo удален при установке Windows или просто установлен некорректно. Что сделать в этом случае?
Для восстановления lilo вам может понадобиться машина с установленным Linux или любая загрузочная дискета от любого дистрибутива. Или загрузочный CD с любой версией любого дистрибутива.
Для начала необходимо каким-то образом загрузить установленный у вас Linux. Для этого:
— вставьте загрузочный диск в CD-привод или дисковод;
— настройте загрузку с него в вашем BIOS;
— во время загрузки загрузчик выдаст фразу "boot:" или подобную;
— в ответ нужно написать: vmlinuz -S root=/dev/ваш_root_раздел.
После загрузки ядра вы должны будете попасть в восстанавливаемую систему. На сообщения об ошибках при загрузке не обращайте внимания. Попав в систему под пользователем root, поправьте файл /etc/lilo.conf (если это необходимо) и дайте команду lilo. После этого смело вводите команду reboot и грузитесь с вашего жесткого диска.
Но иногда бывают случаи, когда загрузить систему подобным образом не удается. Для этого у ядра существует еще парочка неплохих параметров. В частности, один из них — "init=", а другой — "rw". Напишите в ответ на приглашение "boot:" cледующее:
vmlinuz root=/dev/ваш_root_раздел init=/bin/bash rw
Эта строчка делает так, что после загрузки вашего ядра не будет запускаться init, а вместо него запустится обычный bash и при этом root раздел диска будет примонтирован в режиме чтение-запись, что позволит вам производить необходимые изменения. Важное замечание: у вас не окажется не только прописанных в переменную PATH путей, но и в целом всей системы контроля за вашими неправильными действиями. После того, как вы поправите необходимые вам файлы, нужно в обязательном порядке дать следующие команды:
sync
mount -o remount,ro /
Эти две команды сбросят кэш диска и перемонтируют файловую систему в режим только для чтения. После выполнения команд проверьте возможность записи на раздел. Если не получилось — смело перезагружайте систему и загружайтесь обычным порядком, как всегда, не обращая внимания на проверку жесткого диска. Это два основных способа, которые позволяют практически в любом случае получить доступ к работоспособной системе и, ликвидировав ошибки, перезагрузить ее. Но можно сделать еще проще! Для этого вам понадобится всего лишь ядро Linux и утилита rdev. Чистую отформатированную дискету вставьте в дисковод на рабочей Linux-машине. Запишите на дискету ядро:
cat /boot/vmlinuz> /dev/fd0
после записи укажите этому ядру root каталог для загрузки:
rdev /dev/fd0 /dev/ваш_упавший_ root_раздел
Теперь вы можете загружаться с этой дискеты на вашей машине при возможных проблемах.
Как это работает? Идем в каталог /usr/src/Linux, где должны быть исходники ядра, и далее, в каталоге init, смотрим файл main.c. Там вы найдете вызов init и все сразу поймете.


Компьютерная газета. Статья была опубликована в номере 18 за 2002 год в рубрике soft :: linux

©1997-2024 Компьютерная газета