HTML Diff
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