diff --git a/ru_RU.KOI8-R/articles/gjournal-desktop/article.sgml b/ru_RU.KOI8-R/articles/gjournal-desktop/article.sgml index 0190a0d7d3..d05f88aa21 100644 --- a/ru_RU.KOI8-R/articles/gjournal-desktop/article.sgml +++ b/ru_RU.KOI8-R/articles/gjournal-desktop/article.sgml @@ -1,723 +1,723 @@ %articles.ent; ]>
Настройка журналирования UFS для настольного компьютера. Manolis Kiagias
manolis@FreeBSD.org
2008 Manolis Kiagias $FreeBSD$ &tm-attrib.freebsd; &tm-attrib.general; Журналируемая файловая система использует лог для записи всех транзакций, происходящих в файловой системе, который также сохраняет ее целостность в случае краха системы или пропадания питания. Несмотря на то, что всё еще возможна потеря несохранённых изменений файлов, журналирование почти полностью исключает возможность повреждения структуры файловой системы, вызванное непредвиденным остановом работы. Журналирование также сокращает до минимума время, необходимое для проверки файловой системы после отказа. Несмотря на то, что в используемой &os; файловой системе UFS нет поддержки журналирования, новый класс системы GEOM в &os; 7.X может быть использован для для ведения независимого от файловой системы журналирования. Эта статья объясняет, как реализовать журналирование UFS для типичного настольного компьютера.
Вступление Серверное оборудование обычно хорошо защищено от потери питания. Настольный компьютер часто подвержен неожиданным пропаданиям питания, случайным нажатиям кнопки Reset и другим происшествиям (часто связанным с неосторожностью пользователей), которые могут привести к непредвиденным выключениям. Механизм Soft Updates, как правило, достаточно эффективно защищает файловую систему в таких случаях, однако в последствии требуется длительная фоновая проверка. В очень редких случаях повреждения файловой системы достигают того уровня, при котором становится необходимым вмешательство пользователя и данные могут быть утерянными. Новая возможность журналирования, предоставленная системой GEOM, может существенно выручить в подобных случаях, исключая время, необходимое для проверки файловых систем и удостовериваясь, что файловая система быстро восстановлена в целостное состояние. Эта статья описывает порядок действий, необходимых для конфигурирования журналирования UFS на типичном настольном компьютере, в котором один жесткий диск используется для размещения как операционной системы, так и данных. В статье подразумевается установка &os; "с нуля". Шаги достаточно просты и не требуют чрезмерно сложных манипуляций с командной строкой После прочтения данной статьи вы будете знать: Как зарезервировать место для журнала во время новой установки &os;. Как загрузить модуль geom_journal (или включить поддержку журналирования в специализированном ядре системы). Как преобразовать существующую файловую систему, в систему, использующую журналирование, и какие опции монтирования использовать в /etc/fstab. Как реализовать журналирование на новых (пустых) разделах. Как диагностировать неполадки, связанные с журналированием. Перед прочтением этой статьи вам необходимо: Понимать базовые концепции таких операционных систем, как &unix; и &os;. Быть знакомым с процедурой установки &os;, а также с программой sysinstall. Процедура, описанная здесь, подразумевает подготовку к новой установке, в которой на дисках еще нет пользовательских данных. Так как эту процедуру можно модифицировать и расширить на системы, которые уже используются, вам настоятельно рекомендуется сделать резервную копию всех ценных данных. Путаница в низкоуровневых операциях с дисками и разделами может привести к фатальным ошибкам и потере данных. Реализация журналирования в &os; Журналирование, предоставляемое системой GEOM в &os; 7.X, не является особенностью файловой системы (в отличие от, например, файловой системы ext3 в &linux;), оно функционирует на блочном уровне. А это значит, что оно может быть применено к разным типам файловых систем, однако для &os; 7.0-RELEASE журналирование может быть применено только для UFS2. Возможность журналирования обеспечивается загрузкой модуля geom_journal.ko в ядро (или сборкой собственного ядра с активированием соответствующих опций) и использованием команды gjournal для конфигурирования файловой системы. В общем, вы предпочтете журналировать файловые системы большого размера, к примеру - /usr. Однако, вам придется зарезервировать некоторое количество свободного места (см. следующий раздел). Когда файловая система журналируется, некоторая часть дискового пространства требуется для хранения самого журнала. Дисковое пространство, содержащее данные, называется поставщиком данных (data provider), а часть пространства, содержащая журнал, называется поставщиком журнала (journal provider). Поставщики данных и журнала должны быть на разных разделах, если журналирование достраивается к содержащему данные разделу. А если журналирование включается для нового раздела, у вас есть возможность использовать один поставщик для данных и журнала. В любом из двух вышеупомянутых случаев команда gjournal задействует поставщики и создаст конечную журналируемую файловую систему. Например: Вы намереваетесь журналировать файловую систему /usr, размещенную на /dev/ad0s1f, файловая система уже содержит данные. Вы зарезервировали часть дискового пространства на разделе /dev/ad0s1g. Используя команду gjournal, создаем новый файл устройства /dev/ad0s1f.journal, для которого /dev/ad0s1f является поставщиком данных, а /dev/ad0s1g — поставщик журнала. Это новое устройство необходимо использовать во всех последующих операциях. Размер дискового пространства, отводимого под поставщик журнала, зависит от нагруженности файловой системы, а не от размера самого поставщика данных. Например, для типичного настольного компьютера достаточно отвести 1 Гб под поставщик журнала для файловой системы /usr, в то время как компьютеру, имеющему интенсивный дисковый ввод/вывод (например, редактирование видео) может потребоваться больше. Если свободное место на поставщике журнала заканчивается раньше, чем происходит сброс журнала на диск, — вы получите панику ядра. Очень маловероятно то, что размеры журнала, предложенные здесь, станут причиной проблем с обычным настольным компьютером (на котором вы просматриваете веб-страницы, обрабатываете текст или проигрываете мультимедийные файлы). Если работа вашего компьютера подразумевает интенсивную дисковую активность, то для обеспечения стабильности следует придерживаться следующего правила: размер ОЗУ должен уместиться в 30% размера, отведенного под журнал. Например, если в вашем компьютере установлен 1 Гб ОЗУ, создайте под поставщик журнала раздел размером около 3.3 Гб. (Умножьте размер ОЗУ в 3.3 раза, чтоб получить размер журнала). Для получения дополнительной информации о журналировании, пожалуйста, прочитайте страницу справочника, посвященную &man.gjournal.8;. Действия, необходимые во время установки &os; Выделение места под журналирование Типичный настольный компьютер обычно имеет один жесткий диск, на котором хранится как операционная система, так и пользовательские данные. Вероятно, что схема разбития винчестера (по умолчанию), выбранная в меню sysinstall, является более или менее подходящей: настольному компьютеру не требуется большой раздел /var, в то время, как для раздела /usr выделяется значительный объем дискового пространства, ввиду того, что пользовательские данные и множество пэкэджей хранятся именно в поддиректориях /usr. Разбиение по умолчанию (получаемое при нажатии A в редакторе разделов &os;, называемом Disklabel) не оставляет свободного места. Каждый подлежащий журналированию раздел требует отдельного раздела для журнала. Ввиду того, что раздел /usr — наибольший, есть смысл немного уменьшить его размер, чтобы получить пространство, необходимое для журнала. В нашем примере используется жесткий диск размером 80 Гб. Следующий скриншот показывает результаты разбиения по умолчанию, выполненного при помощи Disklabel в процессе установки операционной системы: Если это разбиение более или менее вас устраивает, то его легко модифицировать для журналирования. Используйте клавиши со стрелками для того, чтобы выделить раздел, отведенный под /usr, потом нажмите D чтобы удалить его. Теперь переведите подсвечивание к имени диска, находящемуся вверху экрана, и нажмите C — создайте новый раздел /usr. Новый раздел должен быть меньше на 1 Гб (если вы собираетесь журналировать только /usr) или на 2 Гб (если журналированию подлежат как /usr, так и /var). Во всплывающем окне выберите "создать файловую систему" и укажите /usr точкой монтирования. Следует ли журналировать /var раздел? Обычно есть смысл журналировать большие разделы. Вы можете решить не журналировать /var, однако журналирование на обычном настольном компьютере не причинит вреда. Если файловая система не нагружена (что типично для настольной системы), то можно выделить меньше дискового пространства под журнал. В этом примере подразумевается журналирование двух файловых систем: /usr и /var. Естественно, вы можете подкорректировать процедуру под свои задачи. Чтобы не усложнять описываемую методику, для создания разделов, необходимых для размещения журналов, мы будем использовать утилиту sysinstall. Однако, во время установки утилита sysinstall требует указания точек монтирования для каждого созданного вами раздела. Но разделы, содержащие журналы, вам никогда и никуда монтировать не придется. Чтобы избежать вопросов о точках монтирования, мы создадим разделы под журналы и установим их тип в swap. Раздел, предназначенный для свопа, никогда и никуда не монтируется, плюс к тому, утилита sysinstall позволяет создавать столько разделов под своп, сколько необходимо. После первой перезагрузки необходимо подредактировать файл /etc/fstab, удалив в нём лишние записи о своп-разделах. Для создания своп-раздела, используя клавиши со стрелками, перемещайте подсвечивание к верхней части экрана в утилите Disklabel так, чтобы стало подсвеченным имя диска. Потом, нажмите N, введите необходимый размер раздела (1024M), а после — выберите во всплывшем окне swap space. Повторите эти шаги для всех оставшихся журналов. В этом примере мы создаем два раздела, на которых будут размещаться журналы для /usr и /var. Конечный результат показан на следующем скриншоте: По завершении создания разделов мы рекомендуем вам записать на бумагу названия разделов и их точек монтирования: с этой информацией вы будете сверяться во время конфигурирования. Это также поможет уменьшить количество ошибок, приводящих к повреждению установки. Следующая табличка отображает наши заметки, сделанные для данного примера: Разделы и журналы Раздел Точка монтирования Журнал ad0s1d /var ad0s1h ad0s1f /usr ad0s1g
Дальше продолжайте обычную установку. Однако, мы рекомендуем вам отложить инсталляцию приложений сторонних разработчиков (пакетов) до полной настройки журналирования.
Первая загрузка Ваша система загрузится нормально, однако вам необходимо будет подредактировать /etc/fstab и удалить те лишние своп-разделы, которые вы создавали под журналы. Как правило, в названии файла устройства, созданного автоматически утилитой sysinstall, присутствует суффикс b (в нашем примере это ad0s1b). Удалите другие записи о своп-разделах и перезагрузите компьютер, после чего &os; перестанет их использовать. После второй перезагрузки, компьютер будет готов к конфигурированию журналирования. Настройка журналирования Работа с командой <command>gjournal</command> Подготовив необходимые разделы, перейдем к конфигурированию журналирования. Нам будет необходимо загрузиться в однопользовательском режиме, для этого залогинимся пользователем root и напечатаем: &prompt.root; shutdown now Нажмите Enter для получения приглашения командного интерпретатора. Нам необходимо будет размонтировать разделы, которые подлежат журналированию, в нашем примере это /usr и /var. &prompt.root; umount /usr /var Загрузите модуль ядра, необходимый для журналирования: &prompt.root; gjournal load На данном этапе сверьтесь со своими записями и определите, какие разделы будут использоваться под какой журнал. В нашем примере /usr располагается на ad0s1f, а его журнал будет располагаться на ad0s1g, и, по аналогии, для /var: файловая система располагается на ad0s1d, а ее журнал — на ad0s1h. Наберите следующие команды: &prompt.root; gjournal label ad0s1f ad0s1g GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data. GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal. &prompt.root; gjournal label ad0s1d ad0s1h GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data. GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal. Если последний сектор любого из двух разделов (поставщиков данных) используется, команда gjournal возвратит ошибку. Вам необходимо будет использовать флаг для принудительной перезаписи, например: &prompt.root; gjournal label -f ad0s1d ad0s1h Так как это — новая установка, очень маловероятен факт, что что-нибудь будет действительно переписано. На данном этапе созданы два устройства: ad0s1d.journal и ad0s1f.journal. Они представляют /var и /usr соответственно. Перед монтированием, нам необходимо установить флаг журналирования и снять флаг механизма Soft Updates: &prompt.root; tunefs -J enable -n disable ad0s1d.journal tunefs: gjournal set tunefs: soft updates cleared &prompt.root; tunefs -J enable -n disable ad0s1f.journal tunefs: gjournal set tunefs: soft updates cleared Теперь, смонтируйте новые устройства в соответствующие места файловой системы (обратите внимание на то, что мы можем использовать опцию монтирования ): &prompt.root; mount -o async /dev/ad0s1d.journal /var &prompt.root; mount -o async /dev/ad0s1f.journal /usr Откройте /etc/fstab и исправьте записи для следующих файловых систем: /usr и /var: /dev/ad0s1f.journal /usr ufs rw,async 2 2 /dev/ad0s1d.journal /var ufs rw,async 2 2 Убедитесь, что упомянутые выше записи правильные, иначе старт системы будет проблематичным после перезагрузки! И напоследок, подредактируйте /boot/loader.conf: добавьте следующую строку и модуль &man.gjournal.8; будет загружаться автоматически при старте системы: geom_journal_load="YES" Поздравляем! Журналирование успешно сконфигурировано. Вам необходимо лишь набрать exit для возвращения в многопользовательский режим или перезагрузить систему, чтобы полностью проверить вашу конфигурацию (рекомендуется). Во время загрузки вы увидите сообщения, подобные следующим: ad0: 76293MB XEC XE800JD-00HBC0 08.02D08 at ata0-master SATA150 GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal. GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal. GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data. GEOM_JOURNAL: Journal ad0s1d clean. GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data. GEOM_JOURNAL: Journal ad0s1f clean. После непредвиденного останова работы системы сообщения будут немного отличаться, например: GEOM_JOURNAL: Journal ad0s1d consistent. Это обычно значит, что &man.gjournal.8; воспользовался информацией в журнале для возвращения файловой системы к целостному состоянию. Журналирование новых разделов Процедура, описанная выше, необходима для подключения журналирования разделов, содержащих данные. Журналирование пустых разделов немного проще, ввиду того, что поставщик данных и поставщик журнала могут быть размещены на одном и том же разделе. Например, предположим, что был установлен новый жесткий диск и был создан новый раздел /dev/ad1s1d. Создание журнала не сложнее набора: &prompt.root; gjournal label ad1s1d Размер журнала — 1 Гб по умолчанию. Однако, вы можете изменить это значение используя ключ . Значение можно задавать в байтах, в килобайтах, мегабайтах или гигабайтах (используя суффикс K, M или G). Имейте ввиду, что команда gjournal не позволит вам создать журнал недопустимо малого размера. К примеру, чтобы создать журнал размером в 2Гб, можно использовать следующую команду: &prompt.root; gjournal label -s 2G ad1s1d Далее, вы можете создать файловую систему на новом разделе, - а также разрешить журналирование ключем : + а также разрешить журналирование ключом : &prompt.root; newfs -J /dev/ad1s1d.journal Встраивание журналирования в специализированное ядро Если вы не желаете загружать geom_journal как модуль, то можно встроить его функции прямо в ваше специализированное ядро. Редактируя конфигурационный файл ядра, убедитесь, что в нем находятся следующие две строки: options UFS_GJOURNAL # Прим.: Это включено в GENERIC options GEOM_JOURNAL # А эту строку необходимо добавить Соберите и установите новое ядро следуя указаниям Руководства &os; . И не забудьте удалить соответствующую строку загрузки модуля (load) из /boot/loader.conf (если на предыдущем этапе она была туда внесена). Устранение неполадок с журналированием Этот раздел содержит часто задаваемые вопросы касательно неполадок, связанных с журналированием. Я получаю паники ядра во время высокой дисковой активности. Как это связано с журналированием? Вероятно, что журнал заполняется раньше, чем происходит сброс его на диск. Помните, размер журнала зависит от загруженности диска, а не от размера поставщика данных. Если загрузка диска высокая, вам потребуется раздел большего размера для журнала. См. замечания в разделе Реализация журналирования Я допустил некоторые ошибки во время конфигурирования, теперь система не загружается. Можно это как-нибудь исправить? Вы либо забыли внести запись (опечатались) в /boot/loader.conf, либо есть ошибки в файле /etc/fstab. Это легко исправить. Нажмите Enter, чтобы получить приглашение командного интерпретатора в однопользовательском режиме. Потом, проверьте возможные варианты: &prompt.root; cat /boot/loader.conf Если отсутствует запись geom_journal_load, или она содержит ошибки, журналируемые устройства не создадутся. Загрузите модуль вручную, примонтируйте все разделы и переходите в многопользовательский режим (продолжайте загрузку). &prompt.root; gjournal load GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal. GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal. GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data. GEOM_JOURNAL: Journal ad0s1d clean. GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data. GEOM_JOURNAL: Journal ad0s1f clean. &prompt.root; mount -a &prompt.root; exit (boot continues) Если же запись о geom_journal_load верна, то проверьте /etc/fstab. Вероятней всего, что вы обнаружите опечатку или отсутствие необходимой записи. В этом случае смонтируйте вручную оставшиеся разделы и продолжите загрузку в многопользовательский режим. Возможно ли отказаться от журналирования и вернуться к моей привычной файловой системе с механизмом Soft Updates? Несомненно. Используйте приведенную ниже последовательность действий, которая обращает изменения. Разделы, созданные для поставщиков журналов, могут позже быть использованы для других целей. Залогиньтесь root и переведите систему в однопользовательский режим: &prompt.root; shutdown now Размонтируйте журналируемые разделы: &prompt.root; umount /usr /var Синхронизируйте журналы: &prompt.root; gjournal sync Остановите поставщиков журналов: &prompt.root; gjournal stop ad0s1d.journal &prompt.root; gjournal stop ad0s1f.journal Удалите метаданные журналирования со всех задействованных устройств: &prompt.root; gjournal clear ad0s1d &prompt.root; gjournal clear ad0s1f &prompt.root; gjournal clear ad0s1g &prompt.root; gjournal clear ad0s1h Снимите флаг журналирования и установите флаг механизма Soft Updates: &prompt.root; tunefs -J disable -n enable ad0s1d tunefs: gjournal cleared tunefs: soft updates set &prompt.root; tunefs -J disable -n enable ad0s1f tunefs: gjournal cleared tunefs: soft updates set Смонтируйте вручную старые (первоначальные) устройства: &prompt.root; mount -o rw /dev/ad0s1d /var &prompt.root; mount -o rw /dev/ad0s1f /usr Откройте файл /etc/fstab и приведите его к изначальному виду: /dev/ad0s1f /usr ufs rw 2 2 /dev/ad0s1d /var ufs rw 2 2 И напоследок, удалите строку, загружающую модуль geom_journal, из файла /boot/loader.conf и перезагрузите операционную систему. Для дальнейшего ознакомления Журналирование — относительно новая функциональная возможность &os;, и как такова, она еще недостаточно документирована. Однако, вы можете сочти полезными следующие источники: Новый раздел Руководства FreeBSD, посвященный журналированию. Этот пост в списке рассылки &a.current.name;, написанный &a.pjd; — автором &man.gjournal.8;. Этот пост от &a.ivoras; в списке рассылки &a.questions.name;. Страницы справочника &man.gjournal.8; и &man.geom.8;.
diff --git a/ru_RU.KOI8-R/articles/pr-guidelines/article.sgml b/ru_RU.KOI8-R/articles/pr-guidelines/article.sgml index 4d6895eda3..9aceaa78b2 100644 --- a/ru_RU.KOI8-R/articles/pr-guidelines/article.sgml +++ b/ru_RU.KOI8-R/articles/pr-guidelines/article.sgml @@ -1,1083 +1,1091 @@ %articles.ent; ]>
Рекомендации по работе с сообщениями о проблемах $FreeBSD$ &tm-attrib.freebsd; &tm-attrib.opengroup; &tm-attrib.general; Это руководство описывает рекомендуемую практику обработки сообщений об ошибках FreeBSD (Problem Reports - PR). Хотя эти рекомендации предназначены для Группы поддержки базы данных сообщений о проблемах FreeBSD (PR Database Maintenance Team) freebsd-bugbusters@FreeBSD.org, им должны следовать все, кто работает с этими сообщениями. Dag-Erling Smørgrav Hiten Pandya
Введение GNATS является системой управления неисправностями (сообщениями об ошибках), которая используется в Проекте FreeBSD. Так как тщательное отслеживание заметных изъянов в программном обеспечении важно для обеспечения качества FreeBSD, правильное использование GNATS необходимо для дальнейшего развития Проекта. Доступ к GNATS даётся разработчикам FreeBSD, а также более широкому сообществу. Для того, чтобы поддерживать целостность базы данных и единства работы с пользователями, были выработаны рекомендации, покрывающие общие вопросы управления проблемами, такие, как написание отклика, обработку уже закрытых вопросов и так далее.
Жизненный цикл сообщения о проблеме Респондент посылает PR при помощи утилиты &man.send-pr.1; и получает подтверждающее сообщение. Среднестатистический коммиттер (Вася) проявляет интерес к PR и назначает его самому себе, или другой любитель ошибок (Петя) решает, что лучше всех с описанной проблемой справится именно Вася, и назначает её Васе. Вася связывается с Респондентом (при этом вся переписка должна фиксироваться) и выясняет причину появления проблемы. Затем он документирует причину в журнале аудита, и переводит PR в состояние analyzed (проанализировано). Вася проводит бессонную ночь и выпускает патч, который, по его мнению, решает означенную проблему, и затем посылает её ответом, прося Респондента протестировать его. Затем он переводит PR в состояние feedback. Через несколько таких итераций Вася и Респондент удовлетворяются получающимся патчем, и Вася переносит его в дерево -CURRENT (или непосредственно в -STABLE, если этой проблемы в -CURRENT не наблюдается), при этом при выполнении коммита в сопутствующем сообщении делается ссылка на сообщение о проблеме (а также упоминается Респондент, если он предоставил весь или часть патча), и, если это нужно, начинается отсчёт для MFC. Если патчу не нужно выполнение MFC, Вася закрывает PR. Если патч требует выполнения MFC, Вася оставляет Сообщение о проблеме в состоянии patched до выполнения операции MFC, а затем закрывает его. Многие PR присылаются с очень слабым описанием проблемы, а некоторые из них либо очень сложно решить, либо являются вершиной айсберга другой, более широкой проблемы; в этих случаях очень важно получить всю информацию, требуемую для решения проблемы. Если описанная проблема не может быть решена, или проявится снова, необходимо повторно открыть PR. Адрес электронной почты может оказаться недоступным. В этом случае ответьте на PR обычным образом и попросите Респондента (в своём сообщении) предоставить рабочий адрес электронной почты. Обычно это происходит в случаях использования &man.send-pr.1; в системах с выключенной или неустановленной почтовой системой.
Состояние сообщений о проблемах При выполнении некоторых действий очень важно обновлять состояние PR. Это состояние должно в точности отражать текущее состояние работы над PR. Маленький пример того, когда именно нужно менять состояние PR Когда PR находится в работе и ответственный разработчик(и) удовлетворён получающимся решением, то он отвечает на PR и меняет его состояние на feedback. В этот момент Респондент должен изучить исправление в своей ситуации и ответить, действительно ли был устранён дефект. Сообщение о проблеме может находится в одном из следующих состояний: open Начальное состояние; проблема была поставлена и её необходимо рассмотреть. analyzed Проблема была рассмотрена, ищется её решение. feedback Дальнейшая работа требует дополнительной информации от Респондента или сообщества; возможно помещение информации о предлагаемом решении. patched Патч был перенесён в дерево исходных текстов, но что-то (выполнение MFC или, возможно, подтверждение Респондента) ещё требуется доделать. suspended Работа над проблемой была остановлена из-за отсутствия информации или необходимых ресурсов. Это первый кандидат для тех, кто ищет проект для работы над ним. Если проблема вообще не может быть решена, она будет закрыта, а не приостановлена. Проект создания документации использует suspended для желательных нововведений, которые требуют значительной работы, для которой ни у кого пока нет времени. repocopy Решение проблемы зависит от завершения операции копирования репозитория (внутренние операции репозитория CVS). closed Сообщение о проблеме было закрыто, когда все изменения были перенесены, задокументированы и протестированы, либо когда исправление проблемы было отвергнуто. Состояние patched напрямую связано с предлагаемыми решениями, так что вы можете перейти сразу к состоянию closed, если Респондент не может протестировать патч, либо на ваших тестовых прогонах он работает.
Типы сообщений о проблемах При обработке сообщений об ошибках, либо в качестве разработчика, имеющего непосредственный доступ к базе данных GNATS, либо в качестве контрибутора, который просматривает базу данных и посылает свои отклики с патчами, комментариями, пожеланиями или запросами на изменение, вы будете иметь дело с несколькими различными типами PR. Никому неназначенные PR. PR, которые уже кому-то назначены. Повторы существующих PR. Заброшенные PR Некорректные PR В последующих разделах описывается, для чего предназначены те или иные типы PR, условия отнесения PR к одному из этих типов, и какую обработку требует каждый из этих типов.
Неназначенные PR По прибытии сообщениям о проблемах устанавливаются общие назначения (generic assignee). Они всегда предваряются префиксом freebsd-. Точное название назначения (assignee) зависит от категории и в большинстве случаев оно соответствует определенному списку рассылки &os;. Далее следует текущий перечень назначений (assignee), составленный в порядке от общих к частным: Назначения по умолчанию — наиболее общие Тип Категория Назначение по умолчанию базовая система bin, conf, gnu, kern, misc freebsd-bugs специфичные для архитектуры alpha, amd64, arm, i386, ia64, powerpc, sparc64, sun4v freebsd-arch коллекция портов ports freebsd-ports-bugs документация, поставляемая с системой docs freebsd-doc страницы сайта &os; (за исключением документации) www freebsd-www
Назначения по умолчанию — остальные Тип Категория Назначение по умолчанию в защиту &os; (advocacy efforts) advocacy freebsd-advocacy проблемы с &java.virtual.machine; java freebsd-java соответствие стандартам standards freebsd-standards тредовые библиотеки threads freebsd-threads подсистема &man.usb.4; usb freebsd-usb
Не удивляйтесь, если обнаружите, что автор PR присвоил ему неправильную категорию. Если вы исправите категорию, то не забудьте также подправить и назначение. (В частности, для посылающих PR является трудностью понять, что если проблема возникает на системе с архитектурой i386, то она также может быть общей для всех архитектур &os;, и поэтому более подходящей будет категория kern. Несомненно, обратное также справедливо). Назначения некоторых PR могут быть переопределены из общих любым лицом, имеющим соответствующие привилегии. Существует несколько типов назначений: специализированные списки рассылки; почтовые алиасы (расширяемые в списки электронных адресов заинтересованных людей) и назначения отдельным лицам. Если назначением является список рассылки, пожалуйста, выполняя переназначение, используйте длинную форму (например, freebsd-foo вместо foo); благодаря этому сообщение, посылаемое в список рассылки, не будет дублироваться. Так как список лиц добровольно согласившихся принимать назначения для некоторых типов PR изменяется часто, то наиболее подходящим местом для его размещения является FreeBSD wiki. Ниже приведен (возможно, неполный) перечень назначений. Общие назначения — базовая система Тип Предполагаемая категория Предполагаемое назначение Тип назначения проблема, специфичная для архитектуры &arm; arm freebsd-arm список рассылки проблема, специфичная для архитектуры &mips; kern freebsd-mips список рассылки проблема, специфичная для архитектуры &powerpc; kern freebsd-ppc список рассылки проблема с Advanced Configuration and Power Management (&man.acpi.4;) kern freebsd-acpi список рассылки проблема с драйверами ATM kern freebsd-atm список рассылки проблема с встраиваемой системой или минимальным дистрибутивом &os; (например, NanoBSD/PicoBSD/FreeBSD-arm) kern freebsd-embedded список рассылки проблема с драйверами &firewire; kern freebsd-firewire список рассылки проблема в исходном коде файловой системы kern freebsd-fs список рассылки проблема с подсистемой &man.geom.4; kern freebsd-geom список рассылки проблема с подсистемой &man.ipfw.4; kern freebsd-ipfw список рассылки проблема с драйверами ISDN kern freebsd-isdn список рассылки подсистема &man.jail.8; kern freebsd-jail список рассылки проблема с эмуляцией &linux; или SVR4 kern freebsd-emulation список рассылки проблема с сетевым стеком kern freebsd-net список рассылки проблема с подсистемой &man.pf.4; kern freebsd-pf список рассылки проблема с подсистемой &man.scsi.4; kern freebsd-scsi список рассылки проблема с звуковой подсистемой (&man.sound.4;) kern freebsd-multimedia - алиас + список рассылки проблема с &man.sysinstall.8; bin freebsd-sysinstall список рассылки проблема с системными стартовыми скриптами (&man.rc.8;) kern freebsd-rc список рассылки + + проблемы в работе VIMAGE, VNET, или проблемы + в их коде + kern + freebsd-virtualization + список рассылки + + проблема с эмуляцией Xen kern - xen - алиас + freebsd-xen + список рассылки
Общие назначения — коллекция портов Тип Предполагаемая категория Предполагаемое назначение Тип назначения проблема с инфраструктурой системы портов (не с конкретным портом!) ports portmgr алиас порт, у которого мейнтейнер apache@FreeBSD.org ports apache список рассылки порт, у которого мейнтейнер autotools@FreeBSD.org ports autotools алиас порт, у которого мейнтейнер doceng@FreeBSD.org ports doceng алиас порт, у которого мейнтейнер eclipse@FreeBSD.org ports freebsd-eclipse список рассылки порт, у которого мейнтейнер gecko@FreeBSD.org ports gecko список рассылки порт, у которого мейнтейнер gnome@FreeBSD.org ports gnome список рассылки порт, у которого мейнтейнер hamradio@FreeBSD.org ports hamradio алиас порт, у которого мейнтейнер haskell@FreeBSD.org ports haskell алиас порт, у которого мейнтейнер java@FreeBSD.org ports freebsd-java список рассылки порт, у которого мейнтейнер kde@FreeBSD.org ports kde список рассылки порт, у которого мейнтейнер mono@FreeBSD.org ports mono список рассылки порт, у которого мейнтейнер openoffice@FreeBSD.org ports freebsd-openoffice список рассылки порт, у которого мейнтейнер perl@FreeBSD.org ports perl список рассылки порт, у которого мейнтейнер python@FreeBSD.org ports freebsd-python список рассылки порт, у которого мейнтейнер ruby@FreeBSD.org ports freebsd-ruby список рассылки порт, у которого мейнтейнер secteam@FreeBSD.org ports secteam алиас порт, у которого мейнтейнер box@FreeBSD.org ports vbox алиас порт, у которого мейнтейнер x11@FreeBSD.org ports freebsd-x11 список рассылки
PR для портов, у которых мейнтейнером является коммиттер порта, могут быть переназначены любым лицом (только учтите, что не каждый &os; коммиттер в обязательном порядке является коммиттером портов, поэтому вы не должны судить только по почтовому адресу). Для остальных PR, пожалуйста не переназначайте их другим людям (за исключением себя), если вы не уверены, что человек действительно будет работать над ними. Это поможет избежать ситуации, когда решение проблемы игнорируется другими людьми, так как подразумевается, что некто уже над ней работает. Общие назначения — остальные Тип Предполагаемая категория Предполагаемое назначение Тип назначения неполадки с самой GNATS(&man.send-pr.1;) bin bugmeister алиас неполадки с веб интерфейсом GNATS www bugmeister алиас
Назначение PR Если в PR в заполненном поле responsible указано имя разработчика FreeBSD, это значит, что PR взята этим человеком для дальнейшей работы. Уже назначенное PR не должно трогаться никем, кроме администраторов GNATS (bugmeister) и того, кому эта проблема назначена. Если у вас есть комментарии, напишите отклик. Если по какой-то причине вы думаете, что PR должна изменить своё состояние или её необходимо назначить кому-то другому, пошлите сообщение тому, кто назначен ответственным. Если этот человек не ответит в течение двух недель, смените назначение PR, а дальше действуйте по своему усмотрению.
Повторные PR Если вы обнаружите, что один и тот же вопрос описывается более чем в одном PR, выберите то, что содержит максимальный объём полезной информации и закройте все остальные, чётко указав номер более полного PR. Если несколько PR содержат не пересекающуюся информацию, перенесите всю недостающую информацию в какой-либо отклик, включая ссылки на остальные PR; затем закройте другие PR (которые теперь полностью перекрыты).
Просроченные PR PR считается простроченным, если оно не модифицировалось в течение более полугода. При обработке просроченных PR используйте следующую процедуру: Если PR достаточно подробна, попытайтесь воспроизвести проблему в дереве -CURRENT и -STABLE. Если вам это удалось, напишите отклик, описывающий ваши изыскания и попытайтесь найти кого-то, кому эту проблему можно назначить. Если это подходит, измените состояние на analyzed. Если PR описывает проблему, которая, как вы знаете, является результатом неправильного использования (некорректная настройка или что-то ещё), напишите отклик, в котором опишите, что автор исходного сделал не так, а затем закройте PR с описанием User error или Configuration error. Если в PR описывается ошибка, которая, как вы знаете, была исправлена как в -CURRENT, так и -STABLE, закройте его с сообщением, указывающим на даты исправлений в каждой ветке. Если PR описывает ошибку, которая, по вашим данным, была исправлена в -CURRENT, но не в -STABLE, попытайтесь выяснить, когда человек, исправивший эту ошибку, планирует выполнить MFC, либо попробуйте найти для этого кого-то ещё (может, это будете вы сами?). Измените состояние сообщения на patched и переназначьте его кому-либо, кто будет делать MFC. В остальных случаях запросите у автора исходного сообщения подтверждения того, что проблема всё ещё присутствует в новых версиях. Если автор не отвечает в течение месяца, закройте PR с пометкой Feedback timeout.
Незаполненные PR GNATS требовательно подходит к формату присылаемых сообщений об ошибках. Вот почему много PR заканчивают жизнь в состоянии misfiled, если посылающий забыл заполнить поле или ввёл неправильные данные в некоторые поля PR. Этот раздел поможет предоставить основной объём необходимых подробностей для разработчиков FreeBSD, который может помочь им закрыть или повторно заполнить эти PR. Если система GNATS не может понять, что делать с сообщением об ошибке, которое достигло базы данных, она определяет gnats-admin в качестве ответственного за PR и помещает сообщение в категорию pending. Теперь это PR в состоянии misfiled и оно не будет появляться в списках сообщений об ошибках, если только кто-то специально не запросит перечень всех незаполненных PR. Если у вас есть доступ к машинам в кластере FreeBSD, можете воспользоваться командой query-pr для просмотра списка PR, которые были некорректно сформированы: &prompt.user; query-pr -x -q -r gnats-admin 52458 gnats-ad open serious medium Re: declaration clash f 52510 gnats-ad open serious medium Re: lots of sockets in 52557 gnats-ad open serious medium 52570 gnats-ad open serious medium Jigdo maintainer update Как правило, PR вроде перечисленных выше оказываются незаполненными по одной из следующих причин: Отклик на существующее PR, посланный по электронной почте, имеет неверный формат заголовка Subject:. Автор PR отправил копию (Cc:) в список рассылки, а кто-нибудь ответил на этот пост вместо сообщения, сформированного GNATS. В копии, отосланной в список рассылки, нету тега категория/PRномер. (Вот почему мы рекомендуем посылающим не делать подобных движений). При заполнении шаблона &man.send-pr.1; посылающий забыл указать правильное значение для категории или класса PR. При заполнении шаблона &man.send-pr.1; посылающий установил значение поля Confidential в yes. (Так как мы позволяем каждому зеркалировать GNATS при помощи cvsup, информация о PR-ах является общедоступной. Сообщения, касающиеся безопасности, не следует слать через GNATS, их необходимо отправлять на адрес команды офицеров безопасности). Это не реальное PR, а какое-то случайное сообщение, посланное на адрес bug-followup@FreeBSD.org или freebsd-gnats-submit@FreeBSD.org.
Отклики неправильно оформлены как новые PR К наиболее массовой категории неправильно оформленных PR относятся те, у которых неверна тема письма, и именно они на самом деле требует самых больших усилий от разработчиков. Это не настоящие PR, описывающие отдельные ошибки. Когда по одному из адресов, который прослушивает GNATS на предмет обработки входящих сообщений, принимается ответ на существующее PR, то тема ответа должна быть всегда в таком виде: Subject: Re: category/number: старая тема Большинство почтовых программ, когда вы отвечаете на оригинальное почтовое сообщение с PR, будут добавлять часть Re: . Часть category/number:  является соглашением, специфичным для GNATS, которое вы должны выполнить, вручную поставив его в тему письма с откликом. Все разработчики FreeBSD, имеющие прямой доступ к базе данных GNATS, могут регулярно проверять наличие таких PR и перемещать заинтересовавшие их в отклики к оригинальному PR (послав корректный отклик на сообщение об ошибке на адрес &a.bugfollowup;). Затем неправильно оформленное PR может быть закрыто с примерно таким пояснением: Your problem report was misfiled. Please use the format "Subject: category/number: original text" when following up to older, existing PRs. I've added the relevant bits from the body of this PR to kern/12345 Поиск по команде query-pr оригинального PR, на которое отвечает неправильно оформленный отклик, легко выполняется следующим образом: &prompt.user; query-pr -q -y "some text" После того, как вы обнаружили оригинальное PR и неправильно оформленный отклик на него, воспользуйтесь параметром команды query-pr для сохранения полного текста всех относящихся к делу PR в файле формата почтового ящика &unix;, то есть: &prompt.user; query-pr -F 52458 52474 > mbox Теперь вы можете использовать любую почтовую программу для просмотра всех PR, которые вы сохранили в файле mbox. Скопируйте текст всех неверно оформленных PR в отклике на оригинальное сообщение о проблеме, и обязательно включите правильный заголовок Subject:. После этого закройте неверно оформленное PR. Когда вы закрываете такие PR, помните, что автор получает оповещение по почте о том, что его PR сменило состояние на closed. В пояснении обязательно описывайте в подробностях, почему это состояние изменилось. Обычно подойдёт примерно следующий текст: Followup to ports/45364 misfiled as a new PR. This was misfiled because the subject did not have the format: Re: ports/45364: ... В этом случае автор неправильно оформленного PR будет знать, чего необходимо избегать при отправке отклика на существующее PR.
Некорректные PR с отсутствующими полями Ко второму типу неправильно оформленных PR обычно относят те, что являются результатом забывчивости авторов, которые не заполнили все необходимые поля при написании первоначального PR. Отсутствие или ошибочное задание полей category или class может привести к появлению некорректного сообщения. Разработчики могут использовать &man.edit-pr.1; для смены значений категории или класса этих неправильно оформленных PR на более подходящие и сохранить PR. Другой распространённой причиной появления неправильно оформленных PR являются вопросы форматирования, квотирование, изменение или удаление шаблона send-pr, как по вине пользователя, редактирующего шаблон, так и почтовых программ, которые проделывают странные вещи с обычными текстовыми сообщениями. Это изредка случается и может быть исправлено программой edit-pr, что требует некоторых усилий со стороны разработчика, корректирующего PR, однако в большинстве случаев это можно сделать относительно легко.
Неправильные PR, которые на самом деле не являются сообщениями об ошибках Иногда пользователь желает сообщить об ошибке и посылает GNATS по электронной почте обычное сообщение. Скрипты GNATS работает с сообщениями об ошибках, которые форматированы при помощи шаблона &man.send-pr.1;. Они не могут обрабатывать любые сообщения электронной почты. Вот почему сообщения об ошибках, посылаемые на адрес freebsd-gnats-submit@FreeBSD.org, должны быть оформлены по шаблону команды send-pr, хотя сообщения по электронной почте можно послать на &a.bugs;. Разработчики, которые видят PR, выглядящие так, будто они должны были быть посланы в адрес &a.bugs.name; или какого-то другого списка рассылки, должны закрыть PR, проинформировав его автора в протоколе изменения состояния о причинах, по которых это не является настоящим PR и куда следует посылать сообщения. Электронный адрес, который использует GNATS для приёма поступающих PR, опубликован в документации к FreeBSD, объявлялся и указан на Web-сайте. Это значит, что спамеры его увидели. Спам-сообщения, достигшие GNATS, немедленно определяются в категорию pending и остаются там до тех пор, пока кто-нибудь их не пересмотрит. Закрытие любого из таких сообщений при помощи &man.edit-pr.1; весьма раздражает, потому что GNATS отвечает автору, а адрес отправителя спам-почты никогда не бывает настоящим. Для каждого закрытого PR будут приходить сообщения о невозможности доставки. На данный момент с установкой некоторых фильтров против спама, проверяющих все добавления в базу данных GNATS, количество спама, достигающего состояния pending, весьма мало. Все разработчики, имеющие доступ к машинам кластера FreeBSD.org, приглашаются к проверке неправильно оформленных PR и немедленному закрытию тех, что являются почтовым спамом. Когда вы закрываете такое PR, пожалуйста, сделайте следующее: Выставьте Category в junk. Установите Confidential в no. Смените State в closed. Для PR категории junk не выполняется резервное копирование, следовательно, перевод спам сообщений в эту категорию обозначает, что мы не желаем хранить их или тратить дисковое пространство на них. Если вы просто закрываете их без смены категории, они остаются как в главной базе, так и во всех копиях базы, зеркалируемых через cvsup.
Дополнительная литература Это перечень ресурсов, относящихся к качественному написанию и обработке сообщений об ошибках. Несомненно, этот список не является полным. Как писать Сообщения об ошибках FreeBSD—руководство для авторов PR.
diff --git a/ru_RU.KOI8-R/books/handbook/boot/chapter.sgml b/ru_RU.KOI8-R/books/handbook/boot/chapter.sgml index 23da21fc15..3144bce548 100644 --- a/ru_RU.KOI8-R/books/handbook/boot/chapter.sgml +++ b/ru_RU.KOI8-R/books/handbook/boot/chapter.sgml @@ -1,1052 +1,1047 @@ Андрей Захватов Перевод на русский язык: Процесс загрузки FreeBSD Описание загрузка начальная загрузка Процесс включения компьютера и загрузки операционной системы называется процессом первоначальной загрузки, или просто загрузкой. Процесс загрузки FreeBSD предоставляет большие возможности по гибкой настройке того, что происходит при запуске системы, позволяя вам выбирать из различных операционных систем, установленных на одном и том же компьютере, или даже из различных версий той же самой операционной системы или установленного ядра. Эта глава подробно описывает параметры, которые вы можете изменить для настройки процесса загрузки FreeBSD. Под этим подразумевается все, что происходит до начала работы ядра FreeBSD, обнаружения устройств и запуска &man.init.8;. Если вы не совсем уверены, то это происходит, когда выводимый текст меняет цвет с ярко-белого на серый. После чтения этой главы вы будете знать: Из каких частей состоит система начальной загрузки FreeBSD, и как эти части взаимодействуют. Параметры, которые вы можете передать компонентам начальной загрузки FreeBSD для управления этим процессом. Основы работы &man.device.hints.5; Только для x86 Эта глава описывает процесс загрузки FreeBSD только для систем на основе архитектуры Intel x86. Проблема загрузки Включение компьютера и запуск операционной системы приводят к интересной дилемме. По определению до запуска операционной системы компьютер не умеет ничего. В том числе и не знает, как запускать программы с диска. Так что компьютер не может запустить программу с диска без операционной системы, но программы операционной системы находятся на диске, но как запустить операционную систему? Эта проблема имеет параллели с одной проблемой из книги Приключения барона Мюнхгаузена. Герой провалился в болото, и вытащил сам себя, ухватив за волосы и потянув. В эпоху начала компьютеризации термин начальная загрузка применялся к механизму, используемому для загрузки операционной системы, и затем был сокращен до просто загрузки. BIOS Basic Input/Output SystemBIOS На оборудовании архитектуры x86 за загрузку операционной системы отвечает BIOS (Basic Input/Output System). Для этого BIOS ищет на жестком диске MBR (Master Boot Record), которая должна располагаться в определенном месте на диске. BIOS может загрузить и запустить MBR, и предполагается, что MBR может взять на себя остальную работу, связанную с загрузкой операционной системы. Master Boot Record (MBR) Boot Loader Выполняемую часть MBR обычно называют менеджером загрузки (boot manager), в особенности если она взаимодействует с пользователем. В этом случае менеджер загрузки, как правило, занимает большее пространство на первом треке диска или внутри файловой системы ОС. (Менеджер загрузки иногда называют загрузчиком (boot loader), но во &os; этот термин используется для описания более поздней фазы загрузки). Среди популярных менеджеров загрузки стоит отметить boot0 (он же Boot Easy, стандартный менеджер загрузки &os;), Grub, GAG и LILO. Из перечисленных менеджеров загрузки в MBR помещается только boot0. Если на вашем диске установлена только одна операционная система, то стандартной MBR будет достаточно. Такая MBR выполняет поиск на диске первого загрузочного (активного) слайса, после чего запускает с этого слайса код загрузки оставшейся части операционной системы. Утилита &man.fdisk.8; по умолчанию устанавливает именно такую MBR, на основе файла /boot/mbr. Если на ваших дисках установлено несколько операционных систем, то вы можете установить другой менеджер загрузки, который может выдать список различных операционных систем и позволит вам выбрать одну из них для загрузки. Два варианта менеджеров загрузки будут описаны чуть ниже. Оставшаяся часть системы начальной загрузки FreeBSD разделяется на три этапа. Первый этап запускается из MBR, и он знает достаточно для перевода компьютера в особое состояние и загрузки второго этапа. Второй этап может делать несколько больше до запуска третьего этапа. Третий этап заканчивает работу по загрузке операционной системы. Работа разделена на эти три этапа, потому что стандарты ПК ограничивают размеры программ, которые могут быть запущены на первом и втором этапах. Последовательное выполнение работ позволяет FreeBSD получить более гибкий загрузчик. ядро init Затем стартует ядро, которое начинает опознавать устройства и выполняет их инициализацию. После завершения процесса своей загрузки, ядро передает управление пользовательскому процессу с именем &man.init.8;, который выполняет проверку дисков на возможность использования. Затем &man.init.8; запускает пользовательский процесс настройки ресурсов, который монтирует файловые системы, выполняет настройку сетевых адаптеров для работы в сети и вообще осуществляет запуск всех процессов, обычно выполняемых в системе FreeBSD при загрузке. Менеджер загрузки и этапы загрузки Boot Manager Менеджер загрузки Master Boot Record (MBR) Код MBR или менеджера загрузки время от времени называют нулевой стадией процесса загрузки. В этом разделе мы обсудим два из упомянутых ранее менеджеров загрузки: boot0 и LILO. MBR для FreeBSD находится в /boot/boot0. Это копия MBR, так как настоящая MBR должна располагаться в специальном месте диска, вне области FreeBSD. boot0 очень прост, так как программа в MBR может иметь размер, не превышающий 512 байт. Если вы установили MBR FreeBSD и несколько операционных систем на ваш жесткий диск, то во время загрузки вы увидите нечто похожее на следующее: Менеджер загрузки <application>boot0</application>: MBR, устанавливаемый программой установки &os; или утилитой &man.boot0cfg.8;, основан на /boot/boot0. (boot0 очень прост, так как программа в MBR может иметь размер, не превышающий 446 байт, так как часть первого сектора диска занята таблицей слайсов и сигнатурой 0x55AA). Если вы установили boot0 и несколько операционных систем на ваш жесткий диск, то во время загрузки вы увидите нечто похожее на следующее: Образец экрана <filename>boot0</filename> F1 DOS F2 FreeBSD F3 Linux F4 ?? F5 Drive 1 Default: F2 Известно, что другие операционные системы, в частности, &windows; 95, записывают поверх существующей MBR свою собственную. Если так случилось в вашем случае, или же вы хотите заменить существующую MBR на MBR от FreeBSD, то воспользуйтесь следующей командой: &prompt.root; fdisk -B -b /boot/boot0 device Здесь device является устройством, с которого вы загружаетесь, таким, как ad0 в случае первого диска IDE, ad2 в случае первого диска IDE на втором контроллере IDE, da0 для первого диска SCSI и так далее. Если вы используете MBR нестандартного вида, воспользуйтесь &man.boot0cfg.8;. Менеджер загрузки LILO: Для того, чтобы этот менеджер загрузки мог загружать &os;, загрузите Linux и добавьте к существующему файлу конфигурации /etc/lilo.conf такие строки: other=/dev/hdXY table=/dev/hdb loader=/boot/chain.b label=FreeBSD Укажите диск с основным разделом &os; в терминах Linux, заменив X буквой диска, используемой в Linux, а Y — номером основного раздела. Если вы используете диски SCSI, замените /dev/hd на /dev/sd. Строка может быть опущена, если обе операционные системы находятся на одном диске. Теперь запустите /sbin/lilo -v для того, чтобы ваши изменения были восприняты системой, что должно быть подтверждено сообщениями на экране. Этап первый, <filename>/boot/boot1</filename>, и этап второй, <filename>/boot/boot2</filename> Концептуально первый и второй этапы загрузки являются частями одной и той же программы, в одной области диска. Из-за ограничений на объем дискового пространства они были разделены на две, но вы всегда должны устанавливать их вместе. Они копируются инсталлятором или утилитой bsdlabel (см. ниже) из общего файла /boot/boot. Они располагаются вне файловых систем, на первом треке загрузочного слайса, то есть там, где boot0 или любой другой менеджер загрузки ожидает найти программу, которую следует запустить для продолжение процесса загрузки. Количество используемых секторов легко может быть вычислено из размера файла /boot/boot. boot1 очень прост, так как он не может иметь размер, превышающий 512 байт, и знает лишь о метке диска FreeBSD, хранящей информацию о слайсе, для того, чтобы найти и запустить boot2. boot2 устроен несколько более сложно, и умеет работать с файловой системой FreeBSD в объёме, достаточном для нахождения в ней файлов, и может предоставлять простой интерфейс для выбора и передачи управления ядру или загрузчику. Так как загрузчик устроен гораздо более сложно, и дает удобный и простой способ настройки процесса загрузки, boot2 обычно запускает его, однако раньше его задачей был запуск непосредственно самого ядра. Образец экрана <filename>boot2</filename> >> FreeBSD/i386 BOOT Default: 0:ad(0,a)/boot/loader boot: Если вам когда-либо понадобится заменить установленные boot1 и boot2, то используйте утилиту &man.bsdlabel.8;: &prompt.root; bsdlabel -B diskslice Здесь diskslice являются диском и слайсом, с которых вы загружаетесь, например, ad0s1 в случае первого слайса на первом диске IDE. Режим Dangerously Dedicated Если вы используете только имя диска, к примеру, ad0, в команде &man.bsdlabel.8; вы создадите диск в режиме эксклюзивного использования, без слайсов. Это, скорее всего, вовсе не то, что вы хотите сделать, так что дважды проверьте параметры команды &man.bsdlabel.8;, прежде, чем нажать Return. Третий этап, <filename>/boot/loader</filename> загрузчик Передача управления загрузчику является последним, третьим этапом в процессе начальной загрузки, а сам загрузчик находится в файловой системе, обычно как /boot/loader. Загрузчик являет собой удобный в использовании инструмент для настройки при помощи простого набора команд, управляемого более мощным интерпретатором с более сложным набором команд. Процесс работы загрузчика Во время инициализации загрузчик пытается произвести поиск консоли, дисков и определить, с какого диска он был запущен. Соответствующим образом он задаёт значения переменных и запускает интерпретатор, которому могут передаваться пользовательские команды как из скрипта, так и в интерактивном режиме. загрузчик конфигурация загрузчика Затем загрузчик читает файл /boot/loader.rc, который по умолчанию использует файл /boot/defaults/loader.conf, устанавливающий подходящие значения по умолчанию для переменных и читает файл /boot/loader.conf для изменения в этих переменных. Затем с этими переменными работает loader.rc, загружающий выбранные модули и ядро. И наконец, по умолчанию загрузчик выдерживает 10-секундную паузу, ожидая нажатия клавиши, и загружает ядро, если этого не произошло. Если ожидание было прервано, пользователю выдается приглашение, которое воспринимает простой набор команд, с помощью которых пользователь может изменить значения переменных, выгрузить все модули, загрузить модули и окончательно продолжить процесс загрузки или перезагрузить машину. Встроенные команды загрузчика Далее следуют наиболее часто используемые команды загрузчика. Полное описание всех имеющихся команд можно найти на странице справки о команде &man.loader.8;. autoboot секунды Продолжает загрузку ядра, если не будет прерван в течение указанного в секундах промежутка времени. Он выводит счетчик, и по умолчанию выдерживается интервал в 10 секунд. boot -параметры имя ядра Продолжить процесс загрузки указанного ядра, если оно было указано, и с указанными параметрами, если они были указаны. Загрузка и использование указанного ядра возможны лишь после выгрузки текущего ядра, а выгрузка текущего ядра производится командой unload. boot-conf Повторно провести тот же самый процесс автоматической настройки модулей на основе переменных, что был произведен при загрузке. Это имеет смысл, если до этого вы выполнили команду unload, изменили некоторые переменные, например, наиболее часто меняемую kernel. help тема Вывод сообщений подсказки из файла /boot/loader.help. Если в качестве темы указано слово index, то выводится список имеющихся тем. include имя файла Выполнить файл с указанным именем. Файл считывается и его содержимое интерпретируется строчка за строчкой. Ошибка приводит к немедленному прекращению выполнения команды include. load тип имя файла Загружает ядро, модуль ядра или файл указанного типа с указанным именем. Все аргументы после имени файла передаются в файл. ls маршрут Выводит список файлов по указанному маршруту или в корневом каталоге, если маршрут не был указан. Если указан параметр , будут выводиться и размеры файлов. lsdev Выводится список всех устройств, с которых могут быть загружены модули. Если указан параметр , выводится дополнительная информация. lsmod Выводит список загруженных модулей. Если указан параметр , то выводится дополнительная информация. more имя файла Вывод указанного файла с паузой при выводе каждой строки LINES. reboot Выполнить немедленную перезагрузку машины. set переменная set переменная=значение Задает значения переменных окружения загрузчика. unload Удаление из памяти всех загруженных модулей. Примеры использования загрузчика Вот несколько примеров практического использования загрузчика: однопользовательский режим Чтобы просто загрузить ваше ядро обычным образом, но в однопользовательском режиме: boot -s Для выгрузки обычных ядра и модулей, а потом просто загрузить ваше старое (или другое) ядро: kernel.old unload load kernel.old Вы можете использовать kernel.GENERIC для обозначения стандартного ядра, поставляемого на установочном диске, или kernel.old для обращения к ранее установленному ядру (после того, как, например, вы обновили или отконфигурировали новое ядро). Для загрузки ваших обычных модулей с другим ядром используйте такие команды: unload set kernel="kernel.old" boot-conf Для загрузки скрипта конфигурации ядра (автоматизированный скрипт, который выполняет то, что вы обычно делаете в конфигураторе ядра во время загрузки): load -t userconfig_script /boot/kernel.conf Joseph J. Barbish Предоставил Загрузочные экранные заставки Заставка создает более привлекательный вид процесса загрузки по сравнению с традиционными сообщениями загрузки. Изображение заставки будет отображаться до тех пор, пока не придет очередь приглашения ввода логина на консоли или в менеджере дисплеев. Есть два базовых окружения во &os;. Первое — это окружение командной строки текстовой виртуальной консоли. По завершении загрузки системы вам предоставляется консольное приглашение ввода логина. Второе окружение — это графическое окружение рабочего стола X11. После установки X11 и одной из графических оболочек, таких как GNOME, KDE или XFce, становится возможным запуск рабочего стола Х11 командой startx. Некоторые пользователи предпочитают графический интерфейс входа традиционному текстовому приглашению ввода логина. Менеджеры экранов, наподобие XDM для &xorg;, gdm для GNOME, kdm для KDE (а также другие, доступные из коллекции портов), изначально предоставляют графический интерфейс входа. После успешного входа в систему они запускают соответствующий оконный менеджер. В текстовом окружении экранная заставка скрывает все подробности процесса загрузки и сообщения стартовых скриптов до момента выдачи приглашения ввода логина. Если используется экранная заставка перед входом в графическое окружение, то пользователи получают визуально более чистый старт системы, чем-то напоминающий опыт работы с µsoft; &windows; или с иной не unix-подобной системой. Экранная заставка в действии В качестве заставки можно использовать лишь содержащие 256 цветов изображения формата BMP (.bmp) или изображения формата PCX (.pcx) от ZSoft. К тому же, для вывода на стандартный VGA адаптер, файл изображения заставки должен иметь разрешение не более 320 на 200 пикселей. Чтобы можно было использовать изображения большего размера, вплоть до максимального 1024 на 768, активируйте поддержку VESA. Активация может быть осуществлена либо подключением модуля VESA во время загрузки системы, либо сборкой специализированного ядра с добавленной опцией VESA (смотрите ). Поддержка режима VESA дает пользователям возможность отображать заставку, перекрывающую всю видимую область экрана. Отображаемая во время загрузки заставка может быть убрана нажатием любой клавиши на клавиатуре. С настройками по умолчанию заставка также становится хранителем экрана в консольном окружении. После некоторого бездействия экран сменится заставкой, яркость которой будет периодически изменяться от её максимального значения к минимальному и обратно. Подобное поведение заставки может быть переопределено добавлением строки saver= в /etc/rc.conf. В качестве значения опции saver= можно выбрать одно из встроенных имен хранителей экранов, а с полным перечнем можно ознакомиться на странице справочника &man.splash.4;. Хранитель экрана, используемый по умолчанию, называется warp. Заметьте, что установка опции saver= в /etc/rc.conf воздействует исключительно на текстовые виртуальные консоли. Она не влияет на менеджеры экранов X11. Несколько сообщений загрузчика, включая меню загрузки и счетчик, отображаются во время загрузки, даже если экран-заставка активирован. Файлы-примеры с изображениями для заставок могут быть скачаны из галереи по адресу http://artwork.freebsdgr.org. Установив порт sysutils/bsd-splash-changer, между загрузками вы получите автоматическую смену случайно выбираемых изображений заставок. Активация экранной заставки Файл изображения для заставки (.bmp или .pcx) следует разместить в корневой файловой системе, например в каталоге /boot. Для работы заставки с разрешением, доступным при загрузке (256 цветов и не более 320х200 точек), отредактируйте /boot/loader.conf, добавив в него следующие строки: splash_bmp_load="YES" bitmap_load="YES" bitmap_name="/boot/splash.bmp" Для получения больших разрешений видео режима (вплоть до максимального 1024x768), внесите в /boot/loader.conf следующие записи: vesa_load="YES" splash_bmp_load="YES" bitmap_load="YES" bitmap_name="/boot/splash.bmp" Вышеприведённый пример подразумевает, что файл /boot/splash.bmp содержит изображение заставки. Если же требуется выводить файл формата PCX, то используйте следующие строки (в зависимости от необходимого разрешения может также потребоваться строка vesa_load="YES"): splash_pcx_load="YES" bitmap_load="YES" bitmap_name="/boot/splash.pcx" Возможное имя файла не ограничено одним лишь словом splash. Оно может выбираться произвольно, например: splash_640x400.bmp или blue_wave.pcx. Важен лишь тип файла: он должен быть либо BMP, либо PCX. Далее приведены еще две полезные опции loader.conf: beastie_disable="YES" Эта опция отключит меню загрузчика, но приглашение с обратным отсчетом останется. Даже при не отображаемом меню во время отсчета возможен выбор номера варианта загрузки. loader_logo="beastie" Эта установка заменит слова &os;, которые отображаются справа от меню загрузчика, цветным логотипом демона, который занимал это место в предыдущих релизах &os;. За более детальной информацией обратитесь к следующим страницам справочника: &man.splash.4;, &man.loader.conf.5; и &man.vga.4;. Взаимодействие с ядром во время загрузки ядро взаимодействия во время загрузки Как только ядро окажется загруженным при помощи загрузчика (обычный способ) или boot2 (минуя загрузчик), оно проверяет флаги загрузки, если они есть, и действует соответствующим образом. ядро флаги загрузки Флаги загрузки ядра Вот наиболее часто используемые флаги загрузки: во время инициализации ядра запрашивать устройство для его монтирования в качестве корневой файловой системы. загрузка с компакт-диска. запустить UserConfig для конфигурации ядра во время загрузки после загрузки перейти в однопользовательский режим во время запуска ядра выводить более подробную информацию Есть и другие флаги загрузки, обратитесь к странице справочника по &man.boot.8; для выяснения подробной информации по ним. Tom Rhodes Текст предоставил device.hints Хинты устройств - - Эта функция присутствует только во FreeBSD 5.0 и последующих - версиях, но не в более ранних. - - Во время начального запуска системы загрузчик &man.loader.8; производит чтение файла &man.device.hints.5;. В этом файле хранится необходимая для загрузки ядра информация, задаваемая в виде переменных, которую иногда называют хинтами для устройств (device hints). Эти хинты устройств используются драйверами устройств для их конфигурации. Хинты для устройств могут быть также заданы в приглашении начального загрузчика Стадии 3. Переменные могут быть добавлены при помощи команды set, удалены посредством unset и просмотрены командой show. В этот момент могут быть также переопределены переменные, заданные в файле /boot/device.hints. Хинты для устройств, введённые в начальном загрузчике, не сохраняются, и при следующей перезагрузке будут утеряны. После загрузки системы для выдачи значений всех переменных можно воспользоваться командой &man.kenv.1;. Синтаксически в файле /boot/device.hints в каждой строке определяется по одной переменной, в качестве метки начала комментария используется стандартный символ #. Строки строятся следующим образом: hint.driver.unit.keyword="value" Синтаксис для начального загрузчика Стадии 3 таков: set hint.driver.unit.keyword=value driver определяет имя драйвера устройства, unit соответствует порядковому номеру модуля устройства, а keyword является ключевым словом хинта. В качестве ключевых слов могут применяться следующие опции: at: задаёт шину, к которой подключено устройство. port: задаёт начальный адрес используемого диапазона ввода/вывода (I/O). irq: задаёт используемый номер запроса на прерывание. drq: задаёт номер канала DMA. maddr: задаёт физический адрес памяти, занимаемый устройством. flags: устанавливает различные битовые флаги для устройства. disabled: если установлено в значение 1, то устройство не используется. Драйверы устройств могут поддерживать (и даже требовать) другие хинты, здесь не перечисленные, поэтому рекомендуется просматривать справочные страницы по этим драйверам. Для получения дополнительной информации обратитесь к страницам справки по &man.device.hints.5;, &man.kenv.1;, &man.loader.conf.5; и &man.loader.8;. init Init: инициализация управления процессами После того, как ядро завершит загрузку, оно передает управление пользовательскому процессу &man.init.8;, который расположен в файле /sbin/init или в файле, маршрут к которому указан в переменной init_path загрузчика. Процесс автоматической перезагрузки Процесс автоматической перезагрузки проверяет целостность имеющихся файловых систем. Если это не так, и утилита &man.fsck.8; не может исправить положение, то &man.init.8; переводит систему в однопользовательский режим для того, чтобы системный администратор сам разобрался с возникающими проблемами. Однопользовательский режим однопользовательский режим консоль В этот режим можно перейти во время процесса автоматической перезагрузки, при ручной загрузке с параметром или заданием переменной boot_single для программы loader. Этот режим может быть также вызван запуском программы &man.shutdown.8; без параметров перезагрузки () или останова () из многопользовательского режима. Если режим доступа к системной консоли console установлен в файле /etc/ttys в insecure, то система выведет запрос на ввод пароля пользователя root перед переходом в однопользовательский режим. Незащищённая консоль в <filename>/etc/ttys</filename> # name getty type status comments # # Если консоль помечена как "insecure", то init будет запрашивать пароль # пользователя root при переходе в однопользовательский режим. console none unknown off insecure Обозначение консоли как insecure означает, что вы считаете физический доступ к консоли незащищённым, и хотите, чтобы только тот, кто знает пароль пользователя root, мог воспользоваться однопользовательским режимом, но это не значит, что вы хотите работать с консолью небезопасным способом. Таким образом, если вы хотите добиться защищённости, указывайте insecure, а не secure. Многопользовательский режим многопользовательский режим Если &man.init.8; определит, что ваши файловые системы находятся в полном порядке, или после того, как пользователь выйдет из однопользовательского режима, система перейдет в многопользовательский режим, работа в котором начинается с настройки ресурсов системы. файлы rc Настройка ресурсов (rc) Система настройки ресурсов считывает настройки, применяемые по умолчанию, из файла /etc/defaults/rc.conf, а настройки, специфичные для конкретной системы, из /etc/rc.conf, после чего осуществляется монтирование файловых систем, перечисленных в файле /etc/fstab, запуск сетевых служб, различных системных даемонов и, наконец, выполнение скриптов запуска дополнительно установленных пакетов. Страница справочника по &man.rc.8; является хорошим источником информации о системе настройки ресурсов, так же, как и самостоятельное изучение скриптов. Процесс остановки системы shutdown Во время контролируемого процесса остановки системы через утилиту &man.shutdown.8; программа &man.init.8; будет пытаться запустить скрипт /etc/rc.shutdown, после чего будет посылать всем процессам сигнал TERM, а затем и KILL тем процессам, которые ещё не завершили свою работу. Для выключения машины с FreeBSD на аппаратных платформах и системах, которые поддерживают управление электропитанием, просто воспользуйтесь командой shutdown -p now для немедленного отключения электропитания. Чтобы просто перезагрузить систему FreeBSD, воспользуйтесь командой shutdown -r now. Для запуска команды &man.shutdown.8; вам необходимо быть пользователем root или членом группы operator. Кроме того, можно также воспользоваться командами &man.halt.8; и &man.reboot.8;, пожалуйста, обратитесь к соответствующим страницам справки и справочной странице по команде &man.shutdown.8; для получения дополнительной информации. Для управления электропитанием требуется наличие поддержки &man.acpi.4; в ядре или в виде загруженного модуля. diff --git a/ru_RU.KOI8-R/books/handbook/disks/chapter.sgml b/ru_RU.KOI8-R/books/handbook/disks/chapter.sgml index 2196c4636b..8fc202e40a 100644 --- a/ru_RU.KOI8-R/books/handbook/disks/chapter.sgml +++ b/ru_RU.KOI8-R/books/handbook/disks/chapter.sgml @@ -1,4361 +1,4337 @@ Андрей Захватов Перевод на русский язык: Устройства хранения Краткий обзор В этой главе описывается использование дисков во FreeBSD. К ним относятся диски в памяти, диски, подключенные по сети, обычные устройства хранения SCSI/IDE и устройства, использующие интерфейс USB. После чтения этой главы вы будете знать: Терминологию, используемую во FreeBSD для описания организации данных на физическом диске (разделы и слайсы). Как добавить дополнительные винчестеры к вашей системе. Как настроить &os; для использования дисковых устройств USB. Как настроить виртуальные файловые системы, такие, как диски в оперативной памяти. Как использовать квоты для ограничения использования дискового пространства. Как зашифровать диски, чтобы защитить их от взлома. Как создавать и записывать CD и DVD во FreeBSD. Различные варианты использования устройств хранения для резервных копий. Как использовать программы резервного копирования, имеющиеся для FreeBSD. Как выполнять резервное копирование на дискеты. Что такое мгновенные копии файловых систем и как их эффективно использовать Перед прочтением этой главы вам потребуется: Узнать как настраивать и устанавливать новое ядро FreeBSD (). Имена устройств Далее приводится список физических устройств хранения информации, которые поддерживаются во FreeBSD, и имена устройств, которые им соответствуют. Соглашения по именованию физических дисков Тип диска Имя дискового устройства Винчестеры IDE ad Приводы IDE CDROM acd Винчестеры SCSI и дисковые устройства USB da Приводы SCSI CDROM cd Различные нестандартные приводы CDROM mcd для Mitsumi CD-ROM, scd для Sony CD-ROM Дискеты fd Ленточные приводы SCSI sa Ленточные приводы IDE ast Флэш-диски fla для флэш-устройств &diskonchip; Диски RAID aacd для &adaptec; AdvancedRAID, mlxd и mlyd для &mylex;, amrd для AMI &megaraid;, idad для Compaq Smart RAID, twed для &tm.3ware; RAID.
David O'Brien Изначальный текст предоставил Добавление дисков диски добавление В этом разделе будет описан процесс добавления нового SCSI диска на машину, имеющую в данный момент только один диск. Сначала выключим компьютер и установим диск в компьютер согласно инструкциям к компьютеру, контроллеру и от производителя диска. Из-за большого разнообразия этих процедур их рассмотрение выходит за рамки этого документа.. Войдите в систему как пользователь root. После того, как вы установили диск, просмотрите файл /var/run/dmesg.boot, чтобы убедиться, что новый диск был найден. Продолжая наш пример, только что добавленный диск будет называться da1 и мы хотим смонтировать его в каталог /1 (если вы добавляете диск IDE, то устройство будет называться ad1). разделы слайсы fdisk FreeBSD работает на IBM-PC совместимых компьютерах, поэтому она должна уметь работать с разделами PC BIOS. Однако они отличаются от традиционных разделов BSD. Диск ПК может иметь до четырёх записей разделов BIOS. Если диск на самом деле будет использоваться исключительно под FreeBSD, вы можете использовать режим dedicated. В противном случае FreeBSD будет располагаться в одном из разделов PC BIOS. Во FreeBSD разделы PC BIOS называются слайсами, чтобы не путать их с традиционными разделами BSD. Вы также можете использовать слайсы и с диском, предназначенным исключительно для FreeBSD, однако используемым в компьютере, на котором имеется дополнительная операционная система. Это является хорошим способом избежать путаницы в утилите fdisk других операционных систем, не связанных с FreeBSD. В случае слайсов диск будет добавлен как /dev/da1s1e. Это интерпретируется следующим образом: диск SCSI, устройство номер 1 (второй диск SCSI), слайс 1 (раздел PC BIOS 1), и раздел BSD e. В случае использования в выделенном режиме диск будет добавлен просто как /dev/da1e. Вследствие использования 32-разрядных целых чисел для адресации секторов, &man.bsdlabel.8; ограничен 2^32-1 секторами на диск, или 2TB в большинстве случаев. Формат &man.fdisk.8; позволяет наличие первого сектора со смещением не более 2^32-1 и длину не более 2^32-1, что ограничивает размер раздела до 2TB, а размер диска до 4TB в большинстве случаев. Формат &man.sunlabel.8; ограничен 2^32-1 секторами на раздел и 8 разделами, что составляет 16TB. Для дисков большего раздела могут быть использованы разделы &man.gpt.8;. Использование утилиты &man.sysinstall.8; sysinstall добавление дисков su Использование <application>Sysinstall</application> Вы можете использовать простые меню утилиты sysinstall для разбиения на разделы и разметки нового диска. Войдите как пользователь root или воспользуйтесь командой su. Запустите команду sysinstall и войдите в меню Configure. Внутри FreeBSD Configuration Menu, пролистайте и выберите пункт Fdisk. Редактор разделов <application>fdisk</application> При работе с утилитой fdisk нажатие A используется для выделения под FreeBSD полностью всего диска. Когда будет задан вопрос о том, хотите ли вы сохранить совместимость с другими возможными операционными системами в будущем, ответьте YES. Запишите изменения на диск при помощи команды W. А теперь выйдите из редактора FDISK, нажав Q. В этот момент вам будет задан вопрос о Master Boot Record (главной загрузочной записи). Так как вы добавляете диск к уже работающей системе, выберите None. Редактор метки диска разделы BSD Теперь вам нужно выйти из sysinstall и запустить эту утилиту снова. Следуйте указаниям выше, но на этот раз выберите пункт Label. Вы перейдёте к меню Disk Label Editor. Здесь вы создадите традиционные разделы BSD. На диске может быть до восьми разделов, имеющих метки a-h. Некоторые из меток разделов имеют особый смысл. Раздел a используется для размещения корневого раздела (/). По этой причине только ваш системный диск (например, тот, с которого происходит загрузка), должен иметь раздел a. Раздел b используется под раздел подкачки, и вы можете иметь много дисков с разделами подкачки. Раздел c используется для доступа ко всему диску в режиме эксклюзивного использования или ко всему слайсу FreeBSD при работе в режиме с использованием слайсов. Остальные разделы имеют обычное предназначение. Редактор метки диска программы sysinstall использует раздел e для некорневого раздела и не для раздела подкачки. Внутри редактора метки диска создайте отдельную файловую систему, нажав C. Когда будет задан вопрос о том, будет ли это раздел с файловой системой (FS) или это будет раздел подкачки, выберите FS и наберите точку монтирования (например, /mnt). При добавлении диска после установки системы, программа sysinstall не будет автоматически создавать записи в файле /etc/fstab, поэтому точка монтирования не так уж и важна. Теперь вы готовы записать новую метку на диск и создать на нем файловую систему. Сделайте это, нажав W. Проигнорируйте сообщения об ошибках от sysinstall о невозможности смонтировать новый раздел. Полностью выйдите из редактора метки диска и из программы sysinstall. Завершение Последний шаг заключается в редактировании файла /etc/fstab и добавлении записи для вашего нового диска. Использовании утилит командной строки Работа со слайсами Следующая настройка позволит вашему диску корректно работать с другими операционными системами, которые могут быть установлены на вашем компьютере, и не вызовет конфликта с утилитами fdisk других операционных систем. Этот способ рекомендуется использовать для установок новых дисков. Используйте эксклюзивный режим, только если у вас есть реальные причины делать это! &prompt.root; dd if=/dev/zero of=/dev/da1 bs=1k count=1 &prompt.root; fdisk -BI da1 # Инициализируем новый диск. &prompt.root; bsdlabel -B -w da1s1 auto # Размечаем его. &prompt.root; bsdlabel -e da1s1 # Редактируем только что созданную метку диска и добавляем разделы. &prompt.root; mkdir -p /1 &prompt.root; newfs /dev/da1s1e # Повторяем этот шаг для всех созданных разделов. &prompt.root; mount /dev/da1s1e /1 # Монтируем раздел(ы) &prompt.root; vi /etc/fstab # Добавляем соответствующую запись/записи в файл /etc/fstab. Если у вас установлен диск IDE, подставьте ad вместо da. Эксклюзивный режим OS/2 Если вы не будете использовать новый диск совместно с другой операционной системой, то вы можете использовать режим эксклюзивного использования. Отметьте, что этот режим может ввести в заблуждение операционные системы от Microsoft; однако информацию они не разрушат. А вот &os2; компании IBM будет забирать себе любой раздел, который она найдет и не сможет распознать. &prompt.root; dd if=/dev/zero of=/dev/da1 bs=1k count=1 &prompt.root; bsdlabel -Bw da1 auto &prompt.root; bsdlabel -e da1 # create the `e' partition &prompt.root; newfs /dev/da1e &prompt.root; mkdir -p /1 &prompt.root; vi /etc/fstab # add an entry for /dev/da1e &prompt.root; mount /1 Альтернативный метод заключается в следующем: &prompt.root; dd if=/dev/zero of=/dev/da1 count=2 &prompt.root; bsdlabel /dev/da1 | bsdlabel -BR da1 /dev/stdin &prompt.root; newfs /dev/da1e &prompt.root; mkdir -p /1 &prompt.root; vi /etc/fstab # add an entry for /dev/da1e &prompt.root; mount /1 RAID Программный RAID Christopher Shumway Оригинальный текст предоставил Jim Brown Изменения внёс RAIDпрограммный RAIDCCD Конфигурация драйвера объединённого диска (CCD) При выборе решения для организации хранилища самыми важными характеристиками являются скорость, надежность и стоимость. Редко все эти характеристики наличествуют одновременно; обычно быстрое и надёжное устройство хранения стоит дорого, а при уменьшении стоимости в жертву приносятся скорость работы или надёжность. При проектировании описываемой далее системы в качестве самого важного фактора была выбрана её стоимость, затем быстродействие и надёжность. Скорость передачи данных для этой системы ограничивалась только пропускной способностью сети. И, хотя надёжность очень важна, CCD-диск, описываемый ниже, обслуживал работу с данными, полные копии которых уже хранились на дисках CD-R, так они могли быть с лёгкостью обновлены. При выборе решения для массового хранения данных первым шагом является определение ваших требований к нему. Если в ваших требованиях главными являются скорость или надёжность, а не стоимость, то ваш выбор будет отличаться от описываемой в этом разделе системы. Установка оборудования Кроме системного IDE-диска, основу описываемого далее CCD-диска общим объёмом примерно в 90 Гбайт составили три IDE-диска Western Digital 30GB, 5400 RPM. В идеальном случае каждый диск IDE имеет собственный контроллер и кабель, но для минимизации стоимости дополнительные контроллеры IDE не использовались. Вместо этого диски были настроены при помощи переключателей так, что на каждом IDE-контроллере находилось по одному ведущему и одному ведомому диску. До перезагрузки BIOS системы была настроена на автоматическое распознавание подключенных дисков. Более важно то, что при перезагрузке их распознала FreeBSD: ad0: 19574MB <WDC WD205BA> [39770/16/63] at ata0-master UDMA33 ad1: 29333MB <WDC WD307AA> [59598/16/63] at ata0-slave UDMA33 ad2: 29333MB <WDC WD307AA> [59598/16/63] at ata1-master UDMA33 ad3: 29333MB <WDC WD307AA> [59598/16/63] at ata1-slave UDMA33 Если FreeBSD не распознала все диски, проверьте корректность положения переключателей на них. На большинстве IDE-дисков имеется также переключатель Cable Select. Он не имеет отношения к выбору ведущего и ведомого устройств. Для получения помощи по правильному положению переключателей обратитесь к документации по устройствам. Затем определите, как сделать их частью файловой системы. Изучите справку по &man.vinum.8; () и &man.ccd.4;. В нашем конкретном случае была выбрана технология &man.ccd.4;. Настройка CCD Драйвер &man.ccd.4; позволяет вам взять несколько идентичных дисков и объединить их в одну логическую файловую систему. Для использования &man.ccd.4; нужно ядро со встроенной поддержкой &man.ccd.4;. Добавьте такую строку в файл конфигурации ядра, перестройте и установите новое ядро: device ccd Поддержка &man.ccd.4; также может быть обеспечена загрузкой подгружаемого модуля ядра. Для настройки &man.ccd.4; сначала вам нужно воспользоваться утилитой &man.bsdlabel.8; для разметки дисков: bsdlabel -w ad1 auto bsdlabel -w ad2 auto bsdlabel -w ad3 auto При этом создаются метки для ad1c, ad2c и ad3c, которые занимают диск полностью. Следующим шагом является изменение типа метки диска. Для редактирования дисков можно использовать утилиту &man.bsdlabel.8;: bsdlabel -e ad1 bsdlabel -e ad2 bsdlabel -e ad3 При этом в редакторе, задаваемом переменной окружения EDITOR (обычно это &man.vi.1;), открывается текущая метка каждого диска. Не модифицированная метка диска будет выглядеть примерно следующим образом: 8 partitions: # size offset fstype [fsize bsize bps/cpg] c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597) Добавьте новый раздел e для использования драйвером &man.ccd.4;. Как правило, он может быть скопирован с раздела c, но поле должно иметь значение 4.2BSD. Теперь метка диска должна выглядеть примерно так: 8 partitions: # size offset fstype [fsize bsize bps/cpg] c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597) e: 60074784 0 4.2BSD 0 0 0 # (Cyl. 0 - 59597) Построение файловой системы Теперь, когда все диски размечены, вы должны построить &man.ccd.4;. Для этого используйте утилиту &man.ccdconfig.8; с параметрами, подобными следующим: ccdconfig ccd0 32 0 /dev/ad1e /dev/ad2e /dev/ad3e Использование и значение каждого параметра описывается ниже: Первым аргументом является конфигурируемое устройство, в нашем случае /dev/ccd0c. Часть /dev/ является необязательной. Чередование для файловой системы. Оно определяет размер единицы блока данных в количестве дисковых блоков, каждый из которых обычно имеет объём в 512 байт. Таким образом, при чередовании в 32 это будет составлять 16384 байт. Опции для &man.ccdconfig.8;. Если вы хотите включить зеркалирование диска, то можете задать это здесь. В нашей конфигурации зеркалирование для &man.ccd.4; не предусмотрено, поэтому здесь задан 0 (ноль). Последним параметром для &man.ccdconfig.8; является список устройств для объединения в массив. Для каждого устройства нужно задавать полное имя. После запуска &man.ccdconfig.8; устройство &man.ccd.4; будет отконфигурировано. Может будет построить файловую систему. Обратитесь к справке по команде &man.newfs.8; для выяснения требуемых параметров, или просто запустите: newfs /dev/ccd0c Автоматическое выполнение Вообще говоря, вам потребуется монтировать &man.ccd.4; при каждой перезагрузке. Для этого сначала вы должны отконфигурировать это устройство. Запишите вашу текущую конфигурацию в файл /etc/ccd.conf при помощи такой команды: ccdconfig -g > /etc/ccd.conf При перезагрузке скрипт /etc/rc запускает команду ccdconfig -C, если существует файл /etc/ccd.conf. При этом &man.ccd.4; автоматически конфигурируется так, чтобы он мог быть смонтирован. Если при загрузке вы входите в однопользовательский режим, то перед тем, как выполнять монтирование &man.ccd.4; по команде &man.mount.8;, вам нужно для конфигурации массива запустить следующую команду: ccdconfig -C Для автоматического монтирования &man.ccd.4; поместите запись о &man.ccd.4; в файл /etc/fstab, чтобы он мог быть смонтирован во время загрузки системы: /dev/ccd0c /media ufs rw 2 2 Менеджер томов Vinum RAIDпрограммный RAIDVinum Менеджер томов Vinum является драйвером блочного устройства, который реализует виртуальные диски. Он отделяет дисковое оборудование от интерфейса блочного устройства и работает с данными таким образом, что в результате повышается гибкость, производительность и надёжность по сравнению с традиционным взглядом на дисковое хранилище как на кусок дискового пространства. &man.vinum.8; реализует модели RAID-0, RAID-1 и RAID-5, как по отдельности, так и в комбинациях. Обратитесь к для получения более полной информации о &man.vinum.8;. Аппаратный RAID RAID Оборудование FreeBSD поддерживает также целый ряд аппаратных контроллеров RAID. Эти устройства самостоятельно управляют RAID-подсистемой, без необходимости иметь специфичное для FreeBSD программное обеспечения управления массивом. При помощи встроенной в адаптер BIOS, он сам управляет большинством дисковых операций. Далее следует краткое описание установки при помощи контроллера Promise IDE RAID. После установки адаптера и запуска системы, выдаётся запрос на ввод. Следуйте указаниям для входа в настройку адаптера. Отсюда вы можете объединить все подключенные диски. После этого во FreeBSD диск(и) будут выглядеть как один диск. Аналогично могут быть настроены и другие уровни RAID. Перестроение массивов ATA RAID1 FreeBSD позволяет вам выполнять горячую замену вышедшего из строя диска. При этом требуется, чтобы вы заметили это до перезагрузки. Вероятно, в файле /var/log/messages или в выдаче команды &man.dmesg.8; вы увидите примерно следующее: ad6 on monster1 suffered a hard error. ad6: READ command timeout tag=0 serv=0 - resetting ad6: trying fallback to PIO mode ata3: resetting devices .. done ad6: hard error reading fsbn 1116119 of 0-7 (ad6 bn 1116119; cn 1107 tn 4 sn 11)\\ status=59 error=40 ar0: WARNING - mirror lost При помощи &man.atacontrol.8; получите дополнительную информацию: &prompt.root; atacontrol list ATA channel 0: Master: no device present Slave: acd0 <HL-DT-ST CD-ROM GCR-8520B/1.00> ATA/ATAPI rev 0 ATA channel 1: Master: no device present Slave: no device present ATA channel 2: Master: ad4 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 Slave: no device present ATA channel 3: Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 Slave: no device present &prompt.root; atacontrol status ar0 ar0: ATA RAID1 subdisks: ad4 ad6 status: DEGRADED Сначала вам нужно отключить канал контроллера ATA, содержащий отказавший диск, чтобы его можно было без последствий извлечь: &prompt.root; atacontrol detach ata3 Замените диск. Повторно подключите канал дискового контроллера: &prompt.root; atacontrol attach ata3 Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 Slave: no device present Добавьте новый диск к массиву в качестве резервного: &prompt.root; atacontrol addspare ar0 ad6 Перестройте массив: &prompt.root; atacontrol rebuild ar0 Проверить состояние дел можно при помощи следующей команды: &prompt.root; dmesg | tail -10 [выдача удалена] ad6: removed from configuration ad6: deleted from ar0 disk1 ad6: inserted into ar0 disk1 as spare &prompt.root; atacontrol status ar0 ar0: ATA RAID1 subdisks: ad4 ad6 status: REBUILDING 0% completed Дождитесь завершения этой операции. Marc Fonvieille Предоставил USB устройства хранения USB диски Множество современных устройств хранения используют Universal Serial Bus (USB): жесткие диски, брелоки USB, CD-R приводы, и т.д. &os; предоставляет поддержку этих устройств. Настройка Драйвер &man.umass.4; предоставляет поддержку устройств хранения USB. Если вы используете GENERIC ядро, изменять что-либо в настройках не потребуется. Если вы используете настроенное ядро, убедитесь, что в файле настройки присутствуют следующие строки: device scbus device da device pass device uhci device ohci device ehci device usb device umass Для доступа к устройствам хранения USB драйвер &man.umass.4; использует подсистему SCSI, ваши устройства USB будут видны системе как SCSI устройства. В зависимости от чипсета USB на материнской плате, для включения поддержки USB 1.X вам потребуется только один из параметров device uhci или device ohci. Однако, наличие обоих этих параметров не помешает. Поддержка контроллеров USB 2.0 предоставляется драйвером &man.ehci.4; (строка device ehci). Не забудьте скомпилировать и установить новое ядро после добавления каких-либо строк. Если ваше USB устройство это пишущий привод CD-R или DVD, необходимо добавить в ядро SCSI CD-ROM драйвер, &man.cd.4;, следующей строкой: device cd Поскольку устройство записи видно как SCSI диск, драйвер &man.atapicam.4; не должен использоваться в файле настройки. Тестирование конфигурации Конфигурация готова к тестированию, подключите устройство USB, и в буфере системных сообщений (&man.dmesg.8;), диск должен отобразиться примерно так: umass0: USB Solid state disk, rev 1.10/1.00, addr 2 GEOM: create disk da0 dp=0xc2d74850 da0 at umass-sim0 bus 0 target 0 lun 0 da0: <Generic Traveling Disk 1.11> Removable Direct Access SCSI-2 device da0: 1.000MB/s transfers da0: 126MB (258048 512 byte sectors: 64H 32S/T 126C) Конечно, производитель, имя устройства (da0) и другие детали могут отличаться в зависимости от конфигурации. Поскольку устройство USB видится как SCSI, команда camcontrol может быть использована для вывода списка устройств хранения USB, подключенных к системе: &prompt.root; camcontrol devlist <Generic Traveling Disk 1.11> at scbus0 target 0 lun 0 (da0,pass0) Если на диске есть файловая система, у вас должна быть возможность смонтировать ее. поможет вам создать и отформатировать разделы на диске USB если потребуется. Ниже описанный механизм (vfs.usermount), допускающий монтирование случайных носителей пользователями, не являющимися доверенными, считается небезопасным. Большинство файловых систем во &os; никак не ограждено от возможности несанкционированного монтирования устройств. Чтобы это устройство мог смонтировать обычный пользователь, необходимо выполнить определенные действия. Для начала, необходимо дать обычным пользователям доступ к устройствам, создаваемым при подключении USB устройства. Решение состоит во включении всех пользователей данных устройств в группу operator. Это делается утилитой &man.pw.8;. Затем, когда устройства созданы, у группы operator должен быть доступ на чтение и запись для этих устройств. Это выполняется путем добавления следующих строк в /etc/devfs.rules: [localrules=5] add path 'da*' mode 0660 group operator Если к системе подключены SCSI диски, это должно быть сделано немного иначе. Так, если в системе уже есть диски с da0 по da2, вторая строка должна выглядеть так: add path 'da[3-9]*' mode 0660 group operator Это исключит уже существующие диски из группы operator. Вам также потребуется включить набор правил &man.devfs.rules.5; в файл /etc/rc.conf: devfs_system_ruleset="localrules" Затем, ядро необходимо настроить так, чтобы оно позволяло обычным пользователям монтировать файловые системы. Простейший способ сделать это - добавить в файл /etc/sysctl.conf следующую строку: vfs.usermount=1 Этот параметр установится только после последующей перезагрузки. Для установки этой переменной можно также использовать &man.sysctl.8;. Последний шаг - создание каталога, куда будет монтироваться файловая система. Каталог должен принадлежать пользователю, монтирующему файловую систему. Один из способов сделать это под пользователем root - создать каталог /mnt/username (замените username именем пользователя, а usergroup — именем главной группы пользователя): &prompt.root; mkdir /mnt/username &prompt.root; chown username:usergroup /mnt/username Предположим, что USB брелок подключен, и появилось устройство /dev/da0s1. Поскольку эти устройства обычно поставляются форматированными с файловой системой FAT, их можно смонтировать так: &prompt.user; mount -t msdosfs -o -m=644,-M=755 /dev/da0s1 /mnt/username Если вы отключите устройство (диск должен быть сначала размонтирован), вы должны увидеть в буфере системных сообщений что-то подобное: umass0: at uhub0 port 1 (addr 2) disconnected (da0:umass-sim0:0:0:0): lost device (da0:umass-sim0:0:0:0): removing device entry GEOM: destroy disk da0 dp=0xc2d74850 umass0: detached Дополнительная информация Помимо разделов Добавление дисков и Монтирование и размонтирование файловых систем, также может быть полезно чтение различных страниц справочника: &man.umass.4;, &man.camcontrol.8;, и &man.usbconfig.8; для &os;  8.X или &man.usbdevs.8; для более ранних версий &os;. Mike Meyer Текст предоставил Запись и использование оптических носителей (CD) CDROM создание Введение Компакт-диски (CD) имеют несколько особенностей, отличающих их от обычных дисков. Во-первых, на них невозможно производить запись. Они спроектированы с расчетом на то, что их можно читать последовательно без задержек на перемещение головки между дорожками. К тому же их гораздо проще переносить от системы к системе, чем носители близкого объема. У CD имеются дорожки, но они представляют собой последовательность данных, читаемую последовательно, и не являются физической характеристикой диска. Для записи CD во FreeBSD вы готовите файлы данных, которые будут формировать дорожки на компакт-диске, а затем записываете дорожки на CD. ISO 9660 файловые системы ISO 9660 Файловая система ISO 9660 была разработана с учетом этих отличий, К сожалению, она унаследовала ограничения файловых систем, которые были тогда. К счастью, она дает механизм расширений, которые позволяют правильно записанным дискам обходить эти ограничения и при этом продолжать работать с системами, которые не поддерживают эти расширения. sysutils/cdrtools Для создания файла данных, содержащего файловую систему ISO 9660, используется программа &man.mkisofs.8;, которая включена в порт sysutils/cdrtools. Она имеет опции, поддерживающие различные расширения, и описана ниже. устройство записи CD ATAPI Какой инструмент использовать для записи CD, зависит от того, является ли ваше устройство для записи CD устройством ATAPI или каким-либо другим. С устройствами для записи стандарта ATAPI используется программа burncd, которая является частью комплекта поставки системы. С устройствами SCSI и USB нужно использовать cdrecord из порта sysutils/cdrtools. Утилиту cdrecord и другие инструменты для SCSI-приводов также можно использовать при работе с ATAPI-оборудованием через модуль ATAPI/CAM. Если для записи CD вам нужна программа с графическим интерфейсом пользователя, взгляните на X-CD-Roast или K3b. Они доступны в виде пакетов или из портов sysutils/xcdroast и sysutils/k3b. Программам X-CD-Roast и K3b для работы с оборудованием ATAPI требуется модуль ATAPI/CAM. mkisofs Программа &man.mkisofs.8;, поставляемая с портом sysutils/cdrtools создаёт файловую систему ISO 9660, которая является образом дерева каталогов в пространстве имён файловой системы &unix;. В самом простом случае она используется так: &prompt.root; mkisofs -o imagefile.iso /path/to/tree файловые системы ISO 9660 Эта команда создаст файл imagefile.iso, содержащий файловую систему ISO 9660, которая является копией дерева каталогов /path/to/tree. Во время работы она будет преобразовывать имена файлов в имена, которые удовлетворяют ограничениям файловой системы ISO 9660, и исключит файлы, которые носят имена, неподходящие для файловой системы ISO. файловые системы HFS файловые системы Joliet Для того, чтобы обойти эти ограничения, имеется несколько опций. В частности, включает использование расширений Rock Ridge, распространенных в &unix;-системах, с будут применены расширения Joliet, используемые в системах от Microsoft, а может использоваться для создания файловых систем HFS, используемых в &macos;. Для CD, которые будут использоваться только с системами FreeBSD, может использоваться опция , отменяющая все ограничения на имена файлов. При использовании с опцией генерируется образ файловой системы, идентичный начальному дереву FreeBSD, хотя при этом стандарт ISO 9660 может нарушаться в нескольких местах. CDROM создание загрузочного Последней часто используемой опцией является . Она используется для указания загрузочного образа для использования при создании загрузочного CD в стандарте El Torito. Этой опции указывается аргумент, который является маршрутом к загрузочному образу из корня дерева, записываемого на CD. По умолчанию, &man.mkisofs.8; создает образ ISO в так называемом режиме эмуляции флоппи-диска, и потому ожидает загрузочный образ размера строго 1200, 1440 или 2880 KB. Некоторые загрузчики, в том числе и тот, что используется на дистрибутивных дисках &os;, не используют режим эмуляции; в этом случае должна использоваться опция . Так что, если /tmp/myboot содержит загрузочную систему FreeBSD с загрузочным образом в /tmp/myboot/boot/cdboot, вы можете создать образ файловой системы ISO 9660 в /tmp/bootable.iso следующим образом: &prompt.root; mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot Сделав это, и имея в ядре отконфигурированное устройство md, вы можете смонтировать файловую систему, выполнив: &prompt.root; mdconfig -a -t vnode -f /tmp/bootable.iso -u 0 &prompt.root; mount -t cd9660 /dev/md0 /mnt В этот момент вы можете проверить, что /mnt и /tmp/myboot идентичны. Имеется много других опций, которые можно использовать с программой &man.mkisofs.8; для тонкой настройки её поведения. В частности: модификации в размещении ISO 9660 и создание дисков в форматах Joliet и HFS. Обратитесь к справочным страницам по &man.mkisofs.8; для получения более подробной информации. burncd CDROM запись Если ваше устройство для записи CD соответствует стандарту ATAPI, то для записи ISO-образа на компакт-диск вы можете воспользоваться командой burncd. burncd входит в базовый комплект операционной системы и установлена как /usr/sbin/burncd. Использовать её очень просто, так как параметров у ней немного: &prompt.root; burncd -f cddevice data imagefile.iso fixate По этой команде файл imagefile.iso будет скопирован на cddevice. По умолчанию используется устройство /dev/acd0. Для получения информации о параметрах, задающих скорость записи, выброс диска после записи и запись звуковых данных, обратитесь к &man.burncd.8;. cdrecord Если ваше устройство для записи CD не соответствует стандарту ATAPI, то для записи компакт-дисков вам нужно пользоваться программой cdrecord. cdrecord не входит в комплект поставки системы; вы должны установить её из порта sysutils/cdrtools или из соответствующего пакета. Изменения в системе могут приводить к тому, что откомпилированные версии этой программы работать не будут, или приводить к порче дисков. Поэтому вы должны при обновлении системы либо обновить порт, либо, если вы следуете -STABLE, обновить порт при появлении его новой версии. Хотя cdrecord имеет много опций, в основном использовать её ещё проще, чем burncd. Запись образа ISO 9660 делается такой командой: &prompt.root; cdrecord dev=device imagefile.iso Тонким моментом при использовании cdrecord является определение правильного устройства . Чтобы задать параметр правильно, воспользуйтесь флагом команды cdrecord, в результате чего может получиться примерно такой результат: CDROM запись &prompt.root; cdrecord -scanbus Cdrecord-Clone 2.01 (i386-unknown-freebsd7.0) Copyright (C) 1995-2004 Jörg Schilling Using libscg version 'schily-0.1' scsibus0: 0,0,0 0) 'SEAGATE ' 'ST39236LW ' '0004' Disk 0,1,0 1) 'SEAGATE ' 'ST39173W ' '5958' Disk 0,2,0 2) * 0,3,0 3) 'iomega ' 'jaz 1GB ' 'J.86' Removable Disk 0,4,0 4) 'NEC ' 'CD-ROM DRIVE:466' '1.26' Removable CD-ROM 0,5,0 5) * 0,6,0 6) * 0,7,0 7) * scsibus1: 1,0,0 100) * 1,1,0 101) * 1,2,0 102) * 1,3,0 103) * 1,4,0 104) * 1,5,0 105) 'YAMAHA ' 'CRW4260 ' '1.0q' Removable CD-ROM 1,6,0 106) 'ARTEC ' 'AM12S ' '1.06' Scanner 1,7,0 107) * Здесь приведены соответствующие значения параметров для имеющихся устройств. Найдите здесь ваше устройство для записи CD, а в качестве параметров для задавайте три числа через запятые. В нашем случае CRW-устройству соответствуют числа 1,5,0, так что правильным параметром будет . Имеется более простой способ задать эти значения; обратитесь к справочной информации о &man.cdrecord.1; для выяснения подробностей. Там же находится информация о записи звуковых дорожек, управлении скоростью и другим вещам. Копирование аудио CD Вы можете копировать музыкальные CD, извлекая данные аудио с CD в набор файлов, а затем записывая эти файлы на чистый CD. Процесс несколько различен в случаях использования устройств ATAPI и SCSI. Устройства SCSI Используйте cdda2wav для извлечения данных аудио. &prompt.user; cdda2wav -vall -D2,0 -B -Owav Воспользуйтесь cdrecord для записи файлов .wav. &prompt.user; cdrecord -v dev=2,0 -dao -useinfo *.wav Значение, соответствующее 2,0, должно быть установлено правильно, как это описано в . Устройства ATAPI На приводах ATAPI также можно использовать утилиту cdda2wav. Для её функционирования потребуется драйвер ATAPI/CAM. Следует отметить, что данная утилита предназначена для корректного извлечения и обработки аудио данных, в отличие от утилиты, приведенной в нижеследующем примере. Драйвер устройств ATAPI CD делает каждую дорожку доступной как /dev/acddtnn, где d является номером привода, а nn соответствует номеру дорожки, который записывается двумя десятичными цифрами с нулём в начале, если это нужно. Таким образом, первая дорожка на первом диске будет носить имя /dev/acd0t01, вторая будет именоваться /dev/acd0t02, третья будет носить имя /dev/acd0t03 и так далее. Удостоверьтесь, что соответствующий файл имеется в каталоге /dev. При его отсутствии следует принудительно перечитать оглавление диска: &prompt.root; dd if=/dev/acd0 of=/dev/null count=1 Извлеките каждую дорожку при помощи команды &man.dd.1;. При извлечении файлов вы должны также использовать специфическое значение для размера блока. &prompt.root; dd if=/dev/acd0t01 of=track1.cdr bs=2352 &prompt.root; dd if=/dev/acd0t02 of=track2.cdr bs=2352 ... Запишите извлечённые файлы на диск при помощи утилиты burncd. Вы должны указать, что это файлы с аудио, и что burncd должна зафиксировать диск по окончании работы. &prompt.root; burncd -f /dev/acd0 audio track1.cdr track2.cdr ... fixate Копирование компакт-дисков с данными Вы можете скопировать CD с данными в файл образа, который функционально эквивалентен файлу образа, созданному командой &man.mkisofs.8;, и вы можете использовать его для копирования любого CD с данными. В приводимом здесь примере предполагается, что ваш привод CDROM называется acd0. Подставьте название вашего привода CDROM. &prompt.root; dd if=/dev/acd0 of=file.iso bs=2048 Теперь, когда вы имеете образ, вы можете записать его на CD так, как это описано выше. Использование компакт-диски с данными Теперь, после того, как вы создали стандартный CDROM с данными, вы, наверное, захотите смонтировать его и считать с него данные. По умолчанию &man.mount.8; предполагает, что файловая система имеет тип ufs. Если вы попытаетесь выполнить что-то вроде: &prompt.root; mount /dev/cd0 /mnt вы получите сообщение Incorrect super block, и диск не смонтируется. CDROM не является файловой системой UFS, поэтому попытки смонтировать его таким образом будут терпеть неудачу. Вам просто нужно указать команде &man.mount.8;, что файловая система имеет тип ISO9660, и всё должно заработать. Сделайте это, задав параметр при вызове &man.mount.8;. К примеру, если вы хотите смонтировать устройство CDROM, /dev/cd0, в каталог /mnt, вы должны выполнить: &prompt.root; mount -t cd9660 /dev/cd0 /mnt Заметьте, что имя вашего устройства (/dev/cd0 в этом примере) может быть другим, в зависимости от интерфейса, используемого в CDROM. Кроме того, параметр всего лишь задаёт выполнение утилиты &man.mount.cd9660.8;. Пример выше может быть упрощён до: &prompt.root; mount_cd9660 /dev/cd0c /mnt Таким способом, вообще говоря, вы можете использовать компакт-диски любого производителя. Диски с некоторыми расширениями ISO 9660 могут, однако, работать со странностями. К примеру диски Joliet хранят все имена файлов в виде последовательностей двухбайтовых символов Unicode. Ядро FreeBSD не может работать с Unicode, но CD9660 драйвер способен преобразовывать Unicode символы на лету. Если некоторые символы не английского алфавита выглядят, как знаки вопроса, то вам нужно указать используемую вами кодировку с помощью опции . За дополнительной информацией, обращайтесь к странице справочника &man.mount.cd9660.8;. Чтобы смочь произвести преобразование символов посредством опции , ядру понадобится загрузить модуль cd9660_iconv.ko. Это может быть сделано либо добавлением ниже представленной строчки в loader.conf: cd9660_iconv_load="YES" с последующей перезагрузкой машины, либо загрузкой модуля вручную с помощью &man.kldload.8;. Время от времени вы можете получать сообщения Device not configured при попытке смонтировать CDROM. Это обычно означает, что привод CDROM полагает, что в нём нет диска, или что привод не виден на шине. Приводу CDROM может понадобиться несколько секунд, чтобы понять, что он был закрыт, так что будьте терпеливы. Иногда SCSI CDROM может потеряться из-за того, что у него не было достаточно времени, чтобы ответить на сброс шины. Если у вас имеется SCSI CDROM, то, пожалуйста, добавьте следующий параметр в конфигурацию вашего ядра и перестройте его. options SCSI_DELAY=15000 Это укажет вашей шине SCSI выдерживать 15-секундную паузу во время загрузки, чтобы дать вашему приводу CDROM шанс ответить на сброс шины. Запись необработанных данных на компакт-диски Вы можете предпочесть запись файла непосредственно на CD без создания файловой системы ISO 9660. Некоторые поступают так при создании резервных копий. Это выполняется гораздо быстрее. чем запись стандартного компакт-диска: &prompt.root; burncd -f /dev/acd1 -s 12 data archive.tar.gz fixate Для извлечения данных, записанных так на компакт-диск, вы должны считывать данные из файла непосредственного доступа к устройству: &prompt.root; tar xzvf /dev/acd1 Вы не можете монтировать этот диск как обычный CDROM. Такой компакт-диск не может быть прочитан ни в какой другой операционной системе, кроме FreeBSD. Если вы хотите монтировать CD или обменяться данными с другой операционной системой, то вы должны использовать &man.mkisofs.8; так, как это было описано выше. Marc Fonvieille Предоставил устройство записи CD драйвер ATAPI/CAM Использование драйвера ATAPI/CAM Этот драйвер позволяет работать с ATAPI-устройствами (приводы CD-ROM, CD-RW, DVD и так далее) через подсистему SCSI, таким образом расширяя использование таких приложений, как sysutils/cdrdao или &man.cdrecord.1;. Для использования этого драйвера вам необходимо добавить в файл /boot/loader.conf следующую строку: atapicam_load="YES" с последующей перезагрузкой машины. Если для вас предпочтительнее статически скомпилировать поддержку &man.atapicam.4; в ядро, то добавьте эту строчку в файл конфигурации ядра: device atapicam Кроме того, в файле конфигурации ядра должны быть следующие строки: device ata device scbus device cd device pass которые уже должны там присутствовать. Затем пересоберите, установите новое ядро и перезагрузите компьютер. В процессе загрузки ваш пишущий привод должен появиться примерно следующим образом: acd0: CD-RW <MATSHITA CD-RW/DVD-ROM UJDA740> at ata1-master PIO4 cd0 at ata1 bus 0 target 0 lun 0 cd0: <MATSHITA CDRW/DVD UJDA740 1.00> Removable CD-ROM SCSI-0 device cd0: 16.000MB/s transfers cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed Теперь с ним можно работать через устройство /dev/cd0, например, чтобы смонтировать CD-ROM в каталог /mnt, просто наберите следующую команду: &prompt.root; mount -t cd9660 /dev/cd0 /mnt Для получения SCSI-адреса пишущего привода, вы можете, работая как пользователь root, запустить такую команду: &prompt.root; camcontrol devlist <MATSHITA CDRW/DVD UJDA740 1.00> at scbus1 target 0 lun 0 (pass0,cd0) Таким образом, 1,0,0 будет SCSI-адресом для использования с &man.cdrecord.1; и другими приложениями для работы со SCSI. Для получения дополнительной информации об ATAPI/CAM и системе SCSI, обратитесь к страницам справочной системы по &man.atapicam.4; и &man.cam.4;. Marc Fonvieille Предоставил Andy Polyakov Дополнения предоставил Создание и использование оптических носителей (DVD) DVD запись Введение DVD это следующее после CD поколение оптических носителей. DVD может вмещать больше данных чем любой CD и является современным стандартом распространения видео. Для записываемых DVD существует пять физических форматов записи: DVD-R: Был первым форматом записываемых DVD. Стандарт DVD-R был создан DVD Forum. Это формат для однократной записи. DVD-RW: Это перезаписываемая версия стандарта DVD-R. Носители DVD-RW могут быть перезаписаны около 1000 раз. DVD-RAM: Это также перезаписываемый формат, поддерживаемый DVD Forum. DVD-RAM может быть виден как съемный жесткий диск. Однако, этот носитель не совместим с большинством приводов DVD-ROM и проигрывателями DVD-Video; лишь некоторые пишущие DVD поддерживают формат DVD-RAM. Более подробно о работе с DVD-RAM можно прочитать в разделе . DVD+RW: Это перезаписываемый формат, созданный DVD+RW Alliance. Носитель DVD+RW может быть перезаписан около 1000 раз. DVD+R: Этот формат — однократно записываемая версия формата DVD+RW. Однослойный записываемый DVD может хранить до 4,700,000,000 байт, что равно 4.38 Гбайт, или 4485 Мбайт (1 килобайт это 1024 байт). Необходимо различать физический носитель и приложение. Например, DVD-Video это определенная файловая раскладка, которая может быть помещена на записываемый DVD любого физического формата: DVD-R, DVD+R, DVD-RW и т.д. Перед выбором типа носителя вы должны убедиться, что и устройство записи и DVD-Video проигрыватель (отдельный или DVD-ROM привод компьютера) совместимы с данным носителем. Настройка Для записи DVD будет использоваться программа &man.growisofs.1;. Эта команда входит в набор утилит dvd+rw-tools (sysutils/dvd+rw-tools), который поддерживает все типы носителей DVD. Эти утилиты используют подсистему SCSI для доступа к устройствам, следовательно необходимо добавить в ядро поддержку ATAPI/CAM. Если пишущий привод использует USB интерфейс, это добавление бесполезно и необходимо прочесть более подробную информацию по настройке устройств USB в Вам также потребуется включить DMA доступ для устройств ATAPI, это можно сделать добавив в /boot/loader.conf следующую строку: hw.ata.atapi_dma="1" Перед использованием dvd+rw-tools вы должны свериться со списком совместимого оборудования dvd+rw-tools с информацией по устройствам для записи DVD. Если вам нужен графический интерфейс пользователя, взгляните на K3b (sysutils/k3b), который предоставляет дружественный пользователю интерфейс к &man.growisofs.1; и многим другим программам записи. Запись DVD с данными Команда &man.growisofs.1; является оболочкой для mkisofs, она вызовет &man.mkisofs.8; для создания файловой системы и запишет DVD. Это означает, что вам не потребуется создавать образ с данными перед началом процесса записи. Для записи данных из каталога /path/to/data на DVD+R или DVD-R, используйте следующую команду: &prompt.root; growisofs -dvd-compat -Z /dev/cd0 -J -R /path/to/data Параметры передаются &man.mkisofs.8; для создания файловой системы (в данном случае: файловая система ISO 9660 с расширениями Joliet и Rock Ridge), обратитесь к странице справочника &man.mkisofs.8; за более подробной информацией. Параметр используется для первой сессии записи в любом случае: для одной или нескольких сессий. Устройство DVD, /dev/cd0, должно быть изменено в соответствии с имеющимися настройками. Параметр закроет диск и дозапись станет невозможна. Это должно улучшить совместимость с приводами DVD-ROM. Возможна также запись предварительного (pre-mastered) образа, например, для записи imagefile.iso запустим: &prompt.root; growisofs -dvd-compat -Z /dev/cd0=imagefile.iso Скорость записи должна быть определена и автоматически установлена в соответствии с носителем и приводом. Если вы хотите явно указать скорость записи, используйте параметр . За дальнейшей информацией обратитесь к странице справочника &man.growisofs.1;. Если размер файлов внутри набора превышает 4.38Гб, то необходимо будет создать гибридную файловую систему UDF/ISO-9660, для чего потребуется передать параметры в &man.mkisofs.8; и в остальные соответствующие программы (например, &man.growisofs.1;). Указание параметров обязательно лишь во время создания файла образа или во время непосредственной записи на диск. Созданный таким способом диск должен монтироваться утилитой &man.mount.udf.8;. Диск будет доступен лишь тем операционным системам, которые поддерживают UDF; в противном случае носитель будет отображаться как поврежденный. Для того, чтобы создать такой образ, выполните: &prompt.user; mkisofs -R -J -udf -iso-level 3 -o imagefile.iso /path/to/data Для того, чтобы записать файлы прямо на диск, наберите: &prompt.root; growisofs -dvd-compat -udf -iso-level 3 -Z /dev/cd0 -J -R /path/to/data Если у вас в распоряжении уже имеется образ, содержащий в себе файлы большого размера, то для записи образа на диск никаких дополнительных опций для &man.growisofs.1; не потребуется. Также удостоверьтесь, что у вас установлена последняя версия sysutils/cdrtools (&man.mkisofs.8; принадлежит к этому порту), поскольку предыдущие версии утилит не поддерживают работу с большими файлами. Если с этим портом возникают проблемы, то установите sysutils/cdrtools-devel и прочитайте страницу справочника &man.mkisofs.8;. DVD DVD-Video Запись DVD-Video DVD-Video это особая файловая система, базирующаяся на ISO 9660 и спецификациях micro-UDF (M-UDF). DVD-Video также представляет определенную иерархию структуры данных, поэтому для создания DVD потребуется особая программа, такая как multimedia/dvdauthor. Если у вас уже есть образ файловой системы DVD-Video, просто запишите его как любой другой образ, примеры находятся в предыдущем разделе. Если вы создали DVD и результат находится в каталоге /path/to/video, для записи DVD-Video должна быть использована следующая команда: &prompt.root; growisofs -Z /dev/cd0 -dvd-video /path/to/video Параметр будет передан &man.mkisofs.8; и укажет создать файловую систему DVD-Video. Помимо этого, параметр подразумевает параметр &man.growisofs.1; . DVD DVD+RW Использование DVD+RW В отличие от CD-RW, новый DVD+RW необходимо отформатировать перед первым использованием. Программа &man.growisofs.1; позаботится об этом сама при необходимости, и это рекомендованный способ. Тем не менее, для форматирования DVD+RW вы можете использовать команду dvd+rw-format: &prompt.root; dvd+rw-format /dev/cd0 Эту операцию необходимо выполнить лишь однажды, помните, что только новые носители DVD+RW необходимо форматировать. Затем запишите DVD+RW тем способом, который описан в предыдущем разделе. Если вы хотите записать новые данные (полностью новую файловую систему, а не дописать данные) на DVD+RW, его не нужно очищать, просто запишите поверх предыдущей записи (создав новую начальную сессию) примерно так : &prompt.root; growisofs -Z /dev/cd0 -J -R /path/to/newdata Формат DVD+RW делает возможным легко дописать данные к предыдущей записи. Операция состоит в присоединении предыдущей сессии к существующей, это не мультисессионная запись, &man.growisofs.1; расширит (grow) файловую систему ISO 9660, существующую на носителе. Например, для дозаписи данных к предыдущей сессии на DVD+RW, используется следующая команда: &prompt.root; growisofs -M /dev/cd0 -J -R /path/to/nextdata При последующих записях &man.mkisofs.8; необходимо передавать те же параметры, что и при первой записи. Вы можете использовать параметр для улучшения совместимости с приводами DVD-ROM. В случае DVD+RW это не помешает добавлению данных. Если по какой-либо причине вам потребуется очистить носитель, используйте следующую команду: &prompt.root; growisofs -Z /dev/cd0=/dev/zero DVD DVD-RW Использование DVD-RW Существует два формата дисков DVD-RW: последовательно дополняемый и с ограниченной перезаписью. По умолчанию формат дисков DVD-RW последовательный. Новый DVD-RW может быть записан непосредственно без необходимости форматирования, однако DVD-RW с данными в последовательном формате необходимо очистить перед созданием новой начальной сессии. Для очистки DVD-RW в последовательном формате, запустите: &prompt.root; dvd+rw-format -blank=full /dev/cd0 Полная очистка () займет около одного часа на скорости 1x. Быструю очистку можно выполнить с параметром , если DVD-RW будет записан в режиме Disk-At-Once (DAO). Для записи DVD-RW в режиме DAO, используйте команду: &prompt.root; growisofs -use-the-force-luke=dao -Z /dev/cd0=imagefile.iso Параметр не должен потребоваться, поскольку &man.growisofs.1; попытается определить был ли носитель быстро очищен и включить DAO запись. Фактически, лучше использовать режим с ограниченной перезаписью с любым DVD-RW, этот формат более гибкий, чем формат по умолчанию с последовательной записью. Для записи данных на последовательный DVD-RW, используйте ту же команду, что и для других форматов DVD: &prompt.root; growisofs -Z /dev/cd0 -J -R /path/to/data Если вы хотите добавить данные к предыдущей записи, используйте параметр &man.growisofs.1; . Однако при добавлении данных на DVD-RW в последовательном режиме, на диске будет создана новая сессия и в результате получится мультисессионный диск. В формате DVD-RW с ограниченной перезаписью не требуется очищать носитель перед созданием новой начальной сессии, вам всего лишь нужно переписать диск с параметром , подобно DVD+RW. Возможно также увеличение существующей файловой системы ISO 9660, записанной на диск тем же способом, как для DVD+RW с параметром . В результате получится односессионный DVD. Для перевода DVD-RW в формат с ограниченной перезаписью, необходимо использовать следующую команду: &prompt.root; dvd+rw-format /dev/cd0 Для перевода обратно в последовательный формат, выполните: &prompt.root; dvd+rw-format -blank=full /dev/cd0 Мультисессия Лишь несколько DVD-ROM и проигрывателей поддерживают мультисессионные DVD, в основном они в лучшем случае прочтут только первую сессию. DVD+R, DVD-R и DVD-RW в последовательном формате могут работать с несколькими сессиями, и это не относится к форматам DVD+RW и DVD-RW в формате ограниченной перезаписи. Использование следующей команды после первой (не закрытой) сессии для DVD+R, DVD-R, или DVD-RW в последовательном формате, добавит на диск новую сессию: &prompt.root; growisofs -M /dev/cd0 -J -R /path/to/nextdata Использование этой командной строки с DVD+RW или DVD-RW в режиме ограниченной перезаписи добавит данные, объединив новую сессию с предыдущей. В результате получится односессионный диск. Такой способ используется для добавления данных после первой записи на эти носители. Некоторый объем носителя используется между сессиями для завершения и начала сессии. Следовательно, для оптимизации объема хранения сессии должны быть большими. Количество сессий ограничено 154 для DVD+R, около 2000 для DVD-R и 127 для DVD+R Double Layer. Дополнительная информация Для получения дополнительной информации о DVD, можно запустить команду dvd+rw-mediainfo /dev/cd0, диск должен находиться в приводе. Дополнительная информация о dvd+rw-tools может быть найдена на странице справочника &man.growisofs.1;, на Web-сайте dvd+rw-tools и в архивах списка рассылки cdwrite. Вывод dvd+rw-mediainfo при записи или проблемный носитель необходимы для любого сообщения о проблеме. Без этого вывода будет совершенно невозможно помочь вам. Использование DVD-RAM DVD DVD-RAM Конфигурация Записывающие устройства DVD-RAM поставляются с интерфейсами SCSI и ATAPI. В последнем случае вы должны убедиться, что для них включен режим DMA, добавив в файл /boot/loader.conf строку hw.ata.atapi_dma="1" Подготовка носителя Как указывалось ранее, DVD-RAM представляется съемным жестким диском. Как и другие дисковые устройства, DVD-RAM должен быть подготовлен к первому использованию. В нашем примере мы займём все пространство диска одной файловой системой UFS2: &prompt.root; dd if=/dev/zero of=/dev/acd0 bs=2k count=1 &prompt.root; bsdlabel -Bw acd0 &prompt.root; newfs /dev/acd0 Имя устройства DVD device, acd0, должно соответствовать вашей конфигурации. Использование носителя После выполнения указанных выше команд, DVD-RAM может быть смонтирован как обычный жесткий диск: &prompt.root; mount /dev/acd0 /mnt После этого вы можете читать и писать на DVD-RAM. Julio Merino Первоначальный текст предоставил Martin Karlsson Переписал Дискеты Хранение данных на дискетах иногда бывает полезным, например, когда нет других съёмных носителей или когда необходимо перенести небольшой объём данных на другой компьютер. В этом разделе будет описано, как использовать дискеты во FreeBSD. В основном речь пойдёт о форматировании и использовании дискет DOS размером 3.5 дюйма, однако общие принципы применимы и для других форматов гибких дисков. Форматирование дискет Устройство Доступ к гибким дискам, как, впрочем, и к остальным устройствам, осуществляется через соответствующие файлы в каталога /dev. Чтобы обратиться к дискете, просто используйте /dev/fdN. Форматирование Перед тем, как дискетой можно будет воспользоваться, её необходимо отформатировать на низком уровне. Обычно это выполняется производителем, однако форматирование является хорошим способом проверить целостность носителя. Большинство гибких дисков предназначены для использования с размером 1440kB, однако возможно задать меньший или больший размер. Для низкоуровневого форматирования дискет вам нужно использовать &man.fdformat.1;. В качестве параметра этой утилите передаётся имя устройства. Обратите внимание на появление сообщений об ошибках, так как они могут помочь определить, хорошая это дискета или плохая. Форматирование гибких дисков Для форматирования гибких дисков используйте устройства /dev/fdN. Вставьте новую 3.5-дюймовую дискету в дисковод и введите команду: &prompt.root; /usr/sbin/fdformat -f 1440 /dev/fd0 Метка диска После низкоуровневого форматирования диска вам нужно поместить на него метку диска. Эта метка будет потом разрушена, но она будет нужна системе для определения размера диска и его характеристик. Новая метка диска будет касаться диска в целом, и будет содержать полную информацию о параметрах дискеты. Значения геометрии для метки диска перечислены в файле /etc/disktab. Теперь вы можете запустить &man.bsdlabel.8; примерно так: &prompt.root; /sbin/bsdlabel -B -w /dev/fd0 fd1440 Файловая система Теперь ваша дискета готова к высокоуровневому форматированию. При этом на неё будет помещаться новая файловая система, которая позволит FreeBSD читать и записывать информацию на диск. После создания новой файловой системы метка диска уничтожается, так что если вы захотите переформатировать диск, вам придётся создавать метку диска повторно. Файловой системой для дискеты может служить UFS или FAT. Вообще говоря, FAT для дискет походит лучше. Для размещения на дискете новой файловой системы, выполните: &prompt.root; /sbin/newfs_msdos /dev/fd0 Теперь диск готов к работе. Использование дискет Для работы с гибким диском смонтируйте его при помощи утилит &man.mount.msdosfs.8;. Можно также использовать пакет emulators/mtools из коллекции портов. Создание и использование архивных копий на магнитной ленте носители на магнитной ленте К наиболее часто используемым носителям на магнитной ленте следует отнести ленты шириной 4мм и 8мм, а также типа QIC, мини-картриджи и DLT. 4мм (DDS: Digital Data Storage) носители на магнитной ленте магнитные ленты DDS (4мм) носители на магнитной ленте магнитные ленты QIC Ленты шириной 4мм заменяют QIC в качестве наиболее предпочтительного носителя для создания резервных копий. Эта тенденция значительно усилилась после покупки компанией Conner фирмы Archive, ведущего производителя накопителей QIC и последующего прекращения их выпуска. Накопители 4мм малы по размеру и мало шумят, но у них нет репутации носителя, обладающего надежностью приводов 8мм. Картриджи более дешевы и меньше по размеру (3 x 2 x 0.5 дюймов; 76 x 51 x 12 мм), чем 8мм-картриджи. Накопители для лент шириной 4мм, как и 8мм, имеют сравнительно малый срок службы головок, по причине использования в обоих случаях технологии спирального сканирования (helical scan). Пропускная способность у таких накопителей начинается с цифры ~150 kB/s, пиковая достигает ~500 kB/s. Ёмкость накопителей начинается с 1.3 GB и может достигать 2.0 GB. Аппаратное сжатие, имеющееся на большинстве таких накопителей, даёт увеличение ёмкости примерно вдвое. Блоки многоприводных ленточных библиотек могут иметь до 6 накопителей в одном модуле с автоматической сменой ленты. Ёмкость библиотек может достигать 240 Гбайт. Стандарт DDS-3 в настоящее время поддерживает ёмкости лент вплоть до 12 Гбайт (или 24 Гбайт сжатой информации). В накопителях 4мм, как и в приводах 8мм, используется технология спирального сканирования. Все плюсы и минусы этой технологии относятся как к 4мм, так и 8мм приводам. Не следует использовать ленты после того, как они были подвергнуты 2000 проходов, или были использованы для создания 100 полных копий. 8мм (Exabyte) носители на магнитной ленте магнитные ленты Exabyte (8мм) Ленты шириной 8мм являются самым распространённым типом для ленточных SCSI-накопителей; они же являются наиболее удачным выбором при выборе типа носителей для обмена лентами. Наверное, каждый сервер имеет привод Exabyte шириной 8мм и объёмом 2 Гбайт. Эти приводы удобны, они работают надёжно и тихо. Картриджи дешевы и малы по размеру (4.8 x 3.3 x 0.6 дюймов; 122 x 84 x 15 мм). Одним минусом лент шириной 8мм является сравнительно малое время службы головок и лент из-за высокой скорости движения ленты вдоль головок. Скорость передачи данных варьируется от ~250 kB/s до ~500 kB/s. Объём хранимых данных начинается с 300 Мбайт и может достигать 7 Гбайт. Аппаратное сжатие, имеющееся практически на всех таких приводах, увеличивает емкость примерно вдвое. Эти приводы существуют как в виде отдельных модулей, так и в виде многоприводных ленточных библиотек с 6 приводами и 120 лентами в одном отсеке. Ленты сменяются автоматически модулем. Емкости библиотек достигают величин, превышающих 840 Гбайт. Модель Exabyte Mammoth поддерживает ёмкость ленты в 12 Гбайт (24 Гбайт со сжатием) и стоит примерно вдвое больше, чем обычный ленточный накопитель. Данные на ленту записываются по технологии спирального сканирования, головки позиционируются под углом к носителю (примерно в 6 градусов). Лента оборачивается на 270 градусов вокруг шпульки, которая держит головки. Во время скольжения ленты вокруг шпульки последняя вращается. В результате достигается высокая плотность записи данных с очень близко лежащими дорожками, расположенными под наклоном по всей ленте. QIC носители на магнитной ленте QIC-150 Ленты и накопители формата QIC-150, наверное, являются наиболее распространенным типом носителей. Приводы лент формата QIC являются самыми дешёвыми серьёзными накопителями для резервного копирования. Минусом является стоимость носителей. Ленты формата QIC по сравнению с лентами шириной 8мм или 4мм являются дорогими, превосходя их по стоимости хранения одного гигабайта в пять раз. Однако если вам будут достаточно половины ленты, QIC может оказаться правильным выбором. QIC является самым распространенным типом привода. Каждый сайт имеет привод QIC какой-либо емкости. QIC имеет большое количество плотностей на физически похожих (иногда даже идентичных) лентах. Приводы QIC работают вовсе не тихо. Эти накопители громко осуществляют поиск перед тем, как начать запись данных и достаточно шумны в процессе чтения, записи или поиска. Ленты QIC имеют размеры (6 x 4 x 0.7 дюймов; 152 x 102 x 17 мм). Скорость обмена данными лежит в границах от ~150 kB/s до ~500 kB/s. Ёмкость накопителей варьируется от 40 Мбайт до 15 Гбайт. Аппаратное сжатие присутствует во многих современных накопителях QIC. Приводы QIC устанавливаются менее часто; они вытесняются накопителями DAT. На ленту данные записываются в виде дорожек. Дорожки располагаются в длину вдоль всей ленты. Количество дорожек, и, в свою очередь, их ширина, меняется вместе с емкостью ленты. Большинство, если не все современные накопители обеспечивают обратную совместимость по крайней мере для чтения (однако зачастую и для режима записи). Формат QIC имеет хорошую репутацию в области надежности хранения данных (механика устроена проще и более надежна, чем в случае накопителей, построенных по технологии спирального сканирования). Ленты не следует больше использовать после создания 5,000 резервных копий. DLT носители на магнитной ленте DLT Формат DLT обладает самой высокой скоростью передачи данных среди всех перечисленных здесь накопителей. Лента шириной 1/2" (12.5мм) помещена в один картридж с катушкой (4 x 4 x 1 дюймов; 100 x 100 x 25 мм). Вдоль одной из сторон картриджа расположена сдвигающаяся крышечка. Механизм накопителя открывает эту крышку, чтобы вытащить конец ленты. На этом конце имеется овальное отверстие, которое используется для захвата ленты. Принимающая катушка размещена внутри накопителя. Все другие типы картриджей, перечисленные здесь (за исключением 9-дорожечных лент), имеют как подающий, так и принимающий барабаны внутри самого картриджа. Скорость передачи данных равна примерно 1.5 MB/s, что в три раза больше скорости передачи данных для накопителей 4мм, 8мм или QIC. Ёмкость картриджей варьируется от 10 Гбайт до 20 Гбайт для одного накопителя. Приводы могут компоноваться как многоленточные роботизированные, так и многоленточные, многоприводные библиотеки лент, вмещающие от 5 до 900 лент и от 1 до 20 приводов, что даёт ёмкость хранилища от 50 Гбайт до 9 Тбайт. Формат DLT Type IV поддерживает емкость до 70 Гбайт со сжатием. Данные на ленту записываются в виде дорожек, параллельных направлению движения (точно также, как и для лент QIC). Одновременно записываются две дорожки. Срок жизни головок чтения/записи сравнительно велик; как только лента перестает двигаться, одновременно прекращается трение между головками и лентой. AIT носители на магнитной ленте AIT AIT - это новый формат фирмы Sony, который позволяет хранить до 50 Гбайт (со сжатием) информации на одной ленте. Ленты содержат микросхемы памяти, на которых размещается каталог содержимого ленты. Этот каталог может быть быстро считан накопителем для определения расположения файлов на ленте, вместо того, чтобы тратить несколько минут на поиск, как это происходит с другими форматами. Такое программное обеспечение, как SAMS:Alexandria, может управлять сорока или большим количеством ленточных библиотек AIT, связываясь непосредственно с памятью лент для вывода их содержимого, определения того, какие файлы были скопированы на какую ленту, выбора нужной ленты, её загрузки и восстановления данных с ленты. Библиотеки с такими функциями стоят в районе $20,000, выводя их из ниши любительского рынка. Использование новой ленты первый раз Если вы попытаетесь прочитать или записать новую, абсолютно чистую ленту, в первый раз, то вам это не удастся. Выводимые на консоль сообщения будут выглядеть примерно так: sa0(ncr1:4:0): NOT READY asc:4,1 sa0(ncr1:4:0): Logical unit is in process of becoming ready На ленте отсутствует идентификационный блок (блок номер 0). Со времен принятия стандарта QIC-525 все накопители формата QIC записывают на ленту идентификационный блок (Identifier Block). Здесь имеется два решения: По команде mt fsf 1 ленточный накопитель записывает идентификационный блок на ленту. Воспользуйтесь кнопкой на передней панели для выброса ленты. Вставьте ленту повторно и по команде dump сбросьте данные на ленту. Программа dump выдаст DUMP: End of tape detected, а на консоли будет выведено: HARDWARE FAILURE info:280 asc:80,96. перемотайте ленту такой командой: mt rewind. Последующие операции с лентой будут успешными. Создание резервных копий на дискетах Можно ли использовать дискеты для создания резервных копий моих данных? дискеты с резервными копиями дискеты На самом деле дискеты не подходят для создания резервных копий, потому что: Носитель ненадёжен, особенно если речь идет о больших сроках хранения. Создание резервных копий и восстановление данных происходит очень медленно. Дискеты имеют весьма ограниченную емкость (дни, когда весь винчестер копировался на десяток или около того дискет, давно прошли). Несмотря на все это, если у вас нет другого способа сделать резервную копию ваших данных, то дискеты все же лучше, чем ничего. Если вы используете дискеты, то проверьте, что они должны быть хорошего качества. Дискеты, которые валялись по всему офису в течении нескольких лет, не подойдут. Идеально использовать новые от известного производителя. Итак, как же сделать резервную копию данных на дискетах? Самым лучшим методом создания резервной копии на дискете является использование утилиты &man.tar.1; с опцией (многотомные архивы), которая позволяет размещать архивы на нескольких дискетах. Для копирования всех файлов в текущем каталоге и подкаталогах выполните следующее (работая как пользователь root): &prompt.root; tar Mcvf /dev/fd0 * Когда первая дискета окажется полностью заполненной, программа &man.tar.1; выдаст запрос на следующий том (так как работа утилиты &man.tar.1; не зависит от носителя, она имеет дело с томами; здесь это означает дискету). Prepare volume #2 for /dev/fd0 and hit return: Это сообщение будет повторяться (со все увеличивающимся номером тома) до тех пор, пока все указанные файлы не будут заархивированы. Можно ли резервные копии подвергнуть компрессии? tar gzip сжатие К сожалению, &man.tar.1; при создании многотомных архивов не позволяет использовать опцию . Вы конечно же, можете скомпрессировать все файлы утилитой &man.gzip.1;, программой &man.gzip.1; скопировать их на дискеты, а затем распаковать файлы снова утилитой &man.gunzip.1;! Как восстановить данные из моих резервных копий? Для полного восстановления архива воспользуйтесь такой командой: &prompt.root; tar Mxvf /dev/fd0 Есть два подхода к восстановлению только нужных вам файлов. В первом вы можете начать с первой дискеты и выдать такую команду: &prompt.root; tar Mxvf /dev/fd0 filename Программа &man.tar.1; будет выдавать запрос на подачу последующих дискет до тех пор, пока не найдет требуемый файл. Как альтернатива, если вы знаете, на какой дискете расположен файл, то вы можете просто подать ее и дать ту же самую команду, что и выше. Заметьте, что если первый файл на дискете является продолжением предыдущего, то &man.tar.1; выдаст предупреждение о том, что не может его восстановить, хотя вы этого и не просили делать! Lowell Gilbert Первоначально написано Стратегии резервного копирования При разработке плана резервного копирования первым делом надо продумать методы защиты от следующих проблем: Отказ жесткого диска Случайное удаление файлов Повреждение содержимого файлов Полное уничтожение компьютера (например, при пожаре), при котором погибнут также резервные копии, физически находящиеся рядом. Вполне возможно, что для ваших нужд нет единой стратегии, наилучшим образом покрывающей все описанные проблемы; более того, скорее всего, ее и не может быть (разве что для персональных систем, где ценность данных очень низка). Вот несколько наиболее распространенных технологий, применяемых для резервного копирования: Архивация системы целиком с копированием на какой-либо надежный внешний носитель и размещение его вдалеке от основной системы. При этом вы защищены от всех перечисленных проблемы, однако этот метод требует много времени и неудобен в процессе восстановления. Вы можете хранить резервные копии рядом или даже смонтированными, однако все равно столкнетесь с неудобствами при восстановлении, в особенности для непривилегированных пользователей. Снэпшоты файловых систем. Помогают только от случайного удаления файлов, но как раз в этом случае очень полезны и эффективны. Полные копии файловых систем или дисков (например, периодический запуск программы &man.rsync.1; для машины целиком). Для защиты от отказа жестких дисков этот способ обычно несколько уступает RAID; для восстановления случайно удаленных файлов может быть сравним по удобству со снэпшотами UFS, в зависимости от вашей ситуации. RAID. Минимизирует или исключает вовсе простои при отказе жестких дисков. При этом средняя частота таких отказов увеличивается (поскольку количество дисков больше), но разбираться с ними становится много спокойнее. Проверка отпечатков файлов (fingerprints). Для этого весьма полезна утилита &man.mtree.8;. Не являясь собственно технологией резервного копирования, этот метод помогает выяснять, когда вам пока обращаться к резервным копиям. В особенности это важно для "оффлайновых" резервных копий. Довольно легко придумать и другие стратегии резервного копирования; многие из них будут композициями уже упомянутых. Наличие специальных требований, как правило, приводит к специализированным же технологиям (например, резервное копирование базы данных, как правило, требует использования методов, специфичных для соответствующей СУБД). Главным остается знание опасностей потери данных, от которых вы хотите себя оградить, и методов защиты от них. Основы технологии резервного копирования Тремя основными программами резервного копирования являются &man.dump.8;, &man.tar.1; и &man.cpio.1;. Dump и Restore программы резервного копирования резервное копирование / восстановление dump restore Для &unix; традиционными программами резервного копирования являются dump и restore. Они работают с приводом как с набором дисковых блоков, которые расположены ниже понятий файлов, связей и каталогов, создаваемых файловыми системами. В отличие от других программ для резервного копирования, программа dump выполняет резервное копирование всей файловой системы, располагающейся на устройстве. Невозможно выполнить резервное копирование части файловой системы или дерева каталогов, которые располагаются более чем в одной файловой системе. Утилита dump не записывает на ленту файлы и каталоги, она записывает блоки данных, из которых строятся файлы и каталоги. Утилита restore по умолчанию настроена так, что в процессе своей работы она сохраняет временные файлы в каталог /tmp/. В некоторых ситуациях доступного в /tmp/ места бывает недостаточно: например, если вы работаете с диска восстановления (recovery disk). В таких случаях для успешной работы утилиты необходимо указать в переменной окружения TMPDIR путь к каталогу на менее заполненной файловой системе. Если вы используете программу dump для работы с корневым каталогом, при этом не будет выполняться резервное копирование /home, /usr и многих других каталогов, так как они обычно являются точками монтирования других файловых систем или символическими ссылками на эти файловые системы. В программе dump имеются некоторые неудобства, оставшиеся от её ранних дней в составе Version 6 операционной системы AT&T UNIX (примерно 1975). Параметры, используемые по умолчанию, подходят для 9-дорожечных лент (6250 bpi), но не для современных носителей с высокой плотностью записи информации (до 62,182 ftpi). Для использования ёмкостей нынешних накопителей на магнитной ленте эти параметры могут быть заданы в командной строке. .rhosts При помощи rdump и rrestore возможно резервное копирование данных по сети на накопитель, подключенный к другому компьютеру. Обе программы используют в работе &man.rcmd.3; и &man.ruserok.3; для доступа к накопителю на магнитной ленте на удалённом компьютере. Поэтому пользователь, выполняющий резервное копирование, должен быть указан в файле .rhosts на удалённом компьютере. Аргументы для rdump и rrestore должны подходить для использования на другом компьютере. При выполнении копирования по команде rdump на компьютере с FreeBSD на накопитель Exabyte, подключенный к машине Sun по имени komodo, используйте такую команду: &prompt.root; /sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nsa8 /dev/da0a 2>&1 Будьте осторожны: есть проблемы с обеспечением безопасности при аутентификации посредством .rhosts. Внимательно рассмотрите вашу ситуацию. Программы dump и restore можно использовать в более защищённом режиме посредством ssh. Использование <command>dump</command> через <application>ssh</application> &prompt.root; /sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \ targetuser@targetmachine.example.com dd of=/mybigfiles/dump-usr-l0.gz Либо воспользуйтесь встроенной в dump возможностью, задав переменную окружения RSH: Использование <command>dump</command> при работе через <application>ssh</application> с заданием <envar>RSH</envar> &prompt.root; RSH=/usr/bin/ssh /sbin/dump -0uan -f targetuser@targetmachine.example.com:/dev/sa0 /usr <command>tar</command> программы резервного копирования tar Утилита &man.tar.1; также восходит корнями к Version 6 системы AT&T UNIX (около 1975). tar работает с файловой системой, записывая на ленту файлы и каталоги. Эта утилита поддерживает не полный набор опций, имеющихся в &man.cpio.1;, однако не требует необычного перенаправления в командной строке, которое используется в утилите cpio. tar - FreeBSD начиная с версии 5.3 содержит как GNU - tar, так и используемую по умолчанию - утилиту bsdtar. Версия GNU вызывается командой - gtar, и поддерживает удалённые устройства в том же - самом синтаксисе, что и rdump. Чтобы скопировать + + Чтобы скопировать данные на накопитель Exabyte, подключенный к машине Sun по имени komodo, используйте такую команду: - &prompt.root; /usr/bin/gtar cf komodo:/dev/nsa8 . 2>&1 - - Тот же результат вы можете получить, используя - bsdtar, воспользовавшись перенаправлением вывода и командой - rsh для посылки данных на удалённый ленточный - накопитель. - - &prompt.root; tar cf - . | rsh hostname dd of=tape-device obs=20b + &prompt.root; tar cf - . | rsh komodo dd of=tape-device obs=20b Если вы беспокоитесь о безопасности создания резервных копий по сети, то вместо rsh вам нужно использовать ssh. <command>cpio</command> программы резервного копирования cpio &man.cpio.1; является оригинальной программой &unix; для обмена файлами на магнитных носителях. В утилите cpio имеются опции (кроме всего прочего), позволяющие выполнять изменение порядка следования байтов, поддерживающие различные форматы архивов и выполняющие перенаправление данных другим программам. Последняя возможность делает cpio прекрасным выбором для целей установки. cpio не знает о том, как работать с каталогами, список файлов должен даваться через stdin. cpio cpio не поддерживает создание резервных копий по сети. Вы можете воспользоваться перенаправлением вывода и программой rsh для посылки данных на удалённый накопитель. &prompt.root; for f in directory_list; do find $f >> backup.list done &prompt.root; cpio -v -o --format=newc < backup.list | ssh user@host "cat > backup_device" Где directory_list это список директорий, c которых Вы хотите создать резервные копии, user@host это комбинация пользователь/хост которая описывает того кто занимается резервированием, и backup_device это устройство куда копии должны быть записаны (например, /dev/nsa0). <command>pax</command> программы резервного копирования pax pax POSIX IEEE &man.pax.1; является ответом IEEE/&posix; на утилиты tar и cpio. В течение многих лет различные версии программ tar и cpio получались не совсем совместимыми. Так что вместо того, чтобы попытаться полностью их стандартизировать, &posix; создал новую утилиту для работы с архивами. pax пытается читать и писать различные форматы cpio и tar, и, кроме того, свои собственные новые форматы. Набор команд этой утилиты больше напоминает cpio, чем tar. <application>Amanda</application> программы резервного копирования amanda amanda Amanda (Advanced Maryland Network Disk Archiver) является целой клиент/серверной системой резервного копирования, а не отдельной программой. Сервер Amanda сможет осуществлять резервное копирование на единственный накопитель любого количества компьютеров, на которых имеется клиент Amanda и которые могут связываться по сети с сервером Amanda. Общей проблемой систем с большим количеством больших дисков является то, что время, требуемое для непосредственной записи данных на ленту, превышает лимит времени, выделенный на эту задачу. Amanda решает эту проблему. Amanda может использовать промежуточный диск для резервного копирования нескольких файловых систем одновременно. Amanda создаёт наборы архивов: группа лент, используемых в некоторый период времени для создания полных копий всех файловых систем, перечисленных в конфигурационном файле системы Amanda. Архивный набор содержит также создаваемый каждую ночь инкрементальные (или дифференциальные) резервные копии всех файловых систем. Восстановление повреждённой файловой системы требует наличия самой последней полной копии и инкрементальных резервных копий. Конфигурационный файл даёт прекрасный механизм для управления процессом резервного копирования и объёмом трафика, генерируемого системой Amanda. Amanda сможет использовать любую из перечисленных выше программ для записи данных на ленту. Amanda имеется в виде как порта, так и пакета, и по умолчанию она не установлена. Не делать ничего Не делать ничего - это не программа для компьютера, и в то же время это наиболее широко используемая стратегия резервного копирования. Здесь нет никаких первоначальных затрат. Здесь нет расписания, которому нужно следовать. Просто скажите нет. Если что-то случится с вашими данными, улыбнитесь и забудьте о них! Если ваше время и данные практически ничего не стоят, то не делать ничего является самой подходящей программой для вашего компьютера. Но будьте осторожны, &posix; является весьма полезным инструментом, и через полгода вы можете обнаружить, что у вас есть набор файлов, представляющих для вас определенную ценность. Ничего не делать является правильным методом резервного копирования для /usr/obj и других деревьев каталогов, которые могут быть в точности перегенерированы вашим компьютером. Примером являются файлы, представляющие страницы этого Руководства в форматах HTML или &postscript;. Они генерируются из входных файлов в формате SGML. Создавать резервные копии файлов в форматах HTML и &postscript; не нужно. Исходные файлы в формате SGML копируются регулярно. Какая программа резервного копирования самая лучшая? LISA &man.dump.8; Точка. Elizabeth D. Zwicky протестировала все программы резервного копирования, обсуждаемые здесь. Беспроигрышным вариантом для сохранения всех ваших данных и особенностей файловых систем &unix; является dump. Элизабет создала файловые системы, содержащие большое количество необычных элементов (и некоторых не так уж необычных) и тестировала каждую из программ, выполняя резервное копирование и последующее восстановление этих файловых систем. В число необычных элементов входили: файлы с дырами, файлы с дырами и блоком пустого места, файлы с необычными символами в их именах, нечитаемые и незаписываемые файлы, устройства, меняющие свой размер во время резервного копирования, файлы, создаваемые и удаляемые во время копирования и тому подобное. Она представила результаты на конференции LISA V в октябре 1991 года. Посмотрите ссылку на сайте torture-testing Backup and Archive Programs. Процедура восстановления при сбое До того, как случится катастрофа Вам нужно выполнить всего лишь четыре шага для того, чтобы быть готовым к любому сбою. bsdlabel Во-первых, распечатайте разметку диска для всех ваших дисков (к примеру, bsdlabel da0 | lpr), таблицу файловых систем (/etc/fstab) и все сообщения, выводимые при загрузке, каждого по два экземпляра. livefs CD Во-вторых, запишите CD диск с livefs. Этот диск позволяет загружаться в режим аварийного восстановления &os;, давая возможность пользователю выполнять ряд утилит, среди которых &man.dump.8;, &man.restore.8;, &man.fdisk.8;, &man.bsdlabel.8;, &man.newfs.8;, &man.mount.8; и т.д. Образ CD с livefs для &os;/&arch.i386; &rel.current;-RELEASE находится по адресу . В-третьих, регулярно создавайте резервные копии на ленте. Любые изменения, которые вы делали после последнего резервного копирования, могут быть безвозвратно потеряны. На лентах включайте защиту от записи. В-четвертых, проверяйте работу CD диска (который вы сделали при выполнении второго шага) и лент с резервными копиями. Ведите журнал выполняемых действий. Храните эти записи вместе с загрузочным CD диском, распечатками и лентами. Вы просто обезумеете при восстановлении данных, если окажется, что записи помогли бы избежать разрушения ваших резервных копий (Каким образом? Вместо команды tar xvf /dev/sa0 вы могли случайно набрать tar cvf /dev/sa0 и тем самым перезаписать вашу резервную копию). Для дополнительной страховки, каждый раз создавайте загрузочный CD диск с livefs и две резервные копии на ленте. Храните одну из копий в каком-то удаленном месте и НЕ в том же здании, где находится ваш офис. Достаточно большое количество компаний во Всемирном Торговом Центре изучило это на своей шкуре. Это удаленное хранилище должно быть физически отделено на большое расстояние от ваших компьютеров и дисковых устройств. После сбоя Главный вопрос: выжило ли ваше оборудование? Вы регулярно делали резервные копии, так что нет нужды беспокоиться о программном обеспечении. Если оборудование было повреждено, должны быть заменены неисправные компоненты. Если с оборудованием всё в порядке, вставьте CD диск с livefs в привод и загрузите компьютер. На экран будет выведено оригинальное меню установки. Выберите требуемую страну, потом — пункт меню Fixit -- Repair mode with CDROM/DVD/floppy or start a shell., а в нём выберите пункт CDROM/DVD -- Use the live filesystem CDROM/DVD. Утилита restore и другие нужные вам программы находятся в каталоге /mnt2/rescue. Восстановите по отдельности каждую файловую систему. mount корневой раздел bsdlabel newfs Попробуйте выполнить команду mount (например, mount /dev/da0a /mnt) по отношению к корневому разделу вашего первого диска. Если метка диска была испорчена, то воспользуйтесь командой bsdlabel для переразбиения на разделы и разметки диска так, чтобы получившаяся метка совпала с той, которая вами была распечатана и сохранена. Для повторного создания файловых систем используйте утилиту newfs. Повторно смонтируйте корневой раздел диска в режиме чтения-записи (mount -u -o rw /mnt). Воспользуйтесь вашей программой резервного копирования и резервными копиями на лентах для восстановления данных для этой файловой системы (например. restore vrf /dev/sa0). Размонтируйте файловую систему (например, umount /mnt). Повторите эту процедуру для каждой файловой системы, которая была повреждена. Как только ваша система заработает, сделайте резервную копию на новые ленты. Что бы ни вызвало сбой или потерю данных, это может случиться снова. Ещё один час, потраченный в этот момент, может спасти вас от неприятностей в будущем. * Я не был готов к катастрофе, и что теперь? ]]> Marc Fonvieille Реорганизацию и улучшения выполнил Сетевые файловые системы, файловые системы в памяти и с отображением в файл виртуальные диски диски виртуальные Кроме дисков, которые вы физически устанавливаете в ваш компьютер; дискеты, компакт-диски, винчестеры и так далее, FreeBSD воспринимает и другие типы дисков - виртуальные диски. NFS Coda диски память Сюда могут быть отнесены сетевые файловые системы, такие, как Network File System и Coda, а также файловые системы с организацией в памяти и создаваемые в файлах. В зависимости от версии FreeBSD, которую вы используете, для создания и работы с файловыми системами, отображаемыми в оперативную память или файлы, вам нужно будет пользоваться разными инструментами. Пользователи FreeBSD 4.X для создания требуемых устройств должны использовать &man.MAKEDEV.8;. Во FreeBSD 5.0 и более поздних версиях для создания файлов устройств используется &man.devfs.5;, которая выполняет это прозрачно для пользователей. Файловая система в файле во FreeBSD 4.X диски хранимые в файле (4.X) Утилита &man.vnconfig.8; конфигурирует и позволяет использовать дисковые устройства на основе псевдо-устройств vnode. vnode представляет собой файл и отвечает за работу с файлом. Это означает, что &man.vnconfig.8; использует файлы для создания и работы с файловой системой. Одним из возможных способов использования является монтирование образов дискет или образов компакт-дисков, сброшенных в файлы. Для использования &man.vnconfig.8; в конфигурационном файле ядра вам нужно включить поддержку &man.vn.4;: pseudo-device vn Чтобы смонтировать имеющийся образ файловой системы: Использование vnconfig для монтирования имеющегося образа файловой системы во FreeBSD 4.X &prompt.root; vnconfig vn0 diskimage &prompt.root; mount /dev/vn0c /mnt Для создания нового образа файловой системы с помощью &man.vnconfig.8;: Создание нового диска в файле с помощью <command>vnconfig</command> &prompt.root; dd if=/dev/zero of=newimage bs=1k count=5k 5120+0 records in 5120+0 records out &prompt.root; vnconfig -s labels -c vn0 newimage &prompt.root; bsdlabel -r -w vn0 auto &prompt.root; newfs vn0c Warning: 2048 sector(s) in last cylinder unallocated /dev/vn0c: 10240 sectors in 3 cylinders of 1 tracks, 4096 sectors 5.0MB in 1 cyl groups (16 c/g, 32.00MB/g, 1280 i/g) super-block backups (for fsck -b #) at: 32 &prompt.root; mount /dev/vn0c /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/vn0c 4927 1 4532 0% /mnt Файловые системы, отображаемые в файлы диски отображаемые в файлы Во FreeBSD 5.X и более поздних для конфигурации и подключения дисков &man.md.4;, отображаемых в оперативную память, используется утилита &man.mdconfig.8;. Для работы с &man.mdconfig.8; вам нужно подгрузить модуль &man.md.4; или добавить поддержку этих устройств в файл конфигурации ядра: device md Утилита &man.mdconfig.8; поддерживает три типа виртуальных дисков, отображаемых в память: диски в памяти, которая выделяется запросами &man.malloc.9; и диски в памяти, использующие в качестве устройств хранения файлы или раздел подкачки. Одним из возможных использований таких дисков является монтирование файлов с образами дискет или CD. Для монтирования образа существующей файловой системы: Использование <command>mdconfig</command> для монтирования файла с образом существующей файловой системы &prompt.root; mdconfig -a -t vnode -f diskimage -u 0 &prompt.root; mount /dev/md0 /mnt Для создания образа новой файловой системы при помощи &man.mdconfig.8;: Создание нового диска, отображаемого в файл, при помощи <command>mdconfig</command> &prompt.root; dd if=/dev/zero of=newimage bs=1k count=5k 5120+0 records in 5120+0 records out &prompt.root; mdconfig -a -t vnode -f newimage -u 0 &prompt.root; bsdlabel -w md0 auto &prompt.root; newfs md0a /dev/md0c: 5.0MB (10224 sectors) block size 16384, fragment size 2048 using 4 cylinder groups of 1.25MB, 80 blks, 192 inodes. super-block backups (for fsck -b #) at: 160, 2720, 5280, 7840 &prompt.root; mount /dev/md0a /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md0a 4710 4 4330 0% /mnt Если в параметре вы не задали номер устройства, то &man.mdconfig.8; для выбора неиспользуемого устройства будет использовать функцию автоматическое выделения в &man.md.4;. Имя выделенного устройства будет выдано на стандартное устройство выводы в виде, например, md4. Для получения более полной информации о &man.mdconfig.8;, пожалуйста, обратитесь к соответствующей странице справочной системы. Утилита &man.mdconfig.8; весьма полезна, однако для создания файла с файловой системой требуется произвести много действий. Вместе с FreeBSD 5.0 поставляется утилита под названием &man.mdmfs.8;, которая создаёт диск &man.md.4; при помощи &man.mdconfig.8;, размещает на нём файловую систему UFS при помощи &man.newfs.8; и монтирует её командой &man.mount.8;. Например, если вы хотите создать и смонтировать такой же образ файловой системе, как выше, просто наберите такую команду: Настройка и монтирование диска, отображаемого в файл, при помощи команды <command>mdmfs</command> &prompt.root; dd if=/dev/zero of=newimage bs=1k count=5k 5120+0 records in 5120+0 records out &prompt.root; mdmfs -F newimage -s 5m md0 /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md0 4718 4 4338 0% /mnt Если вы используете параметр без номера устройства, то &man.mdmfs.8; будет использовать автоматическую нумерацию &man.md.4; для автоматического выбора неиспользуемого устройства. Более полную информацию о &man.mdmfs.8; можно найти на страницах справочной системы. Файловая система в памяти во FreeBSD 4.X диски файловые системы в памяти (4.X) Драйвер &man.md.4; является простым и эффективным способом создания файловых систем в памяти во FreeBSD 4.X. Для выделения памяти используется &man.malloc.9;. Просто возьмите файловую систему, которую вы приготовили при помощи, скажем, &man.vnconfig.8; и: Диск md в памяти во FreeBSD 4.X &prompt.root; dd if=newimage of=/dev/md0 5120+0 records in 5120+0 records out &prompt.root; mount /dev/md0c /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md0c 4927 1 4532 0% /mnt Для получения более полной информации, пожалуйста, обратитесь к страницам справочной системы по &man.md.4;. Файловые системы с отображением в память диски файловая система в памяти При работе с файловыми системами, отображаемыми в файл или память, используются одни и те же утилиты: &man.mdconfig.8; или &man.mdmfs.8;. Обычно для отображаемых в память файловых систем следует использовать опцию хранение на области подкачки. Это не означает, что такая файловая система будет сразу сброшена на диск: место под нее будет выделено из общего пула памяти, и при необходимости может перемещаться в область подкачки. Также, возможно выделение места под файловую систему в основной памяти (через &man.malloc.9;); однако, следует помнить, что использование таких файловых систем, в особенности большого размера, может привести к панике системы от исчерпания ядерной памяти. Создание нового диска с отображением в память при помощи <command>mdconfig</command> &prompt.root; mdconfig -a -t swap -s 5m -u 1 &prompt.root; newfs -U md1 /dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048 using 4 cylinder groups of 1.27MB, 81 blks, 192 inodes. with soft updates super-block backups (for fsck -b #) at: 160, 2752, 5344, 7936 &prompt.root; mount /dev/md1 /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md1 4718 4 4338 0% /mnt Создание нового диска с отображением в память при помощи <command>mdmfs</command> &prompt.root; mdmfs -s 5m md2 /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md2 4846 2 4458 0% /mnt Отключение диска, отображаемого в память, от системы диски отключение диска, отображаемого в память Если файловые системы, отображаемые в память или файл, больше не используются, вам нужно высвободить все ресурсы для системы. Первым делом нужно размонтировать файловую систему, затем воспользоваться &man.mdconfig.8; для отключения диска от системы и освободить ресурсы. К примеру, чтобы отключить и освободить все ресурсы, используемые /dev/md4: &prompt.root; mdconfig -d -u 4 Для выдачи информации об отконфигурированных устройствах &man.md.4; используется команда mdconfig -l. Во FreeBSD 4.X для отключения устройства используется команда &man.vnconfig.8;. Например, для отключения и освобождения всех ресурсов, используемых /dev/vn4: &prompt.root; vnconfig -u vn4 Tom Rhodes Текст предоставил Мгновенные копии файловых систем файловые системы мгновенные копии Во FreeBSD 5.0 вместе с технологией Отложенных обновлений представлена новая возможность: генерация мгновенных копий файловых систем. Мгновенные копии позволяют пользователю создавать образы заданных файловых систем и работать с ними как с файлами. Файлы мгновенных копий должны создаваться в той файловой системе, над которой производится действие, и пользователь может создавать не более 20 мгновенных копий для каждой файловой системы. Активные копии записываются в суперблок, так что они остаются в силе между операциями монтирования и размонтирования в процессе системных перезагрузок. Если мгновенная копия больше не нужна, она может быть удалена стандартной командой &man.rm.1;. Мгновенные копии могут удаляться в любом порядке, однако всё использованное пространство не может быть использовано, так как другая мгновенная копия может претендовать на некоторые блоки из освобождённых. Неизменяемый флаг устанавливается на файл при помощи &man.mksnap.ffs.8; после первоначального создания файла мгновенной копии. Команда &man.unlink.1; делает исключение для файлов мгновенных копий, позволяя их удалять. Мгновенные копии создаются при помощи утилиты &man.mount.8;. Чтобы создать мгновенную копию /var в файле /var/snapshot/snap, воспользуйтесь такой командой: &prompt.root; mount -u -o snapshot /var/snapshot/snap /var В качестве альтернативного средства создания мгновенных копий вы можете использовать утилиту &man.mksnap.ffs.8;: &prompt.root; mksnap_ffs /var /var/snapshot/snap Файлы мгновенных копий файловых систем (к примеру, /var) можно найти при помощи команды &man.find.1;: &prompt.root; find /var -flags snapshot После создания мгновенной копии есть несколько способов её использования: Некоторые администраторы будут использовать файл мгновенной копии для целей создания резервной копии, так как мгновенная копия может быть перенесена на CD или магнитную ленту. Утилита проверка целостности файловой системы, &man.fsck.8;, может быть запущена над мгновенной копией. Полагая, что файловая система была в порядке, когда она была смонтирована, вы всегда должны получать нормальный (и неизменный) результат. Это именно то, что выполняет фоновый процесс &man.fsck.8;. Запустить утилиту &man.dump.8; с мгновенной копией. Будет создаваться дамп, соответствующий файловой системе на момент создания мгновенной копии. Утилита &man.dump.8; при использовании опции тоже может работать с мгновенными копиями, создавать их дампы, а затем удалять за один проход. Смонтировать командой &man.mount.8; мгновенную копию как замороженный образ файловой системы. Чтобы смонтировать командой &man.mount.8; мгновенную копию /var/snapshot/snap, запустите: &prompt.root; mdconfig -a -t vnode -f /var/snapshot/snap -u 4 &prompt.root; mount -r /dev/md4 /mnt Теперь вы можете пройтись по иерархии вашей зафиксированной файловой системы /var, смонтированной в каталог /mnt. Первоначально всё будет в том же самом состоянии, в каком это было во время создания мгновенной копии. Единственным исключением будет то, что любые ранее сделанные мгновенные копии будут видны как файлы нулевой длины. Когда использование мгновенной копии закончено, она может быть удалена командой: &prompt.root; umount /mnt &prompt.root; mdconfig -d -u 4 Для получения более полной информации о и мгновенных копиях файловых систем, включая технической описание, вы можете посетить сайт Маршалла Кёрка МакКузика (Marshall Kirk McKusick) по адресу . Квотирование файловых систем учёт дисковое пространство дисковые квоты Квоты - это опциональная возможность операционной системы, которая позволяет ограничивать объем дискового пространства и/или количество файлов для конкретного пользователя или членов определенной группы в рамках одной файловой системы. Чаще всего эта возможность используется в системах разделения времени, когда желательно ограничить количество ресурсов, которые может использовать один пользователь или группа пользователей. Это позволит не допустить ситуации, когда один пользователь или группа пользователей заполняют всё доступное дисковое пространство. Настройка вашей системы на использование дисковых квот Перед тем, как попытаться использовать дисковые квоты, необходимо убедиться, что квоты включены в вашем ядре. Это делается добавлением следующей строки в конфигурационный файл вашего ядра: options QUOTA В стандартном ядре GENERIC это по умолчанию не включено, так что для использования дисковых квот вам нужно будет настроить, откомпилировать и установить собственное ядро. Пожалуйста, обратитесь к за дополнительной информацией о настройке ядра. Затем вам потребуется включить квотирование дисков в файле /etc/rc.conf. Это делается добавление такой строчки: enable_quotas="YES" дисковые квоты проверка Для более полного контроля над запуском квотирования имеется дополнительная переменная для настройки. Как правило, при загрузке целостность квот каждой файловой системы проверяется программой &man.quotacheck.8;. При работе программы &man.quotacheck.8; проверяется точное соответствие данных в базе данных квот данным в файловой системе. Это весьма долгий процесс, что отражается на времени загрузки системы. Если вам захочется пропустить этот шаг, то для этого предназначена специальная переменная в файле /etc/rc.conf: check_quotas="NO" Наконец, вам потребуется отредактировать файл /etc/fstab для включения дисковых квот на уровне файловых систем. Это то место, где вы можете включить квоты для пользователей, для групп или для обеих этих категорий для всех ваших файловых систем. Для включения пользовательских квот для файловой системы, добавьте параметр в поле параметров файловой системы, на которой вы хотите включить квотирование, в файле /etc/fstab. Например: /dev/da1s2g /home ufs rw,userquota 1 2 Подобным же образом для включения квотирования на уровне групп, воспользуйтесь параметром вместо . Чтобы включить квотирование как для пользователей, так и для групп, измените строчку следующим образом: /dev/da1s2g /home ufs rw,userquota,groupquota 2 2 По умолчанию файлы квот хранятся в корневом каталоге файловой системы в файлах с именами quota.user и quota.group соответственно для пользовательских и групповых квот. Для получения подробной информации обратитесь к команде &man.fstab.5;. Хотя справочная страница по &man.fstab.5; утверждает, что вы можете указать другое местоположение файлов с квотами, этого делать не рекомендуется, потому что различные утилиты для работы с квотами не могут нормально работать в такой ситуации. На этом этапе вы должны перезагрузить вашу систему с новым ядром. Скрипт /etc/rc автоматически запустит соответствующие команды для создания начальных файлов для всех квот, которые вы создали в файле /etc/fstab, так что нет нужды вручную создавать никаких файлов квот нулевой длины. При нормальной работе вам не потребуется вручную запускать программы &man.quotacheck.8;, &man.quotaon.8; или &man.quotaoff.8;. Однако вам нужно хотя бы прочесть страницы справочника по этим командам, просто чтобы ознакомиться с их функциями. Установка квот дисковые квоты ограничения Как только вы настроили вашу систему на использование квот, проверьте, что они действительно были задействованы. Простым способом сделать это является запуск такой команды: &prompt.root; quota -v Вы должны увидеть однострочную информацию, отражающую использование диска и текущие ограничения для каждой файловой системы, на которой включено квотирование. Теперь вы действительно готовы задавать ограничения при помощи команды &man.edquota.8;. У вас есть несколько вариантов того, как приводить в действие ограничения по объему дискового пространства, который могут занимать пользователь или группа, а также по количеству файлов, которые они могут создать. Вы можете ограничивать размещение ресурсов на основе объема дискового пространства (квотирование блоков), количества файлов (квотирование inode) или их комбинации. Каждое из этих ограничений, в свою очередь, делится на две категории: мягкие и жёсткие ограничения. жёсткое ограничение Жёсткое ограничение не может быть превышено. Как только пользователь достиг своих ограничений, ресурсы соответствующей файловой системы ему больше выделяться не будут. Например, если пользователь имеет жесткое ограничение в 500 Кбайт на файловой системе и в текущий момент использует 490 Кбайт, то пользователь может получить дополнительно ещё 10 Кбайт. Попытка занять ещё 11 Кбайт окончится неудачно. мягкое ограничение С другой стороны, мягкие ограничения могут быть превышены в течении некоторого периода времени. Этот период времени также называют периодом отсрочки, который по умолчанию равен одной неделе. Если пользователь превышает своё мягкое ограничение в течение периода времени, превышающего отсрочку, то это мягкое ограничение становится жестким и последующее выделение ресурсов будет запрещено. Когда пользователь вернётся обратно к отметке, меньшей, чем мягкое ограничение, то период отсрочки будет сброшен. Далее приводится пример того, что вы можете наблюдать при запуске команды &man.edquota.8;. Когда вызывается команда &man.edquota.8;, вы оказываетесь в редакторе, заданном переменной переменной окружения EDITOR, или в редакторе vi, если переменная EDITOR не задана, и можете редактировать квоты. &prompt.root; edquota -u test Quotas for user test: /usr: kbytes in use: 65, limits (soft = 50, hard = 75) inodes in use: 7, limits (soft = 50, hard = 60) /usr/var: kbytes in use: 0, limits (soft = 50, hard = 75) inodes in use: 0, limits (soft = 50, hard = 60) Для каждой файловой системы, на которой включено квотирование, вы должны увидеть две строки. В одной строке приведены ограничения на блоки, а в другой на количество inode. Например, чтобы увеличить ограничения на количество блоков для пользователя с мягкого ограничения в 50 и жёсткого ограничения в 75, на мягкое ограничение в 500 и жёсткое ограничение в 600, измените: /usr: kbytes in use: 65, limits (soft = 50, hard = 75) на: /usr: kbytes in use: 65, limits (soft = 500, hard = 600) Новые ограничения вступят в силу после выхода из редактора. Иногда желательно установить ограничения квот на некоторый диапазон UID (идентификаторов пользователей). Это можно сделать при помощи параметра в команде &man.edquota.8;. Во-первых, установите желаемое ограничение для пользователя, а затем запустите команду edquota -p protouser startuid-enduid. Например, если пользователь test имеет желаемые ограничения, то для дублирования этих ограничений на пользователей с UID от 10000 до 19999 может быть использована такая команда: &prompt.root; edquota -p test 10000-19999 Дополнительную информацию можно получить из справочной страницы по команде &man.edquota.8;. Проверка ограничений и использования диска дисковые квоты проверка Для проверки квот и использования дисков вы можете использовать команды &man.quota.1; или &man.repquota.8;. Команда &man.quota.1; может быть использована для проверки квот отдельных пользователей, групп, а также использования дисков. Пользователь может только проверить собственную квоту и квоту той группы, к которой он принадлежит. Только администратор системы может проверить квоты всех пользователей и групп. Команду &man.repquota.8; можно использовать для получения суммарной статистики всех квот и использования дисков для файловых систем с включенными квотами. Далее приведен пример вывода команды quota -v для пользователя, который имеет ограничения на двух файловых системах. Disk quotas for user test (uid 1002): Filesystem usage quota limit grace files quota limit grace /usr 65* 50 75 5days 7 50 60 /usr/var 0 50 75 0 50 60 период отсрочки В этом примере для файловой системы /usr пользователь превысил свое мягкое ограничение в 50 Кбайт на 15 Кбайт и имеет 5 дней до истечения отсрочки. Отметьте знак звездочки *, который указывает на превышение пользователем своего ограничения. Как правило, файловые системы, на которых пользователь не занимает дискового пространства, не показываются в выводе команды &man.quota.1;, даже если ему выделена квота на этой файловой системе. При использовании параметра эти файловые системы выводятся, как, например, файловая система /usr/var в примере выше. Квоты в NFS NFS Квоты определяются подсистемой квот на сервере NFS. Даемон &man.rpc.rquotad.8; предоставляет информацию о квотах для программы &man.quota.1; на клиентах NFS, позволяя пользователям на этих машинах смотреть свою статистику о квотах. Включите rpc.rquotad в файле /etc/inetd.conf следующим образом: rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad Теперь перезапустите inetd: &prompt.root; /etc/rc.d/inetd restart Lucky Green Текст предоставил
shamrock@cypherpunks.to
Шифрование дисковых разделов диски шифрование FreeBSD предоставляет прекрасную возможность по защите от несанкционированного доступа к данным. Права на доступ к файлам и технология принудительного контроля доступа MAC (Mandatory Access Control) (смотрите see ) помогают предотвратить несанкционированный доступ посторонних лиц к данным, при условии работы операционной системы и компьютера. Однако права доступа, контролируемые операционной системой, не имеют значения, если нападающий получает физический доступ к компьютеру и может просто перенести жёсткий диск на другую машину для копирования и дальнейшего анализа важных данных. Вне зависимости от того, как атакующий завладел жёстким диском или выключенным компьютером, технологии gbde (GEOM Based Disk Encryption - шифрование диска на уровне GEOM) и криптографическая подсистема geli &os; могут защитить данные файловой системы компьютера даже против очень заинтересованной атакующей стороны с достаточными ресурсами. В отличие от громоздких систем шифрования, которые шифруют отдельные файлы, gbde и geli шифруют в прозрачном режиме файловую систему в целом, при этом данные в открытом виде на диск никогда не записываются. Шифрование диска при помощи gbde Получите права пользователя <username>root</username> Настройка gbde требует права доступа администратора системы. &prompt.user; su - Password: Включите поддержку &man.gbde.4; в конфигурационный файл ядра Добавьте следующую строку в файл конфигурации вашего ядра: options GEOM_BDE Перестройте ядро FreeBSD. Этот процесс описан в . Перезагрузитесь, запустив новое ядро. Альтернативой пересборке ядра является использование kldload для загрузки модуля &man.gbde.4;: &prompt.root; kldload geom_bde Подготовка зашифрованного жёсткого диска В следующем примере предполагается, что в вашу систему вы добавляете новый винчестер, на котором будет располагаться единственный раздел с зашифрованными данными. Этот раздел будет монтироваться в каталог /private. gbde может также использоваться для шифрования /home и /var/mail, но это требует более сложной последовательности действий, что выходит за рамки этого вводного материала. Подключите новый жёсткий диск Установите новый диск в систему, как это описано в . В рамках этого примера раздел, соответствующий новому жёсткому диску, будет называться /dev/ad4s1c. Устройства /dev/ad0s1* представляют существующие стандартные разделы FreeBSD нашей тестовой системы. &prompt.root; ls /dev/ad* /dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1 /dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c /dev/ad0s1a /dev/ad0s1d /dev/ad4 Создайте каталог для размещения файлов блокировок GBDE &prompt.root; mkdir /etc/gbde Файл блокировки gbde содержит информацию, которая нужна gbde для доступа к зашифрованному разделу. Не имея доступа к файлу блокировки, gbde не сможет расшифровать данные, хранимые в зашифрованном разделе, без значительного ручного вмешательства, что программно не поддерживается. Каждый зашифрованный раздел использует отдельный файл блокировки. Инициализируйте раздел gbde Перед началом работы с разделом gbde его необходимо проинициализировать. Эта инициализация производится только один раз: &prompt.root; gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c.lock &man.gbde.8; запустит редактор, что позволит вам задать в шаблоне различные конфигурационные параметры. При работе с файловыми системами UFS1 и UFS2 задайте значение sector_size равным 2048: $FreeBSD: src/sbin/gbde/template.txt,v 1.1 2002/10/20 11:16:13 phk Exp $ # # Sector size is the smallest unit of data which can be read or written. # Making it too small decreases performance and decreases available space. # Making it too large may prevent filesystems from working. 512 is the # minimum and always safe. For UFS, use the fragment size # sector_size = 2048 [...] &man.gbde.8; дважды запросит ввод пароля, который будет использоваться для защиты данных. Пароль в обоих случаях должен вводиться одинаковый. Возможности gbde по защите ваших данных полностью зависят от качества выбранной вами ключевой фразы. Советы по выбору легко запоминающихся ключевых фраз можно найти на сайте Diceware Passphrase. По команде gbde init создаётся файл блокировок для вашего раздела gbde, который в нашем случае будет иметь имя /etc/gbde/ad4s1c.lock. Для того, чтобы файлы блокировок корректно распознавались стартовым скриптом /etc/rc.d/gbde, их имена должны заканчиваться на .lock. Резервные копии файлов блокировок gbde должны храниться вместе с содержимым шифруемых разделов. Хотя удаление только блокировочного файла не сможет противостоять дешифрации атакующим раздела gbde, без этого файла даже легитимный пользователь не сможет получить доступ к данным без определённых и значительных усилий, что не поддерживается &man.gbde.8; и его разработчиком. Подключите зашифрованный раздел к системе &prompt.root; gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lock Будет выдан запрос на ввод ключевой фразы, которую вы выбирали во время инициализации зашифрованного раздела. Новое защищённое устройство будет видно в каталоге /dev под названием /dev/device_name.bde: &prompt.root; ls /dev/ad* /dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1 /dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c /dev/ad0s1a /dev/ad0s1d /dev/ad4 /dev/ad4s1c.bde Создайте файловую систему на зашифрованном устройстве Как только защищённое устройство будет подключено к системе, вы сможете создать на нём файловую систему. Для этого используется утилита &man.newfs.8;. Так как инициализация новой файловой системы UFS2 происходит быстрее, чем инициализация файловой системы старого формата UFS1, то рекомендуется использовать &man.newfs.8; с параметром . &prompt.root; newfs -U -O2 /dev/ad4s1c.bde Запуск команды &man.newfs.8; должен выполняться над подключенном разделе gbde, который идентифицируется по расширению *.bde в имени устройства. Смонтируйте зашифрованный раздел Создайте точку монтирования для зашифрованной файловой системы. &prompt.root; mkdir /private Смонтируйте защищённую файловую систему. &prompt.root; mount /dev/ad4s1c.bde /private Проверьте доступность зашифрованной файловой системы Защищённая файловая система теперь должна быть доступна утилите &man.df.1; и доступной для использования. &prompt.user; df -H Filesystem Size Used Avail Capacity Mounted on /dev/ad0s1a 1037M 72M 883M 8% /devfs 1.0K 1.0K 0B 100% /dev /dev/ad0s1f 8.1G 55K 7.5G 0% /home /dev/ad0s1e 1037M 1.1M 953M 0% /tmp /dev/ad0s1d 6.1G 1.9G 3.7G 35% /usr /dev/ad4s1c.bde 150G 4.1K 138G 0% /private Монтирование имеющихся зашифрованных файловых систем После каждой загрузки для каждой защищённой файловой системы перед их использованием должны выполняться повторное подключение к системе, проверка на наличие ошибок и монтирование. Требуемые для этого команды должны выполняться пользователем root. Подключение gbde-раздела к системе &prompt.root; gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lock Будет выдан запрос на ввод ключевой фразы, выбранной на этапе инициализации зашифрованного раздела gbde. Проверка файловой системы на наличие ошибок Так как защищаемая файловая система не может пока быть указана в файле /etc/fstab для автоматического монтирования, то она должны проверяться на наличие ошибок посредством ручного запуска &man.fsck.8; до её монтирования. &prompt.root; fsck -p -t ffs /dev/ad4s1c.bde Монтирование зашифрованной файловой системы &prompt.root; mount /dev/ad4s1c.bde /private Теперь защищённая файловая система доступна для работы. Автоматическое монтирование зашифрованных разделов Для автоматического подключения, проверки и монтирования зашифрованного раздела можно создать скрипт, но по соображениям безопасности в этом скрипте пароля для &man.gbde.8; быть не должно. Поэтому рекомендуется запускать такие скрипты вручную, а пароль задавать с консоли или сеанса &man.ssh.1;. Кроме того, базовая система содержит скрипт rc.d для автоматического монтирования шифрованных разделов. Его аргументы могут быть указаны в файле &man.rc.conf.5;: gbde_autoattach_all="YES" gbde_devices="ad4s1c" gbde_lockdir="/etc/gbde" При этом ключевая фраза для gbde должна быть введена на этапе загрузки. После введения ключевой фразы зашифрованный раздел будет смонтирован автоматически. Такой подход может быть очень удобным для использования gbde на ноутбуках. Криптографическая защита, применяемая в gbde &man.gbde.8; шифрует содержимое секторов при помощи 128-битного AES в режиме CBC. Каждый сектор диска шифруется различным ключом AES. Более полная информацию о системе шифрования gbde, включая алгоритм генерации ключей для секторов из ключевой фразы, вводимой пользователем, можно найти на страницах справочной системы о &man.gbde.4;. Вопросы совместимости &man.sysinstall.8; несовместим с устройствами, зашифрованными gbde. Все устройства *.bde перед запуском &man.sysinstall.8; должны быть отключены от системы, или эта утилита аварийно завершит работу на этапе обнаружения устройств. Для отключения защищённого устройства, используемого в нашем примере, воспользуйтесь такой командой: &prompt.root; gbde detach /dev/ad4s1c Также заметьте, что, так как &man.vinum.4; работает не через подсистему &man.geom.4;, то вы не можете использовать тома vinum с gbde. Daniel Gerzo Предоставлено Шифрование дисков при помощи <command>geli</command> - Начиная с версии 6.0 &os; поддерживается новый класс GEOM — - geli. В настоящий момент он поддерживается + Во &os; имеется альтернативный криптографический класс GEOM + — geli. В настоящий момент он поддерживается &a.pjd;. Утилита geli отличается от gbde; она предоставляет другой комплекс возможностей и использует иную схему криптования. Наиболее значимыми особенностями &man.geli.8; являются: Использование инфраструктуры &man.crypto.9;: при наличии аппаратной криптографической поддержки, geli автоматически использует ее. Поддержка разнообразных криптоалгоритмов (в настоящее время AES, Blowfish и 3DES). Поддержка шифрованного корневого раздела. Для загрузки в такой ситуации потребуется ввести ключевую фразу. Поддержка двух независимых ключей шифрования (например, основного ключа и ключа компании). Высокая скорость работы geli за счет простого криптования сектор-сектор. Поддержка архивирования основных ключей. При необходимости текущие ключи могут быть уничтожены, а в дальнейшем доступ к данным восстановлен при помощи архивированных ключей. Поддержка криптования файловых систем случайным одноразовым ключом — например, для разделов подкачки или временных файловых систем. Другие возможности класса geli описаны в его странице справочника: &man.geli.8;. Несколько следующих страниц будут посвящены описанию процесса конфигурации geli в ядре &os;, а также объяснят, как создавать и использовать криптографический провайдер geli. - Для того чтобы использовать geli, вам - потребуется &os; версии 6.0-RELEASE или более поздней. Поскольку - необходимо внести изменения в конфигурацию ядра, потребуются также + Поскольку в процессе настройки возникнет необходимость внесения + изменений в конфигурацию ядра, потребуются также привилегии суперпользователя. Добавление поддержки <command>geli</command> в ядро Добавьте в конфигурационный файл ядра следующие строки: options GEOM_ELI device crypto Перестройте ядро, как описано в разделе . Помимо этого, поддержка geli может быть активирована модулем ядра на этапе загрузки. Для этого добавьте в файл /boot/loader.conf строку: geom_eli_load="YES" Теперь ядро должно поддерживать &man.geli.8;. Генерация главного ключа Предлагаемый пример описывает процесс генерации ключевого файла, который послужит частью главного ключа для шифрованного провайдера, монтируемого в каталог /private. При помощи содержимого ключевого файла создается набор случайных данных, которым зашифровывается главный ключ. Кроме того, он будет защищен кодовой фразой. Размер сектора провайдера будет составлять 4kB. Наконец, мы обсудим, как присоединиться к провайдеру geli, создать на базе его файловую систему, как ее смонтировать и работать с ней, и, в заключение, как корректно завершить работу. Больший чем обычно размер сектора (как в нашем примере, 4 кБ) рекомендуется для увеличения производительности. Главный ключ будет защищен кодовой фразой; данные для ключевого файла берутся из /dev/random. Размер сектора создаваемого нами шифрованного провайдера /dev/da2.eli — 4кБ. &prompt.root; dd if=/dev/random of=/root/da2.key bs=64 count=1 &prompt.root; geli init -s 4096 -K /root/da2.key /dev/da2 Enter new passphrase: Reenter new passphrase: Использование одновременно кодовой фразы и ключевого файла не обязательно: любой из этих методов защиты главного ключа может применяться независимо. Если в качестве имени ключевого файла указан -, используется стандартный ввод. Это позволяет использовать более одного ключевого файла: &prompt.root; cat keyfile1 keyfile2 keyfile3 | geli init -K - /dev/da2 Свяжите сгенерированный ключ с провайдером &prompt.root; geli attach -k /root/da2.key /dev/da2 Enter passphrase: Созданный при этом файл дискового устройства будет называться /dev/da2.eli. &prompt.root; ls /dev/da2* /dev/da2 /dev/da2.eli Создайте новую файловую систему &prompt.root; dd if=/dev/random of=/dev/da2.eli bs=1m &prompt.root; newfs /dev/da2.eli &prompt.root; mount /dev/da2.eli /private Зашифрованная файловая система будет видна в выводе утилиты &man.df.1; и готова к использованию: &prompt.root; df -H Filesystem Size Used Avail Capacity Mounted on /dev/ad0s1a 248M 89M 139M 38% / /devfs 1.0K 1.0K 0B 100% /dev /dev/ad0s1f 7.7G 2.3G 4.9G 32% /usr /dev/ad0s1d 989M 1.5M 909M 0% /tmp /dev/ad0s1e 3.9G 1.3G 2.3G 35% /var /dev/da2.eli 150G 4.1K 138G 0% /private Размонтирование и деактивация провайдера После завершения работы с шифрованным разделом, когда содержимое каталога /private больше не нужно, будет разумным отключить раздел от системы. &prompt.root; umount /private &prompt.root; geli detach da2.eli Дополнительную информацию о &man.geli.8; можно найти на соответствующей странице справочника. Использование стартового скрипта <filename>rc.d</filename> <filename>geli</filename> Для удобства использования подсистемы geli в комплект базовой системы &os; входит стартовый скрипт, работой которого можно управлять из &man.rc.conf.5;: geli_devices="da2" geli_da2_flags="-p -k /root/da2.key" При этом дисковый раздел /dev/da2 будет сконфигурирован как провайдер geli, связан с ключевым файлом /root/da2.key, а кодовая фраза не будет использоваться (отметим, что это возможно только в том случае, если при инициализации geli init был указан ключ ). Шифрованный провайдер geli будет отсоединен перед выключением системы. Дополнительную информацию о конфигурации скриптов rc.d можно найти в соответствующей главе Руководства.
Christian Brüffer Написано Шифрование области подкачки swap encrypting - Шифрование области подкачки в &os; доступно начиная с версии - 5.3-RELEASE и достаточно легко конфигурируется. Варианты конфигурации - слегка различаются в зависимости от версии системы. Начиная с версии - 6.0-RELEASE, для шифрования разделов подкачки можно использовать - утилиты &man.gbde.8; или &man.geli.8;; в более ранних версиях доступно - только решение при помощи &man.gbde.8;. В обоих случаях используется + Шифрование области подкачки в &os; достаточно легко конфигурируется. + Варианты конфигурации слегка различаются в зависимости от версии системы. + Для шифрования разделов подкачки можно использовать + утилиты &man.gbde.8; или &man.geli.8;;. В обоих случаях используется скрипт rc.d encswap. Предыдущий раздел, Шифрование дисковых разделов, кратко описывает различные методы криптования. Зачем шифровать область подкачки? Как и в случае дисковых разделов, шифрование области подкачки применяется для защиты важной информации. Возьмем, к примеру, приложение, которому требуется работать с паролями. До тех пор, пока пароли хранятся в физической памяти, все в порядке. Если же операционная система начинает выгружать отдельные участки памяти в область подкачки, чтобы освободить память для других приложений, пароли могут быть записаны на диск в открытом виде и тем самым оказаться легко доступными злоумышленнику (имеющему физический доступ к диску — прим. пер.). В таких ситуациях решением может стать шифрование раздела подкачки. Подготовка В данном разделе мы будем считать, что разделом подкачки является ad0s1b. До настоящего момента раздел подкачки не был зашифрован. Таким образом, на нем могут содержаться пароли или какая-либо иная важная информация в открытом виде. Чтобы избавиться от этого, заполним раздел подкачки случайными данными: &prompt.root; dd if=/dev/random of=/dev/ad0s1b bs=1m Шифрование раздела подкачки при помощи &man.gbde.8; - В версиях &os; начиная с 6.0-RELEASE в строку файла + В строку файла /etc/fstab, описывающую раздел подкачки, необходимо добавить суффикс .bde: # Device Mountpoint FStype Options Dump Pass# /dev/ad0s1b.bde none swap sw 0 0 - - В системах версий до &os; 6.0-RELEASE, кроме того, потребуется - следующая строка в файле конфигурации системы - /etc/rc.conf: - - gbde_swap_enable="YES" Шифрование раздела подкачки при помощи &man.geli.8; Процедура при использовании &man.geli.8; для шифрования раздела подкачки сходна с использованием &man.gbde.8;. В строку файла /etc/fstab, описывающую раздел подкачки, нужно добавить суффикс .eli: # Device Mountpoint FStype Options Dump Pass# /dev/ad0s1b.eli none swap sw 0 0 По умолчанию, &man.geli.8; использует алгоритм криптования AES с длиной ключа 256 бит. При необходимости эти параметры могут быть изменены в опции geli_swap_flags файла конфигурации /etc/rc.conf. Приведенная ниже строка указывает, что скрипт rc.d encswap должен использовать для криптования алгоритм Blowfish с ключом длиной 128 бит, размером сектора 4 килобайта и включенной опцией отсоединиться при последнем закрытии: geli_swap_flags="-e blowfish -l 128 -s 4096 -d" - Следующая строка требуется в случае использования систем - с версиями, предшествующими &os; 6.2-RELEASE: - - geli_swap_flags="-a blowfish -l 128 -s 4096 -d" - За списком возможных опций обращайтесь к описанию команды onetime в странице справочника &man.geli.8;. Окончательная проверка После перезагрузки системы правильность работы шифрованного раздела подкачки может быть проверена при помощи команды swapinfo. В случае использования &man.gbde.8;: &prompt.user; swapinfo Device 1K-blocks Used Avail Capacity /dev/ad0s1b.bde 542720 0 542720 0% При использовании &man.geli.8;: &prompt.user; swapinfo Device 1K-blocks Used Avail Capacity /dev/ad0s1b.eli 542720 0 542720 0%
diff --git a/ru_RU.KOI8-R/books/handbook/firewalls/chapter.sgml b/ru_RU.KOI8-R/books/handbook/firewalls/chapter.sgml index 42a6cd9a60..cf46e7ba88 100644 --- a/ru_RU.KOI8-R/books/handbook/firewalls/chapter.sgml +++ b/ru_RU.KOI8-R/books/handbook/firewalls/chapter.sgml @@ -1,1155 +1,1149 @@ Joseph J. Barbish Предоставил Brad Davis Преобразовал в SGML и обновил Межсетевые экраны межсетевой экран безопасность межсетевой экран брандмауэр межсетевой экран Введение Межсетевые экраны (firewall, брандмауэр) делают возможной фильтрацию входящего и исходящего трафика, идущего через вашу систему. Межсетевой экран использует один или более наборов правил для проверки сетевых пакетов при их входе или выходе через сетевое соединение, он или позволяет прохождение трафика или блокирует его. Правила межсетевого экрана могут проверять одну или более характеристик пакетов, включая но не ограничиваясь типом протокола, адресом хоста источника или назначения и портом источника или назначения. Межсетевые экраны могут серьезно повысить уровень безопасности хоста или сети. Они могут быть использованы для выполнения одной или более нижеперечисленных задач: Для защиты и изоляции приложений, сервисов и машин во внутренней сети от нежелательного трафика, приходящего из внешней сети интернет. Для ограничения или запрещения доступа хостов внутренней сети к сервисам внешней сети интернет. Для поддержки преобразования сетевых адресов (network address translation, NAT), что дает возможность задействовать во внутренней сети приватные IP адреса и совместно использовать одно подключение к сети Интернет (либо через один выделенный IP адрес, либо через адрес из пула автоматически присваиваемых публичных адресов). После прочтения этой главы вы узнаете: Как правильно задать правила фильтрации пакетов. Разницу между межсетевыми экранами, встроенными в &os; Как использовать и настраивать межсетевой экран OpenBSD PF. Как использовать и настраивать IPFILTER. Как использовать и настраивать IPFW. Перед прочтением этой главы вам потребуется: Ознакомиться с основами &os; и интернет. Принципы работы межсетевых экранов межсетевой экран наборы правил Существует два основных способа создания наборов правил межсетевого экрана: включающий и исключающий. Исключающий межсетевой экран позволяет прохождение всего трафика, за исключением трафика, соответствующего набору правил. Включающий межсетевой экран действует прямо противоположным образом. Он пропускает только трафик, соответствующий правилам и блокирует все остальное. Включающий межсетевой экран обеспечивает гораздо большую степень контроля исходящего трафика. Поэтому включающий межсетевой экран является лучшим выбором для систем, предоставляющих сервисы в сети Интернет. Он также контролирует тип трафика, порождаемого вне и направляющегося в вашу приватную сеть. Трафик, не попавший в правила, блокируется, а в файл протокола вносятся соответствующие записи. Включающие межсетевые экраны обычно более безопасны, чем исключающие, поскольку они существенно уменьшают риск пропуска межсетевым экраном нежелательного трафика. Если не указано иначе, то все приведенные в этом разделе примеры наборов правил и конфигураций относятся к типу включающего межсетевого экрана. Безопасность может быть дополнительно повышена с использованием межсетевого экрана с сохранением состояния. Такой межсетевой экран сохраняет информацию об открытых соединениях и разрешает только трафик через открытые соединения или открытие новых соединений. Недостаток межсетевого экрана с сохранением состояния в том, что он может быть уязвим для атак DoS (Denial of Service, отказ в обслуживании), если множество новых соединений открывается очень быстро. Большинство межсетевых экранов позволяют комбинировать поведение с сохранением состояния и без сохранения состояния, что позволяет создавать оптимальную конфигурацию для каждой конкретной системы. Пакеты межсетевых экранов В базовую систему &os; встроено три программных межсетевых экрана. Это IPFILTER (известный также как IPF), IPFIREWALL (известный также как IPFW) и OpenBSD PacketFilter (также известный как PF). Помимо этого, &os; содержит два пакета ограничения трафика (по существу, предназначенных для контроля пропускной способности сетевого соединения): &man.altq.4; и &man.dummynet.4;. Dummynet традиционно сильно связан с IPFW, а ALTQ с PF. В настоящее время IPFILTER не поддерживает ограничение пропускной способности сетевого соединения. Для реализации этой функции предлагается использовать IPFILTER совместно с одним из двух существующих пакетов ограничения трафика. Конфигурация следующая: IPFILTER задействуется для фильтрации и трансляции трафика, а IPFW с &man.dummynet.4; или PF с ALTQ — для контроля пропускной способности сетевого соединения. IPFW и PF для контроля исходящих и входящих пакетов используют наборы правил, хотя и разными способами с разным синтаксисом правил. Причина, по которой в &os; включено более одного пакета межсетевых экранов, заключается в том, что разные пользователи выдвигают к ним различные требования и используют разные предпочтения. Нет одного пакета, который был бы очевидно лучше других. Автор предпочитает IPFILTER, поскольку его правила с сохранением состояния гораздо проще использовать совместно с NAT; кроме того, в него встроен ftp прокси, что упрощает правила для фильтрации исходящих FTP соединений. Поскольку все межсетевые экраны основаны на анализе значений выбранных полей заголовка пакета, для создания правил межсетевого экрана необходимо понимание принципов TCP/IP, того, что означают различные поля заголовка пакета, и как эти поля используются в обычной сессии. Хорошим примером является: . John Ferrell Пересмотрел и обновил Packet Filter (PF, межсетевой экран OpenBSD) и <acronym>ALTQ</acronym> межсетевой экран PF В июле 2003 программный межсетевой экран OpenBSD, известный как PF, был портирован в &os; и стал доступен из коллекции портов &os;; первым релизом, где PF был интегрирован в основную систему, стала &os; 5.3 в ноябре 2004. PF это полноценный межсетевой экран с широким набором возможностей, в котором есть опциональная поддержка ALTQ (Alternate Queuing). ALTQ предоставляет управление пропускной способностью Quality of Service (QoS). Проект OpenBSD осуществляет замечательную работу по поддержке PF FAQ. Этот раздел руководства фокусируется на взаимосвязи PF и &os;, предоставляя лишь общую информацию по его использованию. За более подробной информацией по использованию PF обратитесь к PF FAQ. Дополнительные сведения о PF для &os; можно получить с веб сайта: . Использование модуля ядра PF Чтобы загрузить PF как модуль ядра, добавьте следующую строку в /etc/rc.conf: pf_enable="YES" Далее, выполните стартовый скрипт: &prompt.root; /etc/rc.d/pf start Учтите, модуль PF не загрузится, если он не сможет найти конфигурационный файл с набором правил. По умолчанию размещение файла с правилами следующее: /etc/pf.conf. Если путь к файлу отличается от вышеприведённого, то внесите в /etc/rc.conf строку вида: pf_rules="/path/to/pf.conf" - - Начиная с версии &os; 7.0 файл с примерами конфигураций - (pf.conf) был перемещен из каталога - /etc/ в каталог - /usr/share/examples/pf/. - Для версий &os;, предшествующих 7.0, размещение по умолчанию - — /etc/pf.conf - + Файл с примерами конфигураций pf.conf + находится в каталоге /usr/share/examples/pf/. Модуль PF можно также загрузить вручную: &prompt.root; kldload pf.ko Поддержка ведения логов для PF обеспечивается модулем pflog.ko, для загрузки которого добавьте следующую строку в /etc/rc.conf: pflog_enable="YES" и запустите на выполнение скрипт: &prompt.root; /etc/rc.d/pflog start Если вам необходимы другие функциональные возможности PF, то придется добавить поддержку PF в ядро. Параметры ядра параметры ядра device pf параметры ядра device pflog параметры ядра device pfsync Включение PF путем компиляции с ядром &os; не является обязательным требованием, однако вам может понадобиться одна из функциональных возможностей, которая не включена в загружаемый модуль. Например, &man.pfsync.4; являет собой псевдоустройство, которое вносит определенные изменения в таблицу состояний, используемую PF. В дальнейшем, это псевдоустройство может быть скомпоновано с &man.carp.4; чтобы создать отказоустойчивую систему межсетевых экранов на основе PF. Пример параметров конфигурации ядра для включения PF находится в /usr/src/sys/conf/NOTES и показан здесь: device pf device pflog device pfsync device pf включает поддержку межсетевого экрана Packet Filter (&man.pf.4;). device pflog включает необязательное сетевое псевдоустройство &man.pflog.4;, которое может использоваться для протоколирования трафика через &man.bpf.4;. Даемон &man.pflogd.8; может использоваться для сохранения протоколируемой информации на диск. device pfsync включает необязательное сетевое псевдоустройство &man.pfsync.4;, используемое для отслеживания изменений состояния. Доступные параметры rc.conf Для активации PF и &man.pflog.4; во время загрузки в &man.rc.conf.5; должны быть включены следующие переменные: pf_enable="YES" # Включить PF (загрузить модуль если необходимо) pf_rules="/etc/pf.conf" # определение правил для pf pf_flags="" # дополнительные флаги для запуска pfctl pflog_enable="YES" # запустить pflogd(8) pflog_logfile="/var/log/pflog" # где pflogd должен сохранять протокол pflog_flags="" # дополнительные флаги для запуска pflogd Если за межсетевым экраном находится локальная сеть и необходимо передавать пакеты для компьютеров этой сети, или использовать NAT, включите также следующий параметр: gateway_enable="YES" # Включить сетевой шлюз Создание правил фильтрации Пакет PF читает конфигурацию из файла &man.pf.conf.5; (полный путь: /etc/pf.conf); пакеты отвергаются, пропускаются или модифицируются в соответствии с правилами и определениями из этого файла. В стандартную поставку &os; входят несколько файлов с примерами конфигураций, которые находятся в каталоге /usr/share/examples/pf/. За исчерпывающим описанием правил PF обратитесь к PF FAQ. Изучая PF FAQ, имейте в виду, что различные версии &os; могут - содержать разные версии pf. В настоящий момент - &os; 7.X и более поздние - используют ту же версию PF, которая включена + содержать разные версии pf. В настоящий момент &os; + использует ту же версию PF, которая включена в OpenBSD 4.1. &a.pf; является хорошим местом, чтобы задавать вопросы по конфигурации и использованию пакета PF. Не забудьте проверить архивы списка рассылки перед тем, как задавать вопрос. Работа с PF Для управления PF используйте утилиту &man.pfctl.8;. Ниже приведено несколько полезных команд (все возможные команды и опции приведены на странице справочника &man.pfctl.8;): Команда Действие pfctl Включить PF pfctl Выключить PF pfctl all /etc/pf.conf Сбросить все правила (NAT, правила фильтрации, состояния соединений, таблицы и т.д.) и загрузить новые с файла /etc/pf.conf pfctl [ rules | nat | state ] Отобразить правила фильтрации, правила NAT или таблицу состояний соединений pfctl /etc/pf.conf Проверить /etc/pf.conf на наличие ошибок, но сами наборы правил не загружать Включение <acronym>ALTQ</acronym> ALTQ может быть включен только путем компилирования ядра &os; с соответствующими параметрами. ALTQ поддерживается не всеми существующими драйверами сетевых карт. Для просмотра списка поддерживаемых устройств в вашем релизе &os; обратитесь к странице справочника &man.altq.4;. Следующие параметры включат ALTQ и добавят дополнительную функциональность. options ALTQ options ALTQ_CBQ # Class Bases Queuing (CBQ) options ALTQ_RED # Random Early Detection (RED) options ALTQ_RIO # RED In/Out options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC) options ALTQ_PRIQ # Priority Queuing (PRIQ) options ALTQ_NOPCC # Required for SMP build options ALTQ включает подсистему ALTQ. options ALTQ_CBQ включает Class Based Queuing (CBQ). CBQ позволяет распределять пропускную способность соединений по классам или очередям для выставления приоритетов трафика на основе правил фильтрации. options ALTQ_RED включает Random Early Detection (RED). RED используется для предотвращения перегрузки сети. RED вычисляет длину очереди и сравнивает ее с минимальным и максимальным значением длины очереди. Если очередь превышает максимум, все новые пакеты будут отброшены. В соответствии со своим названием, RED - отбрасывает пакеты из различные соединений в произвольном + отбрасывает пакеты из различных соединений в произвольном порядке. options ALTQ_RIO включает Random Early Detection In and Out. options ALTQ_HFSC включает Hierarchical Fair Service Curve Packet Scheduler. Дополнительная информация о HFSC находится по адресу: . options ALTQ_PRIQ включает Priority Queuing (PRIQ). PRIQ всегда первым пропускает трафик из очереди c более высоким приоритетом. options ALTQ_NOPCC включает поддержку SMP для ALTQ. Эта опция необходима для SMP систем. * IPFILTER (IPF) межсетевой экран IPFILTER Перевод раздела не завершен. Этот раздел находится в процессе написания; содержание может не вполне соответствовать действительности. Автором IPFILTER является Darren Reed. IPFILTER не зависит от операционной системы: это приложение с открытыми исходными текстами, которое было портировано на операционные системы &os;, NetBSD, OpenBSD, &sunos;, HP/UX, и &solaris;. IPFILTER активно разрабатывается и поддерживается, регулярно выпускаются обновленные версии. IPFILTER основан на межсетевом экране и механизме NAT уровня ядра, которые управляются и контролируются утилитами уровня пользовательских процессов. Правила межсетевого экрана могут устанавливаться или удаляться утилитой &man.ipf.8;. Правила NAT могут устанавливаться или удаляться утилитой &man.ipnat.1;. Утилита &man.ipfstat.8; выводит статистику IPFILTER для ядра. Программа &man.ipmon.8; может заносить действия IPFILTER в файлы системных протоколов. IPF был первоначально написан с использованием правила последнее совпадение применяется и только с правилами без сохранения состояния. Со временем IPF был расширен и включает параметры quick и keep state (сохранение состояния), которые кардинальным образом изменяют логику обработки пакетов. Официальная документация IPF включает традиционные параметры правил с традиционной последовательностью обработки пакетов. Измененные функции включены в виде дополнительных параметров, они необходимы для создания эффективного межсетевого экрана. Инструкции этого раздела подразумевают использование параметра quick и параметра сохранения состояния keep state. Это основа для создания включающего межсетевого экрана. Детальное описание традиционных методов обработки правил: и . IPF FAQ находится по адресу . Архив списка рассылки по IPFilter с возможностью поиска доступен по адресу . Включение IPF IPFILTER включение IPF включен в базовую систему &os; в качестве отдельного загружаемого модуля. Система динамически загрузит модуль IPF, если в rc.conf указана переменная ipfilter_enable="YES". Модуль создается с включенным протоколированием и правилом по умолчанию pass all (пропускать все). Для изменения правила по умолчанию не обязательно собирать ядро с новыми параметрами. Просто добавьте в конец набора правило, блокирующее все пакеты. Параметры ядра параметры ядра IPFILTER параметры ядра IPFILTER_LOG параметры ядра IPFILTER_DEFAULT_BLOCK IPFILTER параметры ядра Включение IPF в ядро &os; не является обязательным требованием. Эта процедура представлена здесь в качестве дополнительной информации. При включении IPF в ядро загружаемый модуль не используется. Пример параметров настройки ядра для IPF находится в /usr/src/sys/conf/NOTES и воспроизведен здесь: options IPFILTER options IPFILTER_LOG options IPFILTER_DEFAULT_BLOCK options IPFILTER включает поддержку межсетевого экрана IPFILTER. options IPFILTER_LOG включает протоколирование трафика через IPF путем записи его в псевдо-устройство протоколирования пакетов ipl для каждого правила, содержащего ключевое слово log. options IPFILTER_DEFAULT_BLOCK изменяет поведение по умолчанию так, что блокируется каждый пакет, не соответствующий правилу pass. Эти настройки будут работать только после сборки и установки нового ядра. Доступные параметры rc.conf Для активации IPF во время загрузки в /etc/rc.conf потребуется добавить следующие переменные: ipfilter_enable="YES" # Запуск межсетевого экрана ipf ipfilter_rules="/etc/ipf.rules" # Загрузка файла с правилами ipmon_enable="YES" # Включение протоколирования IP monitor ipmon_flags="-Ds" # D = запуск в виде даемона # s = протоколирование в syslog # v = протоколирование tcp window, ack, seq # n = отображение имен IP и портов Если за межсетевым экраном находится локальная сеть, использующая приватные IP адреса, для включения NAT потребуется добавить следующие переменные: gateway_enable="YES" # Включение шлюза для локальной сети ipnat_enable="YES" # Запуск функции ipnat ipnat_rules="/etc/ipnat.rules" # Определение файла правил для ipnat IPF ipf Команда &man.ipf.8; используется для загрузки файла с правилами. Обычно создается файл, содержащий подготовленный набор правил, который полностью замещает набор, используемый на данный момент: &prompt.root; ipf -Fa -f /etc/ipf.rules означает сброс всех внутренних таблиц правил. указывает файл с правилами, который необходимо загрузить. Это дает вам возможность отредактировать файл с правилами, запустить вышеприведенную команду IPF, тем самым обновить набор правил работающего межсетевого экрана без перезагрузки системы. Для обновления правил такой подход очень удобен, поскольку команду можно выполнять столько раз, сколько нужно. На странице справочной системы &man.ipf.8; находится подробная информация по всем флагам этой команды. Набор правил для команды &man.ipf.8; должен быть в виде стандартного текстового файла. Правила, написанные в виде скрипта с символами подстановки, не принимаются. Есть способ составления правил IPF, использующих символы подстановки. Обратитесь к . IPFSTAT ipfstat IPFILTER статистика По умолчанию &man.ipfstat.8; получает и отображает суммарную статистику, полученную в результате применения действующих правил к пакетам, проходящим через межсетевой экран с момента его последнего запуска, или с того момента, когда статистика была последний раз обнулена командой ipf -Z. Детальная информация приводится на странице справочника &man.ipfstat.8;. Вывод команды &man.ipfstat.8; по умолчанию выглядит примерно так: input packets: blocked 99286 passed 1255609 nomatch 14686 counted 0 output packets: blocked 4200 passed 1284345 nomatch 14687 counted 0 input packets logged: blocked 99286 passed 0 output packets logged: blocked 0 passed 0 packets logged: input 0 output 0 log failures: input 3898 output 0 fragment state(in): kept 0 lost 0 fragment state(out): kept 0 lost 0 packet state(in): kept 169364 lost 0 packet state(out): kept 431395 lost 0 ICMP replies: 0 TCP RSTs sent: 0 Result cache hits(in): 1215208 (out): 1098963 IN Pullups succeeded: 2 failed: 0 OUT Pullups succeeded: 0 failed: 0 Fastroute successes: 0 failures: 0 TCP cksum fails(in): 0 (out): 0 Packet log flags set: (0) При задании флага или соответственно для входящих или исходящих пакетов, команда извлечет и отобразит соответствующий список правил, установленных и используемых на данный момент. ipfstat -in отображает правила, применяемые к входящим пакетам, вместе с номерами этих правил. ipfstat -on отображает правила, применяемые к исходящим пакетам, вместе с номерами этих правил. Вывод команды будет выглядеть примерно так: @1 pass out on xl0 from any to any @2 block out on dc0 from any to any @3 pass out quick on dc0 proto tcp/udp from any to any keep state ipfstat -ih отображает правила, применяемые к входящим пакетам, со счетчиком количества совпадений для каждого правила. ipfstat -oh отображает правила, применяемые к исходящим пакетам, со счетчиком количества совпадений для каждого правила. Вывод команды будет выглядеть примерно так: 2451423 pass out on xl0 from any to any 354727 block out on dc0 from any to any 430918 pass out quick on dc0 proto tcp/udp from any to any keep state Одна из наиболее важных функций команды ipfstat активируется флагом , правила отображаются подобно тому, как &man.top.1; показывает таблицу запущенных процессов &os;. Когда межсетевой экран подвергается атаке, эта функция позволяет обнаружить соответствующие пакеты. Дополнительные флаги дают возможность выбирать IP адрес назначения или источника, порт или протокол, которые будут отслеживаться в реальном времени. Подробная информация приведена на странице &man.ipfstat.8;. IPMON ipmon IPFILTER logging Для того, чтобы стало возможно использование команды ipmon, необходимо включить параметр ядра IPFILTER_LOG. Эта команда может использоваться в двух различных режимах. В основном режиме, который используется по умолчанию, она используется без флага . В режиме даемона создается непрерывный протокол, и возможен просмотр предыдущих событий. В этом режиме IPFILTER работает в &os;. Поскольку в &os; встроена функция ротации файлов протокола, лучше использовать &man.syslogd.8;, чем используемый по умолчанию вывод в обычный файл. В rc.conf по умолчанию ipmon_flags имеет значение : ipmon_flags="-Ds" # D = start as daemon # s = log to syslog # v = log tcp window, ack, seq # n = map IP & port to names Описывать преимущества протоколирования излишне. Например, оно дает возможность отложенного просмотра информации об отброшенных пакетах, откуда они пришли и куда направлялись. Эта информация существенно помогает при отслеживании атак. Даже с включенным протоколированием, IPF не ведет протокол для каждого правила. Администратор межсетевого экран должен решить, по каким правилам набора нужно вести протокол и добавить ключевое слово log к этим правилам. Обычно протоколируются только правила, отбрасывающие пакеты. Включение в набор последнего правила, запрещающего прохождение пакетов, в сочетании с ключевым словом log является довольно распространённой практикой. Так вы можете увидеть все пакеты, не попадающие ни под одно правило набора. Протоколирование IPMON Для разделения собираемых данных syslogd использует свой собственный специальный метод. Он использует группировку по категории (facility) и уровню (level). IPMON в режиме использует local0 в качестве имени категории. Для дальнейшего разделения протоколируемых данных, если такое необходимо, могут быть использованы следующие уровни: LOG_INFO - packets logged using the "log" keyword as the action rather than pass or block. LOG_NOTICE - packets logged which are also passed LOG_WARNING - packets logged which are also blocked LOG_ERR - packets which have been logged and which can be considered short Для указания IPFILTER протоколировать все данные в /var/log/ipfilter.log, создайте этот файл заранее, выполнив следующую команду: &prompt.root; touch /var/log/ipfilter.log Функционирование &man.syslogd.8; управляется настройками в файле /etc/syslog.conf. Файл syslog.conf позволяет достаточно гибко настроить обработку системных сообщений, выдаваемых программами, такими как IPF. Добавьте в /etc/syslog.conf следующую запись: local0.* /var/log/ipfilter.log local0.* означает запись всех протоколируемых сообщений в указанный файл. Для применения внесенных в /etc/syslog.conf изменений вы можете перезагрузиться или заставить &man.syslogd.8; перечитать /etc/syslog.conf, выполнив команду /etc/rc.d/syslogd reload. Не забудьте отредактировать /etc/newsyslog.conf для ротации только что созданного лог файла. Формат протоколируемых сообщений Сообщения, генерируемые ipmon, состоят из полей данных, разделенных пробелами. Поля, общие для всех сообщений: Дата получения пакета. Время получения пакета. Формат времени HH:MM:SS.F для часов, минут, секунд и долей секунд (последнее поле может состоять из нескольких цифр). Имя интерфейса, через который прошел пакет, например dc0. Группа и номер правила, например @0:17. Эти сообщения могут быть просмотрены командой ipfstat -in. Действие: p для пропущенных, b для заблокированных, S для пакетов с неполным заголовком (short packet), n для пакетов, не соответствующих какому-либо правилу, L для соответствующих правилу протоколирования. Порядок следования по флагам: S, p, b, n, L. Знаки P или B в верхнем регистре означают, что пакет был протоколирован в соответствии с общими настройками, а не каким-то конкретным правилом. Адреса. Всего три поля: адрес и порт источника (разделенные запятой), ->, адрес и порт назначения. 209.53.17.22,80 -> 198.73.220.17,1722. PR, с последующим именем или номером протокола, например PR tcp. len, с последующей длиной заголовка и общей длиной пакета, например len 20 40. Для TCP пакетов добавляется дополнительное поле, начинающееся с дефиса, за которым следуют буквы, соответствующие установленным флагам. На странице справочника &man.ipf.5; находится список букв и флагов. Для пакетов ICMP, в конце находятся два поля, одно всегда ICMP, а второе содержит тип и подтип ICMP сообщения (message и sub-message), разделенные символом косой черты, например ICMP 3/3 для сообщения port unreachable. Создание набора правил с использованием символьной подстановки Некоторые опытные пользователи IPF создают файл правил, поддерживающий использование символьной подстановки. Основное преимущество использования такого подхода заключается в возможности изменения значения, присваиваемого символьному имени, в результате чего во всех правилах, содержащих эту символьную подстановку, будет использоваться новое значение. В начале скрипта вы можете поместить часто используемые переменные, а затем использовать их сразу в нескольких правилах. Ниже дан пример такого использования. Синтаксис скрипта совместим с &man.sh.1;, &man.csh.1;, и &man.tcsh.1;. Символьная подстановка предваряется знаком доллара: $. Для присвоения значения символьным переменным знак $ не используется. Присваиваемое символической переменной значение должно быть заключено в двойные кавычки ("). Начните файл правил примерно так: ############# Start of IPF rules script ######################## oif="dc0" # name of the outbound interface odns="192.0.2.11" # ISP's DNS server IP address myip="192.0.2.7" # my static IP address from ISP ks="keep state" fks="flags S keep state" # You can choose between building /etc/ipf.rules file # from this script or running this script "as is". # # Uncomment only one line and comment out another. # # 1) This can be used for building /etc/ipf.rules: #cat > /etc/ipf.rules << EOF # # 2) This can be used to run script "as is": /sbin/ipf -Fa -f - << EOF # Allow out access to my ISP's Domain name server. pass out quick on $oif proto tcp from any to $odns port = 53 $fks pass out quick on $oif proto udp from any to $odns port = 53 $ks # Allow out non-secure standard www function pass out quick on $oif proto tcp from $myip to any port = 80 $fks # Allow out secure www function https over TLS SSL pass out quick on $oif proto tcp from $myip to any port = 443 $fks EOF ################## End of IPF rules script ######################## Это все, что требовалось сделать. В данном примере сами правила не важны; важно то, как используется символьная подстановка. Если вышеприведенный пример помещен в файл /etc/ipf.rules.script, то набор правил можно перезагрузить, введя следующую команду: &prompt.root; sh /etc/ipf.rules.script С использованием в правилах символьной подстановки связана одна проблема: IPF не понимает символьную подстановку и не может обработать такой скрипт непосредственно. Скрипт может использоваться одним из следующих двух способов: Уберите комментарий перед строкой, начинающейся с cat, и закомментируйте строку, начинающуюся с /sbin/ipf. Поместите строку ipfilter_enable="YES" в файл /etc/rc.conf как обычно, и запускайте скрипт после каждого его обновления для создания или обновления файла /etc/ipf.rules. Отключите IPFILTER в стартовых скриптах системы, поместив строку ipfilter_enable="NO" (это значение по умолчанию) в файл /etc/rc.conf. Поместите скрипт, подобный нижеприведенному, в каталог /usr/local/etc/rc.d/. У него должно быть однозначно говорящее о его назначении имя, например ipf.loadrules.sh. Расширение .sh обязательно. #!/bin/sh sh /etc/ipf.rules.script Права, установленные на этот файл, должны разрешать чтение, запись и выполнение владельцу root. &prompt.root; chmod 700 /usr/local/etc/rc.d/ipf.loadrules.sh Теперь, правила IPF будут загружаться при загрузке системы. Наборы правил IPF Набор правил ipf это группа правил, составленных для пропускания или блокирования пакетов на основе их содержимого. Двусторонний обмен пакетами между хостами составляет сессию. Межсетевой экран обрабатывает как входящие из Интернет пакеты, так и исходящие пакеты, которые сгенерированы самой системой в ответ на входящий трафик. Для каждой службы TCP/IP (например, telnet, www, mail, и т.п.) назначен протокол и номер привилегированного (прослушиваемого) порта. Пакеты, предназначенные для определенного сервиса, порождаются с некоторым исходящим адресом и портом из непривилегированного диапазона и направляются на определенный адрес и определенный порт назначения. Все упомянутые параметры (номера портов и адреса) могут использоваться как критерии выбора в правилах, пропускающих или блокирующих доступ к службам TCP/IP. IPFILTER порядок обработки правил IPF был первоначально написан с использованием логики последнее совпадающее правило побеждает и только с правилами без сохранения состояния. Со временем в IPF был включен параметр quick и параметр сохранения состояния keep state, что существенно улучшило логику обработки правил. Инструкции, помещенные в эту главу, созданы с использованием параметров quick и keep state. Это основа для создания набора правил включающего межсетевого экрана. При работе с правилами межсетевого экрана, будьте очень осторожны. Некоторые конфигурации могут заблокировать вам доступ к серверу. В целях предосторожности, первоначальную настройку межсетевого экрана вы можете выполнить с локальной консоли, а не через удаленное подключение, такое как ssh. * IPFW Этот раздел не переведен. diff --git a/ru_RU.KOI8-R/books/handbook/install/chapter.sgml b/ru_RU.KOI8-R/books/handbook/install/chapter.sgml index 7fd2664261..bfa0faae5e 100644 --- a/ru_RU.KOI8-R/books/handbook/install/chapter.sgml +++ b/ru_RU.KOI8-R/books/handbook/install/chapter.sgml @@ -1,5020 +1,5007 @@ Jim Mock Реструктурировал, исправил и частично переписал Randy Pratt Обзор sysinstall, скриншоты и общее руководство Денис Пеплин Перевод на русский язык: Установка FreeBSD Краткий обзор установка FreeBSD поставляется простой в использовании текстовой программой установки sysinstall. Это основная программа установки FreeBSD, хотя поставщики могут предлагать свои программы. В этой главе описывается использование sysinstall для установки FreeBSD. Прочтя эту главу, вы узнаете: Как создать дискеты для установки FreeBSD. Как FreeBSD видит и делит на разделы жесткие диски. Как запустить sysinstall. Вопросы, которые sysinstall задаст вам, что имеется ввиду, и как ответить на эти вопросы. Перед прочтением этой главы вам потребуется: Прочитать информацию о поддерживаемом оборудовании, поставляемую с устанавливаемой версией FreeBSD, и убедиться, что ваше оборудование поддерживается. Как правило, эти инструкции по установке написаны для &i386; (PC совместимых) компьютеров. Когда это возможно, приводятся инструкции, специфичные для других платформ. Хотя это руководство поддерживается в актуальном состоянии настолько, насколько это возможно, вы можете обнаружить небольшие различия между программой установки и тем, что показано здесь. Предполагается, что вы будете использовать эту главу в качестве общего руководства, а не как пошаговую инструкцию по установке. Аппаратные требования Минимальная конфигурация Минимальная конфигурация для установки &os; зависит от версии &os; и аппаратной архитектуры. Сведения о минимальной конфигурации доступны в заметках по установке со страницы Информации о релизе веб сайта &os;. Обобщение этой информации дается в последующих разделах. В зависимости от метода, выбранного для установки &os;, вам может потребоваться поддерживаемый дисковод или привод CDROM, а в некоторых случаях и сетевой адаптер. Эта ситуация будет описана в . Архитектуры &os;/&arch.i386; и &os;/&arch.pc98; Для версий &os;/&arch.i386; и &os;/&arch.pc98; требуется 486 процессор или выше, а также как минимум 24 MB памяти. Вам потребуется как минимум 150 MB свободного места на диске для самой минимальной установки. Для старых конфигураций, как правило, больший объем памяти и больший объем диска более важен, чем более быстрый процессор. - - &os;/&arch.alpha; - - Alpha - - Начиная с версии &os; 7.0 поддержка архитектуры Alpha - была удалена. Релизы &os; 6.X — последние, - поддерживающие данную архитектуру. - За более детальной информацией обратитесь к странице Release - Information сайта &os;. - - &os;/&arch.amd64; Существует два класса процессоров, на которых может работать &os;/&arch.amd64;. К первому принадлежат процессоры AMD64, включая &amd.athlon;64, &amd.athlon;64-FX, &amd.opteron; и более новые. Ко второму классу принадлежат процессоры архитектуры &intel; EM64T. Среди них можно назвать семейства &intel; &core; 2 Duo, Quad и Extreme, а также &intel; &xeon; 3000, 5000 и 7000 серии. Если ваша система основана на nVidia nForce3 Pro-150, необходимо отключить IO APIC в BIOS. Если для этого нет необходимой опции, отключите APIC в операционной системе. В чипсете Pro-150 содержатся ошибки, для которых пока не существует исправлений. &os;/&arch.sparc64; Для установки &os;/&arch.sparc64;, вам потребуется поддерживаемая платформа (обратитесь к ). Для &os;/&arch.sparc64; потребуется отдельный диск. В настоящее время диск невозможно совместно использовать с другой операционной системой. Поддерживаемое оборудование Список поддерживаемого оборудования поставляется с каждым релизом в &os; в информации о релизе. Этот документ обычно находится в файле HARDWARE.TXT, в корневом каталоге CDROM или FTP дистрибутива, или меню документации sysinstall. Для данной архитектуры в нем перечислены аппаратные устройства, поддерживаемые данным релизом &os;. Копии списков поддерживаемого оборудования для различных релизов и архитектур также можно просмотреть на странице Информации о релизе веб сайта &os;. Перед установкой Соберите информацию о компьютере Перед установкой FreeBSD попытайтесь собрать информацию об устройствах компьютера. Во время установки FreeBSD покажет информацию об устройствах (жестких дисках, сетевых картах, CDROM и т.д.) с номером модели и производителем. FreeBSD также попытается определить правильную конфигурацию для этих устройств, включая информацию об IRQ и портах ввода-вывода. Из-за возможных проблем с оборудованием этот процесс не всегда завершается успешно, и возможно вам придется исправлять определенную FreeBSD конфигурацию. Если у вас уже есть установленная операционная система, например &windows; или Linux, неплохо будет использовать ее возможности для просмотра настроек оборудования. Если вы не уверены, какие настройки карты расширения использовать, можете найти их на самой карте. Часто используемые номера прерываний 3, 5 и 7, порты ввода- вывода обычно пишутся в шестнадцатеричном виде, например 0x330. Мы рекомендуем распечатать эту информацию перед установкой FreeBSD. Вам может помочь использование таблицы вроде этой: Пример сведений об оборудовании Название устройства IRQ Порт ввода-вывода Примечания Первый жесткий диск нет нет 40 GB, Seagate, первый IDE master CDROM нет нет Первый IDE slave Второй жесткий диск нет нет 20 GB, IBM, второй IDE master Первый IDE контроллер 14 0x1f0 Сетевая карта нет нет &intel; 10/100 Модем нет нет &tm.3com; 56K факс-модем, COM1
После сбора информации о компонентах компьютера, вы можете проверить их соответствие аппаратным требованиям устанавливаемого релиза &os;.
Сделайте резервное копирование данных Если компьютер, на который вы устанавливаете FreeBSD, содержит важные данные, убедитесь в наличии резервных копий и проверьте их сохранность перед установкой FreeBSD. Во время установки FreeBSD запросит подтверждение перед тем, как записать данные на диск, но, если процесс запущен, изменения нельзя отменить. Решите куда установить FreeBSD Если вы хотите, чтобы FreeBSD использовала весь жесткий диск, не о чем беспокоиться — можете пропустить этот раздел. Однако, если нужно совмещать FreeBSD с другими операционными системами, необходимо иметь представление как данные размещаются на диске и как это касается вас. Разделы диска для &os;/&arch.i386; Диск PC может быть поделен на отдельные части. Эти части называют разделами. Поскольку в &os; также есть разделы, терминология становится запутанной, и поэтому эти части дисков называются дисковыми слайсами, или просто слайсами в &os;. Например, утилита FreeBSD fdisk, имеющая дело с дисковыми разделами PC, обращается со слайсами а не с разделами. Первоначально PC поддерживал только четыре раздела на диск. Эти разделы называются главными разделами. Чтобы обойти это ограничение и дать возможность создавать более чем четыре раздела, был создан новый тип раздела, расширенный раздел. Диск может содержать только один расширенный раздел. Специальные разделы, называемые логическими разделами, могут быть созданы внутри расширенного раздела. Каждый раздел имеет ID раздела — номер, который используется для определения типа данных на разделе. FreeBSD использует ID раздела 165. Как правило, каждая операционная система, которую вы используете, определяет разделы своим способом. Например, DOS и ее потомки, такие как &windows;, присваивают каждому главному и логическому разделу букву диска, начиная с C:. FreeBSD нужно устанавливать в главный раздел. FreeBSD может хранить все свои данные, включая создаваемые вами файлы, на этом одном разделе. Тем не менее, если дисков много, вы можете создать разделы FreeBSD на всех дисках или на некоторых из них. При установке FreeBSD должен быть доступен по крайней мере один раздел. Это может быть чистый, подготовленный для установки раздел, или раздел с данными, которые больше не нужны. Если все разделы на диске уже используются, вы должны освободить один из них для FreeBSD, используя программы, поставляемые с имеющейся операционной системой (например, fdisk для DOS или &windows;). Если есть резервный раздел, используйте его. Однако, возможно сначала придется ужать один или несколько существующих разделов. FreeBSD для установки нужен диск не менее 100 MB. Однако, это оченьминимальная установка, при которой не останется места для ваших личных файлов. Более реальный объем — 250 MB без графической оболочки, и более 350 MB с графической оболочкой. Если вы собираетесь устанавливать большое количество дополнительного ПО, понадобится еще больше дискового пространства. Вы можете использовать коммерческие программы, такие как &partitionmagic;, или свободно распространяемые, такие как GParted, для изменения размера разделов и освобождения места под &os;. Как &partitionmagic;, так и GParted способны работать с NTFS. Утилита GParted доступна на некоторых Live CD дистрибутивах Linux, например: SystemRescueCD. Пользователи неоднократно сталкивались с проблемами при изменении размеров разделов, содержащих µsoft; Vista. Поэтому рекомендуется держать под рукой инсталляционный диск с µsoft; Vista во время выполнения подобных операций. Как и при любых других задачах обслуживания жестких дисков, настоятельно рекомендуется заранее сделать резервные копии данных. Неправильное использование этих утилит может привести к уничтожению данных на диске. Удостоверьтесь в наличии свежих и исправных резервных копий данных перед их использованием. Использование существующего раздела без изменения Представьте что в компьютере один 4 GB диск, на котором уже установлена &windows;, и диск разбит на два логических диска C: и D:, каждый по 2 GB. 1 GB данных на C:, и 0.5 GB данных на D:. Это означает, что диск состоит из двух разделов, по одному на каждую букву. Вы можете скопировать все данные с D: на C:, это освободит второй раздел для FreeBSD. Сжатие существующих разделов Представьте, что в компьютере один 4 GB диск, на котором уже установлена &windows;. При установке &windows; вы создали один большой раздел, получив при этом диск C: размером 4 GB. Вы используете 1.5 GB, и хотите выделить 2 GB для FreeBSD. Для установки FreeBSD нужно выбрать: Сделать резервную копию &windows;, затем переустановить &windows;, выделив 2 GB под ее раздел. Использовать одну из утилит, таких как &partitionmagic;, описанную выше, для сжатия раздела &windows;. Соберите информацию о конфигурации сети Если вы хотите подключиться к сети в процессе установки FreeBSD (например, при установке с FTP или NFS сервера), нужно знать конфигурацию сети. Вам будет предложено ввести эту информацию, чтобы FreeBSD смогла подключиться к сети для продолжения установки. Подключение к сети Ethernet, или через кабельный/DSL модем Если вы подключаетесь к сети Ethernet, или соединение с интернет подключено к Ethernet через кабельный или DSL модем, понадобится следующая информация: IP адрес IP адрес шлюза по умолчанию Имя хоста IP адрес DNS сервера Маска подсети Если у вас нет этой информации, спросите системного администратора или провайдера интернет. Они могут сказать, что данные присваиваются автоматически, с использованием DHCP. Если это так, запомните это. Подсоединение с помощью модема Если вы дозваниваетесь до провайдера с помощью обычного модема, вы все же сможете установить FreeBSD через интернет, но это займет очень много времени. Вам нужно знать: Номер телефона провайдера COM порт, к которому подключен модем Имя пользователя и пароль учетной записи для доступа в интернет Проверьте сведения об обнаруженных ошибках FreeBSD Хотя проект FreeBSD борется за то, чтобы каждый релиз FreeBSD был настолько стабильным, насколько это возможно, ошибки порой вкрадываются в процесс разработки. В очень редких случаях эти ошибки влияют на процесс установки. Как только эти проблемы обнаруживаются и исправляются, они попадают в сообщения об ошибках FreeBSD, находящиеся на сайте FreeBSD. Вы можете проверить сообщения об ошибках перед установкой, чтобы убедиться, что не существует проблем, о которых стоит беспокоиться. Информация о релизах, включая сообщения об ошибках каждого релиза, находится странице информации о релизах сайта FreeBSD. Получение установочных файлов FreeBSD Программа установки FreeBSD может установить FreeBSD из файлов, расположенных в одном из следующих мест: Локальный диск CDROM или DVD USB-накопитель Раздел DOS на вашем компьютере Лента SCSI или QIC Гибкие диски Сеть FTP сервер (через файрволл или HTTP прокси, если потребуется) NFS сервер Соединение через параллельный или последовательный порт Если вы купили FreeBSD на CD или DVD, у вас уже есть все, что нужно, переходите к следующему разделу (). Если у вас нет установочных файлов FreeBSD, перейдите к , который описывает, как подготовиться к установке FreeBSD любым указанным выше способом. После прочтения этого раздела, вернитесь сюда и прочтите . Подготовка загрузочных дисков Процесс установки FreeBSD начинается с загрузки в ваш компьютер программы установки FreeBSD — эта программа не запускается из других операционных систем. Компьютер обычно загружает операционную систему, установленную на жестком диске, но также может быть настроен для использования загрузочной дискеты. Большинство современных компьютеров могут также загрузиться с компакт-диска в приводе CDROM или с USB-накопителя. Если у вас есть FreeBSD на CDROM или DVD (купленный или записанный самостоятельно), и компьютер позволяет загрузку с CDROM или DVD (обычно этот пункт в BIOS называется Boot Order или что-то вроде), можете пропустить этот раздел. Образы FreeBSD CDROM и DVD являются загрузочными и могут быть использованы для установки FreeBSD без какой-либо специальной подготовки. Для создания загрузочного USB-диска выполните следующие шаги: Получение образов для USB-накопителя Загрузочный образ для USB-накопителя можно найти в каталоге ISO-IMAGES/ по адресу ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/arch/ISO-IMAGES/version/&os;-&rel.current;-RELEASE-arch-memstick.img. Замените arch и version именем архитектуры и номером версии операционной системы, которую вы планируете установить. Например, образы USB-накопителя для &os;/&arch.i386; &rel.current;-RELEASE находятся в . Название файла образа заканчивается на .img. Каталог ISO-IMAGES/ содержит набор образов, среди которых вам необходимо выбрать один. Выбор зависит от версии устанавливаемой &os; и, в некоторых случаях, от архитектуры оборудования, на которое будет выполняться установка. Перед продолжением сделайте резервную копию данных, находящихся на вашем USB-накопителе, так как последующие действия сотрут все старые данные. Подготовка USB-накопителя В данном примере подразумевается, что устройство /dev/da0 является нашим целевым устройством, с которого мы будем производить загрузку. Будьте предельно внимательны, так как, указав неверное устройство, вы уничтожите существующие на нём данные. Измените значение переменной sysctl kern.geom.debugflags так, чтобы стала возможной запись MBR на целевой накопитель. &prompt.root; sysctl kern.geom.debugflags=16 Запись файла-образа на USB-накопитель Файл .img не является обыкновенным файлом, копируемым на накопитель. Это образ содержимого диска. Это значит, что вы не можете просто скопировать файлы с диска на диск. Вместо копирования вы должны использовать &man.dd.1; для записи образа непосредственно на накопитель: &prompt.root; dd if=&os;-&rel.current;-RELEASE-&arch.i386;-memstick.img of=/dev/da0 bs=64k Для создания загрузочных дискет сделайте следующее: Получение образов загрузочных дискет Пожалуйста, отметьте, что начиная с версии &os; 8.0 образов загрузочных дискет более не существует. Вместо этого следует воспользоваться процедурами установки &os; с USB-накопителя или с CDROM, или с DVD. Загрузочные дискеты есть на установочном диске в каталоге floppies/, и могут быть также закачаны из каталога floppies, ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/arch/version-RELEASE/floppies/. Замените arch и version архитектурой компьютера и номером версии, которую вы хотите установить, соответственно. Например, загрузочные дискеты &os;/&arch.i386; &rel2.current;-RELEASE для &i386; находятся в . Расширение файла образа дискеты — .flp. Каталог floppies/ содержит множество разных образов, ваш выбор будет зависеть от устанавливаемой версии FreeBSD и, в некоторых случаях, от конфигурации компьютера. В большинстве случаев потребуются четыре дискеты: boot.flp, kern1.flp, kern2.flp и kern3.flp. Обратитесь к файлу README.TXT в том же каталоге за свежей информацией об этих образах дискет. FTP клиент должен использовать бинарный режим для загрузки образов дискет. Некоторые Web-браузеры используют текстовый (ASCII) режим, который точно не позволит загрузиться с этих дискет. Подготовка дискет Необходимо подготовить по одной дискете на каждый загруженный образ. Эти дискеты должны быть без дефектов. Лучший способ проверить это — отформатировать дискеты самостоятельно. Не доверяйте заводскому форматированию дискет. Утилита форматирования в &windows; не сообщит о наличии плохих секторов, она просто пометит их как плохие и проигнорирует. Советуем использовать новые дискеты если вы выбрали этот способ установки. Если при попытке установки FreeBSD программа установки рушится, зависает, или делает что-то не так, сразу проверьте дискеты. Попробуйте записать образы на новые дискеты и попытайтесь еще раз. Запись образов на дискеты Файлы с расширением .flp это не обычные файлы, которые можно записать на дискету. Это образы всего содержимого дискеты. Это означает, что вы не можете просто скопировать их с одной дискеты на другую. Вместо этого, нужно использовать специальные утилиты для записи образов на диск. DOS Если вы записываете дискеты на компьютере под &ms-dos;/&windows;, используйте утилиту fdimage. Если вы используете образы с CDROM, и буква вашего CDROM E:, запустите ее так: E:\> tools\fdimage floppies\boot.flp A: Повторите эту команду для каждого файла .flp, вставляя новую дискету каждый раз, пометьте каждую дискету именем файла, который вы скопировали на него. Измените команду если потребуется, в зависимости от места, куда вы поместили файлы .flp. Если у вас нет CDROM, fdimage может быть загружена из каталога tools FTP сервера FreeBSD. Если вы записываете дискеты под &unix; (например, под другой системой FreeBSD), используйте утилиту &man.dd.1; для записи образов непосредственно на дискеты. Под FreeBSD запустите: &prompt.root; dd if=boot.flp of=/dev/fd0 Под FreeBSD, /dev/fd0 означает первый гибкий диск (диск A:). /dev/fd1 будет диском B:, и так далее. Другие &unix; системы могут по-другому именовать устройства гибких дисков, вам возможно понадобится прочитать документацию по соответствующей системе. Теперь вы готовы к установке FreeBSD.
Начало установки Как правило, программа установки не будет производить никаких изменений на дисках, пока не выдаст следующее сообщение: Last Chance: Are you SURE you want continue the installation? If you're running this on a disk with data you wish to save then WE STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding! We can take no responsibility for lost disk contents! Установка может быть прервана в любой момент до этого предупреждения без каких-либо изменений на жестком диске. Если вы считаете, что что-то настроили неправильно, можете просто выключить компьютер без риска что-либо повредить. Загрузка Загрузка &i386; Компьютер выключен. Включите компьютер. После включения он должен показать способ входа в меню установки BIOS, как правило это клавиши F2, F10, Del, или Alt S . Используете те клавиши, которые показаны на экране. В некоторых случаях компьютер может показывать картинку после запуска. Как правило, нажатие Esc уберет картинку и позволит вам увидеть необходимую информацию. Найдите установки системы, указывающие ей с какого устройства загружаться. Обычно они обозначаются как Boot Order, и там как правило отображен список устройств, таких как Floppy, CDROM, First Hard Disk, и так далее. Если вы загружаетесь с CDROM, убедитесь, что он выбран. Если вы загружаетесь с USB-носителя или с дискеты, убедитесь, что выбрано соответствующее устройство. Если вы не уверены, посмотрите руководство к компьютеру и/или к его материнской плате. Сделайте изменения, затем сохраните их и выйдите. Компьютер должен перезагрузиться. Если вы подготовили загрузочный USB-носитель, как описано в , вставьте его в USB порт перед включением компьютера. Если вы загружаетесь с CDROM, потребуется сначала включить компьютер и вставить компакт-диск, как только это станет возможно. Для &os; версий 7.3 и более ранних существуют образы загрузочных дискет. Подготовка и использование дискет описаны в . Для загрузки компьютера первой в дисковод необходимо вставить дискету, содержащую образ boot.flp. Если компьютер запускается как обычно, и загружает существующую операционную систему, возможны следующие причины: Диск был вставлен недостаточно рано в процессе загрузки. Оставьте его внутри и перегрузите компьютер. Установки BIOS, измененные ранее, действуют неправильно. Надо изменять их, пока они не заработают. BIOS вашего компьютера не поддерживает загрузку с выбранного типа носителя. FreeBSD начнет загрузку. Если загрузка происходит с CDROM, вы увидите что-то вроде этого (информация о версии удалена): Booting from CD-Rom... 645MB medium detected CD Loader 1.2 Building the boot loader arguments Looking up /BOOT/LOADER... Found Relocating the loader and the BTX Starting the BTX loader BTX loader 1.00 BTX version is 1.02 Consoles: internal video/keyboard BIOS CD is cd0 BIOS drive C: is disk0 BIOS drive D: is disk1 BIOS 636kB/261056kB available memory FreeBSD/i386 bootstrap loader, Revision 1.1 Loading /boot/defaults/loader.conf /boot/kernel/kernel text=0x64daa0 data=0xa4e80+0xa9e40 syms=[0x4+0x6cac0+0x4+0x88e9d] \ Если происходит загрузка с дискеты, вы увидите что-то вроде этого (информация о версии удалена): Booting from Floppy... Uncompressing ... done BTX loader 1.00 BTX version is 1.01 Console: internal video/keyboard BIOS drive A: is disk0 BIOS drive C: is disk1 BIOS 639kB/261120kB available memory FreeBSD/i386 bootstrap loader, Revision 1.1 Loading /boot/defaults/loader.conf /kernel text=0x277391 data=0x3268c+0x332a8 | Insert disk labelled "Kernel floppy 1" and press any key... Следуя инструкциям, уберите дискету с boot.flp, вставьте дискету с kern1.flp и нажмите Enter. Загрузитесь с первой дискеты; последовательно вставляйте остальные диски при появлении соответствующего приглашения. Идет ли загрузка с CDROM, или с USB-носителя, или с дискеты в процессе загрузки появится меню загрузчика &os;:
&os; Boot Loader Menu
Подождите десять секунд или нажмите Enter.
Загрузка &sparc64; Большинство систем &sparc64; настроены на автоматическую загрузку с жесткого диска. Для того, чтобы установить &os;, вам потребуется выполнить загрузку по сети или с компакт-диска, что в свою очередь требует получения доступа к PROM (OpenFirmware). Чтобы получить доступ к PROM, перезагрузите систему и дождитесь появления сообщений загрузчика. Последние зависят от модели оборудования, но, в общем, выглядят подобно следующим: Sun Blade 100 (UltraSPARC-IIe), Keyboard Present Copyright 1998-2001 Sun Microsystems, Inc. All rights reserved. OpenBoot 4.2, 128 MB memory installed, Serial #51090132. Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4. Если на данном этапе ваша система продолжает загружаться с диска, то для доступа к PROM вам потребуется нажать на клавиатуре сочетания клавиш L1A или StopA, или же — послать BREAK на последовательной консоли (например, набрав ~# в &man.tip.1; или &man.cu.1;). Приглашение PROM выглядит подобно следующему: ok ok {0} Однопроцессорные системы выдают такое приглашение. Приглашение, используемое многопроцессорными системами: цифра обозначает номер активного процессора. На этой стадии необходимо вставить CDROM в привод и набрать boot cdrom в приглашении PROM.
Просмотр результатов тестирования устройств Последние несколько сотен линий, отображенные на экране, сохраняются и могут быть просмотрены. Для просмотра буфера нажмите Scroll Lock. Это включит прокрутку экрана. Вы можете использовать клавиши навигации или PageUp и PageDown для просмотра результатов. Нажмите Scroll Lock еще раз для отключения прокрутки. Сделайте это сейчас для просмотра текста, ушедшего за экран, когда ядро закончило тестирование устройств. Вы увидите текст вроде , хотя в деталях он будет отличаться в зависимости от устройств, имеющихся в вашем компьютере.
Типичный вывод Device Probe avail memory = 253050880 (247120K bytes) Preloaded elf kernel "kernel" at 0xc0817000. Preloaded mfs_root "/mfsroot" at 0xc0817084. md0: Preloaded image </mfsroot> 4423680 bytes at 0xc03ddcd4 md1: Malloc disk Using $PIR table, 4 entries at 0xc00fde60 npx0: <math processor> on motherboard npx0: INT 16 interface pcib0: <Host to PCI bridge> on motherboard pci0: <PCI bus> on pcib0 pcib1:<VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge> at device 1.0 on pci0 pci1: <PCI bus> on pcib1 pci1: <Matrox MGA G200 AGP graphics accelerator> at 0.0 irq 11 isab0: <VIA 82C586 PCI-ISA bridge> at device 7.0 on pci0 isa0: <iSA bus> on isab0 atapci0: <VIA 82C586 ATA33 controller> port 0xe000-0xe00f at device 7.1 on pci0 ata0: at 0x1f0 irq 14 on atapci0 ata1: at 0x170 irq 15 on atapci0 uhci0 <VIA 83C572 USB controller> port 0xe400-0xe41f irq 10 at device 7.2 on pci 0 usb0: <VIA 83572 USB controller> on uhci0 usb0: USB revision 1.0 uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr1 uhub0: 2 ports with 2 removable, self powered pci0: <unknown card> (vendor=0x1106, dev=0x3040) at 7.3 dc0: <ADMtek AN985 10/100BaseTX> port 0xe800-0xe8ff mem 0xdb000000-0xeb0003ff ir q 11 at device 8.0 on pci0 dc0: Ethernet address: 00:04:5a:74:6b:b5 miibus0: <MII bus> on dc0 ukphy0: <Generic IEEE 802.3u media interface> on miibus0 ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto ed0: <NE2000 PCI Ethernet (RealTek 8029)> port 0xec00-0xec1f irq 9 at device 10. 0 on pci0 ed0 address 52:54:05:de:73:1b, type NE2000 (16 bit) isa0: too many dependant configs (8) isa0: unexpected small tag 14 orm0: <Option ROM> at iomem 0xc0000-0xc7fff on isa0 fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq2 on isa0 fdc0: FIFO enabled, 8 bytes threshold fd0: <1440-KB 3.5” drive> on fdc0 drive 0 atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0 atkbd0: <AT Keyboard> flags 0x1 irq1 on atkbdc0 kbd0 at atkbd0 psm0: <PS/2 Mouse> irq 12 on atkbdc0 psm0: model Generic PS/@ mouse, device ID 0 vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 sc0: <System console> at flags 0x100 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 sio0: type 16550A sio1 at port 0x2f8-0x2ff irq 3 on isa0 sio1: type 16550A ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 pppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/15 bytes threshold plip0: <PLIP network interface> on ppbus0 ad0: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata0-master UDMA33 acd0: CD-RW <LITE-ON LTR-1210B> at ata1-slave PIO4 Mounting root from ufs:/dev/md0c /stand/sysinstall running as init on vty0
Внимательно проверьте результаты тестирования устройств и убедитесь, что FreeBSD обнаружила все устройства, какие нужно. Если устройство не найдено, его не будет в списке. Собственное ядро позволяет добавлять поддержку устройств, отсутствующих в ядре GENERIC, например звуковых карт. В &os; 6.2 и более поздних, после проверки аппаратных устройств, появится . Используйте клавиши навигации для выбора страны, региона или группы. Затем нажмите Enter, произойдет выбор страны. Вы также можете выйти из программы sysinstall и начать все сначала.
Меню выбора страны
Если вы выбрали страну United States, то будет использована стандартная американская раскладка клавиатуры, если же была выбрана другая страна, то отобразится следующее меню. Используя клавиши навигации, выберите необходимую раскладку и нажмите Enter.
Меню выбора раскладки клавиатуры
Выбор Sysinstall Exit
Используйте клавиши навигации для выбора Exit Install из главного меню. Отобразится сообщение: User Confirmation Requested Are you sure you wish to exit? The system will reboot [ Yes ] No Программа установки запустится опять, если было выбрано &gui.yes; и компакт-диск остался в устройстве. Если вы загружаетесь с дискет, необходимо будет извлечь дискету с boot.flp перед перезагрузкой.
Введение в Sysinstall Утилита sysinstall это программа установки, предоставляемая проектом FreeBSD. Это консольное приложение, разделенное на несколько меню и экранов, которые вы можете использовать для настройки и управления процессом установки. Меню sysinstall управляется клавишами навигации, Enter, Tab, пробелом, и другими. Подробное описание клавиш и их функций содержится в информации по использованию sysinstall. Для просмотра этой информации убедитесь, что выбраны пункт Usage и кнопка [Select], как показано на , затем нажмите Enter. Будут показаны инструкции по использованию меню. После просмотра инструкций, нажмите Enter для возврата в главное меню.
Выбор Usage в главном меню Sysinstall
Выбор меню документации (Doc) Из главного меню выберите клавишами навигации Doc и нажмите Enter.
Выбор меню документации
Будет отображено меню документации.
Меню документации Sysinstall
Рекомендуется прочитать предоставляемую документацию. Для просмотра документа выберите его с помощью клавиш навигации и нажмите Enter. После прочтения документа нажмите Enter для возврата в меню документации. Для возврата в главное меню выберите Exit с помощью клавиш навигации и нажмите Enter.
Выбор меню раскладки клавиатуры (Keymap) Для изменения раскладки клавиатуры выберите из меню с помощью клавиш навигации Keymap и нажмите Enter. Это потребуется только при использовании нестандартной или не-US клавиатуры.
Выбор меню раскладки клавиатуры
Различные раскладки клавиатуры могут быть выбраны из меню с использованием клавиш навигации, затем следует нажать Space. Нажатие Space еще раз приведет к отмене выбора. Когда необходимые раскладки будут выбраны, перейдите на &gui.ok; с помощью клавиш навигации и нажмите Enter. На экран выведена только часть списка. Нажав Tab, можно выбрать &gui.cancel;, вернуться к раскладке по умолчанию и перейти к главному меню.
Меню раскладки клавиатуры
Параметры установки (Options) Выберите пункт Options и нажмите Enter.
Выбор параметров установки
Параметры Sysinstall
Параметры по умолчанию обычно устраивают большинство пользователей и не нуждаются в изменении. Имя релиза зависит от устанавливаемой версии. Описание выбранного пункта будет появляться внизу экрана с синей подсветкой. Обратите внимание, что один из параметров — Use Defaults, означает сброс всех параметров к значениям по умолчанию. Нажатие F1 отобразит справку по различным параметрам. Нажатием Q можно перейти к главному меню.
Начало стандартной установки (Standart) Пункт Standard рекомендуется для новых пользователей &unix; или FreeBSD. Используйте клавиши навигации для выбора пункта Standard, а затем нажмите Enter для запуска установки.
Начало стандартной установки
Выделение дискового пространства Ваша первая задача — выделить дисковое пространство под FreeBSD и разметить его, чтобы sysinstall могла его подготовить. Для этого вам нужно знать, как FreeBSD ищет информацию на диске. Нумерация дисков в BIOS Перед установкой и настройкой FreeBSD нужно позаботиться кое о чем, особенно если жестких дисков несколько. DOS Microsoft Windows В PC, работающем под BIOS-зависимой операционной системой, такой как &ms-dos; или µsoft.windows;, BIOS может отходить от обычного порядка нумерации дисков. Это позволяет пользователю загружаться не только с так называемого primary master диска. Это особенно удобно для тех пользователей, кто обнаружил, что простейший и самый дешевый путь делать резервную копию системы — купить второй идентичный первому жесткий диск и регулярно делать копии первого диска на второй, используя Ghost или XCOPY. Затем, если первый диск выйдет из строя, будет заражен вирусом или поврежден из-за сбоя операционной системы, он может быть легко восстановлен путем логической перестановки дисков в BIOS. Это все равно что переключить кабели дисков, но без вскрытия корпуса. SCSI BIOS Более дорогостоящие системы со SCSI контроллерами зачастую имеют расширения BIOS, позволяющие сходным путем менять порядок до семи SCSI дисков. Пользователи, привыкшие пользоваться этими полезными функциями, могут быть удивлены, что во FreeBSD результаты не совпадают с ожидаемыми. FreeBSD не использует BIOS, и не знает о логическом отображении дисков в BIOS. Это может привести к очень сложным ситуациям, особенно когда диски имеют одинаковую геометрию и содержат точную копию данных друг друга. При использовании FreeBSD всегда восстанавливайте настройки BIOS к первоначальной нумерации перед установкой системы и оставляйте их в таком виде. Если вам понадобится переключить диски, сделайте это, но путем физического переконфигурирования, вскрыв корпус, переключив перемычки и кабели. Рассказ о необыкновенных приключениях файлов Билла и Фреда: Билл разобрал старый Wintel компьютер, чтобы сделать еще один компьютер под FreeBSD для Фреда. Билл установил один SCSI диск как нулевое устройство SCSI и поставил на него FreeBSD. Фред начал использовать систему, но через несколько дней обнаружил, что старый SCSI диск сообщает о множестве сбоев и сказал об этом Биллу. Еще через несколько дней Билл решил, что настало время решить проблему, и достал такой же SCSI диск из заначки в кладовке. Первая проверка поверхности показала, что диск работает нормально; Билл установил этот диск как четвертое устройство SCSI и скопировал образ диска с нулевого устройства на четвертое. Теперь, когда новый диск был установлен и отлично работал, Билл решил что неплохо бы начать использовать его, и с помощью функции SCSI BIOS поменял порядок дисков, чтобы система могла грузиться с четвертого устройства SCSI. FreeBSD загрузилась и работала без проблем. Фред поработал еще несколько дней, и скоро они с Биллом решили, что настало время для нового приключения — время обновить версию FreeBSD. Билл удалил нулевое устройство SCSI, потому что оно подглючивало, и установил на его место такой же диск из заначки. Затем Билл установил новую версию FreeBSD на новое нулевое устройство SCSI используя дискеты Фреда с интернет сервера FTP. Установка прошла отлично. Фред использовал новую версию FreeBSD несколько дней и удостоверился, что она вполне подходит для работы в инженерном отделе. Настало время скопировать все архивы со старого диска. Фред смонтировал четвертое устройство SCSI (последнюю копию старой версии FreeBSD) и обнаружил, что ни одного из его драгоценных файлов на четвертом устройстве SCSI нет. Куда делись данные? Когда Билл сделал копию с нулевого устройства SCSI на четвертое устройство SCSI, оно стало клоном. Когда Билл поменял настройки SCSI BIOS, чтобы загрузиться с четвертого устройства SCSI, он всего лишь обманул сам себя. FreeBSD все еще работала с нулевого устройства SCSI. Изменение этих настроек BIOS привело к загрузке части кода Boot и Loader с выбранного в BIOS диска, но после загрузки драйверов FreeBSD настройки BIOS были проигнорированы, и FreeBSD вернулась к нормальной нумерации. Как показано на пальцах, система продолжила работать с нулевым устройством SCSI, и все данные Фреда остались там, а не на четвертом устройстве SCSI. То, что система грузилась с четвертого устройства SCSI, было всего лишь обманутыми ожиданиями. Мы рады упомянуть, что данные не были уничтожены или повреждены при нашем исследовании этого феномена. Старое нулевое устройство SCSI было вытащено из груды железа, и все файлы Фреда вернулись к нему. Хотя в этом рассказе были использованы SCSI диски, с IDE дисками все точно так же. Создание слайсов с использованием FDisk Внесенные вами изменения не будут записываться на диск сразу. Если вы думаете, что сделали ошибку, и хотите начать сначала, можете использовать меню для выхода из sysinstall и попробовать еще раз или нажатием U вызвать опцию Undo (отмена). Если вы запутались и не можете выйти, просто выключите компьютер. После начала стандартной установки в sysinstall будет показано это сообщение: Message In the next menu, you will need to set up a DOS-style ("fdisk") partitioning scheme for your hard disk. If you simply wish to devote all disk space to FreeBSD (overwriting anything else that might be on the disk(s) selected) then use the (A)ll command to select the default partitioning scheme followed by a (Q)uit. If you wish to allocate only free space to FreeBSD, move to a partition marked "unused" and use the (C)reate command. [ OK ] [ Press enter or space ] Нажмите Enter как предлагается. Будет показан список всех жестких дисков, обнаруженных ядром во время тестирования устройств. показывает пример системы с двумя IDE дисками. Они были названы ad0 и ad2.
Выберите диск для FDisk
Вы можете быть удивлены, почему устройства ad1 здесь нет. Почему оно было пропущено? Предположим, что у вас есть два жестких диска IDE, один master на первом контроллере IDE, а второй master на втором контроллере IDE. Если FreeBSD пронумерует их в том порядке, в котором нашла, ad0 и ad1, все будет работать. Но если вы добавите третий диск, как slave устройство на первый контроллер IDE, он станет ad1, а предыдущий ad1 станет ad2. Поскольку имена устройств (таких как ad1s1a) используются для обращения к файловым системам, вы можете вдруг обнаружить, что некоторые из ваших файловых систем больше не отображаются правильно и вам потребуется изменить конфигурацию FreeBSD. Для обхода этой проблемы, ядро может быть настроено так, чтобы именовать IDE диски на основе их местоположения, а не порядка, в котором они были найдены. С этой схемой master диск на втором контроллере IDE будет всегда устройством ad2, если даже нет устройств ad0 или ad1. Это конфигурация ядра FreeBSD по умолчанию, поэтому на экране показаны ad0 и ad2. У компьютера, с которого был взят этот снимок экрана, есть по одному IDE диску на обеих master каналах IDE контроллеров и ни одного диска на каналах slave. Вы должны выбрать диск, на который хотите установить FreeBSD, и нажать &gui.ok;. Запустившийся FDisk будет выглядеть примерно как . Экран FDisk разбит на три раздела. Первый раздел, занимающая первые две линии экрана, показывает подробную информацию о выбранном в данный момент диске, включая его имя во FreeBSD, геометрию и общий размер диска. Второй раздел показывает имеющиеся в данный момент на диске слайсы, где они начинаются и заканчиваются, их размер, имя, которое им дала FreeBSD, описание и подтип. На этом примере показаны два маленьких неиспользованных слайса, которые являются артефактами схемы разметки диска на PC. Также показан один большой FAT слайс, который почти всегда является диском C: в &ms-dos; / &windows;, и дополнительный слайс, который может содержать диски с другими буквами для &ms-dos; / &windows;. Третий раздел показывает команды, доступные в FDisk.
Типичные разделы fdisk перед редактированием
Ваши действия теперь будут зависеть от того, как вы хотите разбить диск на слайсы. Если вы хотите использовать для FreeBSD весь диск (это приведет к удалению всех других данных на этом диске когда вы подтвердите sysinstall продолжение процесса установки), нажмите A, что соответствует опции Использовать весь диск (Use Entire Disk). Существующие слайсы будут удалены, и заменены на небольшую область, помеченную как неиспользуемая (unused) (это опять же артефакт разметки диска PC), и один большой слайс для FreeBSD. Когда вы сделаете это, нужно выбрать вновь созданный слайс FreeBSD используя клавиши навигации, а затем нажать S, чтобы сделать слайс загрузочным. Экран будет похож на . Обратите внимание, что A в колонке Flags означает, что слайс активен и с него будет происходить загрузка. Если вы будете удалять существующий слайс для освобождения места под FreeBSD, выберите слайс, используя клавиши навигации, и нажмите D. Затем можете нажать C, и получить приглашение на ввод размера слайса, который вы хотите создать. Введите соответствующее значение и нажмите Enter. Значение по умолчанию в этом поле означает наибольший размер слайса, который может быть выбран; это может быть наибольший непрерывный блок неразмеченного пространства или размер всего жесткого диска. Если вы уже освободили место для FreeBSD (возможно, используя утилиту вроде &partitionmagic;), можете нажать C для создания нового слайса. Будет также предложено ввести размер слайса, который вы хотите создать.
Разбиение в Fdisk с использованием всего диска
Когда закончите, нажмите Q. Изменения будут сохранены в sysinstall, но еще не записаны на диск.
Установка менеджера загрузки (Boot Manager) Теперь вам предлагается установить менеджер загрузки. Как правило, нужно выбрать установку менеджера загрузки если: У вас больше чем один диск и вы устанавливаете FreeBSD не на первый диск. Вы устанавливаете FreeBSD вместе с другой операционной на один и тот же диск, и хотите выбирать при загрузке FreeBSD или другую операционную систему. Если FreeBSD единственная операционная система, установленная на этом компьютере, и находится на первом жестком диске, подойдет менеджер загрузки Standard. Выберите None если вы используете менеджер загрузки сторонних разработчиков, способный загрузить FreeBSD. Сделайте выбор и нажмите Enter.
Меню менеджера загрузки Sysinstall
Экран подсказки, вызываемый по нажатию F1, описывает проблемы, которые могут быть встречены при попытке совместного использования диска операционными системами.
Создание слайсов на другом диске Если дисков больше чем один, вернитесь к экрану выбора дисков (Select Drives) после выбора менеджера загрузки. Если вы собираетесь устанавливать FreeBSD более чем на один диск, можете выбрать другой диск и повторить процесс разбиения на слайсы с использованием FDisk. Если вы устанавливаете FreeBSD не на первый жесткий диск, потребуется установить менеджер загрузки FreeBSD на оба диска.
Выход из выбора диска
Клавиша Tab переключает между последним выбранным диском, &gui.ok;, и &gui.cancel;. Нажмите Tab один раз для выбора &gui.ok;, затем нажмите Enter для продолжения установки.
Создание разделов с помощью <application>Disklabel</application> Теперь вы должны создать несколько разделов внутри каждого только что созданного слайса. Запомните, что у каждого раздела есть буква с a до h, а разделы b, c, и d имеют соглашения, которых вы должны придерживаться. Некоторые приложения могут выигрывать от определенных схем разделов, особенно если у вас разделы на более чем одном диске. Тем не менее, для вашей первой установки FreeBSD не нужно слишком углубляться в принципы разбиения диска. Более важно установить FreeBSD и начать ее использовать. Вы всегда можете переустановить FreeBSD для изменения схемы разделов, когда поближе познакомитесь с операционной системой. Эта схема показывает четыре раздела — один для подкачки и три для файловых систем. Планирование разделов для первого диска Раздел Файловая система Размер Описание a / 1 GB Корневая файловая система. Любая другая файловая система будет смонтирована на эту. 1 GB это подходящий размер для этой файловой системы. Вы не будете хранить на ней слишком много данных, а обычная установка FreeBSD разместит здесь около 128 MB данных. Оставшееся пространство используется для временных файлов, а также оставляет возможность расширения для будущих версий FreeBSD, которым может понадобится больше места в /. b N/A 2-3 x RAM Раздел подкачки находится на разделе b. Выбор правильного размера раздела подкачки это немного искусство. Хороший практический способ выбрать размер подкачки это установить его равным двум или трем размерам доступной физической памяти (RAM). Должно быть хотя бы 64 MB подкачки; если в компьютере меньше чем 32 MB памяти — установите размер подкачки равным 64 MB. Если у вас больше одного диска, можно расположить подкачку на каждом диске. FreeBSD будет использовать каждый диск, что серьезно увеличит скорость подкачки. В этом случае, определите общий размер подкачки, который вам нужен (например, 128 MB), и поделите его на число имеющихся дисков (например, два) для определения размера разделов подкачки, которые нужно разместить на каждом вашем диске, в этом примере 64 MB на диск. e /var 512 MB Каталог /var содержит файлы, которые постоянно меняются; логи и другие административные файлы. Многие из этих файлов интенсивно читаются и записываются в процессе ежедневной работы FreeBSD. Размещение их на отдельной файловой системе позволяет FreeBSD оптимизировать доступ к этим файлам без затрагивания других каталогов, не имеющих такой же модели доступа. f /usr Остальная часть диска (по крайней мере — 8 GB) Все другие файлы как правило хранятся в каталоге /usr и его подкаталогах.
Значения, приведённые выше, являются примерными и уместны к использованию лишь опытными пользователями. Остальным — рекомендуется применять опцию автоматического разбиения, называемую Auto Defaults в редакторе разделов &os;. Если вы устанавливаете FreeBSD более чем на один диск, вы должны также создать разделы в других слайсах, которые настроили. Простейший путь сделать это — создать два раздела на каждом диске, один для подкачки, а другой для файловой системы. Разметка разделов для остальных дисков Раздел Файловая система Размер Описание b N/A Смотрите описание Как уже обсуждалось, вы можете распространить подкачку на каждый диск. Даже если раздел a свободен, соглашение говорит о том, что подкачка находится на разделе b. e /diskn Остальная часть диска Остальная часть диска занята одним большим разделом. Он легко может быть помещен на раздел a вместо раздела e. Однако, соглашение говорит, что раздел a зарезервирован на слайсе для корневой (/) файловой системы. вы можете не следовать этому соглашению, но программа sysinstall будет ему следовать, поэтому приняв его, вы сделаете установку несколько проще. Вы можете монтировать эти файловые системы к любой точке; в этом примере предлагается смонтировать их как каталоги /diskn, где n это номер, который уникален для каждого диска. Но вы можете использовать другую схему, если захотите.
Теперь, выбрав разметку разделов, можете приступить к их созданию в sysinstall. Вы увидите это сообщение: Message Now, you need to create BSD partitions inside of the fdisk partition(s) just created. If you have a reasonable amount of disk space (1 GB or more) and don't have any special requirements, simply use the (A)uto command to allocate space automatically. If you have more specific needs or just don't care for the layout chosen by (A)uto, press F1 for more information on manual layout. [ OK ] [ Press enter or space ] Нажмите Enter для запуска редактора разделов FreeBSD, называемого Disklabel. показывает экран только что запущенного Disklabel. Экран поделен на три раздела. Первые несколько линий показывают имя диска, с которым вы сейчас работаете и слайс, содержащий раздел, который вы создаете (здесь Disklabel называет это именем раздела (Partition name) вместо имени слайса). Этот экран также показывает объем свободного пространства на слайсе, т.е. пространство, выделенное под слайс, но еще не отданное под раздел. В центре экрана показаны уже созданные разделы, имена файловых систем, содержащихся в разделах, их размер и некоторые опции, применяемые при создания файловых систем. Нижняя треть экрана показывает управляющие клавиши, работающие в Disklabel.
Редактор Sysinstall Disklabel
Disklabel может автоматически создать разделы и присвоить им размеры по умолчанию. Значения размеров по умолчанию вычисляются с помощью внутреннего алгоритма, исходя из емкости диска. Попробуйте это, нажав A. Вы увидите экран как на . В зависимости от размера диска, значения по умолчанию могут подходить или не подходить вам. Это не имеет значения, если вы не принимаете их. По умолчанию под каталог /tmp выделяется собственный раздел вместо использования части раздела /. Это помогает избежать заполнения раздела / временными файлами.
Редактор Sysinstall Disklabel с установками по умолчанию
Если вы решили не использовать разделы по умолчанию и заменить их на свои, используйте клавиши навигации для выбора первого раздела, затем нажмите D для его удаления. Повторите это для удаления всех предложенных разделов. Для создания первого раздела (a, монтируемого как / — root), убедитесь, что выбран соответствующий слайс вверху экрана и нажмите C. Появится диалог, предлагающий выбрать размер нового раздела (как показано на ). Вы можете ввести количество блоков диска, или количество мегабайт с M после номера, или гигабайт с G, или цилиндров с C.
Свободное место для корневого раздела
Размер по умолчанию задан для создания корневого раздела на весь слайс. Если вы используете размеры разделов, описанные ранее в примере, удалите это значение используя Backspace, а затем введите 512M, как показано на . Затем нажмите &gui.ok;.
Редактирование размера корневого раздела
После указания размера раздела вам будет задан вопрос, должен ли этот раздел содержать файловую систему или раздел подкачки. Диалог показан на . Первый раздел будет содержать файловую систему, поэтому проверьте, что выбрана FS и нажмите Enter.
Выбор типа корневого раздела
Наконец, поскольку вы создаете файловую систему, нужно сказать Disklabel где файловая система будет смонтирована. Диалог показан на . Точка монтирования корневой файловой системы /, поэтому введите /, и нажмите Enter.
Выбор точки монтирования корневой файловой системы
На экране будет показан вновь созданный раздел. Вам нужно повторить эту процедуру для других разделов. При создании раздела подкачки вопроса про точку монтирования не будет, поскольку раздел подкачки никогда не монтируется. Когда будете создавать последний раздел, /usr, можете оставить предложенный размер как есть, чтобы использовать весь остаток слайса. Последний экран FreeBSD редактора DiskLabel будет похож на , хотя ваш выбор значений может быть другим. Нажмите Q, чтобы выйти.
Редактор Sysinstall Disklabel
Выбор устанавливаемых компонентов Выбор дистрибутивного набора (Distribution Set) Выбор дистрибутивного набора зависит в основном от направления будущего использования системы и от доступного дискового пространства. Предустановленные опции варьируются от наименьшей возможной конфигурации до полной установки. Для новичков в &unix; и/или FreeBSD лучшим выбором будет одна из этих предустановленных опций. Настройка дистрибутивного набора как правило нужна более опытным пользователям. Нажмите F1 для получения информации о дистрибутивных наборах и их содержимом. После просмотра помощи нажмите Enter для возврата к меню выбора дистрибутивного набора. Если желательно наличие графического интерфейса пользователя, то задачи настройки X сервера и выбора десктопа по умолчанию должны быть выполнены после установки &os;. Более подробная информация по установке и настройке X сервера находится в . Если планируется пересборка ядра, выберите опцию, включающую исходные тексты. Информация о том, зачем пересобирать ядро и как это сделать, находится на . Ясно, что наиболее универсальная система включает все. Если места на диске достаточно, выберите All, как показано на и нажмите Enter. Если есть сомнения относительно того, хватит ли диска, используйте наиболее подходящую опцию. Не беспокойтесь о том, какой выбор будет наилучшим, другие части дистрибутива могут быть добавлены после установки.
Выбор дистрибутивных наборов
Установка Коллекции Портов После выбора подходящего дистрибутива можно будет выбрать установку Коллекции Портов FreeBSD. Коллекция Портов — лёгкий и удобный путь установки программ. Коллекция Портов не содержит исходных кодов программ. Это набор файлов, который автоматизирует загрузку, компилирование и установку пакетов программного обеспечения сторонних разработчиков. показывает, как использовать Коллекцию Портов. Программа установки не проверяет, есть ли достаточно места. Выберите эту опцию только в том случае, если его достаточно. В FreeBSD &rel.current;, Коллекция Портов занимает около &ports.size;. В более современных релизах это значение всегда больше. User Confirmation Requested Would you like to install the FreeBSD ports collection? This will give you ready access to over &os.numports; ported software packages, at a cost of around &ports.size; of disk space when "clean" and possibly much more than that if a lot of the distribution tarballs are loaded (unless you have the extra CDs from a FreeBSD CD/DVD distribution available and can mount it on /cdrom, in which case this is far less of a problem). The ports collection is a very valuable resource and well worth having on your /usr partition, so it is advisable to say Yes to this option. For more information on the ports collection & the latest ports, visit: http://www.FreeBSD.org/ports [ Yes ] No Выберите &gui.yes; для установки Коллекции Портов, или &gui.no;, чтобы пропустить установку. Нажмите Enter, чтобы продолжить. Меню выбора дистрибутивных наборов появится опять.
Подтверждение выбора дистрибутивного набора
Если вы согласны с выбранными опциями, переместитесь на Exit, убедитесь, что выбран &gui.ok; и нажмите Enter, чтобы продолжить.
Выбор источника для установки При установке с CDROM или DVD используйте клавиши навигации, для перехода к пункту Install from a FreeBSD CD/DVD. Убедитесь, что выбран &gui.ok;, и нажмите Enter для запуска установки. При других методах установки выберите соответствующую опцию и следуйте инструкциям. Нажмите F1 для просмотра справки по источникам установки. Нажмите Enter для возврата к меню выбора источника установки.
Выбор источника установки
Режимы установки с FTP installation network FTP Есть три режима установки через FTP, которые вы можете выбрать: активный FTP, пассивный FTP, или через HTTP прокси. Активный FTP: Install from an FTP server С этой опцией все закачки по FTP будут выполнены в активном режиме. Этот режим не позволяет работать через файрволл, но зачастую позволяет работать со старыми серверами FTP, не поддерживающими пассивный режим. Если соединение прерывается в пассивном режиме (по умолчанию), попробуйте активный! Пассивный FTP: Install from an FTP server through a firewall FTP Пассивный режим Эта опция говорит sysinstall использовать пассивный режим для работы с FTP. Он позволяет работать через файрволл, не разрешающий входящие соединения на случайных TCP портах. FTP через HTTP прокси: Install from an FTP server through a http proxy FTP через HTTP прокси Эта опция говорит sysinstall использовать HTTP протокол (как Web-браузер) для работы с FTP через прокси. Прокси будет транслировать все запросы и посылать их на FTP сервер. Это позволяет проходить через файрволл, на котором FTP запрещен, но есть HTTP прокси. В этом случае потребуется указать прокси и FTP сервер. Для работы с FTP через прокси, необходимо поместить имя сервера как часть имени пользователя после знака @. Прокси сервер обманет настоящий сервер. Например, предположим что вы хотите провести установку с ftp.FreeBSD.org, используя FTP через прокси foo.example.com, прослушивающем порт 1234. В этом случае, войдите в меню параметров, установите имя пользователя FTP ftp@ftp.FreeBSD.org, а вместо пароля введите свой адрес email. В качестве источника установки выберите FTP (или пассивный FTP, если прокси его поддерживает), и URL ftp://foo.example.com:1234/pub/FreeBSD. Так как /pub/FreeBSD с сервера ftp.FreeBSD.org идет через прокси foo.example.com, вы сможете провести установку с этого компьютера (файлы будут загружены с ftp.FreeBSD.org как требуется для установки).
Подтверждение установки Теперь можно начинать установку. Это последний шанс отменить установку, и таким образом избежать изменений на жестком диске. User Confirmation Requested Last Chance! Are you SURE you want to continue the installation? If you're running this on a disk with data you wish to save then WE STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding! We can take no responsibility for lost disk contents! [ Yes ] No Выберите &gui.yes; и нажмите Enter, чтобы начать. Время установки сильно зависит от выбранного дистрибутивного набора, источника установки и скорости компьютера. Появится несколько сообщений о статусе процесса установки. Установка будет завершена, когда отобразится следующее сообщение: Message Congratulations! You now have FreeBSD installed on your system. We will now move on to the final configuration questions. For any option you do not wish to configure, simply select No. If you wish to re-enter this utility after the system is up, you may do so by typing: /usr/sbin/sysinstall. [ OK ] [ Press enter or space ] Нажмите Enter для начала послеустановочной настройки. Выбор &gui.no; и нажатие Enter прервет процесс установки, изменения в систему внесены не будут. Появится следующее сообщение: Message Installation complete with some errors. You may wish to scroll through the debugging messages on VTY1 with the scroll-lock feature. You can also choose "No" at the next prompt and go back into the installation menus to retry whichever operations have failed. [ OK ] Это сообщение появилось, поскольку ничего не было установлено. Нажатие Enter вернет вас в главное меню установки, чтобы выйти из нее. После установки После успешной установки необходимо настроить множество параметров. Некоторые параметры могут быть заданы из меню параметров после установки, перед загрузкой установленной FreeBSD, или после нее с использованием sysinstall, где надо выбрать пункт Configure. Настройка сетевых устройств (Network Device Configuration) Если вы настраивали PPP для установки через FTP, этот экран не появится, и настройку можно будет произвести позже как описано выше. Чтобы лучше узнать о локальных сетях и настройке FreeBSD в качестве шлюза/маршрутизатора, обратитесь к главе Сложные вопросы работы в сети. User Confirmation Requested Would you like to configure any Ethernet or PPP network devices? [ Yes ] No Для настройки сетевого устройства выберите &gui.yes; и нажмите Enter. Или нажмите &gui.no;, чтобы продолжить.
Выбор Ethernet устройства
Выберите интерфейс для настройки с помощью клавиш навигации и нажмите Enter. User Confirmation Requested Do you want to try IPv6 configuration of the interface? Yes [ No ] Для частной локальной сети обычный протокол интернет (IPv4) вполне достаточен, поэтому выбрана кнопка &gui.no; и нажат Enter. Если вы хотите подсоединиться к существующей сети IPv6 через сервер RA, выберите &gui.yes; и нажмите Enter. Поиск RA серверов займет несколько секунд. User Confirmation Requested Do you want to try DHCP configuration of the interface? Yes [ No ] Если DHCP (Dynamic Host Configuration Protocol) не нужен, выберите &gui.no; с помощью клавиш навигации и нажмите Enter. Выбор &gui.yes; запустит dhclient, и, если все пройдет нормально, заполнит информацию о конфигурации сети автоматически. Обратитесь к за более подробными сведениями. Следующий экран конфигурации сети показывает настройку устройства Ethernet системы, которая будет работать шлюзом для локальной сети.
Настройка сети для ed0
Используйте Tab для выбора полей и заполнения их соответствующими данными: Host Полное имя хоста, в этом примере k6-2.example.com. Domain Имя домена, в котором находится ваш компьютер, в этом примере example.com. IPv4 Gateway IP хоста, пересылающего пакеты наружу локальной сети. Вам потребуется заполнить его, если это компьютер, подключенный к сети. Оставьте это поле пустым, если компьютер является шлюзом в интернет для сети. Шлюз IPv4 известен также как шлюз по умолчанию или маршрут по умолчанию. Name server IP адрес местного сервера DNS. В этой локальной сети нет DNS сервера, поэтому использован IP адрес DNS сервера провайдера (208.163.10.2). IPv4 address IP адрес, использованный для этого интерфейса, 192.168.0.1 Netmask Адрес блока, использованного для этой локальной сети, это 192.168.0.0 - 192.168.0.255. с маской сети 255.255.255.0. Дополнительные параметры для ifconfig Любые специфичные для интерфейса опции к ifconfig, которые вы хотите добавить. В данном случае ничего. Используйте Tab для выбора &gui.ok; после окончания настройки и нажмите Enter. User Confirmation Requested Would you like to bring the ed0 interface up right now? [ Yes ] No Выбор &gui.yes; и нажатие Enter введет компьютер в сеть. Тем не менее, компьютеру все еще требуется перезагрузка.
Настройка шлюза (Configure Gateway) User Confirmation Requested Do you want this machine to function as a network gateway? [ Yes ] No Если компьютер будет шлюзом для локальной сети, пересылая пакеты между другими компьютерами, выберите &gui.yes; и нажмите Enter. Если это обычный компьютер, выберите &gui.no; и нажмите Enter для продолжения. Настройка сервисов интернет (Configure Internet Services) User Confirmation Requested Do you want to configure inetd and the network services that it provides? Yes [ No ] Если выбрана &gui.no;, различные сервисы, такие как telnetd не будут запущены. Это означает, что удаленные пользователи не смогут зайти по telnet на этот компьютер. Локальные пользователи все же смогут заходит на удаленные компьютеры по telnet. Эти сервисы могут быть включены после установки путем редактирования /etc/inetd.conf с помощью вашего любимого текстового редактора. Обращайтесь к за более подробной информацией. Выберите &gui.yes; если хотите настроить эти сервисы во время установки. Появится дополнительный запрос подтверждения: User Confirmation Requested The Internet Super Server (inetd) allows a number of simple Internet services to be enabled, including finger, ftp and telnetd. Enabling these services may increase risk of security problems by increasing the exposure of your system. With this in mind, do you wish to enable inetd? [ Yes ] No Нажмите &gui.yes;, чтобы продолжить. User Confirmation Requested inetd(8) relies on its configuration file, /etc/inetd.conf, to determine which of its Internet services will be available. The default FreeBSD inetd.conf(5) leaves all services disabled by default, so they must be specifically enabled in the configuration file before they will function, even once inetd(8) is enabled. Note that services for IPv6 must be separately enabled from IPv4 services. Select [Yes] now to invoke an editor on /etc/inetd.conf, or [No] to use the current settings. [ Yes ] No Выбор &gui.yes; позволит добавить сервисы путем удаления # перед началом строки.
Редактирование <filename>inetd.conf</filename>
После добавления нужных сервисов нажатие Esc отобразит меню, позволяющее выйти с сохранением изменений.
Настройка входа по SSH SSH sshd User Confirmation Requested Would you like to enable SSH login? Yes [ No ] Выбор &gui.yes; активирует запуск &man.sshd.8; — демона для приложения OpenSSH, что в свою очередь позволит создавать безопасные удалённые соединения c вашей машиной. За более детальной информацией о OpenSSH обратитесь к . Анонимный (Anonymous) FTP FTP анонимный User Confirmation Requested Do you want to have anonymous FTP access to this machine? Yes [ No ] Запрещение анонимного FTP Выбор кнопки по умолчанию &gui.no; и нажатие Enter все же позволит пользователям, имеющим учетные записи с паролями, использовать FTP для доступа к компьютеру. Разрешение анонимного FTP Кто угодно сможет получить доступ к компьютеру, если вы разрешите анонимные соединения FTP. Предварительно должны быть рассмотрены возможные проблемы с безопасностью. Более подробная информация о безопасности находится в . Чтобы разрешить анонимный FTP, выберите &gui.yes;, используя клавиши навигации, и нажмите Enter. От вас потребуется дополнительное подтверждение: User Confirmation Requested Anonymous FTP permits un-authenticated users to connect to the system FTP server, if FTP service is enabled. Anonymous users are restricted to a specific subset of the file system, and the default configuration provides a drop-box incoming directory to which uploads are permitted. You must separately enable both inetd(8), and enable ftpd(8) in inetd.conf(5) for FTP services to be available. If you did not do so earlier, you will have the opportunity to enable inetd(8) again later. If you want the server to be read-only you should leave the upload directory option empty and add the -r command-line option to ftpd(8) in inetd.conf(5) Do you wish to continue configuring anonymous FTP? [ Yes ] No В этом сообщении сказано: если вы хотите разрешить анонимный FTP доступ, то вам также придется активировать (см. ) сам сервис FTP в /etc/inetd.conf. Выберите &gui.yes;, нажмите Enter, далее отобразится следующий экран:
Настройка по анонимного FTP по умолчанию
Используя Tab для выбора полей ввода, заполните соответствующую информацию: UID Идентификатор, который вы намереваетесь присвоить анонимному пользователю FTP. Файлам, загруженным на FTP, будет присвоен этот идентификатор. Group В эту группу будет входить анонимный пользователь FTP. Comment Строка с описанием анонимного пользователя; она будет внесена в /etc/passwd. FTP Root Directory Часть иерархии файловой системы, в которой будут храниться файлы, доступные анонимному пользователю FTP. Upload Subdirectory Подкаталог, доступный на запись анонимному пользователю FTP. Корневой каталог FTP по умолчанию будет размещен в /var. Если в нем предположительно не хватает места для для нужд FTP, можно использовать каталог /usr, выбрав корневой каталог FTP (FTP root directory) /usr/ftp. Когда будут выбраны подходящие значения, нажмите Enter, чтобы продолжить. User Confirmation Requested Create a welcome message file for anonymous FTP users? [ Yes ] No Если вы выберете &gui.yes; и нажмете Enter, запустится редактор, позволяющий отредактировать сообщение FTP.
Редактирование FTP Welcome Message
Этот текстовый редактор называется ee. Используйте инструкции, чтобы изменить сообщение, или измените сообщение позже, используя выбранный вами редактор. Обратите внимание, что имя/расположение файла показаны внизу окна редактора. Нажмите Esc и появится меню с пунктом по умолчанию a) leave editor (выйти из редактора). Нажмите Enter, чтобы выйти и продолжить. Нажмите Enter еще раз, чтобы сохранить изменения, если они были сделаны.
Настройка сетевой файловой системы (Configure Network File System) Сетевая файловая система (Network File System, NFS) позволяет совместно использовать файлы в сети. Компьютер может быть настроен как сервер, клиент, или как то и другое. Обратитесь к за более подробной информацией. Сервер NFS (NFS Server) User Confirmation Requested Do you want to configure this machine as an NFS server? Yes [ No ] Если вам не нужен NFS сервер, выберите &gui.no; и нажмите Enter. Если выбран пункт &gui.yes;, появится сообщение, говорящее о том, что должен быть создан файл exports. Message Operating as an NFS server means that you must first configure an /etc/exports file to indicate which hosts are allowed certain kinds of access to your local filesystems. Press [Enter] now to invoke an editor on /etc/exports [ OK ] Нажмите Enter, чтобы продолжить. Запустится текстовый редактор, позволяющий создать и отредактировать файл exports.
Редактирование <filename>exports</filename>
Используйте инструкции для добавления экспортируемых файловых систем сейчас, или позднее с помощью выбранного вами текстового редактора. Обратите внимание, что имя/расположение файла показаны внизу окна редактора. Нажмите Esc и появится меню с пунктом по умолчанию a) leave editor. Нажмите Enter, чтобы выйти и продолжить.
Клиент NFS (NFS Client) NFS клиент позволяет организовать доступ к серверам NFS. User Confirmation Requested Do you want to configure this machine as an NFS client? Yes [ No ] С помощью клавиш навигации выберите &gui.yes; или &gui.no;, как потребуется, и нажмите Enter.
Настройки системной консоли (System Console Settings) Есть несколько параметров для настройки системной консоли. User Confirmation Requested Would you like to customize your system console settings? [ Yes ] No Для просмотра и настройки параметров выберите &gui.yes; и нажмите Enter.
Параметры настройки системной консоли
Часто используемая опция это хранитель экрана (screen saver). Используйте клавиши навигации для выбора Saver и нажмите Enter.
Параметры хранителя экрана
Выберите подходящий хранитель экрана с помощью клавиш навигации и нажмите Enter. Опять появится меню настройки системной консоли. Время по умолчанию 300 секунд. Для изменения временного интервала выберите Saver еще раз. В меню настроек хранителя экрана выберите Timeout с помощью клавиш навигации и нажмите Enter. Появится меню:
Временной интервал хранителя экрана
Значение может быть изменено, затем выберите &gui.ok; и нажмите Enter для возврата в меню настройки системной консоли.
Выход из меню конфигурации консоли
Выбор Exit и нажатие Enter вернет вас к послеустановочной настройке.
Установка часового пояса (Setting The Time Zone) Установка часового пояса на компьютере позволит ему автоматически вносить поправки к местному времени и правильно выполнять другие, связанные с часовым поясом функции. Пример приведен для компьютера, расположенного в восточном часовом поясе Соединенных Штатов. Ваш выбор будет зависеть от вашего географического положения. User Confirmation Requested Would you like to set this machine's time zone now? [ Yes ] No Выберите &gui.yes; и нажмите Enter для установки часового пояса. User Confirmation Requested Is this machine's CMOS clock set to UTC? If it is set to local time or you don't know, please choose NO here! Yes [ No ] Выберите &gui.yes; или &gui.no; в зависимости от настроек часов компьютера и нажмите Enter.
Выбор региона
Соответствующий регион выбран с помощью клавиш навигации и нажат Enter.
Выбор страны
Выберите соответствующую страну с помощью клавиш навигации и нажмите Enter.
Выбор часового пояса
Выбран соответствующий часовой пояс с помощью клавиш навигации и нажат Enter. Confirmation Does the abbreviation 'EDT' look reasonable? [ Yes ] No Правильно будет согласиться с назначением аббревиатуры временного пояса. Если она подходит, нажмите Enter, чтобы продолжить послеустановочную настройку.
Совместимость с Linux (Linux Compatibility) Эта информация применима к установке &os; 7.X. Если вы устанавливаете &os; 8.X, нижеследующее меню предложено не будет. User Confirmation Requested Would you like to enable Linux binary compatibility? [ Yes ] No Выбор &gui.yes; и нажатие Enter позволит запускать программы Linux под FreeBSD. Программа установки добавит соответствующие пакеты для совместимости с Linux. При установке по FTP, компьютеру потребуется соединиться с интернет. Иногда на сервере ftp нет всех необходимых компонент, например для бинарной совместимости с Linux. Эти компоненты могут быть установлены позже, если потребуется. Настройка мыши (Mouse Settings) Эти настройки позволят вырезать и вставлять текст в консоли и пользовательских программах с помощью трехкнопочной мыши. Если используется двухкнопочная мышь, обратитесь к странице справочника &man.moused.8; после установки, чтобы узнать подробности об эмуляции трехкнопочной мыши. Этот пример приведен для настройки не-USB мыши (например мыши для порта PS/2 или COM): User Confirmation Requested Does this system have a PS/2, serial, or bus mouse? [ Yes ] No Выберите &gui.yes; для PS/2 мыши, последовательной мыши или мыши типа bus mouse. Выберите &gui.no; для USB мыши и нажмите Enter.
Выбор протокола мыши
Используйте клавиши навигации для выбора Type и нажмите Enter.
Установка протокола мыши
В этом примере использована PS/2 мышь, поэтому подойдет протокол по умолчанию Auto. Чтобы изменить протокол, используйте клавиши навигации для выбора другого пункта. Убедитесь, что выбран &gui.ok;, и нажмите Enter для выхода из меню.
Настройка порта мыши
Используйте клавиши навигации для выбора Port и нажмите Enter.
Установка порта мыши
К этой системе подключена мышь PS/2, поэтому подходит значение по умолчанию PS/2. Чтобы изменить порт, используйте клавиши навигации и нажмите Enter.
Запуск даемона мыши
Наконец, используйте клавиши навигации для выбора Enable, затем нажмите Enter для запуска и тестирования даемона мыши.
Проверка даемона мыши
Подвигайте курсор по экрану и убедитесь, что он движется правильно. Если это так, выберите &gui.yes; и нажмите Enter. Если нет, мышь не была правильно настроена — выберите &gui.no; и попробуйте использовать другие опции настройки. Выберите Exit с помощью клавиш навигации и нажмите Enter для возврата к послеустановочной настройке.
Установка пакетов (Install Packages) Пакеты — это прекомпилированные бинарные файлы и это удобный способ установки программ. В качестве примера показана установка одного пакета. Если потребуется, можно установить дополнительные пакеты. После установки для добавления пакетов может быть использована команда sysinstall. User Confirmation Requested The FreeBSD package collection is a collection of hundreds of ready-to-run applications, from text editors to games to WEB servers and more. Would you like to browse the collection now? [ Yes ] No Выбор [ Yes ] и нажатие Enter приведет к появлению экрана выбора пакетов:
Выбор категории пакетов
Только пакеты с текущего носителя доступны для установки в любое время. Все доступные пакеты будут показаны если выбрать категорию All, можно также выбирать отдельные категории. Перейдите к выбранной категории с помощью клавиш навигации и нажмите Enter. Появится меню, содержащее доступные в данной категории пакеты.
Выбор пакетов
Выбрана оболочка bash. Выберите все необходимые пакеты, перемещаясь по меню и нажимая клавишу пробела на выбираемых пакетах. Краткое описание пакета будет появляться в нижней левой части экрана. Нажатие Tab переключает между последним выбранным пакетом, &gui.ok;, и &gui.cancel;. После того, как будет закончена отметка пакетов для установки, нажмите Tab один раз для переключения на &gui.ok; и нажмите Enter для переключения на меню выбора пакетов. Нажимая клавиши навигации влево или вправо, можно переключаться между &gui.ok; и &gui.cancel;. Этот метод может быть применен также для выбора &gui.ok; и возврата к меню выбора пакетов нажатием Enter.
Установка пакетов
Используйте Tab и клавиши навигации для выбора [ Install ] и нажмите Enter. вам потребуется подтвердить установку пакетов:
Подтверждение установки пакетов
Выбор &gui.ok; и нажатие Enter запустит установку пакетов. Во время установки будут выдаваться сообщения. Обратите внимание на возможные сообщения об ошибках. После установки пакетов настройка продолжится. Если вы не выбрали ни один из пакетов и хотите вернуться к завершению настройки, выберите Install в любом случае.
Добавление пользователей/групп (Add Users/Groups) В процессе установки нужно добавить хотя бы одного пользователя, чтобы использовать систему без входа под root. Корневой каталог обычно мал и запуск приложений под root быстро заполнит его. Ниже показано предупреждение: User Confirmation Requested Would you like to add any initial user accounts to the system? Adding at least one account for yourself at this stage is suggested since working as the "root" user is dangerous (it is easy to do things which adversely affect the entire system). [ Yes ] No Выберите &gui.yes; и нажмите Enter, чтобы продолжить добавление пользователя.
Выбор User (пользователь)
Выберите User с помощью клавиш навигации и нажмите Enter.
Вод информации о пользователе
При выборе полей с помощью Tab в нижней части экрана будет появляться описание, помогающее ввести необходимую информацию: Логин (Login ID) Имя нового пользователя (обязательно). UID Числовой ID (идентификатор) для этого пользователя (оставьте пустым для автоматического выбора). Группа (Group) Имя группы этого пользователя (оставьте пустым для автоматического выбора). Пароль (Password) Пароль этого пользователя (заполняйте это поле с осторожностью!). Полное имя Полное имя пользователя (комментарий). Член групп (Member groups) Группы, к которым принадлежит пользователь (т.е. имеет права доступа). Домашний каталог (Home directory) Домашний каталог пользователя (оставьте пустым для выбора по умолчанию). Оболочка (Login shell) Оболочка пользователя, запускаемая при входе в систему (оставьте пустым для оболочки по умолчанию, например /bin/sh). Оболочка была изменена с /bin/sh на /usr/local/bin/bash для использования bash, которая была перед этим установлена из пакета. Не пытайтесь использовать несуществующую оболочку, вы не сможете войти в систему. Наиболее часто используемая в мире BSD оболочка это C shell, которую можно обозначить как /bin/tcsh. Пользователь был добавлен в группу wheel, чтобы иметь возможность стать суперпользователем с привилегиями root. Когда все будет введено, нажмите &gui.ok; и меню управления пользователями и группами (User and Group Management) появится снова:
Выход из меню управления пользователями и группами
Сейчас также можно добавить группы, если известно, для чего они потребуются. Иначе в это меню можно войти, запустив sysinstall после окончания установки. После завершения добавления пользователей, выберите Exit с помощью клавиш навигации и нажмите Enter для продолжения установки.
Установка пароля <username>root</username> Message Now you must set the system manager's password. This is the password you'll use to log in as "root". [ OK ] [ Press enter or space ] Нажмите Enter для установки пароля root. Необходимо два раза правильно ввести пароль. Излишне упоминать, что должна быть возможность восстановления пароля, если вы его забудете. Обратите внимание, что ни набираемый пароль, ни звездочки на экран не выдаются. New password: Retype new password : Установка продолжится после успешного ввода пароля. Выход из установки (Exiting Install) Если нужно настроить дополнительные сетевые устройства, или произвести другие настройки, вы можете сделать это сейчас или после установки с помощью sysinstall. User Confirmation Requested Visit the general configuration menu for a chance to set any last options? Yes [ No ] Выберите &gui.no; с помощью клавиш навигации и нажмите Enter для возврата к главному меню установки.
Выход из установки
Выберите [X Exit Install] с помощью клавиш навигации и нажмите Enter. Будет задан вопрос о подтверждении выхода из установки: User Confirmation Requested Are you sure you wish to exit? The system will reboot. [ Yes ] No Выберите &gui.yes;. Если вы загружались с привода CDROM, следующее сообщение напомнит вам о необходимости извлечь диск: Message Be sure to remove the media from the drive. [ OK ] [ Press enter or space ] CDROM заблокирован, пока компьютер не начнет перегружаться. CDROM будет разблокирован и диск нужно будет извлечь из привода (быстро). Выберите &gui.ok;. Система начнет перезагрузку, смотрите за сообщениями об ошибках, которые могут появиться. За подробностями по процессу загрузки обратитесь к .
Том Родес Текст предоставил Настройка дополнительных сетевых сервисов Настройка сетевых сервисов может быть пугающей задачей для новых пользователей, если у них нет опыта в этой области. Работа в сети, включая интернет, критична для многих современных операционных систем, включая &os;; очень важно иметь некоторые знания о дополнительных сетевых возможностях &os;. Настраивая их во время установки, пользователь получает некоторую информацию о различных доступных сервисах. Сетевые сервисы — это программы, принимающие данные из любой точки сети. Чтобы убедиться, что эти программы не делают ничего вредного, требуется особое внимание. К сожалению, программисты не совершенны и время от времени допускают ошибки в сетевых сервисах; эти ошибки позволяют атакующим взломать их и использовать в собственных целях. Важно, чтобы вы включали сетевые сервисы только в том случае, если знаете, какие сервисы нужны. В случае сомнений лучше не включать сервис, пока он не понадобится. Вы всегда можете включить его позже, запустив sysinstall еще раз, или используя возможности, предоставляемые файлом /etc/rc.conf. Выбор опции Networking отобразит меню, похожее на это:
Верхняя часть меню настройки сети (Network Configuration)
Первая опция, Interfaces (интерфейсы), была ранее описана в , эту опцию можно проигнорировать. Выбор опции AMD добавит поддержку BSD утилиты автоматического монтирования. Она обычно используется вместе с протоколом NFS (смотрите ниже) для автоматического монтирования удаленных файловых систем. Здесь не требуется специальной конфигурации. Следующая линия это опция флаги AMD (flags). Когда эта опция выбрана, появится меню для ввода специфичных флагов AMD. Меню уже содержит набор различных опций: -a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map Опция указывает месторасположение монтирования систем по умолчанию, в этом примере /.amd_mnt. Опция указывает log файл по умолчанию; тем не менее, если для ведения логов используется syslogd, все логи отправляются даемону системных логов. Каталог /host используется для монтирования экспортированных файловых систем с удаленного хоста, а /net для монтирования экспортированных файловых систем с IP адреса. Файл /etc/amd.map определяет опции по умолчанию для монтируемых AMD каталогов. FTP анонимный Опция Anon FTP позволяет получить анонимный доступ к FTP. Выберите ее, чтобы сделать этот компьютер анонимным FTP сервером. Помните о риске безопасности, создаваемом этой опцией. Будет отображено еще одно меню для разъяснения риска безопасности и для более тонкой настройки. Опция Gateway сделает компьютер шлюзом, как было объяснено ранее. Этот пункт может быть использован для отмены опции Gateway, если она была ошибочно установлена в процессе установки. Опцию Inetd можно использовать для настройки или полного отключения даемона &man.inetd.8;, как было описано выше. Опция Mail используется для настройки системного MTA по умолчанию (Mail Transfer Agent, агент передачи почты). Выбор этой опции приведет к появлению следующего меню:
Выбор MTA по умолчанию
Здесь предоставляется выбор MTA для установки по умолчанию. MTA это почтовый сервер, доставляющий почту пользователям системы или интернет. Выбор Sendmail приведет к установке популярного сервера sendmail, MTA по умолчанию для &os;. Опция Sendmail local настроит sendmail в качестве MTA по умолчанию, но отключит возможность получения входящей почты из интернет. Другие MTA, представленные здесь, Postfix и Exim, действуют подобно Sendmail. Оба они доставляют почту; тем не менее, некоторые пользователи предпочитают эти альтернативы sendmail. После выбора MTA или пропуска этого пункта появится меню настройки сети со следующей опцией, клиент NFS. Клиент NFS позволяет настроить систему для соединения с сервером через NFS. Сервер NFS дает другим машинам доступ к файловой системе через протокол NFS. Если это отдельно стоящий компьютер, опцию можно не выбирать. NFS может потребовать дополнительной настройки позже; обращайтесь к за более подробной информацией о настройке сервера и клиента. Ниже находится опция NFS сервер, позволяющая вам настроить систему для работы в качестве NFS сервера. Она добавляет требуемую информацию для запуска процедуры вызова удаленных сервисов RPC (remote procedure call services). RPC используется для организации соединения между хостами и программами. Следующая строка это Ntpdate, которая отвечает за синхронизацию времени. Когда эта опция выбрана, появится приблизительно такое меню:
Настройка Ntpdate
Выберите из этого меню ближайший к вашему местонахождению сервер. Выбор ближайшего сервера сделает синхронизацию времени более точной, поскольку у более дальнего сервера может быть более длинная задержка соединения. Следующая опция это выбор PCNFSD. Эта опция устанавливает пакет net/pcnfsd из Коллекции Портов. Это полезная утилита, предоставляющая сервисы авторизации NFS для систем, в которых собственная отсутствует, таких как Microsoft &ms-dos;. Теперь вы можете прокрутить меню немного вниз, чтобы увидеть другие опции:
Нижняя часть меню настройки сети
Утилиты &man.rpcbind.8;, &man.rpc.statd.8; и &man.rpc.lockd.8; для удаленного вызова процедур (Remote Procedure Calls, RPC). Утилита rpcbind управляет соединением между NFS серверами и клиентами, она требуется серверу NFS для корректной работы. Даемон rpc.statd взаимодействует с даемонами rpc.statd на других хостах для обеспечения мониторинга статуса. Полученный статус обычно хранится в файле /var/db/statd.status. Последняя опция это rpc.lockd, которая, будучи выбранной, предоставляет сервисы блокировки файлов. Она обычно используется с rpc.statd для отслеживания хостов, запрашивающих блокировки и частоты этих запросов. Хотя две последние опции прекрасно подходят для отладки, они не требуются серверам и клиентам NFS для корректной работы. Ниже в списке опций находится Routed, даемон маршрутизации. Утилита &man.routed.8; управляет сетевыми таблицами маршрутизации, обнаруживает широковещательные маршрутизаторы, и предоставляет копию таблиц маршрутизации любому физически подключенному к сети хосту по запросу. Это обычно используется компьютерами, являющимися шлюзом для локальной сети. Когда эта опция выбрана, появится меню выбора местоположения утилиты по умолчанию. Значение по умолчанию уже выбрано, чтобы подтвердить его нажмите Enter. Появится следующее меню, запрашивающее флаги для routed. По умолчанию это флаг , он должен уже быть на экране. На следующей линии находится опция Rwhod, выбор которой приведет к запуску даемона &man.rwhod.8; при старте системы. Утилита rwhod периодически рассылает широковещательные системные сообщения по сети или собирает их в режиме потребителя. Дополнительную информацию можно найти на страницах справочника &man.ruptime.1; и &man.rwho.1;. Следующая перед последней опцией в списке это даемон &man.sshd.8;. Это сервер безопасной оболочки (secure shell) из OpenSSH и он настоятельно рекомендуется для использования вместо стандартных серверов telnet и FTP. Сервер sshd используется для создания безопасных соединений от одного хоста к другому с использованием шифрования. И наконец, опция TCP Extensions. Она включает расширения TCP, определенные в RFC 1323 и RFC 1644. Хотя для многих хостов они могут повысить скорость соединения, с другими соединение может быть оборвано. Для серверов эти расширения не рекомендуются, но клиентским компьютерам могут дать некоторые преимущества. Теперь, после настройки сетевых сервисов, вы можете прокрутить меню к верхнему пункту, X Exit, и перейти к следующему шагу, или же просто покинуть sysinstall, дважды нажав X Exit, а после — [X Exit Install].
Загрузочный процесс &os; (&os; Bootup) Загрузка &os;/&arch.i386; Если все пройдет нормально, вы увидите прокручивающиеся за экран сообщения, затем приглашение ко входу в систему. Вы может просмотреть сообщения, нажав Scroll-Lock и используя PgUp и PgDn. Нажатие Scroll-Lock еще раз вернет вас к приглашению. Все сообщение может не отобразиться (ограничение буфера), но может быть просмотрено путем ввода команды dmesg в командной строке. Войдите, используя имя пользователя/пароль, добавленные во время установки (rpratt в этом примере). Избегайте входа под root, если это не требуется. Типичные сообщения при загрузке (информация о версии удалена): Copyright (c) 1992-2002 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. Timecounter "i8254" frequency 1193182 Hz CPU: AMD-K6(tm) 3D processor (300.68-MHz 586-class CPU) Origin = "AuthenticAMD" Id = 0x580 Stepping = 0 Features=0x8001bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,MMX> AMD Features=0x80000800<SYSCALL,3DNow!> real memory = 268435456 (262144K bytes) config> di sn0 config> di lnc0 config> di le0 config> di ie0 config> di fe0 config> di cs0 config> di bt0 config> di aic0 config> di aha0 config> di adv0 config> q avail memory = 256311296 (250304K bytes) Preloaded elf kernel "kernel" at 0xc0491000. Preloaded userconfig_script "/boot/kernel.conf" at 0xc049109c. md0: Malloc disk Using $PIR table, 4 entries at 0xc00fde60 npx0: <math processor> on motherboard npx0: INT 16 interface pcib0: <Host to PCI bridge> on motherboard pci0: <PCI bus> on pcib0 pcib1: <VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge> at device 1.0 on pci0 pci1: <PCI bus> on pcib1 pci1: <Matrox MGA G200 AGP graphics accelerator> at 0.0 irq 11 isab0: <VIA 82C586 PCI-ISA bridge> at device 7.0 on pci0 isa0: <ISA bus> on isab0 atapci0: <VIA 82C586 ATA33 controller> port 0xe000-0xe00f at device 7.1 on pci0 ata0: at 0x1f0 irq 14 on atapci0 ata1: at 0x170 irq 15 on atapci0 uhci0: <VIA 83C572 USB controller> port 0xe400-0xe41f irq 10 at device 7.2 on pci0 usb0: <VIA 83C572 USB controller> on uhci0 usb0: USB revision 1.0 uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub0: 2 ports with 2 removable, self powered chip1: <VIA 82C586B ACPI interface> at device 7.3 on pci0 ed0: <NE2000 PCI Ethernet (RealTek 8029)> port 0xe800-0xe81f irq 9 at device 10.0 on pci0 ed0: address 52:54:05:de:73:1b, type NE2000 (16 bit) isa0: too many dependant configs (8) isa0: unexpected small tag 14 fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0 fdc0: FIFO enabled, 8 bytes threshold fd0: <1440-KB 3.5" drive> on fdc0 drive 0 atkbdc0: <keyboard controller (i8042)> at port 0x60-0x64 on isa0 atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0 kbd0 at atkbd0 psm0: <PS/2 Mouse> irq 12 on atkbdc0 psm0: model Generic PS/2 mouse, device ID 0 vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 sc0: <System console> at flags 0x1 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 sio0: type 16550A sio1 at port 0x2f8-0x2ff irq 3 on isa0 sio1: type 16550A ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/15 bytes threshold ppbus0: IEEE1284 device found /NIBBLE Probing for PnP devices on ppbus0: plip0: <PLIP network interface> on ppbus0 lpt0: <Printer> on ppbus0 lpt0: Interrupt-driven port ppi0: <Parallel I/O> on ppbus0 ad0: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata0-master using UDMA33 ad2: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata1-master using UDMA33 acd0: CDROM <DELTA OTC-H101/ST3 F/W by OIPD> at ata0-slave using PIO4 Mounting root from ufs:/dev/ad0s1a swapon: adding /dev/ad0s1b as swap device Automatic boot in progress... /dev/ad0s1a: FILESYSTEM CLEAN; SKIPPING CHECKS /dev/ad0s1a: clean, 48752 free (552 frags, 6025 blocks, 0.9% fragmentation) /dev/ad0s1f: FILESYSTEM CLEAN; SKIPPING CHECKS /dev/ad0s1f: clean, 128997 free (21 frags, 16122 blocks, 0.0% fragmentation) /dev/ad0s1g: FILESYSTEM CLEAN; SKIPPING CHECKS /dev/ad0s1g: clean, 3036299 free (43175 frags, 374073 blocks, 1.3% fragmentation) /dev/ad0s1e: filesystem CLEAN; SKIPPING CHECKS /dev/ad0s1e: clean, 128193 free (17 frags, 16022 blocks, 0.0% fragmentation) Doing initial network setup: hostname. ed0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255 inet6 fe80::5054::5ff::fede:731b%ed0 prefixlen 64 tentative scopeid 0x1 ether 52:54:05:de:73:1b lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x8 inet6 ::1 prefixlen 128 inet 127.0.0.1 netmask 0xff000000 Additional routing options: IP gateway=YES TCP keepalive=YES routing daemons:. additional daemons: syslogd. Doing additional network setup:. Starting final network daemons: creating ssh RSA host key Generating public/private rsa1 key pair. Your identification has been saved in /etc/ssh/ssh_host_key. Your public key has been saved in /etc/ssh/ssh_host_key.pub. The key fingerprint is: cd:76:89:16:69:0e:d0:6e:f8:66:d0:07:26:3c:7e:2d root@k6-2.example.com creating ssh DSA host key Generating public/private dsa key pair. Your identification has been saved in /etc/ssh/ssh_host_dsa_key. Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub. The key fingerprint is: f9:a1:a9:47:c4:ad:f9:8d:52:b8:b8:ff:8c:ad:2d:e6 root@k6-2.example.com. setting ELF ldconfig path: /usr/lib /usr/lib/compat /usr/X11R6/lib /usr/local/lib a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout /usr/X11R6/lib/aout starting standard daemons: inetd cron sshd usbd sendmail. Initial rc.i386 initialization:. rc.i386 configuring syscons: blank_time screensaver moused. Additional ABI support: linux. Local package initialization:. Additional TCP options:. FreeBSD/i386 (k6-2.example.com) (ttyv0) login: rpratt Password: Генерирование ключей RSA и DSA может занять некоторое время на медленных компьютерах. Это может случиться только при первой загрузке свежеустановленной системы. Последующие загрузки будут быстрее. Если X сервер был настроен и был выбран десктоп по умолчанию, он может быть запущен из командной строки командой startx. Завершение работы FreeBSD (FreeBSD Shutdown) Важно правильно завершать работу операционной системы. Нельзя просто выключать питание. Сначала нужно стать суперпользователем, введя в командной строке su и пароль root. Это сработает только если пользователь является членом группы wheel. Или зайдите под root и используйте команду shutdown -h now. The operating system has halted. Please press any key to reboot. Можно безопасно выключать питание после того, как будет выполнена команда shutdown и появится сообщение Please press any key to reboot. Если вместо выключения питания будет нажата любая клавиша, система перезагрузится. Вы также можете использовать комбинацию клавиш Ctrl Alt Del для перезагрузки системы, хотя это не рекомендуется в обычной ситуации.
Решение проблем установка решение проблем Следующий раздел описывает основные проблемы при установке, о которых обычно сообщают пользователи. Здесь также несколько вопросов и ответов от тех, кто хочет настроить двойную загрузку FreeBSD и &ms-dos; или &windows;. Что делать, если что-то идет не так По причине различных ограничений архитектуры PC, невозможно протестировать устройства достоверно на 100%, тем не менее, есть несколько вещей, которые вы можете сделать, если тестирование завершится неудачно. Сверьтесь с Информацией об оборудовании для вашей версии &os;, чтобы убедиться, что ваше оборудование поддерживается. Если оборудование поддерживается, но все же происходят зависания или вы встретились с другими проблемами, потребуется собрать собственное ядро. Это позволит вам добавить поддержку аппаратных устройств, отсутствующих в ядре GENERIC. Ядро на загрузочном диске настроено в предположении, что у большинства аппаратных устройств IRQ, адреса ввода-вывода и каналы DMA установлены производителем к значениям по умолчанию. Если оборудование было перенастроено, вам скорее всего потребуется отредактировать конфигурацию ядра и перекомпилировать его, чтобы сообщить FreeBSD, где что искать. Возможно также, что тестирование устройства, которого нет, приведет позже к ошибке тестирования существующего устройства. В этом случае тестирование конфликтующего драйвера (драйверов) должно быть запрещено. Некоторые проблемы установки можно обойти или уменьшить, обновив встроенное программное обеспечение различных компонент оборудования, особенно материнской платы. Встроенное программное обеспечение также называют BIOS и у большинства производителей компьютеров или материнских плат есть Web-сайты, где можно найти обновления и информацию об обновлениях. Большинство производителей настоятельно советуют не обновлять BIOS пока не возникнет серьезной необходимости, например появление критически важных обновлений. Процесс обновления может пойти неверно, что приведет к неустранимому повреждению микросхемы BIOS. Использование файловых систем &ms-dos; и &windows; В настоящее время, &os; не поддерживает файловые системы, сжатые с помощью программы Double Space™. Поэтому файловая система должна быть разжата, чтобы &os; смогла получить доступ к данным. Это может быть сделано с помощью приложения Compression Agent, находящегося в меню Пуск> Программы > Системные. &os; поддерживает файловые системы &ms-dos; (иногда называемые файловыми системами FAT). Команда &man.mount.msdosfs.8; включает такие файловые системы в существующую иерархию, тем самым обеспечивая доступ к их содержимому. Как правило, утилита &man.mount.msdosfs.8; непосредственно не вызывается; вместо этого она выполняется системой при наличии соответствующей записи в /etc/fstab или же вызывается утилитой &man.mount.8;, запущенной с соответствующими параметрами. Ниже приведен пример записи в /etc/fstab для файловой системы &ms-dos;: /dev/ad0sN /dos msdosfs rw 0 0 Каталог /dos должен быть создан заранее. Формат файла /etc/fstab подробно описан в &man.fstab.5;. Также приведем пример монтирования файловой системы &ms-dos; посредством &man.mount.8;: &prompt.root; mount -t msdosfs /dev/ad0s1 /mnt В этом примере файловая система &ms-dos; расположена на первом разделе первого жесткого диска. Ваша конфигурация может быть другой, проверьте вывод команд dmesg и mount. Они должны предоставить достаточно информации для определения названий разделов. Способ нумерации дисковых слайсов (то есть, разделов в терминах &ms-dos;) может отличаться от способа, принятого в других операционных системах. В частности, расширенным разделам &ms-dos; присваиваются номера, следующие за первичными разделами &ms-dos;. Утилита &man.fdisk.8; поможет определить, какие слайсы принадлежат &os;, а какие — другим операционным системам. Разделы NTFS также можно смонтировать похожим способом, используя команду &man.mount.ntfs.8;. Решение проблем: вопросы и ответы Моя система зависает на этапе определения оборудования во время загрузки, или система ведет себя странно во время установки, или же не определяется привод гибкого диска. На архитектурах i386, amd64 и ia64 при конфигурировании оборудования, обнаруженного во время загрузки, &os; повсеместно использует систему ACPI. К сожалению, до сих пор находятся неполадки как в драйвере ACPI, так и в материнских платах, так и в их BIOS. Использование ACPI можно отключить установив переменную hint.acpi.0.disabled на третьем этапе загрузки: set hint.acpi.0.disabled="1" Эта настройка сбрасывается каждый раз при перезагрузке системы, поэтому необходимо добавить строку hint.acpi.0.disabled="1" в файл /boot/loader.conf. Информация о загрузчике приведена в . Выполняется первая загрузка после установки &os;, ядро загружается и определяет аппаратное обеспечение, но загрузка останавливается с сообщением типа: changing root device to ad1s1a panic: cannot mount root Что это значит? Что можно сделать? И что это за строка вида bios_drive:interface(unit,partition)kernel_name, отображаемая в приглашении загрузчика? Это древняя проблема, проявляющаяся в случаях, когда загрузочный диск не является первым диском в системе. BIOS использует свою схему нумерации дисков по сравнению с &os;, и сложно правильно решить, как соответствуют эти нумерации. В случае, если загрузочный диск не является первым диском в системе, то &os; потребуется некоторая помощь. Есть два возможных случая, и в обоих вам придется сообщить &os; где находится корневая файловая система. Это делается указанием вручную следующих данных: номера диска (согласно нумерации BIOS), типа диска и номера диска (согласно определениям &os;). Первый случай: у вас имеется два IDE диска, каждый из них сконфигурирован как мастер на соответствующей шине IDE, и вы намереваетесь загрузить &os; с второго диска. BIOS определяет эти диски как disk 0 и disk 1, в то время как &os; определяет их как ad0 и ad2. &os; находится на disk 1 (BIOS-нумерация), его тип — ad и номер — 2 (по данным &os;), следовательно, необходимо указать: 1:ad(2,a)kernel Заметьте, если второй диск настроен как подчиненный (slave) на первой шине IDE, то указание вышеприведённого необязательно (а по существу, еще и неверно). Второй случай подразумевает загрузку с диска SCSI при существующих в системе дисках IDE. В этом случае, согласно определениям &os; номер диска меньше, чем номер по представлениям BIOS. Если у вас есть два диска IDE и диск SCSI, то, согласно BIOS, номер SCSI диска — 2, а согласно &os;, тип — da и номер — 0, следовательно, вам необходимо указать следующее: 2:da(0,a)kernel чтобы сообщить &os;, что вы намереваетесь загрузить систему с диска 2 по нумерации BIOS, который является первым диском в системе. Если бы у вас был один диск IDE, вам бы пришлось использовать 1: (по нумерации BIOS). Определив верные параметры, внесите их в том виде, как вы их набирали, в файл /boot.config. Если не указывается иначе, то &os; будет использовать содержимое этого файла как значение по умолчанию в приглашении boot:. Я перехожу к загрузке с жесткого диска впервые после установки &os;, но приглашение Boot Manager всякий раз выводит только F? в меню загрузчика, и на этом загрузка прерывается. При установке &os; в редакторе разделов была указана неверная геометрия жесткого диска. Вернитесь в редактор разделов и укажите действительную геометрию вашего жесткого диска. Вам придется переустановить заново &os;. Если вы затрудняетесь определить верную геометрию для вашей машины, то сделайте следующее: установите небольшой раздел DOS вначале диска, а &os; разместите после него. Установочная программа обнаружит раздел DOS и попробует определить значение геометрии по этому разделу, что, как правило, завершается успехом. Следующий способ не рекомендуется, он оставлен здесь для справки:
Если вы устанавливаете выделенный сервер &os; или рабочую станцию, в которых вопросы совместного существования DOS, Linux или иной операционной системы в будущем не возникнут, то у вас есть возможность использовать весь диск (опция A в редакторе разделов), после выбора которой &os; займет весь диск от самого первого до самого последнего сектора. При этом, все вопросы геометрии диска станут неактуальными.
Система определяет мою сетевую карту &man.ed.4;, но я постоянно получаю сообщения device timeout. Возможно ваша сетевая карта находится не на том IRQ, которое указано в файле /boot/device.hints. Драйвер &man.ed.4; по умолчанию не использует программную конфигурацию (значения, вводимые утилитой EZSETUP в DOS), но ситуация изменится, если вы укажете -1 в значении хинт-переменной для этого интерфейса. Либо осуществите ручное конфигурирование устройства переключением джамперов на карте (также может потребоваться изменение конфигурации ядра), либо же смените значение IRQ на -1, установив переменную hint.ed.0.irq="-1". Это укажет ядру использовать программное конфигурирование. Также вероятно, что ваша карта находится на IRQ номер 9, которое используется совместно с IRQ номер 2, и которое часто является причиной проблем (особенно, если ваш VGA адаптер занимает IRQ номер 2!). Постарайтесь избежать использования IRQ номер 2 или 9 вообще. color contrast Когда sysinstall запущен в терминале X11, то желтый шрифт на светло сером фоне практически не различим. Есть ли способ обеспечить лучший контраст для этого приложения? Если вы уже установили X11, а цвета, выбираемые по умолчанию утилитой sysinstall, делают текст неразборчивым в &man.xterm.1; или &man.rxvt.1;, то добавьте следующую строку XTerm*color7: #c0c0c0 в ваш ~/.Xdefaults и вы получите более тёмный фоновый серый цвет.
Valentino Vaschetto Предоставлено Marc Fonvieille Обновил Расширенное руководство по установке Этот раздел описывает особые случаи установки FreeBSD. Установка FreeBSD на систему без монитора или клавиатуры установка без монитора (последовательная консоль) последовательная консоль Этот тип установки называется установка без монитора, потому что на компьютере, на который вы пробуете установить FreeBSD или не подсоединен монитор, или даже нет VGA выхода. Вы спросите, как это возможно? Используя последовательную консоль. Последовательная консоль в своей основе имеет другой компьютер, который служит дисплеем и клавиатурой для системы. Чтобы сделать это, создайте инсталляционный USB-накопитель, как описано в , или скачайте надлежащий установочный образ ISO (описано в ). Чтобы модифицировать настройки источника установки для загрузки с последовательной консоли, следуйте этой инструкции: Загрузка с USB-накопителя с выводом на последовательную консоль mount Если вы произведете загрузку с только что созданного USB-накопителя, FreeBSD загрузится в нормальный режим установки. Мы хотим, чтобы FreeBSD загрузилась на последовательную консоль для нашей установки. Чтобы сделать это, смонтируйте USB-накопитель на вашу систему FreeBSD используя команду &man.mount.8;. &prompt.root; mount /dev/da0a /mnt Измените названия файла устройства и точки монтирования в соответствии со значениями для вашей конфигурации. Теперь необходимо настроить USB-накопитель для загрузки на последовательную консоль. В файл loader.conf, находящийся на файловой системе USB-накопителя, добавьте запись, устанавливающую в качестве системной консоли последовательную консоль. &prompt.root; echo 'console="comconsole"' >> /mnt/boot/loader.conf Далее, когда ваш USB-накопитель правильно настроен, размонтируйте его с помощью команды &man.umount.8;: &prompt.root; umount /mnt Теперь извлеките USB-накопитель и перейдите к третьему пункту этой инструкции. Загрузка с CD с выводом на последовательную консоль mount Если вы произведете загрузку с только что записанного установочного CD диска (подробности создания которого описаны в ), &os; загрузится в нормальный режим установки. Однако, вам необходимо, чтобы &os; загрузилась на последовательную консоль. Для этого придется исправить ISO образ заранее, до его записи на диск CD-R. В приведённом далее примере подразумевается, что подготовку образа вы выполняете на вашем втором компьютере, работающем под управлением &os;. Также подразумевается, что на нём есть файл загрузочного ISO образа, например &os;-8.1-RELEASE-i386-disc1.iso. Извлеките из образа все файлы утилитой &man.tar.1;: &prompt.root; mkdir /path/to/headless-iso &prompt.root; tar -C /path/to/headless-iso -pxvf &os;-8.1-RELEASE-i386-disc1.iso Теперь необходимо внести некоторые изменения в набор файлов и каталогов, полученных из образа. Добавьте в файл loader.conf запись, устанавливающую в качестве системной консоли последовательную консоль. &prompt.root; echo 'console="comconsole"' >> /path/to/headless-iso/boot/loader.conf Далее необходимо создать новый образ ISO из извлеченного и исправленного старого образа. Для этого воспользуйтесь утилитой &man.mkisofs.8; (порт sysutils/cdrtools): &prompt.root; mkisofs -v -b boot/cdboot -no-emul-boot -r -J -V "Headless_install" \ -o Headless-&os;-8.1-RELEASE-i386-disc1.iso /path/to/headless-iso А теперь, имея в распоряжении модифицированный новый образ ISO, самое время записать его на диск CD-R при помощи вашей любимой программы для записи дисков. Подсоединение нуль-модемного кабеля нуль-модемный кабель Теперь нужно соединить два компьютера нуль-модемным кабелем. Просто подсоедините этот кабель к последовательным портам двух компьютеров. Обычный последовательный кабель не будет работать, вам потребуется нуль-модемный кабель, поскольку в нем некоторые линии соединены накрест. Загрузка для установки Настало время начать установку. Вставьте USB-накопитель в компьютер, на который вы будете производить установку без монитора и включите его. Если же вы используете загрузочный CD диск, вставьте его в привод после того, как включите машину. Подключение к компьютеру без монитора cu Теперь вы можете подключиться к этому компьютеру с помощью &man.cu.1;: &prompt.root; cu -l /dev/cuau0 В &os; 7.X следует использовать иное имя файла устройства: &prompt.root; cu -l /dev/cuad0 Это все! Теперь вы можете управлять компьютером без монитора через сессию cu. Машина загрузит ядро, а затем появится выбор типа терминала. Выберите цветную консоль FreeBSD и проводите установку! Подготовка собственного источника установки Чтобы не повторяться, диск FreeBSD в данном случае означает FreeBSD CDROM или DVD, который вы купили или подготовили самостоятельно. Может быть несколько ситуаций, в которых вам потребуется подготовить собственный диск и/или источник для установки FreeBSD. Это может быть физический носитель, такой как лента, или источник, с которого sysinstall сможет взять файлы, такой как локальный сервер FTP, или раздел &ms-dos;. Например: У вас есть много компьютеров, подсоединенных к локальной сети, и один диск с FreeBSD. Вы хотите создать локальный сервер FTP, используя содержимое диска FreeBSD, а затем использовать с ваших компьютеров этот локальный сервер FTP вместо подсоединения к интернет. У вас есть диск с FreeBSD, и FreeBSD не распознает ваш CD/DVD привод, а &ms-dos;/&windows; распознает. Вы хотите скопировать файлы установки FreeBSD на раздел DOS этого же компьютера и установить FreeBSD, используя эти файлы. На компьютере, на который вы хотите провести установку, нет ни привода CD/DVD, ни сетевой карты, но вы можете подсоединиться в Laplink-стиле последовательным или параллельным кабелем к другому компьютеру, на котором они есть. Вы хотите создать ленту, которую можно использовать для установки FreeBSD. Создание установочного CDROM В составе каждого релиза проект FreeBSD предоставляет доступ как минимум к двум образам CDROM (ISO images) для каждой поддерживаемой архитектуры. Эти образы могут быть записаны (прожжены) на CD если у вас есть CD-рекордер, а затем использованы для установки FreeBSD. Если у вас есть CD-рекордер и дешевый канал интернет, это простейший путь установить FreeBSD. Скачайте соответствующие ISO образы ISO образы для каждого релиза могут быть загружены с ftp://ftp.FreeBSD.org/pub/FreeBSD/ISO-IMAGES-архитектура/версия или с ближайшего зеркала. Замените архитектура и версия в соответствии архитектурой и номером релиза соответственно. Этот каталог обычно содержит следующие образы: Названия ISO-образов дисков FreeBSD 7.<replaceable>X</replaceable> и 8.<replaceable>X</replaceable> и их значения Имя файла Содержимое &os;-version-RELEASE-arch-bootonly.iso Этот образ CD предоставляет возможность начать процесс установки, загрузившись с диска в приводе CD-ROM. Однако, в нём отсутствуют архивы, необходимые для установки &os; с этого же диска. Подразумевается, что необходимые файлы будут скачаны из доступных в сети источников (например, c сервера FTP). &os;-version-RELEASE-arch-dvd1.iso.gz Этот образ DVD содержит всё необходимое для установки базовой системы &os;, а также — документацию и набор прекомпилированных пакетов. Также образ поддерживает возможность загрузки в режим livefs. &os;-version-RELEASE-arch-memstick.img Этот образ предназначен для создания загрузочных USB-накопителей. Такой накопитель может использоваться для установки операционной системы на машины, поддерживающие загрузку с USB дисков. USB-накопитель также может использоваться для аварийного восстановления системы (содержит livefs). В образе также имеются пакеты с документацией. Для &os; версии 7.3 и более ранних подобных образов не создавалось. &os;-version-RELEASE-arch-disc1.iso Этот образ CD содержит базовую систему &os; и набор пакетов с документацией. &os;-version-RELEASE-arch-disc2.iso Этот образ CD содержит пакеты сторонних разработчиков, которые смогли поместиться на диск. Подобные образы не создавались для &os; 8.0 и более поздних. &os;-version-RELEASE-arch-disc3.iso Еще один образ CD, заполненный пакетами сторонних разработчиков. Подобные образы не создавались для &os; 8.0 и более поздних. version-RELEASE-arch-docs.iso Документация &os;. &os;-version-RELEASE-arch-livefs.iso Данный образ CD поддерживает загрузку в режим аварийного восстановления системы (содержит livefs) и не предназначен для выполнения установки операционной системы с самого диска.
Релизы &os; 7.X до &os; 7.3 и &os; 8.X до &os; 8.1 использовали иную систему именования образов. В именах их образов ISO отсутствовал префикс &os;-. Вы должны загрузить либо ISO-образ bootonly (если он доступен), либо образ disc1. Не загружайте их оба, так как образ disc1 содержит всё, что есть на ISO-образе bootonly. Используйте ISO-образ bootonly, если доступ в Internet для вас обходится недорого. Он позволит вам установить &os;, и вы сможете установить впоследствии программы сторонних производителей используя систему портов/пакетов (смотрите ) если необходимо. Используйте образ dvd1, если вы хотите установить релиз &os; и получить достаточный набор программ сторонних производителей, расположенных на этом диске. Дополнительные образы дисков полезны, но не необходимы, особенно если у вас есть высокоскоростной доступ к интернет.
Запись CD Затем вам нужно записать образы CD на диски. Если вы делаете это из другой системы FreeBSD, обратитесь к за более подробной информацией (в частности, и ). Если вы делаете это в другой системе, потребуется использовать те утилиты для управления CD-рекордером, которые есть в этой системе. Образы дисков предоставляются в стандартном формате ISO, который поддерживается многими программами.
Если вы интересуетесь созданием собственных вариантов релизов FreeBSD, пожалуйста, прочтите статью о Процессе подготовки релизов.
Создание локального сервера FTP с FreeBSD установка сеть FTP Диск FreeBSD сформирован так же, как и сервер FTP. Это сильно упрощает создание локального сервера FTP, который может быть использован другими компьютерами вашей сети для установки FreeBSD. Убедитесь, что на компьютере FreeBSD, на котором будет установлен сервер FTP, CDROM находится в приводе и смонтируйте /cdrom. &prompt.root; mount /cdrom Создайте учетную запись для anonymous FTP в /etc/passwd. Сделайте это, отредактировав /etc/passwd с помощью &man.vipw.8; и добавив эту строку: ftp:*:99:99::0:0:FTP:/cdrom:/nonexistent Убедитесь что сервис FTP включен в /etc/inetd.conf. Всякий, кто может подсоединиться по сети к вашему компьютеру, может выбрать тип носителя FTP и набрать ftp://ваш компьютер после выбора Other в меню серверов FTP во время установки. Если загрузочный носитель (обычно это дискеты) для ваших FTP-клиентов в точности не соответствует версии, находящейся на локальном сервере FTP, то sysinstall не позволит вам завершить установку. Если версии похожи и вы хотите это явно указать, то перейдите в меню Options и замените название дистрибутива на any. Этот подход хорош для компьютера в вашей локальной сети, защищенного с помощью файрволла. Предоставление сервиса FTP другим компьютерам через интернет (а не через локальную сеть) привлекает к вашему компьютеру внимание кракеров и других лиц, чье внимание нежелательно. Мы настоятельно рекомендуем придерживаться правильной политики безопасности, если вы делаете это. Создание дискет для установки установка дискеты Если вам требуется выполнить установку с дискет (чего мы не рекомендуем делать) или по причине не поддерживаемого оборудования, или просто потому, что вы не любите простых путей, потребуется сначала подготовить несколько дискет для установки. Как минимум, вам потребуется столько 1.44 MB дискет, сколько нужно, чтобы вместить все файлы из каталога base (base distribution). Если вы подготавливаете эти дискеты из DOS, они должны быть отформатированы с помощью команды &ms-dos; FORMAT. Если вы используете &windows;, используйте Explorer для форматирования дисков (кликните правой кнопкой мыши на диске A: и выберите Format). Не доверяйте заводскому форматированию дискет. Отформатируйте их еще раз самостоятельно, просто для уверенности. Множество проблем, о которых сообщали наши пользователи, были результатом использования неправильно отформатированных дисков, поэтому мы сейчас обращаем на это внимание. Если вы создаете образы на другом компьютере FreeBSD, форматирование все еще не лишне, хотя вам не потребуется создавать файловую систему DOS на каждой дискете. Вы можете использовать bsdlabel и newfs для создания на них файловых систем UFS, в следующей последовательности (для 3.5" 1.44 MB дискет): &prompt.root; fdformat -f 1440 fd0.1440 &prompt.root; bsdlabel -w fd0.1440 floppy3 &prompt.root; newfs -t 2 -u 18 -l 1 -i 65536 /dev/fd0 Затем вы можете смонтировать их и писать на них как на любую другую файловую систему. После форматирования дискет вам потребуется скопировать на них файлы. Файлы дистрибутива разделены на части, размер которых позволяет легко разместить пять частей на обычной 1.44 MB дискете. Заполните все дискеты файлами, помещая столько файлов на одну дискету, сколько уместится, пока у вас не будет всех необходимых компонент дистрибутива. Каждый компонент должен располагаться в подкаталоге на дискете, например a:\base\base.aa, a:\base\base.ab, и так далее. Файл base.inf также необходимо поместить на первую дискету набора base. Прочитав этот файл, установочная программа определяет, сколько частей необходимо скопировать и соединить для сборки дистрибутива. Как только в процессе установки появится экран Media, выберите Floppy и установка продолжится. Установка с раздела &ms-dos; установка с MS-DOS Чтобы подготовиться к установке с раздела &ms-dos;, скопируйте файлы с дистрибутива в каталог freebsd корневого каталога раздела. Например, c:\freebsd. Структура каталога CDROM или сервера FTP должна быть в точности воспроизведена в этом каталоге, мы предлагаем использовать команду DOS xcopy если вы копируете дистрибутив с CD. Например, чтобы подготовить минимальную установку FreeBSD: C:\> md c:\freebsd C:\> xcopy e:\bin c:\freebsd\bin\ /s C:\> xcopy e:\manpages c:\freebsd\manpages\ /s Предполагается, что на C: есть свободное место, а на E: смонтирован CDROM. Если у вас нет CDROM, можно загрузить дистрибутив с ftp.FreeBSD.org. Каждый компонент находится в своем собственном каталоге, например компонент base можно найти в каталоге &rel.current;/base/. Все компоненты, которые вы будете устанавливать с раздела &ms-dos; (и для которых у вас есть место), нужно расположить в c:\freebsd — для минимальной установки нужна только компонента BIN. Создание ленты для установки установка с ленты QIC/SCSI Установка с ленты это возможно самый простой метод, уступающий только установке с FTP или CDROM. Программа установки может найти на ленте файлы, которые записаны на нее с помощью tar. После получения всех файлов дистрибутива, которые вам нужны, запишите их на ленту с помощью tar: &prompt.root; cd /freebsd/distdir &prompt.root; tar cvf /dev/rwt0 dist1 ... dist2 Когда вы приступите к установке, нужно убедиться в наличии достаточного места во временном каталоге (который будет предложено выбрать), чтобы поместилось все содержимое записанной ленты. Поскольку лента — устройство не-произвольного доступа, этот метод установки требует некоторого места во временном хранилище. При начале установки лента должна быть в приводе до загрузки с дискеты. В ином случае она может быть не найдена при тестировании устройств. Перед установкой по сети установка сеть последовательная (PPP) установка сеть параллельная (PLIP) установка сеть Ethernet Есть три возможных типа установки по сети. Ethernet (стандартный Ethernet контроллер), последовательный порт (PPP), или параллельный порт (PLIP (laplink кабель)). Для самой быстрой установки по сети хорошим выбором будет Ethernet адаптер! FreeBSD поддерживает большинство PC Ethernet карт; список поддерживаемых карт (и требуемых для них установок) предоставляется в информации об оборудовании для каждого релиза FreeBSD. Если вы используете одну из поддерживаемых PCMCIA Ethernet карт, убедитесь также, что она подключена перед тем, как ноутбук будет включен! К сожалению, FreeBSD в настоящее время не поддерживает горячее подключение PCMCIA карт во время установки. Вам также потребуется знать IP адрес в сети, сетевую маску для класса подсети, и имя компьютера. Если вы делаете установку через соединение PPP и у вас нет статического IP, не бойтесь, IP адрес будет динамически выделен вам провайдером. Системный администратор может подсказать вам, какие значения использовать для данной установки по сети. Если вы будете обращаться к другим хостам по имени, а не по IP адресу, понадобится также сервер DNS и, возможно, адрес шлюза (если вы используете PPP, это IP адрес вашего провайдера), чтобы связаться с ним. Если вы хотите производить установку с FTP через HTTP прокси, потребуется также адрес прокси. Если вы не знаете ответов на все или большинство этих вопросов, свяжитесь с системным администратором или ISP перед тем, как начать этот тип установки. Если вы используете модем, PPP это конечно почти единственный выбор. Убедитесь что у вас есть информация о провайдере, так как она понадобится на довольно ранней стадии процесса установки. Если вы используете PAP или CHAP для соединения с провайдером (другими словами, вы можете соединяться с провайдером из &windows; без использования скрипта), все что вам понадобится это ввести dial в приглашении ppp. Иначе вам нужно знать, как дозвониться до провайдера с помощью AT команд, специфичных для вашего модема, так как программа дозвона PPP предоставляет только очень простой эмулятор терминала. Обратитесь к руководству user-ppp и FAQ для получения более подробных сведений. Если у вас проблемы, логи могут быть выведены на экран с помощью команды set log local .... Если доступно постоянное соединение с другой машиной - FreeBSD (2.0-R или выше), вы можете также подумать об + FreeBSD, вы можете также подумать об установке через параллельный порт laplink кабелем. Скорость соединения через параллельный порт значительно выше, чем обычно возможно через последовательную линию (до 50 кбайт/с), это приведет к ускорению установки. Перед установкой через NFS установка сеть NFS Установка через NFS очень проста. Просто скопируйте компоненты FreeBSD, которые вам нужны, на NFS сервер, а затем укажите на него при выборе источника установки NFS. Если этот сервер поддерживает только привилегированные порты (это как правило так для рабочих станций Sun), потребуется установить параметр NFS Secure в меню Options перед тем, как начать установку. Если у вас Ethernet карта плохого качества с низкой скоростью передачи данных, вы возможно захотите переключить флаг NFS Slow в Options. Чтобы установка по NFS работала, сервер должен поддерживать монтирование подкаталогов, например, если установочный каталог дистрибутива FreeBSD &rel.current; находится на: ziggy:/usr/archive/stuff/FreeBSD, ziggy должен позволять непосредственное монтирование /usr/archive/stuff/FreeBSD, а не только /usr или /usr/archive/stuff. В файле FreeBSD /etc/exports это управляется параметром . Другие NFS серверы могут иметь другие соглашения. Если вы получаете сообщения сервера permission denied, это может означать, что соответствующая опция не включена.
diff --git a/ru_RU.KOI8-R/books/handbook/kernelconfig/chapter.sgml b/ru_RU.KOI8-R/books/handbook/kernelconfig/chapter.sgml index dbcdbed2ed..c9d639ba87 100644 --- a/ru_RU.KOI8-R/books/handbook/kernelconfig/chapter.sgml +++ b/ru_RU.KOI8-R/books/handbook/kernelconfig/chapter.sgml @@ -1,1573 +1,1585 @@ Jim Mock Обновил и реструктуризовал Jake Hamby Предоставил Александром Коваленко Переведено Настройка ядра FreeBSD Краткий обзор kernel сборка собственного ядра Ядро — это основная часть операционной системы &os;. Оно ответственно за управление памятью, параметры безопасности, работу с сетью, доступ к дискам и многое другое. Несмотря на то, что &os; становится всё более динамически конфигурируемой, иногда приходится собирать собственное ядро. После прочтения этой главы вы узнаете: Почему вам может понадобиться сборка собственного ядра. Как написать файл конфигурации ядра или изменить существующий. Как использовать файл конфигурации ядра для того, чтобы создать и собрать новое ядро. Как установить новое ядро. Что делать, если что-то не работает или работает не так, как должно. Все команды, приводимые в этой главе в качестве примера, должны выполняться от пользователя root. Зачем собирать собственное ядро? Традиционно в &os; использовалось так называемое монолитное ядро. Это означает, что ядро — это одна большая программа, которая поддерживает фиксированный набор устройств и в случае, если необходимо изменить его поведение, требуется сборка нового ядра и перезагрузка компьютера уже с новым ядром. На сегодняшний день &os; быстро продвигается к модели, в которой большая часть функциональности содержится в модулях, которые могут быть при необходимости динамически загружены и выгружены из ядра. Это позволяет ядру использовать устройства, которые внезапно появились в системе (например, устройства PCMCIA в лэптопе) или добавлять новую функциональность в ядро, которая не была необходима в момент первоначальной сборки ядра. Такой подход известен как модульность ядра. Несмотря на это, всё ещё иногда бывает необходимо, чтобы некоторая функциональность была вкомпилирована в ядро статически. В некоторых случаях это продиктовано тем, что эта функциональность настолько сильно привязана к ядру, что не может быть динамически загружаемой. В других случаях это может быть просто потому, что никто не уделил время написанию динамически загружаемого модуля для этой функциональности. Сборка собственного ядра — один из наиболее важных ритуалов, совершаемых опытными пользователями BSD. Несмотря на длительность этого процесса, ваша &os; останется только в выигрыше. В отличие от ядра GENERIC, которое должно поддерживать широкий спектр аппаратного обеспечения, собственное ядро содержит поддержку аппаратного обеспечения только вашего компьютера. Это может давать следующие преимущества: Меньшее время загрузки. Поскольку ядро будет пытаться определить только то аппаратное обеспечение, которое установлено в вашем компьютере, время, которое потребуется системе для загрузки, может значительно уменьшиться. Уменьшение использования памяти. Собственное ядро часто использует меньше памяти, чем ядро GENERIC, так как из него исключены лишние драйвера и неиспользуемые функциональные возможности. Это важно тем, что часть оперативной памяти постоянно занята кодом ядра и поэтому не может быть выделена приложениям. Именно по этой причине собственное ядро особенно полезно при использовании систем с малым объемом оперативной памяти. Поддержка дополнительного аппаратного обеспечения. Собственное ядро позволяет вам добавить поддержку устройств, отсутствующих в ядре GENERIC. Tom Rhodes Написал Определение аппаратного обеспечения Перед тем, как углубиться в конфигурирование ядра, было бы разумно составить перечень установленного в компьютер аппаратного обеспечения. Если &os; не является основной операционной системой, то перечень оборудования может быть легко составлен на основании анализа конфигурации текущей операционной системы. Например, Диспетчер устройств (Device Manager) от µsoft; обычно содержит необходимую информацию об установленных устройствах. Диспетчер устройств находится на панели управления (control panel). У некоторых версий µsoft.windows; есть значок Система (System), вызов которого отобразит экран, содержащий среди прочих и Диспетчер устройств. Если других операционных систем на машине не установлено, системному администратору придется искать эту информацию самостоятельно. Один из методов подразумевает использование утилиты &man.dmesg.8; и команды &man.man.1;. У большинства драйверов во &os; есть страницы справочника, содержащие список поддерживаемого оборудования, а найденные во время начальной загрузки устройства будут перечислены в &man.dmesg.8;. К примеру, следующие строки информируют о том, что драйвер psm обнаружил мышь: psm0: <PS/2 Mouse> irq 12 on atkbdc0 psm0: [GIANT-LOCKED] psm0: [ITHREAD] psm0: model Generic PS/2 mouse, device ID 0 Этот драйвер необходимо будет включить в конфигурацию собственного ядра или загрузить посредством &man.loader.conf.5;. В некоторых случаях dmesg отображает только системные сообщения вместо сообщений начальной загрузки. В таких случаях необходимо обращаться к файлу /var/run/dmesg.boot. Еще один метод нахождения аппаратного обеспечения подразумевает использование достаточно информативной утилиты &man.pciconf.8;. Например: ath0@pci0:3:0:0: class=0x020000 card=0x058a1014 chip=0x1014168c rev=0x01 hdr=0x00 vendor = 'Atheros Communications Inc.' device = 'AR5212 Atheros AR5212 802.11abg wireless' class = network subclass = ethernet Эта часть вывода, полученная в результате запуска команды pciconf , показывает, что драйвер ath обнаружил беспроводное Ethernet устройство. Набрав man ath, вы получите страницу справочника &man.ath.4;. Также, для извлечения необходимой информации, можно воспользоваться ключом к команде &man.man.1;. В вышеприведенном случае можно набрать: &prompt.root; man -k Atheros чтобы получить страницы справочника, содержащие определенное слово: ath(4) - Atheros IEEE 802.11 wireless network driver ath_hal(4) - Atheros Hardware Access Layer (HAL) Теперь, имея в распоряжении перечень аппаратного оборудования, можно безбоязненно приступить к сборке специализированного ядра. Драйвера, подсистемы и модули ядра kernel drivers / modules / subsystems Перед построением специализированного ядра, обдумайте причины, побудившие вас к этому. Если требуется поддержка специального оборудования, то она наверняка уже реализована в виде модуля. Модули ядра находятся в каталоге /boot/kernel, и они могут быть динамически включены в работающее ядро при помощи &man.kldload.8;. Если не все, то большинство драйверов существуют в виде модулей, и у них есть соответствующая страница справочника. К примеру, в предыдущем разделе упоминался драйвер ath беспроводного Ethernet устройства. Соответствующая ему страница справочника гласит: Alternatively, to load the driver as a module at boot time, place the following line in &man.loader.conf.5: if_ath_load="YES" Как уже выше сказано, добавление строки if_ath_load="YES" в файл /boot/loader.conf позволит динамически загружать этот модуль во время загрузки системы. В некоторых случаях, однако, интересующего вас модуля не существует. Чаще всего это справедливо для определенных подсистем и очень важных драйверов. Например, поддержка файловой системы &os; (FFS) является обязательной опцией в ядре. Как и поддержка сети (INET). К сожалению, единственный способ определить является ли драйвер обязательным — это проверить наличие соответствующего модуля. Довольно легко удалить встроенную поддержку устройства или опцию, получив тем самым неработоспособное ядро. Например, если драйвер &man.ata.4; изъят из конфигурации ядра, то система, использующая диски ATA, может не загрузиться без записи, добавленной в loader.conf. Если есть сомнения, проверьте модуль, и только потом оставьте поддержку в ядре. Сборка и установка собственного ядра kernel сборка / установка Во-первых, давайте сделаем краткий обзор каталога, в котором будет происходить сборка ядра. Все каталоги, которые будут упоминаться, будут относительными по отношению к основному каталогу /usr/src/sys, который также доступен как каталог /sys. Этот каталог содержит множество подкаталогов, представляющих собой различные части ядра, но наиболее важным для нас будет каталог arch/conf, в котором вы будете редактировать конфигурационный файл ядра и в котором находится каталог compile, где будет собираться ваше ядро. arch может быть - i386, alpha, + i386, amd64, ia64, powerpc, sparc64 или pc98 (альтернативная ветвь аппаратного обеспечения, популярная в Японии). Все, что находится внутри каталога определенной архитектуры, относится только к этой архитектуре; остальной код является машинно независимым и общим для всех платформ, на которые &os; может быть потенциально портирована. Обратите внимание на логическую структуру каталогов, в которой каждое поддерживаемое устройство, каждая файловая система и каждая опция размещается в своём собственном каталоге. В примерах этой главы подразумевается, что вы используете архитектуру i386. Если это не так, измените каталоги, указанные в примерах, в соответствии с архитектурой вашей системы. Если в вашей системе отсутствует каталог /usr/src/sys, это означает, что исходные тексты ядра не были установлены. Наиболее простой способ установить их - запустить sysinstall как root, выбрать Configure, потом Distributions, потом src, потом base и sys. Если вы испытываете отвращение к sysinstall и у вас есть доступ к официальному &os; CDROM, вы также можете установить исходные тексты при помощи командной строки: &prompt.root; mount /cdrom &prompt.root; mkdir -p /usr/src/sys &prompt.root; ln -s /usr/src/sys /sys &prompt.root; cat /cdrom/src/ssys.[a-d]* | tar -xzvf - &prompt.root; cat /cdrom/src/sbase.[a-d]* | tar -xzvf - Затем, перейдите в каталог arch/conf и скопируйте файл конфигурации GENERIC в файл с выбранным вами именем. Например: &prompt.root; cd /usr/src/sys/i386/conf &prompt.root; cp GENERIC MYKERNEL По традиции имя состоит из букв в верхнем регистре, и если вы поддерживаете несколько компьютеров &os; на различном оборудовании, хорошая идея добавлять это имя к имени хоста. Мы назвали ядро MYKERNEL в этом примере. Помещение файла конфигурации ядра в /usr/src может быть плохой идеей. Если вы испытываете проблемы, их можно решить удалив /usr/src и начав все с начала. После этого обычно требуется несколько секунд, чтобы понять, что вы удалили собственный файл настройки ядра. Не редактируйте непосредственно GENERIC, он может быть также перезаписан и при следующем обновлении дерева исходных текстов, и изменения ядра будут потеряны. Вы можете сохранить файл конфигурации ядра в другом месте, а затем создать символическую ссылку на этот файл в каталоге i386. Например: &prompt.root; cd /usr/src/sys/i386/conf &prompt.root; mkdir /root/kernels &prompt.root; cp GENERIC /root/kernels/MYKERNEL &prompt.root; ln -s /root/kernels/MYKERNEL Теперь отредактируйте файл MYKERNEL в своём любимом текстовом редакторе. Если вы только начинаете, единственным доступным редактором скорее всего будет vi, который слишком сложен для того, чтобы описать его здесь, но в библиографии перечислено множество книг, в которых его использование хорошо освещено. Однако &os; предоставляет более простой редактор ee, который, если вы — новичок, подойдёт вам больше всего. Не стесняйтесь изменять строки комментариев в начале файла, с тем, чтобы отобразить вашу конфигурацию или изменения, которые вы сделали по сравнению с GENERIC. SunOS Если вам приходилось собирать ядро для &sunos; или какой-либо другой операционной системы типа BSD, многое из того, что содержится в этом файле будет очень знакомо вам. Если же вы, напротив, использовали другую операционную систему, такую как DOS, файл конфигурации GENERIC может показаться вам крайне сложным, поэтому следуйте инструкциям в разделе Конфигурационный файл медленно и внимательно. Если вы синхронизируете дерево исходных текстов с деревом проекта &os;, не забудьте свериться с файлом /usr/src/UPDATING перед обновлением. В этом файле описаны все важные вопросы и области исходного кода, требующие особого внимания. /usr/src/UPDATING всегда соответствует версии ваших исходных текстов &os;, поэтому является более актуальным источником информации, чем это руководство. Теперь вы должны скомпилировать ядро. Сборка ядра Перейдите в каталог /usr/src: &prompt.root; cd /usr/src Соберите ядро: &prompt.root; make buildkernel KERNCONF=MYKERNEL Установите новое ядро: &prompt.root; make installkernel KERNCONF=MYKERNEL Для сборки ядра необходимо наличие всех исходных файлов &os;. По умолчанию, при построении ядра, все модули ядра так же будут пересобраны. Если вы хотите обновить ядро быстрее или построить только определённые модули, то вам нужно отредактировать файл /etc/make.conf перед началом процесса сборки ядра: MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs Эта переменная устанавливает список модулей, которые нужно построить вместо построения всех модулей. WITHOUT_MODULES = linux acpi sound ntfs В этой переменной перечисляются основные модули, которые необходимо исключить из процесса сборки. За другими переменными, которые вы можете посчитать полезными в процессе сборки ядра, обращайтесь к странице справочника &man.make.conf.5;. /boot/kernel.old Новое ядро будет скопировано в каталог /boot/kernel как /boot/kernel/kernel, а старое ядро будет перемещено в /boot/kernel.old/kernel. Теперь перезагрузите систему для того, чтобы использовать новое ядро. Если что-то пойдёт не так, вы можете обратиться к разделу Решение проблем в конце этой главы, который может оказаться полезен. Не забудьте прочитать раздел, который объясняет как исправить ситуацию, когда ядро не загружается. Другие файлы, относящиеся к процессу загрузки, такие как загрузчик (&man.loader.8;) и его конфигурационные файлы, размещаются в /boot. Модули сторонних производителей могут быть помещены в /boot/kernel, хотя пользователи должны знать, что очень важно, чтобы модули были синхронизированы с собранным ядром. Модули, не рассчитанные на работу с собранным ядром, могут вызвать нестабильность и некорректность работы. Joel Dahl - Обновил для &os; 6.X + Обновил Конфигурационный файл ядро NOTES NOTES ядро конфигурационный файл Формат конфигурационного файла достаточно прост. Каждая строка представляет собой ключевое слово и один или более аргументов. Для простоты большинство строк содержат только один аргумент. Всё, что следует за символом # является комментарием и игнорируется. Следующие разделы описывают каждый параметр, в порядке, в котором они появляются в GENERIC. За полным списком архитектурно-зависимых параметров и устройств обратитесь к файлу NOTES в том же каталоге, что и GENERIC. Архитектурно независимые параметры находятся в /usr/src/sys/conf/NOTES. - Начиная с &os; 5.0 появилась новая, допустимая в конфигурационном - файле директива include. Она позволяет включать + Директива include стала доступной + для использования в конфигурационных файлах. Она позволяет включать в текущий конфигурационный файл содержимое другого файла, тем самым упрощая процесс внесения небольших изменений в существующий файл. Например, если вам необходимо добавить всего несколько дополнительных опций или драйверов в ядро GENERIC, то вам придется поддерживать только разницу к файлу GENERIC: include GENERIC ident MYKERNEL options IPFIREWALL options DUMMYNET options IPFIREWALL_DEFAULT_TO_ACCEPT options IPDIVERT Большинство администраторов оценят значительные преимущества перед старым способом — написанием конфигурационного файла с нуля: ваш конфигурационный файл будет отображать только изменения относительно GENERIC. А после обновлений исходного кода, новые функциональные возможности, появившиеся в GENERIC, будут добавлены и в вашу конфигурацию, если только не препятствовать этому директивами nooptions или nodevice. Далее в этом разделе описывается типовой конфигурационный файл, его опции и устройства, а также их роли. Для сборки ядра со всеми возможными опциями (обычно используется для тестирования), выполните от имени суперпользователя (root) следующую команду: &prompt.root; cd /usr/src/sys/i386/conf >> make LINT kernel конфигурационный файл Это пример конфигурационного файла ядра GENERIC с различными дополнительными комментариями, которые могут понадобиться для ясности. Этот пример должен совпадать с вашей копией в /usr/src/sys/i386/conf/GENERIC практически полностью. параметры ядра machine machine i386 Это архитектура машины. Она должна быть одной из следующих: - alpha, amd64, + amd64, i386, ia64, pc98, powerpc, или sparc64. параметры ядра cpu cpu I486_CPU cpu I586_CPU cpu I686_CPU Эта опция указывает тип процессора, который используется в вашей системе. В конфигурационном файле может быть несколько вхождений этой опции (например, если вы не уверены, какой из типов процессора необходимо использовать — I586_CPU или I686_CPU), но для собственного ядра лучше указывать только тот тип процессора, который установлен в вашей системе. Если вы не уверены, какой тип необходимо использовать вам, вы можете воспользоваться файлом /var/run/dmesg.boot, чтобы увидеть протокол загрузки системы. параметры ядра ident ident GENERIC Этот параметр определяет метку ядра. Необходимо, чтобы она соответствовала названию файла конфигурации ядра, например MYKERNEL, если вы следовали инструкциям в предыдущих примерах. Значение, которое вы присвоите параметру ident будет выводиться в процессе загрузки, поэтому полезно давать новым ядрам другие имена для того, чтобы отличать их от обычного ядра (например, если вы хотите собрать экспериментальное ядро). #To statically compile in device wiring instead of /boot/device.hints #hints "GENERIC.hints" # Default places to look for devices. &man.device.hints.5; используются для настройки параметров драйверов устройств. Путь по умолчанию, который &man.loader.8; будет проверять при загрузке - /boot/device.hints. Используя опцию hints вы можете вкомпилировать эти параметры статически в ваше ядро. В этом случае не требуется создавать файл device.hints в каталоге /boot. makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols При обычном построении ядра в сборку включается отладочная информация: опция передается компилятору &man.gcc.1;. options SCHED_ULE # ULE scheduler Планировщик по умолчанию во &os;. Оставьте эту опцию. options PREEMPTION # Enable kernel thread preemption Позволяет высокоприоритетным нитям ядра вытеснять конкурентов, находящихся в режиме выполнения. Эта опция может помочь повысить реактивность системы по отношению к внешним воздействиям, например, за счет снижения латентности нитей, обрабатывающих прерывания. options INET # InterNETworking Поддержка сетевых возможностей. Оставьте эту опцию включенной, даже если вы не планируете подключаться к сети. Большинство программ требуют, чтобы работал хотя бы интерфейс обратной связи (loopback) (т.е. создание сетевых соединений внутри вашего ПК), так что эта опция в принципе является обязательной. options INET6 # IPv6 communications protocols Включает поддержку коммуникационных протоколов IPv6. options FFS # Berkeley Fast Filesystem Включает поддержку основной файловой системы. Не удаляйте эту опцию, если вы планируете загружаться с жесткого диска. options SOFTUPDATES # Enable FFS Soft Updates support Этот параметр включает в ядре технологию Soft Updates, которая повышает скорость записи на диски. Несмотря на то, что эта технология включена в ядре, она должна быть включена для отдельных дисков. Просмотрите вывод команды &man.mount.8; чтобы определить, включены ли Soft Updates для дисков вашей системы. Если вы не увидите параметр soft-updates, вам будет необходимо активировать его при помощи команды &man.tunefs.8; (для существующих файловых систем) или команды &man.newfs.8; (для новых файловых систем). options UFS_ACL # Support for access control lists Этот параметр включает в ядре поддержку списков управления доступом (ACL). Основывается на использовании расширенных атрибутов и UFS2, детальное описание вы сможете найти в . ACL включены по умолчанию и не должны выключаться в случае, если они ранее использовались на файловой системе, так как это удалит списки управления доступом и изменит то, как защищены файлы, непредсказуемым образом. options UFS_DIRHASH # Improve performance on big directories Эта опция включает функциональность, которая повышает скорость дисковых операций на больших каталогах в обмен на использование дополнительной памяти. Для большого сервера или рабочей станции рекомендуется оставить ее включенной, и выключить для системы, для которой более приоритетна память, чем скорость доступа к дискам, например для брандмауэра. options MD_ROOT # MD is a potential root device Этот параметр включает поддержку использования дисков в памяти для корневой файловой системы. параметры ядра NFS параметры ядра NFS_ROOT options NFSCLIENT # Network Filesystem Client options NFSSERVER # Network Filesystem Server options NFS_ROOT # NFS usable as /, requires NFSCLIENT Сетевая файловая система. Если вы не планируете монтировать разделы с файлового сервера &unix; через TCP/IP, вы можете исключить этот параметр из конфигурационного файла ядра. параметры ядра MSDOSFS options MSDOSFS # MSDOS Filesystem Файловая система &ms-dos;. Если вы не собираетесь монтировать форматированный в DOS раздел жесткого диска в момент загрузки, вы можете безопасно закомментировать этот параметр. Необходимый модуль будет автоматически загружен, когда вы в первый раз смонтируете раздел DOS, так, как это описано ниже. Кроме того, замечательный пакет emulators/mtools позволяет получить доступ к DOS дискетам без необходимости монтировать и размонтировать их (и не требует наличия MSDOSFS). options CD9660 # ISO 9660 Filesystem Файловая система ISO 9660 для компакт-дисков. Если у вас нет привода CDROM или вы будете лишь изредка монтировать компакт-диски с данными, закомментируйте эту строку, так как необходимый модуль будет загружен автоматически при первом монтировании компакт-диска с данными. Для использования звуковых компакт-дисков эта файловая система не потребуется. options PROCFS # Process filesystem (requires PSEUDOFS) Файловая система процессов. Это виртуальная файловая система монтируемая в /proc, которая позволяет таким приложениям, как &man.ps.1; выдавать вам больше информации о запущенных процессах. Использование PROCFS не требуется, так как большинство мониторинговых и отладочных инструментов было адаптировано для работы без PROCFS: система по умолчанию не монтирует файловую систему процессов. options PSEUDOFS # Pseudo-filesystem framework - Ядра 6.X, которые используют PROCFS, должны + Ядра, которые используют PROCFS, должны также включать поддержку PSEUDOFS, options GEOM_GPT # GUID Partition Tables. Этот параметр делает возможным наличие большого количества разделов на одном диске. options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!] Совместимость с 4.3BSD. Не выключайте эту опцию; некоторые приложения будут вести себя странно, если этой опции не будет в ядре. options COMPAT_FREEBSD4 # Compatible with &os;4 - Эта опция требуется в &os; 5.X для платформ &i386; и Alpha для + Эта опция требуется для поддержки приложений, собранных на более старых версиях &os;, которые используют старые интерфейсы вызовов. Рекомендуется использовать данную - опцию на всех системах на платформах &i386; и Alpha, на которых могут + опцию на всех системах на платформах &i386;, на которых могут запускаться старые приложения; платформы, поддержка которых появилась только в &os; 5.X, например ia64 и &sparc64;, не требуют этой опции. options COMPAT_FREEBSD5 # Compatible with &os;5 - Эта опция необходима в &os; 6.X и выше для поддержки + Эта опция необходима для поддержки приложений, скомпилированных на &os; 5.X и использующих интерфейс системных вызовов &os; 5.X. + options COMPAT_FREEBSD6 # Compatible with &os;6 + + Эта опция требуется для поддержки приложений, собранных на &os; + версий 6.X, которые используют интерфейсы системных вызовов + &os; 6.X. + + options COMPAT_FREEBSD7 # Compatible with &os;7 + + Эта опция требуется на системах &os; версий 8 и более поздних + для поддержки приложений, собранных для &os; 7.X и использующих + интерфейсы системных вызовов &os; 7.X. + options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI Этот параметр заставляет ядро приостановиться на 5 секунд перед тем, как идентифицировать каждое устройство SCSI в вашей системе. Если у вас установлены только жесткие диски IDE, вы можете игнорировать эту опцию, в противном случае, возможно, вы захотите уменьшить это число, для того чтобы ускорить загрузку. Естественно, если вы сделаете это, а у &os; появятся проблемы с распознанием ваших устройств SCSI, необходимо будет увеличить этот параметр. options KTRACE # ktrace(1) support Включает поддержку трассировки процессов, что удобно при отладке. options SYSVSHM # SYSV-style shared memory Этот параметр предоставляет поддержку разделяемой памяти System V. Наиболее распространенное применение этого — расширение XSHM в X, которое многие приложения, интенсивно работающие с графикой, будут автоматически использовать для повышения скорости работы. Если вы используете X, эта опция будет необходима. options SYSVMSG # SYSV-style message queues Поддержка сообщений System V. Этот параметр добавляет в ядро всего лишь несколько сотен байт. options SYSVSEM # SYSV-style semaphores Поддержка семафоров System V. Не настолько часто используемая возможность, но в ядро добавляет всего несколько сотен байт. Команда &man.ipcs.1; с параметром покажет все процессы, которые используют любую из этих возможностей System V. options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions Расширения реального времени, добавленные 1993 &posix;. Определенные приложения из коллекции используют их, например &staroffice;. options KBD_INSTALL_CDEV # install a CDEV entry in /dev Этот параметр разрешает формирование файлов устройств в /dev для клавиатур. options ADAPTIVE_GIANT # Giant mutex is adaptive. Giant — имя механизма защиты (спящего мьютекса) для крупных наборов ресурсов ядра. На нынешний момент Giant представляется фактически непригодным для использования в связи с серьезными потерями в производительности, и активно заменяется на механизмы, защищающие отдельные ресурсы ядра. Параметр ADAPTIVE_GIANT включает Giant в число адаптивных мьютексов: в случае, когда нить ядра нуждается в Giant, а он уже захвачен нитью, выполняющейся на другом процессоре, первая нить будет продолжать выполнение и ждать освобождения Giant. В норме нить должна была бы уснуть, пока не настанет очередной момент ее выполнения. Если вы не уверены, оставьте этот параметр в покое. - Для &os; 8.0-CURRENT и более поздних версий, все мьютексы + Для &os; 8.0-RELEASE и более поздних версий, все мьютексы являются адаптивными по умолчанию, если обратное не указано специально опцией NO_ADAPTIVE_MUTEXES. Следовательно, Giant также адаптивен по умолчанию, и поэтому опция ADAPTIVE_GIANT была удалена из файла конфигурации ядра. kernel options SMP device apic # I/O APIC Устройство apic разрешает использование набора I/O APIC для распределения прерываний. Оно может быть использовано как с однопроцессорными, так и с многопроцессорными ядрами (для последних наличие apic является обязательным). Для поддержки многопроцессорности добавьте строку options SMP. Устройство apic существует только на архитектурах i386. На других архитектурах этот конфигурационный параметр использовать не следует. device eisa Включите эту опцию если у вас материнская плата EISA. Это включает автоопределение и конфигурирование поддержки всех устройств на шине EISA. device pci Включите этот параметр, если у вас материнская плата с поддержкой PCI. Это включит автоопределение карт PCI и проксирование из шины PCI в шину ISA. # Floppy drives device fdc Контроллер флоппи-диска. # ATA and ATAPI devices device ata Этот драйвер поддерживает все устройства ATA и ATAPI. Вам необходима только одна строка device ata в ядре для того, чтобы обнаружить все PCI устройства ATA/ATAPI в современных машинах. device atadisk # ATA disk drives Эта строка необходима вместе с device ata для поддержки дисков ATA. device ataraid # ATA RAID drives Эта строка необходима вместе с device ata для поддержки дисков ATA RAID. device atapicd # ATAPI CDROM drives Поддержка приводов ATAPI CDROM. Используется вместе с device ata. device atapifd # ATAPI floppy drives Поддержка флоппи-приводов ATAPI. Используется вместе с device ata. device atapist # ATAPI tape drives Поддержка ленточных приводов ATAPI (стримеров). Используется вместе с device ata. options ATA_STATIC_ID # Static device numbering Заставляет драйвер нумеровать устройства статически; в противном случае происходит динамическая нумерация. # SCSI Controllers device ahb # EISA AHA1742 family device ahc # AHA2940 and onboard AIC7xxx devices options AHC_REG_PRETTY_PRINT # Print register bitfields in debug # output. Adds ~128k to driver. device ahd # AHA39320/29320 and onboard AIC79xx devices options AHD_REG_PRETTY_PRINT # Print register bitfields in debug # output. Adds ~215k to driver. device amd # AMD 53C974 (Teckram DC-390(T)) device isp # Qlogic family #device ispfw # Firmware for QLogic HBAs- normally a module device mpt # LSI-Logic MPT-Fusion #device ncr # NCR/Symbios Logic device sym # NCR/Symbios Logic (newer chipsets + those of `ncr') device trm # Tekram DC395U/UW/F DC315U adapters device adv # Advansys SCSI adapters device adw # Advansys wide SCSI adapters device aha # Adaptec 154x SCSI adapters device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60. device bt # Buslogic/Mylex MultiMaster SCSI adapters device ncv # NCR 53C500 device nsp # Workbit Ninja SCSI-3 device stg # TMC 18C30/18C50 Контроллеры SCSI. Закомментируйте те, которых у вас в системе нет. Если у вас в системе исключительно IDE устройства, вы можете удалить все эти строки. Строки вида *_REG_PRETTY_PRINT включают режим отладки для соответствующих драйверов. # SCSI peripherals device scbus # SCSI bus (required for SCSI) device ch # SCSI media changers device da # Direct Access (disks) device sa # Sequential Access (tape etc) device cd # CD device pass # Passthrough device (direct SCSI access) device ses # SCSI Environmental Services (and SAF-TE) Периферийные устройства SCSI. Опять-таки, закомментируйте те, которых у вас в системе нет, или, если у вас в наличии исключительно IDE, можете удалить все. USB &man.umass.4; драйвер (и некоторые другие драйверы) используют подсистему SCSI, хотя и не являются настоящими SCSI устройствами. Следовательно, вам необходимо сохранить поддержку SCSI, если какой-либо из этих драйверов включен в конфигурацию ядра. # RAID controllers interfaced to the SCSI subsystem device amr # AMI MegaRAID device arcmsr # Areca SATA II RAID device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID device ciss # Compaq Smart RAID 5* device dpt # DPT Smartcache III, IV - See NOTES for options device hptmv # Highpoint RocketRAID 182x device rr232x # Highpoint RocketRAID 232x device iir # Intel Integrated RAID device ips # IBM (Adaptec) ServeRAID device mly # Mylex AcceleRAID/eXtremeRAID device twa # 3ware 9000 series PATA/SATA RAID # RAID controllers device aac # Adaptec FSA RAID device aacp # SCSI passthrough for aac (requires CAM) device ida # Compaq Smart RAID device mfi # LSI MegaRAID SAS device mlx # Mylex DAC960 family device pst # Promise Supertrak SX6000 device twe # 3ware ATA RAID Поддерживаемые RAID-контроллеры. Если у вас нет таковых, можете их закомментировать или удалить эти строки. # atkbdc0 controls both the keyboard and the PS/2 mouse device atkbdc # AT keyboard controller Контроллер клавиатуры (atkbdc) предоставляет средства ввода/вывода для клавиатуры AT и PS/2 устройств. Этот контроллер необходим драйверу клавиатуры (atkbd) и PS/2 устройств (psm). device atkbd # AT keyboard Драйвер atkbd вместе с контроллером atkbdc предоставляет доступ к клавиатуре AT 84 или улучшенной клавиатуре AT, которая подключена к контроллеру AT клавиатуры. device psm # PS/2 mouse Используйте это устройство, если ваша мышь включается в порт PS/2. device kbdmux # keyboard multiplexer Поддержка мультиплексора клавиатур. Если использование двух и более клавиатур не планируется, можете смело исключать этот параметр. device vga # VGA video card driver Драйвер видеокарты. device splash # Splash screen and screen saver support Заставка при загрузке. Хранители экрана также требуют этого устройства. # syscons is the default console driver, resembling an SCO console device sc sc — это драйвер консоли по умолчанию, который имитирует консоль SCO. Так как большая часть консольных полноэкранных приложений обращаются к консоли через терминальную библиотеку termcap, вас не должно волновать, будете ли вы использовать этот драйвер, либо драйвер vt, который является VT220-совместимым драйвером консоли. Если у вас возникнут какие-либо проблемы с приложениями, работающими с этим драйвером консоли, установите переменную окружения TERM в значение scoansi. # Enable this for the pcvt (VT220 compatible) console driver #device vt #options XSERVER # support for X server on a vt console #options FAT_CURSOR # start with block cursor VT220-совместимый драйвер консоли, обратно совместимый с VT100/102. Он работает лучше на некоторых лэптопах, у которых возникают проблемы несовместимости с sc. Также, установите переменную окружения TERM в значение vt100 или vt220. Этот драйвер также может быть полезен в случаях подключения к большому количеству различных машин через сеть, на которых параметры для устройства sc для termcap или terminfo могут отсутствовать — vt100 присутствует практически на любой платформе. device agp Включите эту опцию, если у вас есть AGP карта в системе. Это включит поддержку AGP и AGP GART для тех карт, которые поддерживают эту возможность. APM # Power management support (see NOTES for more options) #device apm Поддержка Advanced Power Management. Чаще всего используется в лэптопах, хотя и отключена по умолчанию. # Add suspend/resume support for the i8254. device pmtimer Устройство таймера для управления энергопотреблением, APM и ACPI. # PCCARD (PCMCIA) support # PCMCIA and cardbus bridge support device cbb # cardbus (yenta) bridge device pccard # PC Card (16-bit) bus device cardbus # CardBus (32-bit) bus Поддержка PCMCIA. Включите ее, если вы используете лэптоп. # Serial (COM) ports device sio # 8250, 16[45]50 based serial ports Четыре последовательных порта, которые известны как COM порты в мире &ms-dos;/&windows; Если у вас есть внутренний модем на COM4 и последовательный порт COM2, вам понадобится поменять IRQ модема на 2 (по непонятным техническим причинам IRQ2 = IRQ9) для того, чтобы получить к нему доступ из &os;. Если у вас есть многопортовая карта с последовательными портами, ознакомьтесь с &man.sio.4; чтобы узнать корректные значения для добавления в /boot/device.hints. Некоторые видеокарты (в частности те, что используют чипы S3) используют адреса ввода/вывода в форме 0x*2e8 и, так как многие дешевые последовательные карты не полностью раскодируют шестнадцатибитное пространство адресов ввода/вывода, они конфликтуют с этими картами, в итоге COM4 оказывается практически недоступным. Каждый последовательный порт требует уникального IRQ (кроме тех случаев, когда вы используете мультипортовую карту, которая поддерживает совместное использование прерываний), поэтому значения IRQ по умолчанию для COM3 и COM4 не могут быть использованы. # Parallel port device ppc Интерфейс параллельного порта на шине ISA. device ppbus # Parallel port bus (required) Поддержка шины параллельного порта. device lpt # Printer Поддержка принтеров на параллельном порту. Все три последних устройства необходимы для поддержка принтеров на параллельном порту. device plip # TCP/IP over parallel Драйвер TCP/IP через параллельный порт. device ppi # Parallel port interface device Поддержка ввода/вывода общего назначения (geek port) + IEEE1284 ввода/вывода. #device vpo # Requires scbus and da zip drive Драйвер привода Iomega Zip. Требует наличия scbus и da. Наилучшая производительность достигается с портами в режиме EPP 1.9. #device puc Раскомментируйте это устройство, если у вас есть простая последовательная или параллельная PCI карта, поддерживаемая драйвером &man.puc.4;. # PCI Ethernet NICs. device de # DEC/Intel DC21x4x (Tulip) device em # Intel PRO/1000 adapter Gigabit Ethernet Card device ixgb # Intel PRO/10GbE Ethernet Card device txp # 3Com 3cR990 (Typhoon) device vx # 3Com 3c590, 3c595 (Vortex) Драйвера сетевых карт PCI. Закомментируйте или удалите драйвера тех карт, которые отсутствуют в вашей системе. # PCI Ethernet NICs that use the common MII bus controller code. # NOTE: Be sure to keep the 'device miibus' line in order to use these NICs! device miibus # MII bus support Поддержка шины MII требуется для некоторых PCI 10/100 Ethernet карт, которые используют MII-совместимые передатчики или реализуют интерфейс управления передатчиком, который имитирует MII. Добавление device miibus в конфигурационный файл ядра включает поддержку стандартного API miibus и всех драйверов PHY, включая стандартный для тех PHY, которые не обрабатываются специфическим образом конкретным драйвером. device bfe # Broadcom BCM440x 10/100 Ethernet device bge # Broadcom BCM570xx Gigabit Ethernet device dc # DEC/Intel 21143 and various workalikes device fxp # Intel EtherExpress PRO/100B (82557, 82558) device lge # Level 1 LXT1001 gigabit ethernet device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet device nge # NatSemi DP83820 gigabit ethernet device pcn # AMD Am79C97x PCI 10/100 (precedence over 'lnc') device re # RealTek 8139C+/8169/8169S/8110S device rl # RealTek 8129/8139 device sf # Adaptec AIC-6915 (Starfire) device sis # Silicon Integrated Systems SiS 900/SiS 7016 device sk # SysKonnect SK-984x > SK-982x gigabit Ethernet device ste # Sundance ST201 (D-Link DFE-550TX) device stge # Sundance/Tamarack TC9021 gigabit Ethernet device ti # Alteon Networks Tigon I/II gigabit Ethernet device tl # Texas Instruments ThunderLAN device tx # SMC EtherPower II (83c170 EPIC) device vge # VIA VT612x gigabit ethernet device vr # VIA Rhine, Rhine II device wb # Winbond W89C840F device xl # 3Com 3c90x (Boomerang, Cyclone) Драйвера, которые используют контроллер шины MII. # ISA Ethernet NICs. pccard NICs included. device cs # Crystal Semiconductor CS89x0 NIC # 'device ed' requires 'device miibus' device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards device ex # Intel EtherExpress Pro/10 and Pro/10+ device ep # Etherlink III based cards device fe # Fujitsu MB8696x based cards device ie # EtherExpress 8/16, 3C507, StarLAN 10 etc. device lnc # NE2100, NE32-VL Lance Ethernet cards device sn # SMC's 9000 series of Ethernet chips device xe # Xircom pccard Ethernet # ISA devices that use the old ISA shims #device le Драйвера сетевых карт ISA. Ознакомьтесь с файлом /usr/src/sys/i386/conf/NOTES, чтобы узнать, какие сетевые карты каким драйвером поддерживаются. # Wireless NIC cards device wlan # 802.11 support Generic 802.11 support. This line is required for wireless networking. device wlan_wep # 802.11 WEP support device wlan_ccmp # 802.11 CCMP support device wlan_tkip # 802.11 TKIP support Crypto support for 802.11 devices. These lines are needed if you intend to use encryption and 802.11i security protocols. device an # Aironet 4500/4800 802.11 wireless NICs. device ath # Atheros pci/cardbus NIC's device ath_hal # Atheros HAL (Hardware Access Layer) device ath_rate_sample # SampleRate tx rate control for ath device awi # BayStack 660 and others device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs. #device wl # Older non 802.11 Wavelan wireless NIC. Поддержка различных беспроводных карт. # Pseudo devices device loop # Network loopback Стандартное устройство обратной связи для TCP/IP. Если вы запускаете telnet или FTP по отношению localhost (он же 127.0.0.1), то соединение пройдёт через это устройство. Этот параметр обязателен. device random # Entropy device Генератор случайных чисел для криптографической защиты. device ether # Ethernet support ether необходим лишь в случае, если у вас есть сетевая карта. Он включает поддержку стандартного кода протокола Ethernet. device sl # Kernel SLIP sl — это поддержка SLIP. SLIP был практически вытеснен PPP, который легче настраивается, лучше подходит для соединений модем-модем и имеет больше возможностей. device ppp # Kernel PPP Поддержка PPP в ядре для соединений dial-up. Также существует версия PPP, реализованного как приложение, использующее tun, и предлагающее большую гибкость и большее количество возможностей, как, например, соединение при необходимости (наличии обращения к сети). device tun # Packet tunnel. Используется пользовательским программным обеспечением PPP. Обратитесь к разделу PPP этой книги за дальнейшей информацией. device pty # Pseudo-ttys (telnet etc) псевдо-терминал или имитированный порт для входа. Используется входящими telnet и rlogin-сессиями, приложением xterm и некоторыми другими приложениями, такими как Emacs. device md # Memory disks Псевдо-устройства дисков в памяти. device gif # IPv6 and IPv4 tunneling Поддержка туннелирования IPv6 через IPv4, IPv4 через IPv6, IPv4 через IPv4 и IPv6 через IPv6. Устройство gif является автоклонируемым, и будет срздавать файлы устройств по мере необходимости. device faith # IPv6-to-IPv4 relaying (translation) Это псевдо-устройство захватывает пакеты, которые были посланы ему и перенаправляет их даемону трансляции IPv4/IPv6. # The `bpf' device enables the Berkeley Packet Filter. # Be aware of the administrative consequences of enabling this! # Note that 'bpf' is required for DHCP. device bpf # Berkeley packet filter Фильтр пакетов Berkeley. Это псевдо-устройство позволяет переводить сетевые интерфейсы в неразборчивый (promiscuous) режим, в котором перехватывается любой пакет в широковещательной сети (например ethernet). Эти пакеты могут быть сохранены на диск и/или исследованы при помощи &man.tcpdump.1;. Устройство &man.bpf.4; также используется программой &man.dhclient.8; для того, чтобы получить адрес шлюза по умолчанию и т.п. Если вы используете DCHP, не удаляйте эту опцию. # USB support device uhci # UHCI PCI->USB interface device ohci # OHCI PCI->USB interface device ehci # EHCI PCI->USB interface (USB 2.0) device usb # USB Bus (required) #device udbp # USB Double Bulk Pipe devices device ugen # Generic device uhid # Human Interface Devices device ukbd # Keyboard device ulpt # Printer device umass # Disks/Mass storage - Requires scbus and da device ums # Mouse device ural # Ralink Technology RT2500USB wireless NICs device urio # Diamond Rio 500 MP3 player device uscanner # Scanners # USB Ethernet, requires mii device aue # ADMtek USB Ethernet device axe # ASIX Electronics USB Ethernet device cdce # Generic USB over Ethernet device cue # CATC USB Ethernet device kue # Kawasaki LSI USB Ethernet device rue # RealTek RTL8150 USB Ethernet Поддержка различных USB устройств. # FireWire support device firewire # FireWire bus code device sbp # SCSI over FireWire (Requires scbus and da) device fwe # Ethernet over FireWire (non-standard!) Поддержка различных устройств Firewire. За дальнейшей информацией о дополнительных устройствах, поддерживаемых &os;, обратитесь к файлу /usr/src/sys/i386/conf/NOTES. Конфигурации с большим количеством оперативной памяти (<acronym>PAE</acronym>) Расширения физического адресного пространства (Physical Address Extensions (PAE)) Конфигурации с большим количеством оперативной памяти Машины с большим количеством оперативной памяти, в которых требуется более 4 гигабайт в пользовательском адресном пространстве и адресном пространстве ядра (User+Kernel Virtual Address, KVA) в обычном случае не смогут использовать более 4 гигабайт. Для решения этой проблемы Intel добавили поддержку 36-битной адресации в &pentium; Pro и более поздних моделях процессоров. Расширение физического адресного пространства (PAE) в процессорах &intel; &pentium; Pro и более поздних позволяет использовать до 64 гигабайт оперативной памяти. &os; имеет поддержку этой возможности посредством опции ядра , доступной во всех текущих версиях &os;. В связи с ограничениями архитектуры Intel, не делается никакого различия между памятью ниже или выше 4 гигабайт. Память, размещенная выше 4 гигабайт, просто добавляется к доступной памяти. Для того, чтобы включить PAE в ядре, просто добавьте приведенную строку в конфигурационный файл ядра: options PAE Поддержка PAE в &os; существует только для процессоров &intel; IA-32. Также следует заметить, что PAE в &os; не было полностью протестировано и должно считаться находящимся в состоянии бета-тестирования по сравнению с другими, стабильными возможностями &os;. Поддержка PAE в &os; имеет следующие ограничения: Процесс не может получить доступ к более, чем 4 гигабайтам пространства VM. Драйверы устройств, которые не используют интерфейс &man.bus.dma.9;, приведут к повреждению информации в ядре с включенным PAE. Не рекомендуется использовать такие драйверы. По этой причине в &os; включен конфигурационный файл ядра PAE, из которого удалены все драйверы, о которых известно, что они не работают при включенной поддержке PAE. Некоторые системные переменные определяют использование ресурсов памяти по количеству доступной физической памяти. Такие переменные могут привести к ненужному чрезмерному выделению памяти из-за особенностей работы системы PAE. Один из таких примеров — переменная , которая управляет максимальным количеством vnode, разрешенных в ядре. Рекомендуется установить эту и подобные ей переменные вручную в адекватные значения. Возможно, понадобится увеличить пространство виртуальных адресов ядра (KVA) или уменьшить какую-либо переменную (см. выше), значение которой было неоправданно велико и могло привести к исчерпанию KVA. Для этого может быть использована опция ядра . В случае сомнений относительно производительности и стабильности рекомендуется обратиться к странице руководства &man.tuning.7;. Страница руководства &man.pae.4; содержит свежую информацию о поддержке PAE в &os;. Решение проблем Существует четыре категории проблем, которые могут возникнуть при сборке собственного ядра. Вот они: Не удаётся отработать команде config: Если команда &man.config.8; не может отработать, то, скорее всего, вы допустили где-нибудь маленькую ошибку. К счастью, &man.config.8; выведет номер проблемной строки, поэтому вы можете быстро найти строку, содержащую ошибку. Например, если вы видите: config: line 17: syntax error Убедитесь, что опция введена верно путём сравнения с файлом GENERIC или другим источником. Не удаётся отработать команде make: Если не удаётся отработать команде make, обычно это означает ошибку в описании конфигурации ядра, которая не достаточно тривиальна для того, чтобы &man.config.8; мог обнаружить её. Опять-таки, просмотрите файл конфигурации, и, если вы все еще не можете решить проблему, напишите письмо в &a.questions;, включив в письмо файл конфигурации ядра. Скорее всего проблема будет решена быстро. Ядро не загружается: Если ваше новое ядро не загружается или ему не удаётся обнаружить ваши устройства — не паникуйте! К счастью, в &os; существует отличный механизм для восстановления после установки несовместимого ядра. Просто выберите ядро, которое хотите загрузить, в загрузчике &os;. Доступ к нему вы можете получить, когда система находится в стартовом меню. Выберите шестой пункт (Escape to a loader prompt), введите команду unload kernel и наберите boot /boot/kernel.old/kernel, или используйте любое другое ядро, которое загрузится без проблем. Во время переконфигурирования ядра всегда полезно оставлять копию ядра, о котором известно, что оно рабочее. После загрузки с рабочим ядром вы можете проверить ваш файл конфигурации и попробовать собрать ядро опять. Очень полезным в данном случае окажется файл /var/log/messages, в котором, среди других записей, имеются сообщения ядра от каждой успешной загрузки. Также, команда &man.dmesg.8; выведет сообщения ядра от текущей загрузки. Если у вас возникли проблемы со сборкой ядра, убедитесь, что вы сохранили ядро GENERIC или другое рабочее ядро под другим именем, чтобы оно не было удалено при следующей сборке. Вы не можете использовать kernel.old, потому что при установке нового ядра kernel.old перезаписывается последним установленным ядром, которое может оказаться нерабочим. Также, как можно скорее переместите рабочее ядро в /boot/kernel, так как некоторые команды, такие как &man.ps.1; будут работать некорректно. Для этого просто переместите каталог, содержащий работоспособное ядро: &prompt.root; mv /boot/kernel /boot/kernel.bad &prompt.root; mv /boot/kernel.good /boot/kernel Ядро работает, но &man.ps.1; больше не работает: Если вы установили версию ядра отличную от той, с которой были собраны ваши системные утилиты, например, ядро от -CURRENT на системе -RELEASE, большая часть системных команд, таких как &man.ps.1; и &man.vmstat.8; не будут больше работать. Вам потребуется перекомпилировать и установить систему той же версии исходных текстов, что и ядро. Это одна из причин, по которой не следует использовать версию ядра, отличную от версии всей остальной системы. diff --git a/ru_RU.KOI8-R/books/handbook/mail/chapter.sgml b/ru_RU.KOI8-R/books/handbook/mail/chapter.sgml index 4afe93d486..e1d49d9b65 100644 --- a/ru_RU.KOI8-R/books/handbook/mail/chapter.sgml +++ b/ru_RU.KOI8-R/books/handbook/mail/chapter.sgml @@ -1,2282 +1,2282 @@ Bill Lloyd Оригинальную версию предоставил Jim Mock Переписал Алексей Докучаев Перевод на русский язык: Денис Пеплин Электронная почта Краткий обзор email Электронная почта называемая также email, является на сегодняшний день одним из самых популярных средств связи. Эта глава описывает основы работы с почтовым сервером в &os;, а также введение в процесс отправки и получения почты в &os;; однако, это не полноценный справочник и фактически в главу не вошло много важной информации. Более подробно эта тема рассмотрена во множестве прекрасных книг, список которых приведен в . После прочтения этой главы вы узнаете: Какие программные компоненты задействованы в отправке и получении электронной почты. Какие основные файлы настройки sendmail имеются в FreeBSD. Разницу между удаленными и локальными почтовыми ящиками. Как запретить спамерам использовать ваш почтовый сервер для пересылки почты. Как установить и настроить альтернативный агент передачи почты (Mail Transfer Agent, MTA), заменив им sendmail. Как разрешить наиболее часто встречающиеся проблемы с почтовым сервером. Как использовать SMTP с UUCP. Как настроить систему только для отправки почты. Как использовать почту с коммутируемым подключением к сети. Как настроить SMTP аутентификацию для дополнительной защиты. Как установить и настроить почтовый агент пользователя (Mail User Agent, MUA), например mutt, для отправки и получения почты. Как загрузить почту с удаленного POP или IMAP сервера. Как автоматически применять фильтры и правила к входящей почте. Перед прочтением этой главы вам потребуется: Правильно настроить сетевое подключение (). Правильно настроить DNS для почтового сервера (). Знать как устанавливать дополнительное программное обеспечение сторонних разработчиков (). Использование электронной почты POP IMAP DNS В работе почтовой системы задействованы пять основных частей: пользовательский почтовый клиент (Mail User Agent, MUA), почтовый сервис (даемон) (Mail Transfer Agent, MTA), сервер DNS, удаленный или локальный почтовый ящик, и конечно сам почтовый сервер. Пользовательский почтовый клиент Обычно, это программа типа mutt, - pine, elm, + alpine, elm, mail, а также программы с графическим интерфейсом, такие, как balsa или xfmail, или интегрированные приложения (например, какой-либо WWW браузер типа Netscape). Все эти программы общаются с локальным почтовым сервером, вызывая какой-либо даемон, или напрямую по протоколу TCP. Почтовый даемон почтовые даемоны sendmail почтовые даемоны postfix почтовые даемоны qmail почтовые даемоны exim &os; по умолчанию поставляется с sendmail, но помимо того поддерживает множество других даемонов почтового сервера, вот лишь некоторые из них: exim; postfix; qmail. Почтовый даемон выполняет только две функции: он отвечает за прием входящей почты и отправку исходящей. Он не отвечает за выдачу почты по протоколам POP или IMAP, и не обеспечивает подключения к локальным почтовым ящикам mbox или Maildir. Для этих целей вам может потребоваться дополнительный даемон. Старые версии sendmail содержат некоторые серьезные ошибки безопасности, которые могут привести к получению атакующим локального и/или удаленного доступа к вашему компьютеру. Убедитесь, что вы работаете с современной версией, свободной от таких ошибок. Или установите альтернативный MTA из Коллекции Портов &os;. Email и DNS Служба имен доменов (Domain Name System, DNS) и соответствующий ей даемон named играют важную роль в доставке почты. Для доставки почты с вашего сайта другому, даемон почтового сервера обратится к DNS для определения удаленного хоста, отвечающего за доставку почты по назначению. Тот же процесс происходит при доставке почты с удаленного хоста на ваш почтовый сервер. MX record DNS отвечает за сопоставления имен хостов IP адресам, как и за хранение информации, предназначенной для доставки почты, известной как MX записи. Запись MX (Mail eXchanger) определяет хост или хосты, которые будут получать почту для определенного домена. Если для вашего имени хоста или домена нет записи MX, почта будет доставлена непосредственно на ваш хост, IP адрес которого определен в записи A. Вы можете просмотреть MX записи для любого домена с помощью команды &man.host.1;, как показано в примере ниже: &prompt.user; host -t mx FreeBSD.org FreeBSD.org mail is handled (pri=10) by mx1.FreeBSD.org Получение почты email получение Получение почты для вашего домена выполняет почтовый сервер. Он сохраняет отправленную в ваш домен почту в формате либо mbox (это метод по умолчанию), либо Maildir, в зависимости от настроек. После сохранения почты ее можно либо прочитать локально, используя такие приложения как &man.mail.1;, mutt, или удаленно, по таким протоколам как POP или IMAP. Это означает, что для локального чтения почты вам не потребуется устанавливать сервер POP или IMAP. Доступ к удаленным почтовым ящикам по протоколам <acronym>POP</acronym> и <acronym>IMAP</acronym> POP IMAP Для удаленного доступа к почтовым ящикам вам потребуется доступ к POP или IMAP серверу. Хотя удаленный доступ обеспечивают оба протокола POP и IMAP, последний предоставляет множество дополнительных возможностей, вот некоторые из них: IMAP может как хранить сообщения на удаленном сервере, так и забирать их. IMAP поддерживает одновременные обновления. IMAP может быть очень полезен для низкоскоростных соединений, поскольку позволяет пользователям получить структуру сообщений без их загрузки; он также может использоваться для выполнения таких задач как поиск на сервере, для минимизации объема передаваемых между клиентом и сервером данных. Для установки POP или IMAP сервера необходимо выполнить следующие действия: Выберите IMAP или POP сервер, который подходит вам наилучшим образом. Следующие POP и IMAP серверы хорошо известны и могут быть приведены в качестве примера: qpopper; teapop; imap-uw; courier-imap; Установите POP или IMAP даемон, выбранный из Коллекции Портов. Если потребуется, настройте /etc/inetd.conf для запуска POP или IMAP сервера. Необходимо отметить, что и POP и IMAP серверы передают информацию, включая имя пользователя и пароль, в незашифрованном виде. Это означает, что если вы хотите защитить передачу информации по этим протоколам, потребуется использовать туннелирование сессий через &man.ssh.1;. Туннелирование соединений описано в . Доступ к локальным почтовым ящикам Доступ к почтовым ящикам может быть осуществлен непосредственно путем использования MUA на сервере, где эти ящики расположены. Это можно сделать используя приложения вроде mutt или &man.mail.1;. Почтовый хост почтовый хост Почтовый хост это сервер, который отвечает за отправку и получение почты для вашего компьютера, и возможно, для всей вашей сети. Christopher Shumway Предоставил Настройка <application>sendmail</application> sendmail В FreeBSD по умолчанию программой передачи почты (Mail Transfer Agent, MTA) является &man.sendmail.8;. Работа sendmail заключается в приеме почты от почтовых программ пользователей (Mail User Agents, MUA) и отправке ее на соответствующий адрес, в соответствии с имеющимися настройками. sendmail может также принимать входящие соединения по сети и доставлять почту в локальные почтовые ящики или перенаправлять их другой программе. sendmail использует следующие файлы настройки: /etc/mail/access /etc/mail/aliases /etc/mail/local-host-names /etc/mail/mailer.conf /etc/mail/mailertable /etc/mail/sendmail.cf /etc/mail/virtusertable Имя файла Назначение /etc/mail/access Файл базы данных доступа sendmail /etc/mail/aliases Синонимы почтовых ящиков /etc/mail/local-host-names Список хостов, для которых sendmail принимает почту /etc/mail/mailer.conf Настройки почтовой программы /etc/mail/mailertable Таблица доставки почтовой программы /etc/mail/sendmail.cf Основной файл настройки sendmail /etc/mail/virtusertable Таблицы виртуальных пользователей и доменов <filename>/etc/mail/access</filename> База данных доступа определяет список хостов или IP адресов, имеющих доступ к локальному почтовому серверу, а также тип предоставляемого доступа. Хосты могут быть перечислены как , , или просто переданы процедуре обработки ошибок sendmail с заданным сообщением об ошибке. Хостам, перечисленным с параметром по умолчанию , разрешено отправлять почты на этот хост, если адрес назначения почты принадлежит локальной машине. Все почтовые соединения от хостов, перечисленных с параметром , отбрасываются. Для хостов, перечисленных с параметром , разрешена передача через этот сервер почты с любым адресом назначения. Настройка базы данных доступа <application>sendmail</application> cyberspammer.com 550 We do not accept mail from spammers FREE.STEALTH.MAILER@ 550 We do not accept mail from spammers another.source.of.spam REJECT okay.cyberspammer.com OK 128.32 RELAY В этом примере приведены пять записей. К отправителям, чей адрес соответствует записи в левой части таблицы, применяется правило записанное в правой части таблицы. В первых двух примерах код ошибки будет передан процедуре обработке ошибок sendmail. В этом случае на удаленном хосте будет получено соответствующее сообщение. В следующем примере почта отбрасывается почта от определенного хоста, another.source.of.spam. В четвертом примере разрешается прием почты от хоста okay.cyberspammer.com, имя которого более точно совпадает с этой записью, чем с cyberspammer.com в примере выше. При более точном совпадении правила перезаписываются. В последнем примере разрешается пересылка почты от хостов с IP адресами, начинающимися с 128.32. Эти хосты смогут отправлять почту через этот почтовый сервер для других почтовых серверов. После изменения этого файла для обновления базы данных вам потребуется запустить make в каталоге /etc/mail/. <filename>/etc/mail/aliases</filename> База данных синонимов содержит список виртуальных почтовых ящиков, принадлежащих другим пользователям, файлам, программам, или другим синонимам. Вот несколько примеров, которые могут быть использованы для /etc/mail/aliases: Mail Aliases root: localuser ftp-bugs: joe,eric,paul bit.bucket: /dev/null procmail: "|/usr/local/bin/procmail" Формат файла прост; имя почтового ящика слева от двоеточия сопоставляется назначению(ям) справа. В первом примере производится простое сопоставление почтового ящика root почтовому ящику localuser, для которого затем опять будет произведен поиск в базе данных синонимов. Если совпадений не обнаружится, сообщение будет доставлено локальному пользователю localuser. В следующем примере приведен список рассылки. Почта на адрес ftp-bugs рассылается на три локальных почтовых ящика: joe, eric и paul. Обратите внимание, что удалённый почтовый ящик может быть задан в виде user@example.com. В следующем примере показана запись почты в файл, в данном случае /dev/null. И в последнем примере показано отправление почты программе, в данном случае почтовое сообщение переправляется через канал &unix; на стандартный вход /usr/local/bin/procmail. После обновления этого файла вам потребуется запустить make в каталоге /etc/mail/ для обновления базы данных. <filename>/etc/mail/local-host-names</filename> В этом файле находится список имен хостов, принимаемых программой &man.sendmail.8; в качестве локальных. Поместите в этот файл любые домены или хосты, для которых sendmail должен принимать почту. Например, если этот почтовый сервер должен принимать почту для домена example.com и хоста mail.example.com, его файл local-host-names может выглядеть примерно так: example.com mail.example.com После обновления этого файла необходимо перезапустить &man.sendmail.8;, чтобы он смог перечитать изменения. <filename>/etc/mail/sendmail.cf</filename> Основной файл настройки sendmail, sendmail.cf управляет общим поведением sendmail, включая все, от перезаписи почтовых адресов до отправки удаленным серверам сообщений об отказе от пересылки почты. Конечно, файл настройки с таким многообразием возможностей очень сложен и подробное его описание выходит за рамки данного раздела. К счастью, для стандартных почтовых серверов изменять этот файл придется не часто. Основной файл настройки sendmail может быть собран из макроса &man.m4.1;, определяющего возможности и поведение sendmail. Подробнее этот процесс описан в файле /usr/src/contrib/sendmail/cf/README. Для применения изменений после правки файла необходимо перезапустить sendmail. <filename>/etc/mail/virtusertable</filename> Файл virtusertable сопоставляет виртуальные почтовые домены и почтовые ящики реальным почтовым ящикам. Эти почтовые ящики могут быть локальными, удаленными, синонимами, определенными в /etc/mail/aliases, или файлами. Пример таблицы виртуального домена root@example.com root postmaster@example.com postmaster@noc.example.net @example.com joe В примере выше мы видим сопоставление адресов для домена example.com. Почта обрабатывается по первому совпадению с записью в этом файле. Первая запись сопоставляет адрес root@example.com локальному почтовому ящику root. Вторая запись сопоставляет postmaster@example.com локальному почтовому ящику postmaster на хосте noc.example.net. Наконец, до этого момента адрес в домене example.com не совпал ни с одним из предыдущих, будет применено последнее сопоставление, в которому соответствует всякое другое почтовое сообщение, отправленное на любой адрес в example.com. Это сообщение будет доставлено в локальный почтовый ящик joe. Andrew Boothman Написал Gregory Neil Shapiro Информация получена из писем, написанных Установка другой почтовой программы email замена mta Как уже упоминалось, FreeBSD поставляется с MTA (Mail Transfer Agent) sendmail. Следовательно, по умолчанию именно эта программа отвечает за вашу исходящую и входящую почту. Однако, по различным причинам некоторые системные администраторы заменяют системный MTA. Эти причины варьируются от простого желания попробовать другой MTA до потребности в определенных возможностях пакета, основанного на другой почтовой программе. К счастью, вне зависимости от причины, в FreeBSD такая замена выполняется просто. Установка нового MTA Вам предоставлен широкий выбор MTA. Начните с поиска в Коллекции Портов FreeBSD, где их немало. Конечно, вы можете использовать любой MTA по желанию, взятый откуда угодно, если только сможете запустить его под FreeBSD. Начните с установки нового MTA. После установки у вас будет возможность решить, действительно ли он подходит вашем нуждам, а также настроить новое программное обеспечение перед тем, как заменить им sendmail. При установке новой программы убедитесь, что она не пытается перезаписать системные файлы, такие как /usr/bin/sendmail. Иначе ваша новая почтовая программа фактически начнет работать до того, как вы ее настроите. Обратитесь к документации на выбранный MTA за информацией по его настройке. Отключение <application>sendmail</application> Если вы отключите сервис исходящей почты sendmail, необходимо заменить его альтернативной системой доставки почты. Если вы не сделаете этого, системные программы, такие как &man.periodic.8;, не смогут отправлять сообщения по электронной почте как обычно. Многие программы в вашей системе могут требовать наличия функционирующей sendmail-совместимой системы. Если приложения будут продолжать использовать программу sendmail для отправки почты после того, как вы её отключили, почта может попасть в неактивную очередь sendmail и никогда не будет доставлена. Для полного отключения sendmail, включая сервис исходящей почты, используйте sendmail_enable="NO" sendmail_submit_enable="NO" sendmail_outbound_enable="NO" sendmail_msp_queue_enable="NO" в /etc/rc.conf. Если вы хотите отключить только сервис входящей почты sendmail, установите sendmail_enable="NO" в /etc/rc.conf. Дополнительная информация о параметрах запуска sendmail доступна на странице справочника &man.rc.sendmail.8;. Запуск нового MTA при загрузке Новый МТА можно запускать автоматически при загрузке системы добавив соответствующую строку в /etc/rc.conf. Ниже приведен пример для postfix: &prompt.root; echo 'postfix_enable=YES' >> /etc/rc.conf С этого момента МТА будет запускаться автоматически во время загрузки системы. Замещение <application>sendmail</application> как почтовой программы по умолчанию Программа sendmail настолько распространена в качестве стандартной программы для систем &unix;, что многие программы считают, что она уже установлена и настроена. По этой причине многие альтернативные MTA предоставляют собственные совместимые реализации интерфейса командной строки sendmail; это облегчает их использование в качестве прозрачной замены sendmail. Поэтому если вы используете альтернативную почтовую программу, потребуется убедиться, что когда программное обеспечение пытается выполнить стандартные исполняемые файлы sendmail, такие как /usr/bin/sendmail, на самом деле выполняются программы вновь установленной почтовой системы. К счастью, FreeBSD предоставляет систему, называемую &man.mailwrapper.8;, которая выполняет эту работу за вас. Когда установлен sendmail, файл /etc/mail/mailer.conf выглядит примерно так: sendmail /usr/libexec/sendmail/sendmail send-mail /usr/libexec/sendmail/sendmail mailq /usr/libexec/sendmail/sendmail newaliases /usr/libexec/sendmail/sendmail hoststat /usr/libexec/sendmail/sendmail purgestat /usr/libexec/sendmail/sendmail Это означает, что когда выполняется какая-то из этих стандартных программ (например сам sendmail), система на самом деле вызывает копию mailwrapper, называемую sendmail, которая обращается к mailer.conf и выполняет вместо этого /usr/libexec/sendmail/sendmail. Такая схема делает простой замену программ, которые на самом деле выполняются, когда вызываются стандартные функции sendmail. Поэтому если вы хотите выполнять /usr/local/supermailer/bin/sendmail-compat вместо sendmail, отредактируйте /etc/mail/mailer.conf так: sendmail /usr/local/supermailer/bin/sendmail-compat send-mail /usr/local/supermailer/bin/sendmail-compat mailq /usr/local/supermailer/bin/mailq-compat newaliases /usr/local/supermailer/bin/newaliases-compat hoststat /usr/local/supermailer/bin/hoststat-compat purgestat /usr/local/supermailer/bin/purgestat-compat Запуск новой почтовой программы Как только вы все настроили, потребуется или уничтожить процесс sendmail, который уже не нужен и запустить новую почтовую программу, или просто перегрузить систему. Перезагрузка также даст вам возможность проверить, правильно ли настроена система для автоматического запуска MTA при загрузке. Поиск и устранение неисправностей email устранение неисправностей Почему я должен использовать FQDN для хостов вне моей подсети? Вы, видимо, обнаружили, что хост, к которому вы обратились, оказался на самом деле в другом домене; например, если вы находитесь в домене foo.bar.edu и хотите обратиться к хосту mumble в домене bar.edu, то должны указать его полное доменное имя, mumble.bar.edu, а не просто mumble. BIND Традиционно, программа разрешения имен BSD BIND позволяла это делать. Однако, текущая версия BIND, поставляемая с FreeBSD, больше не добавляет имена доменов, отличающихся от того, в котором вы находитесь, для не полностью указанных имен хостов. То есть, имя mumble будет опознан как mumble.foo.bar.edu или будет искаться в корневом домене. Это отличается от предыдущего поведения, при котором поиск продолжался в доменах mumble.bar.edu и mumble.edu. Если вам интересны причины объявления такого поведения плохой практикой и даже ошибкой в безопасности, обратитесь к RFC 1535. Хорошим решением будет поместить строку search foo.bar.edu bar.edu вместо ранее используемой: domain foo.bar.edu в файл /etc/resolv.conf. Однако удостоверьтесь, что порядок поиска не нарушает границ полномочий между локальным и внешним администрированием, в терминологии RFC 1535. MX record sendmail выдает ошибку mail loops back to myself В FAQ по sendmail дан следующий ответ: Я получаю такие сообщения об ошибке: 553 MX list for domain.net points back to relay.domain.net 554 <user@domain.net>... Local configuration error Как можно решить эту проблему? Согласно записям MX, почта для домена domain.net перенаправляется на хост relay.domain.net, однако последний не распознается как domain.net. Добавьте domain.net в файл /etc/mail/local-host-names [известный как /etc/sendmail.cw до версии 8.10] (если вы используете FETURE(use_cw_file)) или добавьте Cw domain.net в файл /etc/mail/sendmail.cf. FAQ по sendmail можно найти на и рекомендуется прочесть его при желании произвести некоторые усовершенствования настроек почтовой системы. PPP Как организовать работу почтового сервера при коммутируемом соединении с Интернет? Вы хотите подключить к интернет компьютер с FreeBSD, работающий в локальной сети. Компьютер с FreeBSD будет почтовым шлюзом для локальной сети. PPP соединение не выделенное. UUCP MX record Существует как минимум два пути, чтобы сделать это. Один способ это использование UUCP. Другой способ это использование постоянно работающего интернет сервера для обеспечения вторичного MX сервиса вашего домена. Например, домен вашей компании example.com, и провайдер интернет настроил example.net для обеспечения вторичного MX сервиса: example.com. MX 10 example.com. MX 20 example.net. Только один хост должен быть указан в качестве последнего получателя (добавьте запись Cw example.com в файл /etc/mail/sendmail.cf на машине example.com). Когда программа sendmail (со стороны отправителя) захочет доставить почту, она попытается соединиться с вашим хостом (example.com) через модемное подключение. Скорее всего, ей это не удастся (вы, вероятнее всего, не будете подключены к интернет). Программа sendmail автоматически перейдет ко вторичному MX серверу, т.е. вашему провайдеру (example.net). Вторичный MX сервер будет периодически пытаться соединиться с вашим хостом и доставить почту на основной сервер MX (example.com). Вы можете воспользоваться следующим сценарием, чтобы забирать почту каждый раз, когда вы входите в систему: #!/bin/sh # Put me in /usr/local/bin/pppmyisp ( sleep 60 ; /usr/sbin/sendmail -q ) & /usr/sbin/ppp -direct pppmyisp Если же вы хотите написать отдельный пользовательский скрипт, лучше воспользоваться командой sendmail -qRexample.com вместо вышеприведенного сценария, так как в этом случае вся почта в очереди для хоста example.com будет обработана немедленно. Рассмотрим эту ситуацию подробнее: Вот пример сообщения из &a.isp.name;. > Мы предоставляем вторичный MX для наших клиентов. Вы соединяетесь > с нашим сервером несколько раз в день, чтобы забрать почту для вашего > первичного (главного) MX (мы не соединяемся с ним каждый раз, когда > приходит новая почта для его доменов). Далее, sendmail отправляет > почту, находящуюся в очереди каждые 30 минут, и клиент должен быть > подключен к Интернет в течении 30 минут, чтобы удостовериться, что > вся почта ушла на основной MX-сервер. > > Может быть, есть какая-либо команда, которая заставит sendmail > немедленно отправить все почту, находящуюся в очереди? Естественно, > пользователи не обладают какими-либо повышенными привилегиями на > нашем сервере. В разделе privacy flags файла sendmail.cf, определяется опция Уберите restrictqrun, чтобы разрешить рядовым пользователям инициировать работу с очередью. Вам также может понадобиться изменить порядок MX-серверов. Так, если вы предоставляете первый (основной) MX-сервер для ваши пользователей, мы указываем: # If we are the best MX for a host, try directly instead of generating # local config error. OwTrue Таким образом, удаленный хост будет доставлять почту непосредственно к вам, не пытаясь установить соединение с клиентом. Затем уже вы, в свою очередь, отсылаете ее клиенту. Удостоверьтесь, что в DNS есть записи про customer.com и hostname.customer.com. Просто добавьте запись A в DNS для customer.com. Почему я продолжаю получать ошибки Relaying Denied при отправки почты через другие хосты? В установке FreeBSD по умолчанию, sendmail настроен для отправки почты только от хоста, на котором он работает. Например, если доступен POP сервер, пользователи смогут проверять почту из школы, с работы или других удаленных точек, но не смогут отправлять письма. Обычно, через некоторое время после попытки будет отправлено письмо от MAILER-DAEMON с сообщением об ошибке 5.7 Relaying Denied. Есть несколько путей разрешения этой ситуации. Самый прямой путь это использование адреса вашего провайдера в файле relay-domains, расположенном в /etc/mail/relay-domains. Быстрый способ сделать это: &prompt.root; echo "your.isp.example.com" > /etc/mail/relay-domains После создания или редактирования этого файла вы должны перезапустить sendmail. Это отлично работает, если вы администратор сервера и не хотите отправлять почту локально, или хотите воспользоваться почтовым клиентом/системой на другом компьютере или даже через другого провайдера. Это также очень полезно, если у вас настроены одна или две почтовые записи. Если необходимо добавить несколько адресов, вы можете просто открыть этот файл в текстовом редакторе и добавить домены, по одному на строку: your.isp.example.com other.isp.example.net users-isp.example.org www.example.org Теперь будет отправляться любая почта, посылаемая через вашу систему любым хостом из этого списка (предоставляемого пользователем, имеющим учетную запись в вашей системе). Это отличный способ разрешить пользователям отправлять почту через вашу систему удаленно, одновременно он блокирует отправку спама. Расширенное руководство В следующем разделе рассматриваются более сложные темы, такие как настройка почты и включение почтовой системы для всего домена. Базовая конфигурация email настройка Изначально, вы можете отправлять почту во внешний мир если правильно составлен файл /etc/resolv.conf или запущен свой сервер имен. Если вы хотите, чтобы почта, предназначенная для хоста в вашем домене, доставлялась MTA (например, sendmail) на вашем хосте FreeBSD, есть два пути: Запустите свой собственный сервер DNS, тем самым организовав собственный домен, например, FreeBSD.org Получайте почту для вашего хоста непосредственно. Это работает при доставке почты непосредственно на DNS имя вашей машины. Например, example.FreeBSD.org. SMTP Независимо от выбранного из предложенных выше вариантов, для доставки почты непосредственно на ваш хост у него должен быть постоянный IP адрес (а не динамический, как у большинства PPP соединений). Если вы находитесь за брандмауэром, то последний должен пропускать SMTP-пакеты. Если вы хотите, чтобы почта приходила непосредственно на ваш хост, необходимо убедиться в одном из двух: MX record Убедитесь, что запись (с наименьшим номером) MX в DNS соответствует IP адресу вашего хоста. Убедитесь, что в DNS для вашего хоста вообще отсутствует MX-запись. Выполнение любого из перечисленных условий обеспечит доставку почты для вашего хоста. Попробуйте это: &prompt.root; hostname example.FreeBSD.org &prompt.root; host example.FreeBSD.org example.FreeBSD.org has address 204.216.27.XX Если вы это видите, то можно без проблем посылать почту на yourlogin@example.FreeBSD.org (предполагается, что sendmail на example.FreeBSD.org работает правильно). Однако, если вы видите это: &prompt.root; host example.FreeBSD.org example.FreeBSD.org has address 204.216.27.XX example.FreeBSD.org mail is handled (pri=10) by hub.FreeBSD.org то вся почта, посланная на example.FreeBSD.org будет собираться на hub (для того же пользователя), вместо того, чтобы быть отосланной непосредственно на ваш хост. Эта информация обрабатывается вашим DNS сервером. Соответствующая запись DNS, указывающая, через какой хост будет проходить ваша почта, называется MX (Mail eXchanger). Если для хоста отсутствует такая запись, почта будет приходить прямо на этот хост. Допустим, что запись MX для хоста freefall.FreeBSD.org в какой-то момент выглядела так: freefall MX 30 mail.crl.net freefall MX 40 agora.rdrop.com freefall MX 10 freefall.FreeBSD.org freefall MX 20 who.cdrom.com Вы видите, что для хоста freefall существуют несколько MX-записей. Запись с наименьшим номером соответствует хосту, получающему почту непосредственно, если он доступен; если он недоступен по каким-то причинам, другие сервера (иногда называемые (резервными MX) временно получают почту, и хранят ее пока не станут доступны хосты с меньшими номерами, в конечном итоге отправляя почту на эти хосты. Чтобы альтернативные MX-хосты использовались наиболее эффективно, они должны быть независимо подключены к Интернет. Ваш провайдер (или дружественный сайт) скорее всего без проблем сможет оказать подобные услуги. Почта для вашего домена Для настройки почтового хоста (почтовый сервер) вам потребуется, чтобы почта, направляемая различным рабочим станциям, пересылалась этому хосту. Обычно вам необходима доставка всей почты для любого хоста вашего домена (в данном случае *.FreeBSD.org) на почтовый сервер, чтобы пользователи могли получать свою почту на с этого сервера. DNS Чтобы облегчить себе (и другим) жизнь, создайте на обеих машинах учетные записи с одинаковыми именами пользователей, например, с помощью команды &man.adduser.8;. Сервер, который вы будете использовать в качестве почтового, должен быть объявлен таковым для каждой машины в домене. Вот фрагмент примерной конфигурации: example.FreeBSD.org A 204.216.27.XX ; Рабочая станция MX 10 hub.FreeBSD.org ; Почтовый шлюз Таким образом, вся корреспонденция, адресованная рабочей станции, будет обрабатываться вашим почтовым сервером, независимо от того, что указано в A-записи. Все это можно реализовать только в том случае, если вы используете сервер DNS. Если вы по каким-либо причинам не имеете возможности установить свой собственный сервер имен, необходимо договориться с провайдером или теми, кто поддерживает ваш DNS. Если вы хотите поддерживать несколько виртуальных почтовых серверов, может пригодиться следующая информация. Допустим, что ваш клиент зарезервировал домен, например, customer1.org, и вам требуется, чтобы почта, предназначенная для customer1.org приходила на ваш хост, например, mail.myhost.com. В таком случае, DNS должен выглядеть так: customer1.org MX 10 mail.myhost.com Заметьте, что если вам требуется только получать почту для домена, соответствующая A-запись не нужна. Помните, что если вы попытаетесь каким-либо образом обратиться к хосту customer1.org, у вас вряд ли что-либо получится, если нет A-записи для этого хоста. Последнее, что вы должны сделать – это сказать программе sendmail, для каких доменов и/или хостов она должна принимать почту. Это можно сделать несколькими способами: Добавьте названия этих хостов в файл /etc/mail/local-host-names, если вы используете FEATURE(use_cw_file). Если у вас sendmail версии ниже 8.10, необходимо отредактировать файл /etc/sendmail.cw. Добавьте строку Cwyour.host.com в файл /etc/sendmail.cf или /etc/mail/sendmail.cf (если у вас sendmail версии 8.10 или более поздней). SMTP через UUCP Настройка поставляемого с FreeBSD sendmail предназначена для сайтов, подключенных к интернет непосредственно. Сайты, осуществляющие обмен почтой через UUCP, должны использовать другой файл настройки sendmail. Редактирование /etc/mail/sendmail.cf вручную это сложная задача. sendmail версии 8 генерирует файлы настройки через препроцессор &man.m4.1;, реально настройка выполняется на более высоком уровне абстракции. Файлы настройки &man.m4.1; можно найти в /usr/share/sendmail/cf. Файл README в каталоге cf содержит введение в основы настройки &man.m4.1;. Лучшим способом настройки поддержки передачи по UUCP является использование возможности mailertable. При этом создается база данных, которая помогает sendmail решать вопросы маршрутизации. Во-первых, создайте файл .mc. В каталоге /usr/share/sendmail/cf/cf находятся несколько примеров. Возьмем для примера имя файла foo.mc. Все, что потребуется для преобразования его в sendmail.cf, это: &prompt.root; cd /etc/mail &prompt.root; make foo.cf &prompt.root; cp foo.cf /etc/mail/sendmail.cf Типичный .mc файл может выглядеть примерно так: VERSIONID(`Your version number') OSTYPE(bsd4.4) FEATURE(accept_unresolvable_domains) FEATURE(nocanonify) FEATURE(mailertable, `hash -o /etc/mail/mailertable') define(`UUCP_RELAY', your.uucp.relay) define(`UUCP_MAX_SIZE', 200000) define(`confDONT_PROBE_INTERFACES') MAILER(local) MAILER(smtp) MAILER(uucp) Cw your.alias.host.name Cw youruucpnodename.UUCP Строки, содержащие accept_unresolvable_domains, nocanonify, и confDONT_PROBE_INTERFACES, предотвратят использование DNS для доставки почты. Пункт UUCP_RELAY необходим для поддержки доставки по UUCP. Просто поместите сюда имя хоста в интернет, способного работать с .UUCP адресами псевдо-доменов; скорее всего, вы введете сюда основной сервер пересылки почты провайдера. Как только вы сделаете это, потребуется файл /etc/mail/mailertable. Если вы используете для всей почты только одно внешнее соединение, подойдет следующий файл: # # makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable . uucp-dom:your.uucp.relay Более сложный пример может выглядеть так: # # makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable # horus.interface-business.de uucp-dom:horus .interface-business.de uucp-dom:if-bus interface-business.de uucp-dom:if-bus .heep.sax.de smtp8:%1 horus.UUCP uucp-dom:horus if-bus.UUCP uucp-dom:if-bus . uucp-dom: В первых трех строках обрабатываются специальные случаи, когда почта для домена должна отправляться не на маршрут по умолчанию, а на ближайшее соединение UUCP для сокращения пути доставки. Следующая строка обрабатывает почту, которая может быть доставлена по SMTP для локального Ethernet домена. Наконец, определены маршруты UUCP в нотации псевдо-доменов .UUCP, для включения перезаписи правил по умолчанию правилом uucp-neighbor !recipient. Последняя строка всегда содержит одиночную точку, означающую все остальное, с отправкой через UUCP, являющимся универсальным почтовым шлюзом. Все имена узлов после ключевого слова uucp-dom: должны представлять существующие маршруты UUCP, проверить их можно с помощью команды uuname. Напоминаем, что этот файл должен быть преобразован в базу данных DBM перед использованием. Командную строку для этой задачи лучше всего поместить в качестве комментария в верхней части файла mailertable. Всегда выполняйте эту команду после правки файла mailertable. И наконец: если вы не уверены, что некоторые отдельные почтовые маршруты будут работать, запомните параметр sendmail . С этим параметром sendmail запускается в режиме тестирования адреса; просто введите 3,0 и адрес, который вы хотите протестировать. В последней строке появится сообщение об используемом внутреннем почтовом агенте, хосте назначения, с которым вызывается этот агент, и (возможно транслированный) адрес. Выход из этого режима происходит при нажатии CtrlD. &prompt.user; sendmail -bt ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter <ruleset> <address> > 3,0 foo@example.com canonify input: foo @ example . com ... parse returns: $# uucp-dom $@ your.uucp.relay $: foo < @ example . com . > > ^D Bill Moran Предоставил Настройка почты только для отправки Существует множество случаев, когда может потребоваться только отправка почты через почтовый сервер. Вот отдельные примеры: У вас настольный компьютер, но вы хотите использовать такие программы как &man.send-pr.1;. Для пересылки почты вам потребуется использовать почтовый сервер провайдера. Ваш компьютер является сервером, где почта не хранится локально, необходима только переправка всей почты через внешний почтовый сервер. Практически любой MTA способен работать и в этих условиях. К сожалению, может быть очень сложно правильно настроить полноценный MTA для работы только с исходящей почтой. Такие программы, как sendmail и postfix слишком избыточны для этих целей. К тому же, если вы используете обычные средства доступа в интернет, условий для запуска почтового сервера может быть недостаточно. Простейшим способом удовлетворить имеющиеся потребности может быть установка порта mail/ssmtp. Выполните под root следующие команды: &prompt.root; cd /usr/ports/mail/ssmtp &prompt.root; make install replace clean После установки потребуется настроить mail/ssmtp с помощью файла из четырех строк, расположенного в /usr/local/etc/ssmtp/ssmtp.conf: root=yourrealemail@example.com mailhub=mail.example.com rewriteDomain=example.com hostname=_HOSTNAME_ Убедитесь, что используете существующий почтовый адрес для root. Введите сервер вашего провайдера для пересылки исходящей почты вместо mail.example.com (некоторые провайдеры называют его сервером исходящей почты или SMTP сервером). Убедитесь, что вы выключили sendmail, включая сервис исходящей почты. За подробностями обращайтесь к . У пакета mail/ssmtp имеются и другие параметры. Обратитесь к файлу с примером настройки в /usr/local/etc/ssmtp или к странице справочника ssmtp за примерами и дополнительной информацией. Установка ssmtp таким способом позволит правильно работать любым программам на вашем компьютере, которым требуется отправка почты, но не нарушит политику вашего провайдера и не позволит вашему компьютеру быть использованным спамерами. Использование почты с коммутируемым соединением Если у вас есть статический IP, настройки по умолчанию менять не потребуется. Установите имя хоста в соответствии с присвоенным именем интернет и sendmail будет делать свою работу. Если у вас динамический IP адрес и используется коммутируемое PPP соединение с интернет, у вас возможно уже есть почтовый ящик на сервере провайдера. Предположим, что домен провайдера называется example.net, и что ваше имя пользователя user, ваш компьютер называется bsd.home, и провайдер сообщил вам, что возможно использование relay.example.net в качестве сервера для пересылки почты. Для получения почты из почтового ящика необходима установка соответствующей программы. Хорошим выбором является утилита fetchmail, она поддерживает множество различных протоколов. Эта программа доступна в виде пакета или из Коллекции Портов (mail/fetchmail). Обычно провайдер предоставляет доступ по протоколу POP. Если вы работаете с пользовательским PPP, то можете автоматически забирать почту после установления соединения с интернет с помощью следующей записи в /etc/ppp/ppp.linkup: MYADDR: !bg su user -c fetchmail Если вы используете sendmail (как показано ниже) для доставки почты к не-локальным учетным записям, вам возможно потребуется обработка почтовой очереди sendmail сразу после установки соединения с интернет. Для выполнения этой работы поместите в /etc/ppp/ppp.linkup следующую команду сразу после fetchmail: !bg su user -c "sendmail -q" Предполагается, что учетная запись для user существует на bsd.home. В домашнем каталоге user на bsd.home, создайте файл .fetchmailrc: poll example.net protocol pop3 fetchall pass MySecret Этот файл не должен быть доступен на чтение никому, кроме user, поскольку в нем находится пароль MySecret. Для отправки почты с правильным заголовком from:, вам потребуется сообщить sendmail использовать user@example.net вместо user@bsd.home. Вы можете также указать sendmail отправлять почту через relay.example.net, для более быстрой пересылки почты. Должен подойти следующий файл .mc: VERSIONID(`bsd.home.mc version 1.0') OSTYPE(bsd4.4)dnl FEATURE(nouucp)dnl MAILER(local)dnl MAILER(smtp)dnl Cwlocalhost Cwbsd.home MASQUERADE_AS(`example.net')dnl FEATURE(allmasquerade)dnl FEATURE(masquerade_envelope)dnl FEATURE(nocanonify)dnl FEATURE(nodns)dnl define(`SMART_HOST', `relay.example.net') Dmbsd.home define(`confDOMAIN_NAME',`bsd.home')dnl define(`confDELIVERY_MODE',`deferred')dnl Обратитесь к предыдущему разделу за информацией о том, как преобразовать этот файл .mc в файл sendmail.cf. Не забудьте также перезапустить sendmail после обновления sendmail.cf. James Gorham Написал SMTP аутентификация Наличие SMTP аутентификации на почтовом сервере дает множество преимуществ. SMTP аутентификация может добавить дополнительный уровень безопасности к sendmail, и позволяет мобильным пользователям, подключающимся к разным хостам, возможность использовать тот же почтовый сервер без необходимости перенастройки почтового клиента при каждом подключении. Установите security/cyrus-sasl2 из портов. Вы можете найти этот порт в security/cyrus-sasl2. В пакете security/cyrus-sasl2 есть множество параметров компиляции. Для используемого здесь метода SMTP аутентификации убедитесь, что параметр не отключен. После установки security/cyrus-sasl2, отредактируйте /usr/local/lib/sasl2/Sendmail.conf (или создайте его если он не существует) и добавьте следующую строку: pwcheck_method: saslauthd Затем установите security/cyrus-sasl2-saslauthd и добавьте в /etc/rc.conf следующую строку: saslauthd_enable="YES" а затем запустите saslauthd: &prompt.root; /usr/local/etc/rc.d/saslauthd start Этот даемон является посредником для аутентификации sendmail через базу данных passwd FreeBSD. Это позволяет избежать проблем, связанных с созданием нового набора имен пользователей и паролей для каждого пользователя, которому необходима SMTP аутентификация, пароль для входа в систему и для отправки почты будет одним и тем же. Теперь отредактируйте /etc/make.conf и добавьте следующие строки: SENDMAIL_CFLAGS=-I/usr/local/include/sasl -DSASL SENDMAIL_LDFLAGS=-L/usr/local/lib SENDMAIL_LDADD=-lsasl2 Эти параметры необходимы sendmail для подключения cyrus-sasl2 во время компиляции. Убедитесь, что cyrus-sasl2 был установлен до перекомпиляции sendmail. Перекомпилируйте sendmail, выполнив следующие команды: &prompt.root; cd /usr/src/lib/libsmutil &prompt.root; make cleandir && make obj && make &prompt.root; cd /usr/src/lib/libsm &prompt.root; make cleandir && make obj && make &prompt.root; cd /usr/src/usr.sbin/sendmail &prompt.root; make cleandir && make obj && make && make install Компиляция sendmail должна пройти без проблем, если /usr/src не был сильно изменен и доступны необходимые разделяемые библиотеки. После компилирования и переустановки sendmail, отредактируйте файл /etc/mail/freebsd.mc (или тот файл, который используется в качестве .mc; многие администраторы используют в качестве имени этого файла вывод &man.hostname.1; для обеспечения уникальности). Добавьте к нему следующие строки: dnl set SASL options TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl Эти параметры настраивают различные методы, доступные sendmail для аутентификации пользователей. Если вы хотите использовать вместо pwcheck другой метод, обратитесь к прилагаемой документации. Наконец, запустите &man.make.1; в каталоге /etc/mail. Из файла .mc будет создан файл .cf, называющийся freebsd.cf (или с тем именем, которое было использовано для файла .mc). Затем используйте команду make install restart, которая скопирует файл в sendmail.cf, и правильно перезапустит sendmail. Дополнительная информация об этом процессе находится в /etc/mail/Makefile. Если все шаги пройдены успешно, введите информацию для аутентификации в настройки почтового клиента и отправьте тестовое сообщение. Для определения причин возможных ошибок установите параметр sendmail в 13 и просмотрите /var/log/maillog. За дальнейшей информацией обратитесь к странице sendmail, посвященной SMTP аутентификации. Marc Silver Предоставил Почтовые программы пользователей почтовые программы пользователей Почтовая программа пользователя (Mail User Agent, MUA) это приложение, используемое для отправки и получения почты. Кроме того, поскольку почта эволюционирует и становится более сложной, MUA совершенствуют свои функции по обработке почты, становятся более удобны в использовании. &os; поддерживает множество различных пользовательских почтовых программ, каждая из которых может быть легко установлена из Коллекции Портов FreeBSD. Пользователи могут выбирать между графическими почтовыми клиентами, такими как evolution или balsa, консольными клиентами, такими - как mutt, pine + как mutt, alpine или mail, или Web-интерфейсами, используемыми в некоторых больших организациях. mail В &os; в качестве MUA по умолчанию используется &man.mail.1;. Это консольный MUA, предоставляющий все основные функции, необходимые для отправки и получения текстовых сообщений, хотя его возможности по работе с вложениями ограничены и он может работать только с локальными почтовыми ящиками. Хотя mail не поддерживает работу с серверами POP или IMAP, эти почтовые ящики могут быть загружены в локальный файл mbox с помощью fetchmail, который будет обсуждаться далее в этой главе (). Для отправки и получения почты просто выполните команду mail, как в этом примере: &prompt.user; mail Содержимое почтового ящика в каталоге /var/mail будет автоматически прочитано утилитой mail. Если почтовый ящик пуст, утилита завершит работу с сообщением о том, что почта не была обнаружена. После чтения почтового ящика запустится интерфейс программы и будет отображен список сообщений. Сообщения нумеруются автоматически и будут выглядеть как в этом примере: Mail version 8.1 6/6/93. Type ? for help. "/var/mail/marcs": 3 messages 3 new >N 1 root@localhost Mon Mar 8 14:05 14/510 "test" N 2 root@localhost Mon Mar 8 14:05 14/509 "user account" N 3 root@localhost Mon Mar 8 14:05 14/509 "sample" Теперь сообщения могут быть прочитаны с помощью команды t, завершаемой номером сообщения, которое должно быть отображено. В этом примере мы прочтем первое сообщение: & t 1 Message 1: From root@localhost Mon Mar 8 14:05:52 2004 X-Original-To: marcs@localhost Delivered-To: marcs@localhost To: marcs@localhost Subject: test Date: Mon, 8 Mar 2004 14:05:52 +0200 (SAST) From: root@localhost (Charlie Root) This is a test message, please reply if you receive it. Как видно в примере выше, клавиша t выводит сообщение со всеми заголовками. Для повторного вывода списка сообщений необходимо использовать клавишу h. Если требуется ответить на сообщение, используйте для ответа mail, нажав клавишу R или r. Клавиша R используется в mail для ответа только отправителю, а r для ответа и отправителю, и другим получателям сообщения. Вы можете также завершить эти команды номером письма, на которое хотите составить ответ. После этого необходимо ввести ответ, конец сообщения должен быть завершен символом . на новой строке. Пример можно увидеть ниже: & R 1 To: root@localhost Subject: Re: test Thank you, I did get your email. . EOT Для отправки нового сообщения используйте клавишу m и введите адрес получателя. Несколько получателей могут быть указаны через запятую. Введите тему сообщения и его содержимое. Конец сообщения отмечается помещением символа . на новой строке. & mail root@localhost Subject: I mastered mail Now I can send and receive email using mail ... :) . EOT В утилите mail для вызова справки в любой момент может быть использована команда ?, для получения помощи по mail необходимо также обратиться к странице справочника &man.mail.1;. Как упоминалось выше, команда &man.mail.1; не была первоначально предназначена для работы с вложениями, и поэтому их поддержка довольно слабая. Современные MUA, такие как mutt, работают с вложениями гораздо более уверенно. Но если вы все же предпочитаете использовать mail, установите порт converters/mpack. mutt mutt это небольшая но очень мощная почтовая программа с отличными возможностями, в числе которых: Возможность сортировки сообщений по дискуссиям; Поддержка PGP для подписи и шифрования сообщений; Поддержка MIME; Поддержка Maildir; Широкие возможности настройки. Все эти возможности делают mutt одним из самых лучших почтовых клиентов. Обратитесь к за дополнительной информацией по mutt. Стабильная версия mutt может быть установлена из порта mail/mutt. После установки порта, mutt может быть запущен следующей командой: &prompt.user; mutt mutt автоматически прочтет содержимое пользовательского почтового ящика в каталоге /var/mail и отобразит почту, если она имеется в наличии. Если почты в ящике пользователя нет, mutt будет ожидать команд от пользователя. В примере ниже показан mutt со списком сообщений: Для чтения почты просто выберите сообщение с помощью клавиш навигации и нажмите Enter. Пример mutt, отображающего сообщение, показан ниже: Как и команда &man.mail.1;, mutt позволяет пользователям отвечать как только отправителю, так и всем получателям. Для ответа только отправителю почты, используйте клавишу r. Для группового ответа и отправителю сообщения и всем получателям используйте клавишу g. mutt использует &man.vi.1; в качестве редактора для создания писем и ответа на них. Редактор можно заменить путем создания или редактирования собственного .muttrc в своем домашнем каталоге и установки переменной , или установкой переменной окружения EDITOR. Обратитесь к за более подробной информацией о настройке mutt. Для создания нового почтового сообщения нажмите m. После введения темы mutt запустит &man.vi.1; для создания письма. Как только письмо будет завершено, сохраните его и закройте vi, mutt продолжит работу, отобразив окно с сообщением, которое должно быть отправлено. Для отправки сообщения нажмите y. Пример окна с сообщением показан ниже: mutt также содержит исчерпывающий справочник, к которому можно обратиться из большинства меню, нажав клавишу ?. Верхняя строка также показывает клавиатурные сокращения, которые могут быть использованы. - - pine + + alpine - pine предназначен для начинающих + alpine предназначен для начинающих пользователей, но включает некоторые дополнительные возможности. - В программе pine ранее были обнаружены некоторые уязвимости, + В программе alpine ранее были обнаружены некоторые уязвимости, позволяющие удаленному взломщику выполнять произвольный код с правами пользователя локальной системы путем отправки специально подготовленного письма. Все эти известные проблемы были исправлены, - но код pine написан в очень небезопасном стиле и офицеры + но код alpine написан в очень небезопасном стиле и офицеры безопасности &os; считают, что возможно наличие других не обнаруженных уязвимостей. Имейте это ввиду при установке - pine. + alpine. - Текущая версия pine может быть - установлена из порта mail/pine4. - Как только порт установлен, pine можно + Текущая версия alpine может быть + установлена из порта mail/alpine. + Как только порт установлен, alpine можно запустить командой: - &prompt.user; pine + &prompt.user; alpine - При первом запуске pine отображает + При первом запуске alpine отображает страницу приветствия с кратким введением, а также просьбу - команды разработчиков pine + команды разработчиков alpine отправить анонимное почтовое сообщение, позволяющее им определить количество пользователей, работающих с их почтовым клиентом. Для отправки анонимного сообщения нажмите Enter, или E для выхода из из приветствия без отправки анонимного сообщения. Пример приветствия показан ниже: Затем отображается главное меню, перемещение по которому осуществляется с помощью клавиш навигации. В главном меню находятся ссылки для составления новых писем, просмотра почтовых каталогов, и даже управления адресной книгой. Ниже главного меню показаны клавиатурные сокращения, выполняющие соответствующие задачи. - По умолчанию pine открывает каталог + По умолчанию alpine открывает каталог inbox. Для просмотра списка сообщений нажмите I, или выберите MESSAGE INDEX, как показано ниже: В списке показаны сообщения в текущем каталоге, они могут быть просмотрены с помощью клавиш навигации. Подсвеченные сообщения можно прочесть нажав Enter. На снимке экрана ниже показан пример письма, отображаемого - pine. Внизу экрана даны клавиатурные + alpine. Внизу экрана даны клавиатурные сокращения. Например, r используется для указания MUA ответить на отображаемое в данный момент сообщение. - Ответ на письмо в pine осуществляется + Ответ на письмо в alpine осуществляется с помощью редактора pico, который - устанавливается по умолчанию вместе с pine. + устанавливается по умолчанию вместе с alpine. pico упрощает навигацию в сообщении гораздо проще для новых пользователей, чем &man.vi.1; или &man.mail.1;. Как только ответ будет готов, сообщение можно отправить нажав CtrlX. - pine запросит подтверждение. + alpine запросит подтверждение. - Программа pine может быть настроена + Программа alpine может быть настроена через пункт SETUP главного меню. Обратитесь к странице + url="http://www.washington.edu/alpine/"> за дальнейшей информацией. Marc Silver Предоставил Использование fetchmail fetchmail fetchmail это полноценный IMAP и POP клиент, позволяющий пользователям автоматически загружать почту с удаленных серверов IMAP и POP в локальные почтовые ящики; так доступ к почтовым ящикам упрощается. fetchmail может быть установлен из порта mail/fetchmail и предоставляет различные возможности, в том числе: Поддержка протоколов POP3, APOP, KPOP, IMAP, ETRN и ODMR. Возможность пересылки почты через SMTP, что позволяет использовать функции фильтрации, перенаправления и синонимов. Может быт запущен в режиме даемона для периодической проверки поступающих сообщений. Может забирать почту с нескольких почтовых ящиков и рассылать ее различным локальным пользователям в зависимости от настроек. Описание всех возможностей fetchmail выходит за пределы этой главы, за дополнительной информацией обратитесь к документации по fetchmail. Утилита fetchmail требует наличия файла настройки .fetchmailrc. Этот файл включает информацию о сервере, а также информацию для аутентификации. Поскольку этот файл содержит важную информацию, правильно будет сделать его доступным для чтения только владельцем с помощью следующей команды: &prompt.user; chmod 600 .fetchmailrc В следующем примере файл .fetchmailrc предназначен для загрузки одного почтового ящика по протоколу POP. Этот файл указывает fetchmail соединиться с example.com с именем пользователя joesoap и паролем XXX. В примере подразумевается, что пользователь joesoap существует также и в локальной системе. poll example.com protocol pop3 username "joesoap" password "XXX" В следующем примере производится подключение к нескольким POP и IMAP серверам, при необходимости почта перенаправляется другим локальным пользователям: poll example.com proto pop3: user "joesoap", with password "XXX", is "jsoap" here; user "andrea", with password "XXXX"; poll example2.net proto imap: user "john", with password "XXXXX", is "myth" here; Утилита fetchmail может работать в режиме даемона с флагом , заданным с интервалом (в секундах), через который fetchmail должен опрашивать серверы, перечисленные в .fetchmailrc. В следующем примере fetchmail будет забирать почту каждые 600 секунд: &prompt.user; fetchmail -d 600 Дополнительную информацию о fetchmail можно найти на сайте . Marc Silver Предоставил Использование procmail procmail Утилита procmail это невероятно мощное приложение, используемое для фильтрации входящей почты. Она позволяет пользователям определять правила, которые могут быть сопоставлены входящим письмам для выполнения определенных действий или для перенаправления почты в альтернативные почтовые ящики и/или на почтовые адреса. procmail может быть установлен с помощью порта mail/procmail. После установки он может быть непосредственно интегрирован в большинство MTA; сверьтесь с документацией на ваш MTA. Другой способ интеграции procmail – добавление в файл .forward, находящийся в домашнем каталоге пользователя, следующей строки: "|exec /usr/local/bin/procmail || exit 75" В этом разделе будут показаны основы настройки правил procmail, а также краткое описание их действия. Эти и другие правила должны быть помещены в файл .procmailrc, который должен находиться в домашнем каталоге пользователя. Большую часть этих правил также можно найти на странице справочника &man.procmailex.5;. Перенаправление всей почты от user@example.com на внешний адрес goodmail@example2.com: :0 * ^From.*user@example.com ! goodmail@example2.com Перенаправление всей почты объемом меньше 1000 байт на внешний адрес goodmail@example2.com: :0 * < 1000 ! goodmail@example2.com Перенаправление всей почты, отправляемой на alternate@example.com, в почтовый ящик alternate: :0 * ^TOalternate@example.com alternate Перенаправление всей почты с Spam в /dev/null: :0 ^Subject:.*Spam /dev/null Полезный пример, обрабатывающий входящую почту со списков рассылки &os;.org и помещающий каждый список в отдельный почтовый ящик. :0 * ^Sender:.owner-freebsd-\/[^@]+@FreeBSD.ORG { LISTNAME=${MATCH} :0 * LISTNAME??^\/[^@]+ FreeBSD-${MATCH} }