BASH Programming - Введение

       

Вы забыли запустить LILO, или система просто не грузится


Оххх! Лучшая вещь, которую вы можете сделать в этом случае это загрузиться с дискеты подготовить другой загрузочный диск (такой какой должна сделать команда `make zdisk'). Вам необходимо знать где находится ваша корневая файловая система (/) и какой тип она имеет (например second extended, minix). В нижеприведенном примере, вам также необходимо знать на какой файловой системе находится дерево исходных текстов /usr/src/linux, ее тип и где она обычно монтируется.

В следующем примере, / находится на /dev/hda1, а файловая система, которая содержит /usr/src/linux находится на /dev/hda3, обычно смонтированной как /usr. Обе относятся к типу second extended файловых систем. Рабочее ядро находится в директории /usr/src/linux/arch/i386/boot и называется zImage.

Идея заключается в том, что если есть работающее ядро, то можно использовать его для создания нового загрузочного гибкого диска. Другой вариант, который может работать лучше (а может и не работать, это зависит от конкретного метода которым вы сломали свою систему) обсуждается дальше после примера.

С начала загрузимся с комбинации загрузочного/корневого дисков или спасательного (rescue) диска, и смонтируем файловую систему, которая содержит работающее ядро:

mkdir /mnt mount -t ext2 /dev/hda3 /mnt

Если mkdir сообщает вам, что директория уже существует, то просто проигнорируйте это сообщение. Затем перейдите в ту директорию, где находится работающее ядро. Заметим, что

/mnt + /usr/src/linux/arch/i386/boot - /usr = /mnt/src/linux/arch/i386/boot

Поместите отформатированную дискету в привод ``A:'' (только не загрузочную дискету и не дискету с корневой файловой системой!), и перебросьте ядро на дискету и настройте его на вашу корневую файловую систему:

cd /mnt/src/linux/arch/i386/boot dd if=zImage of=/dev/fd0 rdev /dev/fd0 /dev/hda1

перейдите в / и отмонтируйте обычную файловую систему /usr:

cd / umount /mnt

Теперь вы должны иметь возможность перезагрузить ваш компьютер как обычно с созданной дискеты. Не забудьте перезапустить lilo (или выполнить то, что вы сделали не правильно) после перезагрузки!

Как было упомянуто выше, существует другая общая альтернатива. Если у вас к счастью имеется рабочее ядро находящееся на разделе / (например /vmlinuz), то вы можете использовать его для загрузочной дискеты. Предполагая все вышеприведенные условия, и что наше ядро находится в /vmlinuz, то просто сделайте изменения в вышеприведенном примере: измените /dev/hda3 на /dev/hda1 (корневая файловая система), /mnt/src/linux на /mnt, и if=zImage на if=vmlinuz. Замечание о том как получить доступ к /mnt/src/linux может быть проигнорировано.

Используя LILO с большими дисками (больше чем 1024 цилиндра) может вызвать проблемы. Смотрите LILO mini-HOWTO или документацию для помощи в этом случае.



Содержание раздела