diff --git a/ru_RU.KOI8-R/books/handbook/config/chapter.sgml b/ru_RU.KOI8-R/books/handbook/config/chapter.sgml index 5e37a586de..f5cc1b6d9a 100644 --- a/ru_RU.KOI8-R/books/handbook/config/chapter.sgml +++ b/ru_RU.KOI8-R/books/handbook/config/chapter.sgml @@ -1,3005 +1,3006 @@ Chern Lee Написал Mike Smith Основывается на учебнике, написанном Matt Dillon и на tuning(7), написанном Андрей Мельник Перевод на русский язык: Денис Пеплин Валерий Кравчук Настройка и оптимизация Введение настройка системы оптимизация системы Один из важных аспектов &os; это настройка системы. Правильная настройка системы поможет избежать головной боли при последующих обновлениях. Эта глава описывает большую часть процесса настройки &os;, включая некоторые параметры, которые можно установить для оптимизации системы &os;. После прочтения этой главы вы узнаете: Как эффективно работать с файловыми системами и разделами подкачки. Основы настройки rc.conf и системы запуска приложений /usr/local/etc/rc.d. Как настроить и протестировать сетевую карту. Как настроить виртуальные хосты на сетевых устройствах. Как использовать различные файлы конфигурации в /etc. Как оптимизировать &os;, используя переменные sysctl. Как увеличить скорость работы дисков и изменить ограничения, накладываемые ядром. Перед прочтением этой главы вам следует: Понять основы &unix; и &os; (). Ознакомиться с основами конфигурации/компиляции ядра (). Начальное конфигурирование Разделы диска разделы диска /etc /var /usr Основы построения разделов Во время разметки жёсткого диска с помощью &man.disklabel.8; или &man.sysinstall.8;, важно помнить, что скорость чтения и записи данных уменьшается от внешних к внутренним трекам диска. Самые маленькие и самые часто используемые файловые системы (корневую и раздел подкачки) должны быть расположены в начале диска, в то время как самые большие, такие, как /usr, в конце. Самым оптимальным считается следующий порядок расположения файловых систем: root, swap, /var, /usr. Размер файловой системы /var определяется предназначением машины. /var используется для хранения почтовых ящиков, очередей печати и лог файлов. Размер почтовых ящиков и лог файлов может расти неограниченно в зависимости от количества пользователей системы и от того, как долго хранятся лог-файлы. Большинству пользователей никогда не потребуется гигабайт, но помните, что /var/tmp должен быть достаточно большим для пакетов. В разделе /usr содержит большинство файлов, необходимых для поддержки системы, &man.ports.7; (порты, рекомендуется) и исходные тексты (опционально). Оба эти каталога опциональны при установке. Для этого раздела рекомендуется как минимум 2 гигабайта. При установке размера разделов, не забудьте принять во внимание рост размера требуемого системе дискового пространства. Переполнение одного раздела даже при наличии свободного места на другом может вызвать затруднения. Многие пользователи обнаружили, что размер разделов, предлагаемый &man.sysinstall.8;'ом по умолчанию, иногда меньше подходящего для разделов /var и /. Тщательно планируйте размер разделов и не жалейте места. Раздел подкачки размер раздела подкачки раздел подкачки Как правило, размер раздела подкачки должен быть равен удвоенному размеру оперативной памяти. Например, если на машине установлено 128 мегабайт памяти, раздел подкачки должен быть 256 мегабайт. Системы с меньшим количеством памяти могут работать лучше с большим объёмом раздела подкачки. Не рекомендуется устанавливать размер раздела подкачки меньше 256 мегабайт, необходимо также принять во внимание возможное наращивание объема установленной на машине памяти. Алгоритмы кэширования VM настроены на максимальное быстродействие, когда размер раздела подкачки равен как минимум удвоенному размеру памяти. Заниженный размер раздела подкачки может привести к неэффективной работе постраничного сканирования VM и вызвать проблемы при увеличении объёма памяти. На больших системах с несколькими SCSI дисками (или несколькими IDE дисками, находящимися на разных контроллерах), рекомендуется создавать раздел подкачки на каждом диске (до четырёх дисков). Разделы подкачки должны быть примерно одного размера. Ядро не накладывает ограничений на размер раздела подкачки, но внутренние структуры позволяют иметь общий размер разделов подкачки, равный наибольшему, умноженному на четыре. Выделение под разделы подкачки примерно одинакового места позволить ядру оптимально расположить разделы подкачки. Установка размера подкачки больше требуемого нормальна, даже если этот объем не используется. В этих условиях может быть проще восстановиться после зависания программы перед тем, как возникнет необходимость перезагрузки. Зачем нужны разделы? Некоторые пользователи считают, что лучше использовать один большой раздел, но есть несколько причин, по которым этого лучше не делать. Во-первых, у каждого раздела свои характеристики, и отделяя их, можно выполнить соответствующие настройки. Например, корневая и файловая система и /usr в основном предназначены для чтения, без большого объема записи. В то же время множество операций чтения и записи выполняется в /var и /var/tmp. При правильном размещении и выборе размера разделов системы, фрагментация в более маленьких разделах, куда часто записываются данные, не перенесётся на остальные разделы. Размещение самых часто используемых разделов ближе к началу диска увеличит скорость ввода/вывода там, где она нужна больше всего. Хотя производительность важна и для больших дисков, передвижение их ближе к концу диска не повлечёт значительного уменьшения быстродействия по сравнению с перемещением ближе к концу диска /var. И, наконец, разделы существуют и из соображений безопасности. Наличие маленького аккуратного корневого раздела, доступного только для чтения даёт значительные шансы на "выживание" после краха системы. Основные настройки rc файлы rc.conf Основные настройки системы располагаются в /etc/rc.conf. Этот файл вмещает широкий спектр конфигурационной информации, используемой при загрузке системы. Имя этого файла прямо отражает его назначение, это файл настройки для файлов rc*. Администратор должен сделать записи в rc.conf чтобы переопределить строки по умолчанию из /etc/defaults/rc.conf. Файлы по умолчанию нельзя копировать в /etc - они вмещают значения по умолчанию, а не примеры значений. Все специфичные для данной системы изменения должны быть сделаны в файле rc.conf. Существует несколько методов для отделения общей конфигурации для группы систем от конкретной для данной системы в целях уменьшения объема работы администратора. Рекомендуемый метод - прописать общую конфигурацию в отдельный файл, например, в /etc/rc.conf.site, и включить его название в /etc/rc.conf, который вмещает только специфичную для данной системы информацию. Поскольку rc.conf читается &man.sh.1;, есть тривиальный способ сделать это. Например: rc.conf: . rc.conf.site hostname="node15.example.com" network_interfaces="fxp0 lo0" ifconfig_fxp0="inet 10.1.1.1" rc.conf.site: defaultrouter="10.1.1.254" saver="daemon" blanktime="100" Файл rc.conf.site может быть распространён на все системы, используя rsync или подобную ей программу, в то время, как rc.conf должен остаться только на одной машине. Обновление системы с помощью &man.sysinstall.8; или make world не повлекут за собой перезапись rc.conf. Вся информация в этом файле сохранится. Настройка приложений Обычно, установленные приложения имеют свои конфигурационные файлы, со своим собственным синтаксисом. Важно хранить эти файлы отдельно от файлов основной системы, чтобы их можно было легко администрировать с помощью средств управления пакетами. /usr/local/etc Обычно эти файлы устанавливаются в /usr/local/etc. В случае, если приложению нужно большое количество конфигурационных файлов, для их хранения будет создан подкаталог. Обычно, вместе с установкой портов и пакетов, устанавливаются и примеры конфигурационных файлов. Обычно они имеют расширение .default. Если не существует конфигурационных файлов для этого приложения, они будут созданы путём копирования .default файлов. Например, /usr/local/etc/apache: -rw-r--r-- 1 root wheel 2184 May 20 1998 access.conf -rw-r--r-- 1 root wheel 2184 May 20 1998 access.conf.default -rw-r--r-- 1 root wheel 9555 May 20 1998 httpd.conf -rw-r--r-- 1 root wheel 9555 May 20 1998 httpd.conf.default -rw-r--r-- 1 root wheel 12205 May 20 1998 magic -rw-r--r-- 1 root wheel 12205 May 20 1998 magic.default -rw-r--r-- 1 root wheel 2700 May 20 1998 mime.types -rw-r--r-- 1 root wheel 2700 May 20 1998 mime.types.default -rw-r--r-- 1 root wheel 7980 May 20 1998 srm.conf -rw-r--r-- 1 root wheel 7933 May 20 1998 srm.conf.default Размеры файлов показывают, что только файл srm.conf был изменён. При следующем обновлении Apache этот файл уже не будет перезаписан. Tom Rhodes Предоставил Запуск сервисов сервисы Многие пользователи предпочитают устанавливать программы сторонних производителей в &os; из набора портов. В подобных случаях может потребоваться сконфигурировать программы так, чтобы они запускались при инициализации системы. Сервисы, такие как mail/postfix или www/apache13, — это лишь два примера множества программных пакетов, которые можно запускать при инициализации системы. В этом разделе описывается процедура, предназначенная для запуска программ сторонних разработчиков. Большинство входящих в &os; сервисов, таких как &man.cron.8;, запускается с помощью стартовых скриптов системы. Эти скрипты могут различаться в зависимости от версии &os; или ее производителя; однако важнее всего учитывать, что их начальную конфигурацию можно задать с помощью простых стартовых скриптов. До появления rcNG приложения должны были помещать простой стартовый скрипт в каталог /usr/local/etc/rc.d, который затем читался скриптами инициализации системы. Эти скрипты затем выполнялись в ходе последующих стадий запуска системы. Хотя много разработчиков потратили часы на попытки внедрить старый стиль конфигурирования в новую систему, остаётся фактом, что для некоторых утилит сторонних производителей по-прежнему необходим скрипт, помещённый в указанный выше каталог. Незначительные различия в скриптах зависят от того, используется ли rcNG. До версии &os; 5.1 использовались скрипты в старом стиле, и почти во всех случаях скрипты в новом стиле должны подойти так же хорошо. Хотя каждый скрипт должен соответствовать некоторым минимальным требованиям, в большинстве случаев эти требования не зависят от версии &os;. Каждый скрипт должен иметь в конце расширение .sh и каждый скрипт должен быть выполняемым. Последнее требование может быть выполнено путем установки командой chmod уникальных прав доступа 755. Также, как минимум, должна быть опция start для запуска приложения и опция stop для его остановки. Простейший стартовый скрипт, пожалуй, будет похож на следующий: #!/bin/sh echo -n ' utility' case "$1" in start) /usr/local/bin/utility ;; stop) kill -9 `cat /var/run/utility.pid` ;; *) echo "Usage: `basename $0` {start|stop}" >&2 exit 64 ;; esac exit 0 Этот скрипт поддерживает опции stop и start для приложения, которое мы здесь называем просто — utility. Для этого приложения затем можно поместить следующую строку в файл /etc/rc.conf: utility_enable="YES" А можно запускать его и вручную, с помощью команды: &prompt.root; /usr/local/etc/rc.d/utility.sh start Хотя и не все программы сторонних производителей требуют добавления строки в файл rc.conf, практически каждый день очередной новый порт меняется так, чтобы поддерживать подобную конфигурацию. Поищите в результатах, выдаваемых после установки более детальную информацию по конкретному приложению. Некоторые программы сторонних производителей будут включать стартовые скрипты, позволяющие использовать приложение с rcNG; но это мы еще обсудим в следующем разделе. Расширенное конфигурирование приложения Теперь, когда &os; включает rcNG, конфигурирование запуска приложений стало более оптимальным; фактически, оно стало более тщательным. С помощью ключевых слов, рассмотренных в разделе rcNG, приложения теперь можно настроить для запуска после других заданных сервисов, например, DNS; можно разрешить передачу дополнительных флагов через rc.conf вместо жесткого задания флагов в стартовых скриптах, и т.д. Простой скрипт может иметь следующий вид: #!/bin/sh # # PROVIDE: utility # REQUIRE: DAEMON # BEFORE: LOGIN # KEYWORD: FreeBSD shutdown # # НЕ МЕНЯЙТЕ ЗДЕСЬ ЭТИ СТАНДАРТНЫЕ ЗНАЧЕНИЯ # ЗАДАВАЙТЕ ИХ В ФАЙЛЕ /etc/rc.conf # utility_enable=${utility_enable-"NO"} utility_flags=${utility_flags-""} utility_pidfile=${utility_pidfile-"/var/run/utility.pid"} . /etc/rc.subr name="utility" rcvar=`set_rcvar` command="/usr/local/sbin/utility" load_rc_config $name pidfile="${utility_pidfile}" start_cmd="echo \"Starting ${name}.\"; /usr/bin/nice -5 ${command} ${utility_flags} ${command_args}" run_rc_command "$1" Этот скрипт будет гарантировать, что указанное приложение utility будет запущено перед сервисом login, но после сервиса daemon. Он также предоставляет метод для создания и отслеживания файла идентификатора процесса, PID. Этот новый метод также позволяет легко работать с аргументами командной строки, включать стандартные функции из файла /etc/rc.subr, обеспечивает совместимость с утилитой &man.rcorder.8; и упрощает конфигурирование с помощью файла rc.conf. По сути, этот сценарий можно даже поместить в каталог /etc/rc.d. Это, однако, потенциально может сбить с толку утилиту &man.mergemaster.8; при обновлениях программного обеспечения. Использование сервисов для запуска сервисов Другие сервисы, такие как даемоны сервера POP3, IMAP, и т.п. могут быть запущены с помощью &man.inetd.8;. Для этого необходимо установить сервисную утилиту из набора портов и добавить соответствующую строчку конфигурации в файл /etc/inetd.conf или раскомментировать подходящую строку конфигурации из уже имеющихся. Работа с даемоном - inetd и его конфигурирование подробно описано + inetd и его конфигурирование подробно описано в разделе inetd. В некоторых случаях использование для запуска системных служб даемона &man.cron.8; может оказаться более приемлемым. Этот подход имеет несколько преимуществ, поскольку даемон cron запускает эти процессы от имени - владельца файла crontab. Это позволяет + владельца файла crontab. Это позволяет обычным пользователям запускать и поддерживать некоторые приложения. Утилита cron поддерживает уникальную возможность, @reboot, — это значение можно использовать вместо спецификации времени. В результате, задание будет выполнено при запуске &man.cron.8;, обычно — в ходе инициализации системы. Tom Rhodes Предоставил Настройка утилиты <command>cron</command> cron настройка Одна из наиболее полезных утилит &os; это &man.cron.8;. Утилита cron работает в фоновом режиме и постоянно проверяет файл /etc/crontab. Утилита cron проверяет также каталог /var/cron/tabs в поиске новый файлов crontab. Файлы crontab содержат информацию об определенных функциях, которые cron выполняет в указанное время. Утилита cron использует два разных типа конфигурационных файлов, системный и пользовательский. Все различие между этими двумя форматами заключается в шестом поле. В системном файле шестое поля это имя пользователя, с правами которого будет запущена команда. Это позволяет запускать команды из системного crontab от любого пользователя. В пользовательском файле шестое поле указывает запускаемую команду, и все команды запускаются от пользователя, который создал crontab; это важно для безопасности. Пользовательские crontab позволяют индивидуальным пользователям - планировать задачи без привилегий суперпользователя. Команды из + планировать задачи без привилегий суперпользователя + (root). Команды из crontab пользователя запускаются с привилегиями этого пользователя. Пользователь root может использовать собственный crontab, как и любой другой пользователь. Он будет отличаться от системного crontab /etc/crontab. Поскольку существует системный crontab, обычно не требуется создавать пользовательский crontab для root. Давайте заглянем в файл /etc/crontab (системный crontab): # /etc/crontab - root's crontab for &os; # # $&os;: src/etc/crontab,v 1.32 2002/11/22 16:13:39 tom Exp $ # # SHELL=/bin/sh PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin HOME=/var/log # # #minute hour mday month wday who command # # */5 * * * * root /usr/libexec/atrun Как и в большинстве файлов настройки FreeBSD, символы # означают комментарии. Комментарии нужны для напоминания о том, что означает строка и зачем она добавлена. Комментарии не могут находиться на той же строке, что и команда, или они будут восприняты как часть команды; располагайте их на новой строке. Пустые строки игнорируются. Сначала должны быть заданы переменные окружения. Знак равно (=) используется для задания переменных окружения, в этом примере SHELL, PATH, и HOME. Если переменная для оболочки не задана, cron использует оболочку по умолчанию, sh. Если не задана переменная PATH, значение по умолчанию не устанавливается и пути к файлам должны быть полными. Если не задана переменная HOME, cron будет использовать домашний каталог соответствующего пользователя. В строке всего семь полей. Их значения minute, hour, mday, month, wday, who (кто), и command. Значение полей почти очевидно. minute это время в минутах, когда будет запущена команда. hour означает то же самое для часов. mday означает день месяца. month, это то же самое, что час и минута, но для месяцев. Параметр wday это день недели. Все эти поля должны быть в числовом формате, время в двадцатичетырехчасовом исчислении. Поле who имеет специальное значение, и присутствует только в файле /etc/crontab. Это поле определяет пользователя, с правами которого должна быть запущена команда. Когда пользователь устанавливает собственный файл crontab, он не указывает этот параметр. Последний параметр command. Он указывает команду, которая должна быть запущена. Последняя строка определяет параметры, описанные выше. Здесь задано значение */5, и несколько символов *. Эти символы * означают первый-последний, и могут быть интерпретированы как каждый. Таким образом, для этой строки соответствующая команда atrun вызывается под пользователем root каждые пять минут независимо от дня или месяца. За дополнительной информацией по команде atrun обращайтесь к странице справочника &man.atrun.8;. Команды могут принимать любое количество параметров; однако команды, состоящие из нескольких строк, должны быть объединены символом \. Этот формат одинаков для каждого файла crontab, за исключением одной детали. Шестое поле, где указано имя пользователя, присутствует только в файле /etc/crontab. Это поле должно быть исключено из crontab файлов пользователей. Установка crontab Вы не должны использовать процедуру, описанную здесь, для установки системного crontab. Просто используйте свой любимый текстовый редактор: утилита cron узнает о том, что файл изменился и сразу начнет использовать обновленную версию. Обратитесь к этой части FAQ за дальнейшей информацией. Для установки готового crontab пользователя, сначала создайте в вашем любимом редакторе файл соответствующего формата, а затем воспользуйтесь утилитой crontab. Обычно она запускается так: &prompt.user; crontab crontab-file В этом примере, crontab-file это имя файла crontab, который только что был создан. Существует также параметр для просмотра установленных файлов crontab: задайте crontab параметр . Для пользователей, составляющих crontab вручную, без временного файла, существует параметр crontab -e. Она вызовет редактор с пустым файлом. Когда файл будет сохранен, crontab автоматически установит его. Если позднее вы захотите полностью удалить свой crontab, используйте crontab с параметром . Tom Rhodes Предоставил Использование rc в FreeBSD 5.X rcNG В &os; недавно была интегрирована из NetBSD система rc.d, используемая для старта системы. Многие из файлов в каталоге /etc/rc.d предназначены для основных сервисов, они могут управляться параметрами , , и . Например, &man.sshd.8; может быть перезапущен следующей командой: &prompt.root; /etc/rc.d/sshd restart Эта процедура похожа для других сервисов. Конечно, сервисы обычно запускаются автоматически, как указано в &man.rc.conf.5;. Например, включение даемона Network Address Translation при запуске выполняется простым добавлением следующей строки в /etc/rc.conf: natd_enable="YES" Если уже присутствует, просто измените на . Скрипты rc автоматически загрузят все другие зависимые сервисы, как описано ниже. Поскольку система rc.d в основном предназначена для запуска/отключения сервисов во время запуска/отключения системы, стандартные параметры , и будут работать только если установлена соответствующая переменная в /etc/rc.conf. Например, команда выше sshd restart будет работать только если переменная sshd_enable в файле /etc/rc.confустановлена в . Для выполнения скриптов независимо от установок в /etc/rc.conf, параметры , или необходимо задавать с префиксом force. Например, для перезапуска sshd независимо от установок в /etc/rc.conf, выполните следующую команду: &prompt.root; /etc/rc.d/sshd forcerestart Проверить состояние переменной в файле /etc/rc.conf легко: запустите соответствующий скрипт из rc.d с параметром . Проверка переменной для sshd выполняется следующей командой: &prompt.root; /etc/rc.d/sshd rcvar # sshd $sshd_enable=YES Вторая строка (# sshd) это вывод команды sshd, а не консоль root. Чтобы определить, запущен ли сервис, существует параметр . Например для проверки того, запущен ли sshd, выполните: &prompt.root; /etc/rc.d/sshd status sshd is running as pid 433. Возможна также перегрузка () сервиса. Скрипт, запущенный с этим параметром, попытается отправить сервису сигнал, вызывающий перезагрузку файлов настройки. В большинстве случаев это означает отправку сервису сигнала SIGHUP. Структура rcNG используется не только для сетевых серверов, она отвечает также за большую часть инициализации системы. Рассмотрим, к примеру, файл bgfsck. Во время выполнения этот скрипт выводит следующее сообщение: Starting background file system checks in 60 seconds. Следовательно, этот файл используется для фоновой проверки файловых систем, которая выполняется только в процессе инициализации системы. Функционирование многих сервисов системы зависит от корректной работы других сервисов. Например, NIS и другие основанные на RPC сервисы могут не запуститься, пока не загрузится rpcbind (portmapper). Для разрешения этой проблемы, в начале каждого скрипта в комментарии включаются информация о зависимостях и другие метаданные. Программа &man.rcorder.8; для разбора этих комментариев во время старта системы для определения порядка, в котором должны вызываться системные сервисы в соответствии с зависимостями. В начало каждого стартового файла должны быть включены следующие строки: PROVIDE: Задает имя сервиса, предоставляемого этим файлом. REQUIRE: Список сервисов, необходимых этому сервису. Этот файл будет запущен после указанных сервисов. BEFORE: Список сервисов, зависящих от этого сервиса. Этот файл будет запущен до указанных сервисов. KEYWORD: &os; или NetBSD. Используется для функций, зависящих от версии *BSD. Используя этот метод, администратор может легко контролировать системные сервисы без использования уровней запуска, как в некоторых других операционных системах &unix;. Дополнительную информацию о системе rc.d &os; 5.X можно найти на страницах справочника &man.rc.8; и and &man.rc.subr.8;. Marc Fonvieille Предоставил Настройка карт сетевых интерфейсов настройка сетевой карты В наши дни мы не представляем себе компьютера без сетевого подключения. Добавление и настройка сетевой карты это обычная задача любого администратора &os;. Поиск подходящего драйвера настройка сетевой карты поиск драйвера В первую очередь определите тип используемой карты (PCI или ISA), модель карты и используемый в ней чип. &os; поддерживает многие PCI и ISA карты. Обратитесь к Списку поддерживаемого оборудования вашего релиза чтобы узнать, поддерживается ли карта. Как только вы убедились, что карта поддерживается, потребуется определить подходящий драйвер. В файле /usr/src/sys/i386/conf/LINT находится список драйверов сетевых интерфейсов с информацией о поддерживаемых чипсетах/картах. Если вы сомневаетесь в том, какой драйвер подойдет, прочтите страницу справочника к драйверу. Страница справочника содержит больше информации о поддерживаемом оборудовании и даже о проблемах, которые могут возникнуть. Если ваша карта широко распространена, вам скорее всего не потребуется долго искать драйвер. Драйверы для широко распространенных карт представлены в ядре GENERIC, так что ваша карта должна определиться при загрузке, примерно так: dc0: <82c169 PNIC 10/100BaseTX> port 0xa000-0xa0ff mem 0xd3800000-0xd38 000ff irq 15 at device 11.0 on pci0 dc0: Ethernet address: 00:a0:cc:da:da:da miibus0: <MII bus> on dc0 ukphy0: <Generic IEEE 802.3u media interface> on miibus0 ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto dc1: <82c169 PNIC 10/100BaseTX> port 0x9800-0x98ff mem 0xd3000000-0xd30 000ff irq 11 at device 12.0 on pci0 dc1: Ethernet address: 00:a0:cc:da:da:db miibus1: <MII bus> on dc1 ukphy1: <Generic IEEE 802.3u media interface> on miibus1 ukphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto В этом примере две карты используют имеющийся в системе драйвер &man.dc.4;. Для использования сетевой карты потребуется загрузить подходящий драйвер. Это можно сделать двумя способами. Самый простой способ это загрузка модуля ядра для сетевой карты с помощью &man.kldload.8;. Не для каждой сетевой карты есть модуль (например ISA карты и карты, использующие драйвер &man.ed.4;). В качестве альтернативы, вы можете статически добавить поддержку сетевой карты в ядро. Проверьте /usr/src/sys/i386/conf/LINT и страницу справочника драйвера, чтобы узнать, что добавить в файл конфигурации ядра. За дополнительной информацией о пересборке ядра обращайтесь к . Если ваша карта была обнаружена ядром (GENERIC) во время загрузки, собирать новое ядро не потребуется. Настройка сетевой карты настройка сетевой карты настройка Как только для сетевой карты загружен подходящий драйвер, ее потребуется настроить. Как и многое другое, сетевая карта может быть настроена во время установки с помощью sysinstall. Для вывода информации о настройке сетевых интерфейсов системы, введите следующую команду: &prompt.user; ifconfig dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255 ether 00:a0:cc:da:da:da media: Ethernet autoselect (100baseTX <full-duplex>) status: active dc1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255 ether 00:a0:cc:da:da:db media: Ethernet 10baseT/UTP status: no carrier lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 inet 127.0.0.1 netmask 0xff000000 tun0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500 Старые версии &os; могут потребовать запуска &man.ifconfig.8; с параметром , за более подробным описанием синтаксиса &man.ifconfig.8; обращайтесь к странице справочника. Учтите также, что строки, относящиеся к IPv6 (inet6 и т.п.) убраны из этого примера. В этом примере были показаны следующие устройства: dc0: первый Ethernet интерфейс dc1: второй Ethernet интерфейс lp0: интерфейс параллельного порта lo0: устройство loopback tun0: туннельное устройство, используемое ppp Для присвоения имени сетевой карте &os; использует имя драйвера и порядковый номер, в котором карта обнаруживается при инициализации устройств. Например, sis2 это третья сетевая карта, использующая драйвер &man.sis.4;. В этом примере, устройство dc0 включено и работает. Ключевые признаки таковы: UP означает, что карта настроена и готова. У карты есть интернет (inet) адрес (в данном случае 192.168.1.3). Установлена маска подсети (netmask; 0xffffff00, то же, что и 255.255.255.0). Широковещательный адрес (в данном случае, 192.168.1.255). Значение MAC адреса карты (ether) 00:a0:cc:da:da:da Выбор физической среды передачи данных в режиме автовыбора (media: Ethernet autoselect (100baseTX <full-duplex>)). Мы видим, что dc1 была настроена для работы с 10baseT/UTP. За более подробной информацией о доступных драйверу типах среды обращайтесь к странице справочника. Статус соединения (status) active, т.е. несущая обнаружена. Для dc1, мы видим status: no carrier. Это нормально, когда Ethernet кабель не подключен к карте. Если &man.ifconfig.8; показывает примерно следующее: dc0: flags=8843<BROADCAST,SIMPLEX,MULTICAST> mtu 1500 ether 00:a0:cc:da:da:da это означает, что карта не была настроена. Для настройки карты вам потребуются привилегии пользователя root. Настройка сетевой карты может быть выполнена из командной строки с помощью &man.ifconfig.8;, но вам потребуется делать это после каждой перезагрузки системы. Подходящее место для настройки сетевых карт это файл /etc/rc.conf. Откройте /etc/rc.conf в текстовом редакторе. Вам потребуется добавить строку для каждой сетевой карты, имеющейся в системе, например, в нашем случае, было добавлено две строки: ifconfig_dc0="inet 192.168.1.3 netmask 255.255.255.0" ifconfig_dc1="inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP" Замените dc0, dc1, и так далее на соответствующие имена ваших карт, подставьте соответствующие адреса. Обратитесь к страницам справочника сетевой карты и &man.ifconfig.8;, за подробной информацией о доступных опциях и к странице справочника &man.rc.conf.5; за дополнительной информацией о синтаксисе /etc/rc.conf. Если вы настроили сетевую карту в процессе установки системы, некоторые строки, касающиеся сетевой карты, могут уже присутствовать. Внимательно проверьте /etc/rc.conf перед добавлением каких-либо строк. Отредактируйте также файл /etc/hosts для добавления имен и IP адресов различных компьютеров сети, если их еще там нет. За дополнительной информацией обращайтесь к man.hosts.5; и к /usr/share/examples/etc/hosts. Тестирование и решение проблем Как только вы внесете необходимые изменения в /etc/rc.conf, перегрузите компьютер. Изменения настроек интерфейсов будут применены, кроме того будет проверена правильность настроек. Как только система перезагрузится, проверьте сетевые интерфейсы. Проверка Ethernet карты настройка сетевой карты тестирование карты Для проверки правильности настройки сетевой карты, попробуйте выполнить ping для самого интерфейса, а затем для другой машины в локальной сети. Сначала проверьте локальный интерфейс: &prompt.user; ping -c5 192.168.1.3 PING 192.168.1.3 (192.168.1.3): 56 data bytes 64 bytes from 192.168.1.3: icmp_seq=0 ttl=64 time=0.082 ms 64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.074 ms 64 bytes from 192.168.1.3: icmp_seq=2 ttl=64 time=0.076 ms 64 bytes from 192.168.1.3: icmp_seq=3 ttl=64 time=0.108 ms 64 bytes from 192.168.1.3: icmp_seq=4 ttl=64 time=0.076 ms --- 192.168.1.3 ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.074/0.083/0.108/0.013 ms Затем проверьте другую машину в локальной сети: &prompt.user; ping -c5 192.168.1.2 PING 192.168.1.2 (192.168.1.2): 56 data bytes 64 bytes from 192.168.1.2: icmp_seq=0 ttl=64 time=0.726 ms 64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.766 ms 64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.700 ms 64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.747 ms 64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=0.704 ms --- 192.168.1.2 ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.700/0.729/0.766/0.025 ms Вы можете также использовать имя машины вместо 192.168.1.2, если настроен файл /etc/hosts. Решение проблем настройка сетевой карты решение проблем Решение проблем с аппаратным и программным обеспечением всегда вызывает сложности, которые можно уменьшить, проверив сначала самые простые варианты. Подключен ли сетевой кабель? Правильно ли настроены сетевые сервисы? Правильно ли настроен межсетевой экран? Поддерживается ли используемая карта в &os;? Всегда проверяйте информацию об оборудовании перед отправкой сообщения об ошибке. Обновите &os; до последней версии STABLE. Просмотрите архивы списков рассылки, или поищите информацию в интернет. Если карта работает, но производительность низка, может помочь чтение страницы справочника &man.tuning.7;. Проверьте также настройки сети, поскольку неправильные настройки могут стать причиной низкой скорости соединения. Некоторые пользователи встречаются с несколькими device timeouts, что нормально для некоторых сетевых карт. Если это продолжается и надоедает, убедитесь, что устройство не конфликтует с другим устройством. Внимательно проверьте подключение кабеля. Возможно также, что вам просто надо установить другую карту. Время от времени, пользователи видят несколько ошибок watchdog timeout. Первое, что требуется сделать, это проверить сетевой кабель. Многие карты требуют поддержки Bus Mastering слотом PCI. На некоторых старых материнских платах, только один PCI слот имеет такую поддержку (обычно слот 0). Сверьтесь с документацией на сетевую карту и материнскую плату, чтобы определить, может ли это быть проблемой. Сообщение No route to host появляются, если система не в состоянии доставить пакеты к хосту назначения. Это может случиться, если не определен маршрут по умолчанию, или кабель не подключен. Проверьте вывод команды netstat -rn и убедитесь, что к соответствующему хосту есть работающий маршрут. Если это не так, прочтите . Сообщения ping: sendto: Permission denied зачастую появляются при неправильно настроенном межсетевом экране. Если ipfw включен в ядре, но правила не определены, правило по умолчанию блокирует весь трафик, даже запросы ping! Прочтите с более подробной информацией. Иногда карты недостаточна, или ниже среднего. В этих случаях лучше всего изменить режим выбора типа подключения с autoselect на правильный тип. Обычно это работает для большинства оборудования, но не может решить проблему во всех случаях. Проверьте еще раз настройки сети и прочтите страницу руководства &man.tuning.7;. Настройка виртуальных серверов виртуальные сервера синонимы ip Очень часто &os; используется для размещения сайтов, когда один сервер работает в сети как несколько серверов. Это достигается присвоением нескольких сетевых адресов одному интерфейсу. У сетевого интерфейса всегда есть один настоящий адрес, хотя он может иметь любое количество синонимов (alias). Эти синонимы обычно добавляются путём помещения соответствующих записей в /etc/rc.conf. Синоним для интерфейса fxp0 выглядит следующим образом: ifconfig_fxp0_alias0="inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx" Заметьте, что записи синонимов должны начинаться с alias0 и идти далее в определенном порядке (например, _alias1, _alias2, и т.д.). Конфигурационный процесс остановится на первом по порядку отсутствующем числе. Определение маски подсети для синонима очень важно, но к счастью, так же просто. Для каждого интерфейса должен быть один адрес с истинной маской подсети. Любой другой адрес в сети должен иметь маску подсети, состоящую из всех единичек (что выражается как 255.255.255.255 или как 0xffffffff). Например, рассмотрим случай, когда интерфейс fxp0 подключён к двум сетям, к сети 10.1.1.0 с маской подсети 255.255.255.0 и к сети 202.0.75.16 с маской 255.255.255.240. Мы хотим, чтобы система была видна по IP, начиная с 10.1.1.1 по 10.1.1.5 и с 202.0.75.17 по 202.0.75.20. Как было сказано выше, только первый адрес в заданном диапазоне (в данном случае, 10.0.1.1 и 202.0.75.17) должен иметь реальную маску сети; все остальные (с 10.1.1.2 по 10.1.1.5 и с 202.0.75.18 по 202.0.75.20) должны быть сконфигурированы с маской сети 255.255.255.255. Для этого должны быть внесены следующие записи: ifconfig_fxp0="inet 10.1.1.1 netmask 255.255.255.0" ifconfig_fxp0_alias0="inet 10.1.1.2 netmask 255.255.255.255" ifconfig_fxp0_alias1="inet 10.1.1.3 netmask 255.255.255.255" ifconfig_fxp0_alias2="inet 10.1.1.4 netmask 255.255.255.255" ifconfig_fxp0_alias3="inet 10.1.1.5 netmask 255.255.255.255" ifconfig_fxp0_alias4="inet 202.0.75.17 netmask 255.255.255.240" ifconfig_fxp0_alias5="inet 202.0.75.18 netmask 255.255.255.255" ifconfig_fxp0_alias6="inet 202.0.75.19 netmask 255.255.255.255" ifconfig_fxp0_alias7="inet 202.0.75.20 netmask 255.255.255.255" Файлы настройки Каталог <filename>/etc</filename> Во FreeBSD определён ряд директорий, предназначенных для хранения конфигурационных файлов. Это: /etc Основные файлы конфигурации системы. Тут размещены системно–зависимые данные. /etc/defaults Версии системных конфигурационных файлов по умолчанию. /etc/mail Дополнительные конфигурационные файлы &man.sendmail.8; остальные конфигурационные файлы MTA. /etc/ppp Настройка для user- и kernel-ppp программ. /etc/namedb Основное место расположения данных &man.named.8;. Обычно named.conf и файлы зон расположены здесь. /usr/local/etc Конфигурационные файлы установленных приложений. Могут содержать подкаталоги приложений. /usr/local/etc/rc.d Скрипты запуска/остановки установленных приложений. /var/db Автоматически генерируемые системно-специфичные файлы баз данных, такие как база данных пакетов, и так далее Имена хостов hostname DNS <filename>/etc/resolv.conf</filename> resolv.conf /etc/resolv.conf определяет, как ресолвер (resolver) &os; получает доступ к Системе Доменных Имён (DNS). Основные записи resolv.conf: nameserver IP адрес сервера имён. Сервера опрашиваются в порядке описания. Максимальное количество адресов - три. search Список доменов для поиска с помощью hostname lookup. Обычно определяется доменом, в котором находится компьютер. domain Домен, в котором находится компьютер. Типичный вид resolv.conf: search example.com nameserver 147.11.1.11 nameserver 147.11.100.30 Опции search и domain нельзя использовать совместно. Если вы используете DHCP, &man.dhclient.8; обычно перезаписывает resolv.conf информацией, полученной от серверов DHCP. <filename>/etc/hosts</filename> hosts /etc/hosts - простая текстовая база данных, напоминающая старый Интернет. Она работает совместно с DNS и NIS, сопоставляя доменные имена IP адресу. Отдельные компьютеры, соединённые с помощью локальной сети могут быть записаны тут вместо &man.named.8; сервера с целью упрощения. Кроме того, /etc/hosts используется для записи IP адресов и соответствующих им доменов, избавляя от внешнего трафика, используемого для запросов к DNS серверам. # $&os;$ # # Host Database # This file should contain the addresses and aliases # for local hosts that share this file. # In the presence of the domain name service or NIS, this file may # not be consulted at all; see /etc/nsswitch.conf for the resolution order. # # ::1 localhost localhost.my.domain myname.my.domain 127.0.0.1 localhost localhost.my.domain myname.my.domain # # Imaginary network. #10.0.0.2 myname.my.domain myname #10.0.0.3 myfriend.my.domain myfriend # # According to RFC 1918, you can use the following IP networks for # private nets which will never be connected to the Internet: # # 10.0.0.0 - 10.255.255.255 # 172.16.0.0 - 172.31.255.255 # 192.168.0.0 - 192.168.255.255 # # In case you want to be able to connect to the Internet, you need # real official assigned numbers. PLEASE PLEASE PLEASE do not try # to invent your own network numbers but instead get one from your # network provider (if any) or from the Internet Registry (ftp to # rs.internic.net, directory `/templates'). # Формат /etc/hosts: [IP адрес в Интернете] [имя компьютера] [alias1] [alias2] ... Например: 10.0.0.1 myRealHostname.example.com myRealHostname foobar1 foobar2 За дополнительной информацией обращайтесь к &man.hosts.5;. Настройка лог файлов лог файлы <filename>syslog.conf</filename> syslog.conf syslog.conf is является файлом конфигурации для &man.syslogd.8;. В нём указываются, типы сообщений генерируемые syslog, и лог файлы, в которые они записываются. # $&os;$ # # Spaces ARE valid field separators in this file. However, # other *nix-like systems still insist on using tabs as field # separators. If you are sharing this file between systems, you # may want to use only tabs as field separators here. # Consult the syslog.conf(5) manual page. *.err;kern.debug;auth.notice;mail.crit /dev/console *.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages security.* /var/log/security mail.info /var/log/maillog lpr.info /var/log/lpd-errs cron.* /var/log/cron *.err root *.notice;news.err root *.alert root *.emerg * # uncomment this to log all writes to /dev/console to /var/log/console.log #console.info /var/log/console.log # uncomment this to enable logging of all log messages to /var/log/all.log #*.* /var/log/all.log # uncomment this to enable logging to a remote log host named loghost #*.* @loghost # uncomment these if you're running inn # news.crit /var/log/news/news.crit # news.err /var/log/news/news.err # news.notice /var/log/news/news.notice !startslip *.* /var/log/slip.log !ppp *.* /var/log/ppp.log За более полной информацией обратитесь к &man.syslog.conf.5;. <filename>newsyslog.conf</filename> newsyslog.conf newsyslog.conf - конфигурационный файл &man.newsyslog.8;, программы, обычно контролируемой &man.cron.8;. &man.newsyslog.8; определяет, когда лог-файлы нуждаются в архивировании и перегруппировке. logfile перемещается в logfile.0, logfile.0 перемещается в logfile.1, и так далее. Другое именование получится при архивировании с помощью &man.gzip.1;: logfile.0.gz, logfile.1.gz, и т.д. newsyslog.conf показывает, какие лог файлы должны быть проинспектированы, сколько их должно быть сохранено, и когда они должны быть пересмотрены. Лог файлы могут быть перегруппированы и/или заархивированы, когда они либо достигнут определённого размера, либо при достижении определённых даты/времени. # configuration file for newsyslog # $&os;$ # # filename [owner:group] mode count size when [ZB] [/pid_file] [sig_num] /var/log/cron 600 3 100 * Z /var/log/amd.log 644 7 100 * Z /var/log/kerberos.log 644 7 100 * Z /var/log/lpd-errs 644 7 100 * Z /var/log/maillog 644 7 * @T00 Z /var/log/sendmail.st 644 10 * 168 B /var/log/messages 644 5 100 * Z /var/log/all.log 600 7 * @T00 Z /var/log/slip.log 600 3 100 * Z /var/log/ppp.log 600 3 100 * Z /var/log/security 600 10 100 * Z /var/log/wtmp 644 3 * @01T05 B /var/log/daily.log 640 7 * @T00 Z /var/log/weekly.log 640 5 1 $W6D0 Z /var/log/monthly.log 640 12 * $M1D0 Z /var/log/console.log 640 5 100 * Z За дополнительной информацией обращайтесь к &man.newsyslog.8;. <filename>sysctl.conf</filename> sysctl.conf sysctl sysctl.conf очень похож на rc.conf. Значения устанавливаются в виде variable=value. Указанные значения устанавливаются после перевода системы в многопользовательский режим. Однако не все переменные могут быть установлены в этом режиме. Пример sysctl.conf настроенной для выключения нотирования фатальных ошибок и разрешения Linux-программам определять, что они запускаются под &os;: kern.logsigexit=0 # Do not log fatal signal exits (e.g. sig 11) compat.linux.osname=&os; compat.linux.osrelease=4.3-STABLE Настройка с помощью sysctl sysctl настройка с помощью sysctl &man.sysctl.8; - это интерфейс, позволяющий вам вносить изменения в работающую систему &os;. Эти изменения могут касаться многих опций стека TCP/IP и виртуальной памяти и могут облегчить опытному администратору жизнь. Более пяти тысяч системных переменных могут быть прочитаны и записаны с помощью &man.sysctl.8;. По своей сути, &man.sysctl.8; выполняет две функции: чтение и изменение настроек системы. Для просмотра всех доступных для чтения переменных:: &prompt.user; sysctl -a Чтобы прочитать определённую переменную, например, kern.maxproc, введите: &prompt.user; sysctl kern.maxproc kern.maxproc: 1044 Для присвоения значения переменной, используйте выражение вида переменная=значение: &prompt.root; sysctl kern.maxfiles=5000 kern.maxfiles: 2088 -> 5000 Изменяемые с помощью sysctl переменные обычно принимают значения либо строкового, либо целого, либо булевого типа. Переменные булевого типа могут принимать два значения (1 (истина) и 0 (ложь)). Если вы хотите устанавливать некоторые переменные автоматически при каждой загрузке компьютера, добавьте их в файл /etc/sysctl.conf. За дополнительной информацией обращайтесь к странице справочника &man.sysctl.conf.5; и к . Tom Rhodes Предоставил Переменные &man.sysctl.8; только для чтения В некоторых случаях желательно изменить переменные &man.sysctl.8; только для чтения. Хотя это не рекомендуется, иногда другого способа решить проблему нет. Например, на некоторых моделях лэптопов диапазон памяти устройства &man.cardbus.4; не определяется и выдается приблизительно такая ошибка: cbb0: Could not map register memory device_probe_and_attach: cbb0 attach returned 12 Ситуации, похожие на эту, требуют изменения некоторых значений &man.sysctl.8;, модификация которых запрещена. Для разрешения этой ситуации пользователь может поместить &man.sysctl.8; OID в файл /boot/loader.conf. Значения по умолчанию хранятся в файле /boot/defaults/loader.conf. Решение проблемы, приведенной выше, потребует помещения строки в вышеупомянутый файл. Теперь &man.cardbus.4; будет работать нормально. Оптимизация дисков Переменные Sysctl <varname>vfs.vmiodirenable</varname> vfs.vmiodirenable Значением переменной vfs.vmiodirenable может быть установлено в 0 (выключено) или 1 (включено); по умолчанию 1. Эта переменная отвечает за метод кэширования каталогов. Размер большинства каталогов невелик. Они могут поместиться в одном фрагменте (обычно 1K), и могут занимать ещё меньше места (обычно 512 байт) в кэше буфера. При отключении этой переменной (при установке значения 0) буфер прокэширует только заданное число каталогов даже если у вас много памяти. При включении (при установке значения 1) эта переменная sysctl позволит использовать страничное кэширование VM, делая доступным для кэширования каталогов весь объём памяти. Однако, минимальный объём памяти, используемой для кэширования каталогов стал равен объёму страницы (обычно 4 K) вместо 512 байт. Мы рекомендуем оставлять эту опцию включенной, если ваш компьютер исполняет программы, манипулирующие значительным количеством файлов. Примером таких программ могут быть кэширующие прокси-серверы, большие почтовые серверы и серверы новостей. Обычно включение этой опции не понижает производительности, однако лучше поэкспериментировать, чтобы узнать оптимальное значение для вашей машины. <varname>vfs.write_behind</varname> vfs.write_behind Переменная sysctl vfs.write_behind по умолчанию установлена в 1 (включено). Она указывает системе выполнять запись на носитель по кластерам, что обычно делается для больших файлов. Идея в том, чтобы избежать заполнения кэша неполными буферами, когда это не увеличивает производительность. Однако, это может заблокировать процессы и в некоторых случаях вам может понадобиться отключить этот параметр. <varname>vfs.hirunningspace</varname> vfs.hirunningspace Переменная sysctl vfs.hirunningspace определяет число запросов записи на диск, которые могут быть поставлены в очередь. Значение по умолчанию обычно подходит, но на компьютерах с большим количеством дисков вы можете увеличить его до четырех или пяти мегабайт. Учтите, что установка слишком большого значения (превышающего размер буфера записи) может привести к очень значительному падению общей производительности. Не делайте это значение произвольно большим! Большие значения могут привести к задержкам чтения, выполняемого в то же время Есть много других переменных sysctl, относящихся к кэшированию в буфер и страничному кэшированию VM. Мы не рекомендуем изменять эти значения. Начиная &os; 4.3, система VM делает отличную работу по автоматической самонастройке. <varname>vm.swap_idle_enabled</varname> vm.swap_idle_enabled Переменная sysctl vm.swap_idle_enabled полезна в больших многопользовательских системах, где есть много пользователей, входящих и выходящих из системы, и множество ожидающих процессов. Такие системы обычно генерируют большое количество запросов на выделение памяти. Включение этой переменной и настройка задержки выгрузки (swapout hysteresis, в секундах) установкой переменных vm.swap_idle_threshold1 и vm.swap_idle_threshold2 позволит освобождать страницы памяти, занятые ожидающими процессами, более быстро, чем при нормальном алгоритме выгрузки. Это помогает даемону выгрузки страниц. Не включайте этот параметр, пока он на самом деле вам не понадобится, поскольку его действие в сущности заключается в более ранней выгрузке страниц из памяти; это повышает нагрузку на подкачку и диск. В малых системах эффект от включения этого параметра предсказуем, но в больших системах нагруженной на подкачкой этот параметр позволяет системе VM проще загружать и выгружать процессы из памяти. <varname>hw.ata.wc</varname> hw.ata.wc Во &os; 4.3 кэширование записи на IDE диски было отключено. Это понижало производительность IDE дисков в тестах, но было необходимо для лучшей сохранности данных. Проблема состоит в том, что IDE диски неправильно указывают время завершения записи на диск. При включенном кэшировании IDE диски могут не только записать данные в неправильном порядке – при большой нагрузке на диск некоторые блоки могут задержаться до бесконечности. Сбой, или отключение питания могут могут стать причиной серьёзных повреждений в файловой системе. Поэтому для безопасности системы значение по умолчанию этого параметра было изменено. К сожалению, результатом этого стало столь значительная потеря производительности, что после выхода релиза значение этого параметра было возвращено в первоначальное состояние. Вам следует проверить значение переменной sysctl hw.ata.wc на вашей машине. Если кэширование выключено - вы можете включить его, установив значение переменной ядра, равное 1. Это должно быть сделано при помощи загрузчика при загрузке. Если вы сделаете это позже - изменения не будут иметь силы. За более подробной информацией обращайтесь к &man.ata.4;. <literal>SCSI_DELAY</literal> (<varname>kern.cam.scsi_delay</varname>) SCSI_DELAY kern.cam.scsi_delay Параметр настройки ядра SCSI_DELAY может использоваться для уменьшения времени загрузки системы. Значение по умолчанию велико и может составлять более 15 секунд в процессе загрузки. Уменьшение его до 5 секунд обычно работает (особенно с современными дисками). В новых версиях &os; (5.0 и выше) должен использоваться параметр kern.cam.scsi_delay, настраиваемый во время загрузки. Этот параметр и параметр настройки ядра принимают значения в миллисекундах, а не в секундах. Soft Updates Soft Updates tunefs Программа &man.tunefs.8; используется для настройки файловой системы. Эта программа может принимать большое количество параметров, но мы рассмотрим лишь один из них - включение и выключение Soft Updates, что может быть достигнуто следующим образом: &prompt.root; tunefs -n enable /filesystem &prompt.root; tunefs -n disable /filesystem Нельзя изменять файловую систему с помощью &man.tunefs.8; когда она смонтирована. Самое подходящее время для включения "Soft Updates" - перед монтированием разделов, в однопользовательском режиме. Начиная с &os; 4.5, можно включить Soft Updates во время создания файловой системы, используя &man.newfs.8; с параметром -U. Soft Updates существенно увеличивают скорость создания и удаления файлов путём использования кэширования. Мы рекомендуем использовать Soft Updates на всех ваших файловых системах. Однако у Soft Updates есть и обратные стороны: во-первых, Soft Updates гарантирует целостность файловой системы в случае сбоя, но может наблюдаться задержка в несколько секунд (или даже минуту!) перед записью на жесткий диск. Если система зависнет - вы можете потерять больше, чем, если бы вы не включили Soft Updates. Во-вторых, Soft Updates задерживает освобождение блоков файловой системы. Если ваша файловая система заполнена, выполнение значительного обновления, например. make installworld, может вызвать переполнение. Дополнительная информация о Soft Updates Soft Updates детали Есть два традиционных способа записи метаданных файловых систем на диск. (Пример метаданных: индексные дескрипторы и каталоги.) Исторически, поведение по умолчанию заключается в синхронном обновлении метаданных. Если каталог был изменен, система ждет, пока изменение не будет физически записано на диск. Содержимое файлов проходит через кэш и записывается на диск асинхронно. Преимущество этого способа в его надежности. При сбое во время обновления метаданные остаются в нормальном состоянии. Файл либо создается целиком, либо вообще не создается. Если блоки данных не были записаны в файл из буфера во время сбоя, &man.fsck.8; сможет определить это и восстановить файловую систему, установив длину файла в 0. Кроме того, реализация этого способа проста и понятна. Недостаток в том, что обновление метаданных занимает много времени. Команда rm -r, например, последовательно удаляет все файлы в каталоге, и каждое изменение в каталоге (удаление файла) будет синхронно записано на диск. Сюда включаются обновления самого каталога, таблицы индексных дескрипторов, и возможно блоков, занятых файлом. Те же соглашения работают при распаковке больших иерархий (tar -x). Другой вариант это асинхронное обновление метаданных. Это поведение по умолчанию для Linux/ext2fs и *BSD ufs с параметром mount -o async. Все обновления метаданных просто пропускаются через кэш буфера, как и содержимое файлов. Преимущество этой реализации в том, что нет необходимости ждать каждый раз, пока метаданные будут записаны на диск, поэтому все операции с большим объемом обновления метаданных будут происходить гораздо быстрее чем при синхронном обновлении. Кроме того, реализация все еще проста и понятна, поэтому риск появления ошибок в коде невелик. Недостаток в том, что нет никаких гарантий исправности файловой системы. Если во время во время обновления большого объема метаданных произойдет сбой (например, отключение питания, или нажатие кнопки reset), файловая система останется в непредсказуемом состоянии. Нет возможности определить состояние файловой системы после такого сбоя; блоки данных файла могут быть уже записаны на диск, а обновления таблицы индексных дескрипторов нет. Невозможно реализовать fsck, которая могла бы исправить получившийся хаос (поскольку необходимой информации нет на диске). Если файловая система была уничтожена во время восстановления, единственный способ восстановления — запустить &man.newfs.8; и воспользоваться резервной копией. Обычное решение этой проблемы состояло в реализации протоколировании проблемной области (dirty region logging), известном как журналирование, хотя этот термин использовался неправильно и порой также применялся к другим формам протоколирования транзакций. Обновление метаданных как и прежде происходит синхронно, но в отдельную область диска. Позже они перемещаются туда, где должны быть. Поскольку область протоколирования это небольшая, последовательная область диска, головкам жесткого диска не приходится перемещаться на большие расстояния даже во время значительных обновлений, поэтому такой способ быстрее, чем синхронные обновления. Кроме того, сложность реализации довольно ограничена, поэтому риск внесения ошибок невелик. Недостаток в том, что все обновления метаданных записываются дважды (один раз в область протоколирования и один раз окончательно), поэтому при обычной работе производительность может понизиться. С другой стороны, в случае сбоя все незаконченные действия с метаданными могут быть быстро отменены, или завершены после загрузки системы, поэтому система после сбоя загружается быстрее. Kirk McKusick, разработчик Berkeley FFS, решил эту проблему с помощью Soft Updates: все незавершенные обновления метаданных находятся в памяти и записываются на диск в упорядоченном виде (упорядоченное обновления метаданных). При значительных обновлениях метаданных более поздние обновления присоединяются к предыдущим, если они все еще находятся в памяти и еще не записаны на диск. Поэтому все операции, скажем, над каталогом, обычно выполняются в памяти перед записью обновления на диск (блоки данных сортируются в соответствии с их положением, так что они не будут записаны на диск до метаданных. При крахе операционной системы выполняется откат: считается, что все операции, не записанные на диск, никогда не происходили. Файловая система находится в том состоянии, в котором она была за 30–60 секунд до сбоя. Используемый алгоритм гарантирует, что все используемые ресурсы маркированы соответствующим образом в своих областях: блоки и индексные дескрипторы. После сбоя могут остаться только ошибки, выделения ресурсов, они помечаются как используемые, хотя на самом деле свободны. &man.fsck.8; разбирается в ситуации и освобождает более не используемые ресурсы. После сбоя система может быть безопасно смонтирована с опцией mount -f. Для освобождения ресурсов, которые могут не использоваться, в дальнейшем потребуется запустить &man.fsck.8;. Эта идея лежит в основе background (фоновая) fsck: во время запуска системы записывается только снимок файловой системы. Все системы могут быть смонтированы в грязном состоянии, и система загружается в многопользовательский режим. Затем, фоновые fsck ставятся в очередь для всех систем, где это требуется, чтобы освободить неиспользуемые ресурсы. (Файловые системы, где не используются Soft Updates, все еще требуют запуска fsck в обычном режиме). Преимущество этого способа в том, что обновления метаданных происходят почти так же быстро, как при асинхронных обновлениях (т.е. быстрее, чем при журналировании, когда метаданные записываются дважды). Недостаток в сложности кода (подразумевающим больший риск появления ошибок в области, где вероятность потери данных пользователя особенно высока) и в более высоких требованиях к объему памяти. К тому же могут возникнуть некоторые странные на первый взгляд ситуации. После сбоя состояние файловой системы несколько более старое. В ситуации, когда стандартный способ синхронизации оставит несколько файлов нулевой длины после выполнения fsck, в файловой системе с Soft Updates их не останется вовсе, поскольку ни метаданные, ни содержимое файлов не были записаны на диск. Дисковое пространство не будет освобождено пока обновления не будут записаны на диск, что может занять некоторое время после выполнения rm. Это может повлечь проблемы при установке большого количества файлов на файловую систему, где не хватает места для помещения всех файлов дважды. Изменение ограничений, накладываемых ядром оптимизация параметры ядра Ограничения на Файлы/Процессы <varname>kern.maxfiles</varname> kern.maxfiles Значение kern.maxfiles может быть увеличено или уменьшено в зависимости от потребностей вашей системы. Эта переменная определяет максимальное число дескрипторов файлов. Когда таблица дескрипторов файлов полна, в очереди системных сообщений появится сообщение file: table is full. Это сообщение может быть прочитано с помощью команды dmesg. Каждый открытый файл, сокет или буфер использует дескриптор файла. Широкомасштабному серверу может понадобиться много тысяч дескрипторов файлов, в зависимости от количества программ, одновременно выполняемых на сервере. Стандартное значение kern.maxfile определяется переменной в вашем файле конфигурации ядра. Значение kern.maxfiles увеличивается пропорционально значению . При компилировании ядра, нужно установить эту переменную согласно потребностям вашей системы. Исходя из значения этой переменной, ядро устанавливает значения большинства предопределённых переменных. Даже если предполагается, что к компьютеру не будут одновременно подсоединяться 256 пользователей, требуемые ресурсы могут быть такими же, как у крупномасштабного сервера. Начиная с &os; 4.5, установка значения в 0 в файле конфигурации ядра выберет подходящее значение по умолчанию, основанное на объеме оперативной памяти системы. <varname>kern.ipc.somaxconn</varname> kern.ipc.somaxconn Переменная sysctl kern.ipc.somaxconn ограничивает размер очереди для приема новых TCP соединений. Значение по умолчанию 128 слишком мало для надежной обработки новых соединений для нагруженного web сервера. Для такого сервера рекомендуется увеличить это значение до 1024 или выше. Даемон сервиса может сам ограничивать очередь приема новых соединений (например, &man.sendmail.8;, или Apache), но обычно в файле настройки даемона есть директива для настройки длины очереди. Более длинная очередь также помогает избежать атак Denial of Service (DoS). Сетевые Ограничения Опция ядра NMBCLUSTERS обуславливает количество Mbuf, доступных на машине. На сервере с большим трафиком и маленьким Mbuf производительность будет пониженной. Каждый кластер представлен двумя килобайтами памяти, поэтому значение 1024 означает 2 мегабайта памяти ядра, зарезервированной для сетевых буферов. Для определения оптимального значения необходимо провести простые вычисления. Если у вас веб сервер, который может обслуживать 1000 одновременных соединений, и каждое соединение съедает 16 K буфера приема и 16 K буфера отправки, вам потребуется 32 MB памяти под буферы. Хорошее правило — умножение этого значения на 2, 2x32 MB / 2 KB = 64 MB / 2 kB = 32768. Мы рекомендуем значения между 4096 и 32768 для машин с большим объемом памяти. Не указывайте произвольно большое значение параметра, это может привести к падению системы при загрузке. Используйте &man.netstat.1; для определения количества используемых сетевых кластеров. Для настройки в процессе загрузки используйте в loader переменную kern.ipc.nmbclusters. Только в старых версиях &os; потребуется пересобрать ядро (&man.config.8;) с измененным параметром NMBCLUSTERS. Для нагруженных серверов, интенсивно использующих системный вызов &man.sendfile.2;, может потребоваться увеличения буферов &man.sendfile.2; с помощью параметра конфигурации ядра NSFBUFS, или изменения значения путем установки переменной в /boot/loader.conf (обратитесь к &man.loader.8; за подробностями). Общий признак того, что параметр требуется изменить — состояние процессов sfbufa. Переменная sysctl kern.ipc.nsfbufs установлена только для чтения. Этот параметр увеличивается вместе с kern.maxusers, хотя может потребоваться увеличить его отдельно. Даже если сокет помечен как неблокирующий, вызов &man.sendfile.2; на неблокирующем сокете может вызвать блокирование &man.sendfile.2;, пока не станет доступным достаточное количество struct sf_buf. <varname>net.inet.ip.portrange.*</varname> net.inet.ip.portrange.* Переменные sysctl net.inet.ip.portrange.* контролируют диапазоны номеров портов, автоматически привязываемых к TCP и UDP сокетам. Есть три диапазона: нижний диапазон, диапазон по умолчанию и верхний диапазон. Большинство сетевых программ используют диапазон по умолчанию, контролируемый net.inet.ip.portrange.first и net.inet.ip.portrange.last, установленными соответственно в 1024 и 5000. Диапазоны портов привязки используются исходящих соединений и при некоторых условиях портов может не хватить. Это чаще всего происходит на сильно загруженном прокси сервере. Диапазон портов не становится проблемой при работе серверов, которые обрабатывают в основном входящие соединения, или с небольшим количеством исходящих соединений, например mail relay. Для ситуаций, когда возможен недостаток портов, рекомендуется немного увеличить net.inet.ip.portrange.last. Может подойти значение 10000, 20000, или 30000. Учтите также возможное влияние межсетевого экрана при изменении диапазона портов. Некоторые могут блокировать большие диапазоны портов (обычно с небольшими номерами) и вынуждают использовать более высокие диапазоны для исходящих соединений. По этой причине рекомендуется настроить значение net.inet.ip.portrange.first. TCP Bandwidth Delay Product TCP Bandwidth Delay Product Limiting net.inet.tcp.inflight_enable TCP Bandwidth Delay Product Limiting похоже на TCP/Vegas в NetBSD. Оно может быть включено установкой переменной sysctl net.inet.tcp.inflight_enable в 1. Система попытается вычислить задержку пакетов для каждого соединения и ограничить объем данных в очереди сети до значения, требуемого для поддержания оптимальной пропускной способности. Эта возможность полезна при передаче данных через модемы, Gigabit Ethernet, или даже через высокоскоростные WAN соединения (или любые другие соединения с большой задержкой передачи), особенно если вы также используете изменение размера окна или настроили большое окно передачи. Если вы включили этот параметр, убедитесь также, что переменная net.inet.tcp.inflight_debug установлена в 0 (отладка выключена), а для использования в реальных может понадобиться установка переменной net.inet.tcp.inflight_min к значению как минимум 6144. Но учтите, что установка большого значения этой переменной может фактически отключить ограничение в зависимости от вида соединения. Ограничение уменьшает количество данных на определенном маршруте и управляет очередью пакетов, как и уменьшает общее количество данных в очереди локального интерфейса хоста. С меньшим количеством пакетов в очереди двусторонние интерактивные соединения, особенно на медленных линиях, могут проходить быстрее. Но имейте ввиду, что эта функция работает только при передаче данных (передача данных / сторона сервера). Она не работает при получении данных (загрузке). Изменение значения переменной net.inet.tcp.inflight_stab не рекомендуется. Этот параметр по умолчанию равен 20, что означает добавление 2 пакетов к вычислению задержки передачи. Дополнительное окно требуется для стабилизации алгоритма и улучшения ответной реакции на изменение условий, но также приводит к большему времени ping на медленных соединениях (задержка все же гораздо меньше, чем без алгоритма inflight). Вы можете попробовать уменьшить этот параметр до 15, 10 или 5; а также уменьшить net.inet.tcp.inflight_min (например, до 3500) для получения желаемого эффекта. Уменьшение значений этих параметров может использоваться только как крайняя мера. Увеличение объема подкачки Вне зависимости от того, что вы планировали, иногда система ведет себя неожиданно. Если вам потребовался дополнительный объем подкачки, его довольно просто добавить. Есть три способа увеличения объема подкачки: добавить новый жесткий диск, включить подкачку по NFS, или создать файл подкачки на существующем разделе. Подкачка на новом жестком диске Лучший способ добавить подкачку, конечно, использовать еще один жесткий диск. Вы можете сделать это в любой момент. Если такой способ подходит, прочтите еще раз информацию по пространству подкачки в разделе Руководства, где рассказывается о наилучшем способе организации раздела подкачки. Подкачка через NFS Подкачка через NFS рекомендуется только в том случае, если в системе отсутствует жесткий диск. Подкачка через NFS медленна и неэффективна в версиях &os; до 4.X. Она довольно быстра и эффективна в 4.0-RELEASE и выше. Но даже в новых версиях &os;, подкачка через NFS ограничена скоростью сетевого подключения и к тому же дополнительно нагружает NFS сервер. Файлы подкачки Вы можете создать файл определенного размера и использовать его как файл подкачки. В нашем примере будет использован файл /usr/swap0 размером 64MB. Конечно, вы можете использовать любое имя. Создание файла подкачки в &os; 4.X Убедитесь, что ядре включен драйвер vnode. Он невключен в последних версиях GENERIC. pseudo-device vn 1 #Vnode driver (turns a file into a device) Создайте устройство vn: &prompt.root; cd /dev &prompt.root; sh MAKEDEV vn0 Создайте файл подкачки (/usr/swap0): &prompt.root; dd if=/dev/zero of=/usr/swap0 bs=1024k count=64 Установите подходящие права на (/usr/swap0): &prompt.root; chmod 0600 /usr/swap0 Включите файл подкачки в /etc/rc.conf: swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired. Перегрузите компьютер, или для включения подкачки прямо сейчас выполните: &prompt.root; vnconfig -e /dev/vn0b /usr/swap0 swap Создание файла подкачки в &os; 5.X Убедитесь, что в файле настройки ядра присутствует драйвер виртуального диска (&man.md.4;). Он есть в ядре GENERIC. device md # Memory "disks" Создайте файл подкачки (/usr/swap0): &prompt.root; dd if=/dev/zero of=/usr/swap0 bs=1024k count=64 Установите подходящие права на (/usr/swap0): &prompt.root; chmod 0600 /usr/swap0 Включите файл подкачки в /etc/rc.conf: swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired. Перегрузите компьютер или для включения подкачки прямо сейчас введите: &prompt.root; mdconfig -a -t vnode -f /usr/swap0 -u 0 && swapon /dev/md0 Hiten Pandya Написал Tom Rhodes Управление питанием и ресурсами Очень важно использовать аппаратные ресурсы эффективно. До того, как появился ACPI, управление потреблением питания и температурными характеристиками системы было очень сложной для операционной системы задачей. Аппаратное обеспечение контролировалось одним из видов встроенного интерфейса BIOS, таким как: Plug and Play BIOS (PNPBIOS), Advanced Power Management (APM) и так далее. Управление питанием и ресурсами это один из ключевых компонентов современной операционной системы. Например, вам может потребоваться, чтобы операционная система следила за температурными ограничениями и возможно, предупреждала при неожиданном росте температуры. В этом разделе Руководства &os;, мы предоставим исчерпывающую информацию о ACPI. В конце раздела есть ссылки для дальнейшего чтения. Учтите, что ACPI есть только в &os; 5.X и выше в качестве стандартного модуля ядра. В &os; 4.9 ACPI можно включить добавлением строки device acpica к файлу настройки ядра и его пересборкой. Что такое ACPI? Advanced Configuration and Power Interface (ACPI) это стандарт, написанный объединением поставщиков в целях предоставления стандартного интерфейса для аппаратных ресурсов и управления питанием (отсюда и название). Это ключевой элемент Operating System-directed configuration and Power Management, т.е.: он предоставляет операционной системе (OS) больше контроля и более универсален. Современные системы вышли за пределы ограничений существующих Plug and Play интерфейсов (таких как APM, использовавшийся в &os; 4.X), до появления ACPI. ACPI это прямой наследник APM (Advanced Power Management). Недостатки Advanced Power Management (APM) Средства Advanced Power Management (APM) управляют энергопотреблением системы в зависимости от нагрузки. APM BIOS предоставляется поставщиком системы и специфичен для данной аппаратной платформы. Драйвер APM в OS обеспечивает доступ к APM Software Interface, который позволяет управлять уровнями потребления питания. В APM имеется четыре основных проблемы. Во-первых, управление энергопотреблением осуществляется через зависимый от поставщика BIOS, и OS ничего не знает нем. Один пример: когда пользователь устанавливает время ожидания для жесткого диска в APM BIOS, и это время истекает, BIOS останавливает жесткий диск без согласования с OS. Во-вторых, алгоритм APM встроен в BIOS, и все действия происходят вне контроля OS. Это означает, что пользователи могут решить проблемы с APM BIOS только путем перепрошивки его ROM; это очень опасная процедура, и если она завершится неудачно, система может оказаться в невосстановимом состоянии. В-третьих, реализация технологии APM зависит от поставщика, что означает дублирование усилий и если в BIOS одного из поставщиков будет найдена и исправлена ошибка, ее могли не исправить другие поставщики. Наконец, объем APM BIOS недостаточно велик для реализации сложной политики управления питанием, или такой политики, которая может хорошо адаптироваться к потребностям компьютера. Plug and Play BIOS (PNPBIOS) был неудобен во многих ситуациях. PNPBIOS это 16-битная технология, поэтому OS требовалось использовать 16-битную эмуляцию для взаимодействия с методами PNPBIOS. &os; драйвер APM документирован в странице справочника &man.apm.4;. Настройка <acronym>ACPI</acronym> &man.loader.8; загружает драйвер acpi.ko по умолчанию, его не надо встраивать в ядро. Причина в том, что с модулями проще работать, например переключиться на другой acpi.ko без пересборки ядра. Преимущество в упрощении тестирования. Другая причина в том, что запуск ACPI после старта системы не очень полезен и при некоторых условиях может приводить к краху. Если вы сомневаетесь, отключите ACPI совсем. Драйвер не должен и не может быть выгружен, поскольку системная шина используется для различных взаимодействий оборудования. ACPI может быть выключен с помощью утилиты &man.acpiconf.8;. Фактически большинство взаимодействий с ACPI может быть выполнено через &man.acpiconf.8;. В основном это означает, что если в выводе &man.dmesg.8; есть что-то об ACPI, он скорее всего работает. ACPI и APM не могут сосуществовать и должны использоваться раздельно. Каждый из них прервет загрузку, если обнаружит загруженный драйвер другого. В простейшей форме, ACPI может использоваться для перевода системы в спящий режим с помощью &man.acpiconf.8;, с флагом и параметром 1-5. Большинству пользователей нужен только параметр 1. Параметр 5 сделает мягкое завершение работы, так же как и: &prompt.root; halt -p Доступны и другие параметры. Обратитесь к странице справочника &man.acpiconf.8; за дополнительной информацией. Nate Lawson Написал Peter Schultz При помощи Tom Rhodes Использование и отладка &os; <acronym>ACPI</acronym> ACPI это фундаментально новый способ обнаружения устройств, управления энергопотреблением и предоставления стандартизированного доступа к различному оборудованию, ранее управлявшемуся BIOS. Был достигнут определенный прогресс в приспособлении ACPI к работе со всеми системами, но все еще встречаются ошибки в байткоде ACPI Machine Language (AML) некоторых материнских плат, незавершенные участки кода в подсистемах ядра &os; и ошибки в интерпретаторе &intel; ACPI-CA. Этот раздел предназначен для того, чтобы упростить ваше содействие разработчикам &os; ACPI в определении причин наблюдаемых вами проблем, выполнении отладки и выработке решения. Спасибо за помощь и надеемся, что мы сможем помочь в решении проблем вашей системы. Отправка отладочной информации Перед отправкой сообщения об ошибке убедитесь, что у вас последняя версия BIOS, и, если доступна, последняя версия firmware встроенного контроллера. Те из вас, кто желает составить сообщение о проблеме прямо сейчас, могут воспользоваться адресом freebsd-acpi@FreeBSD.org, отправив на него следующую информацию: Описание неправильного поведения, включая тип системы, модель и все, что приводит к появлению ошибки. Кроме того, сообщите настолько точно, насколько возможно, когда появилась ошибка, если ранее вы ее не видели. Вывод &man.dmesg.8; после boot -v, включая все сообщения, появившиеся при изучении ошибки. Вывод &man.dmesg.8; после boot -v с выключенным ACPI, если его отключение помогает решить проблему. Вывод sysctl hw.acpi. Это также хороший способ получения списка возможностей системы. URL где можно найти ваш ACPI Source Language (ASL). Не отправляйте ASL непосредственно в список рассылки, поскольку он может быть очень большим. Копия ASL может быть создана командой: &prompt.root; acpidump -t -d > name-system.asl (Замените вашим логином name и производителем/моделью system. Пример: njl-FooCo6000.asl) Большинство разработчиков читают &a.current;, но для уверенности, что проблему увидят, отправьте ее в &a.acpi.name;. Будьте терпеливы, все мы заняты полный рабочий день где-то еще. Если ваше сообщение не заметили сразу, мы возможно попросим вас отправить PR (сообщение о проблеме) через &man.send-pr.1;. При вводе PR, включайте ту же информацию, что запрошена выше. Это поможет нам отследить проблему и решить ее. Не отправляйте PR без предварительной отправки письма в &a.acpi.name;, поскольку мы используем PR в качестве напоминаний о существующих проблемах, а не как механизм сообщений об ошибках. Вероятно, о вашей проблеме кто-то уже сообщал ранее. Общие сведения ACPI представлен во всех современных компьютерах, соответствующих архитектурам ia32 (x86), ia64 (Itanium) и amd64 (AMD). Полный стандарт включает множество возможностей, в том числе управление производительностью CPU, уровнем питания, температурой, различными системами аккумуляторов, встроенными контроллерами и опросом шины. В большинстве систем стандарт реализован не полностью. Например, настольные системы обычно реализуют только опрос шины, а портативные компьютеры кроме того могут поддерживать управление охлаждением и энергопотреблением. Они также поддерживают приостановку и последующий запуск системы различного уровня сложности. ACPI-совместимые системы состоят из различных компонентов. Производители BIOS и чипсетов предоставляют различные жестко заданные таблицы, (например, FADT), которые определяют функции вроде карты APIC (используется для SMP), регистры настройки и простые значения параметров. Кроме того, предоставляется таблица байткода (Differentiated System Description Table, DSDT), определяющая древоподобное пространство имен устройств и методов. Драйвер ACPI должен прочесть заданные таблицы, реализовать интерпретатор для байткода, модифицировать драйвера устройств и ядро для приема информации от подсистемы ACPI. Для &os; &intel; предоставила интерпретатор (ACPI-CA), тот же что для Linux и NetBSD. Исходный код ACPI-CA находится в каталоге src/sys/contrib/dev/acpica. Код для приспособления ACPI-CA к работе в &os;, находится в src/sys/dev/acpica/Osd. Наконец, драйвера, реализующие различные ACPI устройства, находятся в src/sys/dev/acpica. Часто встречающиеся проблемы Для правильной работы ACPI все ее части должны работать правильно. Вот некоторые часто встречающиеся проблемы, в порядке частоты появления, и некоторые обходные пути или исправления. Приостановка/возобновление работы ACPI поддерживает три состояния приостановки в RAM (STR), S1-S3, и одно состояние приостановки на диск (STD), называемое S4. S5 это мягкое выключение и это нормальное состояние системы, когда она подключена к сети, но не включена. S4 может быть реализован двумя различными путями. S4BIOS это BIOS-поддерживаемая приостановка на диск. S4OS реализуется полностью операционной системой. Начните с проверки переменных sysctl hw.acpi, относящихся к приостановке (suspend). Вот результат для Thinkpad: hw.acpi.supported_sleep_state: S3 S4 S5 hw.acpi.s4bios: 0 Это означает, что мы можем использовать acpiconf -s для тестирования S3, S4OS, и S5. Если был единицей (1), это означает поддержку S4BIOS вместо S4OS. При тестировании приостановки/возобновления работы, начните с S1, если этот режим поддерживается. Это состояние скорее всего поддерживается, поскольку не требует слишком серьезной поддержки со стороны драйвера. Никто не реализовал S2, который похож на S1. Следующий режим для тестирования это S3. Это наиболее глубокое STR состояние, оно требует существенной поддержки со стороны драйвера, чтобы правильно реинициализировать оборудование. Если у вас возникли проблемы при выходе из этого состояния, отправьте письмо в рассылку &a.acpi.name;, но не ждите, что проблема будет обязательно решена, поскольку существует множество драйверов/оборудования, нуждающихся в дальнейшем тестировании и разработке. Для изоляции проблемы удалите из ядра столько драйверов, сколько возможно. Если это работает, вы можете выяснить, какой драйвер вызывает проблему путем загрузки драйверов до тех пор, пока опять не произойдет сбой. Обычно бинарные драйвера, такие как nvidia.ko, драйвера дисплея X11 и USB вызывают большинство проблем, а драйвера Ethernet интерфейсов как правило работают отлично. Если вы можете нормально загрузить/выгрузить драйвера, автоматизируйте этот процесс, поместив соответствующие команды в /etc/rc.suspend и /etc/rc.resume. Это закомментированные примеры выгрузки и загрузки драйверов. Попробуйте установить параметр в нуль (0), если ваш дисплей не включается после возобновления работы. Попробуйте установить большие или меньшие значения для , чтобы проверить, поможет ли это. Другой способ, который можно попробовать, это запуск последнего дистрибутива Linux с поддержкой ACPI и протестировать поддержку остановки/возобновления работы на том же оборудовании. Если она работает на Linux, проблема скорее всего в драйверах &os; и поиск драйвера, вызывающего проблему, поможет разрешить ситуацию. Имейте ввиду, что разработчики ACPI обычно не поддерживают другие драйверы (звук, ATA, и т.п.), так что все результаты работы по поиску проблемы возможно необходимо отправить в список рассылки &a.current.name; и человеку, поддерживающему драйвер. Если вы решитесь заняться отладкой, поместите соответствующий код (&man.printf.3;) в вызывающий проблему драйвер для обнаружения места, где прерывается функция восстановления. Наконец, попробуйте отключить ACPI и включить APM. Если приостановка/возобновление работает с APM, вам возможно лучше подойдет APM, особенно на старом оборудовании (до 2000). Включение корректной поддержки ACPI поставщиками оборудования требует времени и вероятно в старом оборудовании поддержка ACPI в BIOS была некорректна. Система останавливается (временно или постоянно) Большинство систем останавливаются в результате потери прерываний или шторма прерываний. В чипсетах существует много проблем, связанных с тем, как BIOS настраивает прерывания перед загрузкой, правильностью таблицы APIC (MADT), и маршрутизации System Control Interrupt (SCI). Шторм прерываний может быть обнаружен по потерянным прерываниям путем проверки вывода строки с acpi0 команды vmstat -i. Если счетчик увеличивается более, чем несколько раз в секунду, это шторм прерываний. Если система останавливается, попробуйте войти в DDB (CTRL ALTESC на консоли) и ввести show interrupts. Наиболее надежный способ избавиться от проблемы с прерываниями, это отключение поддержки APIC с помощью параметра loader.conf hint.apic.0.disabled="1". Паника Паника, связанная с ACPI, случается довольно редко и имеет наибольший приоритет исправления. Первый шаг это изоляция действий, приводящих к панике (если это возможно) и получение отладки. Следуйте инструкции по включению - и настройке последовательной консоли + options DDB и настройке последовательной консоли (смотрите ) или настройке раздела &man.dump.8;. Вы можете получить отладочную - информацию DDB с помощью . + информацию DDB с помощью tr. Если вы записываете отладку вручную, убедитесь, что переписали как минимум пять (5) строк снизу и пять (5) строк сверху. Затем попробуйте изолировать проблему, загрузившись с выключенным ACPI. Если это работает, вы можете изолировать подсистему ACPI, используя различные параметры . Обратитесь к странице справочника &man.acpi.4; за примерами. Система включается после приостановки или завершения работы Во-первых, попробуйте установить в &man.loader.conf.5; параметр - 0. + hw.acpi.disable_on_poweroff="0". Это предотвращает отключение различных событий в ACPI во время завершения работы. В некоторых системах этот параметр необходимо установить - в 1 (по умолчанию) по тем же причинам. Обычно это + в 1 (по умолчанию) по тем же причинам. Обычно это решает проблему, если система неожиданно включается после приостановки или отключения питания. Другие проблемы Если вы наблюдаете другие проблемы с ACPI (работа с внешним оборудованием, проблемы с обнаружением устройств, и т.д.), отправьте описание проблемы в список рассылки; однако, некоторые из этих проблем могут относиться к незавершенным частям подсистемы ACPI, поэтому может потребоваться время на их реализацию. Будьте терпеливы, и подготовьтесь к тестированию исправлений, которые мы можем вам выслать. <acronym>ASL</acronym>, <command>acpidump</command>, и <acronym>IASL</acronym> Наиболее часто встречается проблема, связанная с предоставлением поставщиками BIOS некорректного (или полностью ошибочного!) байткода. Это обычно проявляется появлением консольных сообщений ядра, подобных этому: ACPI-1287: *** Error: Method execution failed [\\_SB_.PCI0.LPC0.FIGD._STA] \\ (Node 0xc3f6d160), AE_NOT_FOUND Зачастую вы можете разрешить эти проблемы путем обновления BIOS до последней ревизии. Большинство консольных сообщений безвредны, но если существуют другие проблемы, такие как не работающий статус батареи, возможно существуют проблемы в AML. Байткод, известный как AML, компилируется из исходного текста на языке ASL. AML находится в таблице, известной как DSDT. Для получения копии ASL, используйте &man.acpidump.8;. Вы можете использовать оба параметра (показывать содержимое постоянных таблиц) и (дизассемблировать AML в ASL). Обратитесь к разделу Отправка отладочной информации за примером синтаксиса. Простейшая первая проверка, которую вы можете провести, это перекомпиляция ASL для поиска ошибок. Предупреждения обычно могут быть проигнорированы, но ошибки обычно не позволяют ACPI работать правильно. Для перекомпиляции ASL, выполните следующую команду: &prompt.root; iasl your.asl Исправление <acronym>ASL</acronym> В дальней перспективе, наша задача состоит в том, чтобы обеспечить поддержку ACPI практически для каждой системы без вмешательства пользователя. Однако, на данный момент мы все еще разрабатываем обходные пути для ошибок, которые часто делают поставщики BIOS. - Интерпретатор Microsoft (acpi.sys и + Интерпретатор µsoft; (acpi.sys и acpiec.sys) не занимается проверкой четкости соблюдения стандартов, поэтому многие поставщики BIOS, проверяющие ACPI - только под Windows, никогда не исправляют ASL. + только под &windows;, никогда не исправляют ASL. Мы надеемся продолжать обнаружение и документацию нестандартных - поведений, позволяемых интерпретатором Microsoft, и воспроизводить + поведений, позволяемых интерпретатором µsoft;, и воспроизводить их, чтобы &os; могла работать без необходимости исправления ASL пользователями. В качестве обходного пути для обнаружения неправильного поведения, вы можете исправить ASL вручную. Если исправления будут работать, пожалуйста отправьте &man.diff.1; между старым и новым ASL, чтобы мы могли реализовать обходной путь для неправильного поведения ACPI-CA, чтобы исправление вручную больше не требовалось. Вот список наиболее часто встречающихся проблем, их причин и способы исправления: OS зависимости Некоторые AML предполагают, что мир состоит - из различных версий Windows. Вы можете настроить &os;, чтобы + из различных версий &windows;. Вы можете настроить &os;, чтобы она сообщала любое другое имя OS и посмотреть, исправит ли это имеющуюся проблему. Простой способ указания другого имени системы это установка переменной /boot/loader.conf - =Windows 2001 + hw.acpi.osname="Windows 2001" или в другое подобное значение, имеющееся в ASL. Отсутствие возврата значения Некоторые методы не возвращают значение явно, как того требует стандарт. Хотя ACPI-CA не обрабатывает эту ситуацию, в &os; существует обходной путь, позволяющей ей явно возвращать значение. Вы можете также добавить явные операторы Return (возврат) там, где требуется, если знаете, что значение должно быть возвращено. Для принудительного компилирования ASL командой iasl, используйте флаг . Перезапись <acronym>AML</acronym> по умолчанию После настройки your.asl для компиляции запустите: &prompt.root; iasl your.asl Вы можете добавить флаг для создания AML даже при наличии ошибок компиляции. Помните, что некоторые ошибки (например, отсутствующие операторы Return), автоматически обходятся интерпретатором. Файл DSDT.aml используется iasl по умолчанию. Вы можете загрузить его вместо ошибочной копии BIOS (которая остается в постоянной памяти) путем редактирования /boot/loader.conf: acpi_dsdt_load="YES" acpi_dsdt_name="/boot/DSDT.aml" Убедитесь, что скопировали DSDT.aml в каталог /boot. Получение отладочной информации <acronym>ACPI</acronym> Возможности отладки драйвера ACPI очень гибкие. Они позволяют вам указывать набор подсистем, а также уровень отладки. Подсистемы, которые вы хотите отлаживать, указываются как слои, и подразделяются на компоненты ACPI-CA (ACPI_ALL_COMPONENTS) и поддержку оборудования ACPI (ACPI_ALL_DRIVERS). Уровень отладки варьируется от ACPI_LV_ERROR (только сообщать об ошибках) до ACPI_LV_VERBOSE (все сообщения). Уровень отладки представляет собой битовую маску, поэтому возможна одновременная установка нескольких параметров, разделенных пробелами. На практике, при использовании для получения отладочной информации последовательной консоли, слишком большое количество информации может переполнить буфер консоли. Полный список отдельных слоев и уровней можно найти на странице справочника &man.acpi.4;. Вывод отладочной информации по умолчанию не включен. - Для его включения добавьте параметр к файлу настройки ядра, если + Для его включения добавьте параметр + options ACPI_DEBUG к файлу настройки ядра, если ACPI встроен в ядро. Вы можете добавить параметр - в файл + ACPI_DEBUG=1 в файл /etc/make.conf для глобального включения этого параметра. Если вы используете модуль acpi.ko , его можно пересобрать индивидуально: &prompt.root; cd /sys/modules/acpi/acpi && make clean && make ACPI_DEBUG=1 Установите acpi.ko в /boot/kernel и добавьте предпочитаемый уровень и слой к loader.conf. Этот пример включает отладочные сообщения для всех компонентов ACPI-CA и всех драйверов оборудования ACPI (CPU, LID и т.д.). Будут выводиться только сообщения об ошибках, наименьший уровень отладки. debug.acpi.layer="ACPI_ALL_COMPONENTS ACPI_ALL_DRIVERS" debug.acpi.level="ACPI_LV_ERROR" Если требуемая информация получается в результате определенного события (скажем, приостановка и восстановление), вы можете не изменять loader.conf и использовать для указания слоя и уровня sysctl после загрузки и подготовки системы к определенному событию. Имена переменных sysctl те же, что и имена параметров настройки в loader.conf. Ссылки Дальнейшую информацию о ACPI можно найти по следующим ссылкам: &a.acpi; Архивы списка рассылки ACPI Старые архивы списка рассылки ACPI Спецификация ACPI 2.0 Страницы справочника &os;: &man.acpi.4;, &man.acpi.thermal.4;, &man.acpidump.8;, &man.iasl.8;, &man.acpidb.8; Ресурс по отладке DSDT. (Использует в качестве примера Compaq, но обычно полезен.) diff --git a/ru_RU.KOI8-R/books/handbook/desktop/chapter.sgml b/ru_RU.KOI8-R/books/handbook/desktop/chapter.sgml index c9472dc8ec..6a80d94ed4 100644 --- a/ru_RU.KOI8-R/books/handbook/desktop/chapter.sgml +++ b/ru_RU.KOI8-R/books/handbook/desktop/chapter.sgml @@ -1,1231 +1,1280 @@ Christophe Juniet Предоставил Денис Пеплин Перевод на русский язык: Приложения для настольного компьютера Краткий обзор FreeBSD может работать с широким кругом приложений для настольного компьютера (десктопа), таких как браузеры и текстовые процессоры. Большинство из них доступны в качестве пакетов или могут быть автоматически собраны из коллекции портов. Многим новым пользователям хотелось бы видеть эти приложения на своем компьютере. В этой главе показано как без усилий установить некоторые популярные приложения для настольного компьютера из пакетов или из коллекции портов. Обратите внимание, что при установке программ из портов они компилируются из исходных текстов. Это может занять очень много времени, в зависимости от того, что вы собираете, и от скорости процессора вашего компьютера (компьютеров). Большинство программ, имеющихся в коллекции портов, могут быть установлены из прекомпилированных пакетов, если сборка из исходных текстов занимает недопустимо много времени. Поскольку FreeBSD обеспечивает двоичную совместимость с Linux, многие приложения, первоначально разработанные для Linux, доступны и на вашем компьютере. Настоятельно рекомендуется прочитать перед установкой любого из приложений Linux. Названия многих портов, использующих двоичную совместимость с Linux, начинаются с linux-. Помните это при поиске отдельного порта, например с помощью &man.whereis.1;. Далее в статье подразумевается, что вы включили бинарную совместимость с Linux перед установкой какого-либо приложения Linux. Вот несколько категорий, о которых пойдет речь в этой главе: Браузеры (такие как Mozilla, &netscape;, Opera, Firefox, Konqueror) Бизнес приложения (такие как KOffice, AbiWord, GIMP, OpenOffice.org) Программы просмотра документов (такие как &acrobat.reader;, gv, Xpdf, GQview) Финансовые программы (такие как GnuCash, Gnumeric, Abacus) Перед прочтением этой главы вам потребуется: Узнать как устанавливать дополнительные программы сторонних производителей (). Узнать как устанавливать программы Linux (). Чтобы получить дополнительную информацию о настройке мультимедиа среды, прочтите . Если вам нужна электронная почта, обратитесь к . Браузеры FreeBSD поставляется без предустановленного браузера. Взамен каталог www коллекции портов содержит множество готовых к установке браузеров. Если у вас нет времени компилировать все (в некоторых случаях это может занять очень много времени), многие из них доступны в виде пакетов. В KDE и GNOME уже есть HTML браузеры. Обратитесь к для подробной информации об установке этих полноценных десктопов. Если вы ищете облегченный браузер, попробуйте www/dillo, www/links, или www/w3m из коллекции портов. Этот раздел рассказывает о следующих приложениях: Название приложения Потребность в ресурсах Установка из портов Основные зависимости Mozilla большая тяжелая Gtk+ &netscape; большая легкая Linux Binary Compatibility Opera малая легкая Доступны версии для FreeBSD и Linux. Для Linux версии необходимо наличие Linux Binary Compatibility и linux-openmotif Firefox средняя тяжелая Gtk+ Konqueror средняя тяжелая Библиотеки KDE Mozilla Mozilla Mozilla это возможно наиболее подходящий браузер для десктопа FreeBSD. Он современный, стабильный и полностью портирован на FreeBSD. Его достоинство в высокой совместимости со стандартами HTML. В нем есть почтовая и новостная программы. В нем даже найдется редактор HTML, если вам потребуется самостоятельно написать несколько веб-страничек. Пользователи &netscape; найдут общие черты с Communicator, поскольку оба браузера имеют одну основу. На медленных компьютерах с частотой CPU меньше 233MHz или с памятью меньше 64MB, Mozilla требует слишком много ресурсов, чтобы быть удобной в использовании. Вместо нее вы можете обратить внимание на браузер Opera, описанный ниже в этой главе. Если вы не можете или не хотите компилировать Mozilla по какой-то причине, команда FreeBSD GNOME уже сделала это для вас. Просто установите пакет из сети с помощью: &prompt.root; pkg_add -r mozilla Если пакет недоступен, но у вас достаточно времени и места на диске, вы можете скачать исходные тексты для Mozilla, скомпилировать их и установить в вашу систему. Это делается так: &prompt.root; cd /usr/ports/www/mozilla &prompt.root; make install clean Порт Mozilla проверяет правильность установки путем запуска регистрации chrome с привилегиями пользователя root. Если вы хотите загрузить некоторые дополнения, например курсоры мыши, потребуется запустить Mozilla под root для их правильной установки. После завершения установки Mozilla, больше не требуется работать под root. Вы можете запустить Mozilla в качестве браузера, набрав: &prompt.user; mozilla Вы можете также запустить непосредственно программу чтения почты и новостей, как показано ниже: &prompt.user; mozilla -mail Tom Rhodes Предоставил Mozilla, &java;, и ¯omedia; &flash; Установка Mozilla проста, но к сожалению, установка Mozilla с поддержкой дополнений, таких как &java; и ¯omedia; &flash; отнимает и время и место на диске. Первое, что нужно сделать — загрузку файлов, которые будут использоваться с Mozilla. Зайдите с помощью имеющегося веб браузера на и создайте учетную запись на этом вебсайте. Сохраните имя пользователя и пароль, они могут понадобиться в будущем. Загрузите копию файла j2sdk-1_3_1-src.tar.gz и поместите в каталог /usr/ports/distfiles/, поскольку порт не загрузит его автоматически. Причина в лицензионном ограничении. Загрузите с этого же сайта java environment, . Имя файла j2sdk-1_3_1_08-linux-i586.bin, он большой (около 25 мегабайт!). Как и раньше, этот файл требуется поместить в /usr/ports/distfiles/. Наконец, загрузите копию java patchkit с и поместите ее в /usr/ports/distfiles/. Установите порт java/jdk13 стандартной командой make install clean, затем установите порт www/flashpluginwrapper. Этот порт требует emulators/linux_base (большой порт). Есть и другие плагины &flash; но у меня они не работают. Установите порт www/mozilla, если Mozilla еще не установлена. Теперь скопируйте файлы &flash; плагина: &prompt.root; cp /usr/local/lib/flash/libflashplayer.so \ /usr/X11R6/lib/browser_plugins/libflashplayer_linux.so &prompt.root; cp /usr/local/lib/flash/ShockwaveFlash.class \ /usr/X11R6/lib/browser_plugins/ Теперь добавьте следующие линии к верхней части (но под #!/bin/sh) стартового скрипта Mozilla: /usr/X11R6/bin/mozilla. LD_PRELOAD=/usr/local/lib/libflashplayer.so.1 export LD_PRELOAD Они включат &flash; плагин. Теперь просто запустите Mozilla: &prompt.user; mozilla & И войдите в пункт About Plug-ins меню Help. Должен появиться список со всеми доступными плагинами. В нем должны присутствовать &java; и &shockwave; &flash;. &netscape; Netscape Коллекция портов содержит несколько версий браузера &netscape;. Поскольку в версии для FreeBSD он содержит серьезную ошибку безопасности, установка этой версии настоятельно не рекомендуется. Вместо этого, используйте более свежую версию для Linux или DIGITAL UNIX. Последний стабильный релиз браузера &netscape; это &netscape; 7. Он может быть установлен из коллекции портов: &prompt.root; cd /usr/ports/www/linux-netscape7 &prompt.root; make install clean Есть локализованные версии в французском, немецком и японском разделах. Версии &netscape; 4.x не рекомендуются, поскольку они не совместимы с современными стандартами. Однако, &netscape; 7.x и более новые версии доступны только для платформы &i386;. Opera Opera Opera это очень быстрый, полноценный и совместимый со стандартами браузер. Он поставляется в двух вариантах: родная для FreeBSD версия и версия, запускаемая в режиме эмуляции Linux. Для каждой операционной системы есть бесплатная версия браузера, показывающая баннеры, и версия без баннеров, которую можно купить на веб сайте Opera. Для работы в сети с помощью FreeBSD версии Opera установите пакет: &prompt.root; pkg_add -r opera На некоторых серверах FTP нет всех пакетов, но те же результаты можно получить с помощью коллекции портов, набрав: &prompt.root; cd /usr/ports/www/opera &prompt.root; make install clean Для установки Linux версии Opera, замените opera на linux-opera в примере выше. Версия для Linux полезна в ситуации, когда требуются плагины, доступные только для Linux, такие как Adobe &acrobat.reader;. Во всех других отношениях версии для FreeBSD и Linux являются функционально идентичными. Firefox Firefox Firefox это браузер следующего поколения, основанный на коде Mozilla. Mozilla это полный набор приложений, таких как браузер, почтовый клиент, чат клиент и многое другое. Firefox это всего лишь браузер, что делает его меньше и быстрее. Установите пакет, выполнив: &prompt.root; pkg_add -r firefox Вы можете также использовать коллекцию портов, если предпочитаете сборку из исходных текстов: &prompt.root; cd /usr/ports/www/firefox &prompt.root; make install clean Konqueror Konqueror Konqueror это часть KDE, но может быть использован и отдельно от KDE, путем установки x11/kdebase3. Konqueror это гораздо больше чем просто браузер, это также менеджер файлов и программа просмотра мультимедиа. Konqueror поставляется с набором плагинов, доступных из misc/konq-plugins. Konqueror поддерживает также &flash;, документация How To для него доступна по адресу . Бизнес приложения В начале работы новые пользователи зачастую стремятся найти хороший офисный пакет или удобный текстовый процессор. Хотя некоторые десктопы, такие как KDE, поставляются с готовым офисным пакетом, приложения по умолчанию не существует. В FreeBSD есть все необходимое, кроме графической среды. Этот раздел описывает следующие приложения: Название приложения Потребность в ресурсах Установка из портов Основные зависимости KOffice малая тяжелая KDE AbiWord малая легкая Gtk+ или GNOME The Gimp малая тяжелая Gtk+ OpenOffice.org большая очень тяжелая GCC 3.1, &jdk; 1.3, Mozilla KOffice KOffice офисный пакет KOffice Сообщество KDE предоставляет графическую среду с офисным пакетом, который может быть использован вне KDE. Он включает четыре стандартных компонента, встречающиеся и в других офисных пакетах. Текстовый процессор KWord, программа электронных таблиц KSpread, KPresenter для создания презентаций и программа векторной графики Kontour. Перед установкой последней версии KOffice, убедитесь в наличии свежей версии KDE. Для установки KOffice из пакета, выполните следующую команду: &prompt.root; pkg_add -r koffice Если пакет недоступен, используйте коллекцию портов. Например, для установки KOffice для KDE3, выполните: &prompt.root; cd /usr/ports/editors/koffice-kde3 &prompt.root; make install clean AbiWord AbiWord AbiWord это свободно распространяемый текстовый процессор, по внешнему виду и поведению очень похожий на µsoft; Word. Он подходит для набора документов, писем, отчетов, напоминаний и так далее. Он очень быстр, содержит много новшеств и очень удобен в использовании. AbiWord может импортировать и экспортировать множество файловых форматов, включая патентованный Microsoft .doc. AbiWord доступен в виде пакета. Вы можете установить его так: &prompt.root; pkg_add -r AbiWord2 Если пакет недоступен, он может быть собран из коллекции портов, которая должна быть свежей. Это можно сделать командой: &prompt.root; cd /usr/ports/editors/AbiWord2 &prompt.root; make install clean GIMP GIMP Для создания и редактирования изображений есть продвинутая программа GIMP. Она может быть использована как простая программа рисования и как программа обработки фотографий. Поддерживается большое количество плагинов и предоставлен интерфейс для скриптов. GIMP может читать и записывать файлы многих форматов. Есть интерфейс со сканерами и планшетами. Вы можете установить пакет, выполнив эту команду: &prompt.root; pkg_add -r gimp Если на вашем сервере FTP нет этого пакета, вы можете использовать коллекцию портов. Каталог graphics коллекции портов содержит также раздел Руководство Gimp. Здесь показано, как его установить: - &prompt.root; cd /usr/ports/graphics/gimp1 + &prompt.root; cd /usr/ports/graphics/gimp &prompt.root; make install clean &prompt.root; cd /usr/ports/graphics/gimp-manual-pdf &prompt.root; make install clean Каталог graphics коллекции портов содержит версию GIMP для разработчиков в graphics/gimp-devel. - HTML и &postscript; версии + HTML версия Руководства Gimp находятся в - graphics/gimp-manual-html и - graphics/gimp-manual-ps. + graphics/gimp-manual-html. OpenOffice.org OpenOffice.org офисный пакет OpenOffice.org OpenOffice.org включает все обязательные компоненты полноценного офисного пакета: текстовый процессор, программу электронных таблиц, программу управления презентациями и программу векторной графики. Интерфейс пользователя очень похож на другие офисные пакеты, возможен импорт и экспорт различных популярных файловых форматов. Приложение доступно в вариантах для множества разных языков, включая интерфейсы, проверку орфографии и словари. Текстовый процессор OpenOffice.org использует чистый XML формат файлов для увеличения переносимости и гибкости. Программа для работы с текстовыми таблицами предоставляет макроязык и может работать с внешними базами данных. OpenOffice.org уже стабильна и существует в версиях для &windows;, &solaris;, Linux, FreeBSD, и &macos; X. Дополнительную информацию об OpenOffice.org можно найти на веб сайте OpenOffice. Получить специфичную для FreeBSD и загрузить пакеты можно с веб сайта команды портирования OpenOffice на FreeBSD (FreeBSD OpenOffice Porting Team). Для установки OpenOffice.org, выполните: &prompt.root; pkg_add -r openoffice После установки пакета запустите программу настройки и выберите . Запустите эту команду из под пользователя, который будет использовать OpenOffice.org: &prompt.user; openoffice-setup Если пакеты OpenOffice.org недоступны, можно выбрать компиляцию порта. Однако, вы должны помнить, что это потребует много места на диске и компиляция будет довольно долгой. - &prompt.root; cd /usr/ports/editors/openoffice + &prompt.root; cd /usr/ports/editors/openoffice-1.1 &prompt.root; make install clean Потом запустите настройку под пользователем, который будет использовать OpenOffice.org и выберите : &prompt.user; cd /usr/ports/editors/openoffice &prompt.user; make install-user Если вы хотите использовать локализованную версию, вот доступные порты: Язык Порт - + Арабский - editors/openoffice-ar - + arabic/openoffice-1.1 + - - Датский - editors/openoffice-dk - + + Венгерский + hungarian/openoffice-1.1 + - - Испанский - editors/openoffice-es - + + Голландский + editors/openoffice-1.1-nl + - + Греческий - editors/openoffice-gr - + editors/openoffice-1.1-el + - - Итальянский - editors/openoffice-it - + + Датский + editors/openoffice-1.1-dk + - - Голландский - editors/openoffice-nl - + + Испанский + editors/openoffice-1.1-es + - - Шведский - editors/openoffice-se - + + Итальянский + editors/openoffice-1.1-it + - - Турецкий - editors/openoffice-tr - + + Каталанский + editors/openoffice-1.1-ca + - - Французский - french/openoffice - + + Китайский + (традиционный) chinese/openoffice-1.1-zh_TW + - - Немецкий - german/openoffice - - - - Японский - japanese/openoffice - + + Китайский + (упрощенный) chinese/openoffice-1.1-zh_CN + - + Корейский - korean/openoffice - + korean/openoffice-1.1 + - + + Немецкий + german/openoffice-1.1 + + + Польский - polish/openoffice - + polish/openoffice-1.1 + - + + Португальский + (Бразилия) portuguese/openoffice-1.1-pt_BR + + + Португальский - portuguese/openoffice - + portuguese/openoffice-1.1-pt_PT + - + Русский - russian/openoffice + russian/openoffice-1.1 + + + Словацкий + editors/openoffice-1.1-sk + + + + Словенский + editors/openoffice-1.1-sl_SI + + + + Турецкий + editors/openoffice-1.1-tr + + + + Финский + editors/openoffice-1.1-fi + + + + Французский + french/openoffice-1.1 + + + + Чешский + editors/openoffice-1.1-cs + + + + Шведский + editors/openoffice-1.1-se + + + + Эстонский + editors/openoffice-1.1-et + + + + Японский + japanese/openoffice-1.1 + Программы просмотра документов Некоторые новые форматы документов приобрели большую популярность. Стандартные программы для их просмотра могут отсутствовать в базовой системе. В этом разделе мы увидим, как их установить. В разделе говорится о следующих приложениях: Название приложения Потребность в ресурсах Установка из портов Основные зависимости &acrobat.reader; малая легкая Linux Binary Compatibility gv малая легкая Xaw3d Xpdf малая легкая FreeType GQview малая легкая Gtk+ или GNOME &acrobat.reader; Acrobat Reader PDF просмотр Сейчас многие документы распространяются в формате PDF, аббревиатура для Portable Document Format. Одна из рекомендованных программ для просмотра этого типа документов, это &acrobat.reader;, выпущенный Adobe для Linux. Поскольку FreeBSD может запускать исполняемые файлы Linux, он доступен также и для FreeBSD. Для установки пакета &acrobat.reader; 5 выполните: &prompt.root; pkg_add -r acroread5 Обычно если пакет недоступен, или вам нужна более поздняя версия, вы можете использовать коллекцию портов так: &prompt.root; cd /usr/ports/print/acroread5 &prompt.root; make install clean &acrobat.reader; доступен в нескольких различных версиях. В то время, как пишется этот документ, есть: print/acroread (версия 3.0.2), print/acroread4 (версия 4.0.5), and print/acroread5 (версия 5.0.6). Не для всех могут быть пакеты в вашей версии FreeBSD. Коллекция портов всегда содержит последнюю версию. gv gv PDF просмотр PostScript просмотр gv это программа просмотра &postscript; и PDF. Она разработана на основе ghostview, но выглядит лучше благодаря библиотеке Xaw3d. Она быстра, а ее интерфейс несложен. У gv есть множество функций, таких как выбор ориентации, размера бумаги, масштаба и сглаживание. Почти любая операция может быть выполнена как с клавиатуры, так и мышью. Для установки gv из пакета, выполните: &prompt.root; pkg_add -r gv Если вы не можете получить пакет, используйте коллекцию портов: &prompt.root; cd /usr/ports/print/gv &prompt.root; make install clean Xpdf Xpdf PDF просмотр Если вам нужна небольшая программа просмотра PDF под FreeBSD, Xpdf это легкая и эффективная программа. Она требует очень небольшого количества ресурсов и очень стабильна. Используются стандартные шрифты X, &motif; или другие пакеты для X не нужны. Для установки пакета Xpdf, выполните эту команду: &prompt.root; pkg_add -r xpdf Если пакет недоступен, или вы предпочитаете коллекцию портов, выполните: &prompt.root; cd /usr/ports/graphics/xpdf &prompt.root; make install clean После завершения установки вы можете запустить Xpdf и использовать правую кнопку мыши для активации меню. GQview GQview GQview это программа для работы с изображениями. Вы можете просмотреть файл одним кликом, запустить внешний редактор, получить миниатюры и многое другое. Еще в нем есть слайдшоу и несколько основных файловых операций. Вы можете управлять коллекциями изображений и легко находить дубликаты. В GQview изображения можно просматривать во весь экран, его можно адаптировать к разным языкам. Если вы хотите установить пакет GQview, выполните: &prompt.root; pkg_add -r gqview Если пакет недоступен, или вы предпочитаете использовать коллекцию портов, выполните: &prompt.root; cd /usr/ports/graphics/gqview &prompt.root; make install clean Финансовые программы Если по каким-то причинам вам нужно управлять своими финансами на десктопе FreeBSD, есть несколько мощных и простых в использовании приложений. Некоторые из них совместимы с широко распространенными форматами файлов, такими как документы Quicken или Excel. В этом разделе говорится о следующих приложениях: Название приложения Потребность в ресурсах Установка из портов Основные зависимости GnuCash малая тяжелая GNOME Gnumeric малая тяжелая GNOME Abacus малая легкая Tcl/Tk GnuCash GnuCash GnuCash это часть проекта GNOME, который стремится предоставить дружественные к пользователю приложения с широким набором функций. С GnuCash вы можете отслеживать доходы и расходы, банковские счета или акции. Интуитивный интерфейс программы не мешает ей оставаться очень профессиональной. GnuCash предоставляет интеллектуальный журнал записей, иерархическую систему учетных записей, множество клавиатурных сокращений и метод автозавершения. Он может разбивать одну транзакцию на несколько частей, детализируя ее. GnuCash может импортировать и присоединять файлы Quicken QIF. Он также работает с основными международными форматами дат и валютами. Для установки GnuCash в вашу систему, выполните: &prompt.root; pkg_add -r gnucash Если пакет недоступен, вы можете использовать коллекцию портов: &prompt.root; cd /usr/ports/finance/gnucash &prompt.root; make install clean Gnumeric Gnumeric электронная таблица Gnumeric Gnumeric это электронная таблица, часть графической среды GNOME. Она использует удобное автоматическое угадывание ввода пользователя в зависимости от формата ячейки и систему автозаполнения для множества последовательностей. Она может импортировать файлы нескольких популярных форматов, таких как Excel, Lotus 1-2-3, или Quattro Pro. Gnumeric работает с диаграммами через math/guppi. В ней множество встроенных функций, можно использовать обычные форматы ячеек: число, валюта, дата, время и многие другие. Для установки Gnumeric из пакета, введите: &prompt.root; pkg_add -r gnumeric Если пакет недоступен, вы можете использовать коллекцию портов: &prompt.root; cd /usr/ports/math/gnumeric &prompt.root; make install clean Abacus Abacus электронная таблица Abacus Abacus это небольшая и простая в использовании программа электронных таблиц. В ней много встроенных функций из нескольких областей, таких как статистика, финансы и математика. Она может импортировать и экспортировать файлы Excel. Abacus также может печатать &postscript;. Для установки Abacus из пакета, выполните: &prompt.root; pkg_add -r abacus Если пакет недоступен, вы можете использовать коллекцию портов, выполнив: &prompt.root; cd /usr/ports/deskutils/abacus &prompt.root; make install clean Итоги Хотя FreeBSD популярна в основном среди провайдеров из-за стабильности и высокой производительности, на сегодняшний день она вполне готова к использованию в качестве десктопа. С несколькими тысячами приложений, доступных в виде пакетов или портов, вы можете создать прекрасный десктоп, отвечающий всем вашим потребностям. После первой установки десктопа, вы можете попробовать сделать шаг вперед с misc/instant-workstation. Этот мета-порт позволяет вам собрать типичный набор портов для рабочей станции. Вы можете настроить его, редактируя /usr/ports/misc/instant-workstation/Makefile. Следуйте синтаксису существующего файла при добавлении и удалении портов, соберите порт как обычно. В конечном итоге, вы можете создать большой пакет, соответствующий вашему собственному десктопу, и установить его на другие рабочие станции! Вот небольшой обзор всех графических приложений, о которых говорилось в этой главе: Имя приложения Имя пакета Имя порта Mozilla mozilla www/mozilla &netscape; linux-netscape7 www/linux-netscape7 Opera linux-opera www/linux-opera Firefox firefox www/firefox KOffice koffice-kde3 editors/koffice-kde3 AbiWord AbiWord-gnome editors/AbiWord The GIMP gimp graphics/gimp1 OpenOffice.org openoffice editors/openoffice &acrobat.reader; acroread5 print/acroread5 gv gv print/gv Xpdf xpdf graphics/xpdf GQview gqview graphics/gqview GnuCash gnucash finance/gnucash Gnumeric gnumeric math/gnumeric Abacus abacus deskutils/abacus diff --git a/ru_RU.KOI8-R/books/handbook/disks/chapter.sgml b/ru_RU.KOI8-R/books/handbook/disks/chapter.sgml index 509331e3b4..6c84610071 100644 --- a/ru_RU.KOI8-R/books/handbook/disks/chapter.sgml +++ b/ru_RU.KOI8-R/books/handbook/disks/chapter.sgml @@ -1,4076 +1,4082 @@ Андрей Захватов Перевод на русский язык: Устройства хранения Краткий обзор В этой главе описывается использование дисков во 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, matcd для Matsushita/Panasonic CD-ROM 5 октября 2002 года драйвер &man.matcd.4; был удалён из ветки FreeBSD 4.X и отсутствует во FreeBSD 5.0 и 5.1. Однако этот драйвер вновь появился в ветке FreeBSD 5.X, и присутствует там с 16 июня 2003 года. Дискеты 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, то устройство будет называться wd1 в системах, - предшествовавших 4.0, и ad1 в большинстве систем - 4.X). + предшествовавших 4.0, и ad1 в системах + 4.X и 5.X). разделы слайсы fdisk Так как FreeBSD работает на IBM-PC совместимых компьютерах, она должна принимать во внимание разделы PC BIOS. В этом заключается отличие от традиционных разделов BSD. Диск PC может иметь до четырех записей разделов BIOS. Если диск на самом деле будет использоваться исключительно под FreeBSD, вы можете использовать режим dedicated. В противном случае FreeBSD будет располагаться в одном из разделов PC BIOS. Во FreeBSD разделы PC BIOS называются слайсами, чтобы не путать их с традиционными разделами BSD. Вы также можете использовать слайсы и с диском, предназначенным исключительно для FreeBSD, однако используемым в компьютере, на котором имеется дополнительная операционная система. Это нужно для того, чтобы не было путаницы с утилитой fdisk другой операционной системы. В случае слайсов диск будет добавлен как /dev/da1s1e. Это интерпретируется следующим образом: диск SCSI, устройство номер 1 (второй диск SCSI), слайс 1 (раздел PC BIOS 1), и раздел BSD e. В случае использования в выделенном режиме диск будет добавлен просто как /dev/da1e. Вследствие использования 32-битных целых для хранения числа секторов, &man.bsdlabel.8; (называемый &man.disklabel.8; в &os; 4.X) ограничен 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> Вы можете использовать простые меню утилиты /stand/sysinstall для разбиения на разделы и разметки нового диска. Войдите как пользователь root или воспользуйтесь командой su. Запустите команду /stand/sysinstall и войдите в меню Configure. Внутри FreeBSD Configuration Menu, пролистайте и выберите пункт Fdisk. Редактор разделов <application>fdisk</application> Работая с утилитой fdisk, мы можем выбрать A для того, чтобы использовать под FreeBSD полностью весь диск. Когда будет задан вопрос о том, хотите ли вы сохранить совместимость с другими возможными операционными системами в будущем, ответьте YES. Запишите изменения на диск при помощи команды W. А теперь выйдите из редактора FDISK, нажав q. В этот момент вам будет задан вопрос о главной загрузочной записи. Так как вы добавляете диск к уже работающей системе, выберите 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; disklabel -B -w -r da1s1 auto # Размечаем его. &prompt.root; disklabel -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. На системах версий ранее 4.X используйте wd. Эксклюзивный режим OS/2 Если вы не будете использовать новый диск совместно с другой операционной системой, то вы можете использовать режим эксклюзивного использования. Отметьте, что этот режим может ввести в заблуждение операционные системы от Microsoft; однако информацию они не разрушат. А вот &os2; компании IBM будет забирать себе любой раздел, который она найдет и не сможет распознать. &prompt.root; dd if=/dev/zero of=/dev/da1 bs=1k count=1 &prompt.root; disklabel -Brw da1 auto &prompt.root; disklabel -e da1 # create the `e' partition &prompt.root; newfs -d0 /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; disklabel /dev/da1 | disklabel -BrR 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 Начиная с &os; 5.1-RELEASE, на смену старой программе &man.disklabel.8; пришла утилита &man.bsdlabel.8;. У &man.bsdlabel.8; отсутствуют некоторые устаревшие опции и параметры; в примере выше параметр не может использоваться с &man.bsdlabel.8;. Для получения дополнительной информации обратитесь к справочной странице п о &man.bsdlabel.8;. 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;. Добавьте такую строку в файл конфигурации ядра, перестройте и установите новое ядро: pseudo-device ccd 4 В системах 5.X вместо этого вам нужно использовать такую строку: device ccd Во FreeBSD 5.X нет нужды указывать количество устройств &man.ccd.4; так как драйвер устройства &man.ccd.4; теперь клонируется сам — новые экземпляры устройств будут создаваться автоматически по необходимости. Во FreeBSD 3.0 и последующих версиях поддержка &man.ccd.4; также может быть обеспечена загрузкой подгружаемого модуля ядра. Для настройки &man.ccd.4; сначала вам нужно воспользоваться утилитой &man.disklabel.8; для разметки дисков: disklabel -r -w ad1 auto disklabel -r -w ad2 auto disklabel -r -w ad3 auto При этом создаются метки для ad1c, ad2c и ad3c, которые занимают диск полностью. Начиная с &os; 5.1-RELEASE, на смену старой программе &man.disklabel.8; пришла утилита &man.bsdlabel.8;. У &man.bsdlabel.8; отсутствуют некоторые устаревшие опции и параметры; в примере выше параметр не может использоваться с &man.bsdlabel.8;. Для получения дополнительной информации обратитесь к справочной странице п о &man.bsdlabel.8;. Следующим шагом является изменение типа метки диска. Для редактирования дисков можно использовать утилиту &man.disklabel.8;: disklabel -e ad1 disklabel -e ad2 disklabel -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) Построение файловой системы Файл устройства для ccd0c может ещё не существовать, так что для его создания предварительно выполните такие команды: cd /dev sh MAKEDEV ccd0 Во FreeBSD 5.0 &man.devfs.5; будет управлять файлами устройств в каталоге /dev автоматически, так что в использовании MAKEDEV необходимости нет. Теперь, когда все диски размечены, вы должны построить &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 Сначала вам нужно отключить диск от массива, чтобы его можно было без последствий извлечь: &prompt.root; atacontrol detach 3 Замените диск. Повторно подключите диск в качестве резервного: &prompt.root; atacontrol attach 3 Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 Slave: no device present Перестройте массив: &prompt.root; atacontrol rebuild ar0 Команда перестроения будет работать, пока не закончит. Однако имеется возможность открыть другой терминал (комбинацией клавиш Alt Fn) и проверить состояние дел при помощи следующей команды: &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 usb device umass Для доступа к устройствам хранения USB драйвер &man.umass.4; использует подсистему SCSI, ваши устройства USB будут видны системе как SCSI устройства. В зависимости от чипсета USB на материнской плате, вам потребуется только один из параметров device uhci или device ohci. Однако, наличие обоих этих параметров не помешает. Не забудьте скомпилировать и установить новое ядро после добавления каких-либо строк. Если ваше USB устройство это пишущий привод CD-R или DVD, необходимо добавить в ядро SCSI CD-ROM драйвер, &man.cd.4;, следующей строкой: device cd Поскольку устройство записи видно как SCSI диск, драйвер &man.atapicam.4; не должен использоваться в файле настройки. Поддержка USB 2.0 контроллеров предоставляется в &os; 5.X, и в ветви 4.X с &os; 4.10-RELEASE. Добавьте: device ehci в файл настройки ядра для поддержки USB 2.0. Обратите внимание, что драйверы &man.uhci.4; и &man.ohci.4; все еще нужны, если необходима поддержка USB 1.X. В &os; 4.X, необходимо запустить USB даемона (&man.usbd.8;), чтобы увидеть некоторые USB устройства. Для этого добавьте usbd_enable="YES" в файл /etc/rc.conf и перезагрузите компьютер. Тестирование конфигурации Конфигурация готова к тестированию, подключите устройство 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 если потребуется. Если вы отключите устройство (диск должен быть сначала размонтирован), вы должны увидеть в буфере системных сообщений что-то подобное: 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.usbdevs.8;. 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. burncd поддерживает не все устройства. Для определения того, поддерживается ли устройство, посмотрите список поддерживаемых приводов CD-R/RW. устройство записи CD драйвер ATAPI/CAM Если вы используете &os; 5.X, &os; 4.8-RELEASE или более новые версии, то при работе с ATAPI-оборудованием через модуль ATAPI/CAM можно использовать утилиту cdrecord и другие инструменты для SCSI-приводов. Если для записи 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. Так что, положив, что + образу из корня дерева, записываемого на 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 -U -R -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot + &prompt.root; mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot Сделав это, и имея в ядре отконфигурированное устройство vn (для FreeBSD 4.X) или md (при использовании FreeBSD 5.X), вы можете смонтировать файловую систему, выполнив: &prompt.root; vnconfig -e vn0c /tmp/bootable.iso &prompt.root; mount -t cd9660 /dev/vn0c /mnt в случае использования FreeBSD 4.X, а для FreeBSD 5.X: &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 (или /dev/acd0c в &os; 4.X). Для получения информации о параметрах, задающих скорость записи, выброс диска после записи и запись звуковых данных, обратитесь к &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 1.9 (i386-unknown-freebsd4.2) Copyright (C) 1995-2000 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 -v255 -D2,0 -B -Owav Воспользуйтесь cdrecord для записи файлов .wav. &prompt.user; cdrecord -v dev=2,0 -dao -useinfo *.wav Значение, соответствующее 2,0, должно быть установлено правильно, как это описано в . Устройства ATAPI Драйвер устройств ATAPI CD делает каждую дорожку доступной как /dev/acddtnn, где d является номером привода, а nn соответствует номеру дорожки, который записывается двумя десятичными цифрами с нулём в начале, если это нужно. Таким образом, первая дорожка на первом диске будет носить имя /dev/acd0t01, вторая будет именоваться /dev/acd0t02, третья будет носить имя /dev/acd0t03 и так далее. Удостоверьтесь, что соответствующий файл имеется в каталоге /dev. &prompt.root; cd /dev &prompt.root; sh MAKEDEV acd0t99 Во FreeBSD 5.0 &man.devfs.5; будет автоматически создавать объекты в каталоге /dev и управлять ими, так что использовать MAKEDEV не обязательно. Извлеките каждую дорожку при помощи команды &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. В &os; 4.X к имени устройства должен быть добавлен символ c для указания на то, что берётся весь раздел, а в случае 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, поэтому не английские символы выводятся в виде знаков вопроса. (Если в работаете с FreeBSD 4.3 или более поздней версией, то в драйвере CD9660 имеется механизм для динамической загрузки соответствующей таблицы преобразования Unicode. Модули для некоторых распространённых кодировок могут быть получены из порта sysutils/cd9660_unicode.) Время от времени вы можете получать сообщения 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;. Для использования этого драйвера вам необходимо добавить в файл конфигурации ядра следующие строки: device atapicam device scbus device cd device pass Кроме того, в файле конфигурации ядра должна быть следующая строка: device ata которая уже должна там присутствовать. После этого перестройте и установите ваше новое ядро, выполните перезагрузку машины. В процессе загрузки ваш пишущий привод должен появиться примерно следующим образом: 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+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;. 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;, на веб сайте dvd+rw-tools и в архивах списка рассылки cdwrite. Вывод dvd+rw-mediainfo при записи или проблемный носитель необходимы для любого сообщения о проблеме. Без этого вывода будет совершенно невозможно помочь вам. Julio Merino Первоначальный текст предоставил Martin Karlsson Переписал Дискеты Хранение данных на дискетах иногда бывает полезным, например, когда нет других съёмных носителей или когда необходимо перенести небольшой объём данных на другой компьютер. В этом разделе будет описано, как использовать дискеты во FreeBSD. В основном речь пойдёт о форматировании и использовании дискет DOS размером 3.5 дюйма, однако общие принципы применимы и для других форматов гибких дисков. Форматирование дискет Устройство Доступ к гибким дискам, как, впрочем, и к остальным устройствам, осуществляется через соответствующие файлы в каталога /dev. Чтобы обратиться к дискете при использовании релизов 4.X и ранее, необходимо работать с /dev/fdN, где N обозначает номер привода, обычно 0, или /dev/fdNX, где X обозначает букву. В 5.0 и более новых релизах просто используйте /dev/fdN. Размер диска в 4.X и более ранних релизах Имеются также устройства /dev/fdN.size, где size обозначает размер дискеты в килобайтах. Эти файлы устройств используются во время низкоуровневого форматирования для задания размера устройства. В последующих примерах будет использоваться размер в 1440kB. Иногда записи в каталоге /dev необходимо создавать повторно. Для этого выполните следующее: &prompt.root; cd /dev && ./MAKEDEV "fd*" Размер диска в 5.0 и последующих релизах В 5.0 &man.devfs.5; управляет файлами устройств в каталоге /dev в автоматическом режиме, так что использование MAKEDEV необязательно. Требуемый размер диска передаётся утилите &man.fdformat.1; при помощи параметра . Поддерживаемые размеры перечислены в &man.fdcontrol.8;, но, по нашему мнению, лучше всего работает 1440kB. Форматирование Перед тем, как дискетой можно будет воспользоваться, её необходимо отформатировать на низком уровне. Обычно это выполняется производителем, однако форматирование является хорошим способом проверить целостность носителя. Большинство гибких дисков предназначены для использования с размером 1440kB, однако возможно задать меньший или больший размер. Для низкоуровневого форматирования дискет вам нужно использовать &man.fdformat.1;. В качестве параметра этой утилите передаётся имя устройства. Обратите внимание на появление сообщений об ошибках, так как они могут помочь определить, хорошая это дискета или плохая. Форматирование в 4.X и более ранних релизах Для форматирования дискет используйте устройства /dev/fdN.size. Вставьте новую 3.5-дюймовую дискету в дисковод и введите команду: &prompt.root; /usr/sbin/fdformat /dev/fd0.1440 Форматирование в 5.0 и более новых релизах Для форматирования гибких дисков используйте устройства /dev/fdN. Вставьте новую 3.5-дюймовую дискету в дисковод и введите команду: &prompt.root; /usr/sbin/fdformat -f 1440 /dev/fd0 Метка диска После низкоуровневого форматирования диска вам нужно поместить на него метку диска. Эта метка будет потом разрушена, но она будет нужна системе для определения размера диска и его характеристик. Новая метка диска будет касаться диска в целом, и будет содержать полную информацию о параметрах дискеты. Значения геометрии для метки диска перечислены в файле /etc/disktab. Теперь вы можете запустить &man.disklabel.8; примерно так: &prompt.root; /sbin/disklabel -B -r -w /dev/fd0 fd1440 Начиная с &os; 5.1-RELEASE, на смену старой программе &man.disklabel.8; пришла утилита &man.bsdlabel.8;. У &man.bsdlabel.8; отсутствуют некоторые устаревшие опции и параметры; в примере выше параметр не может использоваться с &man.bsdlabel.8;. Для получения дополнительной информации обратитесь к справочной странице п о &man.bsdlabel.8;. Файловая система Теперь ваша дискета готова к высокоуровневому форматированию. При этом на неё будет помещаться новая файловая система, которая позволит FreeBSD читать и записывать информацию на диск. После создания новой файловой системы метка диска уничтожается, так что если вы захотите переформатировать диск, вам придётся создавать метку диска повторно. Файловой системой для дискеты может служить UFS или FAT. Вообще говоря, FAT для дискет походит лучше. Для размещения на дискете новой файловой системы, выполните: &prompt.root; /sbin/newfs_msdos /dev/fd0 Теперь диск готов к работе. Использование дискет Для работы с гибким диском смонтируйте его при помощи утилит &man.mount.msdos.8; (для 4.X и более ранних релизов) или &man.mount.msdosfs.8; (в 5.0 и последующих релизах). Можно также использовать пакет 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 GB. Стандарт 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 дюймов; 15.2 x 10.2 x 1.7 мм). Скорость обмена данными лежит в границах от ~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; выдаст предупреждение о том, что не может его восстановить, хотя вы этого и не просили делать! Основы технологии резервного копирования Тремя основными программами резервного копирования являются &man.dump.8;, &man.tar.1; и &man.cpio.1;. Dump и Restore программы резервного копирования резервное копирование / восстановление dump restore Для &unix; традиционными программами резервного копирования являются dump и restore. Они работают с приводом как с набором дисковых блоков, которые расположены ниже понятий файлов, связей и каталогов, создаваемых файловыми системами. Программа dump выполняет резервное копирование всей файловой системы, располагающейся на устройстве. Невозможно выполнить резервное копирование части файловой системы или дерева каталогов, которые располагаются более чем в одной файловой системе. Утилита dump не записывает на ленту файлы и каталоги, она записывает блоки данных, из которых строятся файлы и каталоги. Если вы используете программу 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 <command>tar</command> программы резервного копирования tar Утилита &man.tar.1; также восходит корнями к Version 6 системы AT&T UNIX (около 1975). tar работает с файловой системой; tar записывает на ленту файлы и каталоги. tar поддерживает не полный набор опций, имеющихся в &man.cpio.1;, однако он не требует необычного перенаправления в командной строке, которое используется в утилите cpio. tar В большинстве версий tar создание резервных копий по сети не поддерживается. Версия GNU утилиты tar, которая используется во FreeBSD, поддерживает удалённые устройства в том же самом синтаксисе, что и rdump. Чтобы скопировать данные на накопитель Exabyte, подключенный к машине Sun по имени komodo, используйте такую команду: &prompt.root; /usr/bin/tar cf komodo:/dev/nsa8 . 2>&1 В случае использования версий без поддержки удалённых устройств, вы можете воспользоваться перенаправлением вывода и командой rsh для посылки данных на удалённый ленточный накопитель. &prompt.root; tar cf - . | rsh hostname 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. Процедура восстановления при сбое До того, как случится катастрофа Вам нужно выполнить всего лишь четыре шага для того, чтобы быть готовым к любому сбою. disklabel Во-первых, распечатайте разметку диска для всех ваших дисков (к примеру, disklabel da0 | lpr), таблицу файловых систем (/etc/fstab) и все сообщения, выводимые при загрузке, каждого по два экземпляра. аварийные дискеты Во-вторых, определите, все ли устройства присутствуют на загрузочной и аварийной дискетах (boot.flp и fixit.flp). Самым простым способом проверки является перезагрузка вашей машины с загрузочной дискетой, вставленной в дисковод и последующая проверка сообщений при загрузке. Если все имеющиеся у вас устройства здесь будут перечислены и будут работоспособны, перейдите к третьему шагу. В противном случае вам необходимо будет создать две особым образом сформированные загрузочные дискеты, на которых помещено ядро, могущее смонтировать все ваши диски и получить доступ к вашему стримеру. На этих дискетах должны быть: fdisk, disklabel, newfs, mount и какая-либо используемая вами программа резервного копирования. Эти программы должны быть скомпонованы статически. Если вы используете dump, то на дискете должна присутствовать и программа restore. В-третьих, регулярно создавайте резервные копии на ленте. Любые изменения, которые вы делали после последнего резервного копирования, могут быть безвозвратно потеряны. На лентах включайте защиту от записи. В-четвертых, проверяйте работу дискет (либо boot.flp и fixit.flp, либо двух дискет, которые вы сделали при выполнении второго шага) и лент с резервными копиями. Ведите журнал выполняемых действий. Храните эти записи вместе с загрузочной дискетой, распечатками и лентами. Вы просто обезумеете при восстановлении данных, если окажется, что записи могли бы избежать разрушения ваших резервных копий (Каким образом? Вместо команды tar xvf /dev/sa0 вы могли случайно набрать tar cvf /dev/sa0 и тем самым перезаписать вашу резервную копию). Для дополнительной страховки, каждый раз создавайте загрузочные дискеты и две резервные копии на ленте. Храните одну из копий в каком-то удаленном месте и НЕ в том же здании, где находится ваш офис. Достаточно большое количество компаний во Всемирном Торговом Центре изучило это на своей шкуре. Это удаленное хранилище должно быть физически отделено на большое расстояние от ваших компьютеров и дисковых устройств. Скрипт для создания загрузочной дискеты /mnt/sbin/init gzip -c -best /sbin/fsck > /mnt/sbin/fsck gzip -c -best /sbin/mount > /mnt/sbin/mount gzip -c -best /sbin/halt > /mnt/sbin/halt gzip -c -best /sbin/restore > /mnt/sbin/restore gzip -c -best /bin/sh > /mnt/bin/sh gzip -c -best /bin/sync > /mnt/bin/sync cp /root/.profile /mnt/root cp -f /dev/MAKEDEV /mnt/dev chmod 755 /mnt/dev/MAKEDEV chmod 500 /mnt/sbin/init chmod 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/halt chmod 555 /mnt/bin/sh /mnt/bin/sync chmod 6555 /mnt/sbin/restore # # create the devices nodes # cd /mnt/dev ./MAKEDEV std ./MAKEDEV da0 ./MAKEDEV da1 ./MAKEDEV da2 ./MAKEDEV sa0 ./MAKEDEV pty0 cd / # # create minimum filesystem table # cat > /mnt/etc/fstab < /mnt/etc/passwd < /mnt/etc/master.passwd < После сбоя Главный вопрос: выжило ли ваше оборудование? Вы регулярно делали резервные копии, так что нет нужды беспокоиться о программном обеспечении. Если оборудование было повреждено, должны быть заменены неисправные компоненты. Если с оборудованием все в порядке, проверьте ваши дискеты. При использовании самостоятельно созданной загрузочной дискеты, загрузитесь в однопользовательском режиме (набрав -s в приглашении boot:). Пропустите следующий абзац. Если вы используете дискеты boot.flp и fixit.flp, читайте дальше. Вставьте дискету boot.flp в первый дисковод и загрузите компьютер. На экран будет выведено оригинальное меню установки. Выберите пункт Fixit--Repair mode with CDROM or floppy. После вывода приглашения вставьте fixit.flp. restore и другие нужные вам программы находятся в /mnt2/stand. Восстановите по отдельности каждую файловую систему. mount корневой раздел disklabel newfs Попробуйте выполнить команду mount (например, mount /dev/da0a /mnt) по отношению к корневому разделу вашего первого диска. Если метка диска была испорчена, то воспользуйтесь командой disklabel для переразбиения на разделы и разметки диска так, чтобы получившаяся метка совпала с той, которая вами была распечатана и сохранена. Для повторного создания файловых систем используйте утилиту 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; disklabel -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 диски отображаемые в файлы (5.X) Во 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> для монтирования файла с образом существующей файловой системы во FreeBSD 5.X &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; disklabel -r -w md0 auto &prompt.root; newfs md0c /dev/md0c: 5.0MB (10240 sectors) block size 16384, fragment size 2048 using 4 cylinder groups of 1.27MB, 81 blks, 256 inodes. super-block backups (for fsck -b #) at: 32, 2624, 5216, 7808 &prompt.root; mount /dev/md0c /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md0c 4846 2 4458 0% /mnt Если в параметре вы не задали номер устройства, то &man.mdconfig.8; для выбора неиспользуемого устройства будет использовать функцию автоматическое выделения в &man.md.4;. Имя выделенного устройства будет выдано на стандартное устройство выводы в виде, например, md4. Для получения более полной информации о &man.mdconfig.8;, пожалуйста, обратитесь к соответствующей странице справочной системы. Начиная с &os; 5.1-RELEASE, на смену старой программе &man.disklabel.8; пришла утилита &man.bsdlabel.8;. У &man.bsdlabel.8; отсутствуют некоторые устаревшие опции и параметры; в примере выше параметр не может использоваться с &man.bsdlabel.8;. Для получения дополнительной информации обратитесь к справочной странице п о &man.bsdlabel.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 4846 2 4458 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;. Файловые системы с отображением в память во FreeBSD 5.X диски файловая система в памяти (5.X) При работе с файловыми системами, отображаемыми в файл или память, используются одни и те же утилиты: &man.mdconfig.8; или &man.mdmfs.8;. Место для хранения файловых систем в памяти выделяется через &man.malloc.9;. Создание нового диска с отображением в память при помощи <command>mdconfig</command> &prompt.root; mdconfig -a -t malloc -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, 256 inodes. with soft updates super-block backups (for fsck -b #) at: 32, 2624, 5216, 7808 &prompt.root; mount /dev/md1 /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md1 4846 2 4458 0% /mnt Создание нового диска с отображением в память при помощи <command>mdmfs</command> &prompt.root; mdmfs -M -s 5m md2 /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md2 4846 2 4458 0% /mnt Вместо того, чтобы использовать файловую систему, опирающуюся на &man.malloc.9;, возможно использовать память раздела подкачки, для чего нужно просто заменить на в командной строке при вызове &man.mdconfig.8;. Утилита &man.mdmfs.8; по умолчанию (без опции ) создаёт диск в разделе подкачки. Для выяснения всех подробностей, пожалуйста, обратитесь к страницам справочной системы по &man.mdconfig.8; и &man.mdmfs.8;. Отключение диска, отображаемого в память, от системы диски отключение диска, отображаемого в память Если файловые системы, отображаемые в память или файл, больше не используются, вам нужно высвободить все ресурсы для системы. Первым делом нужно размонтировать файловую систему, затем воспользоваться &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.chflags.1;) для обеспечения того, что даже пользователь root не сможет произвести запись в мгновенную копию. Однако команда &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 После создания мгновенной копии есть несколько способов её использования: Некоторые администраторы будут использовать файл мгновенной копии для целей создания резервной копии, так как мгновенная копия может быть перенесена на 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" Если вы работаете с FreeBSD версий до 3.2-RELEASE, то настройка делается проще, и она состоит только из одной переменной. Задайте следующее в вашем файле /etc/rc.conf: check_quotas="YES" Наконец, вам потребуется отредактировать файл /etc/fstab для включения дисковых квот на уровне файловых систем. Это то место, где вы можете включить квоты для пользователей, для групп или для обеих этих категорий для всех ваших файловых систем. Для включения пользовательских квот для файловой системы, добавьте параметр в поле параметров файловой системы, на которой вы хотите включить квотирование, в файле /etc/fstab. Например: /dev/da1s2g /home ufs rw,userquota 1 2 Подобным же образом для включения квотирования на уровне групп, воспользуйтесь параметром вместо . Чтобы включить квотирование как для пользователей, так и для групп, измените строчку следующим образом: /dev/da1s2g /home ufs rw,userquota,groupquota 1 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: blocks in use: 65, limits (soft = 50, hard = 75) inodes in use: 7, limits (soft = 50, hard = 60) /usr/var: blocks in use: 0, limits (soft = 50, hard = 75) inodes in use: 0, limits (soft = 50, hard = 60) Для каждой файловой системы, на которой включено квотирование, вы должны увидеть две строки. В одной строке приведены ограничения на блоки, а в другой на количество inode. Например, чтобы увеличить ограничения на количество блоков для пользователя с мягкого ограничения в 50 и жёсткого ограничения в 75, на мягкое ограничение в 500 и жёсткое ограничение в 600, измените: /usr: blocks in use: 65, limits (soft = 50, hard = 75) на: /usr: blocks 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 blocks 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; kill -HUP `cat /var/run/inetd.pid` Lucky Green Текст предоставил
shamrock@cypherpunks.to
Шифрование дисковых разделов диски шифрование FreeBSD предоставляет прекрасную возможность по защите от несанкционированного доступа к данным. Права на доступ к файлам и технология мандатного контроля доступа MAC (Mandatory Access Control) (смотрите see ) помогают предотвратить несанкционированный доступ посторонних лиц к данным, при условии работы операционной системы и компьютера. Однако права доступа, контролируемые операционной системой, не имеют значения, если нападающий получает физический доступ к компьютеру и может просто перенести жёсткий диск на другую машину для копирования и дальнейшего анализа важных данных. Вне зависимости от того, как атакующий завладел жёстким диском или выключенным компьютером, технология gbde (GEOM Based Disk Encryption - шифрование диска на уровне GEOM) может защитить данные файловой системы компьютера даже против очень заинтересованной атакующей стороны с достаточными ресурсами. В отличие от громоздких систем шифрования, которые шифруют отдельные файлы, gbde шифрует в прозрачном режиме файловую систему в целом, при этом данные в открытом виде на диск никогда не записываются. Включение gbde в ядре Получите права пользователя <username>root</username> Настройка gbde требует права доступа администратора системы. &prompt.user; su - Password: Проверьте номер версии операционной системы Для работы &man.gbde.4; требуется FreeBSD 5.0 и выше. &prompt.root; uname -r 5.0-RELEASE Включите поддержку &man.gbde.4; в конфигурационный файл ядра При помощи вашего любимого текстового редактора добавьте следующую строку в файл конфигурации вашего ядра: options GEOM_BDE Выполните конфигурацию, компиляцию и установку нового ядра FreeBSD. Этот процесс описан в . Перезагрузитесь, запустив новое ядро. Подготовка зашифрованного жёсткого диска В следующем примере предполагается, что в вашу систему вы добавляете новый винчестер, на котором будет располагаться единственный раздел с зашифрованными данными. Этот раздел будет монтироваться в каталог /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 &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. Резервные копии файлов блокировок gbde должны храниться вместе с содержимым шифруемых разделов. Хотя удаление только блокировочного файла не сможет противостоять дешифрации атакующим раздела gbde, без этого файла даже легитимный пользователь не сможет получить доступ к данным без определённых и значительных усилий, что не поддерживается &man.gbde.8; и его разработчиком. Подключите зашифрованный раздел к системе &prompt.root; gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c Будет выдан запрос на ввод ключевой фразы, которую вы выбирали во время инициализации зашифрованного раздела. Новое защищённое устройство будет видно в каталоге /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; с параметром . Во &os; 5.1-RELEASE и последующих релизах параметр используется по умолчанию. &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 Будет выдан запрос на ввод ключевой фразы, выбранной на этапе инициализации зашифрованного раздела 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;. Криптографическая защита, применяемая в 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.
diff --git a/ru_RU.KOI8-R/books/handbook/kernelconfig/chapter.sgml b/ru_RU.KOI8-R/books/handbook/kernelconfig/chapter.sgml index b901a30fd8..51807c0034 100644 --- a/ru_RU.KOI8-R/books/handbook/kernelconfig/chapter.sgml +++ b/ru_RU.KOI8-R/books/handbook/kernelconfig/chapter.sgml @@ -1,1752 +1,1762 @@ Jim Mock Обновлено и реструктуризовано Jake Hamby Предоставлено Александром Коваленко Переведено Настройка ядра FreeBSD Краткий обзор kernel сборка собственного ядра Ядро - это основная часть операционной системы &os;. Оно ответственно за управление памятью, параметры безопасности, работу с сетью, доступ к дискам и многое другое. Несмотря на то, что &os; становится всё более динамически конфигурируемой, иногда приходится собирать собственное ядро. После прочтения этой главы вы узнаете: Почему вам может понадобиться сборка собственного ядра. Как написать файл конфигурации ядра или изменить существующий. Как использовать файл конфигурации ядра для того, чтобы создать и собрать новое ядро. Как установить новое ядро. Как создать записи в /dev, которые могут оказаться необходимы. Что делать, если что-то не работает или работает не так, как должно. Все команды, приводимые в этой главе в качестве примера, должны выполняться от пользователя root. Зачем собирать собственное ядро? Традиционно в &os; использовалось так называемое монолитное ядро. Это означает, что ядро - это одна большая программа, которая поддерживает фиксированный набор устройств и в случае, если необходимо изменить его поведение, требуется сборка нового ядра и перезагрузка компьютера уже с новым ядром. На сегодняшний день &os; быстро продвигается к модели, в которой большая часть функциональности содержится в модулях, которые могут быть при необходимости динамически загружены и выгружены из ядра. Это позволяет ядру использовать устройства, которые внезапно появились в системе (например, устройства PCMCIA в лэптопе) или добавлять новую функциональность в ядро, которая не была необходима в момент первоначальной сборки ядра. Такой подход известен как модульность ядра. Несмотря на это, всё ещё иногда бывает необходимо, чтобы некоторая функциональность была вкомпилирована в ядро статически. В некоторых случаях это продиктовано тем, что эта функциональность настолько сильно привязана к ядру, что не может быть динамически загружаемой. В других случаях это может быть просто потому, что никто не уделил время написанию динамически загружаемого модуля для этой функциональности. Сборка собственного ядра - один из наиболее важных ритуалов, через который должен пройти практически любой пользователь BSD. Несмотря на длительность этого процесса, ваша &os; останется только в выигрыше. В отличие от ядра GENERIC, которое должно поддерживать широкий спектр аппаратного обеспечения, собственное ядро содержит поддержку аппаратного обеспечения только вашего компьютера. Это может давать следующие плюсы: Меньшее время загрузки. Поскольку ядро будет пытаться определить только то аппаратное обеспечение, которое установлено в вашем компьютере, время, которое потребуется системе для загрузки, может значительно уменьшиться. Уменьшение использования памяти. Собственное ядро часто использует меньше памяти, чем ядро GENERIC, что очень важно, поскольку ядро всегда находиться в физической памяти. Именно по этой причине собственное ядро особенно полезно при использовании систем с малым объемом оперативной памяти. Поддержка дополнительного аппаратного обеспечения. Собственное ядро позволяет вам добавить поддержку таких устройств, поддержка которых отсутствует в ядре GENERIC. Сборка и установка собственного ядра kernel сборка / установка Во-первых, давайте сделаем краткий обзор каталога, в котором будет происходить сборка ядра. Все каталоги, которые будут упоминаться, будут относительными по отношению к основному каталогу /usr/src/sys, который также доступен как каталог /sys. Этот каталог содержит множество подкаталогов, представляющих собой различные части ядра, но наиболее важным для нас будет каталог arch/conf, в котором вы будете редактировать конфигурационный файл ядра и в котором находится каталог compile, где будет собираться ваше ядро. arch может быть i386, alpha, amd64, ia64, powerpc, sparc64 или pc98 (альтернативная ветвь аппаратного обеспечения, популярная в Японии). Все, что находится внутри каталога определенной архитектуры, относится только к этой архитектуре; остальной код является машинно независимым и общим для всех платформ, на которые &os; может быть потенциально портирована. Обратите внимание на логическую структуру каталогов, в которой каждое поддерживаемое устройство, каждая файловая система и каждая опция размещается в своём собственном каталоге. Версии &os; до 5.X поддерживали только архитектуры i386, alpha и pc98. В примерах этой главы подразумевается, что вы используете архитектуру i386. Если это не так, измените каталоги, указанные в примерах, в соответствии с архитектурой вашей системы. Если в вашей системе отсутствует каталог /usr/src/sys, это означает, что исходные тексты ядра не были установлены. Наиболее простой способ установить их - запустить /stand/sysinstall как root, выбрать Configure, потом Distributions, потом src, потом 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 - Затем, перейдите в каталог 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;, поэтому является более актуальным источником информации, чем это руководство. Теперь вы должны скомпилировать ядро. Существует два способа, которые позволяют это сделать. Какой из них выбрать, зависит от того, почему вам понадобилось пересобирать ядро и версии &os;, которую вы используете. Если вы установили только исходные тексты ядра, используйте способ 1. Если вы используете &os; версии более ранней, чем 4.0 и вы не обновляете систему до &os; 4.0 или выше, - используя make world, используйте способ + используя make buildworld, используйте способ 1. Если вы собираете новое ядро, не обновляя исходные тексты (возможно, для того, чтобы добавить новую опцию, например IPFIREWALL), вы можете использовать любой способ. Если вы пересобираете ядро как часть процесса - make world, используйте способ 2. + make buildworld, используйте способ 2. cvsup анонимный CVS CTM CVS анонимный Если вы не обновляли дерево исходных текстов с момента последнего успешного завершения цикла buildworld-installworld, (то есть не запускали CVSup, CTM, или не использовали anoncvs), возможно использование последовательности - config, make depend, - make, make install. + config, make depend, + make, make install. Способ 1. Сборка ядра <quote>традиционным</quote> способом Запустите &man.config.8; для того, чтобы сгенерировать исходные тексты ядра. &prompt.root; /usr/sbin/config MYKERNEL Перейдите в каталог, в котором будет собираться ядро. Запущенный как показано выше &man.config.8; выведет имя этого каталога. &prompt.root; cd ../compile/MYKERNEL Для &os; версий более ранних, чем 5.0, вместо этого используйте: &prompt.root; cd ../../compile/MYKERNEL Соберите ядро. &prompt.root; make depend &prompt.root; make Установите новое ядро. &prompt.root; make install Способ 2. Сборка ядра <quote>новым</quote> способом. Перейдите в каталог /usr/src. &prompt.root; cd /usr/src Соберите ядро. &prompt.root; make buildkernel KERNCONF=MYKERNEL Установите новое ядро. &prompt.root; make installkernel KERNCONF=MYKERNEL В &os; 4.2 и в более ранних, вам будет необходимо заменить KERNCONF= на KERNEL=. 4.2-STABLE, исходные тексты которой были обновлены до 2 февраля 2001 года, не понимает параметра KERNCONF=. /boot/kernel.old Новое ядро будет скопировано в каталог /boot/kernel как /boot/kernel/kernel, а старое ядро будет перемещено в /boot/kernel.old/kernel. Теперь перезагрузите систему для того, чтобы использовать новое ядро. Если что-то пойдёт не так, вы можете обратиться к разделу Если что-то пошло не так в конце этой главы, который может оказаться полезен. Не забудьте прочитать раздел, который объясняет как исправить то, что ядро не загружается. В &os; 4.X и более ранних, ядро устанавливается в /kernel, модули в /modules, а старое ядро сохраняется в /kernel.old. Другие файлы, относящиеся к процессу загрузки, такие как загрузчик (&man.loader.8;) и его конфигурационные файлы, размещаются в /boot. Модули сторонних производителей могут быть помещены в /modules, хотя пользователи должны знать, что очень важно, чтобы модули были синхронизированы с собранным ядром. Модули, не рассчитанные на работу с собранным ядром, могут вызвать нестабильность и некорректность работы. Если вы добавили новые устройства (такие, как звуковая карта) и используете &os; 4.X или более ранние версии, то, возможно, вам понадобится создать некоторые файлы устройств в каталоге /dev перед тем, как вы сможете их использовать. За дополнительной информацией вы можете обратиться к разделу Создание файлов устройств далее в этой главе. Joel Dahl Обновил для &os; 5.X Конфигурационный файл ядро NOTES ядро LINT NOTES LINT ядро конфигурационный файл Формат конфигурационного файла достаточно прост. Каждая строка представляет собой ключевое слово и один или более аргументов. Для простоты большинство строк содержат только один аргумент. Всё, что следует за символом # является комментарием и игнорируется. Следующие разделы описывают каждый параметр, в основном в порядке, в котором они появляются в GENERIC, хотя некоторые родственные параметры сгруппированы вместе в одном разделе (например Работа с сетью), даже если на самом деле они разбросаны по всему файлу GENERIC. За полным списком архитектурно-зависимых параметров и устройств обратитесь к файлу NOTES в том же каталоге, что и GENERIC. Архитектурно независимые параметры находятся в /usr/src/sys/conf/NOTES. NOTES не существует в &os; 4.X. Детальное описание параметров и устройств из GENERIC находится в файле LINT. В 4.X LINT служит двум целям: предоставить справочное руководство для выбора параметров ядра при сборке ядра по умолчанию и предоставить конфигурацию ядра с параметрами, установленными в значения, отличные от значений по умолчанию (настолько много параметров, насколько это возможно). Это было сделано по той причине, что такая конфигурация хорошо помогала (и все еще помогает) при тестировании нового кода и изменений в существующем коде, поскольку этот код и изменения могут конфликтовать с другими частями ядра. Однако, инфраструктура конфигурации ядра в 5.X прошла через множество серьезных изменений; Одно из таких изменений – перемещение параметров конфигурации драйверов в hints, и теперь они могут быть изменены и загружены динамически во время загрузки системы, а в LINT их больше нет. По этой и другим причинам LINT был переименован в NOTES и в основном по-прежнему соответствует своему назначению: информирование пользователей о доступных параметрах. В &os; 5.X и более поздних версиях вы все еще можете создать собираемый LINT, выполнив: &prompt.root; cd /usr/src/sys/i386/conf && make LINT kernel пример конфигурационного файла Это пример конфигурационного файла ядра GENERIC с различными дополнительными комментариями, которые могут понадобиться для ясности. Этот пример должен совпадать с вашей копией в /usr/src/sys/i386/conf/GENERIC практически полностью. # # GENERIC -- Generic kernel configuration file for &os;/i386 # # For more information on this file, please read the handbook section on # Kernel Configuration Files: # # http://www.&os;.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html # # The handbook is also available locally in /usr/share/doc/handbook # if you've installed the doc distribution, otherwise always see the # &os; World Wide Web server (http://www.FreeBSD.org/) for the # latest information. # # An exhaustive list of options and more detailed explanations of the # device lines is also present in the ../../conf/NOTES and NOTES files. # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # # $FreeBSD: /repoman/r/ncvs/src/sys/i386/conf/GENERIC,v 1.413 2004/08/11 01:34:18 rwatson Exp $ Следующие параметры обязательны для любого ядра, которое вы будете собирать: параметры ядра machine machine i386 Это архитектура машины. Она должна быть одной из следующих: alpha, amd64, i386, ia64, pc98, powerpc, или sparc64. параметры ядра cpu cpu I486_CPU cpu I586_CPU cpu I686_CPU Эта опция указывает тип процессора, который используется в вашей системе. В конфигурационном файле может быть несколько вхождений этой опции (например, если вы не уверены, какой из типов процессора необходимо использовать — I586_CPU или I686_CPU), но для собственного ядра лучше указывать только тот тип процессора, который установлен в вашей системе. Если вы не уверены, какой тип необходимо использовать вам, вы можете воспользоваться файлом /var/run/dmesg.boot, чтобы увидеть протокол загрузки системы. параметры ядра cpu type Поддержка типа I386_CPU все ещё существует в исходных текстах &os;, но по умолчанию отключена в ветках -STABLE и -CURRENT. Это означает, что для того, чтобы установить &os; на систему с процессором i386, вы можете использовать следующие способы: Установить более раннюю версию &os; и пересобрать систему из исходных текстов в соответствии с . Собрать мир и ядро на более новой машине и установить на 386 используя уже собранные файлы в /usr/obj (за дополнительной информацией можете обратиться к ). Сделать собственный релиз &os;, который включает поддержку I386_CPU в ядре установочного CD-ROM. Первый из этих способов, возможно, наиболее простой из всех предложенных, но вам понадобится много дискового пространства, что может быть затруднительно для систем класса 386. параметры ядра ident ident GENERIC Этот параметр определяет метку ядра. Необходимо, чтобы она соответствовала названию файла конфигурации ядра, например MYKERNEL, если вы следовали инструкциям в предыдущих примерах. Значение, которое вы присвоите параметру ident будет выводиться в процессе загрузки, поэтому полезно давать новым ядрам другие имена для того, чтобы отличать их от обычного ядра (например, если вы хотите собрать экспериментальное ядро). параметры ядра maxusers maxusers n Параметр maxusers определяет размеры многих важных системных таблиц. Это число должно быть приблизительно равно количеству пользователей, одновременно использующих вашу систему. Начиная с &os; 4.5, система автоматически настроит этот параметр если в конфигурационном файле вы установили его в значение 0Алгоритм автоматической настройки устанавливает maxusers равным количеству памяти в системе, минимум 32 и максимум 384.. В &os; 5.X и выше, maxusers по умолчанию равен 0, если не установлено другое значение. Если вы используете &os; версии более ранней, чем 4.5 или хотите самостоятельно управлять этим значением, рекомендуется устанавливать значение maxusers равным минимум 4, особенно если вы используете X Window System или компиляторы. Причина этого кроется в том, что одной из основных таблиц, размер которой определяет maxusers, является максимальное количество процессов, которое устанавливается равным 20 + 16 * maxusers, таким образом, если вы установите maxusers равным 1, то получите возможность выполнять максимум 36 одновременных процессов, включая 18 или около того процессов, которые система запускает при загрузке, и 15 или около того вы создадите, когда запустите X Window System. Даже такая простая задача, как чтение страницы справочной системы (&man.man.1;), потребует запуска девяти процессов, для того, чтобы использовать фильтры, распаковать и просмотреть её. Установка maxusers в значение 64 позволит запускать до 1044 одновременных процессов, что должно быть достаточно для большинства применений. Однако, если вы видите ошибку proc table full, когда пытаетесь запустить программу или поддерживаете сервер с большим количеством пользователей (таким как ftp.FreeBSD.org), вы всегда можете увеличить это число и пересобрать ядро. maxusers не ограничивает количество пользователей, которые могут зайти на вашу машину. Он просто устанавливает размеры различных таблиц в разумные значения, учитывая максимальное количество пользователей, которое будет у вас в системе и как много процессов будет запускать каждый из них. Параметр ядра, который действительно ограничивает количество одновременных удалённых сессий и окон X терминала, это pseudo-device pty 16. С &os; 5.X, вам не нужно беспокоиться об этом номере, поскольку драйвер &man.pty.4; автоклонируемый; используйте в файле конфигурации строку device pty. # Floating point support - do not disable. device npx npx - это интерфейс к модулю операций с плавающей точкой в &os;, который может использовать как аппаратный сопроцессор, так и программную эмуляцию. Этот параметр является обязательным. # Pseudo devices device loop # Network loopback Стандартное устройство обратной связи для TCP/IP. Если вы запускаете telnet или FTP на localhost (он же 127.0.0.1), то соединение пройдёт через это устройство. Этот параметр обязателен. В &os; 4.X вам потребуется использовать pseudo-device loop. Все остальные параметры более или менее опциональны. Обращайте внимание на информацию о каждой опции, которая размещается рядом с ней. #To statically compile in device wiring instead of /boot/device.hints #hints "GENERIC.hints" # Default places to look for devices. В &os; 5.X и более поздних &man.device.hints.5; используются для настройки параметров драйверов устройств. Путь по умолчанию, который &man.loader.8; будет проверять при загрузке - /boot/device.hints. Используя опцию hints вы можете вкомпилировать эти параметры статически в ваше ядро. В этом случае не требуется создавать файл device.hints в каталоге /boot. #makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols Обычный процесс сборки &os; не включает генерацию отладочной информации при сборке ядра и удаляет большую часть вспомогательной информации (symbols) после того как ядро слинковано для того, чтобы сэкономить немного места. Если вы собираетесь проводить тестирование ядер в ветви -CURRENT или разрабатывать собственные правки для ядра &os;, возможно вам будет нужно раскомментировать эту строку. Тем самым вы включите использования опции , которая включает генерацию отладочной информации &man.gcc.1;. Того же самого эффекта можно добиться используя опцию &man.config.8; , в случае, если вы используете традиционный способ сборки ядра (обратитесь к за дополнительной информацией). options SCHED_4BSD # 4BSD scheduler Традиционный планировщик &os;. В зависимости от загруженности системы, вы можете повысить производительность системы, используя новый планировщик &os; ULE, который был специально разработан для SMP, но отлично работает также и на однопроцессорных системах. Если вы хотите попробовать этот планировщик, замените SCHED_4BSD на SCHED_ULE в файле конфигурации ядра. options INET # InterNETworking Поддержка сетевых возможностей. Оставьте эту опцию включенной, даже если вы не планируете подключаться к сети. Большинство программ требуют, чтобы работал хотя бы интерфейс обратной связи (loopback) (т.е. создание сетевых соединений внутри вашего ПК), так что эта опция в принципе является обязательной. options INET6 # IPv6 communications protocols Включает поддержку коммуникационных протоколов IPv6. options FFS # Berkeley Fast Filesystem Включает поддержку основной файловой системы. Не удаляйте эту опцию, если вы планируете загружаться с жесткого диска. options UFS_ACL # Support for access control lists Этот параметр, присутствующий только в &os; 5.X, включает в ядре поддержку списков управления доступом (ACL). Основывается на использовании расширенных атрибутов и UFS2, детальное описание вы сможете найти в . ACL включены по умолчанию и не должны выключаться в случае если они ранее использовались на файловой системе, так как это удалит списки управления доступом и изменит то, как защищены файлы, непредсказуемым образом. options UFS_DIRHASH # Improve performance on big directories Эта опция включает функциональность, которая повышает скорость дисковых операций на больших каталогах в обмен на использование дополнительной памяти. Для большого сервера или рабочей станции рекомендуется оставить ее включенной, и выключить для системы, для которой более приоритетна память, чем скорость доступа к дискам, например сетевой экран (firewall). options SOFTUPDATES # Enable FFS Soft Updates support Этот параметр включает в ядре технологию Soft Updates, которая повышает скорость записи на диски. Несмотря на то, что эта технология включена в ядре, она должна быть включена для отдельных дисков. Просмотрите вывод команды &man.mount.8; чтобы определить, включены ли Soft Updates для дисков вашей системы. Если вы не увидите параметр soft-updates, вам будет необходимо активировать его при помощи команды &man.tunefs.8; (для существующих файловых систем) или команды &man.newfs.8; (для новых файловых систем). 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 Файловая система процессов. Это виртуальная файловая система монтируемая в /proc, которая позволяет таким приложениям, как &man.ps.1; выдавать вам больше информации о запущенных процессах. В &os; 5.X и выше, использование PROCFS не требуется, так как большинство мониторинговых и отладочных инструментов было адаптировано для работы без PROCFS: в отличие от &os; 4.X, новые системы &os; 5.X по умолчанию не монтируют файловую систему процессов. Более того, ядра 6.X-CURRENT, которые используют PROCFS, должны также включать поддержку PSEUDOFS: options PSEUDOFS # Pseudo-filesystem framework PSEUDOFS недоступна в &os; 4.X. 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, на которых могут запускаться старые приложения; платформы, поддержка которых появилась только в &os; 5.X, например ia64 и &sparc64;, не требуют этой опции. options SCSI_DELAY=15000 # Delay (in ms) before probing SCSI Этот параметр заставляет ядро приостановиться на 15 секунд перед тем, как идентифицировать каждое устройство SCSI в вашей системе. Если у вас установлены только жесткие диски IDE, вы можете игнорировать эту опцию, в противном случае, возможно, вы захотите уменьшить это число, например до 5 секунд, для того, чтобы ускорить загрузку. Естественно, что если вы сделаете это, а у &os; появятся проблемы с распознанием ваших устройств SCSI, необходимо будет увеличить этот параметр. options KTRACE # ktrace(1) support Включает поддержку трассировки процессов, что удобно при отладке. options SYSVSHM # SYSV-style shared memory Этот параметр предоставляет поддержку разделяемой памяти System V. Наиболее распространенное применение этого - расширение XSHM в X, которое многие приложения, интенсивно работающие с графикой, будут автоматически использовать для повышения скорости работы. Если вы используете X, эта опция будет необходима. options SYSVSEM # SYSV-style semaphores Поддержка семафоров System V. Не настолько часто используемая возможность, но в ядро добавляет всего несколько сотен байт. options SYSVMSG # SYSV-style message queues Поддержка сообщений 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 Этот параметр относится к клавиатуре. Он добавляет CDEV в /dev. options AHC_REG_PRETTY_PRINT # Print register bitfields in debug # output. Adds ~128k to driver. options AHD_REG_PRETTY_PRINT # Print register bitfields in debug # output. Adds ~215k to driver. Распечатка регистров для облегчения отладки. options ADAPTIVE_GIANT # Giant mutex is adaptive. - Этот параметр включает Giant в набор адаптивных - мьютексов. + Giant — имя механизма защиты (спящего + мьютекса) для крупных наборов ресурсов ядра. На нынешний момент + Giant представляется фактически непригодным для использования в связи + с серьезными потерями в производительности, и активно заменяется + на механизмы, защищающие отдельные ресурсы ядра. Параметр + ADAPTIVE_GIANT включает Giant в число адаптивных + мьютексов: в случае, когда нить ядра нуждается в Giant, а он уже + захвачен нитью, выполняющейся на другом процессоре, первая нить + будет продолжать выполнение и ждать освобождения Giant. В норме + нить должна была бы уснуть, пока не настанет очередной момент ее + выполнения. Если вы не уверены, оставьте этот параметр в покое. kernel options SMP - # To make an SMP kernel, the next two are needed -options SMP # Symmetric MultiProcessor Kernel -device apic # I/O APIC + device apic # I/O APIC - Обе эти опции являются необходимыми для поддержки симметричной - мультипроцессорности (SMP), их можно оставить включенными и - на однопроцессорной системе. + Устройство apic разрешает использование набора I/O APIC для + распределения прерываний. Оно может быть использовано как с + однопроцессорными, так и с многопроцессорными ядрами (для последних + наличие apic является обязательным). Для поддержки многопроцессорности + добавьте строку options SMP. device isa Все компьютеры, поддерживаемые &os;, имеют хотя бы одно устройство ISA. Не удаляйте эту строку, даже если в вашем компьютере нет слотов ISA. Для архитектуры IBM PS/2 (Микроканальная Архитектура (MCA)), &os; предоставляет ограниченную поддержку данной шины. За дальнейшей информацией о поддержке MCA обратитесь к файлу /usr/src/sys/i386/conf/NOTES. device eisa Включите эту опцию если у вас материнская плата EISA. Это включает автоопределение и конфигурирование поддержки всех устройств на шине EISA. device pci Включите этот параметр, если у вас материнская плата с поддержкой PCI. Это включит автоопределение карт PCI и проксирование из шины PCI в шину ISA. device agp Включите эту опцию, если у вас есть AGP карта в системе. Это включит поддержку AGP и AGP GART для тех карт, которые поддерживают эту возможность. # 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 device ahd # AHA39320/29320 and onboard AIC79xx devices device amd # AMD 53C974 (Teckram DC-390(T)) device isp # Qlogic family device mpt # LSI-Logic MPT-Fusion #device ncr # NCR/Symbios Logic device sym # NCR/Symbios Logic (newer chipsets) 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 устройства, вы можете удалить все эти строки. # 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 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 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 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 vga # VGA video card driver Драйвер видеокарты. # splash screen/screen saver device splash # Splash screen and screen saver support Заставка при загрузке. Хранители экрана также требуют этого устройства. В &os; 4.X используйте строку pseudo-device splash. # 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 присутствует практически на любой платформе. # Power management support (see NOTES for more options) #device apm Поддержка Advanced Power Management. Чаще всего используется в лэптопах, хотя в ядре GENERIC &os; 5.X и выше отключена по умолчанию. # 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 dc # DEC/Intel 21143 and various workalikes device miibus # MII bus support 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 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 ti # Alteon Networks Tigon I/II gigabit Ethernet device tl # Texas Instruments ThunderLAN device tx # SMC EtherPower II (83c170 EPIC) 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 device an # Aironet 4500/4800 802.11 wireless NICs. device awi # BayStack 660 and others device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs. #device wl # Older non 802.11 Wavelan wireless NIC. Поддержка различных беспроводных карт. device mem # Memory and kernel memory devices Устройства системной памяти. device io # I/O device Этот параметр позволяет процессу получение привилегий ввода/вывода. Он полезен для написания пользовательских программ, работающих с оборудованием непосредственно. Необходим для работы X Window system. device random # Entropy device Генератор случайных чисел для криптографической защиты. device ether # Ethernet support ether необходим лишь в случае, если у вас есть сетевая карта. Он включает поддержку стандартного кода протокола Ethernet. В &os; 4.X используйте строку pseudo-device ether. device sl # Kernel SLIP sl - это поддержка SLIP. SLIP был практически вытеснен PPP, который легче настраивается, лучше подходит для соединений модем-модем и имеет больше возможностей. В &os; 4.X используйте строку pseudo-device sl. device ppp # Kernel PPP Поддержка PPP в ядре для соединений dial-up. Также существует версия PPP, реализованного как приложение использующее tun и предлагает большую гибкость и большее количество возможностей, как, например, соединение при необходимости (наличии обращения к сети). В &os; 4.X используйте строку pseudo-device ppp. device tun # Packet tunnel. Используется пользовательским программным обеспечением PPP. Ознакомьтесь с разделом PPP этой книги за дальнейшей информацией. В &os; 4.X используйте строку pseudo-device tun. device pty # Pseudo-ttys (telnet etc) псевдо-терминал или имитированный порт для входа. Используется входящими telnet и rlogin-сессиями, приложением xterm и некоторыми другими приложениями, такими как Emacs. В &os; 4.X используйте строку pseudo-device pty number. Число после pty определяет количество pty, которое необходимо создать. Если вам необходимо более, чем стандартное (16) количество окон xterm и/или удаленных входов, увеличьте это число в соответствии с вашими потребностями, но не более чем до 256. device md # Memory disks Псевдоустройства дисков в памяти. В &os; 4.X используйте строку pseudo-device md device gif # IPv6 and IPv4 tunneling Поддержка туннелирования IPv6 через IPv4, IPv4 через IPv6, IPv4 через IPv4 и IPv6 через IPv6. Начиная с &os; 4.4 устройство gif является автоклонируемым и вы должны использовать строку pseudo-device gif. Более ранним версиям &os; 4.X требуется номер, например pseudo-device gif 4. device faith # IPv6-to-IPv4 relaying (translation) Это псевдоустройство захватывает пакеты, которые были посланы ему и перенаправляет их демону трансляции IPv4/IPv6. В &os; 4.X используйте строку pseudo-device faith 1 # The `bpf' device enables the Berkeley Packet Filter. # Be aware of the administrative consequences of enabling this! device bpf # Berkeley packet filter Фильтр пакетов Berkeley. Это псевдоустройство позволяет переводить сетевые интерфейсы в неразборчивый (promiscuous) режим, в котором перехватывается любой пакет в широковещательной сети (например ethernet). Эти пакеты могут быть сохранены на диск и/или исследованы при помощи &man.tcpdump.1;. В &os; 4.X используйте строку pseudo-device bpf. Устройство &man.bpf.4; также используется программой &man.dhclient.8; для того, чтобы получить адрес шлюза по умолчанию и т.п. Если вы используете DCHP, не удаляйте эту опцию. # USB support #device uhci # UHCI PCI->USB interface #device ohci # OHCI PCI->USB interface 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 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 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; 4.9-RELEASE и &os; 5.1-RELEASE и более поздних. В связи с ограничениями архитектуры Intel, не делается никакого различия между памятью ниже или выше 4 гигабайт. Память, размещенная выше 4 гигабайт, просто добавляется к доступной памяти. Для того, чтобы включить PAE в ядре, просто добавьте приведенную строку в конфигурационный файл ядра: options PAE Поддержка PAE в &os; существует только для процессоров &intel; IA-32. Также следует заметить, что PAE в &os; не было полностью протестировано и должно считаться находящимся в состоянии бета-тестирования по сравнению с другими, стабильными возможностями &os;. Поддержка PAE в &os; имеет следующие ограничения: Процесс не может получить доступ к более, чем 4 гигабайтам пространства VM. KLD модули не могут быть загружены в ядро с включенной поддержкой PAE из-за разницы в окружении для сборки модулей и самого ядра. Драйверы устройств, которые не используют интерфейс &man.bus.dma.9; приведут к повреждению информации в ядре с включенным PAE. Не рекомендуется использовать такие драйвера. По этой причине в &os; 5.X включен конфигурационный файл ядра PAE, из которого удалены все драйверы, о которых известно, что они не работают при включенной поддержке PAE. Некоторые системные переменные определяют использование ресурсов памяти по количеству доступной физической памяти. Такие переменные могут привести к ненужному чрезмерному выделению памяти из-за особенностей работы системы PAE. Один из таких примеров - переменная , которая управляет максимальным количеством vnode разрешенных в ядре. Рекомендуется установить такую и подобные ей переменные вручную в адекватные значения. Возможно, понадобится увеличить пространство виртуальных адресов ядра (KVA) или уменьшить какую-либо переменную (см. выше), значение которой было неоправданно велико и могло привести к исчерпанию KVA. Для этого может быть использована опция ядра . В случае сомнений относительно производительности и стабильности рекомендуется обратиться к странице руководства &man.tuning.7;. Страница руководства &man.pae.4; содержит свежую информацию о поддержке PAE в &os;. Создание файлов устройств файлы устройств MAKEDEV Если вы работаете с &os; 5.0 или старше, вы можете пропустить эту секцию. Эти версии используют &man.devfs.5; для выделения файлов устройств прозрачно для пользователя. Практически все устройства в ядре имеют соответствующий файл, называемый node в каталоге /dev. Они выглядят как обычные файлы, но на самом деле это специальные точки входа в ядро, которые необходимы приложениям для доступа к устройствам. Скрипт для /bin/sh /dev/MAKEDEV, который выполняется при первой установке операционной системы, создает практически все поддерживаемые файлы устройств. Однако он не создаёт их все, таким образом, когда вы добавляете поддержку нового устройства, следует убедиться, что соответствующие файлы есть в /dev, и если их там нет, создать их. Вот простой пример: Предположим, вы добавили поддержку привода IDE CD-ROM в ядро. Строка, которую вы добавили: device acd0 Это означает, что вам необходимо проверить наличие файлов, название которых начинаются строкой acd0 в каталоге /dev, за которой, возможно, следует буква, например c, или предшествует r, что означает, что это сырое (raw) устройство, которое используется для прямого доступа к аппаратному устройству. Если оказывается, что таких файлов в каталоге нет, вы должны перейти в каталог /dev и набрать: MAKEDEV &prompt.root; sh MAKEDEV acd0 Когда скрипт завершит работу, вы увидите, что файлы acd0c и racd0c созданы, соответственно скрипт отработал корректно. Для звуковых карт нижеследующая команда создает необходимые файлы: &prompt.root; sh MAKEDEV snd0 Если вы создаете файлы устройств для таких устройств, как звуковые карты и если другие люди имеют доступ к вашей машине, было бы не лишним защитить их от использования извне при помощи добавления их в файл /etc/fbtab. За дальнейшей информацией обратитесь к странице руководства &man.fbtab.5;. Следуйте этой простой процедуре для любых других устройств, которые отсутствуют в ядре GENERIC и которые не имеют соответствующих файлов в /dev. Все контроллеры SCSI используют одинаковый набор файлов в /dev, поэтому вам не нужно создавать их. Также, сетевые карты и псевдоустройства SLIP и PPP не имеют вхождений в /dev, поэтому и о них вы не должны беспокоиться. Если что-то пошло не так Существует пять категорий проблем, которые могут возникнуть при сборке собственного ядра. Вот они: Не удаётся отработать команде config: Если команда &man.config.8; не может отработать, то, скорее всего, вы допустили где-нибудь маленькую ошибку. К счастью &man.config.8; выведет номер проблемной строки, поэтому вы можете быстро найти строку, содержащую ошибку. Например, если вы видите: config: line 17: syntax error Убедитесь, что опция введена верно путём сравнения с файлом GENERIC или другим источником. Не удаётся отработать команде make: Если не удаётся отработать команде make, обычно это означает ошибку в описании конфигурации ядра, которая не достаточно тривиальна для того, чтобы &man.config.8; мог обнаружить её. Опять-таки, просмотрите файл конфигурации и, если вы все еще не можете решить проблему, напишите письмо в &a.questions; включив в письмо файл конфигурации ядра. Скорее всего проблема будет решена быстро. Не удаётся установить новое ядро: Если ядро собралось без проблем, но не удалось его установить (команда make install или make installkernel сообщила об ошибке), первое, что необходимо проверить, не запущена ли ваша система с уровнем безопасности 1 или выше (обратитесь к &man.init.8;). Процедура установки пробует снять флаг неизменяемости с текущего ядра и установить этот флаг для нового ядра. Так как на уровне безопасности 1 и выше запрещено снятие флага неизменяемости для всех файлов в системе, установка должна производиться на уровне безопасности 0 и ниже. Линия выше применима только к &os; 4.X и более ранним версиям. &os; 5.X, как и более поздние версии, не устанавливает этот флаг на ядро и ошибка при установке ядра возможно указывает на более фундаментальную проблему. Ядро не загружается: Если ваше новое ядро не загружается или ему не удаётся обнаружить ваши устройства - не паникуйте! К счастью, в &os; существует отличный механизм для восстановления после установки несовместимого ядра. Просто выберите ядро, которое хотите загрузить в загрузчике &os;. К нему вы можете получить доступ, когда система делает обратный отсчёт от 10 в меню загрузки. Нажмите любую клавишу, кроме Enter, введите unload и наберите 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 В версиях &os; до 5.X, для восстановления работоспособного ядра используйте команду: &prompt.root; chflags noschg /kernel Если вы обнаружите, что не можете этого сделать, скорее всего вы работаете на уровне безопасности (&man.securelevel.8;) большем нуля. Отредактируйте переменную kern_securelevel в файле /etc/rc.conf, установите её в -1 и перезагрузитесь. Вы можете установить её в предыдущее состояние когда будете довольны своим новым ядром. И, если вы захотите закрыть ваше новое ядро или любой другой файл, таким образом, что он не сможет быть перемещен или изменен, используйте следующую команду: &prompt.root; chflags schg /kernel Ядро работает, но &man.ps.1; больше не работает: Если вы установили версию ядра отличную от той, с которой были собраны ваши системные утилиты, например, ядро от 5.X на системе 4.X, большая часть системных команд, таких как &man.ps.1; и &man.vmstat.8; не будут больше работать. Вам потребуется перекомпилировать и установить систему той же версии исходных текстов, что и ядро. Это одна из причин, по которой не следует использовать версию ядра, отличную от версии всей остальной системы. diff --git a/ru_RU.KOI8-R/books/handbook/l10n/chapter.sgml b/ru_RU.KOI8-R/books/handbook/l10n/chapter.sgml index b0b5105e29..af504ad23f 100644 --- a/ru_RU.KOI8-R/books/handbook/l10n/chapter.sgml +++ b/ru_RU.KOI8-R/books/handbook/l10n/chapter.sgml @@ -1,977 +1,991 @@ Andrey A. Chernov Предоставил Michael C. Wu Переписал Александр Пересунко Перевод на русский язык: Денис Пеплин Локализация - I18N/L10N использование и настройка Краткий обзор FreeBSD - это очень распределенный проект, пользователи и контрибьюторы которого находятся в самых разных частях света. В этой главе рассказывается о возможностях интернационализации и локализации FreeBSD, которые позволяют не-англоговорящим пользователям делать свою работу. Существует много подходов в i18n реализации - как на системном уровне, так и на уровне приложений, так что, где это возможно, мы будем давать читателю ссылки на более углубленные источники документации. После прочтения этой главы, вы будете знать: Как разные языки и региональные настройки кодируются в современных операционных системах. Как установить региональные настройки для вашей оболочки. Как настроить вашу консоль для отличных от английского языков. Как эффективно использовать X Window System с разными языками. Где найти дополнительную документацию по созданию i18n-совместимых приложений. Перед чтением этой главы вам следует:: Знать как установить дополнительные приложения сторонних разработчиков (). Основы Что такое I18N/L10N? интернационализация локализация Разработчики сократили интернационализацию в термин I18N, по числу символов между первым и последним символом интернационализации. В названии L10N используется тот же принцип от локализации. Совместно используемые I18N/L10N методы, протоколы и приложения позволяют пользователям использовать языки по своему выбору. I18N приложения написаны с применением набора I18N посредством библиотек. Это позволяет разработчикам писать простые файлы и переводить отображаемые меню и надписи на разные языки. Мы настоятельно рекомендуем программистам следовать этому соглашению. Почему я должен использовать I18N/L10N? I18N/L10N используется всегда, когда вы хотите просмотреть, ввести или обработать данные на отличных от английского языках. Какие языки поддерживаются в проекте I18N? I18N и L10N не являются специфичными для FreeBSD. На текущий момент у вас есть выбор между самыми распространенными языками мира, включая, но не ограничиваясь: китайский, немецкий, японский, корейский, французский, русский, вьетнамский и др. Использование локализации При всем своем величии, I18N не специфична для FreeBSD и является, по сути, соглашением. Следование этому соглашению помогает FreeBSD, и мы это приветствуем. locale Настройки локализации базируются на трех основных терминах: код языка, код страны и кодировка. Имена локализаций строятся из этих частей следующим образом: кодязыка_кодстраны.кодировка Язык и код страны language codes country codes Чтобы настроить FreeBSD (или любую другую &unix;-систему, поддерживающую I18N) на использование специфического языка, пользователю нужно выяснить коды этого языка и страны (коды страны сообщают приложению какой именно диалект языка этой страны нужно использовать). К тому же, веб-браузеры, SMTP/POP серверы, веб-серверы и т.п. делают свой выбор в зависимости от этого. Далее показаны примеры кодов языка/страны: Код языка/страны Описание en_US Английский - Соединенные Штаты ru_RU Русский для России zh_TW Традиционный китайский для Тайваня Кодировки кодировки ASCII Некоторые языки используют не соответствующие ASCII кодировки, которые используют для кодирования 8 бит, расширенное или многобайтовое представление символов (подробности см. в &man.multibyte.3;). Старые приложения не распознают такие кодировки и ошибочно принимают их за управляющие символы. Новые приложения обычно распознают 8-битные символы. В зависимости от реализации, пользователю может потребоваться компиляция приложения с поддержкой расширенного или многобайтного представления символов, или же просто правильная его настройка. Чтобы иметь возможность вводить и обрабатывать символы с расширенным или многобайтным представлением, Коллекция портов FreeBSD предоставляет поддержку разных языков для различных приложений. Смотрите документацию по I18N в соответствующем порту FreeBSD. В частности, пользователю необходимо читать прилагаемую к приложению документацию чтобы решить, как правильно его настроить или указать правильные параметры configure/Makefile/компилятору. Следует помнить следующие вещи: Наборы символов, использующие один байт для кодирования символа (см. &man.multibyte.3;), например, ISO-8859-1, ISO-8859-15, KOI8-R, CP437. Расширенные или многобайтные кодировки, например, EUC, Big5. Вы можете посмотреть актуальный список наборов символов на сайте IANA Registry. Вместо этого, FreeBSD версий 4.5 и выше используют X11-совместимые кодировки для локализации. Приложения, использующие I18N В системе Портов и Пакетов FreeBSD в название приложений, поддерживающих I18N, включена аббревиатура I18N для легкой их идентификации. И, тем не менее, не все приложения поддерживают требуемый язык. Настройка локализации Обычно достаточно экспортировать значение имени локализации в переменной LANG Вашей оболочки. Это можно сделать в пользовательском ~/.login_conf файле или в инициализационном файле пользовательской оболочки (~/.profile, ~/.bashrc, ~/.cshrc). Нет надобности устанавливать отдельные параметры локализации такие как LC_CTYPE, LC_CTIME. За дополнительной информацией, пожалуйста, обращайтесь к документации FreeBSD по нужному вам языку. Вам следует установить следующие переменные окружения в ваших конфигурационных файлах: POSIX LANG для семейства функций &posix; &man.setlocale.3; MIME MM_CHARSETнабор символов MIME для приложений Эти настройки включают конфигурацию оболочки пользователя, конфигурацию конкретных приложений и конфигурацию X11. Методы настройки локализации locale login class Существует два метода настройки локализации и оба описаны ниже. Первый (рекомендуемый) заключается в задании переменных в классе логина, другой метод заключается в задании переменных окружения в инициализационном файле системной оболочки. Метод Login Classes Этот метод позволяет установить переменные окружения, необходимые для установки локализации и набора символов MIME, однократно для любых оболочек, вместо того, чтобы добавлять установку этих переменных в инициализационный файл каждой оболочки. Настройка на уровне пользователя может быть сделана самим пользователем, а Настройка на уровне администратора требует привилегий суперпользователя. Настройка на уровне пользователя Вот минимальный пример файла .login_conf в домашнем каталоге пользователя, в котором задаются обе переменные для кодировки Latin-1: me:\ :charset=ISO-8859-1:\ :lang=de_DE.ISO8859-1: Traditional ChineseBIG-5 encoding Это пример .login_conf, который задает переменные для Традиционного Китайского языка в кодировке BIG-5. Обратите внимание, что задается намного больше переменных, потому что некоторое программы некорректно воспринимают переменные окружения локализации для Китая, Японии и Кореи. #Пользователи, которые не хотят использовать денежные единицы #и форматы времени Тайваня, могут вручную изменить каждую переменную me:\ :lang=zh_TW.Big5:\ :lc_all=zh_TW.Big:\ :lc_collate=zh_TW.Big5:\ :lc_ctype=zh_TW.Big5:\ :lc_messages=zh_TW.Big5:\ :lc_monetary=zh_TW.Big5:\ :lc_numeric=zh_TW.Big5:\ :lc_time=zh_TW.Big5:\ :charset=big5:\ :xmodifiers="@im=xcin": #Setting the XIM Input Server За подробностями обращайтесь к разделу Настройка на уровне администратора и &man.login.conf.5;. Настройка на уровне администратора Проверьте, что класс логина пользователя в /etc/login.conf задает нужный язык. Убедитесь, что эти настройки присутствуют в /etc/login.conf: language_name:accounts_title:\ :charset=MIME_charset:\ :lang=locale_name:\ :tc=default: Используя наш предыдущий пример с Latin-1, это должно выглядеть так: german:German Users Accounts:\ :charset=ISO-8859-1:\ :lang=de_DE.ISO8859-1:\ :tc=default: Изменение класса логина с помощью &man.vipw.8; vipw Используйте vipw для добавления новых пользователей и отредактируйте запись о пользователе, чтобы она была похожа на эту: user:password:1111:11:language:0:0:User Name:/home/user:/bin/sh Изменение класса логина с помощью &man.adduser.8; adduser login class Используйте adduser для добавления новых пользователей и сделайте следующее: Установите defaultclass = язык в /etc/adduser.conf. Помните, что в этом случае вы должны задать default класс для всех пользователей других языков. Другой способ заключается в задании класса логина каждый раз, когда &man.adduser.8; попросит об этом: Enter login class: default []: Еще один способ - использовать следующее для каждого пользователя другого языка, которого вы хотите добавить: &prompt.root; adduser -class язык Изменение класса логина с помощью &man.pw.8; pw Если для добавления новых пользователей вы используете утилиту &man.pw.8;, запускайте ее с такими параметрами: &prompt.root; pw useradd имя_пользователя -L язык Метод инициализационных файлов оболочки Этот метод не рекомендуется, потому что он требует разных настроек для каждой оболочки. Вместо этого используйте Метод класса логина. MIME locale Чтобы добавить локализацию и набор символов MIME, просто установите две переменные окружения, приведенные ниже, в инициализационные файлы оболочек /etc/profile и/или /etc/csh.login. Для примера мы используем немецкий язык: В /etc/profile: LANG=de_DE.ISO8859-1; export LANG MM_CHARSET=ISO-8859-1; export MM_CHARSET Или в /etc/csh.login: setenv LANG de_DE.ISO8859-1 setenv MM_CHARSET ISO-8859-1 Как вариант, вы можете добавить установки, приведенные выше в /usr/share/skel/dot.profile (соответствует установкам в /etc/profile выше), или /usr/share/skel/dot.login (соответствует установкам в /etc/csh.login выше). Для X11: В $HOME/.xinitrc: LANG=de_DE.ISO8859-1; export LANG Или: setenv LANG de_DE.ISO8859-1 В зависимости от вашей оболочки (см. выше). Настройка консоли Для всех однобайтовых кодовых таблиц, укажите подходящие консольные шрифты в /etc/rc.conf для требуемого языка: font8x16=имя_шрифта font8x14=имя_шрифта font8x8=имя_шрифта The имя_шрифта берется из каталога /usr/share/syscons/fonts, без указания расширения .fnt. sysinstall keymap screenmap Убедитесь также в установке правильных значений keymap и screenmap для вашей однобайтовой кодовой таблицы через /stand/sysinstall. В sysinstall выберите Configure, затем Console. Или добавьте следующие строки в /etc/rc.conf: scrnmap=screenmap_name keymap=keymap_name keychange="fkey_number sequence" screenmap_name берется из каталога /usr/share/syscons/scrnmaps, без суффикса .scm. Screenmap с соответствующим шрифтом обычно используется в качестве обходного пути для расширения 8 бит до 9 бит в псевдографическую область VGA адаптера, например для удаления букв из этой области если используется 8-битный шрифт. Если даемон мыши moused включен добавлением в /etc/rc.conf следующей строки: moused_enable="YES" прочтите информацию о курсоре мыши в следующем параграфе. moused По умолчанию драйвер &man.syscons.4; выделяет для курсора мыши в таблице символов диапазон 0xd0-0xd3. Если в вашем языке используется этот диапазон, переместите этот диапазон. В FreeBSD версий до 5.0, добавьте следующую строку в файл конфигурации ядра: options SC_MOUSE_CHAR=0x03 Для FreeBSD версий 4.4 и выше включите следующую строку в /etc/rc.conf: mousechar_start=3 keymap_name берется из каталога /usr/share/syscons/keymaps, без расширения .kbd. Если вы не знаете какую таблицу использовать, запустите &man.kbdmap.1; для тестирования таблицы без перезагрузки. keychange обычно требуется для сопоставления функциональных клавиш выбранному типу терминала, поскольку последовательности функциональных клавиш не могут быть определены в раскладке клавиатуры. Убедитесь также, что для всех записей ttyv* в /etc/ttys установлен подходящий тип терминала. Имеющиеся типы соответствуют следующим кодировкам: Кодовая таблица Тип терминала ISO-8859-1 or ISO-8859-15 cons25l1 ISO-8859-2 cons25l2 ISO-8859-7 cons25l7 KOI8-R cons25r KOI8-U cons25u CP437 (VGA default) cons25 US-ASCII cons25w Для расширенных кодировок, а также для многобайтовых кодировок, используйте порт FreeBSD из каталога /usr/ports/language. Некоторые порты выводят информацию на консоль, хотя для системы выглядят как последовательные псевдотерминалы, следовательно вы должны зарезервировать достаточное количество псевдотерминалов и для X11 и для последовательных псевдоконсолей. Вот неполный список приложений для использования этих кодировок в консоли: Язык Приложение Традиционный китайский (BIG-5) chinese/big5con Японский japanese/kon2-16dot или japanese/mule-freewnn Корейский korean/han Настройка X11 Хотя X11 не является частью проекта FreeBSD, мы включили сюда некоторую информацию для пользователей FreeBSD. За детальной информацией обращайтесь к Веб сайту &xfree86; или к сайту того сервера X11, который вы используете. В ~/.Xresources, вы можете внести дополнительные I18N настройки приложений (настройки шрифтов, меню и т.п.). Отображение шрифтов X11 True Type font server - Установите сервер X11 &truetype; Common - (x11-servers/XttXF86srv-common) - и &truetype; шрифты для используемого языка. После установки корректного + Установите сервер &xorg; + (x11-servers/xorg-server) + или &xfree86; + (x11-servers/XFree86-4-Server), + затем &truetype; шрифты для используемого языка. + После установки корректного значения locale меню, сообщения и т.д. должны появиться на соответствующем языке. Ввод не-англоязычных символов X11 Input Method (XIM) Протокол X11 Input Method (XIM) это новый стандарт для всех клиентов X11. Все приложения X11 должны быть написаны как XIM клиенты, получающие ввод с серверов XIM Input. Существует несколько XIM серверов, доступных для различных языков. Настройка принтера Некоторые однобайтовые кодовые таблицы обычно поддерживаются принтерами на аппаратном уровне. Расширенные, или мультибайтовые кодовые таблицы требуют дополнительной настройки. Мы рекомендуем использование apsfilter. Кроме того, вы можете преобразовать документ в формат &postscript; или PDF с помощью поддерживающих соответствующий язык программ. Ядро и файловые системы Файловая система FreeBSD (fast filesystem, FFS) поддерживает 8-битные символы, ее можно использовать с любой односимвольной кодовой таблицей (см. &man.multibyte.3;), но кодовые таблицы не хранятся в файловой системе; т.е. ей ничего не известно о порядке расположения символов в кодовой таблице. Официально FFS пока не поддерживает расширенные или много символьные кодовые таблицы. Однако, для некоторых расширенных или многобайтовых кодировок есть неофициальные патчи, включающие их поддержку в FFS. Это всего лишь временные не переносимые решения или исправления кода и мы решили не включать их в дерево исходных текстов. Обращайтесь к сайтам по соответствующим языкам за дальнейшей информацией и патчами. DOS Unicode Файловая система &ms-dos; в FreeBSD может быть настроена для поддержки перекодировки между &ms-dos;, кодовыми таблицами Unicode и выбранной кодовой таблицей FreeBSD. Обращайтесь к &man.mount.msdos.8; за подробностями. Компиляция I18N программ Многие порты FreeBSD были созданы с поддержкой I18N. Некоторые из них помечены символами -I18N в имени порта. Эти и многие другие программы имеют встроенную поддержку I18N и не нуждаются в специальной настройке. MySQL Однако, некоторые приложения, такие как MySQL, требуют указания кодировки в Makefile. Это обычно делается правкой Makefile или передачей параметров configure при сборке из исходных текстов. Локализация FreeBSD для поддержки определенных языков Andrey A. Chernov Первоначально предоставил Русский язык (кодировка KOI8-R) localization Russian За дополнительной информацией о кодировке KOI8-R, обращайтесь к странице KOI8-R References (Russian Net Character Set). Настройка локализации Поместите в ~/.login_conf следующие строки: me:My Account:\ :charset=KOI8-R:\ :lang=ru_RU.KOI8-R: Обратитесь к вышеизложенному материалу этой главы за соответствующей информацией. Настройка консоли Для FreeBSD версий до 5.0 добавьте к файлу настройки ядра следующую строку: options SC_MOUSE_CHAR=0x03 Для FreeBSD версий 4.4 и выше вставьте следующую строку в /etc/rc.conf: mousechar_start=3 Используйте в /etc/rc.conf такие настройки: keymap="ru.koi8-r" scrnmap="koi8-r2cp866" font8x16="cp866b-8x16" font8x14="cp866-8x14" font8x8="cp866-8x8" Для каждого устройства ttyv* в файле /etc/ttys, используйте cons25r в качестве типа терминала. Обратитесь к вышеизложенному материалу этой главы за примерами настройки консоли. Настройка принтера принтеры Большинство принтеров для России поставляются с аппаратной кодовой страницей CP866, требуется специальный выходной фильтр для перекодировки из KOI8-R в CP866. Такой фильтр устанавливается по умолчанию в /usr/libexec/lpr/ru/koi2alt. Запись для принтера в /etc/printcap должна выглядеть приблизительно так: lp|Russian local line printer:\ :sh:of=/usr/libexec/lpr/ru/koi2alt:\ :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs: Обратитесь к &man.printcap.5; за подробным описанием. &ms-dos; FS и русские имена файлов Следующий пример записи в &man.fstab.5; включает поддержку русских имен файлов при монтировании файловых систем &ms-dos;: /dev/ad0s2 /dos/c msdos rw,-Wkoi2dos,-Lru_RU.KOI8-R 0 0 Параметр выбирает имя используемой локализации, а параметр задает таблицу перекодировки. При использовании параметра убедитесь, что раздел /usr смонтирован перед разделом &ms-dos;, поскольку таблицы перекодировки расположены в каталоге /usr/libdata/msdosfs. За более подробной информацией обращайтесь к странице справочника &man.mount.msdos.8;. Настройка X11 Выполните сначала не-X настройку локализации. Локализация KOI8-R может не работать со старыми релизами &xfree86; (ниже 3.3). На настоящий момент в FreeBSD в качестве системы X Window по умолчанию используется &xfree86; 4.X. Поэтому если только вы не используете старые версии FreeBSD, это не должно стать проблемой. Зайдите в каталог russian/X.language и выполните следующую команду: &prompt.root; make install Вышеуказанный порт установит последнюю версию KOI8-R шрифтов. В &xfree86; 3.3 уже есть некоторые KOI8-R шрифты, но эти масштабируются лучше. Проверьте раздел "Files" в файле /etc/XF86Config. Следующие строки должны быть добавлены перед всеми записями FontPath: FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/misc" FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi" FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/100dpi" Если вы используете видеорежим с высоким разрешением, поменяйте местами строки для 75 dpi и 100 dpi. Для настройки ввода на русском языке, добавьте нижеприведенные строки в раздел "Keyboard" файла XF86Config. Для &xfree86; 3.X: XkbLayout "ru" XkbOptions "grp:caps_toggle" Для &xfree86; 4.X: Option "XkbLayout" "ru" Option "XkbOptions" "grp:caps_toggle" Убедитесь, что XkbDisable отключен (закомментирован) в этом разделе. Переключателем RUS/LAT служит CapsLock. Прежняя функция CapsLock все еще доступна в комбинации ShiftCapsLock (только в режиме LAT). Если на вашей клавиатуре есть клавиши &windows;, и некоторые не-алфавитные клавиши работают неправильно в режиме RUS, добавьте следующую строку в файл XF86Config. Для &xfree86; 3.X: XkbVariant "winkeys" Для &xfree86; 4.X: Option "XkbVariant" "winkeys" Ввод на русском языке может может не работать со старыми версиями &xfree86;, прочтите предупреждение выше с более подробной информацией. Ввод на русском языке может также не работать с нелокализованными приложениями. Минимально локализованные приложения должны вызывать функцию XtSetLanguageProc (NULL, NULL, NULL); в начале программы. Обратитесь к KOI8-R for X Window за дальнейшими инструкциями по локализации приложений X11. Локализация на традиционном китайском для Тайваня локализация традиционный китайский У проекта FreeBSD-Taiwan есть Chinese HOWTO для FreeBSD по адресу , в котором используются многие порты на китайском. На данный момент редактором FreeBSD Chinese HOWTO является Shen Chuan-Hsing statue@freebsd.sinica.edu.tw. Chuan-Hsing Shen statue@freebsd.sinica.edu.tw создал Chinese FreeBSD Collection (CFC), используя FreeBSD-Taiwan zh-L10N-tut. Пакеты и скрипты доступны по адресу . Локализация на немецкий язык (для всех ISO 8859-1 языков) локализация немецкий Slaven Rezic eserte@cs.tu-berlin.de написал учебник по использованию umlauts в FreeBSD. Учебник написан на немецком и доступен по адресу . Локализация на японский и корейский языки локализация японский локализация корейский За информацией по японской локализации, обратитесь к , а за информацией о корейской локализацией к . Не-англоязычная документация FreeBSD Отдельные контрибьюторы FreeBSD перевели части документации FreeBSD на другие языки. Эти переводы доступны на основном сайте или из каталога /usr/share/doc. + + diff --git a/ru_RU.KOI8-R/books/handbook/mirrors/chapter.sgml b/ru_RU.KOI8-R/books/handbook/mirrors/chapter.sgml index 2d9aa10955..d9661dcf5e 100644 --- a/ru_RU.KOI8-R/books/handbook/mirrors/chapter.sgml +++ b/ru_RU.KOI8-R/books/handbook/mirrors/chapter.sgml @@ -1,2852 +1,2870 @@ Денис Пеплин Перевод на русский язык: Получение FreeBSD Издатели CDROM и DVD Коробочная версия FreeBSD доступна в коробочной версии (FreeBSD CD диски, дополнительное программное обеспечение, печатная документация) от нескольких поставщиков:
CompUSA WWW:
Frys Electronics WWW:
Наборы CD и DVD Наборы FreeBSD CD и DVD доступны у множества онлайн поставщиков: -
+
+ BSD Mall (подразделение Daemon News) + PO Box 161 + Nauvoo, IL 62354 + USA + Телефон: +1 866 273-6255 + Факс: +1 217 453-9956 + Email: sales@bsdmall.com + WWW: +
+ + + +
BSD-Systems Email: info@bsd-systems.co.uk WWW:
- Daemon News Mall - 560 South State Street, Suite A2 - Orem, UT 84058 - США - Телефон: +1 800 407-5170 - Факс: +1 1 801 765-0877 - Email: sales@bsdmall.com - WWW: + fastdiscs.com + 6 Eltham Close + Leeds, LS6 2TY + United Kingdom + Телефон: +44 870 1995 171 + Email: sales@fastdiscs.com + WWW:
FreeBSD Mall, Inc. 3623 Sanford Street Concord, CA 94520-1405 США Телефон: +1 925 674-0783 Факс: +1 925 674-0821 Email: info@freebsdmall.com WWW:
FreeBSD Services Ltd 11 Lapwing Close Bicester OX26 6XR Великобритания WWW:
Hinner EDV St. Augustinus-Str. 10 D-81825 München Германия Телефон: (089) 428 419 WWW:
Ikarios 22-24 rue Voltaire 92000 Nanterre Франция WWW:
Ingram Micro 1600 E. St. Andrew Place Santa Ana, CA 92705-4926 США Телефон: 1 (800) 456-8000 WWW:
JMC Software Ирландия Телефон: 353 1 6291282 WWW:
The Linux Emporium Hilliard House, Lester Way Wallingford OX10 9TA Великобритания Телефон: +44 1491 837010 Факс: +44 1491 837016 WWW:
Linux System Labs Australia 21 Ray Drive Balwyn North VIC - 3104 Австралия Телефон: +61 3 9857 5918 Факс: +61 3 9857 8974 WWW:
LinuxCenter.Ru ул. Галерная, 55 Санкт-Петербург 190000 Россия Телефон: +7-812-3125208 Email: info@linuxcenter.ru WWW:
UNIXDVD.COM LTD 57 Primrose Avenue Sheffield S5 6FS Великобритания WWW:
Распространители Если вы продавец и хотите заниматься FreeBSD CDROM, пожалуйста свяжитесь с распространителем:
Cylogistics - 2672 Bayshore Parkway, Suite 610 - Mountain View, CA 94043 + 809B Cuesta Dr., #2149 + Mountain View, CA 94040 США Телефон: +1 650 694-4949 Факс: +1 650 694-4953 Email: sales@cylogistics.com WWW:
FreeBSD Services Ltd 11 Lapwing Close Bicester OX26 6XR Великобритания WWW:
Kudzu, LLC 7375 Washington Ave. S. Edina, MN 55439 США Телефон: +1 952 947-0822 Факс: +1 952 947-0876 Email: sales@kudzuenterprises.com
LinuxCenter.Ru ул. Галерная, 55 Санкт-Петербург 190000 Россия Телефон: +7-812-3125208 Email: info@linuxcenter.ru WWW:
Navarre Corp 7400 49th Ave South New Hope, MN 55428 США Телефон: +1 763 535-8333 Факс: +1 763 535-0341 WWW:
FTP сайты Официальным источником FreeBSD являются анонимные FTP зеркала по всему миру. Сайт имеет хорошее подключение и поддерживает большое количество одновременных соединений, но для вас возможно потребуется найти ближайшее зеркало (особенно если вы решили настроить у себя какой-то из видов зеркал). База данных зеркал FreeBSD предпочтительнее по сравнению со списком зеркал в Руководстве, поскольку информация в базе собирается из DNS, а не из статического списка узлов. Кроме того, FreeBSD доступна через анонимный FTP со следующих зеркал. Если вы выбрали получение FreeBSD через анонимный FTP, пожалуйста выберите ближайший к вам сайт. Зеркала из списка Основных зеркал обычно содержат полный архив FreeBSD (все доступные на данный момент версии для каждой архитектуры), скорость загрузки возможно будет больше с зеркала, расположенного в вашей стране или регионе. Сайты каждой страны содержат последнюю версию для наиболее популярных архитектур, но на них может не быть полного архива FreeBSD. Все сайты предоставляют доступ через анонимный FTP, а некоторые предоставляют доступ и другими методами. Для каждого сайта приведен список методов доступа в скобках после имени хоста. &chap.mirrors.ftp.inc; Анонимный CVS <anchor id="anoncvs-intro">Введение Анонимный CVS (известный также как, anoncvs) это возможность, предоставляемая утилитами CVS, поставляемыми с FreeBSD для синхронизации с удаленным CVS репозиторием. Помимо прочего, он позволяет пользователям FreeBSD без специальных привилегий (с правами только на чтение) выполнять CVS операции на одном из официальных anoncvs серверов проекта FreeBSD. Для использования этой возможности, просто установите переменную CVSROOT на соответствующий сервер anoncvs, введите общеизвестный пароль anoncvs в ответ на приглашение команды cvs login, а затем используйте &man.cvs.1; для доступа к репозиторию как к обычному локальному CVS. Команда cvs login сохраняет пароли, использованные для авторизации на сервере CVS в файле с именем .cvspass в каталоге HOME. Если этот файл не существует, вы можете получить сообщение об ошибке при первом запуске cvs login. Просто создайте пустой файл .cvspass и попробуйте еще раз. Хотя можно сказать, что сервисы CVSup и anoncvs выполняют в сущности похожие функции, есть несколько отличий, которые могут повлиять на выбор метода синхронизации. По своей сути, CVSup гораздо более эффективно использует сетевые ресурсы, и из двух этих программ он более интеллектуален, но за его эффективность приходится платить. Во-первых, для того, чтобы появилась возможность хоть что-то получить этим методом, CVSup потребуется установить и настроить специальную программу, а во-вторых, этот CVSup позволяет синхронизацию только довольно больших частей исходных текстов, называемых коллекциями. Anoncvs напротив может использоваться для получения как одного файла, так и всей программы (например ls или grep), с помощью ссылки на имя модуля CVS. Конечно, anoncvs хорошо подходит только при операциях на чтение CVS репозитория, поэтому если вы намереваетесь производить локальную разработку в одном из репозиториев проекта FreeBSD, вам подойдет только CVSup. <anchor id="anoncvs-usage">Использование анонимного CVS Настройка &man.cvs.1; для использования анонимного CVS репозитория означает установку переменной окружения CVSROOT на один из anoncvs серверов проекта FreeBSD. На момент написания этого документа доступны следующие сервера: Австрия: :pserver:anoncvs@anoncvs.at.FreeBSD.org:/home/ncvs (Используйте cvs login и введите любой пароль в ответ на приглашение.) Франция: :pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs (pserver (пароль anoncvs), ssh (нет пароля)) Германия: :pserver:anoncvs@anoncvs.de.FreeBSD.org:/home/ncvs (Используйте cvs login и введите пароль anoncvs в ответ на приглашение.) Германия: :pserver:anoncvs@anoncvs2.de.FreeBSD.org:/home/ncvs (rsh, pserver, ssh, ssh/2022) Япония: :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs (Используйте cvs login и введите пароль anoncvs в ответ на приглашение.) Швеция: freebsdanoncvs@anoncvs.se.FreeBSD.org:/home/ncvs (только ssh - без пароля) США: freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs (только ssh - без пароля) США: anoncvs@anoncvs1.FreeBSD.org:/home/ncvs (только ssh - без пароля) Поскольку CVS позволяет выполнить check out практически любой версии исходных текстов FreeBSD, которые когда-либо существовали (или, в некоторых случаях, будут существовать), вам необходимо познакомиться с флагом &man.cvs.1; для ревизий () и с параметрами, которые могут быть использованы с этим флагом в репозитории проекта FreeBSD. Есть два вида тегов, теги ревизий и теги ветвей. Теги ревизий отвечают за определенную ревизию. Их значение остается прежним изо дня в день. Теги ветвей сопоставляются последней ревизии определенной ветви разработки, в любой момент времени. Поскольку теги ветвей не сопоставлены какой-то определенной ревизии, завтра они могут означать совсем не то, что сегодня. содержит теги ревизий, которые могут заинтересовать пользователей. Опять же, ни один из них не подходит для коллекции портов, поскольку в коллекции портов нет разнообразия ревизий. Если вы указываете тег ветви, то обычно получаете последнюю версию файлов этой ветви разработки. Если вы хотите получить предыдущую версию, это можно сделать путем указания даты флагом . Обратитесь к странице справочника &man.cvs.1; за более подробной информацией. Примеры Хотя перед тем, как что-то делать, рекомендуется полностью прочесть страницу справочника &man.cvs.1;, вот несколько кратких примеров использования Anonymous CVS: Извлечение кода из -CURRENT (&man.ls.1;) с последующим удалением: &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs &prompt.user; cvs login At the prompt, enter the password anoncvs. &prompt.user; cvs co ls &prompt.user; cvs release -d ls &prompt.user; cvs logout + + Использование SSH для извлечения дерева + <filename>src/</filename>: + &prompt.user; cvs -d freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs co src +The authenticity of host 'anoncvs.freebsd.org (128.46.156.46)' can't be established. +DSA key fingerprint is 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65. +Are you sure you want to continue connecting (yes/no)? yes +Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known hosts. + + Извлечение &man.ls.1; из ветви для 3.X-STABLE: &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs &prompt.user; cvs login At the prompt, enter the password anoncvs. &prompt.user; cvs co -rRELENG_3 ls &prompt.user; cvs release -d ls &prompt.user; cvs logout Создание списка изменений &man.ls.1; (в виде unified diff) &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs &prompt.user; cvs login At the prompt, enter the password anoncvs. &prompt.user; cvs rdiff -u -rRELENG_3_0_0_RELEASE -rRELENG_3_4_0_RELEASE ls &prompt.user; cvs logout Поиск доступных имен модулей: &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs &prompt.user; cvs login At the prompt, enter the password anoncvs. &prompt.user; cvs co modules &prompt.user; more modules/modules &prompt.user; cvs release -d modules &prompt.user; cvs logout Другие ресурсы В изучении CVS могут помочь следующие дополнительные ресурсы: Учебник по CVS от Cal Poly. CVS Home, сообщество разработки и поддержки CVS. CVSweb это веб интерфейс к CVS проекта FreeBSD. Использование CTM CTM это метод синхронизации удаленного дерева исходных текстов с центральным. Он был разработан для использования с деревом исходных текстов FreeBSD, хотя может быть полезен и для других целей. На данный момент существует очень немного (если она вообще существует) документации по процессу создания дельта-файлов (deltas, разница между имеющимися и актуальными исходными текстами), поэтому обратитесь в список рассылки &a.ctm-users.name; за дополнительной информацией, если захотите использовать CTM для других целей. Зачем мне может понадобиться <application>CTM</application>? CTM создаст для вас локальную копию исходных текстов FreeBSD. Существует множество разновидностей дерева исходных текстов. Захотите ли вы поддерживать все дерево CVS или только одну из ветвей, CTM может предоставить вам все необходимое. Если вы разработчик FreeBSD, но ваше соединение по TCP/IP некачественное или отсутствует, или же вы просто хотите, чтобы изменения автоматически отправлялись вам, CTM предназначен для вас. Вам потребуется получать до трех изменений в день для наиболее активных ветвей. Они будут отправляться вам по электронной почте. Размеры обновлений всегда поддерживаются настолько малыми, насколько это возможно. Они обычно меньше 5K, хотя случается (раз из десяти) достигают 10-50K и время от времени даже 100K или больше. Вам также потребуется узнать о различных особенностях работы непосредственно с исходными текстами в разработке, вместо готовых релизов. Это в частности относится к выбору исходных текстов ветви -CURRENT. Рекомендуется прочесть материал На переднем крае разработок. Что потребуется для использования <application>CTM</application>? Вам потребуются две вещи: программа CTM и исходные тексты, которые требуется обновить (до актуального состояния). Программа CTM была частью FreeBSD все время с момента выпуска релиза 2.0, она находится в каталоге /usr/src/usr.sbin/ctm, если у вас есть копия исходных текстов. Если вы работаете с версией FreeBSD до 2.0, можете получить актуальные исходные тексты CTM непосредственно с: Дельта-файлы CTM могут приходить двумя путями, через FTP или email. Если у вас есть доступ к интернет по FTP, доступ к CTM может быть получен через следующие FTP сайты: или с сайтов из списка зеркал. Зайдите по FTP в соответствующий каталог и прочтите файл README. Если вы предпочитаете получать дельта-файлы по почте: Подпишитесь на один из списков распространения CTM. &a.ctm-cvs-cur.name; поддерживает все дерево CVS. &a.ctm-src-cur.name; поддерживает главную ветвь разработки. &a.ctm-src-4.name; поддерживает ветвь 4.X, и т.д. Если вы не знаете, как подписаться на список, нажмите на ссылку выше или на ссылку &a.mailman.lists.link;, а затем на ссылку соответствующего списка. Страница списка должна содержать все необходимые инструкции по подписке. Когда вы начнете получать обновления CTM по почте, используйте программу ctm_rmail для распаковки и применения обновлений. Вы можете использовать программу ctm_rmail непосредственно из /etc/aliases, если хотите полностью автоматизировать процесс. Прочтите страницу справочника ctm_rmail с более подробной информацией. Вне зависимости от способа получения дельта-файлов CTM, вам потребуется подписка на список рассылки &a.ctm-announce.name;. В будущем этот список станет единственным местом, где будут анонсироваться операции, относящиеся к системе CTM. Нажмите на ссылку выше и следуйте инструкциям для подписки на эту рассылку. Использование <application>CTM</application> в первый раз Перед тем, как вы сможете начать использование дельта-файлов CTM, потребуется определить исходную точку для последующего их применения. Сначала потребуется определить, что уже имеется. Каждый может начать с пустого (empty) каталога. Вы должны использовать дельта-файл Empty для создания поддерживаемого CTM дерева. Планируется распространение стартовых дельта-файлов на CD, но на данный момент это не делается. Поскольку дерево исходных текстов может быть объемом в десятки мегабайт, предпочтительно начать с каких-то уже имеющихся текстов. Если у вас есть -RELEASE CD, распакуйте исходные тексты с него. Это снизит объем передаваемых данных. Вы можете распознать стартовый дельта-файл по символу X, добавляемому к номеру (например, src-cur.3210XEmpty.gz). Обозначение перед X соответствует имеющимся исходным текстам. Empty это пустой каталог. Как правило файл с Empty создается через каждые 100 дельта-файлов. Между прочем, эти файлы большие! От 70 до ;) мегабайт упакованных gzip данных это обычный размер для XEmpty. Как только вы получили основной дельта-файл, потребуются также все дельта-файлы с последующими номерами. Повседневное использование <application>CTM</application> Для применения дельта-файлов, просто выполните: &prompt.root; cd /where/ever/you/want/the/stuff &prompt.root; ctm -v -v /where/you/store/your/deltas/src-xxx.* CTM работает с дельта-файлами, упакованными с помощью gzip, поэтому вам не требуется их распаковывать. Хотя весь процесс довольно безопасен, CTM не будет изменять дерево исходных текстов. Для проверки дельта-файла вы также можете использовать флаг , CTM только проверит целостность дельта-файла а также его применимость к существующим исходным текстам. Это все. Каждый раз после получения дельта-файла, запускайте CTM для поддержания исходных текстов в актуальном состоянии. Не удаляйте дельта-файлы, если их сложно загрузить еще раз. Вы возможно захотите сохранить их на всякий случай. Если вы можете сохранить их только на дискете, используйте для создания копии fdwrite. Сохранение локальных изменений Как разработчик вы возможно захотите поэкспериментировать и изменить файлы в дереве исходных текстов. CTM имеет ограниченную поддержку локальных изменений: перед проверкой наличия файла foo, сначала проверяется foo.ctm. Если он присутствует, CTM будет работать с ним вместо foo. Такое поведение обеспечивает простой путь поддержки локальных изменений: просто скопируйте файлы, которые вы хотите изменить, в файлы с соответствующими именами и суффиксом .ctm. Вы можете свободно изменять код, а CTM будет поддерживать файлы .ctm в актуальном состоянии. Другие интересные возможности <application>CTM</application> Определение файлов, которые будут затронуты обновлением Вы можете определить список изменений, которые CTM внесет в исходные тексты, используя параметр CTM . Это полезно, если вы хотите поддерживать лог изменений, выполнить предварительную или последующую обработку изменяемых файлов, или если вы просто немного параноидальны. Создание резервных копий перед обновлением Иногда вам может понадобиться сделать резервные копии всех файлов, которые будут изменены CTM. С параметром CTM выполнит резервное копирование всех изменяемых дельта-файлом CTM файлов в backup-file. Ограничение обновлений для определенных файлов Иногда необходимо ограничить набор файлов, обновляемых CTM, или даже задать обновление нескольких определенных файлов. Вы можете управлять списком файлов, с которыми будет работать CTM, путем указания фильтрующих регулярных выражений с параметрами и . Например, для извлечения свежей копии lib/libc/Makefile из коллекции сохраненных дельта-файлов CTM, выполните команду: &prompt.root; cd /where/ever/you/want/to/extract/it/ &prompt.root; ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.* Для каждого указанного CTM дельта-файла, параметры и применяются в порядке их задания в командной строке. Файл обрабатывается CTM только если он помечается как подходящий после обработки всех параметров и . Дальнейшие планы для <application>CTM</application> Масса планов: Использовать какой-то из видов аутентификации в системе CTM, позволяющий обнаружение поддельных дат CTM. Доработать параметры CTM, поскольку они могут ввести в заблуждение. Разное Существует набор дельта-файлов и для коллекции ports, но интерес к нему пока не так высок. Зеркала CTM CTM/FreeBSD доступен через анонимный FTP с нижеприведенных зеркал. Если вы выбрали получение CTM через анонимный FTP, используйте ближайший к вам сервер. В случае возникновения проблем обратитесь в список рассылки &a.ctm-users.name;. California, Bay Area, официальный источник South Africa, резервный сервер для старых дельта-файлов Taiwan/R.O.C. Если вы не нашли ближайшего к вам зеркала, или зеркало неполно, попробуйте воспользоваться поиском, например alltheweb. Использование CVSup Введение CVSup это пакет программного обеспечения для распространения и обновления исходных текстов с основного репозитория CVS на удаленном сервере. Исходные тексты FreeBSD поддерживаются в репозитории CVS на центральной машине разработки в Калифорнии. С помощью CVSup пользователи FreeBSD легко могут поддерживать собственные исходные тексты в актуальном состоянии. CVSup использует так называемую опрашивающую (pull) модель обновления. Работая по этой модели, каждый клиент запрашивает обновления с сервера, если и когда они нужны. Сервер пассивно ожидает запросы на обновление от своих клиентов. Таким образом, все обновления инициируются клиентами. Сервер никогда не высылает не запрошенные обновления. Пользователь для получения обновлений должен либо запустить CVSup клиента вручную, либо добавить задание в cron для настройки периодических обновлений в автоматическом режиме. Термин CVSup, написанный с заглавными буквами, означает весь пакет программного обеспечения. Его основные компоненты это клиент cvsup, запускаемый на каждом пользовательском компьютере, и сервер cvsupd, работающий на каждом зеркале FreeBSD. При чтении документации FreeBSD и списков рассылки вы могли встретить указания на sup. Sup был предшественником CVSup, и выполнял похожие функции. CVSup в основном используется тем же способом, что и sup, и, фактически, использует файлы настройки, обратно совместимые с файлами sup. Sup более не используется проектом FreeBSD, поскольку CVSup и быстрее и более гибок. Установка Простейший способ установки CVSup это использование прекомпилированного пакета net/cvsup из коллекции пакетов FreeBSD. Если вы предпочтете собрать CVSup из исходных текстов, можете использовать вместо этого порт net/cvsup. Но имейте ввиду: порт net/cvsup зависит от системы Modula-3, которой потребуется существенный объем времени и пространства на диске для загрузки и установки. Если вы собираетесь использовать CVSup на компьютере, где нет установленного &xfree86; или &xorg;, например на сервере, используйте порт, не включающий CVSup GUI, net/cvsup-without-gui. Настройка CVSup Работа CVSup контролируется файлом настройки, называемым supfile. В каталоге /usr/share/examples/cvsup/ находится несколько примеров supfile. Информация в supfile отвечает на следующие вопросы CVSup: Какие файлы вы хотите получить? Какие их версии вам нужны? Откуда вы хотите их получить? Где вы хотите разместить их на своем компьютере? Где вы хотите разместить файлы статуса? В следующих разделах мы составим типичный supfile последовательным ответом на каждый из этих вопросов. Сначала опишем общую структуру supfile. supfile это текстовый файл. Комментарии, начинающиеся с #, продолжаются до конца строки. Пустые строки и строки, содержащие только комментарии, игнорируются. Каждая из оставшихся строк описывает набор файлов, получаемых пользователем. Строка начинается с имени коллекции, логического объединения файлов, определяемых сервером. Имя коллекции говорит серверу о том, какие файлы вам нужны. После имени коллекции следуют одно или больше полей, разделенных пробелом. Эти поля отвечают на вопросы, заданные выше. Есть два типа полей: флаги и значения. Поле флага состоит из одного ключевого слова, например delete или compress. Поле значения также начинается с ключевого слова, но за ним без пробела следует = и второе слово. Например, release=cvs это поле значения. supfile обычно задает получение более одной коллекции. Одним из способов построения supfile является указание всех соответствующих полей для каждой коллекции явно. Однако, это приводит к появлению слишком длинных строк в supfile и это неудобно, поскольку большинство полей одинаковы для всех коллекций supfile. CVSup предоставляет механизм задания значений по умолчанию для устранения этих проблем. Строки, начинающиеся со специального имени псевдо-коллекции *default, могут быть использованы для установки флагов и значений, которые послужат значениями по умолчанию для всех последующих коллекций supfile. Значение по умолчанию может быть перезаписано для каждой отдельной коллекции путем указания другого значения в ее собственных параметрах. Значения по умолчанию также могут быть изменены или расширены в любом месте supfile дополнительными строками *default. Получив эту информацию, мы начнем строить supfile для получения и обновления главного дерева исходных текстов FreeBSD-CURRENT. Какие файлы вы хотите получить? Файлы, доступные через CVSup, организованы в именованные группы, называемые коллекциями. Доступные коллекции описаны в следующем разделе. В этом примере мы получим все дерево исходных текстов системы FreeBSD. Существует одиночная большая коллекция src-all, которая позволит нам сделать это. В качестве первого шага по созданию supfile, добавим список коллекций, по одной на строку (в нашем случае, только одну строку): src-all Какие их версии вам нужны? С CVSup вы в принципе можете получить любую версию исходных текстов, которая когда-либо существовала. Это возможно, поскольку cvsupd сервер работает непосредственно с репозиторием CVS, который содержит все версии. Вы указываете ту, которая вам нужна, с помощью полей tag= и . Будьте очень осторожны при задании любых полей tag=. Некоторые теги существуют только в определенных коллекциях файлов. Если вы укажете некорректный тег или ошибетесь в его написании, CVSup удалит файлы, которые вы возможно не хотели удалять. В частности, используйте только tag=. для коллекций ports-*. Поля tag= означают символьные имена в репозитории. Существует два вида тегов, теги ревизий и теги ветвей. Теги ревизий означают определенную ревизию. Они не меняются со временем. Теги ветвей, с другой стороны, означают последнюю ревизию заданной линии разработки в любой момент времени. Поскольку тег ветви не относится к определенной ревизии, он может означать завтра что-то иное чем сегодня. содержит теги ветвей, которые могут быть интересны пользователям. Тег, указанный в файле настройки CVSup, должен предваряться строкой tag= (RELENG_4 превратится в tag=RELENG_4). Помните, что для коллекции портов подходит только tag=.. Будьте очень осторожны при наборе имен тегов. CVSup не может отличить правильные и неправильные теги. Если вы неправильно наберете тег, CVSup поведет себя так, как если бы вы указали тег, не содержащий файлов. В этом случае он удалит существующие исходные тексты. При указании тега ветви вы получите последние версии файлов этой ветви разработки. Если вы хотите получить какую-то из предыдущих версий, сделайте это указав дату в поле значения . Страница справочника &man.cvsup.1; описывает как сделать это. В нашем примере мы хотим получить FreeBSD-CURRENT. Мы добавим эту строку в начало supfile: *default tag=. Существует важный специальный случай, когда не задаются ни поле tag=, ни поле date=. В этом случае вы получите последние версии RCS файлов непосредственно из CVS репозитория сервера вместо получения определенной версии. Разработчики обычно предпочитают этот способ. Поддерживая копию репозитория в своей системе, они получают возможность просмотра истории ревизий и проверки последних версий файлов. Однако это достигается ценой большего занимаемого дискового пространства. Откуда вы хотите их получить? Мы используем поле host= для сообщения cvsup откуда забирать обновления. Подойдет любое из CVSup зеркал, хотя вы должны попробовать выбрать ближайшее к вам зеркало. В этом примере мы используем не существующий сервер, cvsup99.FreeBSD.org: *default host=cvsup99.FreeBSD.org Вам потребуется подставить адрес одного из существующих хостов перед запуском CVSup. При каждом запуске cvsup, вы можете перезаписать настройку хоста из командной строки, используя параметр . Где вы хотите разместить их на своем компьютере? Поле prefix= указывает cvsup где размещать получаемые файлы. В этом примере, мы поместим файлы непосредственно в главное дерево исходных текстов, /usr/src. Каталог src уже подразумевается в коллекциях, которые мы собираемся получить, поэтому корректное указание таково: *default prefix=/usr Где вы хотите разместить файлы статуса cvsup? Клиент CVSup поддерживает определенные файлы статуса в так называемом base каталоге. Эти файлы помогают CVSup работать более эффективно путем поддержки истории уже полученных обновлений. Мы будем использовать стандартный каталог base, /var/db: *default base=/var/db - Этот каталог используется по умолчанию, если иное не указано - в supfile, поэтому на самом деле строка - выше не нужна. - Если base каталог не существует, теперь подходящий момент для его создания. Клиент cvsup не запустится, если base каталог не существует. Различные настройки supfile: Существует еще одна строка, которая обычно должна присутствовать в supfile: *default release=cvs delete use-rel-suffix compress release=cvs означает, что сервер должен получать информацию из главного репозитория FreeBSD CVS. Это обычно всегда так, но существуют несколько иных вариантов, изложение которых выходит за пределы этой главы. delete дает CVSup возможность удалять файлы. Вы должны всегда указывать этот параметр, чтобы CVSup мог поддерживать дерево исходных текстов полностью актуальным. CVSup удалит только те файлы, за которые отвечает. Все другие файлы останутся нетронутыми. use-rel-suffix это ... мистика. Если вы действительно хотите узнать о нем, обратитесь к странице справочника &man.cvsup.1;. Иначе просто укажите это поле и не беспокойтесь о нем больше. compress включает использование gzip сжатия при передаче данных. Если ваше сетевое подключение работает со скоростью T1 или быстрее, вам возможно не потребуется использование сжатия. Иначе оно обычно помогает. Все это вместе: Вот полный supfile для нашего примера: *default tag=. *default host=cvsup99.FreeBSD.org *default prefix=/usr *default base=/var/db *default release=cvs delete use-rel-suffix compress src-all Файл <filename>refuse</filename> Как упомянуто выше, CVSup использует метод опроса. В основном это означает, что вы подключаетесь к CVSup серверу, и он говорит Вот то, что вы можете загрузить с меня..., и клиент отвечает OK, я возьму это, это и это. С настройкой по умолчанию CVSup клиент заберет каждый файл, связанный с коллекцией и тегом, выбранным в файле настройки. Однако, это не всегда то, что вам нужно, особенно если вы синхронизируете деревья doc, ports, или www — большинство людей не могут читать на пяти или четырех языках, и следовательно им не требуются локализованные файлы. Если вы обновляете коллекцию портов, это можно обойти путем индивидуального указания каждой коллекции (например, ports-astrology, ports-biology и т.д. вместо коллекции ports-all). Однако, поскольку для деревьев doc и www нет специфичных для языка коллекций, используйте одну из замечательных возможностей CVSup: файл refuse. Файл refuse говорит CVSup, что он не должен забирать каждый файл из коллекции; другими словами, он говорит клиенту отказаться (refuse) от получения с сервера определенных файлов. Файл refuse можно найти (или, если у вас его еще нет, должен быть помещен) в base/sup/. base определен в файле - supfile; по умолчанию, + supfile; наше стандартное расположение base это /var/db, что означает, что по умолчанию файл refuse это /var/db/sup/refuse. Формат файла refuse очень прост; он содержит имена файлов или каталогов, которые вы не хотите загружать. Например, если вы не можете разговаривать ни на каком языке кроме английского и русского, и вы не хотите использовать русскоязычные приложения (или приложения на любом другом языке кроме английского), поместите следующие строки в файл refuse: ports/arabic ports/chinese ports/french ports/german ports/hebrew ports/hungarian ports/japanese ports/korean ports/polish ports/portuguese ports/russian ports/ukrainian ports/vietnamese doc/da_* doc/de_* doc/el_* doc/es_* doc/fr_* doc/it_* doc/ja_* doc/nl_* doc/no_* doc/pl_* doc/pt_* doc/sr_* doc/zh_* и так далее для других языков (полный список находится на странице FreeBSD CVS репозитория). С этой очень полезной возможностью пользователи с низкоскоростным подключением или с поминутной платой за подключение смогут сохранить время, поскольку им более не потребуется загружать файлы, которые они никогда не будут использовать. За более подробной информацией о файлах refuse и замечательных возможностях CVSup, обратитесь к его справочной странице. Запуск <application>CVSup</application> Теперь вы готовы к тестированию обновления. Командная строка для этого очень проста: &prompt.root; cvsup supfile где supfile это конечно имя supfile, который только что был создан. При запуске под X11, cvsup отобразит GUI интерфейс с несколькими полезными кнопками. Нажмите кнопку go и смотрите за его работой. Поскольку в этом примере обновляется существующее дерево /usr/src вам потребуется, запуск программы из под root, чтобы у cvsup были права, необходимые для обновления файлов. Если файл настройки только что создан, и эта программа раньше никогда не использовалась, это может действовать вам на нервы. Есть простой способ для пробного запуска без затрагивания ваших драгоценных файлов. Просто создайте где-нибудь пустой каталог и поместите его в качестве дополнительного аргумента командной строки: &prompt.root; mkdir /var/tmp/dest &prompt.root; cvsup supfile /var/tmp/dest Указанный каталог будет использоваться в качестве места назначения всех обновлений. CVSup будет работать с файлами из /usr/src, но не станет изменять или удалять их. Вместо этого все обновления файлов будут помещены в /var/tmp/dest/usr/src. При запуске таким способом CVSup оставит также неприкосновенным каталог base. Новые версии этих файлов будут записаны в указанный каталог. Если у вас есть права на чтение каталога /usr/src, вам даже не потребуется работать под root для выполнения пробного обновления. Если вы не работаете с X11 или просто не любите GUI, добавьте набор параметров командной строки при запуске cvsup: &prompt.root; cvsup -g -L 2 supfile Параметр указывает CVSup не использовать GUI. Он действует автоматически, если вы не работаете под X11, но иначе вам потребуется его указать. Параметр указывает CVSup выводить информацию о каждом производимом обновлении. Есть три уровня протоколирования, от до . Уровень по умолчанию 0, что означает полное отсутствие сообщений, за исключением сообщений об ошибках. Доступно множество других параметров. Для получения их краткого списка, наберите cvsup -H. За более подробным описанием обратитесь к странице справочника. После проверки работоспособности обновлений вы можете организовать регулярные запуски CVSup с помощью &man.cron.8;. Очевидно, вы не должны позволять CVSup использовать GUI при запуске из &man.cron.8;. Коллекции файлов <application>CVSup</application> Коллекции файлов, доступные через CVSup, организованы иерархически. Существует несколько больших коллекций, и они разделены на несколько меньших под-коллекций. Получение большой коллекции эквивалентно получению каждой из ее подколлекции. Иерархические отношения между коллекциями отражаются путем использования отступов в списке ниже. Наиболее используемые коллекции это src-all, и ports-all. Другие коллекции используются небольшими группами людей для специальных целей и некоторые сайты зеркал могут не содержать их все. cvs-all release=cvs Главный FreeBSD CVS репозиторий, включающий криптографический код. distrib release=cvs Файлы, относящиеся к распространению и зеркалированию FreeBSD. doc-all release=cvs Исходные тексты Руководства FreeBSD и другой документации. Они не включают файлы веб-сайта FreeBSD. ports-all release=cvs Коллекция портов FreeBSD. Если вы не хотите обновлять всю коллекцию ports-all (все дерево портов), а только одну из подколлекций, перечисленных ниже, убедитесь, что вы каждый раз обновляете подколлекцию ports-base! При любых изменениях в инфраструктуре сборки портов подколлекции ports-base, они могут быть использованы настоящими портами довольно скоро. Таким образом, если вы обновляете только настоящие порты и они используют некоторые новые возможности, есть большой шанс того, что их сборка прервется с непонятным сообщением об ошибке. Самое первое, что вы должны сделать, это убедиться, что подколлекция ports-base обновлена. ports-archivers release=cvs Архиваторы. ports-astro release=cvs Порты для астрономии. ports-audio release=cvs Поддержка звука. ports-base release=cvs Инфраструктура сборки портов - различные файлы, расположенные в подкаталогах Mk/ и Tools/ каталога /usr/ports. Пожалуйста, прочтите важное предупреждение выше: вы должны всегда обновлять эту подколлекцию, при каждом обновлении любой части коллекции портов FreeBSD! ports-benchmarks release=cvs Измерение производительности. ports-biology release=cvs Программы для биологии. ports-cad release=cvs Инструменты САПР. ports-chinese release=cvs Поддержка китайского языка. ports-comms release=cvs Коммуникационные программы. ports-converters release=cvs Преобразование кодировок. ports-databases release=cvs Базы данных. ports-deskutils release=cvs Вещи, использовавшиеся на рабочем столе до изобретения компьютеров. ports-devel release=cvs Утилиты разработки. ports-dns release=cvs Программы, имеющие отношение к DNS. ports-editors release=cvs Редакторы. ports-emulators release=cvs Эмуляторы других операционных систем. ports-finance release=cvs Финансовые, расчетные и связанные с ними приложения. ports-ftp release=cvs Клиентские и серверные утилиты FTP. ports-games release=cvs Игры. ports-german release=cvs Поддержка немецкого языка. ports-graphics release=cvs Графические утилиты. ports-hungarian release=cvs Поддержка венгерского языка. ports-irc release=cvs IRC утилиты. ports-japanese release=cvs Поддержка японского языка. ports-java release=cvs &java; утилиты. ports-korean release=cvs Поддержка корейского языка. ports-lang release=cvs Языки программирования. ports-mail release=cvs Почтовое программное обеспечение. ports-math release=cvs Математические программы. ports-mbone release=cvs Приложения MBone. ports-misc release=cvs Различные утилиты. ports-multimedia release=cvs Мультимедийное программное обеспечение. ports-net release=cvs Сетевое программное обеспечение. ports-news release=cvs Программное обеспечение новостей USENET. ports-palm release=cvs Программная поддержка для Palm. ports-polish release=cvs Поддержка польского языка. ports-portuguese release=cvs Поддержка португальского языка. ports-print release=cvs Программы печати. ports-russian release=cvs Поддержка русского языка. ports-security release=cvs Утилиты безопасности. ports-shells release=cvs Оболочки командной строки. ports-sysutils release=cvs Системные утилиты. ports-textproc release=cvs Утилиты обработки текста (не включают настольные утилиты публикации). ports-vietnamese release=cvs Поддержка вьетнамского языка. ports-www release=cvs Программы, относящиеся к World Wide Web. ports-x11 release=cvs Порты с поддержкой X window system. ports-x11-clocks release=cvs Часы X11. ports-x11-fm release=cvs Файловые менеджеры X11. ports-x11-fonts release=cvs Шрифты и шрифтовые утилиты X11. ports-x11-toolkits release=cvs Пакеты разработки приложений для X11. ports-x11-servers Серверы X11. ports-x11-wm Оконные менеджеры X11. src-all release=cvs Основные исходные тексты FreeBSD, включая криптографический код. src-base release=cvs Различные файлы непосредственно из /usr/src. src-bin release=cvs Утилиты, которые могут потребоваться в однопользовательском режиме (/usr/src/bin). src-contrib release=cvs Утилиты и библиотеки, заимствованные проектом FreeBSD, используются почти без модификаций (/usr/src/contrib). src-crypto release=cvs Криптографические утилиты и библиотеки, заимствованные проектом FreeBSD, используются почти без модификаций (/usr/src/crypto). src-eBones release=cvs Kerberos и DES (/usr/src/eBones). Не используются в текущих релизах FreeBSD. src-etc release=cvs Файлы настройки системы (/usr/src/etc). src-games release=cvs Игры (/usr/src/games). src-gnu release=cvs Утилиты, попадающие под GNU Public License (/usr/src/gnu). src-include release=cvs Файлы заголовков (/usr/src/include). src-kerberos5 release=cvs Пакет безопасности Kerberos5 (/usr/src/kerberos5). src-kerberosIV release=cvs Пакет безопасности KerberosIV (/usr/src/kerberosIV). src-lib release=cvs Библиотеки (/usr/src/lib). src-libexec release=cvs Системные программы, обычно выполняемые другими программами (/usr/src/libexec). src-release release=cvs Файлы, необходимые для производства релизов FreeBSD (/usr/src/release). src-sbin release=cvs Системные утилиты для однопользовательского режима (/usr/src/sbin). src-secure release=cvs Криптографические библиотеки и команды (/usr/src/secure). src-share release=cvs Файлы, которые могут быть использованы несколькими системами (/usr/src/share). src-sys release=cvs Ядро (/usr/src/sys). src-sys-crypto release=cvs Криптографический код ядра (/usr/src/sys/crypto). src-tools release=cvs Различные инструменты для поддержки FreeBSD (/usr/src/tools). src-usrbin release=cvs Пользовательские утилиты (/usr/src/usr.bin). src-usrsbin release=cvs Системные утилиты (/usr/src/usr.sbin). www release=cvs Исходные тексты www сайта FreeBSD. distrib release=self Собственные файлы настройки сервера CVSup. Используются зеркалами CVSup. gnats release=current База данных отслеживания ошибок GNATS. mail-archive release=current Архив списков рассылки FreeBSD. www release=current Файлы предобработки WWW сайта FreeBSD (не исходные файлы). Используются зеркалами WWW. Дальнейшая информация CVSup FAQ и другая информация о CVSup находится на Домашней странице CVSup. Большая часть связанных с FreeBSD обсуждений CVSup проводилась в списке рассылки &a.hackers.name;. Новые версии программного обеспечения анонсируются здесь и в списке рассылки &a.announce.name;. Вопросы и сообщения об ошибках адресуйте автору программы cvsup-bugs@polstra.com. Зеркала CVSup CVSup серверы для FreeBSD работают на следующих сайтах: &chap.mirrors.cvsup.inc; Теги CVS При получении или обновлении исходных текстов с использованием cvs или CVSup должен быть указан тег ревизии Тег относится либо к определенной линии разработки &os; либо к определенному моменту времени. Первый тип называется тегом ветви, второй тип называется тегом релиза. Теги ветвей Все они, за исключением HEAD (который всегда работает), относятся только к дереву src/. Деревья ports/, doc/ и www/ не имеют тегов ветвей. HEAD Символическое имя для основной ветви разработки, FreeBSD-CURRENT. Используется по умолчанию, если тег не указан. В CVSup, этот тег представлен символом . (не знак пунктуации, а символ .). В CVS тег по умолчанию используется, если тег не указан вообще. Обычно не очень хорошей идеей является обновление до CURRENT на машине со STABLE, только если вы не стремитесь именно к этому. RELENG_5 - Ветвь разработки FreeBSD-5.X, которая станет - FreeBSD-STABLE после выпуска FreeBSD-5.3. + Ветвь разработки FreeBSD-5.X, известная также как + FreeBSD 5-STABLE. RELENG_5_3 Ветвь релиза для FreeBSD-5.3, используемая только для исправлений безопасности и других критических исправлений. RELENG_5_2 Ветвь релиза для FreeBSD-5.2 и FreeBSD-5.2.1, используемая только для исправлений безопасности и других критических исправлений. RELENG_5_1 Ветвь релиза для FreeBSD-5.1, используемая только для исправлений безопасности и других критических исправлений. RELENG_5_0 Ветвь релиза для FreeBSD-5.0, используемая только для исправлений безопасности и других критических исправлений. RELENG_4 Ветвь разработки FreeBSD-4.X, известная также как - FreeBSD-STABLE. + FreeBSD 4-STABLE. RELENG_4_10 Ветвь релиза для FreeBSD-4.10, используемая только для исправлений безопасности и других критических исправлений. RELENG_4_9 Ветвь релиза для FreeBSD-4.9, используемая только для исправлений безопасности и других критических исправлений. RELENG_4_8 Ветвь релиза для FreeBSD-4.8, используемая только для исправлений безопасности и других критических исправлений. RELENG_4_7 Ветвь релиза для FreeBSD-4.7, используемая только для исправлений безопасности и других критических исправлений. RELENG_4_6 Ветвь релиза для FreeBSD-4.6 и FreeBSD-4.6.2, используемая только для исправлений безопасности и других критических исправлений. RELENG_4_5 Ветвь релиза для FreeBSD-4.5, используемая только для исправлений безопасности и других критических исправлений. RELENG_4_4 Ветвь релиза для FreeBSD-4.4, используемая только для исправлений безопасности и других критических исправлений. RELENG_4_3 Ветвь релиза для FreeBSD-4.3, используемая только для исправлений безопасности и других критических исправлений. RELENG_3 Ветвь разработки для FreeBSD-3.X, известная также как 3.X-STABLE. RELENG_2_2 Ветвь разработки для FreeBSD-2.2.X, известная также как 2.2-STABLE. Эта ветвь по большей части устарела. Теги релизов Эти теги относятся к определенным моментам времени, когда были выпущены конкретные версии &os;. Процесс выпуска релизов более детально документирован в информации о выпусках релизов и статье о процессе подготовки релизов. Дерево src использует имена тегов, начинающиеся с RELENG_. Деревья ports и doc используют теги, имена которых начинаются с RELEASE. Наконец, в дереве www нет специальных имен для релизов. RELENG_5_3_0_RELEASE FreeBSD 5.3 RELENG_4_10_0_RELEASE FreeBSD 4.10 RELENG_5_2_1_RELEASE FreeBSD 5.2.1 RELENG_5_2_0_RELEASE FreeBSD 5.2 RELENG_4_9_0_RELEASE FreeBSD 4.9 RELENG_5_1_0_RELEASE FreeBSD 5.1 RELENG_4_8_0_RELEASE FreeBSD 4.8 RELENG_5_0_0_RELEASE FreeBSD 5.0 RELENG_4_7_0_RELEASE FreeBSD 4.7 RELENG_4_6_2_RELEASE FreeBSD 4.6.2 RELENG_4_6_1_RELEASE FreeBSD 4.6.1 RELENG_4_6_0_RELEASE FreeBSD 4.6 RELENG_4_5_0_RELEASE FreeBSD 4.5 RELENG_4_4_0_RELEASE FreeBSD 4.4 RELENG_4_3_0_RELEASE FreeBSD 4.3 RELENG_4_2_0_RELEASE FreeBSD 4.2 RELENG_4_1_1_RELEASE FreeBSD 4.1.1 RELENG_4_1_0_RELEASE FreeBSD 4.1 RELENG_4_0_0_RELEASE FreeBSD 4.0 RELENG_3_5_0_RELEASE FreeBSD-3.5 RELENG_3_4_0_RELEASE FreeBSD-3.4 RELENG_3_3_0_RELEASE FreeBSD-3.3 RELENG_3_2_0_RELEASE FreeBSD-3.2 RELENG_3_1_0_RELEASE FreeBSD-3.1 RELENG_3_0_0_RELEASE FreeBSD-3.0 RELENG_2_2_8_RELEASE FreeBSD-2.2.8 RELENG_2_2_7_RELEASE FreeBSD-2.2.7 RELENG_2_2_6_RELEASE FreeBSD-2.2.6 RELENG_2_2_5_RELEASE FreeBSD-2.2.5 RELENG_2_2_2_RELEASE FreeBSD-2.2.2 RELENG_2_2_1_RELEASE FreeBSD-2.2.1 RELENG_2_2_0_RELEASE FreeBSD-2.2.0 AFS сайты AFS серверы для FreeBSD работают на следующих сайтах: Швеция Часть файлов: /afs/stacken.kth.se/ftp/pub/FreeBSD/ stacken.kth.se # Stacken Computer Club, KTH, Sweden 130.237.234.43 #hot.stacken.kth.se 130.237.237.230 #fishburger.stacken.kth.se 130.237.234.3 #milko.stacken.kth.se Ответственный ftp@stacken.kth.se rsync сайты Следующие сайты организуют доступ к FreeBSD через протокол rsync Утилита rsync работает в основном тем же путем, что и команда &man.rcp.1;, но поддерживает больше параметров и использует протокол удаленного обновления rsync, который передает только разницу между двумя наборами файлов, что значительно повышает скорость синхронизации по сети. Это особенно полезно, если вы поддерживаете зеркало сервера FreeBSD FTP, или репозитория CVS. Пакет rsync доступен для многих операционных систем, в FreeBSD используйте порт net/rsync или пакет. Чешская республика rsync://ftp.cz.FreeBSD.org/ Доступные коллекции: ftp: Частичное зеркало FreeBSD FTP сервера. FreeBSD: Полное зеркало FreeBSD FTP сервера. Германия rsync://grappa.unix-ag.uni-kl.de/ Доступные соединения: freebsd-cvs: Полный FreeBSD CVS репозиторий. Этот компьютер помимо прочих также зеркалирует CVS репозитории проектов NetBSD и OpenBSD. Нидерланды rsync://ftp.nl.FreeBSD.org/ Доступные коллекции: vol/3/freebsd-core: Полное зеркало FreeBSD FTP сервера. Великобритания rsync://rsync.mirror.ac.uk/ Доступные коллекции: ftp.FreeBSD.org: Полное зеркало FreeBSD FTP сервера. Соединенные Штаты Америки rsync://ftp-master.FreeBSD.org/ Этот сервер может использоваться только основными зеркалами FreeBSD. Доступные коллекции: FreeBSD: Основной архив FreeBSD FTP сервера. acl: Основной ACL список FreeBSD. rsync://ftp13.FreeBSD.org/ Доступные коллекции: FreeBSD: Полное зеркало FreeBSD FTP сервера.