0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Вы когда-нибудь задумывались, что происходит за кулисами с момента нажатия кнопки питания до появления приглашения для входа в Linux? Ниже приведены 6 этапов типичного процесса загрузки Linux.</p>
1
<p>Вы когда-нибудь задумывались, что происходит за кулисами с момента нажатия кнопки питания до появления приглашения для входа в Linux? Ниже приведены 6 этапов типичного процесса загрузки Linux.</p>
2
<p>А теперь обо всем по порядку.</p>
2
<p>А теперь обо всем по порядку.</p>
3
<h2>1. BIOS</h2>
3
<h2>1. BIOS</h2>
4
<p>Что можно сказать про BIOS:</p>
4
<p>Что можно сказать про BIOS:</p>
5
<ol><li>BIOS означает базовую систему ввода/вывода.</li>
5
<ol><li>BIOS означает базовую систему ввода/вывода.</li>
6
<li>Выполняет некоторые проверки целостности системы.</li>
6
<li>Выполняет некоторые проверки целостности системы.</li>
7
<li>Ищет, загружает и запускает программу загрузчика.</li>
7
<li>Ищет, загружает и запускает программу загрузчика.</li>
8
<li>Он ищет загрузчик на дискете, компакт-диске или жестком диске. Вы можете нажать клавишу (обычно F12 или F2, но это зависит от вашей системы) во время запуска BIOS, чтобы изменить последовательность загрузки.</li>
8
<li>Он ищет загрузчик на дискете, компакт-диске или жестком диске. Вы можете нажать клавишу (обычно F12 или F2, но это зависит от вашей системы) во время запуска BIOS, чтобы изменить последовательность загрузки.</li>
9
<li>Как только программа загрузчика обнаружена и загружена в память, BIOS передает ей управление.</li>
9
<li>Как только программа загрузчика обнаружена и загружена в память, BIOS передает ей управление.</li>
10
</ol><p>Итак, говоря простым языком,<strong>BIOS загружает и запускает загрузчик MBR</strong>.</p>
10
</ol><p>Итак, говоря простым языком,<strong>BIOS загружает и запускает загрузчик MBR</strong>.</p>
11
<h2>2. MBR</h2>
11
<h2>2. MBR</h2>
12
<p>MBR расшифровывается как Master Boot Record. Он находится в 1-м секторе загрузочного диска. Обычно это /dev/hda или / dev/sda. MBR имеет размер менее 512 байт. Он состоит из трех компонентов: 1) информация основного загрузчика в первых 446 байтах; 2) информация таблицы разделов в следующих 64 байтах; 3) проверка правильности mbr в последних 2 байтах.</p>
12
<p>MBR расшифровывается как Master Boot Record. Он находится в 1-м секторе загрузочного диска. Обычно это /dev/hda или / dev/sda. MBR имеет размер менее 512 байт. Он состоит из трех компонентов: 1) информация основного загрузчика в первых 446 байтах; 2) информация таблицы разделов в следующих 64 байтах; 3) проверка правильности mbr в последних 2 байтах.</p>
13
<p>Он содержит информацию о GRUB (или LILO в старых системах).</p>
13
<p>Он содержит информацию о GRUB (или LILO в старых системах).</p>
14
<p>Итак, проще говоря,<strong>MBR загружает и запускает загрузчик GRUB</strong>.</p>
14
<p>Итак, проще говоря,<strong>MBR загружает и запускает загрузчик GRUB</strong>.</p>
15
<h2>3. GRUB</h2>
15
<h2>3. GRUB</h2>
16
<p>GRUB расшифровывается как Grand Unified Bootloader.</p>
16
<p>GRUB расшифровывается как Grand Unified Bootloader.</p>
17
<p>Если в вашей системе установлено несколько образов ядра, вы можете выбрать, какой из них будет выполнен.</p>
17
<p>Если в вашей системе установлено несколько образов ядра, вы можете выбрать, какой из них будет выполнен.</p>
18
<p>GRUB отображает экран-заставку, ждет несколько секунд, если вы ничего не вводите, загружает образ ядра по умолчанию, как указано в файле конфигурации grub. GRUB знает файловую систему (старый загрузчик Linux LILO не понимал файловую систему).</p>
18
<p>GRUB отображает экран-заставку, ждет несколько секунд, если вы ничего не вводите, загружает образ ядра по умолчанию, как указано в файле конфигурации grub. GRUB знает файловую систему (старый загрузчик Linux LILO не понимал файловую систему).</p>
19
<p>Файл конфигурации Grub - это /boot/grub/grub.conf (/etc/grub.conf - это ссылка на него). Ниже приведен пример файла grub.conf из CentOS.</p>
19
<p>Файл конфигурации Grub - это /boot/grub/grub.conf (/etc/grub.conf - это ссылка на него). Ниже приведен пример файла grub.conf из CentOS.</p>
20
# загрузка = / dev / sda по умолчанию = 0 тайм-аут = 5 splashimage = (hd0,0) /boot/grub/splash.xpm.gz скрытое меню название CentOS (2.6.18-194.el5PAE) корень (hd0,0) ядро /boot/vmlinuz-2.6.18-194.el5PAE ro root = LABEL = / initrd /boot/initrd-2.6.18-194.el5PAE.img<p>Как вы заметили из приведенной выше информации, он содержит ядро и образ initrd. Проще говоря,<strong>GRUB просто загружает и выполняет образы ядра и initrd</strong>.</p>
20
# загрузка = / dev / sda по умолчанию = 0 тайм-аут = 5 splashimage = (hd0,0) /boot/grub/splash.xpm.gz скрытое меню название CentOS (2.6.18-194.el5PAE) корень (hd0,0) ядро /boot/vmlinuz-2.6.18-194.el5PAE ro root = LABEL = / initrd /boot/initrd-2.6.18-194.el5PAE.img<p>Как вы заметили из приведенной выше информации, он содержит ядро и образ initrd. Проще говоря,<strong>GRUB просто загружает и выполняет образы ядра и initrd</strong>.</p>
21
<h2>4. Ядро</h2>
21
<h2>4. Ядро</h2>
22
<p>Монтирует корневую файловую систему, как указано в "root =" в grub.conf Ядро выполняет программу /sbin/init.</p>
22
<p>Монтирует корневую файловую систему, как указано в "root =" в grub.conf Ядро выполняет программу /sbin/init.</p>
23
<p>Поскольку init была первой программой, выполняемой ядром Linux, она имеет идентификатор процесса (PID) 1. Выполните ps -ef | grep init и проверьте pid.</p>
23
<p>Поскольку init была первой программой, выполняемой ядром Linux, она имеет идентификатор процесса (PID) 1. Выполните ps -ef | grep init и проверьте pid.</p>
24
<p>Также:</p>
24
<p>Также:</p>
25
<ul><li>initrd означает начальный RAM-диск;</li>
25
<ul><li>initrd означает начальный RAM-диск;</li>
26
<li>initrd используется ядром как временная корневая файловая система до тех пор, пока ядро не загрузится и не смонтирована настоящая корневая файловая система. Он также содержит необходимые драйверы, скомпилированные внутри, которые помогают ему получить доступ к разделам жесткого диска и другому оборудованию.</li>
26
<li>initrd используется ядром как временная корневая файловая система до тех пор, пока ядро не загрузится и не смонтирована настоящая корневая файловая система. Он также содержит необходимые драйверы, скомпилированные внутри, которые помогают ему получить доступ к разделам жесткого диска и другому оборудованию.</li>
27
</ul><h2>5. Init</h2>
27
</ul><h2>5. Init</h2>
28
<p>Смотрит на файл /etc/inittab, чтобы определить уровень запуска Linux.</p>
28
<p>Смотрит на файл /etc/inittab, чтобы определить уровень запуска Linux.</p>
29
<p>Ниже приведены доступные уровни запуска:</p>
29
<p>Ниже приведены доступные уровни запуска:</p>
30
<ul><li>0 - остановка;</li>
30
<ul><li>0 - остановка;</li>
31
<li>1 - однопользовательский режим;</li>
31
<li>1 - однопользовательский режим;</li>
32
<li>2 - многопользовательский, без NFS;</li>
32
<li>2 - многопользовательский, без NFS;</li>
33
<li>3 - полный многопользовательский режим;</li>
33
<li>3 - полный многопользовательский режим;</li>
34
<li>4 - не используется;</li>
34
<li>4 - не используется;</li>
35
<li>5 - X11;</li>
35
<li>5 - X11;</li>
36
<li>6 - перезагрузка.</li>
36
<li>6 - перезагрузка.</li>
37
</ul><p>Init определяет уровень инициализации по умолчанию из/etc/inittab и использует его для загрузки всей соответствующей программы.</p>
37
</ul><p>Init определяет уровень инициализации по умолчанию из/etc/inittab и использует его для загрузки всей соответствующей программы.</p>
38
<p>Выполните grep initdefault/etc/inittab в вашей системе, чтобы определить уровень запуска по умолчанию.</p>
38
<p>Выполните grep initdefault/etc/inittab в вашей системе, чтобы определить уровень запуска по умолчанию.</p>
39
<p>Если вы хотите попасть в затруднительное положение, вы можете установить уровень запуска по умолчанию на 0 или 6. Поскольку вы знаете, что означают 0 и 6, возможно, вы этого не сделаете.</p>
39
<p>Если вы хотите попасть в затруднительное положение, вы можете установить уровень запуска по умолчанию на 0 или 6. Поскольку вы знаете, что означают 0 и 6, возможно, вы этого не сделаете.</p>
40
<p>Обычно вы устанавливаете уровень запуска по умолчанию на 3 или 5.</p>
40
<p>Обычно вы устанавливаете уровень запуска по умолчанию на 3 или 5.</p>
41
<h2>6. Runlevel</h2>
41
<h2>6. Runlevel</h2>
42
<p>Когда система Linux загружается, вы можете увидеть запуск различных служб. Например, можно увидеть "запуск sendmail… В ПОРЯДКЕ”. Это программы уровня выполнения, выполняемые из каталога уровня выполнения, как определено вашим уровнем выполнения.</p>
42
<p>Когда система Linux загружается, вы можете увидеть запуск различных служб. Например, можно увидеть "запуск sendmail… В ПОРЯДКЕ”. Это программы уровня выполнения, выполняемые из каталога уровня выполнения, как определено вашим уровнем выполнения.</p>
43
<p>В зависимости от вашего уровня инициализации по умолчанию, система будет запускать программы из одного из следующих каталогов:</p>
43
<p>В зависимости от вашего уровня инициализации по умолчанию, система будет запускать программы из одного из следующих каталогов:</p>
44
<ul><li>Уровень запуска 0 - /etc/rc.d/rc0.d/</li>
44
<ul><li>Уровень запуска 0 - /etc/rc.d/rc0.d/</li>
45
<li>Уровень выполнения 1 - /etc/rc.d/rc1.d/</li>
45
<li>Уровень выполнения 1 - /etc/rc.d/rc1.d/</li>
46
<li>Уровень выполнения 2 - /etc/rc.d/rc2.d/</li>
46
<li>Уровень выполнения 2 - /etc/rc.d/rc2.d/</li>
47
<li>Уровень запуска 3 - /etc/rc.d/rc3.d/</li>
47
<li>Уровень запуска 3 - /etc/rc.d/rc3.d/</li>
48
<li>Уровень запуска 4 - /etc/rc.d/rc4.d/</li>
48
<li>Уровень запуска 4 - /etc/rc.d/rc4.d/</li>
49
<li>Выполните уровень 5 - /etc/rc.d/rc5.d/</li>
49
<li>Выполните уровень 5 - /etc/rc.d/rc5.d/</li>
50
<li>Уровень запуска 6 - /etc/rc.d/rc6.d/</li>
50
<li>Уровень запуска 6 - /etc/rc.d/rc6.d/</li>
51
</ul><p>Обратите внимание, что для этого каталога есть также символические ссылки, которые находятся непосредственно в /etc. Итак, /etc/rc0.d связан с /etc/rc.d/rc0.d.</p>
51
</ul><p>Обратите внимание, что для этого каталога есть также символические ссылки, которые находятся непосредственно в /etc. Итак, /etc/rc0.d связан с /etc/rc.d/rc0.d.</p>
52
<p>В каталогах /etc/rc.d/rc*.d/ вы увидите программы, которые начинаются с S и K. Программы, начинающиеся с буквы S, используются при запуске. S для запуска. Программы, начинающиеся с K, используются при выключении. K для удаления. В названиях программ рядом с S и K есть цифры. Это порядковые номера, по которым программы должны быть запущены или завершены.</p>
52
<p>В каталогах /etc/rc.d/rc*.d/ вы увидите программы, которые начинаются с S и K. Программы, начинающиеся с буквы S, используются при запуске. S для запуска. Программы, начинающиеся с K, используются при выключении. K для удаления. В названиях программ рядом с S и K есть цифры. Это порядковые номера, по которым программы должны быть запущены или завершены.</p>
53
<p>Например, S12syslog запускает демон syslog с порядковым номером 12. S80sendmail запускает демон sendmail с порядковым номером 80. Таким образом, программа syslog запускается перед sendmail.</p>
53
<p>Например, S12syslog запускает демон syslog с порядковым номером 12. S80sendmail запускает демон sendmail с порядковым номером 80. Таким образом, программа syslog запускается перед sendmail.</p>
54
<p>Вот и все. Это то, что происходит в процессе загрузки Linux. Спасибо всем!</p>
54
<p>Вот и все. Это то, что происходит в процессе загрузки Linux. Спасибо всем!</p>
55
55