Сайт любителей Linux Мурманской обл.
Вторник, 01.09.2026, 06:22
Меню сайта
Категории каталога
Общие статьи [8]
Статьи на общие темы
Наш опрос
Оцените мой сайт
Всего ответов: 29
Главная » Статьи » Общие статьи

Когда Linux не загружается

Что такое загрузка, или «начальная загрузка» - это та глубоко таинственная последовательность операций, выполняемых компьютером между его включением и выводом приглашения войти в систему. За это время куча непонятных сообщений проплывает по экрану, но обычно пользователи их игнорируют, и большинство дистрибутивов Linux скрывает их за красивым экраном с обнадеживающим процесс-индикатором. И это замечательно – пока работает. В данной статье мы рассмотрим процесс загрузки более подробно: в частности, выясним, что может пойти неправильно и как диагностировать и устранить проблему.

 

Проникаемся проблемой

Совет: «При устранении неисправности первым делом надо понять, как система должна работать. Вторая важная вещь – точно представить, что система пыталась сделать, когда неисправность возникла».

 

Помня об этом, взглянем на загрузку Linux. Знание нормальной последовательности событий и установление, как далеко она зашла перед возникновением проблемы, являются ключевыми для диагностики и исправления проблем загрузки. Рисунок 1 показывает нормальную последовательность событий (зеленые стрелки) и указывает на некоторые возможные пути неудачи (красные стрелки).

 

Рис. 1: Нормальный порядок событий загрузки Linux



Знакомимся с загрузкой поближе

Загрузка – операция многоступенчатая. При включении компьютера контроль в начале переходит к программе, называемой BIOS, которая хранится в постоянной памяти на материнской плате. BIOS выполняет тестирование оборудования и разведку окрестностей на предмет устройств для загрузки, и выводит экран конфигурации, позволяющий установить порядок поиска загрузочных устройств; в современных BIOS их диапазон весьма широк, в том числе PXE-загрузка с сетевого сервера. Но в данной главе мы рассмотрим только загрузку с жесткого диска.

 

Затем BIOS считывает главную загрузочную запись (Master Boot Record, MBR) с выбранного устройства и запускает ее. (Не найдя MBR, BIOS выведет сообщение вида «Нет операционной системы» и впадет в полный ступор.) MBR занимает первый сектор диска. Он содержит таблицу разделов (64 байта) и очень короткую (446 байт) программу первичной загрузки, или 'stage 1'. Этот загрузчик всего-навсего выводит на экран слово Grub и передает эстафету загрузчику второй стадии, используя «карту блоков», внедренную в MBR (карта содержит номера блоков, где находится загрузчик 'stage 2'). Здесь подразумевается, что вы используйте загрузчик Grub. Существует также более старый загрузчик Lilo, но Grub «умнее» и используется в большинстве современных дистрибутивов Linux. Второй этап работы загрузчика Grub по сути дела «полуторный», и если вы посмотрите в директории /boot/grub, то увидите там файлы, содержащие различные его варианты, с именами вида e2fs_stage_1_5 и reiserfs_stage_1_5. Каждая из этих программ способна получить доступ к фалам по их имени, используя определенный формат файловой системы. e2fs_stage_1_5 может читать файловые системы ext2 и ext3, reiserfs_stage_1_5 – файловую систему reiser, и т.д. Grub способен обратиться к файлам по их имени во время начальной загрузки (перед запуском Linux), и этим он отличается от Lilo. Программа «полуторного» этапа загружает Grub stage 2, который значительно больше. На этом этапе считывается файл конфигурации Grub (обычно /boot/grub/menu.lst или /boot/grub/grub.conf) и, на основе содержащихся там записей, выводится меню выбора операционных систем для загрузки. Если Grub не может найти свой файл конфигурации, он переходит в интерактивную командную строку, позволяющую ввести команды Grub вручную. Типичное содержание записи menu.lst такое:


title openSUSE 10.2

        root (hd0,0)

        kernel /boot/vmlinuz-2.6.18.2-34-default root=/dev/hda1 vga=0x317

showopts

        initrd /boot/initrd-2.6.18.2-34-default

 

Первая строчка просто содержит текст, который появится в меню загрузки. Следующие за ней строки содержат команды, которые Grub должен выполнить, если вы выберите этот пункт меню. Строка root подсказывает Grub, где искать корневую файловую систему. У Grub своя система именования разделов диска, отличная от системы, принятой в Linux, что сбивает с толку. На языке Grub hd0 означает первый диск – а на обычном ПК с IDE-дисками это будет ссылка на Linux-устройство /dev/hda, или, на более свежих дистрибутивах, /dev/sda1. На языке Grub (hd0,0) ссылается на первый раздел этого диска – в Linux это будет /dev/hda1 или /dev/sda1. Строка kernel определяет файл, который Grub должен запустить как ядро Linux; в конце этой строки вы увидите несколько дополнительных параметров загрузки, передаваемых ядру. Подробнее об этом чуть позже. Строка initrd определяет файл ‘initial RAM Disk’ – образ файловой системы, которая будет использоваться ядром как загрузочная. Grub также отвечает за загрузку его в память. если Grub не может найти ядро или образ ram-диска, он выводит Error 15: File not found (Ошибка 15: Файл не найден) и останавливается.

 

Как только ядро стартует, оно монтирует файловую систему с жесткого диска. Имя раздела, содержащего эту файловую систему, передается ядру как параметр, который вы видели в файле menu.lst выше. Монтирование корневой файловой системы – ключевая точка процесса загрузки, и если вы пытаетесь точно определить проблему, жизненно важно выяснить, удалось ли ядру это сделать. Сбой в монтировании файловой системы, как правило, приводит к «панике ядра» [kernel panic], хотя некоторые системы просто зависают. Если же ядро благополучно смонтировало корневую файловую систему, оно создает одиночный процесс (с ID 1), выполняющий программу /sbin/init. Если ядро не может найти init, оно также «паникует» и останавливается или (в зависимости от дистрибутива) выкидывает в командную строку суперпользователя. Да, кстати, придется добавить вам путаницы: Ubuntu больше не использует init, он заменен на upstart.

 

Init отвечает за запуск скриптов, которые запустят все остальные сервисы в системе. Существует очень важный и достаточно низкоуровневый скрипт, запускаемый init в начале процесса. В Red-Hat-подобных системах это /etc/rc.d/rc.sysinit, в SUSE – /etc/init.d/boot. Среди прочего, этот первичный скрипт последовательно проверяет и монтирует остальные разделы диска, прописанные в /etc/fstab. Хотя, конечно, на этом этапе тоже хватает потенциальных неприятностей.

 

Берем Grub под контроль

 Ключевое умение в исправлении проблем загрузки – это знание, как вручную вмешаться в процесс загрузки Grub. Большинство дистрибутивов конфигурируют Grub на выбор пункта меню «по умолчанию», но на короткое время (пару секунд) отображает окно, где вы можете нажать Esc для прерывания процесса и принятия полного контроля над Grub на себя. Обычно это ведет к выходу из заставки Grub в текстовое меню. Здесь, следуя инструкциям на экране, выберите пункт меню и отредактируйте связанные с ним команды перед загрузкой. Можно даже переключиться в командную строку Grub и вводить команды Grub напрямую; например в этом месте вы можете, теоретически, вручную ввести root, kernel и initrd строки из файла menu.lst, который мы рассмотрели ранее.


Спасательная загрузка

Если все способы «подкрутки» команд в меню загрузки Grub не помогли загрузить систему, может быть, настало время выполнить ‘rescue boot’ [спасательную загрузку], которая означает, что вы должны загрузить Linux c инсталляционного CD или другого «средства спасения». Ядро и его модули загружаются с CD вместе с небольшой файловой системой, хранящейся в памяти. В результате запускается маленький, но работоспособный Linux, не привязанный ни к какой файловой системе на жестком диске. Потом вы можете смонтировать разделы жесткого диска в файловую систему и получить к ним доступ для устранения неполадки. Помогут установочные CD или DVD большинства современных дистрибутивов, так как для восстановления определенного дистрибутива не требуется именно его установочный диск, и вы можете взять любой доступный.

 

Пользуясь спасательной системой, очень важно иметь ясную голову, потому что файлы на вашем жестком диске окажутся не в тех местах, в которых вы видели их при «реальной» установке. Например, если в спасательной системе смонтировать корневой раздел в /mnt, то файл, обычно видимый в /etc/fstab, нужно будет искать в /mnt/etc/fstab.

Источник: http://www.linuxformat.ru (журнал)
Категория: Общие статьи | Добавил: Hub-lex (04.05.2008) | Автор: Hub-lex
Просмотров: 39874 | Комментарии: 17 | Рейтинг: 4.0/1 |
Всего комментариев: 8
8 ms windows7 activation  
0
clrpw hihak jbipv fgwro http://www.win7productkeys.org/ windows 7 home premium key for ultimate
jnixj http://www.win7productkeys.org/#win-7-key-only
windows 7 anytime upgrade buy
mjrnod<br> http://www.win7productkeys.org/product/windows-7-ultimate-34.html - http://www.win7productkeys.org/pimages/s/2006/0.jpg ap tw fb http://www.win7productkeys.org/product/windows-7-professional-sp1-58.html - http://www.win7productkeys.org/pimages/s/2040/0.jpg ul sa se http://www.win7productkeys.org/product/windows-7-home-premium-sp1-56.html - http://www.win7productkeys.org/pimages/s/2036/0.jpg

7 redmkerbr  
0
key windows 7 anytime upgrade crack
win 7 key test
http://www.activationsale.com/ - windows activation codes windows 7 home premium product key crack
windows 7 professional license key free
http://www.activationsale.com/ windows7 key sale
buy windows7 activation key
nzv

6 win7 key on sale  
0
cheap ms windows 7 code keys
cheap ms windows7 product keys
http://www.activationsale.com - cheap microsoft windows 7 codes windows 7 ultimate key generator
http://www.activationsale.com/#9784 windows 7 activation key sale
3

5 microsoft windows 7 activation  
0
windows 7 key codes sale
cheap ms win7 activation key
http://www.activationsale.com - ms windows 7 activation microsoft windows 7 professional anytime upgrade windows 7 home premium
http://www.activationsale.com/#3879 windows 7 Ultimate sp1 activation
3

4 SnnaSusi  
0
Намекните очень нужно каким образом ИксРумер 10 добыть актуальный?

Уважаемые модеры, не злитесь если не туда запостила.

3 Pedaabrah  
0
Слышал эту историю лет так 7 назад.

2 leradresse  
0
Доброго времени суток. Посоветуйте пожалуйста. Где посмотреть железная дверь дешево Торекс?

С уважением, Степан лучников.

1 mydverey  
0
Доброго времени суток. Укажите пожалуйста. Как взять туфли Liska?

С уважением, Александр касанов.

Имя *:
Email *:
Код *:
Форма входа
Поиск
Друзья сайта
Copyright MyCorp © 2026