diff options
author | Andrey Zakhvatov <andy@FreeBSD.org> | 2004-01-23 17:57:07 +0000 |
---|---|---|
committer | Andrey Zakhvatov <andy@FreeBSD.org> | 2004-01-23 17:57:07 +0000 |
commit | 1ecc90186da6a26e4762a79c9a808d6095b7c931 (patch) | |
tree | 24492dc6c539f7111e90b1dfbf1ac09095495da4 /ru_RU.KOI8-R | |
parent | 8fa1c5faf8c9718384162e2bf023be8578593958 (diff) | |
download | doc-1ecc90186da6a26e4762a79c9a808d6095b7c931.tar.gz doc-1ecc90186da6a26e4762a79c9a808d6095b7c931.zip |
MFen 1.55
Notes
Notes:
svn path=/head/; revision=19797
Diffstat (limited to 'ru_RU.KOI8-R')
-rw-r--r-- | ru_RU.KOI8-R/books/handbook/boot/chapter.sgml | 932 |
1 files changed, 599 insertions, 333 deletions
diff --git a/ru_RU.KOI8-R/books/handbook/boot/chapter.sgml b/ru_RU.KOI8-R/books/handbook/boot/chapter.sgml index 65ff99e67b..7d5738ce11 100644 --- a/ru_RU.KOI8-R/books/handbook/boot/chapter.sgml +++ b/ru_RU.KOI8-R/books/handbook/boot/chapter.sgml @@ -2,9 +2,9 @@ The FreeBSD Russian Documentation Project $FreeBSD$ - $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/boot/chapter.sgml,v 1.5 2001/02/09 14:49:15 andy Exp $ + $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/boot/chapter.sgml,v 1.16 2004/01/12 18:47:53 andy Exp $ - Original revision: 1.10 + Original revision: 1.55 --> <chapter id="boot"> @@ -13,378 +13,509 @@ <sect1 id="boot-synopsis"> <title>Описание</title> - <para>Во FreeBSD по умолчанию используется трехэтапный процесс загрузки, - в котором задействованы три программы, последовательно вызывающие друг - друга (два <link linkend="boot-blocks">загрузочных блока</link> и <link - linkend="boot-loader">загрузчик</link>). Каждая их этих трех программ - строится на функциях предыдущей программы и становится все более - сложной.</para> - - <para>Затем стартует ядро, которое детектирует устройства и выполняет - их инициализацию. После завершения процесса своей загрузки, ядро - передает управление пользовательскому процессу с именем &man.init.8;, - который выполняет проверку дисков на возможность использования. Затем - &man.init.8; запускает пользовательский процесс настройки ресурсов, - выполняющий монтирование файловых систем, настройку сетевых адаптеров - для работы в сети и вообще запуск всех процессов, обычно выполняемых - в системе FreeBSD при загрузке.</para> + <indexterm><primary>загрузка</primary></indexterm> + + <indexterm><primary>начальная загрузка</primary></indexterm> + + <para>Процесс включения компьютера и загрузки операционной системы + называется <quote>процессом первоначальной загрузки</quote>, или просто + <quote>загрузкой</quote>. Процесс загрузки FreeBSD предоставляет большие + возможности по гибкой настройке того, что происходит при запуске системы, + позволяя вам выбирать из различных операционных систем, установленных на + одном и том же компьютере, или даже из различных версий той же самой + операционной системы или установленного ядра.</para> + + <para>Эта глава подробно описывает параметры, которые вы можете изменить + для настройки процесса загрузки FreeBSD. Под этим подразумевается все, + что происходит до начала работы ядра FreeBSD, обнаружения устройств и + запуска &man.init.8;. Если вы не совсем уверены, то это происходит, + когда выводимый текст меняет цвет с ярко-белого на серый.</para> + + <para>После чтения этой главы вы будете знать:</para> + + <itemizedlist> + <listitem> + <para>Из каких частей состоит система начальной загрузки FreeBSD, и + как эти части взаимодействуют.</para> + </listitem> + + <listitem> + <para>Параметры, которые вы можете передать компонентам начальной + загрузки FreeBSD для управления этим процессом.</para> + </listitem> + + <listitem> + <para>Основы работы &man.device.hints.5;</para> + </listitem> + </itemizedlist> + + <note> + <title>Только для x86</title> + + <para>Эта глава описывает процесс загрузки FreeBSD только для систем + на основе архитектуры Intel x86.</para> + </note> + </sect1> + + <sect1 id="boot-introduction"> + <title>Проблема загрузки</title> + + <para>Включение компьютера и запуск операционной системы приводят к + интересной дилемме. По определению до запуска операционной системы + компьютер умеет ничего. В том числе и не знает, как запускать программы + с диска. Так что компьютер не может запустить программу с диска без + операционной системы, но программы операционной системы находятся на + диске, но как запустить операционную систему?</para> + + <para>Эта проблема имеет параллели с одной проблемой из книги + <citetitle>Приключения барона Мюнхаузена</citetitle>. Герой провалился в + болото, и вытащил сам себя, ухватив за волосы и потянув. В эпоху начала + компьютеризации термин <firstterm>начальная загрузка</firstterm> + применялся к механизму, используемому для загрузки операционной системы, + и затем был сокращен до просто <quote>загрузки</quote>.</para> + + <para>На оборудовании архитектуры x86 за загрузку операционной системы + отвечает BIOS (Basic Input/Output System). Для этого BIOS ищет на + жестком диске MBR (Master Boot Record), которая должна располагаться в + определенном месте на диске. BIOS может загрузить и запустить MBR, и + предполагается, что MBR может взять на себя остальную работу, связанную с + загрузкой операционной системой.</para> + + <indexterm> + <primary>BIOS</primary> + <secondary>Basic Input/Output System</secondary> + </indexterm> + + <para>Если на вашем диске установлена только одна операционная система, то + стандортной MBR будет достаточно. Такая MBR выполняет поиск на диске + первого загрузочного слайса, после чего запускает с этого слайса код + загрузки оставшейся части операционной системы.</para> + + <para>Если на ваших дисках установлено несколько операционных систем, то + вы можете установить другую MBR, ту, что может выдать список различных + операционных систем и позволит вам выбрать одну из них для загрузки. + FreeBSD поставляется с одной из такой MBR, которую можно установить; + другие производители операционных систем также предоставляют свои + MBR.</para> + + <para>Оставшаяся часть системы начальной загрузки FreeBSD разделяется на + три этапа. Первый этап запускается из MBR, и он знает достаточно для + перевода компьютера в особое состояние и загрузки второго этапа. Второй + этап может делать несколько больше до запуска третьего этапа. Третий + этап заканчивает работу по загрузке операционной системы. Работа + разделена на эти три этапа, потому что стандарты ПК ограничивают размеры + программ, которые могут быть запущены на первом и втором этапах. + Посдедовательное выполнение работ позволяет FreeBSD получить более гибкий + загрузчик.</para> + + <indexterm><primary>ядро</primary></indexterm> + <indexterm><primary><command>init</command></primary></indexterm> + + <para>Затем стартует ядро, которое начинает опознавать устройства и + выполняет их инициализацию. После завершения процесса своей загрузки, + ядро передает управление пользовательскому процессу с именем + &man.init.8;, который выполняет проверку дисков на возможность + использования. Затем &man.init.8; запускает пользовательский процесс + настройки ресурсов, который монтирует файловые системы, выполняет + настройку сетевых адаптеров для работы в сети и вообще осуществляет + запуск всех процессов, обычно выполняемых в системе FreeBSD при + загрузке.</para> </sect1> <sect1 id="boot-blocks"> - <title>Загрузочные блоки: первый и второй этапы начальной загрузки</title> - - <para><firstterm>Начальная загрузка</firstterm> представляет собой - процесс, в течение которого компьютер распознает и инициализирует свои - устройства и определяет, какие программы должны быть запущены.</para> - - <para>В этом процессе задействованы специальные микросхемы Постоянных - Запоминающих Устройств (ПЗУ), которые определяют, что делать и в свою - очередь, передают управление другим микросхемам, которые выполняют - проверку памяти и целостности системы, конфигурируют устройства и - предоставляют другим программам способ выяснить подробную информацию о - настройках.</para> - - <para>В случае обычных персональных компьютеров в этом процессе участвует - BIOS (который ответственен на начальную загрузку) и CMOS (которая - хранит конфигурацию). BIOS и CMOS умеют работать с дисками и также - знают, где на диске находится программа, которая знает, как загрузить - операционную систему.</para> - - <para>Эта глава не описывает первую часть процесса начальной загрузки. - Вместо этого она посвящена тому, что происходит после передачи - управления программе, находящейся на диске.</para> - - <para>Загрузочные блоки (как правило) отвечают за поиск загрузчика, его - запуск и поэтому должны уметь находить программу в файловой системе, - уметь ее запустить, а также должны иметь возможность выполнять - некоторую настройку своей работы.</para> + <title>MBR и первый, второй и третий этапы загрузки</title> <sect2 id="boot-boot0"> - <title>boot0</title> - - <para>На самом деле это предшествующий всему загрузочный блок по имени - boot0, который находится в <firstterm>Главной Загрузочной - Записи</firstterm> (Master Boot Record), особой части диска, которая - используется при начальной загрузке системы для определения порядка - загрузки, и содержит список возможных слайсов для загрузки.</para> + <title>MBR, <filename>/boot/boot0</filename></title> + <indexterm><primary>Master Boot Record (MBR)</primary></indexterm> - <para>boot0 очень прост, так как программа в <abbrev>MBR</abbrev> может - иметь размер, не превышающий 512 байт.</para> + <para>MBR для FreeBSD находится в <filename>/boot/boot0</filename>. Это + <emphasis>копия</emphasis> MBR, так как настоящая MBR должна + располагаться в специальном месте диска, вне области FreeBSD.</para> - <para>Эта программа выводит нечто вроде следующего:</para> + <para><filename>boot0</filename> очень прост, так как программа + в <abbrev>MBR</abbrev> может иметь размер, не превышающий 512 + байт. Если вы установили MBR FreeBSD и несколько операционных + систем на ваш жесткий диск, то во время загрузки вы увидите нечто + похожее на следующее:</para> <example id="boot-boot0-example"> - <title>Образец экрана boot0</title> + <title>Образец экрана <filename>boot0</filename></title> - <screen> -F1 DOS + <screen>F1 DOS F2 FreeBSD F3 Linux F4 ?? F5 Drive 1 -Default: F2 - </screen> +Default: F2</screen> </example> + + <para>Известно, что другие операционные системы, в частности, + &windows; 95, записывают поверх существующей MBR свою собственную. + Если так случилось в вашем случае, или же вы хотите заменить + существующую MBR на MBR от FreeBSD, то воспользуйтесь следующей + командой:</para> + + <screen>&prompt.root; <userinput>fdisk -B -b /boot/boot0 <replaceable>device</replaceable></userinput></screen> + + <para>Здесь <replaceable>device</replaceable> является устройством, с + которого вы загружаетесь, таким, как <devicename>ad0</devicename> в + случае первого диска IDE, <devicename>ad2</devicename> в случае первого + диска IDE на втором контроллере IDE, <devicename>da0</devicename> для + первого диска SCSI и так далее.</para> + + <para>Однако если вы используете Linux и предпочитаете, чтобы процесс + загрузки управлялся через <application>LILO</application>, вы можете + отредактировать файл <filename>/etc/lilo.conf</filename> для FreeBSD + или выбрать <option>Leave The Master Boot Record Untouched</option> + в процессе установки FreeBSD. Если вы установили менеджер загрузки + FreeBSD, то вы можете снова загрузить Linux и изменить конфигурационный + файл <filename>/etc/lilo.conf</filename> для + <application>LILO</application>, добавив следующий параметр:</para> + + <programlisting>other=/dev/hdXY +table=/dev/hdb +loader=/boot/chain.b +label=FreeBSD</programlisting> + + <para>который позволит загружать FreeBSD и Linux посредством + <application>LILO</application>. В нашем примере мы используем + <replaceable>XY</replaceable> для обозначения номера диска и раздела. + Если вы используете диск <acronym>SCSI</acronym>, то вам может + потребоваться заменить <replaceable>/dev/hdXY</replaceable> на что-то + типа <replaceable>/dev/sdXY</replaceable>, где снова используется + обозначение <replaceable>XY</replaceable>. Строка + <option>loader=/boot/chain.b</option> может быть опущена, если обе + операционные системы располагаются на одном и том же диске. Вы можете + теперь запустить <command>/sbin/lilo -v</command> для того, чтобы ваши + изменения были восприняты системой, что должно быть подтверждено + сообщениями на экране.</para> </sect2> <sect2 id="boot-boot1"> - <title>boot1</title> + <title>Этап первый, <filename>/boot/boot1</filename>, и этап второй, + <filename>/boot/boot2</filename></title> - <para>boot1 находится в загрузочном секторе загрузочного слайса, + <para>Концептуально первый и второй этапы загрузки являются частями одной + и той же программы, в той же самой области диск. Из-за ограничений на + объем дискового пространства они были разделены на две, но вы всегда + должны устанавливать их вместе.</para> + + <para>Они располагаются в загрузочном секторе загрузочного слайса, то есть там, где <link linkend="boot-boot0">boot0</link> или любая другая программа из <abbrev>MBR</abbrev> ожидает найти - программу, которую следует запустить для продолжения процесса - загрузки.</para> + программу, которую следует запустить для продолжение процесса загрузки. + Файлы в каталоге <filename>/boot</filename> являются копиями реальных + файлов, которые хранятся вне файловой системы FreeBSD.</para> - <para>boot1 очень прост, так как он тоже может иметь размер, не - превышающий 512 байт, и знает достаточно о <firstterm>метке + <para><filename>boot1</filename> очень прост, так как он тоже может иметь + размер, не превышающий 512 байт, и знает достаточно о <firstterm>метке диска</firstterm> FreeBSD, хранящей информацию о слайсе, для того, - чтобы найти и запустить <link - linkend="boot-boot2">boot2</link>.</para> - </sect2> + чтобы найти и запустить <filename>boot2</filename>.</para> - <sect2 id="boot-boot2"> - <title>boot2</title> - - <para>boot2 устроен несколько более сложно, и умеет работать с файловой - системой FreeBSD в объеме, достаточном для нахождения в ней файлов и - может предоставлять простой интерфейс для выбора и передачи - управления ядру или загрузчику.</para> + <para><filename>boot2</filename> устроен несколько более сложно, и умеет + работать с файловой системой FreeBSD в объёме, достаточном для + нахождения в ней файлов, и может предоставлять простой интерфейс для + выбора и передачи управления ядру или загрузчику.</para> <para>Так как <link linkend="boot-loader">загрузчик</link> устроен гораздо более сложно, и дает удобный и простой способ настройки - процесса загрузки, boot2 обычно запускает его, однако раньше его - задачей был запуск непосредственно самого ядра.</para> + процесса загрузки, <filename>boot2</filename> обычно запускает его, + однако раньше его задачей был запуск непосредственно самого + ядра.</para> <example id="boot-boot2-example"> - <title>Образец экрана boot2</title> + <title>Образец экрана <filename>boot2</filename></title> <screen> >> FreeBSD/i386 BOOT -Default: 0:wd(0,a)/kernel +Default: 0:ad(0,a)/kernel boot: </screen> </example> - </sect2> - </sect1> - - <sect1 id="boot-loader"> - <title>Загрузчик: третий этап процесса начальной загрузки</title> - - <para>Передача управления загрузчику является последним, третьим этапом в - процессе начальной загрузки, а сам загрузчик находится в файловой - системе, обычно как <filename>/boot/loader</filename>.</para> - - <note> - <para>Когда как файлы <filename>/boot/boot0</filename>, - <filename>/boot/boot1</filename> и - <filename>/boot/boot2</filename> здесь присутствуют, они не являются - реальными копиями <abbrev>MBR</abbrev>, загрузочного сектора или - метки диска соответственно.</para> - </note> - - <para>Загрузчик являет собой удобный в использовании инструмент для - настройки при помощи простого набора команд, управляемого более мощным - интерпретатором с более сложным набором команд.</para> - - <sect2 id="boot-loader-flow"> - <title>Процесс работы загрузчика</title> - - <para>Во время инициализации загрузчик пытается произвести поиск - консоли, дисков и определить, с какого диска он был запущен. - Соответствующим образом он задает значения переменных и после этого - запускает интерпретатор, а простые команды передаются уже ему.</para> - - <para>Затем загрузчик читает файл - <filename>/boot/loader.rc</filename>, который по умолчанию использует - файл <filename>/boot/defaults/loader.conf</filename>, устанавливающий - подходящие значения по умолчанию для переменных и читает файл - <filename>/boot/loader.conf</filename> для изменения в этих - переменных. Затем с этими переменными работает - <filename>loader.rc</filename>, загружающий выбранные модули и - ядро.</para> - - <para>И наконец, по умолчанию загрузчик выдерживает 10-секундную паузу, - ожидая нажатия клавиши, и загружает ядро, если этого не произошло. - Если ожидание было прервано, пользователю выдается - приглашение, которое воспринимает простой набор команд, в помощью - которых пользователь может изменить значения переменных, выгрузить - все модули, загрузить модули и окончательно продолжить процесс - загрузки или перезагрузить машину.</para> - - <para>Более подробное техническое описание этого процесса дается на - странице Справочника &man.loader.8;</para> - </sect2> - - <sect2 id="boot-loader-commands"> - <title>Встроенные команды загрузчика</title> - <para>Простой набор команд состоит из:</para> + <para>Если вам когда-либо понадобится заменить установленные + <filename>boot1</filename> и <filename>boot2</filename>, то используйте + утилиту &man.disklabel.8;.</para> - <variablelist> - <varlistentry> - <term>autoboot <replaceable>секунды</replaceable></term> - - <listitem> - <para>Продолжает загрузку ядра, если не будет прерван в течение - указанного в секундах промежутка времени. Он выводит счетчик, - и по умолчанию выдерживается интервал в 10 секунд.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>boot - <optional><replaceable>-параметры</replaceable></optional> - <optional><replaceable>имя ядра</replaceable></optional></term> - - <listitem> - <para>Продолжить процесс загрузки указанного ядра, если оно было - указано, и с указанными параметрами, если они были - указаны.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>boot-conf</term> - - <listitem> - <para>Повторно провести тот же самый процесс автоматической - настройки модулей на основе переменных, что был произведен при - загрузке. Это имеет смысл, если до этого вы выполнили команду - <command>unload</command>, изменили некоторые переменные, - например, наиболее часто меняемую <envar>kernel</envar>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>help - <optional><replaceable>тема</replaceable></optional></term> - - <listitem> - <para>Вывод сообщений подсказки из файла - <filename>/boot/loader.help</filename>. Если в качестве темы - указано слово <literal>index</literal>, то выводится список - имеющихся тем.</para> - </listitem> - </varlistentry> + <screen>&prompt.root; <userinput>disklabel -B <replaceable>diskslice</replaceable></userinput></screen> - <varlistentry> - <term>include <replaceable>имя файла</replaceable> - …</term> - - <listitem> - <para>Выполнить файл с указанным именем. Файл считывается и - его содержимое интерпретируется строчка за строчкой. Ошибка - приводит к немедленному прекращению выполнения команды - include.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>load <optional><option>-t</option> - <replaceable>тип</replaceable></optional> - <replaceable>имя файла</replaceable></term> + <para>Здесь <replaceable>diskslice</replaceable> являются диском и + слайсом, с которых вы загружаетесь, такие, как + <devicename>ad0s1</devicename> в случае первого слайса на первом диске + IDE.</para> - <listitem> - <para>Загружает ядро, модуль ядра или файл указанного типа с - указанным именем. Все аргументы после имени файла передаются в - файл.</para> - </listitem> - </varlistentry> + <warning> + <title>Режим Dangerously Dedicated</title> - <varlistentry> - <term>ls <optional><option>-l</option></optional> - <optional><replaceable>маршрут</replaceable></optional></term> + <para>Если вы используете только имя диска, к примеру, + <devicename>ad0</devicename>, в команде &man.disklabel.8; вы + создадите диск в режиме эксклюзивного использования, без слайсов. + Это, скорее всего, вовсе н то, что вы хотите сделать, так что дважды + проверьте параметры команды &man.disklabel.8;, прежде, чем нажать + <keycap>Return</keycap>.</para> + </warning> + </sect2> - <listitem> - <para>Выводит список файлов по указанному маршруту или в корневом - каталоге, если маршрут не был указан. Если указан параметр - <option>-l</option>, будут выводиться и размеры файлов.</para> - </listitem> - </varlistentry> + <sect2 id="boot-loader"> + <title>Третий этап, <filename>/boot/loader</filename></title> + + <indexterm><primary>загрузчик</primary></indexterm> + <para>Передача управления загрузчику является последним, третьим этапом в + процессе начальной загрузки, а сам загрузчик находится в файловой + системе, обычно как <filename>/boot/loader</filename>.</para> + + <para>Загрузчик являет собой удобный в использовании инструмент для + настройки при помощи простого набора команд, управляемого более мощным + интерпретатором с более сложным набором команд.</para> + + <sect3 id="boot-loader-flow"> + <title>Процесс работы загрузчика</title> + + <para>Во время инициализации загрузчик пытается произвести поиск + консоли, дисков и определить, с какого диска он был запущен. + Соответствующим образом он задаёт значения переменных и запускает + интерпретатор, которому могут передаваться пользовательские команды + как из скрипта, так и в интерактивном режиме.</para> + + <indexterm><primary>загрузчик</primary></indexterm> + <indexterm><primary>конфигурация загрузчика</primary></indexterm> + <para>Затем загрузчик читает файл + <filename>/boot/loader.rc</filename>, который по умолчанию использует + файл <filename>/boot/defaults/loader.conf</filename>, устанавливающий + подходящие значения по умолчанию для переменных и читает файл + <filename>/boot/loader.conf</filename> для изменения в этих + переменных. Затем с этими переменными работает + <filename>loader.rc</filename>, загружающий выбранные модули и + ядро.</para> + + <para>И наконец, по умолчанию загрузчик выдерживает 10-секундную паузу, + ожидая нажатия клавиши, и загружает ядро, если этого не произошло. + Если ожидание было прервано, пользователю выдается + приглашение, которое воспринимает простой набор команд, в помощью + которых пользователь может изменить значения переменных, выгрузить + все модули, загрузить модули и окончательно продолжить процесс + загрузки или перезагрузить машину.</para> + </sect3> - <varlistentry> - <term>lsdev <optional><option>-v</option></optional></term> + <sect3 id="boot-loader-commands"> + <title>Встроенные команды загрузчика</title> + + <para>Далее следуют наиболее часто используемые команды загрузчика. + Полное описание всех имеющихся команд можно найти на странице + справки о команде &man.loader.8;.</para> + + <variablelist> + <varlistentry> + <term>autoboot <replaceable>секунды</replaceable></term> + + <listitem> + <para>Продолжает загрузку ядра, если не будет прерван в течение + указанного в секундах промежутка времени. Он выводит счетчик, + и по умолчанию выдерживается интервал в 10 секунд.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>boot + <optional><replaceable>-параметры</replaceable></optional> + <optional><replaceable>имя ядра</replaceable></optional></term> + + <listitem> + <para>Продолжить процесс загрузки указанного ядра, если оно было + указано, и с указанными параметрами, если они были + указаны.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>boot-conf</term> + + <listitem> + <para>Повторно провести тот же самый процесс автоматической + настройки модулей на основе переменных, что был произведен при + загрузке. Это имеет смысл, если до этого вы выполнили команду + <command>unload</command>, изменили некоторые переменные, + например, наиболее часто меняемую <envar>kernel</envar>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>help + <optional><replaceable>тема</replaceable></optional></term> + + <listitem> + <para>Вывод сообщений подсказки из файла + <filename>/boot/loader.help</filename>. Если в качестве темы + указано слово <literal>index</literal>, то выводится список + имеющихся тем.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>include <replaceable>имя файла</replaceable> + …</term> + + <listitem> + <para>Выполнить файл с указанным именем. Файл считывается и + его содержимое интерпретируется строчка за строчкой. Ошибка + приводит к немедленному прекращению выполнения команды + include.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>load <optional><option>-t</option> + <replaceable>тип</replaceable></optional> + <replaceable>имя файла</replaceable></term> + + <listitem> + <para>Загружает ядро, модуль ядра или файл указанного типа с + указанным именем. Все аргументы после имени файла передаются в + файл.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>ls <optional><option>-l</option></optional> + <optional><replaceable>маршрут</replaceable></optional></term> + + <listitem> + <para>Выводит список файлов по указанному маршруту или в корневом + каталоге, если маршрут не был указан. Если указан параметр + <option>-l</option>, будут выводиться и размеры файлов.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>lsdev <optional><option>-v</option></optional></term> + + <listitem> + <para>Выводится список всех устройств, с которых могут быть + загружены модули. Если указан параметр <option>-v</option>, + выводится дополнительная информация.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>lsmod <optional><option>-v</option></optional></term> + + <listitem> + <para>Выводит список загруженных модулей. Если указан параметр + <option>-v</option>, то выводится дополнительная + информация.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>more <replaceable>имя файла</replaceable></term> + + <listitem> + <para>Вывод указанного файла с паузой при выводе каждой строки + <varname>LINES</varname>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>reboot</term> + + <listitem> + <para>Выполнить немедленную перезагрузку машины.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>set <replaceable>переменная</replaceable></term> + <term>set + <replaceable>переменная</replaceable>=<replaceable>значение</replaceable></term> + + <listitem> + <para>Задает значения переменных окружения загрузчика.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>unload</term> + + <listitem> + <para>Удаление из памяти всех загруженных модулей.</para> + </listitem> + </varlistentry> + </variablelist> + </sect3> - <listitem> - <para>Выводится список всех устройств, с которых могут быть - загружены модули. Если указан параметр <option>-v</option>, - выводится дополнительная информация.</para> - </listitem> - </varlistentry> + <sect3 id="boot-loader-examples"> + <title>Примеры использования загрузчика</title> - <varlistentry> - <term>lsmod <optional><option>-v</option></optional></term> + <para>Вот несколько примеров практического использования + загрузчика:</para> + <itemizedlist> + <indexterm><primary>однопользовательский режим</primary></indexterm> <listitem> - <para>Выводит список загруженных модулей. Если указан параметр - <option>-v</option>, то выводится дополнительная - информация.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>more <replaceable>имя файла</replaceable></term> + <para>Чтобы просто загрузить ваше ядро обычным образом, но в + однопользовательском режиме:</para> - <listitem> - <para>Вывод указанного файла с паузой при выводе каждой строки - <varname>LINES</varname>.</para> + <screen><userinput>boot -s</userinput></screen> </listitem> - </varlistentry> - - <varlistentry> - <term>reboot</term> <listitem> - <para>Выполнить немедленную перезагрузку машины.</para> + <para>Для выгрузки обычных ядра и модулей, а потом просто загрузить + ваше старое (или другое) ядро:</para> + <indexterm> + <primary><filename>kernel.old</filename></primary> + </indexterm> + + <screen><userinput>unload</userinput> +<userinput>load <replaceable>kernel.old</replaceable></userinput></screen> + + <para>Вы можете использовать <filename>kernel.GENERIC</filename> + для обозначения стандартного ядра, поставляемого на установочном + диске, или <filename>kernel.old</filename> для обращения к ранее + установленному ядру (после того, как, например, вы обновили или + отконфигурировали новое ядро).</para> + + <note> + <para>Для загрузки ваших обычных модулей с другим ядром + используйте такие команды:</para> + + <screen><userinput>unload</userinput> +<userinput>set kernel="<replaceable>kernel.old</replaceable>"</userinput> +<userinput>boot-conf</userinput></screen> + </note> </listitem> - </varlistentry> - - <varlistentry> - <term>set <replaceable>переменная</replaceable></term> - <term>set - <replaceable>переменная</replaceable>=<replaceable>значение</replaceable></term> <listitem> - <para>Задает значения переменных окружения загрузчика.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>unload</term> + <para>Для загрузки скрипта конфигурации ядра (автоматизированный + скрипт, который выполняет то, что вы обычно делаете в + конфигураторе ядра во время загрузки):</para> - <listitem> - <para>Удаление из памяти всех загруженных модулей.</para> + <screen><userinput>load -t userconfig_script <replaceable>/boot/kernel.conf</replaceable></userinput></screen> </listitem> - </varlistentry> - </variablelist> - </sect2> - - <sect2 id="boot-loader-examples"> - <title>Примеры использования загрузчика</title> - - <para>Вот несколько практического использования загрузчика.</para> - - <itemizedlist> - <listitem> - <para>Чтобы просто загрузить ваше ядро обычным образом, но в - однопользовательском режиме:</para> - - <screen><userinput>boot -s</userinput></screen> - </listitem> - - <listitem> - <para>Для выгрузки обычных ядра и модулей, а потом просто загрузить - ваше старое (или другое) ядро:</para> - - <screen> -<userinput>unload</userinput> -<userinput>load <replaceable>kernel.old</replaceable></userinput> - </screen> - - <para>Вы можете использовать <filename>kernel.GENERIC</filename> - для обозначения стандартного ядра, поставляемого на установочном - диске, или <filename>kernel.old</filename> для обращения к ранее - установленному ядру (после того, как, например, вы обновили или - отконфигурировали новое ядро).</para> - - <note> - <para>Для загрузки ваших обычных модулей с другим ядром - используйте такие команды:</para> - - <screen> -<userinput>unload</userinput> -<userinput>set kernel="<replaceable>kernel.old</replaceable>"</userinput> -<userinput>boot-conf</userinput> - </screen> - </note> - </listitem> - - <listitem> - <para>Для загрузки скрипта конфигурации ядра (автоматизированный - скрипт, который выполняет то, что вы обычно делаете в - конфигураторе ядра во время загрузки):</para> - - <screen> -<userinput>load -t userconfig_script -<replaceable>/boot/kernel.conf</replaceable></userinput> - </screen> - </listitem> - </itemizedlist> + </itemizedlist> + </sect3> </sect2> </sect1> <sect1 id="boot-kernel"> <title>Взаимодействие с ядром во время загрузки</title> + <indexterm> + <primary>ядро</primary> + <secondary>взаимодействия во время загрузки</secondary> + </indexterm> <para>Как только ядро окажется загруженным при помощи <link linkend="boot-loader">загрузчика</link> (обычный способ) или <link - linkend="boot-boot2">boot2</link> (минуя загрузчик), оно проверяет + linkend="boot-boot1">boot2</link> (минуя загрузчик), оно проверяет флаги загрузки, если они есть, и действует соответствующим образом.</para> <sect2 id="boot-kernel-bootflags"> + <indexterm> + <primary>ядро</primary> + <secondary>флаги загрузки</secondary> + </indexterm> <title>Флаги загрузки ядра</title> <para>Вот наиболее часто используемые флаги загрузки:</para> @@ -448,11 +579,120 @@ boot: </sect2> --> </sect1> + <sect1 id="device-hints"> + <sect1info> + <authorgroup> + <author> + <firstname>Tom</firstname> + + <surname>Rhodes</surname> + + <contrib>Текст предоставил</contrib> + </author> + </authorgroup> + <!-- 18 октября 2002 --> + </sect1info> + + <indexterm> + <primary>device.hints</primary> + </indexterm> + + <title>Хинты устройств</title> + + <note> + <para>Эта функция присутствует только во FreeBSD 5.0 и последующих + версиях, но не в более ранних.</para> + </note> + + <para>Во время начального запуска системы загрузчик &man.loader.8; + производит чтение файла &man.device.hints.5;. В этом файле + хранится необходимая для загрузки ядра информация, задаваемая в виде + переменных, которую иногда называют хинтами для устройств (<quote>device + hints</quote>). Эти <quote>хинты устройств</quote> используются + драйверами устройств для их конфигурации.</para> + + <para>Хинты для устройств могут быть также заданы в приглашении <link + linkend="boot-loader">начального загрузчика Стадии 3</link>. Переменные + могут быть добавлены при помощи команды <command>set</command>, удалены + посредством <command>unset</command> и просмотрены командой + <command>show</command>. В этот момент могут быть также переопределены + переменные, заданные в файле <filename>/boot/device.hints</filename>. + Хинты для устройств, введённые в начальном загрузчике, не сохраняются, и + при следующей перезагрузке будут утеряны.</para> + + <para>После загрузки системы для выдачи значений всех переменных можно + воспользоваться командой &man.kenv.1;.</para> + + <para>Синтаксически в файле <filename>/boot/device.hints</filename> в + каждой строке определяется по + одной переменной, в качестве метки начала комментария используется + стандарный символ <quote>#</quote>. Строки строятся следующим + образом:</para> + + <screen><userinput>hint.driver.unit.keyword="<replaceable>value</replaceable>"</userinput></screen> + + <para>Синтаксис для начального загрузчика Стадии 3 таков:</para> + + <screen><userinput>set hint.driver.unit.keyword=<replaceable>value</replaceable></userinput></screen> + + <para><literal>driver</literal> определяет имя драйвера устройства, + <literal>unit</literal> соответствует порядковому номеру модуля + устройства, а <literal>keyword</literal> является ключевым словом хинта. + В качестве ключевых слов могут применяться следующие опции:</para> + + <itemizedlist> + <listitem> + <para><literal>at</literal>: задаёт шину, к которой подключено + устройство.</para> + </listitem> + + <listitem> + <para><literal>port</literal>: задаёт начальный адрес используемого + диапазона ввода/вывода (<acronym>I/O</acronym>).</para> + </listitem> + + <listitem> + <para><literal>irq</literal>: задаёт используемый номер запроса на + прерывание.</para> + </listitem> + + <listitem> + <para><literal>drq</literal>: задаёт номер канала DMA.</para> + </listitem> + + <listitem> + <para><literal>maddr</literal>: задаёт физический адрес памяти, + занимаемый устройством.</para> + </listitem> + + <listitem> + <para><literal>flags</literal>: устанавливает различные битовые флаги + для устройства.</para> + </listitem> + + <listitem> + <para><literal>disabled</literal>: если установлено в значение + <quote>1</quote>, то устройство не используется.</para> + </listitem> + </itemizedlist> + + <para>Драйверы устройств могут поддерживать (и даже требовать) другие + хинты, здесь не перечисленные, поэтому рекомендуется просматривать + справочные страницы по этим драйверам. Для получения дополнительной + информации обратитесь к страницам справки по + &man.device.hints.5;, &man.kenv.1;, &man.loader.conf.5; и + &man.loader.8;.</para> + </sect1> + <sect1 id="boot-init"> + <indexterm> + <primary><command>init</command></primary> + </indexterm> + <title>Init: инициализация управления процессами</title> <para>После того, как ядро завершит загрузку, оно передает управление - пользовательскому процессу <command>init</command>, который расположен + пользовательскому процессу &man.init.8;, который расположен в файле <filename>/sbin/init</filename> или в файле, маршрут к которому указан в переменной <envar>init_path</envar> <command>загрузчика</command>.</para> @@ -462,8 +702,8 @@ boot: <para>Процесс автоматической перезагрузки проверяет целостность имеющихся файловых систем. Если это не так, и утилита - <command>fsck</command> не может исправить положение, то - <command>init</command> переводит систему в <link + &man.fsck.8; не может исправить положение, то + &man.init.8; переводит систему в <link linkend="boot-singleuser">однопользовательский режим</link> для того, чтобы системный администратор сам разобрался с возникающими проблемами.</para> @@ -471,15 +711,17 @@ boot: <sect2 id="boot-singleuser"> <title>Однопользовательский режим</title> + <indexterm><primary>однопользовательский режим</primary></indexterm> + <indexterm><primary>консоль</primary></indexterm> <para>В этот режим можно перейти во время <link - linkend="boot-autoreboot">процесса автоматической - перезагрузки</link>, при ручной загрузке с флагом <option>-s</option> - или заданием переменной <envar>boot_single</envar> в - <command>загрузчике</command>.</para> + linkend="boot-autoreboot">процесса автоматической перезагрузки</link>, + при ручной загрузке с параметром <option>-s</option> + или заданием переменной <envar>boot_single</envar> для программы + <command>loader</command>.</para> <para>Этот режим может быть также вызван запуском программы - <command>shutdown</command> без параметров перезагрузки + &man.shutdown.8; без параметров перезагрузки (<option>-r</option>) или останова (<option>-h</option>) из <link linkend="boot-multiuser">многопользовательского режима</link>.</para> @@ -487,41 +729,43 @@ boot: <para>Если режим доступа к системной консоли <literal>console</literal> установлен в файле <filename>/etc/ttys</filename> в <literal>insecure</literal>, то система выведет запрос на ввод пароля - пользователя root перед входом в однопользовательский режим.</para> + пользователя <username>root</username> перед переходом в + однопользовательский режим.</para> <example id="boot-insecure-console"> - <title>Незащищенная консоль в /etc/ttys</title> + <title>Незащищённая консоль в <filename>/etc/ttys</filename></title> - <programlisting> -# name getty type status comments + <programlisting># name getty type status comments # -# This entry needed for asking password when init goes to single-user mode -# If you want to be asked for password, change "secure" to "insecure" here -console none unknown off insecure - </programlisting> +# Если консоль помечена как "insecure", то init будет запрашивать пароль +# пользователя root при переходе в однопользовательский режим. +console none unknown off insecure</programlisting> </example> <note> <para>Обозначение консоли как <literal>insecure</literal> означает, - что вы считаете физический доступ к консоли незащищенным, и хотите, - чтобы только тот, кто знает пароль пользователя root, мог - воспользоваться однопользовательским режимом, но это не значит, что - вы хотите работать с консолью небезопасным способом. Таким - образом, если вы хотите добиться защищенности, указывайте - <literal>insecure</literal>, а не <literal>secure</literal>.</para> + что вы считаете физический доступ к консоли незащищённым, и хотите, + чтобы только тот, кто знает пароль пользователя + <username>root</username>, мог воспользоваться однопользовательским + режимом, но это не значит, что вы хотите работать с консолью + небезопасным способом. Таким образом, если вы хотите добиться + защищённости, указывайте <literal>insecure</literal>, а + не <literal>secure</literal>.</para> </note> </sect2> <sect2 id="boot-multiuser"> <title>Многопользовательский режим</title> + <indexterm><primary>многопользовательский режим</primary></indexterm> - <para>Если <command>init</command> определит, что ваши файловые системы + <para>Если &man.init.8; определит, что ваши файловые системы находятся в полном порядке, или после того, как пользователь выйдет из <link linkend="boot-singleuser">однопользовательского режима</link>, система перейдет в многопользовательский режим, работа в котором начинается с настройки ресурсов системы.</para> <sect3 id="boot-rc"> + <indexterm><primary>файлы rc</primary></indexterm> <title>Настройка ресурсов (rc)</title> <para>Система настройки ресурсов считывает настройки, применяемые по @@ -542,13 +786,35 @@ console none unknown off insecure <sect1 id="boot-shutdown"> <title>Процесс остановки системы</title> + <indexterm> + <primary><command>shutdown</command></primary> + </indexterm> <para>Во время контролируемого процесса остановки системы через утилиту - <command>shutdown</command>, программа <command>init</command> будет + &man.shutdown.8; программа &man.init.8; будет пытаться запустить скрипт <filename>/etc/rc.shutdown</filename>, после - чего будет посылать всем процессам сигнал прекращения работы, и затем - сигнал принудительного прекращения работы тем процессам, которые не - завершили работу вовремя.</para> + чего будет посылать всем процессам сигнал <literal>TERM</literal>, а + затем и <literal>KILL</literal> тем процессам, которые ещё не завершили + свою работу.</para> + + <para>Для выключения машины с FreeBSD на аппаратных платформах и системах, + которые поддерживают управление электропитанием, просто воспользуйтесь + командой <command>shutdown -p now</command> для немедленного отключения + электропитания. Чтобы просто перезагрузить систему FreeBSD, + воспользуйтесь командой <command>shutdown -r now</command>. Для запуска + команды &man.shutdown.8; вам необходимо быть пользователем + <username>root</username> или членом группы + <groupname>operator</groupname>. Кроме того, можно также + воспользоваться командами &man.halt.8; и &man.reboot.8;, пожалуйста, + обратитесь к соответствующим страницам справки и справочной странице по + команде &man.shutdown.8; для получения дополнительной информации.</para> + + <note> + <para>Для управления электропитанием требуется наличие поддержки + &man.acpi.4; в ядре или в виде загруженного модуля при использовании + FreeBSD 5.X, а для FreeBSD 4.X необходима поддержка + &man.apm.4;.</para> + </note> </sect1> </chapter> |