diff --git a/ru_RU.KOI8-R/books/handbook/bibliography/chapter.sgml b/ru_RU.KOI8-R/books/handbook/bibliography/chapter.sgml
index 893347b07a..a2bd36a8e8 100644
--- a/ru_RU.KOI8-R/books/handbook/bibliography/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/bibliography/chapter.sgml
@@ -1,649 +1,652 @@
БиблиографияТак как страницы Справочника FreeBSD предоставляют лишь описание
отдельных частей операционной системы FreeBSD, они
не очень удобны для иллюстрации объединения этих частей вместе
для того, чтобы настроить ОС и сделать ее работу более гладкой.
Для этого незаменимы хорошая книга по системному администрированию
&unix; и хорошее руководство
пользователя.Книги и журналы, специализирующиеся на FreeBSDМеждународные книги и
журналы:Using FreeBSD (на китайском).FreeBSD Unleashed (перевод на китайский), опубликовано
China Machine
Press. ISBN 7-111-10201-0.
FreeBSD From Scratch First Edition (на китайском),
опубликовано China Machine Press. ISBN 7-111-07482-3.
FreeBSD From Scratch Second Edition (на китайском),
опубликовано China Machine Press. ISBN 7-111-10286-X.
FreeBSD Handbook (на китайском), опубликовано
Posts & Telecom
Press. ISBN 7-115-10541-3.
FreeBSD 3.x Internet (на китайском), опубликовано
Tsinghua
University Press. ISBN 7-900625-66-6.FreeBSD & Windows (на китайском), ISBN 7-113-03845-XFreeBSD Internet Services HOWTO (на китайском), ISBN 7-113-03423-3FreeBSD for PC 98'ers (на японском), выпущено SHUWA System
Co, LTD. ISBN 4-87966-468-5 C3055 P2900E.FreeBSD (на японском), выпущено CUTT. ISBN 4-906391-22-2
C3055 P2400E.Complete
Introduction to FreeBSD (на японском), выпущено
Shoeisha Co.,
Ltd. ISBN 4-88135-473-6 P3600E.Personal UNIX Starter Kit FreeBSD (на японском), выпущено ASCII. ISBN 4-7561-1733-3 P3000E.FreeBSD Handbook (японский перевод), выпущено ASCII. ISBN 4-7561-1580-2
P3800E.FreeBSD mit Methode (на немецком), выпущено Computer und
Literatur Verlag/Vertrieb Hanser, 1998. ISBN 3-932311-31-0.FreeBSD 4 - Installieren, Konfigurieren, Administrieren
(на немецком), выпущено Computer und Literatur Verlag, 2001.
ISBN 3-932311-88-4.FreeBSD 5 - Installieren, Konfigurieren, Administrieren
(на немецком), выпущено Computer und Literatur Verlag, 2003.
ISBN 3-936546-06-1.
FreeBSD de Luxe (на немецком), выпущено
Verlag Modere Industrie,
2003. ISBN 3-8266-1343-0.
FreeBSD Install and Utilization Manual (на японском), выпущено Mainichi Communications Inc..Onno W Purbo, Dodi Maryanto, Syahrial Hubbany, Widjil Widodo
Создание Интернет
Сервера с использованием FreeBSD (на Индонезийском языке),
выпущено Elex Media
Komputindo.Книги и журналы на английском языке:Absolute
BSD: The Ultimate Guide to FreeBSD, выпущено
No Starch Press, 2002.
ISBN: 1886411743
The Complete FreeBSD, выпущено
O'Reilly, 2003.
ISBN: 0596005164The FreeBSD
Corporate Networker's Guide, выпущено
Addison-Wesley, 2000.
ISBN: 0201704811
FreeBSD: An Open-Source Operating System for Your Personal
Computer, выпущено The Bit Tree Press, 2001.
ISBN: 0971204500Teach Yourself FreeBSD in 24 Hours, выпущено
Sams, 2002.
ISBN: 0672324245FreeBSD unleashed, выпущено
Sams, 2002.
ISBN: 0672324563FreeBSD: The Complete Reference, выпущено
McGrawHill, 2003.
ISBN: 0072224096 Руководства для пользователейComputer Systems Research Group, UC Berkeley. 4.4BSD
User's Reference Manual. O'Reilly & Associates,
Inc., 1994. ISBN 1-56592-075-9Computer Systems Research Group, UC Berkeley. 4.4BSD
User's Supplementary Documents. O'Reilly &
Associates, Inc., 1994. ISBN 1-56592-076-7UNIX in a Nutshell. O'Reilly &
Associates, Inc., 1990. ISBN 093717520XMui, Linda. What You Need To Know When You Can't Find
Your UNIX System Administrator. O'Reilly &
Associates, Inc., 1995. ISBN 1-56592-104-6Ohio State
University написал
Ознакомительный Курс UNIX который доступен в Online в
HTML и PS форматах.Итальянский перевод
этого документа доступен как часть FreeBSD Italian
Documentation Project.Jpman Project, Japan
FreeBSD Users Group. FreeBSD User's
Reference Manual (Японский перевод). Mainichi Communications
Inc., 1998. ISBN4-8399-0088-4 P3800E.Эдинбургский
Университет составил Online Путеводитель
для новичков в UNIX.Руководства для администраторовAlbitz, Paul and Liu, Cricket. DNS and
BIND, 4th Ed. O'Reilly & Associates, Inc., 2001.
ISBN 1-59600-158-4Computer Systems Research Group, UC Berkeley. 4.4BSD
System Manager's Manual. O'Reilly & Associates,
Inc., 1994. ISBN 1-56592-080-5Costales, Brian, et al. Sendmail, 2nd Ed.
O'Reilly & Associates, Inc., 1997. ISBN 1-56592-222-0Frisch, Æleen. Essential System
Administration, 2nd Ed. O'Reilly & Associates,
Inc., 1995. ISBN 1-56592-127-5Hunt, Craig. TCP/IP Network
Administration, 2nd Ed. O'Reilly & Associates,
Inc., 1997. ISBN 1-56592-322-7Nemeth, Evi. UNIX System Administration
Handbook. 2nd Ed. Prentice Hall, 2000. ISBN
0-13-020601-6Stern, Hal Managing NFS and NIS O'Reilly
& Associates, Inc., 1991. ISBN 0-937175-75-7Jpman Project, Japan
FreeBSD Users Group. FreeBSD System
Administrator's Manual (Japanese translation). Mainichi Communications
Inc., 1998. ISBN4-8399-0109-0 P3300E.Dreyfus, Emmanuel. Cahiers
de l'Admin: BSD 2nd Ed. (на французском), Eyrolles, 2004.
ISBN 2-212-11463-XРуководства для программистовAsente, Paul, Converse, Diana, and Swick, Ralph.
X Window System Toolkit. Digital Press, 1998.
ISBN 1-55558-178-1Computer Systems Research Group, UC Berkeley. 4.4BSD
Programmer's Reference Manual. O'Reilly &
Associates, Inc., 1994. ISBN 1-56592-078-3Computer Systems Research Group, UC Berkeley. 4.4BSD
Programmer's Supplementary Documents. O'Reilly &
Associates, Inc., 1994. ISBN 1-56592-079-1Harbison, Samuel P. and Steele, Guy L. Jr. C: A
Reference Manual. 4rd ed. Prentice Hall, 1995.
ISBN 0-13-326224-3Kernighan, Brian and Dennis M. Ritchie. The C
Programming Language.. PTR Prentice Hall, 1988.
ISBN 0-13-110362-9Lehey, Greg. Porting UNIX Software.
O'Reilly & Associates, Inc., 1995. ISBN 1-56592-126-7Plauger, P. J. The Standard C Library.
Prentice Hall, 1992. ISBN 0-13-131509-9Spinellis, Diomidis. Code
Reading: The Open Source Perspective.
Addison-Wesley, 2003. ISBN 0-201-79940-5Stevens, W. Richard. Advanced Programming in the UNIX
Environment. Reading, Mass. : Addison-Wesley, 1992.
ISBN 0-201-56317-7Stevens, W. Richard. UNIX Network
Programming. 2nd Ed, PTR Prentice Hall, 1998. ISBN
0-13-490012-XWells, Bill. Writing Serial Drivers for UNIX.
Dr. Dobb's Journal. 19(15), December 1994.
pp68-71, 97-99.Внутренности операционной системыAndleigh, Prabhat K. UNIX System
Architecture. Prentice-Hall, Inc., 1990. ISBN
0-13-949843-5Jolitz, William. Porting UNIX to the 386.
Dr. Dobb's Journal. January 1991-July
1992.Leffler, Samuel J., Marshall Kirk McKusick, Michael J Karels and
John Quarterman The Design and Implementation of the
4.3BSD UNIX Operating System. Reading, Mass. :
Addison-Wesley, 1989. ISBN 0-201-06196-1Leffler, Samuel J., Marshall Kirk McKusick, The Design
and Implementation of the 4.3BSD UNIX Operating System: Answer
Book. Reading, Mass. : Addison-Wesley, 1991. ISBN
0-201-54629-9McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, and
John Quarterman. The Design and Implementation of the
4.4BSD Operating System. Reading, Mass. :
Addison-Wesley, 1996. ISBN 0-201-54979-4(глава 2 этой книги доступна онлайн как часть
Проекта документирования FreeBSD, и глава 9 доступна
здесь.)Marshall Kirk McKusick, George V. Neville-Neil The Design
and Implementation of the FreeBSD Operating System.
Boston, Mass. : Addison-Wesley, 2004. ISBN 0-201-70245-2Stevens, W. Richard. TCP/IP Illustrated, Volume 1:
The Protocols. Reading, Mass. : Addison-Wesley,
1996. ISBN 0-201-63346-9Schimmel, Curt. Unix Systems for Modern
Architectures. Reading, Mass. : Addison-Wesley, 1994.
ISBN 0-201-63338-8Stevens, W. Richard. TCP/IP Illustrated, Volume 3:
TCP for Transactions, HTTP, NNTP and the UNIX Domain
Protocols. Reading, Mass. : Addison-Wesley, 1996.
ISBN 0-201-63495-3Vahalia, Uresh. UNIX Internals -- The New
Frontiers. Prentice Hall, 1996. ISBN
0-13-101908-2Wright, Gary R. and W. Richard Stevens. TCP/IP
Illustrated, Volume 2: The Implementation. Reading,
Mass. : Addison-Wesley, 1995. ISBN 0-201-63354-XБезопасностьCheswick, William R. and Steven M. Bellovin. Firewalls
and Internet Security: Repelling the Wily Hacker.
Reading, Mass. : Addison-Wesley, 1995. ISBN
0-201-63357-4Garfinkel, Simson and Gene Spafford.
Practical UNIX & Internet Security.
2nd Ed. O'Reilly & Associates, Inc., 1996. ISBN
1-56592-148-8Garfinkel, Simson. PGP Pretty Good
Privacy O'Reilly & Associates, Inc., 1995. ISBN
1-56592-098-8ОборудованиеAnderson, Don and Tom Shanley. Pentium Processor
System Architecture. 2nd Ed. Reading, Mass. :
Addison-Wesley, 1995. ISBN 0-201-40992-5Ferraro, Richard F. Programmer's Guide to the EGA,
VGA, and Super VGA Cards. 3rd ed. Reading, Mass. :
Addison-Wesley, 1995. ISBN 0-201-62490-7Intel Corporation publishes documentation on their CPUs,
chipsets and standards on their developer web site,
usually as PDF files.Shanley, Tom. 80486 System Architecture.
3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN
0-201-40994-1Shanley, Tom. ISA System Architecture.
3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN
0-201-40996-8Shanley, Tom. PCI System Architecture.
4th ed. Reading, Mass. : Addison-Wesley, 1999. ISBN
0-201-30974-2Van Gilluwe, Frank. The Undocumented PC, 2nd Ed.
Reading, Mass: Addison-Wesley Pub. Co., 1996. ISBN
0-201-47950-8Messmer, Hans-Peter. The Indispensable PC Hardware Book, 4th Ed.
Reading, Mass: Addison-Wesley Pub. Co., 2002. ISBN
0-201-59616-4История &unix;Lion, John Lion's Commentary on UNIX, 6th Ed. With
Source Code. ITP Media Group, 1996. ISBN
1573980137Raymond, Eric S. The New Hacker's Dictionary, 3rd
edition. MIT Press, 1996. ISBN
0-262-68092-0. Also known as the Jargon
FileSalus, Peter H. A quarter century of UNIX.
Addison-Wesley Publishing Company, Inc., 1994. ISBN
0-201-54777-5Simon Garfinkel, Daniel Weise, Steven Strassmann. The
UNIX-HATERS Handbook. IDG Books Worldwide, Inc.,
- 1994. ISBN 1-56884-203-1
+ 1994. ISBN 1-56884-203-1. Не печаталась, доступна по адресу
+ online.
Don Libes, Sandy Ressler Life with UNIX
— special edition. Prentice-Hall, Inc., 1989. ISBN
0-13-536657-7The BSD family tree.
или /usr/share/misc/bsd-family-tree
- на современном компьютере FreeBSD.
+ на компьютере FreeBSD.
The BSD Release Announcements collection.
1997. Networked Computer Science Technical Reports
Library. Old BSD releases from the Computer Systems Research
group (CSRG).
:
- The 4CD set covers all BSD versions from 1BSD to 4.4BSD and
- 4.4BSD-Lite2 (but not 2.11BSD, unfortunately). As well, the last
- disk holds the final sources plus the SCCS files.
+ В набор на 4CD включены все версии BSD от 1BSD до 4.4BSD и
+ 4.4BSD-Lite2 (но к сожалению нет 2.11BSD). На последнем диске
+ находится также последняя версия исходных текстов и файлы
+ SCCS.
Прочие изданияThe C/C++ Users Journal. R&D
Publications Inc. ISSN 1075-2838Sys Admin — The Journal for UNIX System
Administrators Miller Freeman, Inc., ISSN
1061-2688freeX — Das Magazin für Linux - BSD - UNIX
(на немецком) Computer- und Literaturverlag GmbH, ISSN 1436-7033
diff --git a/ru_RU.KOI8-R/books/handbook/config/chapter.sgml b/ru_RU.KOI8-R/books/handbook/config/chapter.sgml
index 065f037b2a..d1c37b60ed 100644
--- a/ru_RU.KOI8-R/books/handbook/config/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/config/chapter.sgml
@@ -1,3006 +1,3006 @@
ChernLeeНаписал MikeSmithОсновывается на учебнике, написанном MattDillonи на 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 этот файл уже не будет
перезаписан.TomRhodesПредоставил Запуск сервисовсервисыМногие пользователи предпочитают устанавливать программы сторонних
производителей в &os; из набора портов. В подобных случаях
может потребоваться сконфигурировать программы так, чтобы они
запускались при инициализации системы. Сервисы, такие как
mail/postfix или
www/apache13, —
это лишь два примера множества программных пакетов, которые
можно запускать при инициализации системы. В этом разделе
описывается процедура, предназначенная для запуска программ
сторонних разработчиков.Большинство входящих в &os; сервисов, таких как &man.cron.8;,
запускается с помощью стартовых скриптов системы. Эти скрипты
могут различаться в зависимости от версии &os; или ее производителя;
однако важнее всего учитывать, что их начальную конфигурацию
можно задать с помощью простых стартовых скриптов.До появления rcNG приложения должны были помещать
простой стартовый скрипт в
- каталог /usr/local/etc/rc.d,
+ каталог /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. Это, однако,
+ /etc/rc.d. Это, однако,
потенциально может сбить с толку утилиту &man.mergemaster.8;
при обновлениях программного обеспечения.Использование сервисов для запуска сервисовДругие сервисы, такие как даемоны сервера
POP3, IMAP, и т.п. могут
быть запущены с помощью &man.inetd.8;. Для этого необходимо
установить сервисную утилиту из набора портов и добавить
соответствующую строчку конфигурации в файл
/etc/inetd.conf или раскомментировать
подходящую строку конфигурации из уже имеющихся. Работа с даемоном
inetd и его конфигурирование подробно описано
в разделе inetd.В некоторых случаях использование для запуска системных
служб даемона &man.cron.8; может оказаться более приемлемым. Этот
подход имеет несколько преимуществ, поскольку даемон
cron запускает эти процессы от имени
владельца файла crontab. Это позволяет
обычным пользователям запускать и поддерживать некоторые
приложения.Утилита cron поддерживает уникальную
возможность, @reboot, — это значение
можно использовать вместо спецификации времени. В результате,
задание будет выполнено при запуске &man.cron.8;, обычно —
в ходе инициализации системы.TomRhodesПредоставил Настройка утилиты croncronнастройкаОдна из наиболее полезных утилит &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 с параметром .TomRhodesПредоставил Использование rc в FreeBSD 5.XrcNGВ &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;.MarcFonvieilleПредоставил Настройка карт сетевых интерфейсовнастройка сетевой картыВ наши дни мы не представляем себе компьютера без сетевого
подключения. Добавление и настройка сетевой карты это
обычная задача любого администратора &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: устройство loopbacktun0: туннельное устройство,
используемое 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"Файлы настройкиКаталог /etcВо 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Автоматически генерируемые системно-специфичные файлы
баз данных, такие как база данных пакетов, и так
далееИмена хостовhostnameDNS/etc/resolv.confresolv.conf/etc/resolv.conf определяет, как
ресолвер (resolver) &os; получает доступ к Системе Доменных
Имён (DNS).Основные записи resolv.conf:
nameserverIP адрес сервера имён. Сервера опрашиваются в порядке
описания. Максимальное количество адресов - три.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./etc/hostshosts/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;.Настройка лог файловлог файлыsyslog.confsyslog.confsyslog.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;.newsyslog.confnewsyslog.confnewsyslog.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;.sysctl.confsysctl.confsysctlsysctl.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Настройка с помощью sysctlsysctlнастройкас помощью 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;
и к .TomRhodesПредоставил Переменные &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; будет работать нормально.Оптимизация дисковПеременные Sysctlvfs.vmiodirenablevfs.vmiodirenableЗначением переменной vfs.vmiodirenable
может быть установлено в 0 (выключено) или 1 (включено); по
умолчанию 1. Эта переменная отвечает за метод кэширования
каталогов. Размер большинства каталогов невелик. Они могут
поместиться в одном фрагменте (обычно 1K), и могут занимать
ещё меньше места (обычно 512 байт) в кэше буфера.
При отключении этой переменной (при установке значения 0)
буфер прокэширует только заданное число
каталогов даже если у вас много памяти. При включении (при
установке значения 1) эта переменная
sysctl позволит использовать страничное кэширование VM,
делая доступным для кэширования каталогов
весь объём памяти. Однако,
минимальный объём памяти, используемой для
кэширования каталогов стал равен объёму страницы (обычно 4 K)
вместо 512 байт. Мы рекомендуем оставлять эту опцию включенной,
если ваш компьютер исполняет программы, манипулирующие значительным
количеством файлов. Примером таких программ могут быть кэширующие
прокси-серверы, большие почтовые серверы и серверы новостей. Обычно
включение этой опции не понижает производительности, однако лучше
поэкспериментировать, чтобы узнать оптимальное значение для вашей
машины.vfs.write_behindvfs.write_behindПеременная sysctl vfs.write_behind по
умолчанию установлена в 1 (включено). Она
указывает системе выполнять запись на носитель по кластерам,
что обычно делается для больших файлов. Идея в том, чтобы
избежать заполнения кэша неполными буферами, когда это не
увеличивает производительность. Однако, это может заблокировать
процессы и в некоторых случаях вам может понадобиться отключить
этот параметр.vfs.hirunningspacevfs.hirunningspaceПеременная sysctl vfs.hirunningspace
определяет число запросов записи на диск, которые могут
быть поставлены в очередь. Значение по умолчанию обычно подходит,
но на компьютерах с большим количеством дисков вы можете
увеличить его до четырех или пяти мегабайт.
Учтите, что установка слишком большого значения (превышающего
размер буфера записи) может привести к очень значительному
падению общей производительности. Не делайте это значение
произвольно большим! Большие значения могут привести к
задержкам чтения, выполняемого в то же времяЕсть много других переменных sysctl, относящихся к кэшированию
в буфер и страничному кэшированию VM. Мы не рекомендуем изменять
эти значения. Начиная &os; 4.3, система VM делает отличную
работу по автоматической самонастройке.vm.swap_idle_enabledvm.swap_idle_enabledПеременная sysctl vm.swap_idle_enabled
полезна в больших многопользовательских системах, где есть
много пользователей, входящих и выходящих из системы, и
множество ожидающих процессов. Такие системы обычно генерируют
большое количество запросов на выделение памяти. Включение этой
переменной и настройка задержки выгрузки (swapout hysteresis,
в секундах) установкой переменных
vm.swap_idle_threshold1 и
vm.swap_idle_threshold2 позволит освобождать
страницы памяти, занятые ожидающими процессами, более быстро,
чем при нормальном алгоритме выгрузки. Это помогает даемону
выгрузки страниц. Не включайте этот параметр, пока он на самом
деле вам не понадобится, поскольку его действие в сущности
заключается в более ранней выгрузке страниц из памяти; это
повышает нагрузку на подкачку и диск. В малых системах
эффект от включения этого параметра предсказуем, но в больших
системах нагруженной на подкачкой этот параметр позволяет
системе VM проще загружать и выгружать процессы из памяти.hw.ata.wchw.ata.wcВо &os; 4.3 кэширование записи на IDE диски было отключено.
Это понижало производительность IDE дисков в тестах, но было
необходимо для лучшей сохранности данных. Проблема состоит в том,
что IDE диски неправильно указывают время завершения записи на диск.
При включенном кэшировании IDE диски могут не только записать данные
в неправильном порядке – при большой нагрузке на диск некоторые
блоки могут задержаться до бесконечности. Сбой, или отключение
питания могут могут стать причиной серьёзных повреждений в файловой
системе. Поэтому для безопасности системы значение по умолчанию
этого параметра было изменено. К сожалению, результатом этого стало
столь значительная потеря производительности, что после выхода
релиза значение этого параметра было возвращено в первоначальное
состояние. Вам следует проверить значение переменной sysctl
hw.ata.wc на вашей машине. Если кэширование
выключено - вы можете включить его, установив значение переменной
ядра, равное 1. Это должно быть сделано при помощи загрузчика при
загрузке. Если вы сделаете это позже - изменения не будут иметь
силы.За более подробной информацией обращайтесь к &man.ata.4;.SCSI_DELAY
(kern.cam.scsi_delay)SCSI_DELAYkern.cam.scsi_delayПараметр настройки ядра SCSI_DELAY может
использоваться для уменьшения времени загрузки системы.
Значение по умолчанию велико и может составлять более
15 секунд в процессе загрузки. Уменьшение
его до 5 секунд обычно работает (особенно
с современными дисками). В новых версиях &os; (5.0 и выше) должен
использоваться параметр kern.cam.scsi_delay,
настраиваемый во время загрузки. Этот параметр и параметр
настройки ядра принимают значения в
миллисекундах, а не в
секундах.Soft UpdatesSoft UpdatestunefsПрограмма &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 UpdatesSoft 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. Это может повлечь проблемы
при установке большого количества файлов на файловую
систему, где не хватает места для помещения всех файлов
дважды.Изменение ограничений, накладываемых ядромоптимизацияпараметры ядраОграничения на Файлы/Процессыkern.maxfileskern.maxfilesЗначение kern.maxfiles может быть увеличено
или уменьшено в зависимости от потребностей вашей системы. Эта
переменная определяет максимальное число дескрипторов файлов. Когда
таблица дескрипторов файлов полна, в очереди системных сообщений
появится сообщение file: table is full. Это
сообщение может быть прочитано с помощью команды
dmesg.Каждый открытый файл, сокет или буфер использует дескриптор
файла. Широкомасштабному серверу может понадобиться много
тысяч дескрипторов файлов, в зависимости от количества программ,
одновременно выполняемых на сервере.Стандартное значение kern.maxfile определяется
переменной в вашем файле конфигурации
ядра. Значение kern.maxfiles увеличивается
пропорционально значению . При
компилировании ядра, нужно установить эту переменную согласно
потребностям вашей системы. Исходя из значения этой переменной,
ядро устанавливает значения большинства предопределённых
переменных. Даже если предполагается, что к компьютеру не будут
одновременно подсоединяться 256 пользователей, требуемые ресурсы
могут быть такими же, как у крупномасштабного сервера.Начиная с &os; 4.5, установка значения
в
0 в файле конфигурации ядра выберет подходящее
значение по умолчанию, основанное на объеме оперативной памяти
системы.kern.ipc.somaxconnkern.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.net.inet.ip.portrange.*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 ProductTCP Bandwidth Delay Product Limitingnet.inet.tcp.inflight_enableTCP 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/md0HitenPandyaНаписал TomRhodesУправление питанием и ресурсамиОчень важно использовать аппаратные ресурсы эффективно.
До того, как появился 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;.Настройка ACPI&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; за дополнительной информацией.NateLawsonНаписал PeterSchultzПри помощи TomRhodesИспользование и отладка &os; ACPIACPI это фундаментально новый способ
обнаружения устройств, управления энергопотреблением и предоставления
стандартизированного доступа к различному оборудованию,
ранее управлявшемуся 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.
+ src/sys/contrib/dev/acpica.
Код для приспособления ACPI-CA к работе в
&os;, находится в src/sys/dev/acpica/Osd.
Наконец, драйвера, реализующие различные ACPI
устройства, находятся в
- src/sys/dev/acpica.
+ 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
(CTRLALTESC на
консоли) и ввести show interrupts.Наиболее надежный способ избавиться от проблемы с прерываниями,
это отключение поддержки APIC с помощью
параметра loader.confhint.apic.0.disabled="1".ПаникаПаника, связанная с ACPI, случается довольно
редко и имеет наибольший приоритет исправления. Первый шаг
это изоляция действий, приводящих к панике (если это возможно)
и получение отладки. Следуйте инструкции по включению
options DDB и настройке последовательной консоли
(смотрите )
или настройке раздела &man.dump.8;. Вы можете получить отладочную
информацию DDB с помощью tr.
Если вы записываете отладку вручную, убедитесь, что переписали
как минимум пять (5) строк снизу и пять (5) строк сверху.Затем попробуйте изолировать проблему, загрузившись с
выключенным ACPI. Если это работает, вы можете
изолировать подсистему ACPI, используя
различные параметры .
Обратитесь к странице справочника &man.acpi.4; за примерами.Система включается после приостановки или завершения
работыВо-первых, попробуйте установить в &man.loader.conf.5; параметр
hw.acpi.disable_on_poweroff="0".
Это предотвращает отключение различных событий в
ACPI во время завершения работы.
В некоторых системах этот параметр необходимо установить
в 1 (по умолчанию) по тем же причинам. Обычно это
решает проблему, если система неожиданно включается после
приостановки или отключения питания.Другие проблемыЕсли вы наблюдаете другие проблемы с ACPI
(работа с внешним оборудованием, проблемы с обнаружением устройств,
и т.д.), отправьте описание проблемы в список рассылки;
однако, некоторые из этих проблем могут относиться к незавершенным
частям подсистемы ACPI, поэтому может
потребоваться время на их реализацию. Будьте терпеливы, и
подготовьтесь к тестированию исправлений, которые мы можем вам
выслать.ASL, acpidump, и
IASLНаиболее часто встречается проблема, связанная с предоставлением
поставщиками 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Исправление ASLВ дальней перспективе, наша задача состоит в том, чтобы
обеспечить поддержку ACPI практически для
каждой системы без вмешательства пользователя. Однако, на данный
момент мы все еще разрабатываем обходные пути для ошибок,
которые часто делают поставщики BIOS.
Интерпретатор µsoft; (acpi.sys и
acpiec.sys) не занимается проверкой
четкости соблюдения стандартов, поэтому многие поставщики
BIOS, проверяющие ACPI
только под &windows;, никогда не исправляют ASL.
Мы надеемся продолжать обнаружение и документацию нестандартных
поведений, позволяемых интерпретатором µsoft;, и воспроизводить
их, чтобы &os; могла работать без необходимости исправления
ASL пользователями. В качестве обходного пути
для обнаружения неправильного поведения, вы можете исправить
ASL вручную. Если исправления будут работать,
пожалуйста отправьте &man.diff.1; между старым и новым
ASL, чтобы мы могли реализовать обходной
путь для неправильного поведения ACPI-CA,
чтобы исправление вручную больше не требовалось.Вот список наиболее часто встречающихся проблем, их причин и
способы исправления:OS зависимостиНекоторые AML предполагают, что мир состоит
из различных версий &windows;. Вы можете настроить &os;, чтобы
она сообщала любое другое имя OS и посмотреть,
исправит ли это имеющуюся проблему. Простой способ указания
другого имени системы это установка переменной
/boot/loader.confhw.acpi.osname="Windows 2001"
или в другое подобное значение, имеющееся в
ASL.Отсутствие возврата значенияНекоторые методы не возвращают значение явно, как того
требует стандарт. Хотя ACPI-CA не обрабатывает
эту ситуацию, в &os; существует обходной путь, позволяющей ей
явно возвращать значение. Вы можете также добавить явные операторы
Return (возврат) там, где требуется, если знаете, что значение
должно быть возвращено. Для принудительного компилирования
ASL командой iasl, используйте
флаг .Перезапись AML по умолчаниюПосле настройки your.asl для
компиляции запустите:&prompt.root; iasl your.aslВы можете добавить флаг для создания
AML даже при наличии ошибок компиляции.
Помните, что некоторые ошибки (например, отсутствующие операторы
Return), автоматически обходятся интерпретатором.Файл DSDT.aml используется
iasl по умолчанию. Вы можете загрузить его
вместо ошибочной копии BIOS (которая
остается в постоянной памяти) путем редактирования
- /boot/loader.conf:
+ /boot/loader.conf:
acpi_dsdt_load="YES"
acpi_dsdt_name="/boot/DSDT.aml"Убедитесь, что скопировали DSDT.aml в
- каталог /boot.
+ каталог /boot.
Получение отладочной информации
ACPIВозможности отладки драйвера 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 и добавьте
+ /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/disks/chapter.sgml b/ru_RU.KOI8-R/books/handbook/disks/chapter.sgml
index a28821bdd1..915d7f49d6 100644
--- a/ru_RU.KOI8-R/books/handbook/disks/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/disks/chapter.sgml
@@ -1,4082 +1,4082 @@
АндрейЗахватовПеревод на русский язык: Устройства храненияКраткий обзорВ этой главе описывается использование дисков во FreeBSD. К ним
относятся диски в памяти, диски, подключенные по сети, обычные
устройства хранения SCSI/IDE и устройства, использующие
интерфейс USB.После чтения этой главы вы будете знать:Терминологию, используемую во FreeBSD для описания организации
данных на физическом диске (разделы и слайсы).Как добавить дополнительные винчестеры к вашей системе.Как настроить &os; для использования дисковых устройств
USB.Как настроить виртуальные файловые системы, такие, как диски в
оперативной памяти.Как использовать квоты для ограничения использования дискового
пространства.Как зашифровать диски, чтобы защитить их от взлома.Как создавать и записывать CD и DVD во FreeBSD.Различные варианты использования устройств хранения для
резервных копий.Как использовать программы резервного копирования, имеющиеся
для FreeBSD.Как выполнять резервное копирование на дискеты.Что такое мгновенные копии файловых систем и как
их эффективно использоватьПеред прочтением этой главы вам потребуется:Узнать как настраивать и устанавливать новое ядро FreeBSD
().Имена устройствДалее приводится список физических устройств хранения информации,
которые поддерживаются во FreeBSD, и имена устройств, которые им
соответствуют.
Соглашения по именованию физических дисковТип дискаИмя дискового устройстваВинчестеры IDEadПриводы IDE CDROMacdВинчестеры SCSI и дисковые устройства USBdaПриводы SCSI CDROMcdРазличные нестандартные приводы CDROMmcd для 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Ленточные приводы SCSIsaЛенточные приводы IDEastФлэш-дискиfla для флэш-устройств
&diskonchip;Диски RAIDaacd для &adaptec; AdvancedRAID,
mlxd и mlyd для &mylex;,
amrd для AMI &megaraid;,
idad для Compaq Smart RAID,
twed для &tm.3ware; RAID.
DavidO'BrienИзначальный текст предоставил Добавление дисковдискидобавлениеПредположим, что мы хотим установить новый диск SCSI на машину,
имеющую в данный момент только один диск. Сначала выключим компьютер и
установим диск в компьютер согласно инструкциям к компьютеру,
контроллеру и от производителя диска. Из-за большого разнообразия
этих процедур их рассмотрение выходит за рамки этого документа..Войдите в систему как пользователь root.
После того, как вы установили диск, просмотрите файл
/var/run/dmesg.boot, чтобы убедиться, что новый
диск был найден. Продолжая наш пример, только что добавленный диск
будет называться da1 и мы хотим смонтировать его
в каталог /1 (если вы добавляете диск IDE, то
устройство будет называться wd1 в системах,
предшествовавших 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Использование SysinstallВы можете использовать простые меню утилиты
/stand/sysinstall для разбиения на разделы и
разметки нового диска. Войдите как пользователь
root или воспользуйтесь командой
su. Запустите команду
/stand/sysinstall и войдите в меню
Configure. Внутри FreeBSD
Configuration Menu, пролистайте и выберите пункт
Fdisk.Редактор разделов fdiskРаботая с утилитой 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Программный RAIDChristopherShumwayОригинальный текст предоставил JimBrownИзменения внёс 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Менеджер томов VinumRAIDпрограммныйRAIDVinumМенеджер томов Vinum является драйвером блочного устройства,
который реализует виртуальные диски. Он отделяет дисковое
оборудование от интерфейса блочного устройства и работает с данными
таким образом, что в результате повышается гибкость,
производительность и надёжность по сравнению с традиционным
взглядом на дисковое хранилище как на кусок дискового пространства.
&man.vinum.8; реализует модели RAID-0, RAID-1 и RAID-5, как по
отдельности, так и в комбинациях.Обратитесь к для получения более
полной информации о &man.vinum.8;.Аппаратный RAIDRAIDОборудованиеFreeBSD поддерживает также целый ряд аппаратных контроллеров
RAID. Эти устройства самостоятельно управляют
RAID-подсистемой, без необходимости иметь
специфичное для FreeBSD программное обеспечения управления
массивом.При помощи встроенной в адаптер BIOS, он
сам управляет большинством дисковых операций. Далее следует краткое
описание установки при помощи контроллера Promise
IDE RAID.
После установки адаптера и запуска системы, выдаётся
запрос на ввод. Следуйте указаниям для входа в настройку адаптера.
Отсюда вы можете объединить все подключенные диски. После этого
во FreeBSD диск(и) будут выглядеть как один диск. Аналогично могут
быть настроены и другие уровни RAID.Перестроение массивов ATA RAID1FreeBSD позволяет вам выполнять горячую замену вышедшего из строя
диска. При этом требуется, чтобы вы заметили это до
перезагрузки.Вероятно, в файле /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Команда перестроения будет работать, пока не закончит. Однако
имеется возможность открыть другой терминал (комбинацией клавиш
AltFn) и
проверить состояние дел при помощи следующей команды:&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Дождитесь завершения этой операции.MarcFonvieilleПредоставил 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;.MikeMeyerТекст предоставил Запись и использование оптических носителей (CD)CDROMсозданиеВведениеКомпакт-диски (CD) имеют несколько особенностей, отличающих их от
обычных дисков. Во-первых, на них невозможно производить запись. Они
спроектированы с расчетом на то, что их можно читать последовательно без
задержек на перемещение головки между дорожками. К тому же их гораздо
проще переносить от системы к системе, чем носители близкого
объема.У CD имеются дорожки, но они представляют собой последовательность
данных, читаемую последовательно, и не являются физической
характеристикой диска. Для записи CD во FreeBSD вы готовите файлы
данных, которые будут формировать дорожки на компакт-диске, а затем
записываете дорожки на CD.ISO 9660файловые системыISO 9660Файловая система ISO 9660 была разработана с учетом этих отличий, К
сожалению, она унаследовала ограничения файловых систем, которые были
тогда. К счастью, она дает механизм расширений, которые позволяют
правильно записанным дискам обходить эти ограничения и при этом
продолжать работать с системами, которые не поддерживают эти
расширения.sysutils/cdrtoolsДля создания файла данных, содержащего файловую систему ISO 9660,
используется программа &man.mkisofs.8;, которая включена в порт
sysutils/cdrtools. Она имеет опции,
поддерживающие различные расширения, и описана ниже.устройство записи CDATAPIКакой инструмент использовать для записи 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.
По умолчанию, &man.mkisofs.8; создает образ ISO в так называемом режиме
эмуляции флоппи-диска, и потому ожидает загрузочный
образ размера строго 1200, 1440 или 2880 KB. Некоторые
загрузчики, в том числе и тот, что используется на дистрибутивных
дисках &os;, не используют режим эмуляции; в этом случае должна
использоваться опция . Так что, если
/tmp/myboot содержит загрузочную систему FreeBSD с
загрузочным образом в /tmp/myboot/boot/cdboot, вы
можете создать образ файловой системы ISO 9660 в
/tmp/bootable.iso следующим образом:&prompt.root; mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/mybootСделав это, и имея в ядре отконфигурированное устройство
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; для получения более подробной
информации.burncdCDROMзаписьЕсли ваше устройство для записи 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=deviceimagefile.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; так,
как это было описано выше.MarcFonvieilleПредоставил устройство записи 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;.MarcFonvieilleПредоставил AndyPolyakovДополнения предоставил Создание и использование оптических носителей (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,
+ class="directory">/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;.DVDDVD-VideoЗапись DVD-VideoDVD-Video это особая файловая система, базирующаяся на ISO 9660
и спецификациях micro-UDF (M-UDF). DVD-Video также представляет
определенную иерархию структуры данных, поэтому для создания DVD
потребуется особая программа, такая как multimedia/dvdauthor.Если у вас уже есть образ файловой системы DVD-Video,
просто запишите его как любой другой образ, примеры находятся
в предыдущем разделе. Если вы создали DVD и результат находится
- в каталоге /path/to/video,
+ в каталоге /path/to/video,
для записи DVD-Video должна быть использована следующая
команда:&prompt.root; growisofs -Z /dev/cd0 -dvd-video /path/to/videoПараметр будет передан
&man.mkisofs.8; и укажет создать файловую систему DVD-Video.
Помимо этого, параметр подразумевает
параметр &man.growisofs.1; .DVDDVD+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/zeroDVDDVD-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 при записи
или проблемный носитель необходимы для любого сообщения
о проблеме. Без этого вывода будет совершенно невозможно
помочь вам.JulioMerinoПервоначальный текст предоставил MartinKarlssonПереписал ДискетыХранение данных на дискетах иногда бывает полезным, например,
когда нет других съёмных носителей или когда необходимо перенести
небольшой объём данных на другой компьютер.В этом разделе будет описано, как использовать дискеты во 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носители на магнитной лентеAITAIT - это новый формат фирмы 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:Это сообщение будет повторяться (со все увеличивающимся номером
тома) до тех пор, пока все указанные файлы не будут
заархивированы.Можно ли резервные копии подвергнуть компрессии?targzipсжатиеК сожалению, &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программы резервного копированиярезервное копирование / восстановлениеdumprestoreДля &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.Использование dump через
ssh&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:Использование dump при работе через
ssh с заданием RSH&prompt.root; RSH=/usr/bin/ssh /sbin/dump -0uan -f targetuser@targetmachine.example.com:/dev/sa0tarпрограммы резервного копирования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.cpioпрограммы резервного копированияcpio&man.cpio.1; является оригинальной программой &unix; для обмена
файлами на магнитных носителях. В утилите cpio
имеются опции (кроме всего прочего), позволяющие выполнять изменение
порядка следования байтов, поддерживающие различные форматы архивов и
выполняющие перенаправление данных другим программам. Последняя
возможность делает cpio прекрасным выбором для
целей установки. cpio не знает о том, как
работать с каталогами, список файлов должен даваться через
stdin.cpiocpio не поддерживает создание резервных
копий по сети. Вы можете воспользоваться перенаправлением вывода и
программой rsh для посылки данных на удалённый
накопитель.&prompt.root; for f in directory_list; dofind $f >> backup.listdone
&prompt.root; cpio -v -o --format=newc < backup.list | ssh user@host "cat > backup_device"Где directory_list это список директорий, c которых Вы хотите
создать резервные копии,
user@host это
комбинация пользователь/хост которая описывает того кто
занимается резервированием, и backup_device
это устройство куда копии должны быть записаны (например,
/dev/nsa0).paxпрограммы резервного копированияpaxpaxPOSIXIEEE&man.pax.1; является ответом IEEE/&posix; на утилиты
tar и cpio. В течение многих лет
различные версии программ tar и
cpio получались не совсем совместимыми. Так что
вместо того, чтобы попытаться полностью их стандартизировать, &posix;
создал новую утилиту для работы с архивами. pax
пытается читать и писать различные форматы cpio
и tar, и, кроме
того, свои собственные новые форматы. Набор команд этой утилиты больше
напоминает cpio, чем tar.Amandaпрограммы резервного копированияamandaamandaAmanda (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корневой разделdisklabelnewfsПопробуйте выполнить команду mount (например,
mount /dev/da0a /mnt) по отношению к корневому
разделу вашего первого диска. Если метка диска была испорчена,
то воспользуйтесь командой disklabel для
переразбиения на
разделы и разметки диска так, чтобы получившаяся метка совпала с той,
которая вами была распечатана и сохранена. Для повторного создания
файловых систем используйте утилиту newfs. Повторно
смонтируйте корневой раздел дискеты в режиме чтения-записи
(mount -u -o rw /mnt). Воспользуйтесь вашей
программой резервного копирования и резервными копиями на лентах для
восстановления данных для этой файловой системы (например.
restore vrf /dev/sa0). Размонтируйте файловую
систему (например, umount /mnt). Повторите эту
процедуру для каждой файловой системы, которая была повреждена.Как только ваша система заработает, сделайте резервную копию на
новые ленты. Что бы ни вызвало сбой или потерю данных, это может
случиться снова. Ещё один час, потраченный в этот момент, может
спасти вас от неприятностей в будущем.* Я не был готов к катастрофе, и что теперь?
]]>
MarcFonvieilleРеорганизацию и улучшения выполнил Сетевые файловые системы, файловые системы в памяти и с отображением
в файлвиртуальные дискидискивиртуальныеКроме дисков, которые вы физически устанавливаете в ваш компьютер;
дискеты, компакт-диски, винчестеры и так далее, FreeBSD воспринимает и
другие типы дисков - виртуальные диски.NFSCodaдискипамятьСюда могут быть отнесены сетевые файловые системы, такие, как
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 vn0diskimage
&prompt.root; mount /dev/vn0c /mntДля создания нового образа файловой системы с помощью
&man.vnconfig.8;:Создание нового диска в файле с помощью
vnconfig&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 vn0newimage
&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.Для монтирования образа существующей файловой системы:Использование mdconfig для монтирования файла
с образом существующей файловой системы во FreeBSD 5.X&prompt.root; mdconfig -a -t vnode -f diskimage -u 0
&prompt.root; mount /dev/md0/mntДля создания образа новой файловой системы при помощи
&man.mdconfig.8;:Создание нового диска, отображаемого в файл, при помощи
mdconfig&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;. Например, если вы хотите создать и
смонтировать такой же образ файловой системе, как выше, просто наберите
такую команду:Настройка и монтирование диска, отображаемого в файл, при помощи
команды mdmfs&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;.Создание нового диска с отображением в память при помощи
mdconfig&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Создание нового диска с отображением в память при помощи
mdmfs&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 vn4TomRhodesТекст предоставил Мгновенные копии файловых системфайловые системымгновенные копииВо 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 testQuotas 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 в примере выше.Квоты в NFSNFSКвоты определяются подсистемой квот на сервере 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`LuckyGreenТекст предоставил shamrock@cypherpunks.toШифрование дисковых разделовдискишифрованиеFreeBSD предоставляет прекрасную возможность по защите от
несанкционированного доступа к данным. Права на доступ к файлам и
- технология мандатного контроля доступа MAC (Mandatory Access Control)
+ технология принудительного контроля доступа MAC (Mandatory Access Control)
(смотрите see ) помогают предотвратить
несанкционированный доступ посторонних лиц к данным, при условии работы
операционной системы и компьютера. Однако права доступа, контролируемые
операционной системой, не имеют значения, если нападающий получает
физический доступ к компьютеру и может просто перенести жёсткий диск на
другую машину для копирования и дальнейшего анализа важных данных.Вне зависимости от того, как атакующий завладел жёстким диском или
выключенным компьютером, технология gbde (GEOM
Based Disk Encryption - шифрование диска на уровне GEOM) может защитить
данные файловой системы компьютера даже против очень заинтересованной
атакующей стороны с достаточными ресурсами. В отличие от громоздких
систем шифрования, которые шифруют отдельные файлы,
gbde шифрует в прозрачном режиме файловую
систему в целом, при этом данные в открытом виде на диск никогда не
записываются.Включение gbde в ядреПолучите права пользователя rootНастройка 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/install/chapter.sgml b/ru_RU.KOI8-R/books/handbook/install/chapter.sgml
index b0459eece5..93e03c7517 100644
--- a/ru_RU.KOI8-R/books/handbook/install/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/install/chapter.sgml
@@ -1,5598 +1,5623 @@
JimMockРеструктурировал, исправил и частично
переписал RandyPrattОбзор sysinstall, скриншоты и общее
руководство Установка FreeBSDКраткий обзорустановкаFreeBSD поставляется простой в использовании текстовой
программой установки sysinstall.
Это основная программа установки FreeBSD, хотя поставщики
могут предлагать свои программы. В этой главе
описывается использование sysinstall
для установки FreeBSD.Прочтя эту главу, вы узнаете:Как создать дискеты для установки FreeBSD.Как FreeBSD видит и делит на разделы жесткие диски.Как запустить sysinstall.Вопросы, которые sysinstall задаст
вам, что имеется ввиду, и как ответить на эти вопросы.Перед прочтением этой главы вам потребуется:Прочитать информацию о поддерживаемом оборудовании, поставляемую
с устанавливаемой версией FreeBSD, и убедиться, что ваше
оборудование поддерживается.Как правило, эти инструкции по установке написаны для
&i386; (PC совместимых)
компьютеров. Когда это возможно, приводятся инструкции,
специфичные для других платформ (например, Alpha).
Хотя это руководство поддерживается в актуальном состоянии
настолько, насколько это возможно, вы можете обнаружить
небольшие различия между программой установки и тем,
что показано здесь. Предполагается, что вы будете
использовать эту главу в качестве общего руководства, а не
как пошаговую инструкцию по установке.Перед установкойСоберите информацию о компьютереПеред установкой FreeBSD попытайтесь собрать
информацию об устройствах компьютера. Во время установки
FreeBSD покажет информацию об устройствах (жестких дисках,
сетевых картах, CDROM и т.д.) с номером модели и производителем.
FreeBSD также попытается определить правильную конфигурацию для
этих устройств, включая информацию об IRQ и портах ввода-вывода. Из-за
возможных проблем с оборудованием этот процесс не всегда
завершается успешно, и возможно вам придется исправлять
определенную FreeBSD конфигурацию.Если у вас уже есть установленная операционная система,
например &windows; или Linux, неплохо будет использовать ее
возможности для просмотра настроек оборудования.
Если вы не уверены какие какие настройки карты
расширения использовать, можете найти их на самой карте.
Часто используемые номера прерываний 3, 5 и 7, порты ввода-
вывода обычно пишутся в шестнадцатеричном виде, например
0x330.Мы рекомендуем распечатать эту информацию перед установкой
FreeBSD. Вам может помочь использование таблицы вроде этой:
Пример сведений об оборудованииНазвание устройстваIRQПорт ввода-выводаПримечанияПервый жесткий дискнетнет40 GB, Seagate, первый IDE masterCDROMнетнетПервый IDE slaveВторой жесткий дискнетнет20 GB, IBM, второй IDE masterПервый IDE контроллер140x1f0Сетевая картанетнет&intel; 10/100Модемнетнет&tm.3com; 56K факс-модем, COM1…
Сделайте резервное копирование данныхЕсли компьютер, на который вы устанавливаете FreeBSD,
содержит важные данные, убедитесь в наличии резервных копий
и проверьте их сохранность перед установкой FreeBSD.
Во время установки FreeBSD запросит подтверждение перед
тем, как записать данные на диск, но, если процесс запущен,
изменения нельзя отменить.Решите куда установить FreeBSDЕсли вы хотите, чтобы FreeBSD использовала весь жесткий диск,
не о чем беспокоиться — можете пропустить этот
раздел.Однако, если нужно совмещать FreeBSD с другими
операционными системами, необходимо иметь представление
как данные размещаются на диске и как это касается вас.Разделы диска для &i386;Диск PC может быть поделен на отдельные части. Эти
части называют разделами. Первоначально
PC поддерживал только четыре раздела на диск. Эти разделы
называются главными разделами. Чтобы
обойти это ограничение и дать возможность создавать более чем
четыре раздела, был создан новый тип раздела, расширенный
раздел. Диск может содержать только один расширенный
раздел. Специальные разделы, называемые логическими
разделами, могут быть созданы внутри расширенного
раздела.Каждый раздел имеет ID раздела —
номер, который используется для определения типа данных на разделе.
FreeBSD использует ID раздела 165.Как правило, каждая операционная система, которую вы используете,
определяет разделы своим способом. Например, DOS и ее
потомки, такие как &windows;, присваивают каждому главному и логическому
разделу букву диска, начиная с
C:.FreeBSD нужно устанавливать в главный раздел. FreeBSD может
хранить все свои данные, включая создаваемые вами файлы, на
этом одном разделе. Тем не менее, если дисков много, вы можете
создать разделы FreeBSD на всех дисках или на некоторых из них.
При установке FreeBSD должен быть доступен по крайней мере один раздел.
Это может быть чистый, подготовленный для установки раздел, или
раздел с данными, которые больше не нужны.Если все разделы на диске уже используются, вы должны
освободить один из них для FreeBSD, используя программы,
поставляемые с имеющейся операционной системой (например,
fdisk для DOS или &windows;).Если есть резервный раздел, используйте его. Однако,
возможно сначала придется ужать один или несколько
существующих разделов. FreeBSD для установки нужен диск не менее 100 MB.
Однако, это оченьминимальная
установка, при которой не останется места для ваших личных
файлов. Более реальный объем — 250 MB без графической оболочки,
и более 350 MB с графической оболочкой. Если вы собираетесь
устанавливать большое количество дополнительного ПО,
понадобится еще больше дискового пространства.Вы можете использовать коммерческие программы,
такие как &partitionmagic;, для
изменения размера разделов и освобождения места под
FreeBSD. Каталог tools на CDROM
содержит две свободно распространяемых утилиты,
которые могут быть использованы для этой задачи, называющиеся
FIPS
и PResizer. Документация на обе эти
утилиты доступна из того же каталога.
FIPS,
PResizer, и
&partitionmagic; могут изменять размер
разделов FAT16 и FAT32,
используемых системами от &ms-dos; до &windows; ME.
&partitionmagic; это единственная
известная программа, способная изменять размер
NTFS.Неправильное использование этих утилит может привести к
уничтожению данных на диске. Удостоверьтесь в
наличии свежих и исправных резервных копий данных перед
их использованием.Использование существующего раздела без измененияПредставьте что в компьютере один 4 GB диск, на
котором уже установлена &windows;, и диск разбит на два
логических диска C: и
D:, каждый по 2 GB.
1 GB данных на C:, и
0.5 GB данных на D:.Это означает, что диск состоит из двух разделов, по одному
на каждую букву. Вы можете скопировать все данные с
D: на C:, это
освободит второй раздел для FreeBSD.Сжатие существующих разделовПредставьте, что в компьютере один 4 GB диск, на
котором уже установлена &windows;. При установке
&windows; вы создали один большой раздел, получив при этом
диск C: размером 4 GB. Вы
используете 1.5 GB, и хотите выделить 2 GB для FreeBSD.Для установки FreeBSD нужно выбрать:Сделать резервную копию &windows;, затем переустановить
&windows;, выделив 2 GB под ее раздел.Использовать одну из утилит, таких как
&partitionmagic;, описанную
выше, для сжатия раздела &windows;.Разделы диска для AlphaAlphaВам потребуется выделенный диск
для FreeBSD на Alpha. В настоящее время невозможно
установить две операционные системы на диск. В зависимости
от конкретного компьютера Alpha, диск может быть SCSI
или IDE, главное, чтобы ваш компьютер мог с него
загружаться.В соответствии с соглашениями, принятыми в
руководствах Digital / Compaq, весь SRM ввод показан в
верхнем регистре. SRM нечувствителен к регистру.Для поиска имен и типов дисков на компьютере
используйте команду SHOW DEVICE SRM
консоли:>>>SHOW DEVICE
dka0.0.0.4.0 DKA0 TOSHIBA CD-ROM XM-57 3476
dkc0.0.0.1009.0 DKC0 RZ1BB-BS 0658
dkc100.1.0.1009.0 DKC100 SEAGATE ST34501W 0015
dva0.0.0.0.1 DVA0
ewa0.0.0.3.0 EWA0 00-00-F8-75-6D-01
pkc0.7.0.1009.0 PKC0 SCSI Bus ID 7 5.27
pqa0.0.0.4.0 PQA0 PCI EIDE
pqb0.0.1.4.0 PQB0 PCI EIDEЭтот пример с Digital Personal Workstation
433au показывает три подключенных диска. Первый —
устройство CDROM с именем DKA0, другие два
называются DKC0 и
DKC100 соответственно.Диски с именами DKx
— SCSI диски. Например, DKA100
означает SCSI диск со SCSI целевым ID 1 на первой SCSI шине (A),
в то время как DKC300 означает SCSI диск
с SCSI ID 3 на третьей SCSI шине (C). Имя устройства
PKx означает SCSI адаптер. Как показано
в выводе SHOW DEVICE, SCSI устройство CDROM
определяется как любой другой жесткий диск SCSI.Имена IDE дисков выглядят как DQx,
в то время как PQx — IDE
контроллер.Соберите информацию о конфигурации сетиЕсли вы хотите подключиться к сети в процессе установки
FreeBSD (например, при установке с FTP или NFS сервера),
нужно знать конфигурацию сети. Вам будет предложено
ввести эту информацию,
чтобы FreeBSD смогла подключиться к сети для продолжения
установки.Подключение к сети Ethernet, или через кабельный/DSL модемЕсли вы подключаетесь к сети Ethernet, или соединение
с интернет подключено к Ethernet через кабельный или DSL модем, понадобится
следующая информация:IP адресIP адрес шлюза по умолчаниюИмя хостаIP адрес DNS сервераМаска подсетиЕсли у вас нет этой информации, спросите
системного администратора или провайдера интернет. Они могут сказать,
что эти данные присваиваются автоматически, с использованием
DHCP. Если это так, запомните это.Подсоединение с помощью модемаЕсли вы дозваниваетесь до провайдера с помощью обычного модема,
вы все же сможете установить FreeBSD через интернет, но это займет
очень много времени.Вам нужно знать:Номер телефона провайдераCOM порт, к которому подключен модемИмя пользователя и пароль учетной записи для доступа в
интернетПроверьте сведения об обнаруженных ошибках FreeBSDХотя проект FreeBSD борется за то, чтобы каждый релиз
FreeBSD был настолько стабильным, насколько это возможно, ошибки порой
вкрадываются в процесс разработки. В очень редких случаях эти ошибки
влияют на процесс установки. Как только эти проблемы обнаруживаются и
исправляются, они попадают в сообщения об ошибках FreeBSD, находящиеся
на сайте FreeBSD. Вы можете проверить сообщения об ошибках перед
установкой, чтобы убедиться, что не существует проблем, о которых стоит
беспокоиться.Информация о релизах, включая сообщения об ошибках каждого релиза,
находится странице
информации
о релизахсайта FreeBSD.Получение установочных файлов FreeBSDПрограмма установки FreeBSD может установить FreeBSD из файлов,
расположенных в одном из следующих мест:Локальный дискCDROM или DVDРаздел DOS на вашем компьютереЛента SCSI или QICГибкие дискиСетьFTP сервер (через файрволл или HTTP прокси,
если потребуется)NFS серверСоединение через параллельный или последовательный портЕсли вы купили FreeBSD на CD или DVD, у вас уже есть
все, что нужно, переходите к следующему разделу
().Если у вас нет установочных файлов FreeBSD,
перейдите к , который описывает,
как подготовиться к установке FreeBSD любым указанным выше способом.
После прочтения этого раздела, вернитесь сюда и прочтите
.Подготовка загрузочных дисковПроцесс установки FreeBSD начинается с загрузки в ваш
компьютер программы установки FreeBSD — эта программа
не запускается из других операционных систем. Компьютер
обычно загружает операционную систему, установленную на
жестком диске, но также может быть настроен для
использования загрузочной дискеты.
Большинство современных компьютеров могут также
загрузиться с компакт-диска в приводе CDROM.Если у вас есть FreeBSD на CDROM или DVD (купленный
или записанный самостоятельно), и компьютер позволяет загрузку
с CDROM или DVD (обычно этот пункт в BIOS называется Boot
Order или что-то вроде), можете пропустить этот раздел.
Образы FreeBSD CDROM и DVD являются загрузочными и могут быть
использованы для установки FreeBSD без какой-либо специальной
подготовки.Для создания загрузочных дисков сделайте следующее:Получение образов загрузочных дисковЗагрузочные диски есть на установочном диске
в каталоге floppies/, и
могут быть также закачаны из каталога floppies,
ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/<arch>/<version>-RELEASE/floppies/.
Замените <arch> и
<version>
архитектурой компьютера и номером версии, которую вы хотите
установить, соответственно. Например, загрузочные дискеты
для &os; &rel.current;-RELEASE для &i386; находятся в
.Расширение файла образа диска .flp.
Каталог floppies/ содержит множество
разных образов, ваш выбор будет зависеть от устанавливаемой
версии FreeBSD и, в некоторых случаях, от конфигурации
- компьютера. В большинстве случаев понадобятся всего лишь два
+ компьютера. Если вы устанавливаете FreeBSD 4.X,
+ в большинстве случаев понадобятся всего лишь два
файла, kern.flp и
- mfsroot.flp. В некоторых системах могут
+ mfsroot.flp. При установке
+ FreeBSD 5.X в большинстве случаев потребуются три
+ дискеты, boot.flp,
+ kern1.flp, и
+ kern2.flp. В некоторых системах могут
потребоваться дополнительные драйверы устройств. Они находятся
в файле drivers.flp. Обратитесь к файлу
README.TXT в том же каталоге за свежей
информацией об этих образах дисков.FTP клиент должен использовать
бинарный режим
для загрузки образов дисков. Некоторые веб браузеры
используют текстовый
(ASCII) режим, который точно не позволит
загрузиться с этих дисков.Подготовка дискетНеобходимо подготовить по одной дискете на
каждый загруженный образ. Эти дискеты должны
быть без дефектов. Лучший способ проверить это —
отформатировать дискеты самостоятельно.
Не доверяйте заводскому форматированию дискет. Утилита
форматирования в &windows; не сообщит о наличии плохих
секторов, она просто пометит их как плохие
и проигнорирует. Советуем использовать новые дискеты
если вы выбрали этот способ установки.Если при попытке установки FreeBSD программа
установки рушится, зависает, или делает что-то не так, сразу
проверьте дискеты. Попробуйте записать образы
на новые дискеты и попытайтесь еще раз.Запись образов на дискетыФайлы с расширением .flp это
не обычные файлы, которые можно
записать на диск. Это образы всего содержимого диска.
Это означает, что вы не можете
просто скопировать их с одного диска на другой.
Вместо этого, нужно использовать
специальные утилиты для записи образов на диск.DOSЕсли вы записываете флоппи на компьютере под
&ms-dos;/&windows;, используйте утилиту
fdimage.Если вы используете образы с CDROM, и буква вашего
CDROM E:,
запустите ее так:E:\>tools\fdimage floppies\kern.flp A:Повторите эту команду для каждого файла
.flp, вставляя новую дискету каждый раз,
пометьте каждый диск именем файла, который вы скопировали на него.
Измените команду если потребуется, в зависимости от места, куда вы
поместили файлы .flp. Если у вас нет
CDROM, fdimage может быть загружена
из каталога tools FTP сервера FreeBSD.Если вы записываете дискеты под &unix; (например,
под другой системой FreeBSD), используйте утилиту &man.dd.1;
для записи образов непосредственно на дискеты. Под FreeBSD
запустите:&prompt.root; dd if=kern.flp of=/dev/fd0Под FreeBSD, /dev/fd0 означает первый
гибкий диск (диск A:).
/dev/fd1 будет диском
B:, и так далее. Другие &unix;
системы могут по-другому именовать устройства гибких дисков,
вам возможно понадобится прочитать документацию по
соответствующей системе.Теперь вы готовы к установке FreeBSD.Начало установкиКак правило, программа установки не будет производить никаких
изменений на дисках, пока не выдаст следующее сообщение:Last Chance: Are you SURE you want continue the installation?
If you're running this on a disk with data you wish to save then WE
STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding!
We can take no responsibility for lost disk contents!Установка может быть прервана в любой момент до этого
предупреждения без каких-либо изменений на жестком диске. Если вы
считаете, что что-то настроили неправильно, можете просто
выключить компьютер без риска что-либо повредить.ЗагрузкаЗагрузка &i386;Компьютер выключен.Включите компьютер. После включения он должен показать
способ входа в меню установки BIOS, как правило это
клавиши F2, F10,
Del, или
AltS. Используете те клавиши, которые показаны на экране.
В некоторых случаях компьютер может показывать картинку после
запуска. Как правило, нажатие Esc уберет картинку
и позволит вам увидеть необходимую информацию.Найдите установки системы, указывающие ей с какого устройства
загружаться. Обычно они обозначаются как Boot Order,
и там как правило отображен список устройств, таких как
Floppy, CDROM,
First Hard Disk, и так далее.Если вы подготовили дискеты, убедитесь, что выбран
Floppy. Если вы загружаетесь с CDROM, убедитесь что
выбран он. Если вы не уверены, посмотрите руководство к
компьютеру и/или к его материнской плате.Сделайте изменения, затем сохраните их и выйдите. Компьютер
должен перезагрузиться.Если вы подготовили дискеты, как описано в разделе
, одна из них будет первым
загрузочным диском; как правило, это дискета с
kern.flp. Вставьте эту дискету в
дисковод.Если вы загружаетесь с CDROM, потребуется сначала
включить компьютер и вставить компакт-диск как только это станет
возможно.Если компьютер запускается как обычно, и загружает
существующую операционную систему, возможны следующие причины:Диск был вставлен недостаточно рано в процессе загрузки.
Оставьте его внутри и перегрузите компьютер.Установки BIOS, измененные ранее, действуют неправильно.
Надо изменять их, пока они не заработают.BIOS вашего компьютера не поддерживает загрузку с
выбранного типа носителя.FreeBSD начнет загрузку. Если загрузка происходит с CDROM, вы
увидите что-то вроде этого (информация о версии удалена):Verifying DMI Pool Data ........
Boot from ATAPI CD-ROM :
1. FD 2.88MB System Type-(00)
Uncompressing ... done
BTX loader 1.00 BTX version is 1.01
Console: internal video/keyboard
BIOS drive A: is disk0
BIOS drive B: is disk1
BIOS drive C: is disk2
BIOS drive D: is disk3
BIOS 639kB/261120kB available memory
FreeBSD/i386 bootstrap loader, Revision 0.8
/kernel text=0x277391 data=0x3268c+0x332a8 |
|
Hit [Enter] to boot immediately, or any other key for command prompt.
Booting [kernel] in 9 seconds... _Если происходит загрузка с дискеты, вы увидите что-то вроде
этого (информация о версии удалена):Verifying DMI Pool Data ........
BTX loader 1.00 BTX version is 1.01
Console: internal video/keyboard
BIOS drive A: is disk0
BIOS drive C: is disk1
BIOS 639kB/261120kB available memory
FreeBSD/i386 bootstrap loader, Revision 0.8
/kernel text=0x277391 data=0x3268c+0x332a8 |
Please insert MFS root floppy and press enter:Следуя инструкциям, уберите дискету с
kern.flp, вставьте дискету с
mfsroot.flp и нажмите
Enter.Идет ли загрузка с дискет или с CDROM,
в процессе загрузки появится:Hit [Enter] to boot immediately, or any other key for command prompt.
Booting [kernel] in 9 seconds... _Подождите десять секунд или нажмите Enter.
Будет запущено меню конфигурации ядра.Загрузка AlphaAlphaКомпьютер выключен.Включите компьютер и дождитесь приглашения к загрузке
на мониторе.Если вы подготовили загрузочные дискеты, как описано в разделе
, одна из них будет
первым загрузочным диском; как правило, это дискета с
kern.flp. Вставьте эту дискету в дисковод
и наберите следующую команду для загрузки
(замените на имя вашего дисковода если потребуется):>>>BOOT DVA0 -FLAGS '' -FILE ''Если вы загружаетесь с CDROM, вставьте компакт-диск в
привод и наберите для начала установки следующую команду
(замените на имя соответствующего устройства
CDROM если потребуется):>>>BOOT DKA0 -FLAGS '' -FILE ''FreeBSD начнет загружаться. Если загрузка идет с дискет, через
некоторое время вы увидите сообщение:Please insert MFS root floppy and press enter:Следуя инструкциям, удалите дискету с
kern.flp, вставьте дискету с
mfsroot.flp и нажмите
Enter.Идет ли загрузка с дискет или с CDROM,
в процессе загрузки появится:Hit [Enter] to boot immediately, or any other key for command prompt.
Booting [kernel] in 9 seconds... _Подождите десять секунд или нажмите Enter.
Будет запущено меню конфигурации ядра.Конфигурация ядра (kernel)Начиная с FreeBSD версии 5.0 и более поздних, userconfig
был удален в пользу метода &man.device.hints.5;. За более подробной
информацией о &man.device.hints.5; обращайтесь к kernel это ядро операционной системы.
В нем реализовано множество функций, включая доступ ко
всем устройствам, которые могут быть в системе, таким как
жесткие диски, сетевые карты, звуковые карты и т.д. Каждое устройство,
поддерживаемое ядром FreeBSD имеет свой драйвер. У каждого
драйвера есть имя из двух или трех букв, например sa
для драйвера последовательного доступа SCSI, или
sio
для драйвера последовательного ввода-вывода (который управляет
COM портами).Когда ядро загружено, каждый драйвер проверяет систему на
предмет наличия поддерживаемого оборудования. Если оно найдено,
драйвер конфигурирует оборудование и делает его доступным остальной
части ядра.Такая проверка обычно называется тестированием
устройства. К сожалению, это не всегда
безопасно. Некоторые драйвера конфликтуют между собой,
и проверка части оборудования иногда может привести другую
часть в неработоспособное состояние. Это основное ограничение
архитектуры PC.Многие старые устройства называются ISA — в
противоположность PCI. Стандарт ISA требует, чтобы в каждом
устройстве была прописана некоторая информация, обычно номер
Interrupt Request Line (IRQ) и адрес порта ввода-вывода, которые
используются драйвером. Эта информация обычно устанавливается
с использованием перемычек на карте, или с помощью DOS
утилиты.Часто это вызывало проблемы, поскольку было
невозможно использовать два устройства с одинаковыми IRQ или
адресами портов.Новые устройства поддерживают PCI стандарт, который не
требует установки параметров вручную, так как устройства способны
общаться с BIOS и договариваться, какие IRQ и адреса портов
ввода-вывода использовать.Если в вашем компьютере есть устройства ISA, FreeBSD
драйвер для этого устройства должен быть настроен с IRQ и
адресом порта установленными на карте. Для этого может
понадобиться собрать сведения об оборудовании ().К сожалению, номера IRQ и адреса портов, используемые
некоторыми драйверами, конфликтуют. Это потому, что некоторые
устройства ISA поставляются с конфликтующими номерами IRQ
или адресами портов. По умолчанию драйвера FreeBSD
предусмотрительно настроены для использования заводских установок,
поэтому будут работать столько устройств, сколько возможно.Это как правило не проблема при каждодневном использовании FreeBSD.
В компьютере обычно нет двух конфликтующих устройств,
поскольку в противном случае одно из них не будет работать
(независимо от используемой операционной системы).Это может стать проблемой при установке FreeBSD в первый раз,
потому что ядро, используемое для установки, собрано с максимальным
количеством драйверов для поддержки множества различных
конфигураций оборудования. Это означает, что некоторые из драйверов
имеют конфликтующие настройки. Устройства тестируются в строго
определенном порядке, и если у вас есть устройство, тестирующееся
позже, но конфликтующее с ранее протестированным устройством,
оборудование может не работать или быть некорректно протестировано
в процессе установки FreeBSD.Поэтому первое, что вы должны сделать при установке
FreeBSD — проверить список устройств, настроенных в
ядре. Отключите некоторые из них, если таких устройств нет.
Подтвердите (и измените) конфигурацию, если
это устройство присутствует, но установки по умолчанию неверны.Возможно, это звучит гораздо сложнее чем есть на самом деле.На показано главное меню
конфигурации ядра. Мы рекомендуем выбрать опцию
Start kernel configuration in full-screen visual
mode, так как это самый простой интерфейс для
нового пользователя.Меню конфигурации ядра&txt.install.userconfig;Экран конфигурации ядра ()
поделен на четыре части:Свернутый список устройств, помеченных как
active, поделен на группы, такие как
Storage, и Network.
Каждый драйвер показан в виде описания, имени из двух
или трех букв, используемых IRQ и порта. В дополнение,
если какой-либо активный драйвер конфликтует с другим
активным драйвером, после имени драйвера пишется
CONF. В этом разделе также показано
общее число конфликтующих активных драйверов. Драйверы, помеченные как неактивные. Они остаются в ядре,
но не будут тестировать свои устройства при загрузке ядра.
Они поделены на группы так же как и активные драйверы.Дополнительная информация о выбранном в данный момент
драйвере, включая IRQ и адрес порта.Информация об управляющих клавишах, доступных в данный
момент.Визуальный интерфейс конфигурации ядра&txt.install.userconfig2;Не беспокойтесь если появятся сообщения о конфликтах,
так и должно быть; все драйверы
включены и как уже объяснялось, некоторые из них будут
конфликтовать с другими.Сейчас вам нужно просмотреть список драйверов и
разрешить конфликты.Разрешение конфликтов драйверовНажмите X. Это полностью раскроет список
драйверов и вы сможете увидеть их все. Вам понадобятся
клавиши навигации для прокрутки назад и вперед в списке
активных драйверов. показывает результат
действия X.Развернутый список драйверовОтключите все драйвера устройств, которых у вас нет. Для
отключения драйвера, переместитесь к нему с помощью клавиш
навигации и нажмите Del. Драйвер будет
помещен в список Inactive Drivers.Если вы случайно отключили нужное устройство, нажмите
Tab для переключения на Inactive
Drivers, выберите отключенный драйвер, и
нажмите Enter, чтобы вернуть его обратно в список
активных драйверов.Не отключайте sc0. Он управляет
экраном, и он нужен, если только вы не производите установку
через последовательный порт.Отключайте atkbd0 только если
вы используете USB клавиатуру. Если клавиатура обычная,
оставьте atkbd0.Если конфликтов нет, можете пропустить этот этап.
В другом случае оставшиеся конфликты должны быть проверены. Если
они не помечены как allowed conflict в окне
сообщений, должны быть изменены или IRQ/адрес порта для
тестирования устройства, или IRQ/адрес порта
физического устройства.Для изменения IRQ и адреса порта ввода-вывода драйвера,
выберите устройство и нажмите Enter. Курсор
переместится в третье окно и вы сможете изменить значения.
вам нужно ввести значения IRQ и адреса порта, определенные
в процессе сбора информации об оборудовании.
Нажмите Q для завершения редактирования
конфигурации устройства и возвращения в список активных
устройств.Если вы не уверены, какими должны быть эти значения,
попробуйте использовать -1. Некоторые драйвера
FreeBSD могут безопасно протестировать оборудование
для определения правильных значений, и значение
-1 указывает им сделать это.Процедура изменения адреса физического устройства различна
для разных устройств. Для некоторых устройств вам может
понадобиться извлечь карту из компьютера и установить перемычки или
DIP переключатели. Другие устройства могут поставляться с DOS
дискетой, содержащей программы, используемые для перенастройки
карты. В любом случае, обращайтесь к документации, поставляемой
с устройством. Изменение адреса несомненно потребует
перезагрузки компьютера, так что вам потребуется опять
вернуться к процессу установки FreeBSD после
перенастройки карты.Когда все конфликты будут разрешены, экран будет выглядеть как
.Конфигурация драйверов без конфликтовКак видите, список активных драйверов стал гораздо меньше,
поскольку в нем только драйвера реально установленных
устройств.Теперь вы можете сохранить изменения и перейти к следующему
пункту установки. Нажмите Q для выхода из меню
конфигурации. Появится сообщение:Save these parameters before exiting? ([Y]es/[N]o/[C]ancel)Нажмите Y для сохранения параметров
в памяти (они будут сохранены на диск после завершения установки)
и тестирование начнется. После отображения белым по черному
результатов тестирования запустится
sysinstall
и отобразится главное меню
().Главное меню SysinstallПросмотр результатов тестирования устройствПоследние несколько сотен линий, отображенные на экране,
сохраняются и могут быть просмотрены.Для просмотра буфера нажмите Scroll Lock. Это
включит прокрутку экрана. Вы можете использовать клавиши навигации или
PageUp и PageDown для просмотра
результатов. Нажмите Scroll Lock еще раз для
отключения прокрутки.Сделайте это сейчас для просмотра текста, ушедшего за экран,
когда ядро закончило тестирование устройств. Вы увидите текст вроде
, хотя в деталях он будет отличаться
в зависимости от устройств, имеющихся в вашем компьютере.Типичный вывод Device Probeavail memory = 253050880 (247120K bytes)
Preloaded elf kernel "kernel" at 0xc0817000.
Preloaded mfs_root "/mfsroot" at 0xc0817084.
md0: Preloaded image </mfsroot> 4423680 bytes at 0xc03ddcd4
md1: Malloc disk
Using $PIR table, 4 entries at 0xc00fde60
npx0: <math processor> on motherboard
npx0: INT 16 interface
pcib0: <Host to PCI bridge> on motherboard
pci0: <PCI bus> on pcib0
pcib1:<VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge> at device 1.0 on pci0
pci1: <PCI bus> on pcib1
pci1: <Matrox MGA G200 AGP graphics accelerator> at 0.0 irq 11
isab0: <VIA 82C586 PCI-ISA bridge> at device 7.0 on pci0
isa0: <iSA bus> on isab0
atapci0: <VIA 82C586 ATA33 controller> port 0xe000-0xe00f at device 7.1 on pci0
ata0: at 0x1f0 irq 14 on atapci0
ata1: at 0x170 irq 15 on atapci0
uhci0 <VIA 83C572 USB controller> port 0xe400-0xe41f irq 10 at device 7.2 on pci
0
usb0: <VIA 83572 USB controller> on uhci0
usb0: USB revision 1.0
uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr1
uhub0: 2 ports with 2 removable, self powered
pci0: <unknown card> (vendor=0x1106, dev=0x3040) at 7.3
dc0: <ADMtek AN985 10/100BaseTX> port 0xe800-0xe8ff mem 0xdb000000-0xeb0003ff ir
q 11 at device 8.0 on pci0
dc0: Ethernet address: 00:04:5a:74:6b:b5
miibus0: <MII bus> on dc0
ukphy0: <Generic IEEE 802.3u media interface> on miibus0
ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
ed0: <NE2000 PCI Ethernet (RealTek 8029)> port 0xec00-0xec1f irq 9 at device 10.
0 on pci0
ed0 address 52:54:05:de:73:1b, type NE2000 (16 bit)
isa0: too many dependant configs (8)
isa0: unexpected small tag 14
orm0: <Option ROM> at iomem 0xc0000-0xc7fff on isa0
fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq2 on isa0
fdc0: FIFO enabled, 8 bytes threshold
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
atkbd0: <AT Keyboard> flags 0x1 irq1 on atkbdc0
kbd0 at atkbd0
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model Generic PS/@ mouse, device ID 0
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A
sio1 at port 0x2f8-0x2ff irq 3 on isa0
sio1: type 16550A
ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
pppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/15 bytes threshold
plip0: <PLIP network interface> on ppbus0
ad0: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata0-master UDMA33
acd0: CD-RW <LITE-ON LTR-1210B> at ata1-slave PIO4
Mounting root from ufs:/dev/md0c
/stand/sysinstall running as init on vty0Внимательно проверьте результаты тестирования устройств и
убедитесь, что FreeBSD обнаружила все устройства какие нужно.
Если устройство не найдено, его не будет в списке. Если драйвер
устройства нуждается в настройке IRQ и адреса порта, проверьте,
введены ли они правильно.Если вам нужно внести изменения в UserConfig,
потребуется выйти из sysinstall
и начать сначала. Это также хороший путь познакомиться поближе с
процессом конфигурации.Выбор Sysinstall ExitИспользуйте клавиши навигации для выбора
Exit Install из главного меню.
Отобразится сообщение: User Confirmation Requested
Are you sure you wish to exit? The system will reboot
(be sure to remove any floppies from the drives).
[ Yes ] NoПрограмма установки запустится опять, если компакт-диск
остался в устройстве и было выбрано &gui.yes;.Если вы загружаетесь с дискет, необходимо будет извлечь
дискету с mfsroot.flp и заменить ее дискетой с
kern.flp перед перезагрузкой.Введение в SysinstallУтилита sysinstall это программа
установки, предоставляемая проектом FreeBSD. Это консольное приложение,
разделенное на несколько меню и экранов, которые вы можете использовать
для настройки и управления процессом установки.Меню sysinstall управляется
клавишами навигации, Enter, пробелом, и
другими. Подробное описание клавиш и их функций содержится в информации
по использованию sysinstall.Для просмотра этой информации убедитесь, что выбраны пункт
Usage и кнопка
[Select], как показано на , затем нажмите Enter.Будут показаны инструкции по использованию меню. После
просмотра инструкций, нажмите Enter для
возврата в главное меню.Выбор Usage в главном меню SysinstallВыбор меню документации (Doc)Из главного меню выберите клавишами навигации
Doc и нажмите Enter.Выбор меню документацииБудет отображено меню документации.Меню документации SysinstallРекомендуется прочитать предоставляемую документацию.Для просмотра документа выберите его с помощью клавиш
навигации и нажмите Enter. После
прочтения документа нажмите Enter для
возврата в меню документации.Для возврата в главное меню выберите
Exit с помощью клавиш навигации и
нажмите Enter.Выбор меню раскладки клавиатуры (Keymap)Для изменения раскладки клавиатуры выберите из меню с
помощью клавиш навигации Keymap
и нажмите Enter. Это потребуется только при
использовании нестандартной или не-US клавиатуры.Выбор меню раскладки клавиатурыРазличные раскладки клавиатуры могут быть выбраны из
меню с использованием клавиш навигации, затем следует
нажать Space. Нажатие Space
еще раз приведет к отмене выбора. Когда необходимые раскладки
будут выбраны, перейдите на &gui.ok; с помощью клавиш
навигации и нажмите Enter.На экран выведена только часть списка. Нажав
Tab, можно выбрать &gui.cancel;, вернуться к
раскладке по умолчанию и перейти к главному меню.Меню раскладки клавиатурыПараметры установки (Options)Выберите пункт Options
и нажмите Enter.Выбор параметров установкиПараметры SysinstallПараметры по умолчанию обычно устраивают большинство
пользователей и не нуждаются в изменении. Имя релиза зависит
от устанавливаемой версии.Описание выбранного пункта будет появляться внизу экрана
с синей подсветкой. Обратите внимание, что один из
параметров — Use Defaults,
означает сброс всех параметров к значениям по
умолчанию.Нажатие F1 отобразит справку
по различным параметрам.Нажатием Q можно перейти к
главному меню.Начало стандартной установки (Standart)Пункт Standard
рекомендуется для новых пользователей &unix; или FreeBSD.
Используйте клавиши навигации для выбора пункта
Standard, а затем нажмите
Enter для запуска установки.Начало стандартной установкиВыделение дискового пространстваВаша первая задача — выделить дисковое пространство под
FreeBSD и разметить его, чтобы sysinstall
могла его подготовить. Для этого вам нужно знать, как FreeBSD
ищет информацию на диске.Нумерация дисков в BIOSПеред установкой и настройкой FreeBSD
нужно позаботиться кое о чем, особенно если
жестких дисков несколько.DOSMicrosoft WindowsВ PC, работающем под BIOS-зависимой операционной
системой, такой как &ms-dos; или µsoft.windows;, BIOS
может отходить от обычного порядка нумерации дисков. Это
позволяет пользователю загружаться не только с так
называемого primary master диска. Это особенно
удобно для тех пользователей, кто обнаружил, что простейший и самый
дешевый путь делать резервную копию системы — купить второй
идентичный первому жесткий диск и регулярно делать копии первого
диска на второй, используя
Ghost
или XCOPY. Затем, если первый диск выйдет из
строя, будет заражен вирусом или поврежден из-за сбоя
операционной системы, он может быть легко восстановлен
путем логической перестановки дисков в BIOS. Это все равно
что переключить кабели дисков, но без вскрытия корпуса.SCSIBIOSБолее дорогостоящие системы со SCSI контроллерами
зачастую имеют расширения BIOS, позволяющие
сходным путем менять порядок до семи SCSI дисков.Пользователи, привыкшие пользоваться этими полезными
функциями, могут быть удивлены, что во FreeBSD результаты не
совпадают с ожидаемыми. FreeBSD не использует BIOS, и не
знает о логическом отображении дисков в BIOS. Это может
привести к очень сложным ситуациям, особенно когда диски
имеют одинаковую геометрию и содержат точную копию данных
друг друга.При использовании FreeBSD всегда восстанавливайте
настройки BIOS к первоначальной нумерации перед установкой
системы и оставляйте их в таком виде. Если вам понадобится
переключить диски, сделайте это, но путем физического
переконфигурирования, вскрыв корпус, переключив перемычки и
кабели.Рассказ о необыкновенных приключениях файлов Билла и Фреда:Билл разобрал старый Wintel компьютер, чтобы
сделать еще один компьютер под FreeBSD для Фреда. Билл
установил один SCSI диск как нулевое устройство
SCSI и поставил на него FreeBSD.Фред начал использовать систему, но через
несколько дней обнаружил, что старый SCSI диск сообщает
о множестве сбоев и сказал об этом Биллу.Еще через несколько дней Билл решил, что настало
время решить проблему, и достал такой же SCSI диск
из заначки в кладовке. Первая проверка
поверхности показала, что диск работает нормально;
Билл установил этот диск как четвертое устройство
SCSI и скопировал образ диска с нулевого устройства
на четвертое. Теперь, когда новый диск был
установлен и отлично работал, Билл решил что
неплохо бы начать использовать его, и с помощью
функции SCSI BIOS поменял порядок дисков, чтобы
система могла грузиться с четвертого устройства
SCSI. FreeBSD загрузилась и работала без
проблем.Фред поработал еще несколько дней, и скоро они с
Биллом решили, что настало время для нового
приключения — время обновить версию FreeBSD. Билл
удалил нулевое устройство SCSI, потому что оно
подглючивало, и установил на его место такой же диск из
заначки. Затем Билл установил новую версию
FreeBSD на новое нулевое устройство SCSI используя
дискеты Фреда с интернет сервера FTP. Установка прошла
отлично.Фред использовал новую версию FreeBSD несколько
дней и удостоверился, что она вполне подходит для работы
в инженерном отделе. Настало время скопировать все
архивы со старого диска. Фред смонтировал четвертое
устройство SCSI (последнюю копию старой версии
FreeBSD) и обнаружил, что ни одного из его
драгоценных файлов на четвертом устройстве SCSI
нет.Куда делись данные?Когда Билл сделал копию с нулевого устройства
SCSI на четвертое устройство SCSI, оно стало
клоном. Когда Билл поменял настройки SCSI BIOS,
чтобы загрузиться с четвертого устройства SCSI, он
всего лишь обманул сам себя. FreeBSD все еще
работала с нулевого устройства SCSI. Изменение этих
настроек BIOS привело к загрузке части кода Boot и
Loader с выбранного в BIOS диска, но после загрузки
драйверов FreeBSD настройки BIOS были
проигнорированы, и FreeBSD вернулась к нормальной
нумерации. Как показано на пальцах, система
продолжила работать с нулевым устройством SCSI, и
все данные Фреда остались там, а не на четвертом
устройстве SCSI. То, что система грузилась с
четвертого устройства SCSI, было всего лишь
обманутыми ожиданиями.Мы рады упомянуть, что данные не были уничтожены
или повреждены при нашем исследовании этого
феномена. Старое нулевое устройство SCSI было
вытащено из груды железа, и все файлы Фреда
вернулись к нему.Хотя в этом рассказе были использованы SCSI
диски, с IDE дисками все точно так же.Создание слайсов с использованием FDiskВнесенные вами изменения не будут записываться на диск сразу.
Если вы думаете, что сделали ошибку, и хотите начать сначала, можете
использовать меню для выхода из sysinstall
и попробовать еще раз или нажатием U вызвать
опцию Undo (отмена). Если вы запутались и не можете выйти, просто
выключите компьютер.После начала стандартной установки в
sysinstall будет показано это
сообщение: Message
In the next menu, you will need to set up a DOS-style ("fdisk")
partitioning scheme for your hard disk. If you simply wish to devote
all disk space to FreeBSD (overwriting anything else that might be on
the disk(s) selected) then use the (A)ll command to select the default
partitioning scheme followed by a (Q)uit. If you wish to allocate only
free space to FreeBSD, move to a partition marked "unused" and use the
(C)reate command.
[ OK ]
[ Press enter or space ]Нажмите Enter как предлагается. Будет
показан список всех жестких дисков, обнаруженных ядром во время
тестирования устройств.
показывает пример системы
с двумя IDE дисками. Они были названы
ad0 и ad2.Выберите диск для FDiskВы можете быть удивлены, почему устройства
ad1 здесь нет. Почему оно было
пропущено?Предположим, что у вас есть два жестких диска IDE, один
master на первом контроллере IDE, а второй master на
втором контроллере IDE. Если FreeBSD пронумерует их
в том порядке, в котором нашла, ad0 и
ad1, все будет работать.Но если вы добавите третий диск, как slave устройство на
первый контроллер IDE, он станет ad1,
а предыдущий ad1 станет
ad2. Поскольку имена устройств (таких как
ad1s1a) используются для обращения к
файловым системам, вы можете вдруг обнаружить, что некоторые из ваших
файловых систем больше не отображаются правильно и вам потребуется
изменить конфигурацию FreeBSD.Для обхода этой проблемы, ядро может быть настроено так, чтобы
именовать IDE диски на основе их местоположения, а не порядка, в
котором они были найдены. С этой схемой master диск на втором
контроллере IDE будет всегда устройством
ad2, если даже нет устройств
ad0 или ad1.Это конфигурация ядра FreeBSD по умолчанию, поэтому
на экране показаны ad0 и
ad2. У компьютера, с которого был взят этот
снимок экрана, есть по одному IDE диску на обеих master каналах IDE
контроллеров и ни одного диска на каналах slave.Вы должны выбрать диск, на который хотите установить FreeBSD,
и нажать &gui.ok;.
Запустившийся FDisk будет выглядеть
примерно как .Экран FDisk разбит на три
секции.Первая секция, занимающая первые две линии экрана, показывает
подробную информацию о выбранном в данный момент диске, включая его
имя во FreeBSD, геометрию и общий размер диска.Вторая секция показывает имеющиеся в данный момент на диске слайсы,
где они начинаются и заканчиваются, их размер, имя, которое им дала
FreeBSD, описание и подтип. На этом примере показаны два маленьких
неиспользованных слайса, которые являются артефактами схемы разметки
диска на PC. Также показан один большой FAT слайс, который почти всегда
является диском C: в &ms-dos; / &windows;, и
дополнительный слайс, который может содержать диски с другими буквами
для &ms-dos; / &windows;.Третья секция показывает команды, доступные в
FDisk.Типичные разделы fdisk перед редактированиемВаши действия теперь будут зависеть от того, как вы хотите разбить
диск на слайсы.Если вы хотите использовать для FreeBSD весь диск (это приведет
к удалению всех других данных на этом диске когда вы подтвердите
sysinstall продолжение процесса установки),
нажмите A, что соответствует опции
Использовать весь диск (Use Entire Disk).
Существующие слайсы будут удалены, и заменены на небольшую область,
помеченную как неиспользуемая (unused)
(это опять же артефакт разметки диска PC), и один большой слайс для
FreeBSD. Когда вы сделаете это, нужно выбрать вновь созданный
слайс FreeBSD используя клавиши навигации, а затем нажать
S, чтобы сделать слайс загрузочным. Экран будет
похож на . Обратите внимание, что
A в колонке Flags означает, что
слайс активен и с него будет происходить
загрузка.Если вы будете удалять существующий слайс для освобождения места
под FreeBSD, выберите слайс, используя клавиши навигации, и нажмите
D. Затем можете нажать C,
и получить приглашение на ввод размера слайса, который вы хотите
создать. Введите соответствующее значение и нажмите
Enter. Значение по умолчанию в этом поле
означает наибольший размер слайса, который может быть выбран;
это может быть наибольший непрерывный блок неразмеченного
пространства или размер всего жесткого диска.Если вы уже освободили место для FreeBSD (возможно, используя
утилиту похожую на &partitionmagic;),
можете нажать C для создания нового слайса.
Будет также предложено ввести размер слайса, который вы
хотите создать.Разбиение в Fdisk с использованием всего дискаКогда закончите, нажмите Q. Изменения будут
сохранены в sysinstall, но еще не
записаны на диск.Установка менеджера загрузки (Boot Manager)Теперь вам предлагается установить менеджера загрузки. Как
правило, нужно выбрать установку менеджера загрузки если:У вас больше чем один диск и вы устанавливаете FreeBSD не на
первый диск.Вы устанавливаете FreeBSD вместе с другой операционной
на один и тот же диск, и хотите выбирать при загрузке FreeBSD
или другую операционную систему.Если FreeBSD единственная операционная система, установленная
на этом компьютере, и находится на первом жестком диске,
подойдет менеджер загрузки Standard.
Выберите None если вы используете
менеджер загрузки сторонних разработчиков, способный загрузить
FreeBSD.Сделайте выбор и нажмите Enter.Меню менеджера загрузки SysinstallЭкран подсказки, вызываемый по нажатию F1,
описывает проблемы, которые могут быть встречены при попытке
совместного использования диска операционными системами.Создание слайсов на другом дискеЕсли дисков больше чем один, вернитесь к экрану выбора дисков
(Select Drives) после выбора менеджера загрузки. Если вы собираетесь
устанавливать FreeBSD более чем на один диск, можете выбрать другой
диск и повторить процесс разбиения на слайсы с использованием
FDisk.Если вы устанавливаете FreeBSD не на первый жесткий диск,
потребуется установить менеджер загрузки FreeBSD на оба
диска.Выход из выбора дискаКлавиша Tab переключает между последним выбранным
диском, &gui.ok;, и
&gui.cancel;.Нажмите Tab один раз для выбора
&gui.ok;, затем нажмите Enter
для продолжения установки.Создание разделов с помощью
DisklabelТеперь вы должны создать несколько разделов внутри каждого только
что созданного слайса. Запомните, что у каждого раздела есть буква с
a до h, а
разделы b, c, и
d имеют соглашения, которых вы должны
придерживаться.Некоторые приложения могут выигрывать от определенных схем
разделов, особенно если у вас разделы на более чем одном диске.
Тем не менее, для вашей первой установки FreeBSD не нужно
слишком углубляться в принципы разбиения диска. Более важно
установить FreeBSD и начать ее использовать. Вы всегда можете
переустановить FreeBSD для изменения схемы разделов, когда поближе
познакомитесь с операционной системой.Эта схема показывает четыре раздела — один для подкачки и
три для файловых систем.
Планирование разделов для первого дискаРазделФайловая системаРазмерОписаниеa/100 MBКорневая файловая система. Любая другая файловая
система будет смонтирована на эту. 100 MB это подходящий
размер для этой файловой системы. Вы не будете хранить на
ней слишком много данных, а обычная установка FreeBSD
разместит здесь около 40 MB данных. Оставшееся
пространство используется для временных файлов, а также
оставляет возможность расширения для будущих версий FreeBSD,
которым может понадобится больше места в
/.bN/A2-3 x RAMЗдесь находится раздел подкачки. Выбор правильного
размера раздела подкачки это немного искусство. Хороший
практический способ выбрать размер подкачки это установить
его равным двум или трем размерам доступной физической
памяти (RAM). Должно быть хотя бы 64 MB подкачки;
если в компьютере меньше чем 32 MB памяти —
установите размер подкачки равным 64 MB.
Если у вас больше одного диска, можно расположить подкачку
на каждом диске. FreeBSD будет использовать каждый диск,
что серьезно увеличит скорость подкачки. В этом
случае, определите общий размер подкачки, который вам нужен
(например, 128 MB),
и поделите его на число имеющихся дисков (например, два)
для определения размера разделов подкачки, которые нужно
разместить на каждом вашем диске, в этом примере 64 MB на
диск.e/var50 MBКаталог /var содержит файлы, которые
постоянно меняются; логи и другие административные файлы.
Многие из этих файлов интенсивно читаются и записываются
в процессе ежедневной работы FreeBSD. Размещение их
на отдельной файловой системе позволяет FreeBSD
оптимизировать доступ к этим файлам без затрагивания
других каталогов, не имеющих такой же модели доступа.f/usrОстальная часть дискаВсе другие файлы как правило хранятся в каталоге
/usr и его подкаталогах.
Если вы устанавливаете FreeBSD более чем на один диск, вы
должны также создать разделы в других слайсах, которые
настроили. Простейший путь сделать это — создать два раздела
на каждом диске, один для подкачки, а другой для файловой
системы.
Разметка разделов для остальных дисковРазделФайловая системаРазмерОписаниеbN/AСмотрите описаниеКак уже обсуждалось, вы можете распространить подкачку
на каждый диск. Даже если раздел a
свободен, соглашение говорит о том, что подкачка находится
на разделе b.e/disknОстальная часть дискаОстальная часть диска занята одним большим разделом.
Он легко может быть помещен на раздел a
вместо раздела e. Однако, соглашение
говорит что раздел a зарезервирован на
слайсе для корневой (/) файловой системы.
вы можете не следовать этому соглашению, но программа
sysinstall будет ему следовать,
поэтому приняв его, вы сделаете установку несколько проще.
вы можете монтировать эти файловые системы к любой точке; в
этом примере предлагается смонтировать их как каталоги
/diskn, где
n это номер, который уникален для
каждого диска. Но вы можете использовать другую схему, если
захотите.
Теперь, выбрав разметку разделов, можете приступить к их
созданию в sysinstall. Вы увидите
это сообщение: Message
Now, you need to create BSD partitions inside of the fdisk
partition(s) just created. If you have a reasonable amount of disk
space (200 MB or more) and don't have any special requirements, simply
use the (A)uto command to allocate space automatically. If you have
more specific needs or just don't care for the layout chosen by
(A)uto, press F1 for more information on manual layout.
[ OK ]
[ Press enter or space ]Нажмите Enter для запуска редактора разделов
FreeBSD, называемого Disklabel. показывает экран только что
запущенного Disklabel. Экран поделен
на три раздела.Первые несколько линий показывают имя диска, с которым вы сейчас
работаете и слайс, содержащий раздел который вы создаете (здесь
Disklabel называет это
именем раздела (Partition name) вместо имени
слайса). Этот экран также показывает объем свободного пространства на
слайсе; т.е. пространство, выделенное под слайс, но еще не отданное
под раздел.В центре экрана показаны уже созданные разделы, имена файловых
систем, содержащихся в разделах, их размер и некоторые опции,
применяемые при создания файловых систем.Нижняя треть экрана показывает управляющие клавиши, работающие в
Disklabel.Редактор Sysinstall DisklabelDisklabel может автоматически создать
разделы и присвоить им размеры по умолчанию. Попробуйте это, нажав
A. Вы увидите экран как на
. В зависимости от размера диска,
значения по умолчанию могут подходить или
не подходить вам. Это не имеет значения, если вы не принимаете
их.Начиная с FreeBSD 4.5, по умолчанию под каталог
/tmp выделяется собственный раздел вместо
использования части раздела /. Это
помогает избежать заполнения раздела /
временными файлами.Редактор Sysinstall Disklabel с установками по умолчаниюЕсли вы решили не использовать разделы по умолчанию и
заменить их на свои,
используйте клавиши навигации для выбора первого раздела, затем
нажмите D для его удаления. Повторите это для
удаления всех предложенных разделов.Для создания первого раздела (a, монтируемого
как / — root), убедитесь, что выбран
соответствующий слайс
вверху экрана и нажмите C. Появится диалог,
предлагающий выбрать размер нового раздела (как показано в
). Вы можете ввести количество
блоков диска, или количество мегабайт с
M после номера, или гигабайт с
G, или цилиндров с C.Начиная с FreeBSD 5.X, пользователи могут: выбирать
UFS2, используя опцию Custom Newfs
(Z), использовать опцию
Auto Defaults и изменять параметры с помощью
опции Custom Newfs, или
добавлять опцию в процессе создания раздела.
Не забудьте добавить для включения SoftUpdates
если вы используете опцию Custom Newfs!Свободное место для корневого разделаРазмер по умолчанию задан для создания корневого раздела на
весь слайс. Если вы используете размеры разделов, описанные ранее в примере,
удалите это значение используя Backspace,
а затем введите 64M, как показано на
. Затем нажмите
&gui.ok;.Редактирование размера корневого разделаПосле указания размера раздела вам будет задан вопрос, должен ли
этот раздел содержать файловую систему или раздел подкачки. Диалог
показан на . Первый раздел
будет содержать файловую систему, поэтому проверьте, что выбрана
FS и нажмите
Enter.Выбор типа корневого разделаНаконец, поскольку вы создаете файловую систему, нужно сказать
Disklabel где файловая система будет
смонтирована. Диалог показан на
. Точка монтирования
корневой файловой системы /, поэтому введите
/, и нажмите Enter.Выбор точки монтирования корневой файловой системыНа экране будет показан вновь созданный раздел. Вам нужно
повторить эту процедуру для других разделов. При создании
раздела подкачки вопроса про точку монтирования не будет,
поскольку раздел подкачки никогда не монтируется. Когда будете
создавать последний раздел, /usr, можете оставить
предложенный размер как есть, чтобы использовать весь остаток
слайса.Последний экран FreeBSD редактора DiskLabel будет похож на
, хотя ваш выбор значений может
быть другим. Нажмите Q, чтобы выйти.Редактор Sysinstall DisklabelВыбор устанавливаемых компонентовВыбор дистрибутивного набора (Distribution Set)Выбор дистрибутивного набора зависит в основном от направления
будущего использования системы и от доступного дискового
пространства. Предустановленные опции варьируются от наименьшей
возможной конфигурации до полной установки. Для новичков в
&unix; и/или FreeBSD лучшим выбором будет одна из этих
предустановленных опций. Настройка дистрибутивного набора
как правило нужна более опытным пользователям.Нажмите F1 для получения информации о
дистрибутивных наборах и их содержимом. После просмотра помощи
нажмите Enter для возврата к меню выбора
дистрибутивного набора.Если желательно наличие графического интерфейса пользователя,
должен быть выбран дистрибутивный набор с названием, начинающимся
на X. Настройка &xfree86;
и выбор десктопа по умолчанию — часть послеустановочного
процесса.Устанавливаемая по умолчанию версия
&xfree86; зависит от устанавливаемой версии
FreeBSD. Для версий FreeBSD ниже 4.6 устанавливается
&xfree86; 3.X. Для FreeBSD 4.6 и выше,
версия по умолчанию &xfree86; 4.X.Проверьте на веб-сайте
&xfree86; поддерживается ли ваша видеокарта. Если
видеокарта не поддерживается в версии по умолчанию, которую устанавливает
FreeBSD, выберите дистрибутивный набор без X. После установки
установите и настройте соответствующую версию
&xfree86; используя коллекцию портов.Если планируется пересборка ядра, выберите опцию, включающую
исходные тексты. Информация о том, зачем пересобирать ядро и
как это сделать, находится на .Ясно, что наиболее универсальная система включает все.
Если места на диске достаточно, выберите
All, как показано на
и нажмите
Enter. Если есть сомнения относительно того,
хватит ли диска, используйте наиболее подходящую опцию.
Не беспокойтесь о том, какой выбор будет наилучшим, другие
части дистрибутива могут быть добавлены после установки.Выбор дистрибутивных наборовУстановка коллекции портовПосле выбора подходящего дистрибутива можно будет выбрать
установку коллекции портов FreeBSD. Коллекция портов —
легкий и удобный путь установки программ. Коллекция портов не
содержит исходных кодов программ. Это набор файлов, который
автоматизирует загрузку, компилирование и установку
пакетов программного обеспечения сторонних разработчиков.
показывает как использовать коллекцию
портов.Программа установки не проверяет, есть ли достаточно места.
Выберите эту опцию только если его достаточно. В
FreeBSD &rel.current;, коллекция портов занимает около
&ports.size;. В более современных релизах это значение
всегда больше. User Confirmation Requested
Would you like to install the FreeBSD ports collection?
This will give you ready access to over &os.numports; ported software packages,
at a cost of around &ports.size; of disk space when "clean" and possibly much
more than that if a lot of the distribution tarballs are loaded
(unless you have the extra CDs from a FreeBSD CD/DVD distribution
available and can mount it on /cdrom, in which case this is far less
of a problem).
The ports collection is a very valuable resource and well worth having
on your /usr partition, so it is advisable to say Yes to this option.
For more information on the ports collection & the latest ports,
visit:
http://www.FreeBSD.org/ports
[ Yes ] NoВыберите &gui.yes; для установки
коллекции портов, или &gui.no;, чтобы
пропустить установку. Нажмите Enter, чтобы продолжить.
Меню выбора дистрибутивных наборов появится опять.Подтверждение выбора дистрибутивного набораЕсли вы согласны с выбранными опциями, переместитесь на
Exit, убедитесь что выбран
&gui.ok; и нажмите
Enter, чтобы продолжить.Выбор источника для установкиПри установке с CDROM или DVD используйте клавиши навигации, для перехода к
Install from a FreeBSD CD/DVD. Убедитесь
что выбран &gui.ok; и нажмите
Enter для запуска установки.При других методах установки выберите соответствующую опцию и
следуйте инструкциям.Нажмите F1 для просмотра справки по
источникам установки. Нажмите Enter для возврата к
меню выбора источника установки.Выбор источника установкиРежимы установки с FTPinstallationnetworkFTPЕсть три режима установки через FTP, которые вы можете выбрать:
активный FTP, пассивный FTP, или через HTTP прокси.Активный FTP: Install from an FTP
serverС этой опцией все закачки по FTP будут выполнены в
активном режиме. Этот режим не позволяет
работать через файрволл, но зачастую позволяет работать
со старыми серверами FTP, не поддерживающими пассивный
режим. Если соединение прерывается в пассивном режиме
(по умолчанию), попробуйте активный!Пассивный FTP: Install from an FTP server through a
firewallFTPПассивный режимЭта опция говорит sysinstall использовать
пассивный режим для работы с FTP.
Он позволяет работать через файрволл, не разрешающий
входящие соединения на случайных TCP портах.FTP через HTTP прокси: Install from an FTP server
through a http proxyFTPчерез HTTP проксиЭта опция говорит sysinstall использовать HTTP
протокол (как веб браузер) для работы с FTP через
прокси. Прокси будет транслировать все
запросы и посылать их на FTP сервер. Это позволяет
проходить через файрволл, на котором FTP запрещен,
но есть HTTP прокси. В этом случае
потребуется указать прокси и FTP сервер.Для работы с FTP через прокси, необходимо поместить имя
сервера как часть имени пользователя после знака
@. Прокси сервер обманет
настоящий сервер. Например, предположим что вы хотите провести
установку с ftp.FreeBSD.org, используя FTP
через прокси foo.example.com,
прослушивающем порт 1024.в этом случае, войдите в меню параметров, установите имя
пользователя FTP ftp@ftp.FreeBSD.org, а вместо
пароля введите свой адрес email. В качестве источника установки
выберите FTP (или пассивный FTP, если прокси его поддерживает), и URL
ftp://foo.example.com:1234/pub/FreeBSD.Так как /pub/FreeBSD с сервера
ftp.FreeBSD.org идет через прокси
foo.example.com, вы сможете провести
установку с этого компьютера (файлы будут загружены с
ftp.FreeBSD.org как требуется для
установки).Подтверждение установкиТеперь можно начинать установку. Это последний шанс
отменить установку и таким образом избежать изменений на жестком
диске. User Confirmation Requested
Last Chance! Are you SURE you want to continue the installation?
If you're running this on a disk with data you wish to save then WE
STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding!
We can take no responsibility for lost disk contents!
[ Yes ] NoВыберите &gui.yes; и нажмите
Enter, чтобы начать.Время установки сильно зависит от выбранного дистрибутивного набора,
источника установки и скорости компьютера.
Появится несколько сообщений о статусе процесса установки.Установка будет завершена когда отобразится следующее
сообщение: Message
Congratulations! You now have FreeBSD installed on your system.
We will now move on to the final configuration questions.
For any option you do not wish to configure, simply select No.
If you wish to re-enter this utility after the system is up, you may
do so by typing: /stand/sysinstall .
[ OK ]
[ Press enter to continue ]Нажмите Enter для начала послеустановочной
настройки.Выбор &gui.no; и нажатие
Enter прервет процесс установки,
изменения в систему внесены не будут. Появится следующее
сообщение: Message
Installation complete with some errors. You may wish to scroll
through the debugging messages on VTY1 with the scroll-lock feature.
You can also choose "No" at the next prompt and go back into the
installation menus to retry whichever operations have failed.
[ OK ]Это сообщение появилось поскольку ничего не было установлено.
Нажатие Enter вернет вас в главное меню установки,
чтобы выйти из нее.После установкиПосле успешной установки необходимо настроить множество параметров.
Некоторые параметры могут быть заданы из меню параметров после установки
перед загрузкой установленной FreeBSD или после с использованием
/stand/sysinstall, где надо выбрать пункт
Configure.Настройка сетевых устройств (Network Device Configuration)Если вы настраивали PPP для установки через FTP, этот экран
не появится, настройку можно будет произвести позже как описано
выше.Чтобы лучше узнать о локальных сетях и настройке
FreeBSD в качестве шлюза/маршрутизатора, обратитесь к главе
Advanced Networking. User Confirmation Requested
Would you like to configure any Ethernet or SLIP/PPP network devices?
[ Yes ] NoДля настройки сетевого устройства выберите
&gui.yes; и нажмите Enter.
Или нажмите &gui.no;, чтобы продолжить.Выбор Ethernet устройстваВыберите интерфейс для настройки с помощью клавиш навигации и
нажмите Enter. User Confirmation Requested
Do you want to try IPv6 configuration of the interface?
Yes [ No ]Для частной локальной сети обычный протокол интернет
(IPv4) вполне достаточен, поэтому выбрана кнопка
&gui.no; и нажат Enter.Если вы хотите подсоединиться к существующей сети
IPv6 через сервер RA,
выберите &gui.yes; и нажмите
Enter. Поиск RA серверов займет несколько
секунд. User Confirmation Requested
Do you want to try DHCP configuration of the interface?
Yes [ No ]Если DHCP (Dynamic Host Configuration Protocol) не нужен,
выберите &gui.no; с помощью клавиш навигации и
нажмите Enter.Выбор &gui.yes; запустит
dhclient, и если все пройдет нормально,
заполнит информацию о конфигурации сети автоматически. Обратитесь
к за более подробными сведениями.Следующий экран конфигурации сети показывает настройку
устройства Ethernet системы, которая будет работать шлюзом
для локальной сети.Настройка сети для ed0Используйте Tab для выбора полей и заполнения
их соответствующими данными:HostПолное имя хоста, в этом примере
k6-2.example.com.DomainИмя домена, в котором находится ваш компьютер,
в этом примере example.com.IPv4 GatewayIP хоста, пересылающего пакеты наружу локальной сети.
Вам потребуется заполнить его, если это компьютер, подключенный к
сети. Оставьте это поле пустым,
если компьютер является шлюзом в интернет для сети.
Шлюз IPv4 известен также как шлюз по умолчанию или маршрут
по умолчанию.Name serverIP адрес местного сервера DNS. В этой локальной сети
нет DNS сервера, поэтому использован IP адрес DNS сервера
провайдера (208.163.10.2).IPv4 addressIP адрес, использованный для этого интерфейса,
192.168.0.1NetmaskАдрес блока, использованного для этой локальной сети,
это блок класса C
(192.168.0.0 -
192.168.255.255).
Маска по умолчанию дана для сети класса C
(255.255.255.0).Дополнительные параметры для ifconfigЛюбые специфичные для интерфейса опции к
ifconfig, которые вы хотите добавить.
В данном случае ничего.Используйте Tab для выбора &gui.ok;
после окончания настройки и нажмите Enter. User Confirmation Requested
Would you like to Bring Up the ed0 interface right now?
[ Yes ] NoВыбор &gui.yes; и нажатие
Enter введет компьютер в сеть.
Тем не менее, компьютеру все еще требуется перезагрузка.Настройка шлюза (Configure Gateway) User Confirmation Requested
Do you want this machine to function as a network gateway?
[ Yes ] NoЕсли компьютер будет шлюзом для локальной сети, пересылая
пакеты между другими компьютерами, выберите
&gui.yes; и нажмите Enter.
Если это обычный компьютер, выберите &gui.no;
и нажмите Enter для продолжения.Настройка сервисов интернет (Configure Internet Services) User Confirmation Requested
Do you want to configure inetd and the network services that it provides?
Yes [ No ]Если выбрана &gui.no;, различные сервисы,
такие как telnetd не будут запущены. Это
означает, что удаленные пользователи не смогут зайти по
telnet на этот компьютер. Локальные
пользователи все же смогут заходит на удаленные компьютеры по
telnet.Эти сервисы могут быть включены после установки путем
редактирования /etc/inetd.conf с помощью вашего
любимого текстового редактора. Обращайтесь к
за более подробной информацией.Выберите &gui.yes; если хотите настроить
эти сервисы во время установки. Появится дополнительный запрос
подтверждения: User Confirmation Requested
The Internet Super Server (inetd) allows a number of simple Internet
services to be enabled, including finger, ftp and telnetd. Enabling
these services may increase risk of security problems by increasing
the exposure of your system.
With this in mind, do you wish to enable inetd?
[ Yes ] NoНажмите &gui.yes;, чтобы продолжить. User Confirmation Requested
inetd(8) relies on its configuration file, /etc/inetd.conf, to determine
which of its Internet services will be available. The default FreeBSD
inetd.conf(5) leaves all services disabled by default, so they must be
specifically enabled in the configuration file before they will
function, even once inetd(8) is enabled. Note that services for
IPv6 must be separately enabled from IPv4 services.
Select [Yes] now to invoke an editor on /etc/inetd.conf, or [No] to
use the current settings.
[ Yes ] NoВыбор &gui.yes; позволит добавить сервисы
путем удаления # перед началом строки.Редактирование inetd.confПосле добавления нужных сервисов нажатие Esc
отобразит меню, позволяющее выйти с сохранением изменений.Анонимный (Anonymous) FTP User Confirmation Requested
Do you want to have anonymous FTP access to this machine?
Yes [ No ]Запрещение анонимного FTPВыбор кнопки по умолчанию &gui.no; и нажатие
Enter все же позволит пользователям, имеющим учетные
записи с паролями, использовать FTP для доступа к компьютеру.Разрешение анонимного FTPКто угодно сможет получить доступ к компьютеру если
вы разрешите анонимные соединения FTP. Предварительно должны быть
рассмотрены возможные осложнения с безопасностью. Более подробная
информация о безопасности доступна на
.Чтобы разрешить анонимный FTP, используя клавиши навигации
выберите &gui.yes; и нажмите
Enter. Появится следующий (или похожий)
экран:Настройка по анонимного FTP по умолчаниюНажатие F1 отобразит справку:This screen allows you to configure the anonymous FTP user.
The following configuration values are editable:
UID: The user ID you wish to assign to the anonymous FTP user.
All files uploaded will be owned by this ID.
Group: Which group you wish the anonymous FTP user to be in.
Comment: String describing this user in /etc/passwd
FTP Root Directory:
Where files available for anonymous FTP will be kept.
Upload subdirectory:
Where files uploaded by anonymous FTP users will go.Корневой каталог ftp по умолчанию будет размещен в
/var. Если в нем предположительно не хватает
места для для нужд FTP, можно использовать каталог
/usr, выбрав корневой каталог FTP
(FTP Root Directory) /usr/ftp.Когда будут выбраны подходящие значения, нажмите
Enter, чтобы продолжить. User Confirmation Requested
Create a welcome message file for anonymous FTP users?
[ Yes ] NoЕсли вы выберете &gui.yes; и нажмете
Enter, запустится редактор, позволяющий
отредактировать сообщение FTP.Редактирование FTP Welcome MessageЭтот текстовый редактор называется ee.
Используйте инструкции, чтобы изменить сообщение, или измените
сообщение позже, используя выбранный вами редактор. Обратите
внимание, что имя/расположение файла показаны внизу окна
редактора.Нажмите Esc и появится меню с пунктом по
умолчанию a) leave editor
(выйти из редактора). Нажмите Enter, чтобы выйти и
продолжить. Нажмите Enter еще раз, чтобы
сохранить изменения, если они были сделаны.Настройка сетевой файловой системы (Configure Network File System)Сетевая файловая система (Network File System, NFS) позволяет
совместно использовать файлы в сети. Компьютер может быть настроен
как сервер, клиент, или как то и другое. Обратитесь к
за более подробной информацией.Сервер NFS (NFS Server) User Confirmation Requested
Do you want to configure this machine as an NFS server?
Yes [ No ]Если вам не нужен NFS сервер, выберите
&gui.no; и нажмите
Enter.Если выбран пункт &gui.yes;, появится
сообщение, говорящее о том, что должен быть создан файл
exports. Message
Operating as an NFS server means that you must first configure an
/etc/exports file to indicate which hosts are allowed certain kinds of
access to your local filesystems.
Press [Enter] now to invoke an editor on /etc/exports
[ OK ]Нажмите Enter, чтобы продолжить. Запустится
текстовый редактор, позволяющий создать и отредактировать файл
exports.Редактирование exportsИспользуйте инструкции для добавления экспортируемых файловых
систем сейчас, или позднее с помощью выбранного вами текстового
редактора. Обратите внимание, что имя/расположение файла показаны
внизу окна редактора.Нажмите Esc и появится меню с пунктом по
умолчанию a) leave editor. Нажмите
Enter, чтобы выйти и продолжить.Клиент NFS (NFS Client)NFS клиент позволяет организовать доступ к серверам NFS. User Confirmation Requested
Do you want to configure this machine as an NFS client?
Yes [ No ]С помощью клавиш навигации выберите &gui.yes;
или &gui.no;, как потребуется, и нажмите
Enter.Профиль безопасности (Security Profile)Профиль безопасности это набор параметров
настройки, с помощью которого делается попытка достичь
требуемого уровня безопасности и удобства путем разрешения или
запрещения запуска определенных программ и другими настройками.
Чем строже профиль безопасности, тем меньше программ будет
запущено по умолчанию. Это один из основных принципов безопасности:
не запускайте ничего кроме того что необходимо.Имейте ввиду, что профиль безопасности это лишь установка по
умолчанию. Любая программа может быть запущена или остановлена
после установки FreeBSD путем редактирования или добавления
соответствующих строк в /etc/rc.conf.
Для получения более подробной информации обратитесь к странице
справочника &man.rc.conf.5;.Следующая таблица описывает действие каждого профиля безопасности.
Колонки показывают выбранный вами профиль безопасности, а ряды
— программы или функции, которые профиль включает или
выключает.
Возможные профили безопасностиExtreme (Максимальный)Moderate (Умеренный)&man.sendmail.8;НЕТДА&man.sshd.8;НЕТДА&man.portmap.8;НЕТМОЖЕТ БЫТЬ
Portmapper включен, если компьютер был настроен в
процессе установки как NFS клиент или сервер.NFS serverНЕТДА&man.securelevel.8;ДА
Если вы выберете профиль безопасности с уровнем
Extreme или
High, будьте готовы к последствиям.
Прочитайте страницу справочника &man.init.8;
и уделите некоторое внимание значениям уровней
безопасности, или позже могут возникнуть
серьезные проблемы!НЕТ
User Confirmation Requested
Do you want to select a default security profile for this host (select
No for "medium" security)?
[ Yes ] NoВыбор &gui.no; и нажатие
Enter установит профиль безопасности к среднему
значению.Выбор &gui.yes; и нажатие
Enter позволит выбрать другой профиль
безопасности.Параметры профиля безопасностиНажмите F1, чтобы получить помощь. Нажмите
Enter для возврата к меню выбора.Используйте клавиши навигации для выбора
Medium, если вы не уверены, что
необходим другой уровень. С подсвеченным
&gui.ok; нажмите Enter.Будет отображен запрос на подтверждение, соответствующий выбранным
настройкам безопасности. Message
Moderate security settings have been selected.
Sendmail and SSHd have been enabled, securelevels are
disabled, and NFS server setting have been left intact.
PLEASE NOTE that this still does not save you from having
to properly secure your system in other ways or exercise
due diligence in your administration, this simply picks
a standard set of out-of-box defaults to start with.
To change any of these settings later, edit /etc/rc.conf
[OK] Message
Extreme security settings have been selected.
Sendmail, SSHd, and NFS services have been disabled, and
securelevels have been enabled.
PLEASE NOTE that this still does not save you from having
to properly secure your system in other ways or exercise
due diligence in your administration, this simply picks
a more secure set of out-of-box defaults to start with.
To change any of these settings later, edit /etc/rc.conf
[OK]Нажмите Enter, чтобы продолжить
послеустановочные настройки.Профиль безопасности не панацея! Если даже вы
выберете экстремальные установки, понадобится поддерживать
безопасность, читая соответствующий список рассылки (), используя хорошие пароли и
идентификационные
фразы, и придерживаясь хорошей практики безопасности.
Профиль всего лишь повышает желаемый уровень безопасности
свежеустановленной системы до приемлемого значения.Настройки системной консоли (System Console Settings)Есть несколько параметров для настройки системной консоли. User Confirmation Requested
Would you like to customize your system console settings?
[ Yes ] NoДля просмотра и настройки параметров выберите
&gui.yes; и нажмите
Enter.Параметры настройки системной консолиЧасто используемая опция это хранитель экрана (screen saver).
Используйте клавиши навигации для выбора
Saver и
нажмите Enter.Параметры хранителя экранаВыберите подходящий хранитель экрана с помощью клавиш навигации и
нажмите Enter. Опять появится меню настройки
системной консоли.Время по умолчанию 300 секунд. Для изменения временного интервала
выберите Saver еще раз. В меню
настроек хранителя экрана выберите Timeout
с помощью клавиш навигации и нажмите Enter.
Появится меню:Временной интервал хранителя экранаЗначение может быть изменено, затем выберите &gui.ok;
и нажмите Enter для возврата в меню настройки
системной консоли.Выход из меню конфигурации консолиВыбор Exit и нажатие
Enter вернет вас к послеустановочной
настройке.Установка часового пояса (Setting The Time Zone)Установка часового пояса на компьютере позволит ему
автоматически вносить поправки к местному времени и правильно
выполнять другие, связанные с часовым поясом функции.Пример приведен для компьютера, расположенного в восточном
часовом поясе Соединенных Штатов. Ваш выбор будет зависеть
от вашего географического положения. User Confirmation Requested
Would you like to set this machine's time zone now?
[ Yes ] NoВыберите &gui.yes; и нажмите
Enter для установки часового пояса. User Confirmation Requested
Is this machine's CMOS clock set to UTC? If it is set to local time
or you don't know, please choose NO here!
Yes [ No ]Выберите &gui.yes;
или &gui.no; в зависимости от настроек
часов компьютера и нажмите Enter.Выбор регионаСоответствующий регион выбран с помощью клавиш навигации и
нажат Enter.Выбор страныВыберите соответствующую страну с помощью клавиш навигации и
нажмите Enter.Выбор часового поясаВыбран соответствующий часовой пояс с помощью клавиш навигации
и нажат Enter. Confirmation
Does the abbreviation 'EDT' look reasonable?
[ Yes ] NoПравильно будет согласиться с назначением аббревиатуры временного
пояса. Если она подходит, нажмите Enter, чтобы
продолжить послеустановочную настройку.Совместимость с Linux (Linux Compatibility) User Confirmation Requested
Would you like to enable Linux binary compatibility?
[ Yes ] NoВыбор &gui.yes; и нажатие
Enter позволит
запускать программы Linux под FreeBSD. Программа установки добавит
соответствующие пакеты для совместимости с Linux.При установке по FTP, компьютеру потребуется соединиться с
интернет. Иногда на сервере ftp нет всех необходимых компонент,
например для бинарной совместимости с Linux. Эти компоненты могут
быть установлены позже, если потребуется.Настройка мыши (Mouse Settings)Эти настройки позволят вырезать и вставлять текст в консоли и
пользовательских программах с помощью трехкнопочной мыши. Если
используется двухкнопочная мышь, обратитесь к странице справочника
&man.moused.8; после установки, чтобы узнать подробности об
эмуляции трехкнопочной мыши. Этот пример приведен для настройки
не-USB мыши (например мыши для порта PS/2 или COM): User Confirmation Requested
Does this system have a non-USB mouse attached to it?
[ Yes ] No Выберите &gui.yes; для не-USB мыши или
&gui.no; для USB мыши и нажмите
Enter.Выбор протокола мышиИспользуйте клавиши навигации для выбора
Type и нажмите
Enter.Установка протокола мышиВ этом примере использована PS/2 мышь, поэтому подойдет протокол по
умолчанию Auto. Чтобы изменить протокол,
используйте клавиши навигации для выбора другого пункта. Убедитесь,
что выбран &gui.ok;, и нажмите Enter для выхода из
меню.Настройка порта мышиИспользуйте клавиши навигации для выбора
Port и нажмите
Enter.Установка порта мышиК этой системе подключена мышь PS/2, поэтому подходит значение
по умолчанию PS/2. Чтобы изменить порт,
используйте клавиши навигации и нажмите Enter.Запуск мышиного даемонаНаконец, используйте клавиши навигации для
выбора Enable, затем нажмите
Enter для запуска и тестирования
даемона мыши.Проверка мышиного даемонаПодвигайте курсор по экрану и убедитесь, что он
движется правильно. Если это так, выберите
&gui.yes; и нажмите Enter.
Если нет, мышь не была правильно настроена — выберите
&gui.no; и попробуйте использовать другие
опции настройки.Выберите Exit с
помощью клавиш навигации и нажмите Enter для
возврата к послеустановочной настройке.Настройка дополнительных сетевых сервисовНастройка сетевых сервисов может быть пугающей
задачей для новых пользователей если у них нет опыта
в этой области. Работа в сети, включая интернет,
критична для многих современных операционных систем,
включая &os;; очень важно иметь некоторые знания
о дополнительных сетевых возможностях &os;.
Настраивая их во время установки, пользователь получает
некоторую информацию о различных доступных сервисах.Сетевые сервисы — это программы, принимающие данные из
любой точки сети. Чтобы убедиться, что эти программы не делают
ничего вредного, требуется особое внимание.
К сожалению, программисты не совершенны и время от времени
допускают ошибки в сетевых сервисах; эти ошибки позволяют
атакующим взломать их и использовать в собственных целях.
Важно, чтобы вы включали сетевые сервисы только в том случае,
когда знаете, какие сервисы нужны. В случае сомнений лучше не
включать сервис, пока он не понадобится. Вы всегда можете включить
его позже, запустив sysinstall еще
раз, или используя возможности, предоставляемые файлом
/etc/rc.conf.Выбор опции Networking отобразит меню,
похожее на это:Верхняя часть меню настройки сети (Network Configuration)Первая опция, Interfaces (интерфейсы),
была ранее описана в ,
эту опцию можно проигнорировать.Выбор опции AMD добавит поддержку
BSD утилиты автоматического монтирования.
Она обычно используется вместе с протоколом
NFS (смотрите ниже)
для автоматического монтирования удаленных файловых
систем. Здесь не требуется специальной конфигурации.Следующая линия это опция флаги AMD
(flags). Когда эта опция выбрана, появится меню для ввода
специфичных флагов AMD.
Меню уже содержит набор различных опций:-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.mapОпция указывает месторасположение
монтирования систем по умолчанию, в этом примере
/.amd_mnt. Опция
указывает log файл по умолчанию;
тем не менее, если для ведения логов используется
syslogd, все логи отправляются даемону
- системных логов. Каталог /host
+ системных логов. Каталог /host
используется для монтирования экспортированных файловых
систем с удаленного хоста, а
- /net для монтирования
+ /net для монтирования
экспортированных файловых систем с IP адреса.
Файл /etc/amd.map определяет
опции по умолчанию для монтируемых AMD
каталогов.Опция Anon FTP позволяет получить
анонимный доступ к FTP.
Выберите ее, чтобы сделать этот компьютер
анонимным FTP сервером.
Помните о риске безопасности, создаваемом этой опцией.
Будет отображено еще одно меню для разъяснения
риска безопасности и для более тонкой настройки.Опция Gateway сделает компьютер
шлюзом, как было объяснено ранее. Этот пункт может быть
использован для отмены опции Gateway,
если она была ошибочно установлена в процессе установки.Опцию Inetd можно использовать для
настройки или полного отключения даемона &man.inetd.8;, как
было описано выше.Опция Mail используется для настройки
системного MTA по умолчанию (Mail Transfer
Agent, агент передачи почты). Выбор этой опции приведет к
появлению следующего меню:Выбор MTA по умолчаниюЗдесь предоставляется выбор MTA для
установки по умолчанию. MTA это
почтовый сервер, доставляющий почту пользователям системы
или интернет.Выбор Sendmail приведет к
установке популярного сервера sendmail,
MTA по умолчанию для &os;.
Опция Sendmail local настроит
sendmail в качестве
MTA по умолчанию, но отключит возможность
получения входящей почты из интернет. Другие MTA,
представленные здесь, Postfix и
Exim, действуют подобно
Sendmail. Оба они доставляют
почту; тем не менее, некоторые пользователи предпочитают
эти альтернативы sendmail.После выбора MTA или пропуска этого пункта
появится меню настройки сети со следующей опцией, клиент
NFS.Клиент NFS позволяет настроить
систему для соединения с сервером через
NFS. Сервер NFS
дает другим машинам доступ к файловой системе через
протокол NFS. Если это отдельно
стоящий компьютер, опцию можно не выбирать.
Опция может потребовать дополнительной настройки позже;
обращайтесь к за более
подробной информацией о настройке сервера и клиента.Ниже находится опция NFS сервер,
позволяющая вам настроить систему для работы в качестве
NFS сервера. Она добавляет требуемую
информацию для запуска процедуры вызова удаленных
сервисов RPC (remote procedure
call services). RPC используется для
организации соединения между хостами и программами.Следующая строка это Ntpdate,
которая отвечает за синхронизацию времени. Когда эта опция
выбрана, появится приблизительно такое меню:Настройка NtpdateВыберите из этого меню ближайший к вашему местонахождению
сервер. Выбор ближайшего сервера сделает синхронизацию
времени более точной, поскольку у более дальнего
сервера может быть более длинная задержка соединения.Следующая опция это выбор PCNFSD.
Эта опция устанавливает пакет
net/pcnfsd из
коллекции портов. Это полезная утилита, предоставляющая
сервисы авторизации NFS для систем, в
в которых собственная отсутствует, таких как Microsoft
&ms-dos;.Теперь вы можете прокрутить меню немного вниз, чтобы увидеть
другие опции:Нижняя часть меню настройки сетиУтилиты &man.rpcbind.8;, &man.rpc.statd.8;, и
&man.rpc.lockd.8; для удаленного вызова процедур (Remote Procedure
Calls, RPC). Утилита
rpcbind управляет соединением между
NFS серверами и клиентами, она требуется
серверу NFS для корректной работы.
Даемон rpc.statd взаимодействует с
даемонами rpc.statd на других хостах
для обеспечения мониторинга статуса. Полученный статус
обычно хранится в файле /var/db/statd.status.
Последняя опция это rpc.lockd, которая,
будучи выбранной, предоставляет сервисы блокировки файлов.
Она обычно используется с rpc.statd
для отслеживания хостов, запрашивающих блокировки и частоты
этих запросов. Хотя две последние опции прекрасно подходят
для отладки, они не требуются серверам и клиентам
NFS для корректной работы.Ниже в списке опций находится Routed,
даемон маршрутизации. Утилита &man.routed.8; управляет
сетевыми таблицами маршрутизации, обнаруживает широковещательные
маршрутизаторы, и предоставляет копию таблиц маршрутизации
любому физически подключенному к сети хосту по запросу.
Это обычно используется компьютерами, являющимися шлюзом
для локальной сети. Когда эта опция выбрана, появится меню
выбора местоположения утилиты по умолчанию. Значение
по умолчанию уже выбрано, чтобы подтвердить его нажмите
Enter. Появится следующее меню, запрашивающее
флаги для routed. По умолчанию это
флаг , он должен уже быть на экране.На следующей линии находится опция Rwhod,
выбор которой приведет к запуску даемона &man.rwhod.8; при
старте системы. Утилита rwhod периодически
рассылает широковещательные системные сообщения по сети
или собирает их в режиме потребителя.
Дополнительную информацию можно найти на страницах справочника
&man.ruptime.1; и &man.rwho.1;.Следующая перед последней опцией в списке это даемон
&man.sshd.8;. Это сервер безопасной оболочки (secure shell) из
OpenSSH и он очень рекомендуется
для использования вместо стандартных серверов
telnet и
FTP. Сервер sshd
используется для создания безопасных соединений от одного
хоста к другому с использованием шифрования.И наконец, опция TCP Extensions.
Она включает расширения TCP, определенные
в RFC 1323 и
RFC 1644. Хотя для многих хостов
они могут повысить скорость соединения, с другими соединение может
быть оборвано. Для серверов эти расширения не рекомендуются,
но клиентским компьютерам могут дать некоторые преимущества.Теперь, после настройки сетевых сервисов, вы можете прокрутить
меню к верхнему пункту, Exit, и
перейти к следующему разделу настройки.Настройка X Сервера (Configure X Server)
+
+ В &os; 5.3-RELEASE настройка X сервера была удалена
+ из sysinstall, X сервер
+ нужно будет настроить после установки &os;.
+ Более подробная информация, относящаяся к установке и настройке
+ X сервера, находится в . Вы можете пропустить этот раздел, если только
+ не устанавливаете версию &os; до 5.3-RELEASE.
+
+
Чтобы использовать графический интерфейс пользователя
KDE, GNOME,
или другие, нужно настроить X сервер.Чтобы запустить &xfree86; не из под
root, вам потребуется установленный
x11/wrapper. Он устанавливается
по умолчанию начиная с FreeBSD 4.7. В более ранних версиях он
может быть добавлен из меню выбора пакетов (Package Selection
menu).Чтобы узнать, поддерживается ли ваша видеокарта, обратитесь
к сайту &xfree86;. User Confirmation Requested
Would you like to configure your X server at this time?
[ Yes ] NoНеобходимо узнать параметры монитора и информацию о
видеокарте. Установкой неправильных параметров можно повредить
оборудование. Если у вас нет этой информации, выберите
&gui.no; и выполните конфигурацию после
установки, когда необходимая информация будет собрана.
Используя /stand/sysinstall, выберите
Configure а затем
XFree86. Неправильная настройка
X сервера может подвесить компьютер.
Зачастую настройку X сервера рекомендуют производить после
завершения установки.
Если у вас есть информация о графической карте и мониторе,
выберите &gui.yes; и нажмите
Enter для начала настройки X сервера.Меню выбора способа конфигурацииЕсть несколько путей настройки X сервера. Используйте
клавиши навигации для выбора одного из методов и нажмите
Enter. Внимательно прочтите все инструкции.Команды xf86cfg и
xf86cfg -textmode могут сделать экран
темным и запуститься через несколько секунд. Будьте терпеливы.Далее описывается использование программы настройки
xf86config. Выбор настроек
будет зависеть от оборудования системы, так что ваши
настройки возможно будут отличаться от тех, что приведены: Message
You have configured and been running the mouse daemon.
Choose "/dev/sysmouse" as the mouse port and "SysMouse" or
"MouseSystems" as the mouse protocol in the X configuration utility.
[ OK ]
[ Press enter to continue ]Это говорит, что предварительно настроенный даемон мыши был
обнаружен. Нажмите Enter, чтобы продолжить.При запуске xf86config отобразит
краткое введение:This program will create a basic XF86Config file, based on menu selections you
make.
The XF86Config file usually resides in /usr/X11R6/etc/X11 or /etc/X11. A sample
XF86Config file is supplied with XFree86; it is configured for a standard
VGA card and monitor with 640x480 resolution. This program will ask for a
pathname when it is ready to write the file.
You can either take the sample XF86Config as a base and edit it for your
configuration, or let this program produce a base XF86Config file for your
configuration and fine-tune it.
Before continuing with this program, make sure you know what video card
you have, and preferably also the chipset it uses and the amount of video
memory on your video card. SuperProbe may be able to help with this.
Press enter to continue, or ctrl-c to abort.Нажатие Enter запустит настройку мыши.
Следуя инструкциям, выберите
Mouse Systems в качестве протокола мыши и
/dev/sysmouse в качестве порта мыши,
даже если вы используете PS/2, как показано в примере.First specify a mouse protocol type. Choose one from the following list:
1. Microsoft compatible (2-button protocol)
2. Mouse Systems (3-button protocol) & FreeBSD moused protocol
3. Bus Mouse
4. PS/2 Mouse
5. Logitech Mouse (serial, old type, Logitech protocol)
6. Logitech MouseMan (Microsoft compatible)
7. MM Series
8. MM HitTablet
9. Microsoft IntelliMouse
If you have a two-button mouse, it is most likely of type 1, and if you have
a three-button mouse, it can probably support both protocol 1 and 2. There are
two main varieties of the latter type: mice with a switch to select the
protocol, and mice that default to 1 and require a button to be held at
boot-time to select protocol 2. Some mice can be convinced to do 2 by sending
a special sequence to the serial port (see the ClearDTR/ClearRTS options).
Enter a protocol number: 2
You have selected a Mouse Systems protocol mouse. If your mouse is normally
in Microsoft-compatible mode, enabling the ClearDTR and ClearRTS options
may cause it to switch to Mouse Systems mode when the server starts.
Please answer the following question with either 'y' or 'n'.
Do you want to enable ClearDTR and ClearRTS? n
You have selected a three-button mouse protocol. It is recommended that you
do not enable Emulate3Buttons, unless the third button doesn't work.
Please answer the following question with either 'y' or 'n'.
Do you want to enable Emulate3Buttons? y
Now give the full device name that the mouse is connected to, for example
/dev/tty00. Just pressing enter will use the default, /dev/mouse.
On FreeBSD, the default is /dev/sysmouse.
Mouse device: /dev/sysmouseСледующий пункт настройки это клавиатура. В примере показана
модель generic 101-key. В качестве варианта можно использовать
любое имя, или просто нажать Enter, чтобы
принять значение по умолчанию.Please select one of the following keyboard types that is the better
description of your keyboard. If nothing really matches,
choose 1 (Generic 101-key PC)
1 Generic 101-key PC
2 Generic 102-key (Intl) PC
3 Generic 104-key PC
4 Generic 105-key (Intl) PC
5 Dell 101-key PC
6 Everex STEPnote
7 Keytronic FlexPro
8 Microsoft Natural
9 Northgate OmniKey 101
10 Winbook Model XP5
11 Japanese 106-key
12 PC-98xx Series
13 Brazilian ABNT2
14 HP Internet
15 Logitech iTouch
16 Logitech Cordless Desktop Pro
17 Logitech Internet Keyboard
18 Logitech Internet Navigator Keyboard
19 Compaq Internet
20 Microsoft Natural Pro
21 Genius Comfy KB-16M
22 IBM Rapid Access
23 IBM Rapid Access II
24 Chicony Internet Keyboard
25 Dell Internet Keyboard
Enter a number to choose the keyboard.
1
Please select the layout corresponding to your keyboard
1 U.S. English
2 U.S. English w/ ISO9995-3
3 U.S. English w/ deadkeys
4 Albanian
5 Arabic
6 Armenian
7 Azerbaidjani
8 Belarusian
9 Belgian
10 Bengali
11 Brazilian
12 Bulgarian
13 Burmese
14 Canadian
15 Croatian
16 Czech
17 Czech (qwerty)
18 Danish
Enter a number to choose the country.
Press enter for the next page
1
Please enter a variant name for 'us' layout. Or just press enter
for default variant
us
Please answer the following question with either 'y' or 'n'.
Do you want to select additional XKB options (group switcher,
group indicator, etc.)? nТеперь переходим к настройке монитора. Не превышайте
значений для вашего монитора. Он может быть поврежден.
Если у вас есть какие-то сомнения, проводите настройку
после того как получите информацию.Now we want to set the specifications of the monitor. The two critical
parameters are the vertical refresh rate, which is the rate at which the
whole screen is refreshed, and most importantly the horizontal sync rate,
which is the rate at which scanlines are displayed.
The valid range for horizontal sync and vertical sync should be documented
in the manual of your monitor. If in doubt, check the monitor database
/usr/X11R6/lib/X11/doc/Monitors to see if your monitor is there.
Press enter to continue, or ctrl-c to abort.
You must indicate the horizontal sync range of your monitor. You can either
select one of the predefined ranges below that correspond to industry-
standard monitor types, or give a specific range.
It is VERY IMPORTANT that you do not specify a monitor type with a horizontal
sync range that is beyond the capabilities of your monitor. If in doubt,
choose a conservative setting.
hsync in kHz; monitor type with characteristic modes
1 31.5; Standard VGA, 640x480 @ 60 Hz
2 31.5 - 35.1; Super VGA, 800x600 @ 56 Hz
3 31.5, 35.5; 8514 Compatible, 1024x768 @ 87 Hz interlaced (no 800x600)
4 31.5, 35.15, 35.5; Super VGA, 1024x768 @ 87 Hz interlaced, 800x600 @ 56 Hz
5 31.5 - 37.9; Extended Super VGA, 800x600 @ 60 Hz, 640x480 @ 72 Hz
6 31.5 - 48.5; Non-Interlaced SVGA, 1024x768 @ 60 Hz, 800x600 @ 72 Hz
7 31.5 - 57.0; High Frequency SVGA, 1024x768 @ 70 Hz
8 31.5 - 64.3; Monitor that can do 1280x1024 @ 60 Hz
9 31.5 - 79.0; Monitor that can do 1280x1024 @ 74 Hz
10 31.5 - 82.0; Monitor that can do 1280x1024 @ 76 Hz
11 Enter your own horizontal sync range
Enter your choice (1-11): 6
You must indicate the vertical sync range of your monitor. You can either
select one of the predefined ranges below that correspond to industry-
standard monitor types, or give a specific range. For interlaced modes,
the number that counts is the high one (e.g. 87 Hz rather than 43 Hz).
1 50-70
2 50-90
3 50-100
4 40-150
5 Enter your own vertical sync range
Enter your choice: 2
You must now enter a few identification/description strings, namely an
identifier, a vendor name, and a model name. Just pressing enter will fill
in default names.
The strings are free-form, spaces are allowed.
Enter an identifier for your monitor definition: HitachiДалее производится выбор видеокарты из списка. Если вы пропустили
карту в списке, продолжайте нажимать Enter,
и список повторится. Показан только отрывок:Now we must configure video card specific settings. At this point you can
choose to make a selection out of a database of video card definitions.
Because there can be variation in Ramdacs and clock generators even
between cards of the same model, it is not sensible to blindly copy
the settings (e.g. a Device section). For this reason, after you make a
selection, you will still be asked about the components of the card, with
the settings from the chosen database entry presented as a strong hint.
The database entries include information about the chipset, what driver to
run, the Ramdac and ClockChip, and comments that will be included in the
Device section. However, a lot of definitions only hint about what driver
to run (based on the chipset the card uses) and are untested.
If you can't find your card in the database, there's nothing to worry about.
You should only choose a database entry that is exactly the same model as
your card; choosing one that looks similar is just a bad idea (e.g. a
GemStone Snail 64 may be as different from a GemStone Snail 64+ in terms of
hardware as can be).
Do you want to look at the card database? y
288 Matrox Millennium G200 8MB mgag200
289 Matrox Millennium G200 SD 16MB mgag200
290 Matrox Millennium G200 SD 4MB mgag200
291 Matrox Millennium G200 SD 8MB mgag200
292 Matrox Millennium G400 mgag400
293 Matrox Millennium II 16MB mga2164w
294 Matrox Millennium II 4MB mga2164w
295 Matrox Millennium II 8MB mga2164w
296 Matrox Mystique mga1064sg
297 Matrox Mystique G200 16MB mgag200
298 Matrox Mystique G200 4MB mgag200
299 Matrox Mystique G200 8MB mgag200
300 Matrox Productiva G100 4MB mgag100
301 Matrox Productiva G100 8MB mgag100
302 MediaGX mediagx
303 MediaVision Proaxcel 128 ET6000
304 Mirage Z-128 ET6000
305 Miro CRYSTAL VRX Verite 1000
Enter a number to choose the corresponding card definition.
Press enter for the next page, q to continue configuration.
288
Your selected card definition:
Identifier: Matrox Millennium G200 8MB
Chipset: mgag200
Driver: mga
Do NOT probe clocks or use any Clocks line.
Press enter to continue, or ctrl-c to abort.
Now you must give information about your video card. This will be used for
the "Device" section of your video card in XF86Config.
You must indicate how much video memory you have. It is probably a good
idea to use the same approximate amount as that detected by the server you
intend to use. If you encounter problems that are due to the used server
not supporting the amount memory you have (e.g. ATI Mach64 is limited to
1024K with the SVGA server), specify the maximum amount supported by the
server.
How much video memory do you have on your video card:
1 256K
2 512K
3 1024K
4 2048K
5 4096K
6 Other
Enter your choice: 6
Amount of video memory in Kbytes: 8192
You must now enter a few identification/description strings, namely an
identifier, a vendor name, and a model name. Just pressing enter will fill
in default names (possibly from a card definition).
Your card definition is Matrox Millennium G200 8MB.
The strings are free-form, spaces are allowed.
Enter an identifier for your video card definition:Далее, производится установка видеорежимов для требуемого разрешения.
Обычно используемые значения 640x480, 800x600, и 1024x768, но
они зависят от возможностей видеокарты, размера монитора и
зрительного комфорта. Выбирая глубину цвета, устанавливайте
самое большое поддерживаемое видеокартой значение.For each depth, a list of modes (resolutions) is defined. The default
resolution that the server will start-up with will be the first listed
mode that can be supported by the monitor and card.
Currently it is set to:
"640x480" "800x600" "1024x768" "1280x1024" for 8-bit
"640x480" "800x600" "1024x768" "1280x1024" for 16-bit
"640x480" "800x600" "1024x768" "1280x1024" for 24-bit
Modes that cannot be supported due to monitor or clock constraints will
be automatically skipped by the server.
1 Change the modes for 8-bit (256 colors)
2 Change the modes for 16-bit (32K/64K colors)
3 Change the modes for 24-bit (24-bit color)
4 The modes are OK, continue.
Enter your choice: 2
Select modes from the following list:
1 "640x400"
2 "640x480"
3 "800x600"
4 "1024x768"
5 "1280x1024"
6 "320x200"
7 "320x240"
8 "400x300"
9 "1152x864"
a "1600x1200"
b "1800x1400"
c "512x384"
Please type the digits corresponding to the modes that you want to select.
For example, 432 selects "1024x768" "800x600" "640x480", with a
default mode of 1024x768.
Which modes? 432
You can have a virtual screen (desktop), which is screen area that is larger
than the physical screen and which is panned by moving the mouse to the edge
of the screen. If you don't want virtual desktop at a certain resolution,
you cannot have modes listed that are larger. Each color depth can have a
differently-sized virtual screen
Please answer the following question with either 'y' or 'n'.
Do you want a virtual screen that is larger than the physical screen? n
For each depth, a list of modes (resolutions) is defined. The default
resolution that the server will start-up with will be the first listed
mode that can be supported by the monitor and card.
Currently it is set to:
"640x480" "800x600" "1024x768" "1280x1024" for 8-bit
"1024x768" "800x600" "640x480" for 16-bit
"640x480" "800x600" "1024x768" "1280x1024" for 24-bit
Modes that cannot be supported due to monitor or clock constraints will
be automatically skipped by the server.
1 Change the modes for 8-bit (256 colors)
2 Change the modes for 16-bit (32K/64K colors)
3 Change the modes for 24-bit (24-bit color)
4 The modes are OK, continue.
Enter your choice: 4
Please specify which color depth you want to use by default:
1 1 bit (monochrome)
2 4 bits (16 colors)
3 8 bits (256 colors)
4 16 bits (65536 colors)
5 24 bits (16 million colors)
Enter a number to choose the default depth.
4Наконец, настройки нужно сохранить. Убедитесь что ввели
/etc/XF86Config в качестве места
хранения настроек.I am going to write the XF86Config file now. Make sure you don't accidently
overwrite a previously configured one.
Shall I write it to /etc/X11/XF86Config? yЕсли настройка прервалась, вы можете запустить настройку опять,
выбрав [ Yes ] когда появится следующее
сообщение: User Confirmation Requested
The XFree86 configuration process seems to have
failed. Would you like to try again?
[ Yes ] NoЕсли у вас проблемы с настройкой &xfree86;, выберите
[ No ], нажмите Enter
и продолжайте процесс установки. После установки вы можете использовать
xf86cfg -textmode или
xf86config для получения доступа к утилитам настройки
в режиме командной строки под root. Это дополнительный
метод настройки &xfree86;, описанный в
. Если вы решите не настраивать
&xfree86; сейчас, следующим появится меню
выбора пакетов.Настройкой по умолчанию, позволяющей перезагрузить сервер,
является комбинация клавиш CtrlAltBackspace. Эта комбинация
может быть применена если что-то не так с установками сервера, она
позволяет предотвратить повреждение оборудования.Настройкой по умолчанию, позволяющей переключать видео режимы
во время работы X, является комбинация клавиш
CtrlAlt+ or
CtrlAlt-.
После запуска &xfree86;
вы можете настроить высоту, ширину и центровку изображения
используя xvidtune.Будут выданы предупреждения, что неверные установки могут повредить
ваше оборудование. Прислушайтесь к ним. Если вы сомневаетесь в чем-то,
не делайте этого. Вместо этого, используйте настройки монитора для
подстройки его под X Window. Вид экрана может несколько отличаться
при переключении обратно в текстовый режим, но это лучше, чем
повреждение оборудования.Прочитайте справочник &man.xvidtune.1; перед тем как производить
какие-либо настройки.После успешной настройки &xfree86;,
будет предложен выбор десктопа по умолчанию.Выбор десктопа по умолчанию (Select Default X Desktop)
+
+ В &os; 5.3-RELEASE настройка X сервера была удалена
+ из sysinstall, X сервер
+ нужно будет настроить после установки &os;.
+ Более подробная информация, относящаяся к установке и настройке
+ X сервера, находится в . Вы можете пропустить этот раздел, если только
+ не устанавливаете версию &os; до 5.3-RELEASE.
+
+
Доступны самые разные оконные менеджеры. Их функциональность
варьируется от самых минимальных до полноценных десктопов
с большим набором программ. Некоторые требуют минимума места на диске
и небольшого количества памяти, другие, с большим набором функций,
требуют гораздо больше. Лучший путь определить наиболее подходящий вам —
попробовать несколько. Они доступны из коллекции портов и в виде
пакетов, и могут быть добавлены после установки.Вы можете выбрать один из популярных десктопов, он будет
установлен и настроен в качестве десктопа по умолчанию.
Это позволит запустить его сразу после установки.Выбор десктопа по умолчаниюИспользуйте клавиши навигации, чтобы выбрать десктоп, и нажмите
Enter. Будет запущена установка выбранного
десктопа.Установка пакетов (Install Packages)Пакеты — это прекомпилированные бинарные файлы и это
удобный способ установки программ.В качестве примера показана установка одного пакета.
Если потребуется, можно установить дополнительные пакеты. После
установки для добавления пакетов может быть использована команда
/stand/sysinstall. User Confirmation Requested
The FreeBSD package collection is a collection of hundreds of
ready-to-run applications, from text editors to games to WEB servers
and more. Would you like to browse the collection now?
[ Yes ] NoВыбор [ Yes ] и нажатие
Enter приведет к появлению
экрана выбора пакетов:Выбор категории пакетовТолько пакеты с текущего носителя
доступны для установки в любое время.Все доступные пакеты будут показаны если выбрать категорию
All, можно также выбирать отдельные
категории. Перейдите к выбранной категории с помощью клавиш
навигации и нажмите Enter.Появится меню, содержащее доступные в данной категории
пакеты.Выбор пакетовВыбрана оболочка bash.
Выберите все необходимые пакеты, перемещаясь по меню и нажимая
клавишу пробела на выбираемых пакетах. Краткое описание
пакета будет появляться в нижней левой части экрана.Нажатие Tab переключает между последним
выбранным пакетом, &gui.ok;, и &gui.cancel;.После того, как будет закончена отметка пакетов для установки,
нажмите Tab один раз для переключения на &gui.ok;
и нажмите Enter для переключения на меню выбора
пакетов.Нажимая клавиши навигации влево или вправо, можно переключаться
между &gui.ok; и &gui.cancel;. Этот метод может быть применен также
для выбора &gui.ok;, и возврата к
меню выбора пакетов нажатием Enter.Установка пакетовИспользуйте Tab и клавиши навигации для выбора
[ Install ] и нажмите Enter.
вам потребуется подтвердить установку пакетов:Подтверждение установки пакетовВыбор &gui.ok; и нажатие Enter запустит
установку пакетов. Во время установки будут выдаваться
сообщения. Обратите внимание на возможные сообщения об
ошибках.После установки пакетов настройка продолжится.
Если вы не выбрали ни один из пакетов и хотите вернуться
к завершению настройки, выберите Install
в любом случае.Добавление пользователей/групп (Add Users/Groups)В процессе установки нужно добавить хотя бы одного пользователя,
чтобы использовать систему без входа под
root. Корневой каталог обычно мал и запуск
приложений под root быстро заполнит его.
Ниже показано предупреждение: User Confirmation Requested
Would you like to add any initial user accounts to the system? Adding
at least one account for yourself at this stage is suggested since
working as the "root" user is dangerous (it is easy to do things which
adversely affect the entire system).
[ Yes ] NoВыберите &gui.yes; и нажмите
Enter чтобы продолжить добавление пользователя.Выбор User (пользователь)Выберите User с помощью клавиш навигации
и нажмите Enter.Вод информации о пользователеПри выборе полей с помощью Tab в нижней
части экрана будет появляться описание, помогающее
ввести необходимую информацию:Логин (Login ID)Имя нового пользователя (обязательно).UIDЧисловой ID (идентификатор) для этого пользователя (оставьте
пустым для автоматического выбора).Группа (Group)Имя группы этого пользователя (оставьте пустым для
автоматического выбора).Пароль (Password)Пароль этого пользователя (заполняйте это поле с
осторожностью!).Полное имяПолное имя пользователя (комментарий).Член групп (Member groups)Группы, к которым принадлежит пользователь (т.е. имеет
права доступа).Домашний каталог (Home directory)Домашний каталог пользователя (оставьте пустым для
выбора по умолчанию).Оболочка (Login shell)Оболочка пользователя, запускаемая при входе в систему
(оставьте пустым для оболочки по умолчанию,
например /bin/sh).Оболочка была изменена с /bin/sh на
/usr/local/bin/bash для использования
bash, которая была перед этим установлена
из пакета. Не пытайтесь использовать несуществующую оболочку, вы
не сможете войти в систему. Наиболее часто используемая в мире
BSD оболочка это C shell, которую можно обозначить как
/bin/tcsh.Пользователь был добавлен в группу wheel,
чтобы иметь возможность стать суперпользователем с привилегиями
root.Когда все будет введено, нажмите &gui.ok; и меню
управления пользователями и группами (User and Group Management)
появится снова:Выход из меню управления пользователями и группамиСейчас также можно добавить группы, если известно, для чего
они потребуются. Иначе в это меню можно войти,
запустив /stand/sysinstall после окончания
установки.После завершения добавления пользователей, выберите
Exit с помощью клавиш навигации и нажмите
Enter для продолжения установки.Установка пароля root Message
Now you must set the system manager's password.
This is the password you'll use to log in as "root".
[ OK ]
[ Press enter to continue ]Нажмите Enter для установки пароля
root.Необходимо два раза правильно ввести пароль. Излишне
упоминать, что должна быть возможность восстановления пароля,
если вы его забудете.Changing local password for root.
New password :
Retype new password :Установка продолжится после успешного ввода пароля.Выход из установки (Exiting Install)Если нужно настроить дополнительные сетевые устройства, или
произвести другие настройки, вы можете сделать это сейчас или
после установки с помощью/stand/sysinstall. User Confirmation Requested
Visit the general configuration menu for a chance to set any last
options?
Yes [ No ]Выберите &gui.no; с помощью клавиш навигации
и нажмите Enter для возврата к главному меню
установки.Выход из установкиВыберите [X Exit Install] с помощью клавиш
навигации и нажмите Enter. Будет задан вопрос о
подтверждении выхода из установки: User Confirmation Requested
Are you sure you wish to exit? The system will reboot (be sure to
remove any floppies from the drives).
[ Yes ] NoВыберите &gui.yes; и удалите дискету если
загрузка была с нее. CDROM заблокирован, пока компьютер не начнет
перегружаться. CDROM будет разблокирован и диск нужно будет извлечь
из привода (быстро).Система начнет перезагрузку, смотрите за сообщениями об ошибках,
которые могут появиться.Загрузочный процесс FreeBSD (FreeBSD Bootup)Загрузка FreeBSD на &i386;Если все пройдет нормально, вы увидите прокручивающиеся за экран
сообщения, затем приглашение ко входу в систему. Вы может просмотреть
сообщения, нажав Scroll-Lock и используя
PgUp и PgDn. Нажатие
Scroll-Lock еще раз вернет вас к приглашению.Все сообщение может не отобразиться (ограничение буфера),
но может быть просмотрено путем ввода команды
dmesg в командной строке.Войдите, используя имя пользователя/пароль, добавленные во
время установки (rpratt в этом примере).
Избегайте входа под root, если это не
требуется.Типичные сообщения при загрузке (информация о версии удалена):Copyright (c) 1992-2002 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
Timecounter "i8254" frequency 1193182 Hz
CPU: AMD-K6(tm) 3D processor (300.68-MHz 586-class CPU)
Origin = "AuthenticAMD" Id = 0x580 Stepping = 0
Features=0x8001bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,MMX>
AMD Features=0x80000800<SYSCALL,3DNow!>
real memory = 268435456 (262144K bytes)
config> di sn0
config> di lnc0
config> di le0
config> di ie0
config> di fe0
config> di cs0
config> di bt0
config> di aic0
config> di aha0
config> di adv0
config> q
avail memory = 256311296 (250304K bytes)
Preloaded elf kernel "kernel" at 0xc0491000.
Preloaded userconfig_script "/boot/kernel.conf" at 0xc049109c.
md0: Malloc disk
Using $PIR table, 4 entries at 0xc00fde60
npx0: <math processor> on motherboard
npx0: INT 16 interface
pcib0: <Host to PCI bridge> on motherboard
pci0: <PCI bus> on pcib0
pcib1: <VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge> at device 1.0 on pci0
pci1: <PCI bus> on pcib1
pci1: <Matrox MGA G200 AGP graphics accelerator> at 0.0 irq 11
isab0: <VIA 82C586 PCI-ISA bridge> at device 7.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <VIA 82C586 ATA33 controller> port 0xe000-0xe00f at device 7.1 on pci0
ata0: at 0x1f0 irq 14 on atapci0
ata1: at 0x170 irq 15 on atapci0
uhci0: <VIA 83C572 USB controller> port 0xe400-0xe41f irq 10 at device 7.2 on pci0
usb0: <VIA 83C572 USB controller> on uhci0
usb0: USB revision 1.0
uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
chip1: <VIA 82C586B ACPI interface> at device 7.3 on pci0
ed0: <NE2000 PCI Ethernet (RealTek 8029)> port 0xe800-0xe81f irq 9 at
device 10.0 on pci0
ed0: address 52:54:05:de:73:1b, type NE2000 (16 bit)
isa0: too many dependant configs (8)
isa0: unexpected small tag 14
fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0
fdc0: FIFO enabled, 8 bytes threshold
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
atkbdc0: <keyboard controller (i8042)> at port 0x60-0x64 on isa0
atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0
kbd0 at atkbd0
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model Generic PS/2 mouse, device ID 0
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
sc0: <System console> at flags 0x1 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A
sio1 at port 0x2f8-0x2ff irq 3 on isa0
sio1: type 16550A
ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/15 bytes threshold
ppbus0: IEEE1284 device found /NIBBLE
Probing for PnP devices on ppbus0:
plip0: <PLIP network interface> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
ad0: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata0-master using UDMA33
ad2: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata1-master using UDMA33
acd0: CDROM <DELTA OTC-H101/ST3 F/W by OIPD> at ata0-slave using PIO4
Mounting root from ufs:/dev/ad0s1a
swapon: adding /dev/ad0s1b as swap device
Automatic boot in progress...
/dev/ad0s1a: FILESYSTEM CLEAN; SKIPPING CHECKS
/dev/ad0s1a: clean, 48752 free (552 frags, 6025 blocks, 0.9% fragmentation)
/dev/ad0s1f: FILESYSTEM CLEAN; SKIPPING CHECKS
/dev/ad0s1f: clean, 128997 free (21 frags, 16122 blocks, 0.0% fragmentation)
/dev/ad0s1g: FILESYSTEM CLEAN; SKIPPING CHECKS
/dev/ad0s1g: clean, 3036299 free (43175 frags, 374073 blocks, 1.3% fragmentation)
/dev/ad0s1e: filesystem CLEAN; SKIPPING CHECKS
/dev/ad0s1e: clean, 128193 free (17 frags, 16022 blocks, 0.0% fragmentation)
Doing initial network setup: hostname.
ed0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
inet6 fe80::5054::5ff::fede:731b%ed0 prefixlen 64 tentative scopeid 0x1
ether 52:54:05:de:73:1b
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x8
inet6 ::1 prefixlen 128
inet 127.0.0.1 netmask 0xff000000
Additional routing options: IP gateway=YES TCP keepalive=YES
routing daemons:.
additional daemons: syslogd.
Doing additional network setup:.
Starting final network daemons: creating ssh RSA host key
Generating public/private rsa1 key pair.
Your identification has been saved in /etc/ssh/ssh_host_key.
Your public key has been saved in /etc/ssh/ssh_host_key.pub.
The key fingerprint is:
cd:76:89:16:69:0e:d0:6e:f8:66:d0:07:26:3c:7e:2d root@k6-2.example.com
creating ssh DSA host key
Generating public/private dsa key pair.
Your identification has been saved in /etc/ssh/ssh_host_dsa_key.
Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub.
The key fingerprint is:
f9:a1:a9:47:c4:ad:f9:8d:52:b8:b8:ff:8c:ad:2d:e6 root@k6-2.example.com.
setting ELF ldconfig path: /usr/lib /usr/lib/compat /usr/X11R6/lib
/usr/local/lib
a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout /usr/X11R6/lib/aout
starting standard daemons: inetd cron sshd usbd sendmail.
Initial rc.i386 initialization:.
rc.i386 configuring syscons: blank_time screensaver moused.
Additional ABI support: linux.
Local package initialization:.
Additional TCP options:.
FreeBSD/i386 (k6-2.example.com) (ttyv0)
login: rpratt
Password:Генерирование ключей RSA и DSA может занять некоторое время
на медленных компьютерах. Это может случиться только при
первой загрузке свежеустановленной системы. Последующие
загрузки будут быстрее.Если X сервер был настроен и был выбран десктоп по умолчанию,
он может быть запущен из командной строки командой
startx.Загрузка FreeBSD на AlphaAlphaКогда процедура установки будет завершена, вы сможете
запустить FreeBSD в приглашении SRM примерно такой командой:>>>BOOT DKC0Это команда дает указание на загрузку с заданного диска. Чтобы
FreeBSD в будущем загружалась автоматически, используйте
эти команды:>>>SET BOOT_OSFLAGS A>>>SET BOOT_FILE ''>>>SET BOOTDEF_DEV DKC0>>>SET AUTO_ACTION BOOTЗагрузочные сообщения будут похожи (но не идентичны)
сообщениям, выводимым FreeBSD при загрузке на &i386;.Завершение работы FreeBSD (FreeBSD Shutdown)Важно правильно завершать работу операционной системы.
Нельзя просто выключать питание. Сначала нужно стать
суперпользователем, введя в командной строке su
и пароль root. Это сработает только если
пользователь является членом группы wheel.
Или зайдите под root и используйте команду
shutdown -h now.The operating system has halted.
Please press any key to reboot.Можно безопасно выключать питание после того, как будет выполнена
команда shutdown и появится сообщение
Please press any key to reboot. Если вместо выключения
питания будет нажата любая клавиша, система перезагрузится.Вы также можете использовать комбинацию клавиш
CtrlAltDel
для перезагрузки системы, хотя это не рекомендуется в обычной
ситуации.Поддерживаемое оборудованиеоборудованиеВ настоящее время FreeBSD работает на разнообразных PC, с шинами
ISA, VLB, EISA, и PCI с процессорами x86 от
Intel, AMD, Cyrix, или NexGen, так же как и с
множеством компьютеров на процессорах Compaq Alpha. Поддерживаются также
IDE или ESDI диски, различные SCSI контроллеры, карты PCMCIA,
устройства USB, сетевые карты и карты последовательных портов.
FreeBSD также поддерживает шину MCA от IBM.Список поддерживаемого оборудования поставляется с каждым релизом
FreeBSD в информации о поддерживаемом FreeBSD оборудовании. Этот
документ обычно
может быть найден в файле HARDWARE.TXT в корневом
каталоге CDROM, дистрибутива на FTP или в меню документации
sysinstall. В нем находится список
аппаратных устройств, которые поддерживаются этим релизом
FreeBSD для данной архитектуры. Копии списка поддерживаемого
оборудования для различных релизов и архитектур также можно найти
на странице Информации о
релизах сайта FreeBSD.Решение проблемустановкарешение проблемСледующий раздел описывает основные проблемы при установке, о
которых обычно сообщают пользователи. Здесь также несколько вопросов
и ответов от тех, кто хочет настроить двойную загрузку FreeBSD и
&ms-dos;.Что делать если что-то идет не такПо причине различных ограничений архитектуры PC, невозможно
протестировать устройства достоверно на 100%, тем не менее,
есть несколько вещей, которые вы можете сделать, если тестирование
завершится неудачно.Сверьтесь со списком поддерживаемого оборудованию для вашей
версии FreeBSD, чтобы убедиться, что ваше оборудование
поддерживается.Если оборудование поддерживается, но все же происходят
зависания или вы встретились с другими проблемами, перегрузите
компьютер, и когда появится опция визуальной настройки ядра, выберите ее.
Это позволит вам просмотреть список оборудования и дать системе
информацию о настройке. Ядро на загрузочном диске настроено в
предположении, что у большинства аппаратных устройств IRQ, адреса
ввода-вывода и каналы DMA установлены производителем к значениям
по умолчанию. Если оборудование было перенастроено, вам
потребуется использовать редактор настроек, чтобы сообщить
FreeBSD где что искать.Возможно также, что тестирование устройства, которого нет,
приведет позже к ошибке тестирования существующего устройства.
В этом случае тестирование конфликтующего драйвера (драйверов)
должно быть запрещено.Некоторые проблемы установки можно обойти или уменьшить,
обновив встроенное программное обеспечение различных
компонент оборудования, особенно материнской платы.
Встроенное программное обеспечение также называют
BIOS и у большинства производителей
компьютеров или материнских плат есть вебсайты, где можно найти
обновления и информацию об обновлениях.Большинство производителей настоятельно советуют не обновлять
BIOS пока не возникнет серьезной необходимости,
например появление критически важных обновлений.
Процесс обновления может пойти неверно,
что приведет к неустранимому повреждению микросхемы
BIOS.Не выключайте драйвера, которые понадобятся вам во время
установки, такие как экран (sc0).
Если после выхода из редактора конфигурации установка
загадочно зависает или прерывается, возможно вы удалили
или изменили что-то, что не надо было трогать. Перегрузитесь
и попробуйте еще раз.В режиме настройки вы можете:Просматривать список устройств, включенных в ядро.Отключать драйвера устройств для оборудования, которого нет
в системе.Менять IRQ, DRQ, адреса портов, используемые драйвером
устройства.После настройки ядра под оборудование нажмите
Q для загрузки с новыми настройками.
После завершения установки все изменения, внесенные в режиме
настройки, будут действовать постоянно, так что вам не придется
делать настройку при каждой загрузке. Все же очень неплохо, если вы
со временем соберете новое ядро.Работа с существующими разделами &ms-dos;DOSМногие пользователи устанавливают &os; на PC
с установленной операционной системой µsoft;. Для этих целей
в &os; есть утилита, называемая FIPS. Ее
можно найти в каталоге tools установочного
CD-ROM или загрузить с одного из множества
зеркал &os;.Утилита FIPS позволит вам разделить
существующий раздел &ms-dos; на две части, сохранив имеющиеся
данные, и сделать установку на второй свободный раздел.
Вам потребуется сначала дефрагментировать раздел &ms-dos; с помощью
&windows; утилиты Disk Defragmenter
(запустите Explorer, кликните правой клавишей мыши на жестком диске и
выберите дефрагментацию диска), или используйте Norton Disk Tools.
Затем запустите утилиту FIPS. Она запросит
необходимую информацию, следуйте инструкциям на экране. Затем
можете перегрузиться и установить &os; на новый свободный слайс.
Смотрите меню Distributions для определения
размера необходимого для выбранного типа установки свободного
пространства.Есть также очень полезная программа
&partitionmagic; от PowerQuest
(http://www.powerquest.com).
Эта программа гораздо более функциональна, чем
FIPS, и очень рекомендуется, если
вы планируете часто добавлять/убирать операционные системы.
Она стоит денег, и если вы планируете установить &os;
и оставить ее, вам возможно отлично подойдет
FIPS.Использование файловых систем &ms-dos; и &windows;В настоящее время, &os; не поддерживает файловые системы, сжатые
с помощью программы Double Space™.
Поэтому файловая система должна быть разжата, чтобы
&os; смогла получить доступ к данным. Это может быть сделано с
помощью приложения Compression Agent,
находящегося в меню Пуск>
Программы > Системные.&os; поддерживает файловые системы &ms-dos;. Для этого потребуется
использовать команду &man.mount.msdos.8; (в &os; 5.X, это
&man.mount.msdosfs.8;) с необходимыми параметрами. Наиболее
распространенный способ использования:&prompt.root; mount_msdos /dev/ad0s1 /mntВ этом примере файловая система &ms-dos; расположена на первом
разделе первого жесткого диска. Ваша конфигурация может быть другой,
проверьте вывод команд dmesg и
mount. Они должны предоставить достаточно
информации для определения названий разделов.Расширенные разделы &ms-dos; обычно располагаются после разделов
&os;. Другими словами, номер слайса может быть больше, чем
используемый &os;. Например, первый раздел &ms-dos; может быть
/dev/ad0s1, раздел &os;
/dev/ad0s2, а расширенный раздел &ms-dos;
/dev/ad0s3. Некоторых это иногда запутывает на
первых порах.Разделы NTFS также можно смонтировать похожим способом, используя
команду &man.mount.ntfs.8;.Вопросы и ответы пользователей AlphaAlphaЭтот раздел отвечает на некоторые обычно задаваемые вопросы об
установке FreeBSD на Alpha.Могу я загрузиться с ARC или с консоли Alpha BIOS?ARCAlpha BIOSSRMНет. &os;, как и Compaq Tru64 и VMS, может загружаться
только с консоли SRM.Помогите, у меня нет места! Должен ли я сначала
все удалить?К сожалению, да.Могу ли я смонтировать файловые системы
Compaq Tru64 или VMS?В настоящее время нет.ValentinoVaschettoПредоставлено Расширенное руководство по установкеЭта секция описывает особые случаи установки FreeBSD.Установка FreeBSD на систему без монитора или клавиатурыустановкабез монитора (последовательная консоль)последовательная консольЭтот тип установки называется установка без
монитора, потому что на компьютере, на который вы пробуете
установить FreeBSD или не подсоединен монитор, или даже нет
VGA выхода. Вы спросите, как это возможно? Используя последовательную
консоль. Последовательная консоль в своей основе имеет другой
компьютер, который служит дисплеем и клавиатурой для системы.
Чтобы сделать это, создайте инсталляционные дискеты, как
описано в .Чтобы модифицировать дискеты для загрузки с последовательной
консоли, следуйте этой инструкции:Включение загрузки с последовательной консолиmountЕсли вы произведете загрузку с только что полученных дискет,
FreeBSD загрузится в нормальный режим установки. Мы хотим,
чтобы FreeBSD загрузилась на последовательную консоль для
нашей установки. Чтобы сделать это, смонтируйте
kern.flp на вашу систему FreeBSD
используя команду &man.mount.8;.&prompt.root; mount /dev/fd0 /mntТеперь, когда дискета смонтирована, нужно перейти в
- каталог /mnt:
+ каталог /mnt:
&prompt.root; cd /mntСейчас вам нужно настроить дискету для загрузки в
последовательную консоль. Нужно создать файл
boot.config, содержащий
/boot/loader -h. Это нужно для того, чтобы
передать загрузчику флаг загрузки с последовательной
консоли.&prompt.root; echo "/boot/loader -h" > boot.configТеперь, когда ваша дискета правильно настроена,
размонтируйте ее с помощью команды &man.umount.8;:&prompt.root; cd /
&prompt.root; umount /mntТеперь удалите дискету из дисковода.Подсоединение нуль-модемного кабелянуль-модемный кабельТеперь нужно соединить два компьютера нуль-модемным кабелем.
Просто подсоедините этот кабель к последовательным
портам двух компьютеров. Обычный последовательный
кабель не будет работать, вам потребуется
нуль-модемный кабель, поскольку в нем некоторые соединения
перевернуты.Загрузка для установкиНастало время начать установку. Вставьте диск
kern.flp в дисковод компьютера, на который
вы будете производить установку без монитора и включите его.Подключение к компьютеру без монитораcuТеперь вы можете подключиться к этому компьютеру с помощью
&man.cu.1;:&prompt.root; cu -l /dev/cuaa0Это все! Теперь вы можете управлять компьютером без монитора через
сессию cu. Будет запрошен диск
mfsroot.flp, затем появится выбор типа
терминала. Выберите цветную консоль FreeBSD и проводите
установку!Подготовка собственного источника установкиЧтобы не повторяться, диск FreeBSD в данном случае
означает FreeBSD CDROM или DVD который вы купили или подготовили
самостоятельно.Может быть несколько ситуаций, в которых вам потребуется подготовить
собственный диск и/или источник для установки FreeBSD. Это может быть
физический носитель, такой как лента, или источник, с которого
sysinstall сможет взять файлы, такой как
локальный сервер FTP, или раздел &ms-dos;.Например:У вас есть много компьютеров, подсоединенных к локальной сети, и
один диск с FreeBSD. Вы хотите создать локальный сервер FTP,
используя содержимое диска FreeBSD, а затем использовать с ваших
компьютеров этот локальный сервер FTP вместо подсоединения к
интернет.У вас есть диск с FreeBSD, и FreeBSD не распознает ваш CD/DVD
привод, а &ms-dos;/&windows; распознает. Вы хотите скопировать
файлы установки FreeBSD на раздел DOS этого же компьютера и
установить FreeBSD используя эти файлы.На компьютере, на который вы хотите провести установку, нет ни
привода CD/DVD ни сетевой карты, но вы можете подсоединиться в
Laplink-стиле последовательным или параллельным
кабелем к другому компьютеру, на котором они есть.Вы хотите создать ленту, которую можно использовать для
установки FreeBSD.Создание установочного CDROMВ составе каждого релиза проект FreeBSD предоставляет доступ к
двум образам CDROM (ISO images). Эти образы могут
быть записаны (прожжены) на CD если у вас есть CD-рекордер,
а затем использованы для установки FreeBSD. Если у вас есть
CD-рекордер и дешевый канал интернет, это простейший путь
установить FreeBSD.Скачайте соответствующие ISO образыISO образы для каждого релиза могут быть загружены с ftp://ftp.FreeBSD.org/pub/FreeBSD/ISO-IMAGES-архитектура/версия или с ближайшего зеркала.
Замените архитектура и
версия в соответствии архитектурой
(Alpha или &i386;) и номером релиза соответственно.Этот каталог обычно содержит следующие образы:
Названия FreeBSD ISO образов и их значенияИмя файлаСодержимоеверсия-mini.isoВсе что вам нужно для установки FreeBSD.версия-disc1.isoВсе что вам нужно для установки FreeBSD, и столько
дополнительных пакетов сторонних производителей, сколько
уместилось на диске.версия-disc2.isolive filesystem, используемая в
сочетании со средством Repair программы
sysinstall. Копия дерева CVS
FreeBSD. Столько дополнительных пакетов сторонних
производителей, сколько уместилось на диске.
Вам необходимо загрузить или образ mini
ISO, или образ первого диска. Не загружайте их оба, так как
образ первого диска содержит все, что есть на образе mini
ISO.Используйте mini ISO если доступ в интернет затруднен. Он
позволит вам установить FreeBSD, и вы сможете установить в
последствии программы сторонних производителей используя
систему портов/пакетов (смотрите
) если необходимо.Используйте образ первого диска, если хотите выбрать
программы сторонних производителей с этого диска.Дополнительные образы дисков полезны, но не необходимы,
особенно если у вас есть высокоскоростной доступ к интернет.Запись CDЗатем вам нужно записать образы CD на диски. Если вы делаете
это из другой системы FreeBSD, обратитесь к
за более подробной информацией (в
частности, и
).Если вы делаете это в другой системе, потребуется
использовать те утилиты для управления CD-рекордером, которые
есть в этой системе. Образы дисков предоставляются в стандартном
формате ISO, который поддерживается многими программами.Создание локального сервера FTP с FreeBSDустановкасетьFTPДиск FreeBSD сформирован так же, как и сервер FTP. Это сильно
упрощает создание локального сервера FTP, который может быть
использован другими компьютерами вашей сети для установки
FreeBSD.Убедитесь, что на компьютере FreeBSD, на котором будет
установлен сервер FTP, CDROM находится в приводе и смонтируйте
/cdrom.&prompt.root; mount /cdromСоздайте учетную запись для anonymous FTP в
/etc/passwd. Сделайте это, отредактировав
/etc/passwd с помощью &man.vipw.8; и добавив
эту строку:ftp:*:99:99::0:0:FTP:/cdrom:/nonexistentУбедитесь что сервис FTP включен в
/etc/inetd.conf.Всякий, кто может подсоединиться по сети к вашему компьютеру,
может выбрать тип носителя FTP и набрать
ftp://ваш компьютер
после выбора Other в меню серверов FTP во время
установки.Этот подход хорош для компьютера в вашей локальной сети,
защищенного с помощью файрволла. Предоставление сервиса FTP
другим компьютерам через интернет (а не через локальную сеть)
привлекает к вашему компьютеру внимание кракеров и других
лиц, чье внимание нежелательно. Мы настоятельно рекомендуем
придерживаться правильной политики безопасности, если вы
делаете это.Создание дискет для установкиустановкадискетыЕсли вам требуется выполнить установку с дискет (чего мы
не рекомендуем делать) или по причине
не поддерживаемого оборудования, или просто потому, что
вы не любите простых путей, потребуется сначала
подготовить несколько дискет для установки.Как минимум, вам потребуется столько 1.44 MB или 1.2 MB
дискет, сколько нужно, чтобы вместить все файлы из каталога
bin (binary distribution). Если
вы подготавливаете эти дискеты из DOS, они
должны быть отформатированы с помощью команды
&ms-dos; FORMAT. Если вы используете &windows;,
используйте Explorer для форматирования дисков (кликните правой
кнопкой мыши на диске A: и выберите
Format).Не доверяйте заводскому форматированию
дискет. Отформатируйте их еще раз самостоятельно, просто для
уверенности. Множество проблем, о которых сообщали наши пользователи,
были результатом использования неправильно отформатированных дисков,
поэтому мы сейчас обращаем на это внимание.Если вы создаете образы на другом компьютере FreeBSD,
форматирование все еще не лишне, хотя вам не потребуется
создавать файловую систему DOS на каждой дискете. Вы можете
использовать disklabel и newfs
для создания на них файловых систем UFS, в следующей
последовательности (для 3.5" 1.44 MB дискет):&prompt.root; fdformat -f 1440 fd0.1440
&prompt.root; disklabel -w -r fd0.1440 floppy3
&prompt.root; newfs -t 2 -u 18 -l 1 -i 65536 /dev/fd0Используйте fd0.1200 и
floppy5 для 5.25" 1.2 MB дискет.Затем вы можете смонтировать их и писать на них как на любую
другую файловую систему.После форматирования дискет вам потребуется скопировать на них
файлы. Файлы дистрибутива разделены на части, размер которых
позволяет легко разместить пять частей на обычной 1.44 MB дискете.
Заполните все дискеты файлами, помещая столько файлов на одну
дискету, сколько уместится, пока у вас не будет всех необходимых
компонент дистрибутива. Каждый компонент должен располагаться
в подкаталоге на дискете, например
a:\bin\bin.aa,
a:\bin\bin.ab, и так далее.Как только в процессе установки появится экран Media,
выберите Floppy и установка продолжится.Установка с раздела &ms-dos;установкас MS-DOSЧтобы подготовиться к установке с раздела &ms-dos;,
скопируйте файлы с дистрибутива в каталог
freebsd корневого каталога раздела.
Например, c:\freebsd. Структура каталога
CDROM или сервера FTP должна быть в точности воспроизведена в
этом каталоге, мы предлагаем использовать команду DOS
xcopy если вы копируете дистрибутив с CD.
Например, чтобы подготовить минимальную установку FreeBSD:C:\>md c:\freebsdC:\>xcopy e:\bin c:\freebsd\bin\ /sC:\>xcopy e:\manpages c:\freebsd\manpages\ /sПредполагается, что на C: есть свободное
место, а на E: смонтирован CDROM.Если у вас нет CDROM, можно загрузить дистрибутив с ftp.FreeBSD.org.
Каждый компонент находится в своем собственном каталоге, например
компонент base можно найти в каталоге &rel.current;/base/.В 4.X и более поздних релизах &os; компонент
base называется bin. Поправьте
команды и ссылки соответственно, если вы используете эти
версии.Все компоненты, которые вы будете устанавливать с раздела
&ms-dos; (и для которых у вас есть место), нужно расположить в
c:\freebsd — для минимальной установки
нужна только компонента BIN.Создание ленты для установкиустановкас ленты QIC/SCSIУстановка с ленты это возможно самый простой метод, уступающий
только установке с FTP или CDROM. Программа установки может
найти на ленте файлы, которые записаны на нее с помощью tar.
После получения всех файлов дистрибутива, которые вам нужны,
запишите их на ленту с помощью tar:&prompt.root; cd /freebsd/distdir
&prompt.root; tar cvf /dev/rwt0 dist1 ... dist2Когда вы приступите к установке, нужно убедиться в наличии
достаточного места во временном каталоге (который будет
предложено выбрать), чтобы поместилось все
содержимое записанной ленты. Поскольку лента — устройство
не-произвольного доступа, этот метод установки требует некоторого
места во временном хранилище.При начале установки лента должна быть в приводе
до загрузки с дискеты.
В ином случае она может быть не найдена при тестировании
устройств.Перед установкой по сетиустановкасетьпоследовательная (SLIP или PPP)установкасетьпараллельная (PLIP)установкасетьEthernetЕсть три возможных типа установки по сети. Через последовательный
порт (SLIP или PPP), параллельный порт (PLIP (laplink кабель)),
или Ethernet (стандартный Ethernet контроллер (включая некоторые
PCMCIA)).Поддержка SLIP немного примитивна, и ограничена в основном
постоянными соединениями, такими как последовательный
кабель между ноутбуком и другим компьютером. Соединение должно быть
постоянным, так как устанавливаемый SLIP в настоящее время не имеет
возможности дозвона; эта возможность предоставляется программой PPP,
которая должна быть использована вместо SLIP когда это
возможно.Если вы используете модем, PPP это конечно почти единственный
выбор. Убедитесь что у вас есть информация о провайдере, так как она
понадобится на довольно ранней стадии процесса установки.Если вы используете PAP или CHAP для соединения с провайдером
(другими словами, вы можете соединяться с провайдером из
&windows; без использования скрипта), все что вам понадобится это
ввести dial в приглашении
ppp. Иначе вам нужно знать, как
дозвониться до провайдера с помощью AT команд,
специфичных для вашего модема, так как программа дозвона PPP
предоставляет только очень простой эмулятор терминала. Обратитесь
к руководству user-ppp и FAQ для получения более подробных
сведений. Если у вас проблемы, логи могут быть выведены на экран
с помощью команды set log local ....Если доступно постоянное соединение с другой машиной
FreeBSD (2.0-R или выше), вы можете также подумать об
установке через параллельный порт laplink кабелем.
Скорость соединения через параллельный порт значительно выше, чем
обычно возможно через последовательную линию (до 50 кбайт/с),
это приведет к ускорению установки.Наконец, для самой быстрой установки по сети хорошим выбором
будет Ethernet адаптер! FreeBSD поддерживает большинство
PC Ethernet карт; список поддерживаемых карт (и требуемых
для них установок) предоставляется в информации об оборудовании
для каждого релиза FreeBSD. Если вы используете одну из
поддерживаемых PCMCIA Ethernet карт, убедитесь также что она
подключена перед тем, как ноутбук будет
включен! К сожалению, FreeBSD в настоящее время не поддерживает
горячее подключение PCMCIA карт во время установки.Вам также потребуется знать IP адрес в сети, сетевую
маску для класса подсети, и имя компьютера. Если вы делаете
установку через соединение PPP и у вас нет статического
IP, не бойтесь, IP адрес будет динамически выделен вам провайдером.
Системный администратор может подсказать вам какие значения
использовать для данной установки по сети. Если вы будете обращаться
к другим хостам по имени, а не по IP адресу, понадобится также
ДНС сервер и, возможно, адрес шлюза (если вы используете PPP, это
IP адрес вашего провайдера), чтобы связаться с ним. Если вы хотите
производить установку с FTP через HTTP прокси,
потребуется также адрес прокси. Если вы не знаете ответов
на все или большинство этих вопросов, свяжитесь с системным
администратором или ISP перед тем, как начать
этот тип установки.Перед установкой через NFSустановкасетьNFSУстановка через NFS очень проста. Просто скопируйте
компоненты FreeBSD, которые вам нужны на NFS сервер,
а затем укажите на него при выборе источника установки NFS.Если этот сервер поддерживает только привилегированные
порты (это как правило так для рабочих станций Sun),
потребуется установить параметр
в меню Options перед тем, как начать установку.Если у вас Ethernet карта плохого качества с низкой скоростью
передачи данных, вы возможно захотите переключить
флаг в Options.Чтобы установка по NFS работала, сервер должен поддерживать
монтирование подкаталогов, например, если установочный каталог
дистрибутива FreeBSD &rel.current; находится на:
ziggy:/usr/archive/stuff/FreeBSD,
ziggy должен позволять непосредственное
монтирование /usr/archive/stuff/FreeBSD,
а не только /usr или
/usr/archive/stuff.В файле FreeBSD /etc/exports, это
управляется параметром . Другие NFS
сервера могут иметь другие соглашения. Если вы получаете
сообщения сервера permission denied,
это может означать, что соответствующая опция не включена.
diff --git a/ru_RU.KOI8-R/books/handbook/kernelconfig/chapter.sgml b/ru_RU.KOI8-R/books/handbook/kernelconfig/chapter.sgml
index a8ed09e937..65fdf1b6e9 100644
--- a/ru_RU.KOI8-R/books/handbook/kernelconfig/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/kernelconfig/chapter.sgml
@@ -1,1762 +1,1762 @@
JimMockОбновлено и реструктуризовано JakeHambyПредоставлено АлександромКоваленкоПереведено Настройка ядра 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 buildworld, используйте способ
1.Если вы собираете новое ядро, не обновляя исходные тексты
(возможно, для того, чтобы добавить новую опцию, например
IPFIREWALL), вы можете использовать любой
способ.Если вы пересобираете ядро как часть процесса
make buildworld, используйте способ 2.cvsupанонимный CVSCTMCVSанонимныйЕсли вы не обновляли дерево исходных текстов
с момента последнего успешного завершения цикла
buildworld-installworld,
(то есть не запускали CVSup,
CTM, или не использовали
anoncvs), возможно использование
последовательности
config, make depend,
make, make install.
Способ 1. Сборка ядра традиционным способомЗапустите &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. Сборка ядра новым способом.Перейдите в каталог /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 перед тем, как вы
сможете их использовать.
За дополнительной информацией вы можете обратиться к разделу Создание файлов устройств далее в
этой главе.JoelDahlОбновил для &os; 5.X Конфигурационный файлядроNOTESядроLINTNOTESLINTядроконфигурационный файлФормат конфигурационного файла достаточно прост. Каждая строка
представляет собой ключевое слово и один или более аргументов. Для
простоты большинство строк содержат только один аргумент. Всё, что
следует за символом # является комментарием и
игнорируется. Следующие разделы описывают каждый параметр, в основном в
порядке, в котором они появляются в 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 LINTkernelпример конфигурационного файлаЭто пример конфигурационного файла ядра
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 $Следующие параметры обязательны для любого ядра,
которое вы будете собирать:параметры ядраmachinemachine i386Это архитектура машины. Она должна быть одной из
следующих:
alpha, amd64,
i386, ia64,
pc98, powerpc, или
sparc64.параметры ядраcpucpu 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.параметры ядраidentident GENERICЭтот параметр определяет метку ядра. Необходимо,
чтобы она соответствовала названию файла конфигурации ядра, например
MYKERNEL, если вы следовали инструкциям в предыдущих
примерах. Значение, которое вы присвоите параметру
ident будет выводиться в процессе загрузки, поэтому
полезно давать новым ядрам другие имена для того, чтобы отличать их от
обычного ядра (например, если вы хотите собрать экспериментальное
ядро).параметры ядраmaxusersmaxusers 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 npxnpx - это интерфейс к модулю операций с плавающей
точкой в &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_ROOToptions NFSCLIENT # Network Filesystem Client
options NFSSERVER # Network Filesystem Server
options NFS_ROOT # NFS usable as /, requires NFSCLIENTСетевая файловая система. Если вы не планируете монтировать разделы
с файлового сервера &unix; через TCP/IP, вы можете исключить этот
параметр из конфигурационного файла ядра.параметры ядраMSDOSFSoptions 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 frameworkPSEUDOFS недоступна в &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 представляется фактически непригодным для использования в связи
с серьезными потерями в производительности, и активно заменяется
на механизмы, защищающие отдельные ресурсы ядра. Параметр
ADAPTIVE_GIANT включает Giant в число адаптивных
мьютексов: в случае, когда нить ядра нуждается в Giant, а он уже
захвачен нитью, выполняющейся на другом процессоре, первая нить
будет продолжать выполнение и ждать освобождения Giant. В норме
нить должна была бы уснуть, пока не настанет очередной момент ее
выполнения. Если вы не уверены, оставьте этот параметр в покое.kernel optionsSMPdevice apic # I/O APICУстройство 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 scsc - это драйвер консоли по умолчанию, который
имитирует консоль 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 cursorVT220-совместимый драйвер консоли, обратно совместимый с 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 dazip 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 supportether необходим лишь в случае, если у вас есть
сетевая карта. Он включает поддержку стандартного кода протокола
Ethernet. В &os; 4.X используйте строку pseudo-device
ether.device sl # Kernel SLIPsl - это поддержка 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 mddevice 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.Конфигурации с большим количеством оперативной памяти
(PAE)
Расширения физического адресного пространства (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/linuxemu/chapter.sgml b/ru_RU.KOI8-R/books/handbook/linuxemu/chapter.sgml
index e891150c84..6a7eedcc98 100644
--- a/ru_RU.KOI8-R/books/handbook/linuxemu/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/linuxemu/chapter.sgml
@@ -1,3462 +1,3462 @@
JimMockРеструктурировал и частично обновил Brian N.HandyПервоначально предоставил RichMurpheyАлексейДокучаевПеревод на русский язык: ВалерийКравчукПеревод на русский язык и редактирование: Двоичная совместимость с LinuxКраткий обзорLinux - бинарная совместимостьдвоичная совместимостьLinuxFreeBSD предоставляет двоичную совместимость с несколькими другими
&unix;–подобными операционными системами, включая Linux.
Возможно, вы спрашиваете себя, зачем FreeBSD нужно уметь работать
с приложениями, написанными для Linux? Ответ на этот вопрос достаточно
прост: многие компании и разработчики производят программное
обеспечение только для Linux, так как эта операционная система очень
быстро завоевала огромную популярность в компьютерном мире.
Пользователям же FreeBSD приходится обращаться к этим компаниям и
разработчикам с просьбами выпустить версии своих программ специально
для FreeBSD. Проблема в том, что большинство производителей
программного обеспечения не осознают, насколько бы увеличился их рынок
сбыта, выпускай они также FreeBSD–версии, и продолжают разрабатывать
только под Linux. Что же делать пользователям FreeBSD? В этой
ситуации на помощь приходит двоичная совместимость FreeBSD с
Linux.Вкратце, эта совместимость позволяет пользователям FreeBSD
работать с 90% приложений для Linux без каких-либо модификаций
последних. Среди этих приложений:
&staroffice;, Linux–версия
&netscape;,
&adobe; &acrobat;,
RealPlayer
5 и 7, VMware,
&oracle;, WordPerfect,
Doom, Quake,
и многие другие. Есть сведения, что в некоторых ситуациях эти
Linux–программы показывали более высокую производительность при
работе под FreeBSD, чем под Linux.Linuxфайловая система /procКонечно, существует некоторые особенности Linux, которые не
поддерживаются в полной мере под FreeBSD. Например, не будут
работать приложения Linux, использующие файловую систему
/proc (реализация которой отличается от файловой
системы /proc в ОС FreeBSD) или специфичные
вызовы &i386;, такие как переключение в виртуальный режим 8086.При чтении этой главы вы узнаете:Как включить двоичную совместимость с Linux в
вашей системе.Как установить дополнительные совместно используемые
(shared) библиотеки Linux.Как установить приложения Linux в систему FreeBSD.Детали реализации совместимости с Linux в ОС FreeBSD.Перед прочтением этой главы вам потребуется:Узнать как устанавливать дополнительное
программное обеспечение сторонних разработчиков
().УстановкаKLD (загружаемый объект ядра)Двоичная совместимость с Linux не включена по умолчанию.
Простейший способ включения этой функциональности заключается
в загрузке KLD–объекта linux (Kernel
LoaDable object). Вы можете загрузить этот модуль,
просто набрав linux в командной строке.Если вы хотите, чтобы совместимость с Linux была включена
постоянно, необходимо добавить в /etc/rc.conf
следующую строку:linux_enable="YES"Для проверки того, загружен ли модуль, может быть использована
команда &man.kldstat.8;:&prompt.user; kldstat
Id Refs Address Size Name
1 2 0xc0100000 16bdb8 kernel
7 1 0xc24db000 d000 linux.koпараметры ядраLINUXЕсли по какой-либо причине вы не хотите или не можете загрузить
KLD, вы можете статически включить поддержку Linux в ядро,
добавив опцию options COMPAT_LINUX в файл
конфигурации ядра. Затем соберите и установите новое ядро,
следуя описанию в .Установка необходимых библиотек LinuxLinuxустановка библиотек LinuxУстановить все требуемые библиотеки можно двумя путями: либо
используя порт linux_base,
либо установив их вручную.Установка с помощью порта linux_baseколлекция портовЭтот метод является самым простым, и мы рекомендуем
воспользоваться именно им. Процесс аналогичен установке любого
другого порта из коллекции портов.
Просто выполните следующие команды:&prompt.root; cd /usr/ports/emulators/linux_base
&prompt.root; make install distcleanТеперь вы можете работать с приложениями для Linux. Некоторые
программы, возможно, будут сообщать о несоответствии подверсий
некоторых системных библиотек. Однако обычно это не
вызывает каких-либо неудобств.Возможно наличие нескольких версий порта emulators/linux_base, соответствующих
различным версиям разных дистрибутивов Linux. Вы должны
установить порт, наиболее близко соответствующий требованиям
приложений Linux, которые будут установлены.Установка библиотек вручнуюЕсли у вас не установлена коллекция портов, можно
установить требуемые библиотеки вручную. Вам понадобятся
совместно используемые библиотеки для Linux, которые нужны программам, и
runtime–компоновщик. Вам также потребуется создать теневой
корневой каталог, /compat/linux, где
будут расположены Linux–библиотеки. Если Linux–программе нужно
загрузить какую–либо совместно используемую библиотеку, FreeBSD сперва будет
пытаться найти ее в этом дереве. Так, если программа загружает,
например, /lib/libc.so, FreeBSD попытается
открыть /compat/linux/lib/libc.so, и если
такого файла не существует, будет пытаться открыть
/lib/libc.so. Разделяемые библиотеки должны
находиться в теневом дереве, а не в каталогах, выдаваемых
загрузчиком Linux ld.so.Обычно вам придется добавлять совместно используемые библиотеки, от
которых зависят Linux–программы, только при нескольких первых
установках приложений Linux на вашу систему FreeBSD. По мере
работы, у вас в системе накопится достаточный набор совместно используемых
библиотек Linux для запуска новых Linux-программ без
дополнительных действий.Как установить дополнительные совместно используемые библиотекисовместно используемые библиотекиЧто, если при установленном linux_base
порте ваше приложение все равно сообщает об отсутствии необходимой
библиотеки? Как узнать, какая именно нужна библиотека и где ее
взять? В принципе, есть два способа. Вам необходимо иметь
привилегии пользователя root для их
осуществления.Если у вас есть доступ к машине, на которой установлен Linux,
узнайте, какие библиотеки использует Linux–приложение, и просто
скопируйте из на свою машину. Рассмотрим следующий пример:Допустим, вы скачали по FTP Linux–версию
Doom и установили ее на Linux–машине.
Вы можете узнать, какие совместно используемые библиотеки нужны
Doom, с помощью команды
ldd linuxdoom:&prompt.user; ldd linuxdoom
libXt.so.3 (DLL Jump 3.1) => /usr/X11/lib/libXt.so.3.1.0
libX11.so.3 (DLL Jump 3.1) => /usr/X11/lib/libX11.so.3.1.0
libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29символические ссылкиВам потребуются все файлы, перечисленные в последнем
столбце. Скопируйте их в дерево /compat/linux
на вашей системе, а также создайте символические ссылки на эти
файлы с именами из первого столбца, соответственно. В итоге,
у вас в системе FreeBSD должны быть следующие файлы:/compat/linux/usr/X11/lib/libXt.so.3.1.0
/compat/linux/usr/X11/lib/libXt.so.3 -> libXt.so.3.1.0
/compat/linux/usr/X11/lib/libX11.so.3.1.0
/compat/linux/usr/X11/lib/libX11.so.3 -> libX11.so.3.1.0
/compat/linux/lib/libc.so.4.6.29
/compat/linux/lib/libc.so.4 -> libc.so.4.6.29
Учтите, что если у вас уже есть совместно используемая библиотека
Linux с соответствующим первому столбцу результатов
ldd основным номером версии, вам не
обязательно копировать файл, указанный в последнем столбце,
в вашу систему. Уже существующий файл должен подойти.
Рекомендуется, однако, все равно скопировать совместно используемую
библиотеку, если ее версия новее. Предыдущую версию
библиотеки можно удалить, если создали символическую ссылку
на новую. Итак, если у вас в системе есть следующие
библиотеки:/compat/linux/lib/libc.so.4.6.27
/compat/linux/lib/libc.so.4 -> libc.so.4.6.27и какое-либо приложение требует библиотеку более поздней
версии, судя по результатам команды
ldd:libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29Если версии немного отличаются в последней цифре,
копировать /lib/libc.so.4.6.29
необязательно, так как программа, скорее всего, будет
нормально работать и с немного устаревшей версией.
Тем не менее, вы можете заменить
libc.so:/compat/linux/lib/libc.so.4.6.29
/compat/linux/lib/libc.so.4 -> libc.so.4.6.29
Символические ссылки важны только
для Linux–программ. Runtime–компоновщик FreeBSD
самостоятельно подберет правильные номера версий библиотек,
и вам не нужно об этом беспокоиться.
Установка двоичных файлов Linux ELFLinuxдвоичные файлы ELFДля ELF-файлов иногда требуется сделать так называемый
branding (маркировать его). Если попытаться
запустить немаркированный ELF-файл, вы получите следующее сообщение
об ошибке:&prompt.user; ./моя-linux-elf-программа
ELF binary type not known
AbortЧтобы помочь ядру FreeBSD отличить ELF-файл FreeBSD от
двоичного файла Linux, используется утилита &man.brandelf.1;:&prompt.user; brandelf -t Linux моя-linux-elf-программаGNU toolchainВ настоящее время набор инструментальных средств GNU
(GNU toolchain) помещает необходимую маркировочную информацию
в двоичные ELF-файлы автоматически, поэтому необходимость
в этом действии возникает всё реже.Конфигурирование распознавания имен хостовЕсли DNS не работает или вы получаете это сообщение:resolv+: "bind" is an invalid keyword resolv+:
"hosts" is an invalid keywordто вам нужно создать (изменить) файл
/compat/linux/etc/host.conf, содержащий:order hosts, bind
multi onТаким образом, вы указываете, то сначала производится поиск в
файле /etc/hosts, а только затем запрашивается
DNS. Когда файл /compat/linux/etc/host.conf
отсутствует, Linux–приложения находят файл
/etc/host.conf для FreeBSD и сообщают о
несовместимом синтаксисе. Если вы не настраивали сервер имен
с помощью файла /etc/resolv.conf, уберите
bind из файла
/compat/linux/etc/host.conf.MurrayStokelyОбновил для Mathematica 4.X BojanBistrovicОбъединено с работой Установка &mathematica;приложенияMathematicaНиже описано, как установить Linux–версию пакета
&mathematica; 4.X
на систему FreeBSD.Linux–версия &mathematica; отлично
работает под FreeBSD, однако
выполняемые файлы, поставляемые Wolfram, должны быть маркированы
утилитой &man.brandelf.1;, чтобы FreeBSD знала о необходимости
использования Linux ABI для их выполнения.Linux–версию пакета &mathematica;
или &mathematica; for Students
можно заказать непосредственно в компании Wolfram по адресу
.Маркировка двоичных файлов LinuxДвоичные файлы Linux находятся в каталоге
Unix на компакт-диске с дистрибутивом
&mathematica; от Wolfram.
Скопируйте этот каталог (вместе со всеми подкаталогами) на ваш
жесткий диск, чтобы промаркировать (утилитой &man.brandelf.1;)
двоичные файлы Linux перед инсталляцией:&prompt.root; mount /cdrom
&prompt.root; cp -rp /cdrom/Unix/ /localdir/
&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Kernel/Binaries/Linux/*
&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/FrontEnd/Binaries/Linux/*
&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Installation/Binaries/Linux/*
&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Graphics/Binaries/Linux/*
&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Converters/Binaries/Linux/*
&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/LicenseManager/Binaries/Linux/mathlm
&prompt.root; cd /localdir/Installers/Linux/
&prompt.root; ./MathInstallerВы также можете установить марку ELF Linux по умолчанию для всех
немаркированных двоичных файлов с помощью команды:&prompt.root; sysctl kern.fallback_elf_brand=3FreeBSD будет считать, что все немаркированные двоичные
ELF-файлы используют Linux ABI, и вы сможете
запустить MathInstaller прямо с CDROM.Получение пароля к пакету &mathematica;Прежде чем запускать &mathematica;,
вам необходимо получить от компании Wolfram пароль, соответствующий
идентификатору машины.EthernetMAC-адресПосле того, как вы установили необходимые библиотеки и
распаковали файлы &mathematica;,
получите идентификатор машины, запустив
программу mathinfo в
инсталляционном каталоге. Идентификатор машины зависит от
MAC-адреса вашей первой Ethernet-карты.&prompt.root; cd /localdir/Files/SystemFiles/Installation/Binaries/Linux
&prompt.root; mathinfo
disco.example.com 7115-70839-20412При регистрации по электронной почте, по телефону или по факсу
вы сообщаете идентификатор машины, а в ответ
получаете пароль, состоящий из нескольких групп чисел. Введите
этот пароль при первом запуске
&mathematica;, как и для
любой другой платформы.Использование интерфейса &mathematica; по сети&mathematica; использует специальные
шрифты для отображения некоторых символов, которые отсутствуют в
стандартных шрифтах (символы интегралов, сумм, греческий алфавит и
другие). Протокол X требует, чтобы эти шрифты были установлены
локально. Это означает, что вы должны
скопировать эти шрифты с компакт-диска или хоста, на котором
установлена &mathematica;, на вашу
машину. Обычно эти шрифты находятся в каталоге
/cdrom/Unix/Files/SystemFiles/Fonts
компакт-диска или в каталоге
/usr/local/mathematica/SystemFiles/Fonts на
диске. Собственно файлы со шрифтами находятся в подкаталогах
Type1 и X. О том, как их
использовать, читайте ниже.Можно просто скопировать их в один из существующих каталогов
шрифтов в каталоге /usr/X11R6/lib/X11/fonts.
В этом случае придётся отредактировать файл
fonts.dir, добавив в него названия шрифтов и
изменив число шрифтов в первой строке. Можно также запустить
программу &man.mkfontdir.1;, находясь в том каталоге,
куда вы скопировали шрифты.Есть альтернативный способ: скопировать каталоги в
/usr/X11R6/lib/X11/fonts:&prompt.root; cd /usr/X11R6/lib/X11/fonts
&prompt.root; mkdir X
&prompt.root; mkdir MathType1
&prompt.root; cd /cdrom/Unix/Files/SystemFiles/Fonts
&prompt.root; cp X/* /usr/X11R6/lib/X11/fonts/X
&prompt.root; cp Type1/* /usr/X11R6/lib/X11/fonts/MathType1
&prompt.root; cd /usr/X11R6/lib/X11/fonts/X
&prompt.root; mkfontdir
&prompt.root; cd ../MathType1
&prompt.root; mkfontdirТеперь добавьте каталоги с новыми шрифтами в путь к
шрифтам:&prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/X
&prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/MathType1
&prompt.root; xset fp rehashЕсли вы используете сервер &xfree86;,
то можно просто прописать эти
каталоги в файле XF86Config.шрифтыЕсли на вашем компьютере нет каталога
/usr/X11R6/lib/X11/fonts/Type1, замените
MathType1 на Type1 в
предыдущем примере.AaronKaplanПредоставил RobertGetschmannБлагодарности: Установка &maple;приложенияMaple&maple; - коммерческая
математическая программа, аналогичная
&mathematica;. Это программное обеспечение
надо купить у , а потом
зарегистрироваться там для получения файла лицензии. Для установки
это программного обеспечения в ОС FreeBSD используется следующая
последовательность простых шагов.Выполните скрипт командного интерпретатора
INSTALL из дистрибутива. Выберите
опцию RedHat, когда будет предложено программой
установки. Обычно установка выполняется в каталог /usr/local/maple.Если вы этого ещё не сделали, купите лицензию на
&maple; в компании Maple Waterloo
Software ()
и скопируйте ее в файл
/usr/local/maple/license/license.dat.Установите диспетчер лицензий
FLEXlm, выполнив скрипт установки
INSTALL_LIC, входящий в состав
&maple;. Укажите основное имя хоста
вашей машины для сервера лицензий.Исправьте файл
/usr/local/maple/bin/maple.system.type
с помощью следующего патча: ----- snip ------------------
*** maple.system.type.orig Sun Jul 8 16:35:33 2001
--- maple.system.type Sun Jul 8 16:35:51 2001
***************
*** 72,77 ****
--- 72,78 ----
# the IBM RS/6000 AIX case
MAPLE_BIN="bin.IBM_RISC_UNIX"
;;
+ "FreeBSD"|\
"Linux")
# the Linux/x86 case
# We have two Linux implementations, one for Red Hat and
----- snip end of patch -----Учтите, что после "FreeBSD"|\ не должно
быть никаких пробелов.Этот патч заставляет &maple;
распознавать FreeBSD как тип Linux-системы.
Скрипт командного интерпретатора bin/maple
вызывает скрипт bin/maple.system.type,
который, в свою очередь, вызывает uname -a для
получения имени операционной системы. В зависимости от имени ОС
он определяет, какие двоичные модули использовать.Запустите сервер лицензий.Следующий скрипт, установленный в файл
/usr/local/etc/rc.d/lmgrd.sh, обеспечивает
удобный способ запуска lmgrd: ----- snip ------------
#! /bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin
PATH=${PATH}:/usr/local/maple/bin:/usr/local/maple/FLEXlm/UNIX/LINUX
export PATH
LICENSE_FILE=/usr/local/maple/license/license.dat
LOG=/var/log/lmgrd.log
case "$1" in
start)
lmgrd -c ${LICENSE_FILE} 2>> ${LOG} 1>&2
echo -n " lmgrd"
;;
stop)
lmgrd -c ${LICENSE_FILE} -x lmdown 2>> ${LOG} 1>&2
;;
*)
echo "Usage: `basename $0` {start|stop}" 1>&2
exit 64
;;
esac
exit 0
----- snip ------------Выполните тестовый запуск
&maple;:&prompt.user; cd /usr/local/maple/bin
&prompt.user; ./xmapleПрограмма должна запуститься и работать. Не забудьте написать
в Maplesoft и сообщить, что хотели бы видеть версию специально
для FreeBSD!Типичные проблемыРаботать с диспетчером лицензий
FLEXlm может быть непросто.
Дополнительную документацию по нему можно найти на сайте .lmgrd очень требователен к
файлу лицензии и выдает дамп памяти при выявлении любых проблем.
Правильный файл лицензии должен иметь следующий вид:# =======================================================
# License File for UNIX Installations ("Pointer File")
# =======================================================
SERVER chillig ANY
#USE_SERVER
VENDOR maplelmg
FEATURE Maple maplelmg 2000.0831 permanent 1 XXXXXXXXXXXX \
PLATFORMS=i86_r ISSUER="Waterloo Maple Inc." \
ISSUED=11-may-2000 NOTICE=" Technische Universitat Wien" \
SN=XXXXXXXXXСерийный номер и ключ забиты символами 'X'.
chillig – имя хоста.Редактирование файла лицензий возможно, если только не
трогать строку FEATURE (которая защищена
лицензионным ключом).Установка &matlab;приложенияMATLABЭтот документ описывает процесс установки Linux-версии
&matlab; версии 6.5 на систему
&os;. Эта программа работает вполне нормально, за исключением
&java.virtual.machine; (см.
).Linux-версию &matlab; можно приобрести
непосредственно в компании The MathWorks на сайте . Не забудьте получить
файл лицензии или инструкции по его созданию. По ходу дела дайте
знать производителю, что хотели бы увидеть версию их ПО специально
для &os;.Процесс установки &matlab;Для установки &matlab; выполните
следующие шаги:Вставьте инсталляционный CD и смонтируйте его.
Станьте пользователем root, как рекомендует
скрипт установки. Для запуска скрипта установки наберите:&prompt.root; /compat/linux/bin/sh /cdrom/installЗапускается графический инсталлятор. Если вы получаете
сообщения о невозможности открыть дисплей, наберите
setenv HOME ~USER,
где USER – пользователь, от
имени которого выполнена команда &man.su.1;.
При запросе корневого каталога
&matlab;, наберите:
/compat/linux/usr/local/matlab.Чтобы упростить набор остальных команд в ходе установки,
выполните в командном интерпретаторе следующую команду:
set MATLAB=/compat/linux/usr/local/matlabОтредактируйте файл лицензии в соответствии с инструкциями,
в полученной лицензии &matlab;.Этот файл можно подготовить заранее с помощью любого
текстового редактора и скопировать его в
$MATLAB/license.dat до того, как
инсталлятор попросит его отредактировать.Завершите процесс установки.В этот момент ваша установка &matlab;
завершена. Следующие шаги позволяют связать
эту программу с вашей системой &os;.Запуск диспетчера лицензийСоздайте символические ссылки для скриптов диспетчера
лицензий:&prompt.root; ln -s $MATLAB/etc/lmboot /usr/local/etc/lmboot_TMW
&prompt.root; ln -s $MATLAB/etc/lmdown /usr/local/etc/lmdown_TMWСоздайте файл запуска
/usr/local/etc/rc.d/flexlm.sh.
Представленный ниже пример – измененная версия входящего
в дистрибутив файла $MATLAB/etc/rc.lm.glnx86.
Изменены местонахождения файлов и диспетчер лицензий запускается
под эмулятором Linux.#!/bin/sh
case "$1" in
start)
if [ -f /usr/local/etc/lmboot_TMW ]; then
/compat/linux/bin/sh /usr/local/etc/lmboot_TMW -u username && echo 'MATLAB_lmgrd'
fi
;;
stop)
if [ -f /usr/local/etc/lmdown_TMW ]; then
/compat/linux/bin/sh /usr/local/etc/lmdown_TMW > /dev/null 2>&1
fi
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
exit 0Этот файл надо сделать выполняемым:&prompt.root; chmod +x /usr/local/etc/rc.d/flexlm.shВы также должны заменить username
именем пользователя в вашей системе (но не
root).Запустите диспетчер лицензий с помощью команды:&prompt.root; /usr/local/etc/rc.d/flexlm.sh startСвязь с &java; Runtime EnvironmentИзмените ссылку &java; Runtime
Environment (JRE) так, чтобы он ссылалась на версию, работающую
в &os;:&prompt.root; cd $MATLAB/sys/java/jre/glnx86/
&prompt.root; unlink jre; ln -s ./jre1.1.8 ./jreСоздание скрипта запуска &matlab;Поместите следующий скрипт запуска в файл
/usr/local/bin/matlab:
#!/bin/sh
/compat/linux/bin/sh /compat/linux/usr/local/matlab/bin/matlab "$@"Затем выполните команду
chmod +x /usr/local/bin/matlab.В зависимости от версии
emulators/linux_base, при
выполнении этого скрипта могут быть выданы сообщения об ошибках.
Чтобы избежать этого, отредактируйте файл
/compat/linux/usr/local/matlab/bin/matlab
и измените строку вида:if [ `expr "$lscmd" : '.*->.*'` -ne 0 ]; then(в версии 13.0.1 это строка 410) на следующую строку:if test -L $newbase; thenСоздание скрипта остановки &matlab;Следующие действия необходимы для решения проблемы с
некорректным завершением работы &matlab;.Создайте файл
$MATLAB/toolbox/local/finish.m и поместите
в него одну строку:! $MATLAB/bin/finish.sh$MATLAB - литерал.В том же каталоге находятся файлы
finishsav.m и
finishdlg.m, которые позволяют
сохранять рабочее пространство перед выходом. Если вы
используете любой из них, вставьте представленную выше
строку сразу после команды save.Создайте файл
$MATLAB/bin/finish.sh, который будет
содержать следующий скрипт:#!/usr/compat/linux/bin/sh
(sleep 5; killall -1 matlab_helper) &
exit 0Сделайте этот файл выполняемым:&prompt.root; chmod +x $MATLAB/bin/finish.shИспользование &matlab;В этот момент все готово для выполнения команды
matlab и начала использования этой программы.MarcelMoolenaarПредоставил Установка &oracle;приложенияOracleВведениеНиже описан процесс установки &oracle;
8.0.5 и &oracle; 8.0.5.1 Enterprise
Edition для Linux на систему FreeBSD.Установка Linux–средыУдостоверьтесь, что порты
emulators/linux_base и
devel/linux_devtools установлены
на вашей системе. Если у вас возникнут трудности с этими портами,
воспользуйтесь пакетами или более ранними их версиями из
коллекции портов.Если вы хотите использовать интеллектуальный агент (intelligent
agent), придется также установить пакет TCL от Red Hat:
tcl-8.0.3-20.i386.rpm. Универсальная команда
для установки пакетов с помощью официального порта
RPM
(archivers/rpm):&prompt.root; rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm пакетУстановка этого пакета должна
пройти без каких-либо ошибок.Создание среды &oracle;Прежде чем вы сможете установить
&oracle;, необходимо настроить
соответствующую среду. В этом документе описано, что
специально нужно сделать, чтобы запустить
&oracle; для Linux под FreeBSD –
это не пересказ официального руководства по установке
&oracle;.Настройка ядранастройка ядраКак описано в руководстве по установке
&oracle;, необходимо
установить максимальный размер совместно используемой (shared) памяти. Не используйте
SHMMAX под FreeBSD. SHMMAX
просто вычисляется, исходя из SHMMAXPGS и
PGSIZE. Следовательно, нужно задавать
SHMMAXPGS. За информацией о прочих опциях
обратитесь к официальному руководству. Пример настроек:options SHMMAXPGS=10000
options SHMMNI=100
options SHMSEG=10
options SEMMNS=200
options SEMMNI=70
options SEMMSL=61Установите эти опции в зависимости от того, как и для чего
вы будете использовать &oracle;.Не забудьте добавить следующие строки в файл конфигурации
ядра:options SYSVSHM # совместно используемая память SysV
options SYSVSEM # семафоры SysV
options SYSVMSG # межпроцессное взаимодействие SysVУчетная запись &oracle;Создайте специальную учетную запись
oracle, как и любую другую учетную запись.
Единственное отличие в том, что для oracle
необходимо указать командный интерпретатор Linux.
Добавьте /compat/linux/bin/bash в
/etc/shells и установите для
oracle командный интерпретатор
/compat/linux/bin/bash.Переменные средыКроме стандартных переменных среды
&oracle;, таких как
ORACLE_HOME и ORACLE_SID, вам нужно
будет установить следующие переменные среды:ПеременнаяЗначениеLD_LIBRARY_PATH$ORACLE_HOME/libCLASSPATH$ORACLE_HOME/jdbc/lib/classes111.zipPATH/compat/linux/bin
/compat/linux/sbin
/compat/linux/usr/bin
/compat/linux/usr/sbin
/bin
/sbin
/usr/bin
/usr/sbin
/usr/local/bin
$ORACLE_HOME/binЖелательно устанавливать все переменные среды в файле
.profile. Вот реальный пример:ORACLE_BASE=/oracle; export ORACLE_BASE
ORACLE_HOME=/oracle; export ORACLE_HOME
LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH
ORACLE_SID=ORCL; export ORACLE_SID
ORACLE_TERM=386x; export ORACLE_TERM
CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip
export CLASSPATH
PATH=/compat/linux/bin:/compat/linux/sbin:/compat/linux/usr/bin
PATH=$PATH:/compat/linux/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin
PATH=$PATH:/usr/local/bin:$ORACLE_HOME/bin
export PATHУстановка &oracle;Из-за небольшой несовместимости с Linux–эмулятором, вам нужно
будет создать подкаталог .oracle в каталоге
/var/tmp прежде, чем можно будет начать
установку. Либо сделайте ее владельцем пользователя
oracle, либо поставьте права на запись для всех.
Если вы все сделали правильно, то установка
&oracle; должна пройти без проблем. Если
какие-либо трудности все же возникли, проверьте еще раз все
конфигурационные файлы и/или целостность дистрибутива
&oracle;. После окончания установки
&oracle; примените патчи,
описанные в следующих двух подразделах.Одна из часто возникающих проблем — неправильно
установленный адаптер TCP-протокола. В результате, невозможно
запустить процессы прослушивания TCP. Вот решение проблемы:&prompt.root; cd $ORACLE_HOME/network/lib
&prompt.root; make -f ins_network.mk ntcontab.o
&prompt.root; cd $ORACLE_HOME/lib
&prompt.root; ar r libnetwork.a ntcontab.o
&prompt.root; cd $ORACLE_HOME/network/lib
&prompt.root; make -f ins_network.mk installНе забудьте повторно запустить root.sh!Изменение root.shПри установке &oracle;
необходимо выполнить некоторые действия от имени
пользователя root. Они записаны в
скрипте командного интерпретатора root.sh,
который находится в каталоге orainst.
Перед запуском, примените к нему следующий патч (исправляет
местонахождение утилиты chown), либо запускайте его в командном
интерпретаторе Linux.*** orainst/root.sh.orig Tue Oct 6 21:57:33 1998
--- orainst/root.sh Mon Dec 28 15:58:53 1998
***************
*** 31,37 ****
# This is the default value for CHOWN
# It will redefined later in this script for those ports
# which have it conditionally defined in ss_install.h
! CHOWN=/bin/chown
#
# Define variables to be used in this script
--- 31,37 ----
# This is the default value for CHOWN
# It will redefined later in this script for those ports
# which have it conditionally defined in ss_install.h
! CHOWN=/usr/sbin/chown
#
# Define variables to be used in this scriptЕсли вы устанавливаете &oracle;
не с компакт–диска, можно изменить исходный файл
root.sh. Он называется
rthd.sh и находится в каталоге
orainst.Изменение genclntshСкрипт genclntsh используется для того,
чтобы создать единую совместно используемую клиентскую библиотеку,
которая используется для создания демонстраций. Примените
следующий патч, чтобы закомментировать определение переменной
PATH:*** bin/genclntsh.orig Wed Sep 30 07:37:19 1998
--- bin/genclntsh Tue Dec 22 15:36:49 1998
***************
*** 32,38 ****
#
# Explicit path to ensure that we're using the correct commands
#PATH=/usr/bin:/usr/ccs/bin export PATH
! PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
#
# each product MUST provide a $PRODUCT/admin/shrept.lst
--- 32,38 ----
#
# Explicit path to ensure that we're using the correct commands
#PATH=/usr/bin:/usr/ccs/bin export PATH
! #PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
#
# each product MUST provide a $PRODUCT/admin/shrept.lstЗапуск &oracle;Теперь, если вы все сделали правильно, то можете использовать
&oracle; так же, как и в системе
Linux.HolgerKippПредоставил ValentinoVaschettoИсходную версию преобразовал в SGML Установка &sap.r3;приложенияSAP R/3Инсталляции систем &sap; на базе FreeBSD
не будут поддерживаться службой поддержки &sap; — они
предоставляют поддержку только на сертифицированных платформах.ПредисловиеЭтот документ описывает возможный способ установки системы
&sap.r3; с
СУБД &oracle; Database на машине с ОС
FreeBSD, включая установку FreeBSD и
&oracle;. Будут описаны две
разные конфигурации:&sap.r3; 4.6B (IDES) с
&oracle; 8.0.5 на FreeBSD 4.3-STABLE&sap.r3; 4.6C с
&oracle; 8.1.7 на FreeBSD 4.5-STABLEХотя в этом документе мы пытаемся подробно описать все важные
шаги, он не заменяет руководства по установке
&oracle; и
&sap.r3;.По специфическим вопросам &sap; и
&oracle; обратитесь к документации,
поставляемой в составе &sap.r3;
Linux edition, а также к другим источникам информации об
&oracle; и
&sap; OSS.Программное обеспечениеДля установки &sap; были использованы
следующие диски CD-ROM:&sap.r3; 4.6B, &oracle; 8.0.5ИмяНомерОписаниеKERNEL51009113SAP Kernel Oracle /
Installation / AIX, Linux, SolarisRDBMS51007558Oracle / RDBMS 8.0.5.X /
LinuxEXPORT151010208IDES / DB-Export /
Диск 1 из 6EXPORT251010209IDES / DB-Export /
Диск 2 из 6EXPORT351010210IDES / DB-Export /
Диск 3 из 6EXPORT451010211IDES / DB-Export /
Диск 4 из 6EXPORT551010212IDES / DB-Export /
Диск 5 из 6EXPORT651010213IDES / DB-Export /
Диск 6 из 6Кроме того, мы использовали CD &oracle; 8
Server (Опытная версия 8.0.5 для Linux,
ядро версии 2.0.33), который не обязательно понадобится, и
FreeBSD 4.3-STABLE (она вышла всего через несколько дней после 4.3
RELEASE).&sap.r3; 4.6C SR2, &oracle; 8.1.7ИмяНомерОписаниеKERNEL51014004SAP Kernel Oracle /
SAP Kernel Version 4.6D / DEC, LinuxRDBMS51012930Oracle 8.1.7/ RDBMS /
LinuxEXPORT151013953Release 4.6C SR2 / Export
/ Диск 1 из 4EXPORT151013953Release 4.6C SR2 / Export
/ Диск 2 из 4EXPORT151013953Release 4.6C SR2 / Export
/ Диск 3 bp 4EXPORT151013953Release 4.6C SR2 / Export
/ Диск 4 из 4LANG151013954Release 4.6C SR2 /
Language / DE, EN, FR / Диск 1 из 3В зависимости от языков, которые необходимо установить,
могут потребоваться дополнительные CD. Здесь мы использовали
только немецкий и английский языки, поэтому потребовался только
первый языковой CD. Обратите внимание, что номера всех
EXPORT CD идентичны. Все три языковых CD тоже имеют один номер
(это отличается от нумерации CD в версии 4.6B IDES). На момент
написания этого раздела (20.03.2002) установленное ПО работало
на FreeBSD 4.5-STABLE.Примечания по &sap;Прочитайте следующие документы перед установкой
&sap.r3; — они пригодятся в ходе
установки:&sap.r3; 4.6B, &oracle; 8.0.5НомерНазвание0171356SAP Software on Linux: Essential
Comments0201147INST: 4.6C R/3 Inst. on UNIX -
Oracle0373203Update / Migration Oracle 8.0.5 -->
8.0.6/8.1.6 LINUX0072984Release of Digital UNIX 4.0B for
Oracle0130581R3SETUP step DIPGNTAB terminates0144978Your system has not been installed
correctly0162266Questions and tips for R3SETUP on Windows
NT / W2K&sap.r3; 4.6C, &oracle; 8.1.7НомерНазвание0015023Initializing table TCPDB (RSXP0004)
(EBCDIC)0045619R/3 with several languages or
typefaces0171356SAP Software on Linux: Essential
Comments0195603RedHat 6.1 Enterprise version:
Known problems0212876The new archiving tool SAPCAR0300900Linux: Released DELL Hardware0377187RedHat 6.2: important remarks0387074INST: R/3 4.6C SR2 Installation on
UNIX0387077INST: R/3 4.6C SR2 Inst. on UNIX -
Oracle0387078SAP Software on UNIX: OS Dependencies
4.6C SR2Требования к аппаратному обеспечениюСледующего оборудования достаточно для установки
&sap.r3; System. Для производственного
использования необходима более точная оценка параметров:Компонент4.6B4.6CПроцессор2 x 800MHz &pentium; III2 x 800MHz &pentium; IIIПамять1GB ECC2GB ECCОбъем дисков50-60GB (IDES)50-60GB (IDES)Для производственного использования рекомендуются процессоры
&xeon; с большим кешем, высокоскоростной доступ к дискам (SCSI,
аппаратный RAID-контроллер), USV и ECC-RAM. Большой объем дискового
пространства связан с заранее сконфигурированной системой IDES,
которая создает 27 Гбайт файлов базы данных в ходу установки.
Этого пространства также достаточно для исходных производственных
систем и прикладных данных.&sap.r3; 4.6B, &oracle; 8.0.5Было использовано следующее стандартное оборудование:
двухпроцессорная материнская плата с двумя процессорами
&pentium; III 800 MHz, SCSI-контроллером &adaptec; 29160
Ultra160 (для работы с 40/80 Гбайт стримером DLT и приводом
CDROM), &mylex; &acceleraid; (2 канала, firmware 6.00-1-00 с
32 Мбайт RAM). К RAID-контроллеру &mylex; подключены два диска
по 17 Гбайт (зеркалированы) и четыре диска по 36 Гбайт
(RAID уровня 5).&sap.r3; 4.6C, &oracle; 8.1.7Для этой установки был использован &dell; &poweredge; 2500:
двухпроцессорная плата с двумя процессорами &pentium; III
1000 MHz (256 Кбайт кеш), 2 Гбайта PC133 ECC SDRAM,
PERC/3 DC PCI RAID-контроллер со 128 Мбайтами и приводом
EIDE DVD-ROM. К RAID-контроллеру подключены два диска по
18 Гбайт (зеркалированы) и четыре диска по 36 Гбайт
(RAID уровня 5).Установка FreeBSDСначала надо установить FreeBSD. Есть несколько способов сделать
это (FreeBSD 4.3 была установлена по FTP,
FreeBSD 4.5 - непосредственно с RELEASE CD); подробнее
см. .Компоновка дисковДля простоты диски при установке
&sap.r3; 46B и &sap.r3; 46C
SR2 использовались одинаково. Изменились только
имена устройств, поскольку установка выполнялась на разное
оборудование (/dev/da и
/dev/amr, соответственно, так что при
использовании AMI &megaraid; будут задействованы устройства
/dev/amr0s1a вместо /dev/da0s1a):Файловая системаРазмер (в блока по 1 Кбайту)Размер (Гбайт)Смонтирована в/dev/da0s1a1.016.3031//dev/da0s1b6swap/dev/da0s1e2.032.6232/var/dev/da0s1f8.205.3398/usr/dev/da1s1e45.734.36145/compat/linux/oracle/dev/da1s1f2.032.6232/compat/linux/sapmnt/dev/da1s1g2.032.6232/compat/linux/usr/sapКонфигурируем и инициализируем заранее два логических диска
с помощью ПО RAID &mylex; или PERC/3. Программы конфигурирования
можно запустить в ходе загрузки BIOS.Обратите внимание, что использованная компоновка дисков
немного отличается от рекомендованной &sap;, поскольку &sap;
рекомендует монтировать подкаталоги
&oracle; (и некоторые другие)
отдельно — мы решили просто создать подкаталоги.make world и новое ядроЗагрузите последние исходные коды ветки -STABLE. Пересоздайте
систему и ваше специализированное ядро после необходимых изменений
в файле конфигурации ядра. В него надо включить
параметры ядра, требуемые
для &sap.r3; и
&oracle;.Установка среды LinuxУстановка базовой системы LinuxСначала необходимо установить порт
linux_base
(от имени пользователя root):&prompt.root; cd /usr/ports/emulators/linux_base
&prompt.root; make install distcleanУстановка среды разработки LinuxСреда разработки Linux необходима, если вы хотите установить
&oracle; в ОС FreeBSD, как описано в
:&prompt.root; cd /usr/ports/devel/linux_devtools
&prompt.root; make install distcleanСреда разработки Linux была установлена только для
&sap.r3; 46B IDES. Она не нужна, если
сервер &oracle; не перекомпоновывается
в системе FreeBSD. Именно так и происходит, если вы используете
tar-архив (tarball) &oracle; с
Linux-системы.Установка необходимых пакетов RPMRPMДля запуска программы R3SETUP необходима
поддержка модулей PAM. В ходе первой установки
&sap; на ОС FreeBSD 4.3-STABLE мы
попытались установить PAM со всеми необходимыми пакетами и,
в конце концов, принудительно установили пакет PAM, что и
сработало. Для &sap.r3; 4.6C SR2 мы
сразу принудительно установили PAM RPM, что тоже сработало,
так что похоже, что пакеты, от которых декларирована зависимость,
не нужны:&prompt.root; rpm -i --ignoreos --nodeps --root /compat/linux --dbpath /var/lib/rpm \
pam-0.68-7.i386.rpmЧтобы &oracle; 8.0.5 мог запустить
интеллектуального агента, нам также пришлось установить пакет
RedHat Tcl tcl-8.0.5-30.i386.rpm (иначе
перекомпоновка в ходе установки &oracle;
не выполнится). Есть и другие проблемы с перекомпоновкой
&oracle;, но это проблема
&oracle; на Linux, не связанная с
особенностями FreeBSD.Дополнительные советыМожет также иметь смысл добавить linprocfs
в /etc/fstab; подробнее об этом см. на
странице справочника the &man.linprocfs.5;. Еще можно установить
параметр kern.fallback_elf_brand=3 в файле
/etc/sysctl.conf.Создание среды &sap.r3;Создание необходимых файловых систем и точек монтированияДля простой установки достаточно создать следующие файловые
системы:точка монтированияразмер в Гбайтах/compat/linux/oracle45 GB/compat/linux/sapmnt2 GB/compat/linux/usr/sap2 GBТакже необходимо создать несколько ссылок. В противном случае,
инсталлятор &sap; будет выдавать
сообщения об ошибках, поскольку он проверяет созданные ссылки:&prompt.root; ln -s /compat/linux/oracle /oracle
&prompt.root; ln -s /compat/linux/sapmnt /sapmnt
&prompt.root; ln -s /compat/linux/usr/sap /usr/sapВозможные сообщения об ошибках в ходе установки (в данном
случае, для установки System PRD и
&sap.r3; 4.6C SR2):INFO 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:200
Checking existence of symbolic link /usr/sap/PRD/SYS/exe/dbg to
/sapmnt/PRD/exe. Creating if it does not exist...
WARNING 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:400
Link /usr/sap/PRD/SYS/exe/dbg exists but it points to file
/compat/linux/sapmnt/PRD/exe instead of /sapmnt/PRD/exe. The
program cannot go on as long as this link exists at this
location. Move the link to another location.
ERROR 2002-03-19 16:45:36 R3LINKS_IND_IND Ins_SetupLinks:0
can not setup link '/usr/sap/PRD/SYS/exe/dbg' with content
'/sapmnt/PRD/exe'Создание пользователей и каталоговДля системы &sap.r3; необходимы два
пользователя и три группы. Имена пользователей зависят от
идентификатора системы &sap; (SID),
который состоит из трех букв. Некоторые из этих идентификаторов
зарезервированы &sap; (например,
SAP и NIX. Полный
список см. в документации &sap;).
Для установки IDES мы использовали IDS,
а для установки 4.6C SR2 - PRD, поскольку
эта система предназначалась для промышленного использования.
Поэтому нам понадобились следующие группы (идентификаторы групп
могут отличаться, мы просто указали наши значения, использованные
при установке):идентификатор группыимя группыописание100dbaАдминистратор базы данных101sapsysСистема &sap;102operОператор базы данныхДля стандартной установки
&oracle; используется только группа
dba. В качестве группы
oper используется та же группа
dba (подробнее об этом см. в
документации &oracle; и
&sap;).Нам также нужны следующие пользователи:идентификатор пользователяимя пользователяобщий вид именигруппадополнительные группыописание1000idsadm/prdadmsidadmsapsysoperАдминистратор &sap;1002oraids/oraprdorasiddbaoperАдминистратор &oracle;Добавление пользователей с помощью &man.adduser.8;
требует следующих параметров для Администратора &sap;
(обратите внимание на командный интерпретатор и начальный
каталог):Name: sidadm
Password: ******
Fullname: SAP Administrator SID
Uid: 1000
Gid: 101 (sapsys)
Class:
Groups: sapsys dba
HOME: /home/sidadm
Shell: bash (/compat/linux/bin/bash)а для Администратора &oracle;:Name: orasid
Password: ******
Fullname: Oracle Administrator SID
Uid: 1002
Gid: 100 (dba)
Class:
Groups: dba
HOME: /oracle/sid
Shell: bash (/compat/linux/bin/bash)Для него также надо указать группу
oper, если вы используете обе группы,
dba и oper.Создание каталоговЭти каталоги обычно создаются в отдельных файловых системах.
Впрочем, все зависит от ваших требований. Мы решили создавать их
как обычные каталоги, поскольку в любом случае они находятся на
одном массиве RAID 5:Сначала мы установим владельцев и права для ряда каталогов (от
имени пользователя root):&prompt.root; chmod 775 /oracle
&prompt.root; chmod 777 /sapmnt
&prompt.root; chown root:dba /oracle
&prompt.root; chown sidadm:sapsys /compat/linux/usr/sap
&prompt.root; chmod 775 /compat/linux/usr/sapЗатем, мы создадим каталоги от имени пользователя
orasid. Все они
будут размещены в каталоге
/oracle/SID:&prompt.root; su - orasid
&prompt.root; cd /oracle/SID
&prompt.root; mkdir mirrlogA mirrlogB origlogA origlogB
&prompt.root; mkdir sapdata1 sapdata2 sapdata3 sapdata4 sapdata5 sapdata6
&prompt.root; mkdir saparch sapreorg
&prompt.root; exitДля установки &oracle; 8.1.7
потребуется несколько дополнительных каталогов:&prompt.root; su - orasid
&prompt.root; cd /oracle
&prompt.root; mkdir 805_32
&prompt.root; mkdir client stage
&prompt.root; mkdir client/80x_32
&prompt.root; mkdir stage/817_32
&prompt.root; cd /oracle/SID
&prompt.root; mkdir 817_32Каталог client/80x_32 должен иметь
точно такое имя. Не заменяйте x числом или
другим символом.На третьем шаге мы создаем каталоги от имени пользователя
sidadm:&prompt.root; su - sidadm
&prompt.root; cd /usr/sap
&prompt.root; mkdir SID
&prompt.root; mkdir trans
&prompt.root; exitЗаписи в файле /etc/servicesДля системы &sap.r3; необходим ряд
записей в файле /etc/services, которые не
будут правильно созданы при установке под FreeBSD. Пожалуйста,
добавьте следующие записи (потребуются, по крайней мере, записи,
соответствующие номеру экземпляра — в данном случае,
00. Не повредит добавить все записи, от
00 до 99, для
dp, gw, sp
и ms). Если вы собираетесь использовать
SAProuter или вам необходим доступ к
&sap; OSS, потребуется также запись для
99, поскольку порт 3299 обычно используется
для процесса SAProuter в целевой
системе:
sapdp00 3200/tcp # SAP Dispatcher. 3200 + Instance-Number
sapgw00 3300/tcp # SAP Gateway. 3300 + Instance-Number
sapsp00 3400/tcp # 3400 + Instance-Number
sapms00 3500/tcp # 3500 + Instance-Number
sapmsSID 3600/tcp # SAP Message Server. 3600 + Instance-Number
sapgw00s 4800/tcp # SAP Secure Gateway 4800 + Instance-NumberНеобходимые локалилокальСистеме &sap; нужны, по крайней
мере, две локали, не входящие в стандартную установку RedHat.
&sap; предлагает необходимые пакеты RPM для загрузки со своего
FTP-сервера (который доступен только для клиентов с доступом к
OSS). См. список необходимых пакетов RPM в заметке
0171356.Можно также просто создать соответствующие ссылки
(например, с de_DE и
en_US), но мы не рекомендуем это для
производственной системы (хотя это и сработало для системы
IDES безо всяких проблем). Необходимы следующие локали:de_DE.ISO-8859-1
en_US.ISO-8859-1Создайте ссылки следующим образом:&prompt.root; cd /compat/linux/usr/share/locale
&prompt.root; ln -s de_DE de_DE.ISO-8859-1
&prompt.root; ln -s en_US en_US.ISO-8859-1Если их не будет, в ходе установки возникнет ряд проблем.
Если их просто проигнорировать (установив STATUS
для соответствующих шагов равным OK в файле
CENTRDB.R3S), нельзя будет зарегистрироваться
в системе &sap; без дополнительных
усилий.Настройка ядранастройка ядраСистемам &sap.r3; надо много
ресурсов. Поэтому мы добавили следующие параметры в файл
конфигурации ядра:# Для пожирателей памяти (SAP и Oracle):
options MAXDSIZ="(1024*1024*1024)"
options DFLDSIZ="(1024*1024*1024)"
# Необходимые опции System V.
options SYSVSHM #совместно используемая память в стиле SYSV
options SHMMAXPGS=262144 #макс. количество страниц совместно используемой
#options SHMMAXPGS=393216 #use this for the 46C inst.parameters
options SHMMNI=256 #макс. количество идентификаторов совместно используемой
options SHMSEG=100 #макс. количество сегментов разд. памяти на процесс
options SYSVMSG #очереди сообщений в стиле SYSV
options MSGSEG=32767 #макс. количество сегментов сообщений в системе
options MSGSSZ=32 #размер сегмента сообщений. ДОЛЖЕН быть степенью 2
options MSGMNB=65535 #макс. символов на очередь сообщений
options MSGTQL=2046 #макс. количество сообщений в системе
options SYSVSEM #семафоры в стиле SYSV
options SEMMNU=256 #количество структур UNDO семафоров
options SEMMNS=1024 #количество семафоров в системе
options SEMMNI=520 #количество идентификаторов семафоров
options SEMUME=100 #количество ключей UNDOМинимальные значения указаны в документации, поставляемой
вместе с &sap;. Поскольку описания для Linux нет, дополнительную
информацию см. в разделе HP-UX (32-bit). Поскольку в системе, на
которую устанавливалась версия 4.6C SR2, оперативной памяти больше, сегменты совместно используемой можно сделать больше как для
&sap;, так и для
&oracle;, поэтому задайте большее
количество страниц совместно используемой.При стандартной установке FreeBSD 4.5 на &i386;,
задайте значения MAXDSIZ и DFLDSIZ не более 1 Гбайта. В противном
случае могут выдаваться странные ошибки вроде
ORA-27102: out of memory и
Linux Error: 12: Cannot allocate
memory.Установка &sap.r3;Подготовка дисков CDROM &sap;В ходе установки придется монтировать и демонтировать
много дисков CDROM. При наличии достаточного количества приводов
CDROM, можно смонтировать их все. Мы же решили скопировать
содержимое дисков CDROM в соответствующие каталоги:/oracle/SID/sapreorg/имя_cdгде имя_cd - одно из следующих
KERNEL,
RDBMS, EXPORT1,
EXPORT2, EXPORT3,
EXPORT4, EXPORT5 и
EXPORT6 для установки 4.6B/IDES, и
KERNEL, RDBMS,
DISK1, DISK2,
DISK3, DISK4 и
LANG для установки 4.6C SR2. Все имена
файлов на смонтированных дисках должны быть в верхнем регистре,
в противном случае, используйте при монтировании опцию
. Поэтому используйте следующие команды:&prompt.root; mount_cd9660 -g /dev/cd0a /mnt
&prompt.root; cp -R /mnt/* /oracle/SID/sapreorg/имя_cd
&prompt.root; umount /mntЗапуск скрипта установкиСначала надо подготовить каталог install:&prompt.root; cd /oracle/SID/sapreorg
&prompt.root; mkdir install
&prompt.root; cd installЗатем запускается скрипт установки, который скопирует почти
все необходимые файлы в каталог
install:&prompt.root; /oracle/SID/sapreorg/KERNEL/UNIX/INSTTOOL.SHДистрибутив IDES (4.6B) включает полностью настроенную
демонстрационную систему &sap.r3;, поэтому он включает шесть
дисков EXPORT CD, а не три. В этот момент шаблон установки
CENTRDB.R3S предназначен для установки
стандартного центрального экземпляра
(&r3; и базы данных), а не для
установки центрального экземпляра IDES, поэтому необходимо
скопировать соответствующий файл CENTRDB.R3S
из каталога EXPORT1, иначе
команда R3SETUP запросит только три диска
EXPORT CDs.Более новый релиз &sap; 4.6C SR2
включает четыре диска EXPORT CD. Шаги установки определяет файл
параметров CENTRAL.R3S. В отличие от
прежних релизов, больше нет отдельных шаблонов установки для
центрального экземпляра с базой данных или без нее.
&sap; использует отдельный шаблон для
установки базы данных. Для перезапуска установки в дальнейшем,
однако, достаточно перезапустить исходный файл.В ходе установки и после нее &sap;
требует, чтобы команда hostname возвращала
только имя компьютера, не уточнённое именем домена. Поэтому либо
задайте имя хоста в соответствии с этим требованием, либо
настройте псевдоним с помощью команды
alias hostname='hostname -s' для пользователей
orasid и
sidadm (и для
пользователя root, про крайней мере,
в ходе шагов по установке, выполняемых от имени
root). Можно также изменить
файлы .profile и .login
для обоих пользователей, которые создаются в ходе установки
&sap;.Запуск R3SETUP 4.6BПроверьте, что переменная среды LD_LIBRARY_PATH
установлена правильно:&prompt.root; export LD_LIBRARY_PATH=/oracle/IDS/lib:/sapmnt/IDS/exe:/oracle/805_32/libВыполните команду R3SETUP от имени
пользователя root из каталога установки:&prompt.root; cd /oracle/IDS/sapreorg/install
&prompt.root; ./R3SETUP -f CENTRDB.R3SСкрипт затем задает ряд вопросов (стандартные ответы даны
в скобках, а затем представлены реальные ответы):ВопросСтандартное значениеОтветEnter SAP System ID[C11]IDSEnterEnter SAP Instance Number[00]EnterEnter SAPMOUNT Directory[/sapmnt]EnterEnter name of SAP central host[troubadix.domain.de]EnterEnter name of SAP db host[troubadix]EnterSelect character set[1] (WE8DEC)EnterEnter Oracle server version (1) Oracle 8.0.5, (2) Oracle 8.0.6, (3) Oracle 8.1.5, (4) Oracle 8.1.61EnterExtract Oracle Client archive[1] (Yes, extract)EnterEnter path to KERNEL CD[/sapcd]/oracle/IDS/sapreorg/KERNELEnter path to RDBMS CD[/sapcd]/oracle/IDS/sapreorg/RDBMSEnter path to EXPORT1 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT1Directory to copy EXPORT1 CD[/oracle/IDS/sapreorg/CD4_DIR]EnterEnter path to EXPORT2 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT2Directory to copy EXPORT2 CD[/oracle/IDS/sapreorg/CD5_DIR]EnterEnter path to EXPORT3 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT3Directory to copy EXPORT3 CD[/oracle/IDS/sapreorg/CD6_DIR]EnterEnter path to EXPORT4 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT4Directory to copy EXPORT4 CD[/oracle/IDS/sapreorg/CD7_DIR]EnterEnter path to EXPORT5 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT5Directory to copy EXPORT5 CD[/oracle/IDS/sapreorg/CD8_DIR]EnterEnter path to EXPORT6 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT6Directory to copy EXPORT6 CD[/oracle/IDS/sapreorg/CD9_DIR]EnterEnter amount of RAM for SAP + DB850Enter (in Megabytes)Service Entry Message Server[3600]EnterEnter Group-ID of sapsys[101]EnterEnter Group-ID of oper[102]EnterEnter Group-ID of dba[100]EnterEnter User-ID of sidadm[1000]EnterEnter User-ID of orasid[1002]EnterNumber of parallel procs[2]EnterЕсли вы не скопировали диски в разные каталоги,
инсталлятор &sap; не сможет найти
необходимые CD (идентифицируемые файлом
LABEL.ASC на диске) и попросит затем
вставить и смонтировать CD, и подтвердить или ввести точку
его монтирования.Файл CENTRDB.R3S может содержать
ошибки. В нашем случае, он снова запросил EXPORT4 CD, но
указал корректный ключ (6_LOCATION, затем 7_LOCATION и т.д.),
так что, можно просто продолжать вводить корректные
значения.За исключением нескольких упомянутых ниже проблем, все
должно идти нормально до момента, когда придется устанавливать
программное обеспечение для работы с базой данных &oracle;.Запуск R3SETUP 4.6C SR2Проверьте, что переменная среды LD_LIBRARY_PATH
установлена правильно. Это значение отличается от использованного
при установке версии 4.6B с
&oracle; 8.0.5:&prompt.root; export LD_LIBRARY_PATH=/sapmnt/PRD/exe:/oracle/PRD/817_32/libВыполните команду R3SETUP от имени
пользователя root из каталога установки:&prompt.root; cd /oracle/PRD/sapreorg/install
&prompt.root; ./R3SETUP -f CENTRAL.R3SСкрипт затем задаст ряд вопросов (стандартные значения
даны в скобках, а затем идут реальные ответы):ВопросСтандартное значениеОтветEnter SAP System ID[C11]PRDEnterEnter SAP Instance Number[00]EnterEnter SAPMOUNT Directory[/sapmnt]EnterEnter name of SAP central host[majestix]EnterEnter Database System ID[PRD]PRDEnterEnter name of SAP db host[majestix]EnterSelect character set[1] (WE8DEC)EnterEnter Oracle server version (2) Oracle 8.1.72EnterExtract Oracle Client archive[1] (Yes, extract)EnterEnter path to KERNEL CD[/sapcd]/oracle/PRD/sapreorg/KERNELEnter amount of RAM for SAP + DB20441800Enter (in Megabytes)Service Entry Message Server[3600]EnterEnter Group-ID of sapsys[100]EnterEnter Group-ID of oper[101]EnterEnter Group-ID of dba[102]EnterEnter User-ID of oraprd[1002]EnterEnter User-ID of prdadm[1000]EnterLDAP support3Enter (no support)Installation step completed[1] (continue)EnterChoose installation service[1] (DB inst,file)EnterПока создание пользователей дает сообщение об ошибке при
установке на стадиях OSUSERDBSID_IND_ORA (создание пользователя
orasid) и
OSUSERSIDADM_IND_ORA (создание пользователя
sidadm).За исключением некоторых упомянутых далее проблем, все
должно идти нормально до момента, когда придется устанавливать
программное обеспечение для работы с базой данных &oracle;.Установка &oracle; 8.0.5Описания возможных проблем с Linux и Сервером
&oracle; см. в соответствующих файлах
&sap; Notes и &oracle; Readme. Большинство,
если не все проблемы, связаны с несовместимыми библиотеками.Подробнее об установке &oracle;
см. в главе Установка
&oracle;.Установка &oracle; 8.0.5 с помощью orainstЕсли надо использовать &oracle;
8.0.5, для успешной перекомпоновки понадобится
несколько дополнительных библиотек, поскольку
&oracle; 8.0.5 был скомпонован со
старой версией glibc (RedHat 6.0), но уже RedHat 6.1 использует
новую библиотеку glibc. Так что, для успешной перекомпоновки
нужно установить следующие дополнительные пакеты:compat-libs-5.2-2.i386.rpmcompat-glibc-5.2-2.0.7.2.i386.rpmcompat-egcs-5.2-1.0.3a.1.i386.rpmcompat-egcs-c++-5.2-1.0.3a.1.i386.rpmcompat-binutils-5.2-2.9.1.0.23.1.i386.rpmДополнительную информацию см. в файлах &sap; Notes или &oracle;
Readme. Если установить эти пакеты не
представляется возможным (на момент установки у нас не было
времени, чтобы это проверить), можно использовать исходные двоичные
модули или перекомпонованные двоичные модули с исходной системы
RedHat.Для компиляции интеллектуального агента должен быть
установлен пакет RedHat Tcl. Если вы не можете найти пакет
tcl-8.0.3-20.i386.rpm, подойдет и более
новый, вроде tcl-8.0.5-30.i386.rpm для
RedHat 6.1.За исключением перекомпоновки, установка выполняется
просто:&prompt.root; su - oraids
&prompt.root; export TERM=xterm
&prompt.root; export ORACLE_TERM=xterm
&prompt.root; export ORACLE_HOME=/oracle/IDS
-&prompt.root; cd /ORACLE_HOME/orainst_sap
+&prompt.root; cd $ORACLE_HOME/orainst_sap
&prompt.root; ./orainstНажимайте на всех экранах клавишу Enter,
пока программное обеспечение не будет установлено, убрав только
пометку выбора с &oracle; On-Line Text Viewer,
поскольку этого компонента для Linux сейчас нет.
&oracle; затем захочет
перекомпоновать модули с помощью
i386-glibc20-linux-gcc
вместо имеющихся gcc, egcs
или i386-redhat-linux-gcc.Из-за нехватки времени мы решили использовать двоичные
модули из версии &oracle; 8.0.5
PreProduction после того, как первая попытка
заставить работать версию с RDBMS CD провалилась, — попытки
найти и загрузить требуемые пакеты RPM нам показались настоящим
кошмаром.Установка &oracle; 8.0.5 Pre-production Release для
Linux (ядро 2.0.33)Эту установку выполнить очень легко. Монтируем CD, запускаем
инсталлятор. Затем он запрашивает местонахождение начального
каталога &oracle; и копирует туда двоичные модули. Мы, однако,
не удаляли остатки прежних попыток установить RDBMS.В конечном итоге, базу данных &oracle;
удалось запустить без проблем.Установка tar-архива &oracle; 8.1.7 для LinuxСоздайте tar-архив oracle81732.tgz
каталога установки на Linux-системе и разархивируйте его в
каталог /oracle/SID/817_32/.Продолжение установки &sap.r3;Сначала проверьте настройку среды для пользователей
idsamd (sidadm) и
oraids (orasid). У
них обоих должны теперь быть файлы .profile,
.login и .cshrc,
использующие hostname. Если имя хоста в системе
полностью уточнено, надо заменить hostname
командой hostname -s во всех трех файлах.Загрузка базы данныхПотом команду R3SETUP можно либо
перезапустить, либо продолжить (в зависимости от того, была
ли завершена ее работа). R3SETUP затем
создает табличные пространства и загружает данные (для 46B
IDES - с дисков от EXPORT1 до EXPORT6, для 46C -
с дисков от DISK1 до DISK4) в базу данных с помощью утилиты
R3load.После завершения загрузки базы данных (это может занять
несколько часов), будет запрошено несколько паролей. Для тестовых
установок можно использовать хорошо известные стандартные
пароли (но если защита важна - используйте другие!):ВопросОтветEnter Password for sapr3sapEnterConfirum Password for sapr3sapEnterEnter Password for syschange_on_installEnterConfirm Password for syschange_on_installEnterEnter Password for systemmanagerEnterConfirm Password for systemmanagerEnterМы столкнулись с несколькими проблемами с
dipgntab при установке 4.6B.Процесс прослушиванияЗапустите процесс прослушивания
(&oracle; Listener) от имени
пользователя orasid
следующим образом:&prompt.user; umask 0; lsnrctl startВ противном случае, вы можете получить сообщение об
ошибке ORA-12546, поскольку у сокетов
будут неправильные права доступа. См. &sap; Note 072984.Обновление таблиц MNLSЕсли вы планируете использовать в системе
&sap; языки, для которых не
подходит кодировка Latin-1, придется изменить таблицы
Multi National Language Support. Эта процедура описана в
&sap; OSS Notes 15023 и 45619. Если же нет, можете пропустить
этот вопрос в ходе установки &sap;.Если вам не нужна поддержка MNLS, все равно необходимо
проверить таблицу TCPDB и инициализировать ее, если это еще не
было сделано. Дополнительную информацию см. в &sap; Note 0015023
и 0045619.Шаги после установкиЗапрос лицензионного ключа &sap.r3;Вы должны запросить ваш лицензионный ключ
&sap.r3;. Это необходимо, поскольку
временная лицензия, использованная в ходе установки, действительна
только четыре недели. Сначала получите ключ оборудования.
Зарегистрируйтесь как пользователь idsadm
и вызовите команду saplicense:&prompt.root; /sapmnt/IDS/exe/saplicense -getПри вызове команды saplicense без
параметров будет выдан список опций. После получения
лицензионного ключа, его можно установить с помощью
команды:&prompt.root; /sapmnt/IDS/exe/saplicense -installЗатем вас попросят ввести следующие значения:SAP SYSTEM ID = SID, 3 символа
CUSTOMER KEY = ключ оборудования, 11 символов
INSTALLATION NO = установка, 10 цифр
EXPIRATION DATE = yyyymmdd, обычно - "99991231"
LICENSE KEY = лицензионный ключ, 24 символаСоздание пользователейСоздайте пользователя в клиенте 000 (некоторые задачи
обязательно надо выполнять из клиента 000, от имени пользователя,
отличающегося от sap* и
ddic). В качестве имени пользователя мы
обычно выбираем wartung (или
service, по английски). Требуются профили
sap_new и sap_all. Для
дополнительной защиты надо изменить пароли стандартных
пользователей на всех клиентах (в том числе, пользователей
sap* и ddic).Конфигурирование системы передачи, профиля, режимов работы и т.п.В клиенте 000, от имени пользователя, отличающегося от
ddic и sap*,
выполните, как минимум, следующее:ЗадачаТранзакцияСконфигурируйте систему передачи, например, как Stand-Alone Transport Domain EntitySTMSСоздайте/Отредактируйте профиль для системыRZ10Сконфигурируйте режимы работы и экземплярыRZ04Эти и другие шаги, которые надо выполнить после установки,
подробно описаны в руководствах по установке
&sap;.Редактирование initsid.sap (initIDS.sap)Файл /oracle/IDS/dbs/initIDS.sap
содержит профиль резервного копирования
&sap;. Здесь надо задать размер
используемой ленты, тип сжатия и т.д. Чтобы можно было
использовать sapdba /
brbackup, мы изменили следующие значения:compress = hardware
archive_function = copy_delete_save
cpio_flags = "-ov --format=newc --block-size=128 --quiet"
cpio_in_flags = "-iuv --block-size=128 --quiet"
tape_size = 38000M
tape_address = /dev/nsa0
tape_address_rew = /dev/sa0Объяснения:compress: мы использовали ленту HP DLT1,
которая поддерживает аппаратное сжатие.archive_function: этот параметр задает
стандартное поведение для сохранения архивных журналов &oracle;:
новые журнальные файлы сохраняются на ленту, уже сохраненные
файлы журнала сохраняются еще раз, а затем удаляются. Это
предотвращает многочисленные проблемы, если потребуется
восстановить базу данных, а одна из архивных лент окажется
сбойной.cpio_flags: по умолчанию используется
, что устанавливает размер блока 5120 байт.
Для лент DLT компания HP рекомендует размер блока не меньше
32 Кбайт, поэтому мы использовали значение
для задания размера блока
64 Кбайта. Опция необходима,
поскольку у нас есть индексные дескрипторы (inodes) с номерами
больше 65535. Последняя опция, необходима
потому, что иначе команда brbackup выдает
сообщение об ошибке, как только команда cpio
выдаст количество сохраненных блоков.cpio_in_flags: флаги, необходимые для
загрузки данных с ленты. Формат распознается автоматически.tape_size: обычно этот параметр задает
реальную ёмкость ленты. Из соображений надежности (мы используем
аппаратное сжатие), задано значение несколько меньше
фактического.tape_address: устройство без перемотки
для использования в команде cpio.tape_address_rew: устройство с
перемоткой для использования в команде
cpio.Проблемы конфигурирования после установкиСледующие параметры &sap; надо
настроить после установки (примеры для IDES 46B,
1 Гбайт памяти):ИмяЗначениеztta/roll_extension250000000abap/heap_area_dia300000000abap/heap_area_nondia400000000em/initial_size_MB256em/blocksize_kB1024ipc/shm_psize_4070000000&sap; Note 0013026:ИмяЗначениеztta/dynpro_area2500000&sap; Note 0157246:ИмяЗначениеrdisp/ROLL_MAXFS16000rdisp/PG_MAXFS30000При указанных выше параметрах в системе с 1 Гбайт
памяти можно обнаружить примерно следующее использование
памяти:Mem: 547M Active, 305M Inact, 109M Wired, 40M Cache, 112M Buf, 3492K FreeПроблемы в ходе установкиПерезапуск R3SETUP после устранения проблемыR3SETUP останавливается при выявлении
ошибки. Если вы просмотрели соответствующие журнальные файлы и
исправили ошибку, придется запускать R3SETUP
снова, обычно выбирая REPEAT как опцию для последнего шага,
на котором команда R3SETUP выдала сообщение
об ошибке.Для перезапуска команды R3SETUP просто
запустите её с соответствующим файлом
R3S:&prompt.root; ./R3SETUP -f CENTRDB.R3Sдля 4.6B или с файлом&prompt.root; ./R3SETUP -f CENTRAL.R3Sдля 4.6C, независимо от того, произошла ли ошибка
при работе с файлом CENTRAL.R3S или
DATABASE.R3S.На некоторых стадиях команда R3SETUP
предполагает, что запущены и работают процессы как сервера
базы данных, так и &sap; (поскольку
эти шаги уже выполнены). Если возникнут ошибки и, например,
запустить сервер базы данных не получится, придется вручную
запускать сервер базы данных и &sap;
после исправления ошибок и до повторного запуска
R3SETUP.Не забудьте также снова запустить процесс прослушивания
&oracle; (как пользователь
orasid с помощью
команды umask 0; lsnrctl start), если он тоже
был остановлен (например, из-за необходимой перезагрузки
системы).OSUSERSIDADM_IND_ORA в ходе R3SETUPЕсли R3SETUP выдает сообщения об
ошибках на этом этапе, отредактируйте используемый при этом
файл шаблона R3SETUP
(CENTRDB.R3S (4.6B), либо
CENTRAL.R3S или
DATABASE.R3S (4.6C)).
Найдите секцию [OSUSERSIDADM_IND_ORA] или
поищите единственную запись STATUS=ERROR и
отредактируйте следующие значения:HOME=/home/sidadm (было пусто)
STATUS=OK (был статус ERROR)
Затем надо снова перезапустить
R3SETUP.OSUSERDBSID_IND_ORA в ходе R3SETUPВозможно, команда R3SETUP также выдаст
сообщения об ошибке на этой стадии. Ошибка здесь аналогична
возникающей на стадии OSUSERSIDADM_IND_ORA. Просто отредактируйте
используемый файл шаблона R3SETUP
(CENTRDB.R3S (4.6B), либо
CENTRAL.R3S или
DATABASE.R3S (4.6C)).
Найдите секцию [OSUSERDBSID_IND_ORA] или поищите
единственную запись STATUS=ERROR и
отредактируйте следующее значение в этой секции:STATUS=OKЗатем перезапустите R3SETUP.oraview.vrf FILE NOT FOUND в ходе установки &oracle;Вы не сняли выбор с &oracle; On-Line Text
Viewer перед началом установки. Он помечен для
установки, хотя этот продукт и не доступен сейчас для Linux.
Снимите пометку с этого продукта в меню установки
&oracle; и перезапустите
установку.TEXTENV_INVALID в ходе R3SETUP, RFC или запуска SAPguiЕсли возникает эта ошибка, не найдена нужная локаль.
&sap; Note 0171356 перечисляет необходимые пакеты RPM, которые
надо установить (например, saplocales-1.0-3,
saposcheck-1.0-1 для RedHat 6.1). Если
игнорировать все ошибки и менять STATUS
соответствующих шагов с ERROR на
OK (в файле CENTRDB.R3S)
каждый раз, когда R3SETUP сообщает об
ошибке и просто перезапуск ать R3SETUP, система
&sap; не будет правильно
сконфигурирована, и вы затем не сможете подключиться к системе
с помощью SAPgui, хотя запустить
систему и получится. Попытка подключения с помощью старой
Linux-версии SAPgui приведет к выдаче
следующих сообщений:Sat May 5 14:23:14 2001
*** ERROR => no valid userarea given [trgmsgo. 0401]
Sat May 5 14:23:22 2001
*** ERROR => ERROR NR 24 occured [trgmsgi. 0410]
*** ERROR => Error when generating text environment. [trgmsgi. 0435]
*** ERROR => function failed [trgmsgi. 0447]
*** ERROR => no socket operation allowed [trxio.c 3363]
SpeicherzugriffsfehlerЭто связано с тем, что система
&sap.r3; не может корректно назначить
локаль и сама не была надлежащим образом сконфигурирована
(не хватает записей в некоторых таблицах базы данных). Чтобы
можно было подключиться к &sap;,
добавьте следующие записи в файл DEFAULT.PFL
(см. Note 0043288):abap/set_etct_env_at_new_mode = 0
install/collate/active = 0
rscp/TCP0B = TCP0BПерезапустите систему &sap;. Теперь
вы можете подключиться к системе, хотя специфические для страны
языковые установки могут работать не так, как предполагалось.
После исправления настроек страны (и добавления соответствующих
локалей) эти записи можно удалить из файла
DEFAULT.PFL и перезапустить систему &sap;.ORA-00001Эта ошибка возникает только с
&oracle; 8.1.7 на FreeBSD 4.5.
Причина в том, что сервер &oracle;
не может правильно проинициализироваться и аварийно завершает
работу, оставляя не освобожденными в системе семафоры и
совместно используемую память. При следующей попытке запустить сервер
базы данных выдается ошибка ORA-00001.Найдите оставшиеся семафоры и сегменты памяти с помощью
команды ipcs -a и удалите с помощью
ipcrm.ORA-00445 (фоновый процесс PMON не запущен)Эта ошибка произошла с &oracle; 8.1.7.
Она выдается, если сервер был запущен с помощью обычного
скрипта startsap (например,
startsap_majestix_00) от имени пользователя
prdadm.Возможный способ обхода – запускать сервер базы данных
от имени пользователя oraprd с помощью
svrmgrl:&prompt.user; svrmgrl
SVRMGR> connect internal;
SVRMGR> startup;
SVRMGR> exitORA-12546 (запускайте процесс прослушивания с правильными правами)Запускайте процесс прослушивания
&oracle; от имени пользователя
oraids следующими командами:&prompt.root; umask 0; lsnrctl startВ противном случае, вы можете получить сообщение об ошибке
ORA-12546, поскольку сокеты не будут иметь
нужных прав доступа. См. &sap; Note 0072984.ORA-27102 (не хватает памяти)Эта ошибка произошла при попытке использовать значения
MAXDSIZ и DFLDSIZ больше
1 Гбайта (1024x1024x1024). Кроме того, мы получили
Linux Error 12: Cannot allocate memory.[DIPGNTAB_IND_IND] в ходе R3SETUPВ общем случае, см. &sap; Note 0130581
(прекращается работа R3SETUP на шаге
DIPGNTAB). В ходе установки
IDES-версии по каким-то причинам процесс установки использовал
вместо правильного имени системы &sap;,
IDS, пустую строку, "". Это
к небольшим проблемам при доступе к каталогам, поскольку пути
генерируются динамически на базе SID
(в данном случае, IDS). Поэтому вместо обращения к:/usr/sap/IDS/SYS/...
/usr/sap/IDS/DVMGS00используются следующие пути:/usr/sap//SYS/...
/usr/sap/D00Чтобы продолжить установку мы создали ссылку и дополнительный
каталог:&prompt.root; pwd
/compat/linux/usr/sap
&prompt.root; ls -l
total 4
drwxr-xr-x 3 idsadm sapsys 512 May 5 11:20 D00
drwxr-x--x 5 idsadm sapsys 512 May 5 11:35 IDS
lrwxr-xr-x 1 root sapsys 7 May 5 11:35 SYS -> IDS/SYS
drwxrwxr-x 2 idsadm sapsys 512 May 5 13:00 tmp
drwxrwxr-x 11 idsadm sapsys 512 May 4 14:20 transМы также нашли документы &sap; Notes (0029227 и 0008401),
описывающие это поведение. Мы не столкнулись с подобными
проблемами при установке
&sap; 4.6C.[RFCRSWBOINI_IND_IND] в ходе R3SETUPВ ходе установки &sap; 4.6C,
эта ошибка возникла в результате другой ошибки, произошедшей
ранее по ходу установки. В данном случае придется просмотреть
соответствующие журнальные файлы и устранить исходную
проблему.Если после просмотра журнальных файлов выявлена только эта
ошибка (проверьте &sap; Notes), можно поменять
STATUS соответствующего шага с ERROR на OK (в файле
CENTRDB.R3S) и перезапустить
R3SETUP. После установки надо
выполнить отчет RSWBOINS из транзакции SE38.
Дополнительную информацию о стадиях RFCRSWBOINI
и RFCRADDBDIF см. в &sap; Note 0162266.[RFCRADDBDIF_IND_IND] в ходе R3SETUPЗдесь применяются те же ограничения: проверьте путем просмотра
журнальных файлов, что эта ошибка не вызвана какими-то предыдущими
проблемами.Если подтверждается, что применим документ &sap; Note 0162266,
просто поменяйте STATUS соответствующего
шага с ERROR на OK (в
файле CENTRDB.R3S) и перезапустите R3SETUP. После установки надо выполнить
отчет RADDBDIF из транзакции SE38.sigaction sig31: File size limit exceededЭто сообщение об ошибке выдается в ходе запуска процессов
&sap;disp+work.
Если &sap; запускается скриптом
startsap, запускаются отдельные подпроцессы,
выполняющие грязную работу по запуску всех остальных процессов
&sap;. В результате, сам скрипт
не получит уведомления, если что-то пойдет не так.Чтобы проверить, нормально ли запустились процессы
&sap;, посмотрите на состояние
процессов с помощью команды ps ax |
grep SID, которая выдаст
список всех процессов &oracle; и
&sap;. Если похоже, что некоторых
процессов не хватает или вы не можете подключиться к системе
&sap;, просмотрите соответствующие
журнальные файлы, которые можно найти в каталоге
/usr/sap/SID/DVEBMGSnr/work/.
Надо просматривать файлы dev_ms и
dev_disp.Сигнал 31 выдается, если объем памяти, совместно используемой
&oracle; и
&sap;, превосходит заданный в файле
конфигурации ядра, и от него можно избавиться, указав большее
значение:# большее значение для производственных систем 46C:
options SHMMAXPGS=393216
# меньшее значение, достаточное для 46B:
#options SHMMAXPGS=262144Сбой при запуске saposcolЕсть ряд проблем с программой saposcol
(версии 4.6D). Система &sap; использует
saposcol для сбора данных о производительности
системы. Эта программа не нужна для использования системы
&sap;, так что проблему можно отнести
к несерьезным. Более старые версии (4.6B) работают, но собирают
не все данные (многие вызовы просто возвращают 0, например,
для использования процессора).Дополнительные сведенияЕсли вы интересуетесь, как обеспечивается двоичная совместимость
с Linux, этот раздел для вас. Большинство материала взято из
электронного письма, адресованного в &a.chat; by Terry Lambert
tlambert@primenet.com (ID письма:
<199906020108.SAA07001@usr09.primenet.com>).Как все это устроено?загрузчик выполняемых классовFreeBSD поддерживает абстракцию, называемую загрузчик
выполняемых классов. Фактически, он является первой
стадией системного вызова &man.execve.2;.На самом деле, FreeBSD имеет список загрузчиков вместо
одного, завершающийся загрузчиком #! для
запуска любых командных интерпретаторов и скриптов.Исторически сложилось, что единственный загрузчик в &unix;
системах проверял магическое число (чаще всего первые
4 или 8 байт файла), чтобы определить, известен ли формат
двоичного файла системе, и если да, то вызвал соответствующий
загрузчик.Если файл не опознавался системой как двоичный, системный
вызов &man.execve.2; возвращал ошибку, и текущий командный
интерпретатор начинал выполнять файл как скрипт.По умолчанию скрипт выполнялся текущим командным
интерпретатором.Позднее, &man.sh.1; был модифицирован, так, чтобы проверять
первые два символа в файле, и если они оказывались
:\n, то файл выполнялся как сценарий для
&man.csh.1; (утверждается, что SCO были первыми, кто сделал
эту модификацию).FreeBSD сейчас ведет себя по-другому: пробегает по списку
загрузчиков,включающему специальный загрузчик #!,
который вызывает нужный интерпретатор, указанный после этих символов
до следующего пробела, или /bin/sh, если
не нашел подходящего.ELFДля поддержки Linux ABI FreeBSD ищет магическое число,
соответствующее двоичному файлу ELF (на этой стадии не различаются
FreeBSD, &solaris;, Linux или любая другая ОС поддерживающая формат
ELF).SolarisДалее, ELF-загрузчик определяет марку (brand)
двоичного файла ELF (специальный комментарий в ELF-файле,
отсутствующий в двоичных файлах ELF SVR4/&solaris;).Соответственно, Linux программы должны быть
маркированы для Linux (например, с
помощью утилиты &man.brandelf.1;):&prompt.root; brandelf -t Linux fileКогда это сделано, загрузчик ELF выявит марку
Linux в файле.ELFbrandingКогда ELF-загрузчик находит маркуLinux, он заменяет соответствующий указатель в
структуре proc. Все системные вызовы
индексируются через этот указатель (в традиционной &unix; системе это
массив структур sysent[], содержащий системные
вызовы). Кроме того, процесс помечается для специальной обработки
вектора обработчиков сигналов, а также ряда других (небольших)
исправлений, которые осуществляются специальным модулем ядра для
поддержки Linux.Вектор системных вызовов Linux содержит, среди прочего, список
записей sysent[], адреса которых находятся в
модуле ядра.При выполнении системного вызова из двоичного файла Linux,
код обработчика разыменовывает указатель на функцию системного вызова
из структуры proc, и получает точки входа
системных вызовов Linux, а не FreeBSD.Плюс ко всему, в Linux–режиме динамически изменяется
корень файловой системы при поиске файлов; фактически
так же, как и параметр union при монтировании
файловых систем (не путать с unionfs!).
Сперва, файл ищется в каталоге
/compat/linux/исходное_полное_имя
и только затем, в случае неудачи, в
/исходное_полное_имя.
Это гарантирует, что программы, которым требуются другие программы,
смогут работать (например, весь набор инструментальных средств Linux
сможет работать в среде поддержки Linux ABI). Это также дает
возможность Linux программам выполнять FreeBSD команды, если не
найдется соответствующих Linux команд. Например, можно скопировать
FreeBSD &man.uname.1; в дерево каталогов
/compat/linux, и Linux-программы не смогут
разобраться, что они работают не в Linux.Фактически, имеется ядро Linux в ядре FreeBSD; различные
базовые функции, реализующие все услуги ядра, идентичны как
в записях таблицы системных вызовов FreeBSD, так и в записях
таблицы системных вызовов Linux: операции с файловой системой,
виртуальная память, средства доставки сигналов,
System V IPC … Единственное отличие в том, что
FreeBSD-программы получают интерфейсные функции
FreeBSD, а Linux-программы получают интерфейсные
функции Linux (в большинстве более старых ОС есть только их
собственные интерфейсные функции: функции берутся из статического
глобального массива структур sysent[], а не
из массива, полученного разыменованием динамически
проинициализированного указателя в структуре
proc процесса, выполняющего вызов).Какая же реализация ABI для FreeBSD родная? Это
не имеет значения. Единственное различие (на данный момент, в
будущем все может и, вероятно, изменится), пожалуй, в том, что
функции системных вызовов FreeBSD зашиты в ядро, а для Linux они
могут быть либо статически скомпонованы в ядро, либо получаться
через модуль ядра.Да, но можно ли назвать это эмуляцией? Нет. Это реализация ABI,
а не эмуляция. Как таковой, эмулятор (или симулятор)
отсутствует.В таком случае, почему же иногда говорят об
эмуляции Linux? Чтобы насолить
FreeBSD! Фактически, причина в том, что на момент первой реализации
не существовало слова, которое бы точнее описывало этот процесс.
Нельзя было сказать, что FreeBSD запускает приложения Linux (без
перекомпиляции или загрузки соответствующего модуля ядра это
невозможно). Но надо было как-то описать, что
загружается—отсюда и эмулятор Linux.
diff --git a/ru_RU.KOI8-R/books/handbook/mac/chapter.sgml b/ru_RU.KOI8-R/books/handbook/mac/chapter.sgml
index 3fa7efa2e2..482dc76109 100644
--- a/ru_RU.KOI8-R/books/handbook/mac/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/mac/chapter.sgml
@@ -1,2193 +1,2193 @@
TomRhodesНаписал ДенисПеплинПеревод на русский язык: Принудительный контроль доступа (MAC)Краткий обзорMACMandatory Access ControlПринудительный контроль доступа&os; 5.X представляет новые расширения системы безопасности
от проекта TrustedBSD, основанные на документах &posix;.1e.
Два из наиболее важных нововведений в механизмах безопасности это
списки контроля доступа файловой системы (Access Control Lists,
ACLs) и принудительный контроль доступа
Mandatory Access Control, MAC). Инфраструктура
позволяет загружать новые модули контроля доступа,
реализуя новые политики безопасности. Некоторые из них предоставляют
защиту ключевых подсистем, защищая определенный сервис, в то время
как другие предоставляют исчерпывающую систему безопасности с метками
на всех субъектах и объектах. Контроль называется принудительным,
поскольку применение контроля производится администраторами и
системой, и не зависит от решения пользователей, как это происходит
при обычном контроле доступа (Discretionary Access Control,
DAC, стандартные файловые и System V IPC
права в &os;).Вся эта глава фокусируется на инфраструктуре
принудительного контроля доступа и настройке
подключаемых модулей, реализующих различные политики
безопасности.После прочтения этой главы вы узнаете:Какие модули MAC включены в настоящее
время в &os;, какие политики с ними связаны.Что способны реализовать политики MAC,
различие между политиками с метками (label) и без
меток.Как эффективно настроить систему для использования
инфраструктуры MAC.Как настроить различные политики, используемые модулями
MAC.Как реализовать более защищенную среду, используя инфраструктуру
MAC и приведенные примеры.Как протестировать настройку MAC,
чтобы убедиться, что инфраструктура была реализована правильно.Перед прочтением этой главы вам потребуется:Понимание основ &unix; и &os;
().Ознакомиться с основами
настройки/компилирования ядра
().Иметь некоторые понятия о безопасности и как она
относится к &os; ().Неправильное использование информации этой главы
может вызвать потерю доступа к системе, проблемы
у пользователей, или невозможность запуска &xfree86;.
Что более важно, MAC
не должен восприниматься как полная защита системы.
Инфраструктура MAC лишь усиливает
имеющуюся систему безопасности:
без применения методов защиты и регулярных проверок,
система никогда не станет полностью защищенной.Необходимо также учесть, что примеры, приведенные в этой главе,
это всего лишь примеры. Не рекомендуется дублирование этих
настроек для реальных задач. Реализация политик безопасности требует
вдумчивого планирования. Тот, кто не понял полностью как все
это на самом деле работает, может столкнуться с необходимостью
повторной полной перенастройки системы безопасности для многих
файлов и каталогов.Что не будет затронутоВ этой главе охвачен широкий спектр вопросов безопасности,
относящихся к инфраструктуре MAC. однако
разработка политик MAC не
будет затронута. Несколько модулей, включенных в инфраструктуру
MAC, имеют особые характеристики, которые
предназначены для тестирования и разработки новых модулей.
Это относится к модулям/политикам &man.mac.test.4;,
&man.mac.stub.4; и &man.mac.none.4;.
За дальнейшей информацией по этим модулям и различным
предоставляемым ими механизмам, обратитесь к соответствующим
страницам справочника.Ключевые термины этой главыПеред чтением этой главы необходимо ознакомиться с некоторыми
ключевыми терминами. Это возможно разрешит возникающие вопросы
и предотвратит перегрузку материала новыми терминами и
информацией.отдел (compartment): Отдел это набор
программ и данных, которые необходимо отделить, и где
пользователи получают явный доступ к отдельным
компонентам системы. Отдел представляет группирование, например
рабочую группу, департамент, проект или тему. С использованием
отделов возможна реализация политики с явно определенным
доступом.целостность (integrity): Целостность, как
ключевая концепция, это уровень доверия, который может быть
присвоен данным. Поскольку целостность данных повышается,
это дает возможность доверять данным.метка (label): Метка является инструментом
безопасности, она может быть применена к файлам, каталогам и другим
сущностям системы. Ее можно представить как штамп
конфиденциальности; метка, помещенная на файл, описывает уровень
секретности данного файла и разрешит доступ только файлам,
пользователям, ресурсам и т.д. с теми же или меньшими установками
безопасности. Некоторые из политик могут обрабатывать метки
различными способами; это будет обсуждаться в разделе политик
ниже.multilabel (множественные метки):
свойство
это параметр файловой системы, который может быть установлен
в однопользовательском режиме с помощью утилиты
&man.tunefs.8;, во время загрузки через файл &man.fstab.5;,
или при создании новой файловой системы. Этот параметр
позволяет администратору помещать различные метки
MAC на различные объекты.
разрешает помещение множественных MAC меток
на файлы и каталоги файловой системы. Этот параметр
применим только к политикам с метками.объект (object): Объект или
системный объект это сущность, через которую информация
проходит к субъекту. Это могут быть
каталоги, файлы, поля, экраны, клавиатуры, память,
магнитные накопители, принтеры или любые другие устройства
хранения/перемещения данных. В сущности это контейнер данных
или ресурс системы; доступ к объекту
фактически означает доступ к данным.политика (policy): Набор правил,
определяющих как достичь объекта. Политика
обычно документирует обращение с определенными элементами.
В этой главе политика будет означать
политику безопасности; т.е.
коллекцию правил, которые будут контролировать поток данных
и определять кто будет иметь доступ к этим данным.чувствительность (sensitivity):
Обычно используется при обсуждении MLS.
Уровень чувствительности это термин, используемый для описания
того, насколько важны или секретны данные. Увеличение
уровня чувствительности означает важность данных.одиночная метка (single label): означает,
что вся файловая система использует одну метку для
определения доступа всего потока данных. Когда файловая система
использует эту установку, что происходит всегда, если не
установлен параметр , ко всем
файлам будет применяться одна и та же установка метки.субъект (subject): субъект это
любая активная сущность, вызывающая перемещение информации
между объектами; т.е. пользователь,
пользовательский обработчик, системный процесс и т.д.
В &os; это почти всегда поток, работающий в процессе или
представляющий пользователя.Описание MACУсвоив все эти термины, рассмотрим как MAC
повышает безопасность системы в целом. Различные политики,
предоставляемые инфраструктурой MAC,
могут быть использованы для защиты сети и файловых систем,
блокирования доступа пользователей к определенным портам и
сокетам, и так далее. Возможно, наилучшее использование
политик это сочетание их вместе путем загрузки нескольких модулей
одновременно, для создания многослойной защищенной среды. В
многослойной среде безопасности несколько политик обеспечивают
контролируемость защиты. Это отличается от усиления защиты,
когда обычно усиливаются элементы системы, используемой в
определенных целях. Единственным недостатком является
дополнительная административная нагрузка в случае множественных
меток файловой системы, установки сетевого доступа по пользователям,
и т.д.Эти недостатки минимальны по сравнению с длительным эффектом
функционирования инфраструктуры; например, возможность выбора
политик, необходимых для определенных конфигураций, уменьшает
потерю производительности. Возможность удаления поддержки не
используемых политик может увеличить общую производительность
системы, а также дает гибкость выбора. Хорошая реализация
удовлетворит общие требования безопасности и будет эффективно
использовать различные политики, предоставляемые инфраструктурой.Система, использующая возможности MAC,
должна как минимум гарантировать, что пользователю не разрешается
самостоятельно изменять атрибуты безопасности; все утилиты
пользователя, программы и скрипты должны работать с ограничениями
доступа, налагаемыми выбранной политикой; весь контроль правил
доступа MAC находится в руках системного
администратора.Право выбора правильных политик безопасности принадлежит только
системному администратору. В некоторых случаях может потребоваться
ограничение доступа через сеть; для этого могут пригодиться
&man.mac.portacl.4;, &man.mac.ifoff.4; и даже &man.mac.biba.4;.
В других случаях может быть необходима строгая конфиденциальность
объектов в файловой системе.
Для этого существуют политики &man.mac.bsdextended.4; и
&man.mac.mls.4;.Выбор политики может быть сделан на основе конфигурации сети.
Возможно только определенным пользователям можно разрешить доступ
через &man.ssh.1; к сети или интернет. В таких ситуациях подойдет
политика &man.mac.portacl.4;. Но что необходимо сделать для файловых
систем? Должен ли доступ к определенным каталогам быть запрещен
для других групп или определенных пользователей? Или мы должны
ограничить доступ пользователей или утилит к определенным файлам
путем классификации определенных объектов?В случае файловой системы, доступ может считаться конфиденциальным
для отдельных пользователей, но не для всех. Например, большая
команда разработчиков может быть разбита на небольшие группы.
Разработчикам проекта A может быть не разрешен доступ к объектам,
написанным разработчиками из проекта B. Хотя им может понадобиться
доступ к объектам, созданным разработчиками проекта C;
это реально встречающаяся ситуация. С помощью различных политик,
предоставляемых инфраструктурой MAC, пользователи
могут быть разделены на эти три группы и затем получить доступ
к соответствующим областям без опасности утечки информации.Таким образом, каждая политика имеет уникальный способ
взаимодействия с общей безопасностью системы.
Выбор политики должен быть основан на
хорошо продуманной политике безопасности. Во многих случаях политика
должна быть полностью пересмотрена и реализована заново для всей
системы. Понимание различных политик, предоставляемых инфраструктурой
MAC, поможет администраторам выбрать лучшую политику
в своей ситуации.Стандартное ядро &os; не включает параметр MAC;
необходимо добавить следующий параметр ядра перед тем, как
пробовать какие-либо из примеров или применять информацию этой
главы:options MACЗатем необходимо пересобрать и переустановить ядро.Хотя различные страницы справочника для модулей
MAC сообщают, что они могут быть встроены в ядро,
возможна блокировка доступа системы к сети и другие побочные эффекты.
Включение MAC очень похоже на включение
брандмауэра, но необходимо быть внимательным, чтобы полностью
не заблокировать систему. Необходимо предусмотреть возможность
возврата к предыдущей конфигурации, а реализация
MAC удаленно должна производиться с особой
осторожностью.Метки MACМетка MAC это атрибут безопасности,
который может быть применен к субъектам
и объектам всей системы.При установке метки пользователь должен в точности понимать,
что именно она делает. Атрибуты, доступные для объекта,
зависят от загруженной политики, а политики интерпретируют
свои атрибуты совершенно различным образом. Результатом
недостаточного понимания настроек может стать их неправильная
реализация, что может привести к неожиданному, и возможно
нежелательному поведению системы.Метка безопасности на объекте используется политикой
для определения правил доступа. Для некоторых политик метка
сама по себе содержит всю необходимую для этого информацию,
в других моделях метки могут обрабатываться как часть
большого набора правил, и т.д.Например, установка метки в biba/low
на файле присвоит этому файлу метку, обрабатываемую политикой
Biba со значением low.Несколько политик, поддерживающих метки в &os;,
предоставляют три определенные предустановленные метки.
Это низкая, высокая и равная метки. Хотя они устанавливают контроль
различными способами для каждой политики, вы можете быть уверены,
что низкая метка задаст минимальные установки, равная метка
означает отмену или недействительность, а высокая метка установит
максимально возможные настройки в политиках Biba и
MLS.При применении в файловой системе одиночной метки, только одна
метка может быть использована для объектов. Это вызовет установку
одних и тех же прав доступа для всей системы, и во многих случаях
это все, что необходимо. Тем не менее, существует несколько ситуаций,
в которых на объекты и субъекты файловой системы могут быть установлены
множественные метки. В этих ситуациях необходимо с помощью
&man.tunefs.8; установить параметр .В случае Biba и MLS может быть установлена
числовая метка
для указания точного уровня иерархического контроля. Этот числовой
уровень используется для разделения или сортировки информации
по различным группам классификации, разрешающей доступ только к
этой группе или группе с более высоким уровнем.В большинстве случаев системный администратор использует только
одну метку на всю файловую систему.Постойте, но это же похоже на DAC!
Я думал, что MAC дает контроль только
администратору. Это утверждение все еще верно,
только root контролирует и настраивает
политики, так что пользователи помещаются в соответствующие
категории/уровни доступа. Многие политики могут ограничить также
и пользователя root.
Базовый контроль над объектами затем
передается группе, но пользователь root
может отменить или изменить эти настройки в любое время.
Данная иерархическая модель соответствует
таким политикам как Biba и MLS.Настройка метокПрактически все действия по настройке политики с метками
могут быть выполнены с использованием утилит базовой системы.
Эти команды обеспечивают простой интерфейс для настройки
объектов или субъектов, или для изменения и проверки
настроек.Все настройки могут быть выполнены с использованием утилит
&man.setfmac.8; и &man.setpmac.8;. Команда
setfmac используется для установки меток
MAC на системные объекты, а команда
setpmac используется для установки меток на
системные субъекты. Выполните:&prompt.root; setfmac biba/high testЕсли не произойдет ошибок, будет возвращено приглашение командной
строки, как и после команд &man.chmod.1; и &man.chown.8;.
В некоторых случаях может появиться ошибка
Permission denied, и она обычно появляется при
установке или изменении метки на объект с ограничениями.
Есть и другие ситуации, в которых могут возникать
различные ошибки. Например, файл может не находиться во владении
пользователя, пытающегося изменить метку на объекте, объект может
не существовать или существовать только для чтения. Политика может
не позволить процессу изменить метку на файл, возможно в связи со
свойствами файла, процесса, или нового значения метки. Например:
пользователь с низким уровнем доверия пытается изменить метку на
файле с высоким уровнем доверия. Или пользователь с низким уровнем
доверия пытается изменить метку файла с низким уровнем доверия на
метку высокого уровня.
Системный администратор для обхода этой проблемы может использовать
следующие команды:&prompt.root; setfmac biba/high testPermission denied
&prompt.root; setpmac biba/low setfmac biba/high test
&prompt.root; getfmac test
test: biba/highКак видно из примера выше, команда setpmac
может быть
использована для изменения установок политики путем присвоения
иной метки вызывающему процессу. Утилита getpmac
обычно используется с существующим на данный момент процессом,
таким как sendmail, хотя она принимает
PID вместо команды, ее действие аналогично. Если пользователи
попытаются манипулировать файлами, к которым у них нет доступа
в соответствии с правилами загруженных политик,
функцией mac_set_link будет
выдано сообщение об ошибке Operation not
permitted.Пользователи и установки метокПользователям необходимо иметь метки, чтобы их файлы и
процессы могли правильно взаимодействовать с определенной
в системе политикой безопасности. Это настраивается
через файл login.conf путем использования
классов. Каждая политика, использующая метки, реализует установку
класса пользователя.Пример записи, содержащей все политики, приведенные
ниже:default:\
:copyright=/etc/COPYRIGHT:\
:welcome=/etc/motd:\
:setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\
:path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:\
:manpath=/usr/share/man /usr/local/man:\
:nologin=/usr/sbin/nologin:\
:cputime=1h30m:\
:datasize=8M:\
:vmemoryuse=100M:\
:stacksize=2M:\
:memorylocked=4M:\
:memoryuse=8M:\
:filesize=8M:\
:coredumpsize=8M:\
:openfiles=24:\
:maxproc=32:\
:priority=0:\
:requirehome:\
:passwordtime=91d:\
:umask=022:\
:ignoretime@:\
:label=partition/13,mls/5,biba/10(5-15),lomac10[2]:Параметр label используется для установки
метки MAC по умолчанию для класса пользователя.
Пользователи не смогут изменять это значение, поэтому его
можно признать не опциональным. В реальной ситуации администратору
никогда не потребуется включать каждую политику.
Рекомендуется прочесть главу полностью перед реализацией любой
из этих настроек.Пользователи могут изменить свою метку после входа;
однако политика накладывает ограничение на это изменение.
В примере выше политике Biba указано, что минимальная
целостность процесса 5, максимальная 15, а эффективная
целостность по умолчанию 10. Процесс будет работать на
уровне 10, пока метка не будет изменена, например если
пользователь использует команду setpmac, которую Biba
ограничит диапазоном, установленным при входе.Во всех случаях после изменения
login.conf, база данных
login class capability должна быть пересобрана
с использованием команды cap_mkdb
и это будет отражено в каждом последующем примере главы.Полезно отметить, что количество пользователей, которым
требуются различные классы, во многих сетях может быть велико.
Необходимо тщательное планирование, поскольку управление такой
сетью может серьезно усложниться.В будущих версиях &os; появится новый способ связывания
пользователей с метками; однако, он будет доступен только через
некоторое время после выхода &os; 5.3.Сетевые интерфейсы и установка метокМетки также могут быть установлены на сетевые интерфейсы,
для контроля потока данных в сети. Во всех случаях они
функционируют аналогично тому, как политики по отношению к
объектам. Пользователи с высокими установками, например,
biba, не смогут получить доступ к сетевым
интерфейсам с низкими установками.Для установки MAC меток на сетевых
интерфейсах параметр может быть передан
ifconfig. Например:&prompt.root; ifconfig bge0 maclabel biba/equalустановит MAC метку
biba/equal на интерфейс &man.bge.4;.
При использовании метки, подобной
biba/high(low-high) вся метка должна быть
взята в кавычки, иначе будет выдано сообщение об ошибке.Каждая политика, использующая метки, снабжена переменной
sysctl, которая может быть использована для
отключения MAC меток на сетевых интерфейсах.
Установка метки в будет иметь подобный
эффект. Просмотрите вывод команды sysctl,
страницы справочника для политик, или дальнейшую информацию из
этой главы по этим переменным.Одиночные или множественные метки?По умолчанию система будет использовать параметр
. Но что это означает для
администратора? Существуют несколько различий между политиками,
каждая из которых правильна сама по себе, но имеет свои доводы
за и против относительно гибкости модели безопасности
системы. (одиночная метка) разрешает
использование только одной метки, например
biba/high, для каждого объекта или субъекта.
Ее преимущество в меньшей нагрузке на системного администратора,
а недостаток в малой гибкости политик, поддерживающих метки.
Многие администраторы в своих политиках безопасности могут
предпочесть использование параметра
.С параметром каждый субъект или
объект может иметь собственную метку MAC,
в то время как со стандартным параметром
возможна только одна метка на весь раздел.
Параметры и
требуются только для политик, реализующих метки, включая
Biba, Lomac, MLS и
SEBSD.Во многих случаях может вообще не
потребоваться. Предположим следующую ситуацию и модель
безопасности:&os; веб-сервер, использующий инфраструктуру
MAC и набор различных политик.Этому компьютеру потребуется лишь одна метка,
biba/high, для всей системы.
Файловой системе не нужен параметр ,
поскольку по умолчанию работает одиночная метка.Но поскольку этот компьютер будет веб сервером, процесс
веб сервера должен быть запущен с biba/low
для предотвращения записи. Политика Biba и то, как она
работает, будет обсуждаться позже, поэтому предыдущий комментарий
сложно интерпретировать; просто продолжайте чтение.
Сервер может использовать дисковый раздел с установленной
меткой biba/low для большинства, если
не для всех своих операций. В этом примере отсутствуют многие
детали, такие как ограничения на данные, конфигурация системы
и установки пользователей; однако, это лишь предварительный
пример.Если используется любая из политик, не поддерживающих метки,
параметр не требуется. Сюда включаются
политики seeotheruids, portacl
и partition.Необходимо также отметить, что использование параметра
на разделе и установление модели
безопасности, основанной на функциональности
, может повлечь за собой
множество дополнительной административной работы, поскольку всему в
файловой системе должны быть присвоены метки. Это включает каталоги,
файлы, и даже файлы устройств.Следующая команда установит параметр
на файловых системах. Это может быть сделано только в
однопользовательском режиме:&prompt.root; tunefs -l enable /Это не требуется для файловой системы подкачки.Некоторые пользователи сталкиваются с проблемами при
установке флага на корневой раздел.
В данном случае обратитесь к
.Настройка MAC переменными sysctlНезависимо от загрузки модулей, существует несколько частей
MAC, которые могут быть настроены с
использованием интерфейса sysctl. Эти
переменные описаны ниже и во всех случаях значение 1
означает включение, а 0 — отключение:security.mac.enforce_fs по умолчанию
установлена в 1 и включает политики
MAC на файловых системах.security.mac.enforce_kld по умолчанию
1 и включает линкование политик MAC в
ядре (см. &man.kld.4;).security.mac.enforce_network по умолчанию
1 и включает сетевые политики MAC.security.mac.enforce_pipe по умолчанию
1 и включает политики MAC для каналов
(pipe).security.mac.enforce_process по умолчанию
1 и включает политики MAC для процессов,
использующих средства межпроцессного взаимодействия.security.mac.enforce_socket по умолчанию
1 и включает политики MAC на сокетах
(см. страницу справочника &man.socket.2;).security.mac.enforce_system по умолчанию
1 и включает политики MAC для действий системы,
таких как учет (accounting) и перезагрузка.security.mac.enforce_vm по умолчанию
1 и включает политики MAC для системы
виртуальной памяти.Каждая политика MAC поддерживает
переменные sysctl. Они обычно попадают в дерево
security.mac.<policyname>.
Для просмотра всех переменных MAC,
используйте следующую команду:&prompt.root; sysctl -da | grep macЭто должно быть интерпретировано так, что все основные
политики MAC включены по умолчанию.
Если модули встроены в ядро, система будет заблокирована, и скорее
всего не сможет связаться с локальной сетью или с интернет, и т.д.
Поэтому встраивание модулей в ядро не рекомендуется. Не потому,
что это ограничит возможность отключения командой
sysctl, а потому, что включение политик в
виде модулей позволит администратору переключать политики системы
без необходимости пересборки и переустановки новой системы.Настройка модулейКаждый модуль, включенный в инфраструктуру MAC,
может быть или встроен в ядро, как упоминалось выше, или загружен
в виде модуля ядра. Рекомендуется добавление имени модуля в
файл /boot/loader.conf, этот модуль будет
активирован в самом начале загрузки.В последующих разделах будут обсуждаться различные модули
MAC и их возможности. Реализация этих
возможностей в определенных ситуациях также будет обсуждаться
в этой главе. Некоторые модули поддерживают использование
меток, которые контролируют доступ путем применения правил
вида это разрешено, а это нет. Настройка меток может
контролировать доступ к файлам, сетевым коммуникациям и т.д.
В предыдущем разделе было показано как флаг
может быть установлен на файловые системы для включения контроля
доступа по файлам или по разделам.Конфигурация с одной меткой не допускает применение нескольких
меток в системе, поэтому параметр tunefs
называется .Модуль MAC seeotheruidsMAC See Other UIDs PolicyИмя модуля: mac_seeotheruids.koСтрока в конфигурации ядра:
options MAC_SEEOTHERUIDSПараметр загрузки:
mac_seeotheruids_load="YES"Модуль &man.mac.seeotheruids.4; копирует и расширяет
переменные sysctlsecurity.bsd.see_other_uids и
security.bsd.see_other_gids. Он
не требует установки меток и может прозрачно работать с
другими модулями.После загрузки модуля, для управления им могут быть
использованы следующие переменные sysctl:security.mac.seeotheruids.enabled
включит модуль с настройками по умолчанию. Эти настройки
запрещают пользователям просмотр процессов и сокетов,
принадлежащих другим пользователям.security.mac.seeotheruids.specificgid_enabled
позволит исключить определенные группы из этой политики.
Для исключения определенной группы, используйте переменную
sysctlsecurity.mac.seeotheruids.specificgid=XXX.
В примере выше необходимо заменить XXX
на числовой ID группы.security.mac.seeotheruids.primarygroup_enabled
используется для исключения определенной основной группы
из этой политики. При использовании этой переменной
security.mac.seeotheruids.specificgid_enabled
может быть не установлена.Необходимо отметить, что пользователь root
не является исключением из этой политики. Это одно из самых
существенных различий между MAC версией
и обычными переменными, существующими по умолчанию:
security.bsd.seeotheruids.Модуль MAC bsdextendedMACFile System Firewall PolicyИмя модуля: mac_bsdextended.koСтрока конфигурации ядра:
options MAC_BSDEXTENDEDПараметр загрузки:
mac_bsdextended_load="YES"Модуль &man.mac.bsdextended.4; включает брандмауэр файловой
системы. Политика этого модуля является расширением стандартной
модели разрешений файловой системы, позволяя администратору
создавать набор правил для защиты файлов, утилит и каталогов
иерархии файловой системы в стиле брандмауэра.Политика может быть создана с помощью утилиты, &man.ugidfw.8;,
синтаксис которой похож на синтаксис &man.ipfw.8;. Другие
инструменты могут быть написаны с использованием функций библиотеки
&man.libugidfw.3;.При работе с этим модулем необходимо соблюдать особую
осторожность; некорректное его использование может заблокировать
доступ к отдельным частям файловой системы.ПримерыПосле загрузки модуля &man.mac.bsdextended.4; для просмотра
текущей настройки правил может быть использована следующая
команда:&prompt.root; ugidfw list
0 slots, 0 rulesКак и можно было ожидать, правила не определены. Это
означает, что доступ полностью открыт. Для создания правила,
которое заблокирует доступ всех пользователей, но не повлияет
на root, просто запустите следующую
команду:&prompt.root; ugidfw add subject not uid root new object not uid root mode nВ релизах &os; до 5.3, параметр add
не существует. Вместо него необходимо использовать
set. Пример дан ниже.Это очень плохая идея, поскольку такое правило запретит
пользователям использовать даже самые простые команды, такие
как ls. Более патриотический список правил
может быть таким:&prompt.root; ugidfw set 2 subject uid user1 object uid user2 mode n
&prompt.root; ugidfw set 3 subject uid user1 object gid user2 mode nЭти команды запретят весь и любой доступ пользователя
user1, включая просмотр подкаталогов, к
домашнему каталогу пользователя
user2.Вместо user1 может быть задано
.
Это включит те ограничения,
о которых говорилось выше, для всех пользователей кроме
одного.На пользователя root эти изменения не
повлияют.Материал выше должен дать общую идею как модуль
&man.mac.bsdextended.4; может быть использован в качестве средства
защиты файловой системы. За дальнейшей информацией обращайтесь
к страницам справочника &man.mac.bsdextended.4; и
&man.ugidfw.8;.Модуль MAC ifoffMAC Interface Silencing PolicyИмя модуля: mac_ifoff.koСтрока конфигурации ядра:
options MAC_IFOFFПараметр загрузки: mac_ifoff_load="YES"Модуль &man.mac.ifoff.4; существует только для отключения
сетевых интерфейсов в работающей системе и удержания их от
отправки пакетов во время начальной загрузки. Это не требует
установления в системе каких-либо меток, нет и зависимости от
других модулей MAC.Большая часть управления может быть выполнена через
переменные sysctl.security.mac.ifoff.lo_enabled
включает/выключает весь трафик на loopback (&man.lo.4;)
интерфейсе.security.mac.ifoff.bpfrecv_enabled
включает/выключает весь трафик на интерфейсе Berkeley Packet
Filter (&man.bpf.4;).security.mac.ifoff.other_enabled
включает/выключает весь трафик на всех других интерфейсах.Одно из наиболее частых использований &man.mac.ifoff.4; это
сетевой мониторинг в среде, где сетевой трафик не должен быть
разрешен во время загрузки. Другое предлагаемое применение
это написание скрипта, использующего
security/aide для автоматического
блокирования сетевого трафика, если будут обнаружены новые или
измененные файлы в защищаемых каталогах.Модуль MAC portaclMAC Port Access Control List PolicyИмя модуля: mac_portacl.koСтрока конфигурации ядра:
MAC_PORTACLПараметр загрузки: mac_portacl_load="YES"Модуль &man.mac.portacl.4; используется для ограничения привязки
(binding) к локальным портам TCP и
UDP, используя различные переменные
sysctl. По сути &man.mac.portacl.4;
делает возможной привязку к привилегированным портам, т.е. к портам
с номерами меньше 1024 для не-root
пользователей.После загрузки этот модуль включит политику MAC
на всех сокетах. Доступны следующие переменные
sysctl:security.mac.portacl.enabled
включает/отключает политику целиком.
Вследствие ошибки
переменная sysctlsecurity.mac.portacl.enabled не будет работать
в &os; 5.2.1 или более ранних релизах.security.mac.portacl.port_high
установит наибольший номер порта, для которого
&man.mac.portacl.4; включает защиту.security.mac.portacl.suser_exempt,
если установлена в ненулевое значение, исключает пользователя
root из этой политики.security.mac.portacl.rules
задает действующую политику mac_portacl: см. ниже.Действующая политика mac_portacl,
указанная в security.mac.portacl.rules,
это текстовая строка в форме rule[,rule,...]
с таким количеством правил, которое требуется. Каждое правило
задается в формате:
idtype:id:protocol:port. Параметр
idtype может принимать значения
uid или gid и используется
для интерпретации параметра id,
в качестве id пользователя или группы соответственно.
Параметр protocol используется для
определения применимости этого правила к протоколу
TCP или UDP, он может
принимать значения tcp или
udp. Последний параметр,
port, задает номер порта, к которому
разрешается привязка указанного пользователя или группы.Поскольку набор правил интерпретируется непосредственно
ядром, для ID пользователя, группы и номера порта могут быть
использованы только числовые значения. Т.е. имена пользователей,
групп и сервисов портов не могут быть использованы.По умолчанию в &unix;-подобных системах порты с номерами
менее чем 1024 могут быть использованы только привилегированными
процессами, т.е. теми, что запущены от root.
С &man.mac.portacl.4; для разрешения привязки непривилегированных
процессов к портам с номерами ниже 1024 эти стандартные ограничения
&unix; должны быть отменены. Это может быть выполнено путем
установки переменных &man.sysctl.8;
net.inet.ip.portrange.reservedlow и
net.inet.ip.portrange.reservedhigh
в ноль.Обратитесь к примерам ниже или к странице справочника
&man.mac.portacl.4; за дальнейшей информацией.ПримерыСледующие примеры должны осветить обсуждение выше чуть
лучше:&prompt.root; sysctl security.mac.portacl.port_high=1023
&prompt.root; sysctl net.inet.ip.portrange.reservedlow=0 net.inet.ip.portrange.reservedhigh=0Сначала мы настраиваем &man.mac.portacl.4; для работы со
стандартными привилегированными портами и отмены обычных
ограничений &unix; на привязку.&prompt.root; sysctl security.mac.portacl.suser_exempt=1Пользователь root должен быть исключен
из этой политики, для этого переменная
security.mac.portacl.suser_exempt
установлена в ненулевое значение. Модуль &man.mac.portacl.4;
теперь настроен на то поведение &unix;-подобных систем по
умолчанию.&prompt.root; sysctl security.mac.portacl.rules=uid:80:tcp:80Разрешает пользователю с UID 80 (обычно
это пользователь www) привязку к порту 80.
Теперь пользователь www сможет запустить
веб сервер даже без привилегии root.&prompt.root; sysctl security.mac.portacl.rules=uid:1001:tcp:110,uid:1001:tcp:995Разрешит пользователю с UID
1001 привязку к TCP портам 110
(pop3) и 995 (pop3s).
Это позволит данному пользователю запустить сервер, принимающий
соединения на портах 110 и 995.Политики MAC, использующие меткиВ следующих нескольких разделах будут обсуждаться политики
MAC, использующие метки.С этого момента обсуждение будет сфокусировано на возможностях
&man.mac.biba.4;, &man.mac.lomac.4;,
&man.mac.partition.4;, и &man.mac.mls.4;.Это лишь примерные настройки, они не должны использоваться
непосредственно в реальных задачах. Цель изложения в том, чтобы
документировать и показать синтаксис, а также примеры
реализации и тестирования.Для правильной работы этих политик необходимо выполнить
некоторые приготовления.Приготовления к использованию политик с меткамиВ файл login.conf необходимо
внести следующие изменения:Должен быть добавлен класс insecure,
или другой подобный класс. Наличие класса
insecure не обязательно, он приводится
здесь в качестве примера; другие конфигурации могут использовать
другое имя класса.Класс insecure должен использовать
приведенные ниже настройки и определения. Некоторые из них
могут быть изменены, но строка, определяющая метку по
умолчанию, необходима и должна быть оставлена.insecure:\
:copyright=/etc/COPYRIGHT:\
:welcome=/etc/motd:\
:setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\
:path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:\
:manpath=/usr/share/man /usr/local/man:\
:nologin=/usr/sbin/nologin:\
:cputime=1h30m:\
:datasize=8M:\
:vmemoryuse=100M:\
:stacksize=2M:\
:memorylocked=4M:\
:memoryuse=8M:\
:filesize=8M:\
:coredumpsize=8M:\
:openfiles=24:\
:maxproc=32:\
:priority=0:\
:requirehome:\
:passwordtime=91d:\
:umask=022:\
:ignoretime@:\
:label=partition/13,mls/5,biba/low:Перед тем, как переключать пользователей на новый класс,
необходимо запустить команду &man.cap.mkdb.1; на
&man.login.conf.5;.Пользователю root также необходимо
присвоить класс; иначе, почти любой команде, выполняемой
от root, потребуется использование
setpmac.Убедитесь, что все разделы, на которых будут установлены
метки MAC, поддерживают параметр
. Нам необходимо сделать это,
поскольку многие из примеров здесь содержат различные
метки в целях тестирования. Просмотрите вывод команды
mount в качестве необходимой
предосторожности.Переключите всех пользователей, которые будут использовать
новые механизмы безопасности, на этот класс. Информация
по этой процедуре находится в &man.pw.8; или
&man.vipw.8;.Модуль MAC partitionMAC Process Partition PolicyИмя модуля: mac_partition.koСтрока настройки ядра:
options MAC_PARTITIONПараметр загрузки:
mac_partition_load="YES"Политика &man.mac.partition.4; распределяет процессы по
разделам на основе их MAC
меток. Это может быть представлено как особый тип
&man.jail.8;, хотя такое сравнение едва ли подходит.Этот модуль должен быть добавлен в &man.loader.conf.5;,
чтобы политика была загружена и включена при загрузке
системы.Большая часть настройки этой политики выполняется с помощью
утилиты &man.setpmac.8;, которая будет описана ниже. Для
данной политики имеется также следующая переменная
sysctl:security.mac.partition.enabled
включит MAC разделение процессов.Когда эта политика включена, пользователям разрешено
просматривать только собственные процессы, но не разрешено
пользоваться определенными утилитами. Например, пользователю
из класса insecure выше не будет разрешено
использование команды top, а также многих
других команд, которые должны порождать процесс.Для присвоения утилитам меток partition используйте
утилиту setpmac:&prompt.root; setpmac partition/13 topКоманда top будет добавлена к метке,
установленной для пользователей класса insecure.
Обратите внимание, что все процессы, порожденные пользователями
класса insecure, останутся с меткой
partition/13.ПримерыСледующая команда покажет вашу метку раздела и список
процессов:&prompt.root; ps ZaxСледующей командой можно просмотреть метку раздела
процессов других пользователей и их запущенные процессы:&prompt.root; ps -ZU trhodesПользователи могут могут увидеть процессы
root, если не загружена политика
&man.mac.seeotheruids.4;.Действительно продвинутая реализация
должна отключать все сервисы через
/etc/rc.conf и запускать их через
скрипт, который установит правильный набор меток.Следующие политики поддерживают целочисленные установки
вместо трех меток по умолчанию. Эти опции, включая их
ограничения, описываются более подробно в страницах
справочника модулей.Модуль многоуровневой безопасности MAC (MLS)Политика многоуровневой безопасности MACИмя модуля: mac_mls.koСтрока конфигурации ядра:
options MAC_MLSПараметр загрузки: mac_mls_load="YES"Политика &man.mac.mls.4; контролирует взаимодействие субъектов
и объектов системы путем применения строгой политики
к потоку информации.В среде MLS, для каждого субъекта или объекта
внутри отдела (compartment) устанавливается уровень
допуска. Поскольку количество уровней допуска может
превышать шесть тысяч, для любого системного администратора
задача настройки каждого субъекта или объекта может быть
слишком сложной. К счастью, существуют постоянные
метки, которые уже включены в эту политику.Эти метки mls/low,
mls/equal и mls/high.
Поскольку эти метки подробно описываются в справочнике,
здесь мы дадим только краткое описание:Метка mls/low содержит минимальную
настройку, что позволяет доминирование над ней всех других
объектов. Все, что помечено с mls/low,
находится на низком уровне доступа и доступ к более высоким
уровням будет запрещен. Кроме того, эта метка предотвратит
запись или передачу информации объектам с более высоким
уровнем доступа.Метка mls/equal должна быть помещена
на объекты, являющиеся исключением из политики.Метка mls/high это наибольший возможный
уровень доступа. Объекты с этой меткой будут доминировать
над всеми другими объектами системы; однако, утечка информации
от них к объектам более низкого класса невозможна.MLS представляет собой:Иерархические уровни безопасности с набором не
иерархических категорий;Фиксированные правила: нет чтения сверху, нет записи
вниз (субъект может иметь доступ на чтение объектов
собственного уровня или ниже, но не выше. Аналогично,
субъект может иметь доступ на запись в объекты своего
уровня или выше, но не наоборот.);Секретность (предотвращение неавторизованного раскрытия
данных);Основа для разработки систем, одновременно работающих с
данными на нескольких уровнях секретности (без утечки
информации).Для настройки специальных сервисов и интерфейсов доступны
следующие переменные sysctl:security.mac.mls.enabled используется
для включения/отключения политики MLS.security.mac.mls.ptys_equal пометит
все устройства &man.pty.4; как mls/equal
во время создания.security.mac.mls.revocation_enabled
используется для запрета доступа к объектам после того,
как их метка изменится в меньшую сторону.security.mac.mls.max_compartments
используется для установки максимального количества
уровней отделов на объекты; обычно это максимальное
количество отделов, разрешенных в системе.Для управления метками MLS существует команда
&man.setfmac.8;. Для присвоения метки объекту, выполните
следующую команду:&prompt.root; setfmac mls/5 testДля получения метки MLS файла
test, выполните следующую команду:&prompt.root; getfmac testВыше представлен краткий обзор возможностей политики
MLS. Существует метод, связанный с созданием
основного файла политики в каталоге /etc, где будет определена
+ class="directory">/etc, где будет определена
необходимая для политики MLS информация, которая
будет передана команде setfmac. Этот метод будет
описан после рассмотрения всех политик.Итоги: объект с низким уровнем доступа не может
прочесть данные объекта с высоким уровнем доступа. Базовая политика
должна устанавливать mls/high на всем, что не должно
быть прочитано, даже если туда необходимо записывать. На всем, куда
нельзя писать, должна быть установлена метка
mls/low, даже если это необходимо читать.
Наконец, на всем остальном установите mls/equal.
Все пользователи, помеченные как insecure, должны
иметь метку mls/low.Модуль MAC BibaMAC Biba Integrity PolicyИмя модуля: mac_biba.koСтрока конфигурации ядра: options MAC_BIBAПараметр загрузки: mac_biba_load="YES"Модуль &man.mac.biba.4; загружает MAC
политику Biba. Эта политика работает в основном так же, как и
MLS, за исключением того, что правила потока
информации изменены на противоположные. Они предназначены для
предотвращения передачи потока секретной информации вверх, в то
время как политика MLS предотвращает передачу
потока секретной информации вниз; таким образом, большая часть
этого раздела применима к обеим политикам.В среде Biba, каждому субъекту или объекту присваивается
метка целостности. Эти метки состоят из
иерархических уровней и не-иерархических компонентов.
При возрастании уровня объекта или субъекта это повышает
его целостность.Поддерживаемые метки biba/low,
biba/equal, и biba/high;
описаны ниже:Метка biba/low обеспечивает наименьшую
целостность объекта или субъекта. Установка ее на объект
или субъект заблокирует их доступ к объектам или субъектам,
имеющим более высокую метку. Тем не менее, у них остается
доступ на чтение.Метка biba/equal должна помещаться только
на объекты, исключающиеся из политики.Метка biba/high разрешит запись в объекты
с более низкой меткой, но не разрешит чтение из этих
объектов. Рекомендуется помещать такую метку на объекты,
влияющие на целостность всей системы.Biba представляет собой:Иерархические уровни целостности с набором не иерархических
категорий;Фиксированные правила: нет записи наверх, нет чтения снизу
(обратно MLS). Субъект может иметь доступ на
запись к объектам своего уровня или ниже, но не выше. Аналогично,
субъект может иметь доступ на чтение к объектам своего уровня
или выше, но не ниже;Целостность (предотвращение неавторизованного изменения
данных);Уровни целостности (вместо уровней секретности
MLS).Для управления политикой Biba могут быть использованы
следующие переменные sysctl:security.mac.biba.enabled
может использоваться для включения/выключения политики
Biba.security.mac.biba.ptys_equal
может использоваться для отключения политики Biba
на устройствах &man.pty.4;.security.mac.biba.revocation_enabled
включит отмену доступа к объектам, если метка изменена
на более высокую, чем у субъекта.Для выполнения настроек политики Biba на системных
объектах, применяются команды setfmac и
getfmac:&prompt.root; setfmac biba/low test
&prompt.root; getfmac test
test: biba/lowИтоги: субъект с низким уровнем целостности не может писать
в субъект с высоким уровнем целостности; субъект с высоким уровнем
целостности не может читать из субъекта с низким уровнем
целостности.Модуль MAC LOMACMAC LOMACИмя модуля: mac_lomac.koСтрока конфигурации ядра: options MAC_LOMACПараметр загрузки: mac_lomac_load="YES"В отличие от политики MAC Biba, политика
&man.mac.lomac.4; разрешает доступ к объектам с более низким уровнем
целостности только после уменьшения уровня целостности, чтобы не
нарушать каких-либо правил целостности.MAC версия политики целостности Low-watermark,
чтобы не пересекаться со старой реализацией &man.lomac.4;,
работает почти так же, как и Biba, за исключением использования
плавающих меток для поддержки понижения метки субъекта через
отдел для вспомогательной градации (auxiliary grade compartment).
Этот вспомогательный отдел принимает вид [auxgrade].
При включении политики lomac с вспомогательной градацией
метка должна выглядеть приблизительно так:
lomac/10[2], где номер 2 это вспомогательная
градация.Политика MAC LOMAC основана на тотальной
пометке всех системных объектов метками целостности, разрешая
субъектам читать из объектов с более низкой степенью целостности
и с уменьшением метки субъекта для предотвращения последующей
записи в объекты с более высокой степенью целостности.
Параметр [auxgrade] обсуждался выше, таким
образом политика может быть более совместимой и требовать
меньшей первоначальной настройки, чем Biba.ПримерыКак и для политик Biba и MLS, для
установки меток на системные объекты и субъекты могут
быть использованы утилиты setfmac и
setpmac:&prompt.root; setfmac /usr/home/trhodes lomac/high[low]
&prompt.root; getfmac /usr/home/trhodes lomac/high[low]Обратите внимание, что вспомогательная градация здесь
low, эта возможность предоставляется только
политикой MAC LOMAC policy.Реализация защищенной среды с MACMAC Example ImplementationMAC -- пример реализацииНижеследующая демонстрация реализует защищенную среду
с использованием различных MAC модулей
с соответственно настроенными политиками. Используйте
этот пример только для тестирования, он не предназначен
для удовлетворения всех требований к защите. Реализация
этих политик без понимания принципа их работы неприменима
в реальных задачах.Перед началом процесса настройки, на каждую файловую
систему необходимо установить параметр multilabel,
который упоминался в начале этой главы. Невыполнение
этого требования приведет к ошибкам.Создание insecure класса пользователяНачните процедуру добавлением следующего класса
пользователя к файлу
/etc/login.conf:insecure:\
:copyright=/etc/COPYRIGHT:\
:welcome=/etc/motd:\
:setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\
:path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
:manpath=/usr/share/man /usr/local/man:\
:nologin=/usr/sbin/nologin:\
:cputime=1h30m:\
:datasize=8M:\
:vmemoryuse=100M:\
:stacksize=2M:\
:memorylocked=4M:\
:memoryuse=8M:\
:filesize=8M:\
:coredumpsize=8M:\
:openfiles=24:\
:maxproc=32:\
:priority=0:\
:requirehome:\
:passwordtime=91d:\
:umask=022:\
:ignoretime@:\
:label=partition/13,mls/5:и добавлением следующей строки к default классу
пользователя::label=mls/equal,biba/equal,partition/equal:После завершения этих действий, для пересборки базы данных
должна быть выполнена следующая команда:&prompt.root; cap_mkdb /etc/login.confЗагрузка с необходимыми модулямиДобавьте к
/boot/loader.conf следующие строки,
чтобы необходимые модули были загружены при старте
системы:mac_biba_load="YES"
mac_mls_load="YES"
mac_seeotheruids_load="YES"
mac_partition_load="YES"Установка всех пользователей в insecureВсем учетным записям, кроме root
или системных пользователей теперь потребуется присвоить
класс (login class). При отсутствии класса пользователи
не смогут получить доступа к обычным командам, таким как
&man.vi.1;. Следующий скрипт sh
сделает все необходимое:&prompt.root; for x in `awk -F: '($3 >= 1001) && ($3 != 65534) { print $1 }' \/etc/passwd`; do pw usermod $x -L insecure; done;После этого изменения необходимо запустить команду
cap_mkdb на файле
/etc/master.passwd.Завершение настройкиДолжен быть создан файл контекста; следующий пример
взят из примера политики от Robert Watson, он может быть
помещен в /etc/policy.contexts:# This is the default BIBA/MLS policy for this system.
.* biba/high,mls/high
/sbin/dhclient biba/high(low),mls/high(low)
/dev(/.*)? biba/equal,mls/equal
# This is not an exhaustive list of all "privileged" devices.
/dev/mdctl biba/high,mls/high
/dev/pci biba/high,mls/high
/dev/k?mem biba/high,mls/high
/dev/io biba/high,mls/high
/dev/agp.* biba/high,mls/high
(/var)?/tmp(/.*)? biba/equal,mls/equal
/tmp/\.X11-unix biba/high(equal),mls/high(equal)
/tmp/\.X11-unix/.* biba/equal,mls/equal
/proc(/.*)? biba/equal,mls/equal
/mnt.* biba/low,mls/low
(/usr)?/home biba/high(low),mls/high(low)
(/usr)?/home/.* biba/low,mls/low
/var/mail(/.*)? biba/low,mls/low
/var/spool/mqueue(/.*)? biba/low,mls/low
(/mnt)?/cdrom(/.*)? biba/high,mls/high
(/usr)?/home/(ftp|samba)(/.*)? biba/high,mls/high
/var/log/sendmail\.st biba/low,mls/low
/var/run/utmp biba/equal,mls/equal
/var/log/(lastlog|wtmp) biba/equal,mls/equalЭта политика обеспечит безопасность путем применения
ограничений на нисходящий и восходящий потоки информации
в применении к каталогам и утилитам, приведенным в левой
части файла.Он может быть внесен в систему следующими
командами:&prompt.root; setfsmac -ef /etc/policy.contexts /
&prompt.root; setfsmac -ef /etc/policy.contexts /usrРаскладка вышеприведенной файловой системы может быть
различной для разных систем.Файл /etc/mac.conf требует
следующих изменений в основном разделе:default_labels file ?biba,?mls
default_labels ifnet ?biba,?mls
default_labels process ?biba,?mls,?partition
default_labels socket ?biba,?mlsТестирование настройкиMAC Configuration TestingДобавьте пользователя с помощью команды
adduser и поместите его в класс
insecure для этих тестов.В примерах ниже тестирование root
и обычных пользователей будет смешиваться; форма
приглашения поможет различить этих пользователей.Основное тестирование меток&prompt.user; getpmac
biba/15(15-15),mls/15(15-15),partition/15
&prompt.root; setpmac partition/15,mls/equal topПроцесс top будет уничтожен перед тем, как мы запустим
другой процесс top.Тестирование MAC seeotheruids&prompt.user; ps Zax
biba/15(15-15),mls/15(15-15),partition/15 1096 #C: S 0:00.03 -su (bash)
biba/15(15-15),mls/15(15-15),partition/15 1101 #C: R+ 0:00.01 ps ZaxПросмотр процессов всех других пользователей должен
быть запрещен.Тестирование MAC partitionОтключите политику MAC
seeotheruids для остальных тестов:&prompt.root; sysctl security.mac.seeotheruids.enabled=0
&prompt.user; ps Zax
LABEL PID TT STAT TIME COMMAND
biba/equal(low-high),mls/equal(low-high),partition/15 1122 #C: S+ 0:00.02 top
biba/15(15-15),mls/15(15-15),partition/15 1096 #C: S 0:00.05 -su (bash)
biba/15(15-15),mls/15(15-15),partition/15 1123 #C: R+ 0:00.01 ps ZaxВсе пользователи должны видеть каждый процесс в своем
разделе (partition).Тестирование меток Biba и MLS&prompt.root; setpmac partition/15,mls/equal,biba/high\(high-high\) top
&prompt.user; ps Zax
LABEL PID TT STAT TIME COMMAND
biba/high(high-high),mls/equal(low-high),partition/15 1251 #C: S+ 0:00.02 top
biba/15(15-15),mls/15(15-15),partition/15 1096 #C: S 0:00.06 -su (bash)
biba/15(15-15),mls/15(15-15),partition/15 1157 #C: R+ 0:00.00 ps ZaxПолитика Biba позволяет чтение объектов с более высокими
метками.&prompt.root; setpmac partition/15,mls/equal,biba/low top
&prompt.user; ps Zax
LABEL PID TT STAT TIME COMMAND
biba/15(15-15),mls/15(15-15),partition/15 1096 #C: S 0:00.07 -su (bash)
biba/15(15-15),mls/15(15-15),partition/15 1226 #C: R+ 0:00.01 ps ZaxПолитика Biba не позволяет чтение объектов с более низкими
метками; тем не менее, MLS разрешает это.&prompt.user; ifconfig bge0 | grep maclabel
maclabel biba/low(low-low),mls/low(low-low)
&prompt.user; ping -c 1 192.0.34.166
PING 192.0.34.166 (192.0.34.166): 56 data bytes
ping: sendto: Permission deniedПользователи не могут выполнить ping на
example.com, или на любой
домен по этой причине.Для устранения этой ошибки, запустите следующую
команду:&prompt.root; sysctl security.mac.biba.trust_all_interfaces=1Она устанавливает метку интерфейса по умолчанию в
незащищенный режим, так что политика Biba по умолчанию не
будет применена.&prompt.root; ifconfig bge0 maclabel biba/equal\(low-high\),mls/equal\(low-high\)
&prompt.user; ping -c 1 192.0.34.166
PING 192.0.34.166 (192.0.34.166): 56 data bytes
64 bytes from 192.0.34.166: icmp_seq=0 ttl=50 time=204.455 ms
--- 192.0.34.166 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max/stddev = 204.455/204.455/204.455/0.000 msУстановив более корректную метку, мы можем использовать
ping.Теперь создадим файлы для процедуры тестирования чтения
и записи:&prompt.root; touch test1 test2 test3 test4 test5
&prompt.root; getfmac test1
test1: biba/equal,mls/equal
&prompt.root; setfmac biba/low test1 test2; setfmac biba/high test4 test5; \
setfmac mls/low test1 test3; setfmac mls/high test2 test4
&prompt.root; setfmac mls/equal,biba/equal test3 && getfmac test?
test1: biba/low,mls/low
test2: biba/low,mls/high
test3: biba/equal,mls/equal
test4: biba/high,mls/high
test5: biba/high,mls/equal
&prompt.root; chown testuser:testuser test?Все эти файлы должны принадлежать пользователю
testuser. Тесты на чтение:&prompt.user; ls
test1 test2 test3 test4 test5
&prompt.user; ls test?
ls: test1: Permission denied
ls: test2: Permission denied
ls: test4: Permission denied
test3 test5Доступ на чтение не должен быть разрешен для пар:
(biba/low,mls/low),
(biba/low,mls/high) и
(biba/high,mls/high).
Теперь несколько тестов на запись:&prompt.user; for i in `echo test*`; do echo 1 > $i; done
-su: test1: Permission denied
-su: test4: Permission denied
-su: test5: Permission deniedПодобно тестам на чтение, доступ на запись должен быть
запрещен для пар:
(biba/low,mls/high) и
(biba/equal,mls/equal).&prompt.user; cat test?
cat: test1: Permission denied
cat: test2: Permission denied
1
cat: test4: Permission deniedА теперь от root:&prompt.root; cat test2
1Другой пример: Использование MAC для защиты веб сервераБудет создано отдельное хранилище для веб данных,
к которому пользователи должны иметь доступ. Это позволит
biba/high управлять доступом к веб
данным.Начните с создания каталога для хранения веб
данных:&prompt.root; mkdir /usr/home/cvsТеперь инициализируйте его командой
cvs:&prompt.root; cvs -d /usr/home/cvs initДля начала необходимо включить политику biba,
добавив mac_biba_enable="YES" в
/boot/loader.conf. Предполагается, что
ядро скомпилировано с поддержкой MAC.Далее установите метку biba/high для всей
системы по умолчанию.В файл login.conf, класс default,
необходимо внести следующие изменения::ignoretime@:\
:umask=022:\
:label=biba/high:Каждого пользователя необходимо поместить в класс по
умолчанию; такая команда:&prompt.root; for x in `awk -F: '($3 >= 1001) && ($3 != 65534) { print $1 }' \/etc/passwd`; do pw usermod $x -L default; done;быстро решит эту задачу.Теперь создадим другой класс, web, копию класса default
с меткой, установленной в biba/low.Создайте пользователя для работы с основными веб данными,
хранящимися в репозитории cvs.
Этого пользователя необходимо поместить в новый класс,
web.Поскольку метка по умолчанию biba/high,
на репозитории она будет той же. Веб данные должны иметь
ту же метку, чтобы у пользователей был доступ к ним на
чтение/запись. Веб сервер должен иметь доступ к тем же
данным, к которым есть доступ у пользователей с меткой
biba/high, для этого необходимо понизить
метку данных.Все, что потребуется, это следующий &man.sh.1; скрипт,
который может быть запущен из &man.cron.8;:PATH=/bin:/usr/bin:/usr/local/bin; export PATH;
CVSROOT=/home/repo; export CVSROOT;
cd /home/web;
cvs -qR checkout -P htdocs;
exit;Во многих случаях в веб файлы cvs
необходимо поместить теги Id.Этот скрипт теперь может быть помещен в домашний каталог
каталог пользователя web, необходимо
также добавить следующую запись &man.crontab.1;:# Выполнять checkout web данных под меткой biba/low каждые 12 часов:
0 */12 * * * web /home/web/checkout.shЭта запись будет извлекать HTML страницы
каждые двенадцать часов.Метод запуска веб сервера по умолчанию также должен быть
изменен для запуска процесса с меткой biba/low.
Это может быть сделано путем следующего изменения в скрипте
/usr/local/etc/rc.d/apache.sh:command="setpmac biba/low /usr/local/sbin/httpd"Настройки Apache должны быть изменены
для работы с политикой biba/low. В этом
случае необходимо указать для хранения лог файлов каталог с
меткой biba/low, иначе будут возвращены
ошибки access denied.В этом примере необходимо указать в директиве
docroot каталог
/home/web/htdocs; или,
Apache не сможет
найти каталог с документами.Необходимо также изменить другие параметры конфигурации,
включая PID файл,
Scoreboardfile,
DocumentRoot, или любые другие
настройки для каталогов, где необходим доступ на запись.
При использовании biba будет запрещен
доступ на запись во все каталоги сервера, на которых
нет метки biba/low.Решение проблем с инфраструктурой MACMAC TroubleshootingНа стадии разработки несколько пользователей сообщали
о проблемах при обычных настройках. Некоторые из этих
проблем приведены ниже:Параметр не может быть включен на
/Параметр не включается на
моем корневом (/) разделе!Похоже, что каждый пятидесятый пользователь сталкивается
с этой проблемой; на самом деле, и у нас была эта проблема
в первых настройках. Дальнейшие наблюдения за этой так
называемой ошибкой привели меня к мнению,
что это результат или некорректной документации, или
неправильной интерпретации этой документации.
Независимо от того, почему это случилось, для решения этой
проблемы могут быть предприняты следующие шаги:Отредактируйте /etc/fstab и установите
для корневого раздела параметр только для чтения
().Перегрузитесь в однопользовательский режим.Запустите команду tunefs
на /.Перегрузите систему в нормальный режим.Запустите mount/ и измените параметр
обратно на в /etc/fstab;
перегрузите систему опять.Дважды проверьте вывод
mount, чтобы убедиться, что параметр
был установлен на корневой
файловой системе.Не могу запустить &xfree86; после MACПосле настройки системы безопасности
MAC, я больше не могу запускать
&xfree86;!Это может быть вызвано политикой MAC
partition или путем неправильной установки
меток одной из политик MAC. Для отладки
попробуйте следующее:Просмотрите сообщение об ошибке; если пользователь
находится в классе insecure, проблема
может быть в политике partition.
Попробуйте установить класс пользователя обратно в
default и пересобрать базу данных
командой cap_mkdb. Если это не
решит проблемы, попробуйте шаг два.Дважды проверьте политики с метками. Убедитесь, что
политики настроены правильно для рассматриваемого пользователя,
приложения &xfree86;, и устройств в /dev.
+ class="directory">/dev.
Если проблема не решена, отправьте сообщение об ошибке и
описание вашей системы в список рассылки TrustedBSD,
находящийся на веб сайте
TrustedBSD
или в &a.questions;.Error: &man..secure.path.3; cannot stat .login_confПри попытке переключения от root на другого
пользователя системы, появляется сообщение об ошибке
_secure_path: unable to state .login_conf.Это сообщение обычно показывается, когда у пользователя более
высокая метка, чем у пользователя, которым он пытается стать.
Например, у пользователя системы joe метка по
умолчанию . Пользователь
root, метка которого ,
не может просматривать домашний каталог пользователя
joe. Это не зависит от того, использует ли
пользователь root команду sujoe или нет. В этом сценарии модель
целостности Biba не позволит root просматривать
объекты с низким уровнем целостности.Пользователя root нет!В нормальном или даже однопользовательском режиме
root не обнаруживается. Команда
whoami возвращает 0 (нуль) и
su возвращает who are you?.
Что можно сделать?Это может произойти, если политика с метками была отключена,
или через &man.sysctl.8;, или путем выгрузки модуля политики.
Если политика была постоянно или временно отключена, базу данных
login необходимо перенастроить. Дважды проверьте
login.conf, чтобы убедиться, что
все параметры были удалены и пересоберите
базу данных командой cap_mkdb.
diff --git a/ru_RU.KOI8-R/books/handbook/mail/chapter.sgml b/ru_RU.KOI8-R/books/handbook/mail/chapter.sgml
index c7e2b2a37e..b60cbb9150 100644
--- a/ru_RU.KOI8-R/books/handbook/mail/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/mail/chapter.sgml
@@ -1,2341 +1,2341 @@
BillLloydОригинальную версию предоставил JimMockПереписал АлексейДокучаевПеревод на русский язык: ДенисПеплинЭлектронная почтаКраткий обзорemailэлектронная почтаЭлектронная почта называемая также email, является
на сегодняшний день одним из самых популярных средств связи. Эта глава
описывает основы работы с почтовым сервером в &os;, а также введение
в процесс отправки и получения почты в &os;; однако, это не полноценный
справочник и фактически в главу не вошло много важной информации.
Более подробно эта тема рассмотрена во множестве прекрасных книг, список
которых приведен в .После прочтения этой главы вы узнаете:Какие программные компоненты задействованы в отправке и
получении электронной почты.Какие основные файлы настройки
sendmail имеются в FreeBSD.Разницу между удаленными и локальными почтовыми
ящиками.Как запретить спамерам использовать ваш почтовый
сервер для пересылки почты.Как установить и настроить альтернативный агент передачи почты
(Mail Transfer Agent, MTA), заменив им
sendmail.Как разрешить наиболее часто встречающиеся проблемы с почтовым
сервером.Как использовать SMTP с UUCP.Как настроить систему только для отправки почты.Как использовать почту с коммутируемым подключением к
сети.Как настроить SMTP аутентификацию для дополнительной
защиты.Как установить и настроить почтовый агент пользователя
(Mail User Agent, MUA), например
mutt, для отправки и получения
почты.Как загрузить почту с удаленного POP или
IMAP сервера.Как автоматически применять фильтры и правила к входящей
почте.Перед прочтением этой главы вам потребуется:Правильно настроить сетевое подключение
().Правильно настроить DNS для почтового сервера
().Знать как устанавливать дополнительное программное обеспечение
сторонних разработчиков ().Использование электронной почтыPOPIMAPDNSВ работе почтовой системы задействованы пять основных частей:
пользовательский почтовый клиент
(Mail User Agent, MUA),
почтовый сервис (даемон)
(Mail Transfer Agent, MTA), сервер DNS, удаленный или локальный почтовый ящик,
и конечно сам почтовый сервер.Пользовательский почтовый клиентОбычно, это программа типа mutt,
pine, elm,
mail, а также программы с графическим
интерфейсом, такие, как balsa или
xfmail, или интегрированные приложения
(например, какой-либо WWW браузер типа Netscape). Все эти программы
общаются с локальным почтовым
сервером, вызывая какой-либо даемон, или напрямую по протоколу
TCP.Почтовый даемонпочтовые даемоныsendmailпочтовые даемоныpostfixпочтовые даемоныqmailпочтовые даемоныexim&os; по умолчанию поставляется с
sendmail, но помимо того поддерживает
множество других даемонов почтового сервера, вот лишь некоторые
из них:exim;postfix;qmail.Почтовый даемон выполняет только две функции: он отвечает за прием
входящей почты и отправку исходящей. Он не
отвечает за выдачу
почты по протоколам POP или
IMAP, и не обеспечивает подключения к локальным
почтовым ящикам mbox или Maildir. Для этих целей
вам может потребоваться дополнительный
даемон.Старые версии sendmail содержат
некоторые серьезные ошибки безопасности, которые могут
привести к получению атакующим локального и/или удаленного
доступа к вашему компьютеру. Убедитесь, что вы работаете
с современной версией, свободной от таких ошибок.
Или установите альтернативный MTA
из коллекции портов &os;.Email и DNSСлужба имен доменов (Domain Name System, DNS) и соответствующий
ей даемон named играют важную роль в доставке
почты. Для доставки почты с вашего сайта другому, даемон почтового
сервера обратится к DNS для определения удаленного хоста, отвечающего
за доставку почты по назначению. Тот же процесс происходит при
доставке почты с удаленного хоста на ваш почтовый сервер.MX recordDNS отвечает за сопоставления имен хостов
IP адресам, как и за хранение информации, предназначенной для
доставки почты, известной как MX записи. Запись MX (Mail
eXchanger) определяет хост или хосты, которые будут получать почту
для определенного домена. Если для вашего имени хоста или домена
нет записи MX, почта будет доставлена непосредственно на ваш хост,
IP адрес которого определен в записи A.Вы можете просмотреть MX записи для любого домена с помощью
команды &man.host.1;, как показано в примере ниже:&prompt.user; host -t mx FreeBSD.org
FreeBSD.org mail is handled (pri=10) by mx1.FreeBSD.orgПолучение почтыemailполучениеПолучение почты для вашего домена выполняет почтовый сервер.
Он сохраняет отправленную в ваш домен почту в формате либо
mbox (это метод по умолчанию),
либо Maildir, в зависимости от настроек.
После сохранения почты ее можно либо прочитать локально, используя
такие приложения как &man.mail.1;, mutt,
или удаленно, по таким протоколам как POP или
IMAP. Это
означает, что для локального чтения почты вам не потребуется
устанавливать сервер POP или
IMAP.Доступ к удаленным почтовым ящикам по протоколам
POP и IMAPPOPIMAPДля удаленного доступа к почтовым ящикам вам потребуется
доступ к POP или IMAP
серверу.
Хотя удаленный доступ обеспечивают оба протокола
POP и IMAP, последний
предоставляет множество дополнительных возможностей, вот некоторые
из них:IMAP может как хранить сообщения на
удаленном сервере, так и забирать их.IMAP поддерживает одновременные
обновления.IMAP может быть очень полезен для
низкоскоростных соединений, поскольку позволяет пользователям
получить структуру сообщений без их загрузки; он также может
использоваться для выполнения таких задач как поиск на сервере,
для минимизации объема передаваемых между клиентом и сервером
данных.Для установки POP или
IMAP сервера необходимо выполнить следующие
действия:Выберите IMAP или
POP сервер, который подходит вам наилучшим
образом. Следующие POP и
IMAP серверы хорошо известны и могут быть
приведены в качестве примера:qpopper;teapop;imap-uw;courier-imap;Установите POP или
IMAP даемон, выбранный из коллекции
портов.Если потребуется, настройте
/etc/inetd.conf
для запуска POP или
IMAP сервера.Необходимо отметить, что и POP и
IMAP серверы передают информацию, включая
имя пользователя и пароль, в незашифрованном виде. Это означает,
что если вы хотите защитить передачу информации по этим
протоколам, потребуется использовать тунеллирование сессий через
&man.ssh.1;. Тунеллирование соединений описано в
.Доступ к локальным почтовым ящикамДоступ к почтовым ящикам может быть осуществлен непосредственно
путем использования MUA на сервере, где
эти ящики расположены. Это можно сделать используя приложения
вроде mutt или
&man.mail.1;.Почтовый хостпочтовый хостПочтовый хост это сервер, который отвечает за отправку и получение
почты для вашего компьютера, и возможно, для всей вашей сети.ChristopherShumwayПредоставил Настройка sendmailsendmailВ FreeBSD по умолчанию программой передачи почты (Mail Transfer
Agent, MTA) является &man.sendmail.8;. Работа
sendmail заключается в приеме почты от
почтовых программ пользователей (Mail User Agents,
MUA) и отправке ее на соответствующий адрес,
в соответствии с имеющимися настройками.
sendmail может также принимать входящие
соединения по сети и доставлять почту в локальные почтовые ящики
или перенаправлять их другой программе.sendmail использует следующие файлы
настройки:/etc/mail/access/etc/mail/aliases/etc/mail/local-host-names/etc/mail/mailer.conf/etc/mail/mailertable/etc/mail/sendmail.cf/etc/mail/virtusertableИмя файлаНазначение/etc/mail/accessФайл базы данных доступа
sendmail/etc/mail/aliasesСинонимы почтовых ящиков/etc/mail/local-host-namesСписок хостов, для которых
sendmail принимает почту/etc/mail/mailer.confНастройки почтовой программы/etc/mail/mailertableТаблица доставки почтовой программы/etc/mail/sendmail.cfОсновной файл настройки
sendmail/etc/mail/virtusertableТаблицы виртуальных пользователей и доменов/etc/mail/accessБаза данных доступа определяет список хостов или IP адресов,
имеющих доступ к локальному почтовому серверу, а также тип
предоставляемого доступа. Хосты могут быть перечислены как
, ,
или просто переданы процедуре обработки ошибок
sendmail с заданным сообщением об ошибке.
Хостам, перечисленным с параметром по умолчанию ,
разрешено отправлять почты на этот хост, если адрес назначения почты
принадлежит локальной машине. Все почтовые соединения от хостов,
перечисленных с параметром , отбрасываются.
Для хостов, перечисленных с параметром ,
разрешена передача через этот сервер почты с любым адресом
назначения.Настройка базы данных доступа
sendmailcyberspammer.com 550 We don't accept mail from spammers
FREE.STEALTH.MAILER@ 550 We don't accept mail from spammers
another.source.of.spam REJECT
okay.cyberspammer.com OK
128.32 RELAYВ этом примере приведены пять записей. К отправителям, чей адрес
соответствует записи в левой части таблицы, применяется правило
записанное в правой части таблицы. В первых двух примерах
код ошибки будет передан процедуре обработке ошибок
sendmail. В этом случае на удаленном хосте
будет получено соответствующее сообщение. В следующем примере почта
отбрасывается почта от определенного хоста,
another.source.of.spam. В четвертом примере
разрешается прием почты от хоста okay.cyberspammer.com, имя которого более точно
совпадает с этой записью, чем с cyberspammer.com в примере выше. При более
точном совпадении правила перезаписываются. В последнем примере
разрешается пересылка почты от хостов с IP адресами, начинающимися
с 128.32. Эти хосты смогут отправлять почту через
этот почтовый сервер для других почтовых серверов.После изменения этого файла для обновления базы данных
вам потребуется запустить make в каталоге
/etc/mail/./etc/mail/aliasesБаза данных синонимов содержит список виртуальных почтовых
ящиков, принадлежащих другим пользователям, файлам, программам, или
другим синонимам. Вот несколько примеров, которые могут быть
использованы для /etc/mail/aliases:Mail Aliasesroot: localuser
ftp-bugs: joe,eric,paul
bit.bucket: /dev/null
procmail: "|/usr/local/bin/procmail"Формат файла прост; имя почтового ящика слева от двоеточия
сопоставляется назначению(ям) справа. В первом примере
производится простое сопоставление почтового ящика
root почтовому ящику
localuser, для которого затем опять будет
произведен поиск в базе данных синонимов. Если совпадений не
обнаружится, сообщение будет доставлено локальному пользователю
localuser. В следующем примере приведен
список рассылки. Почта на адрес ftp-bugs
рассылается на три локальных почтовых ящика: joe,
eric и paul. Обратите
внимание, что удаленный почтовый ящик может быть задан в виде
user@example.com. В следующем примере
показана запись почты в файл, в данном случае
/dev/null. И в последнем примере показано
отправление почты программе, в данном случае почтовое сообщение
переправляется через канал &unix; на стандартный вход
/usr/local/bin/procmail.После обновления этого файла вам потребуется запустить
make в каталоге /etc/mail/
для обновления базы данных./etc/mail/local-host-namesВ этом файле находится список имен хостов, принимаемых
программой &man.sendmail.8; в качестве локальных. Поместите в
этот файл любые домены или хосты, для которых
sendmail должен принимать почту.
Например, если этот почтовый сервер должен принимать почту для
домена example.com и хоста
mail.example.com, его файл
local-host-names может выглядеть примерно
так:example.com
mail.example.comПосле обновления этого файла необходимо перезапустить
&man.sendmail.8;, чтобы он смог перечитать изменения./etc/mail/sendmail.cfОсновной файл настройки sendmail,
sendmail.cf управляет общим поведением
sendmail, включая все, от перезаписи
почтовых адресов до отправки удаленным серверам сообщений об
отказе от пересылки почты. Конечно, файл настройки с таким
многообразием возможностей очень сложен и подробное его описание
выходит за рамки данного раздела. К счастью, для стандартных
почтовых серверов изменять этот файл придется не часто.Основной файл настройки sendmail
может быть собран из макроса &man.m4.1;, определяющего возможности
и поведение sendmail. Подробнее
этот процесс описан в файле
/usr/src/contrib/sendmail/cf/README.Для применения изменений после правки файла необходимо
перезапустить sendmail./etc/mail/virtusertableФайл virtusertable сопоставляет виртуальные
почтовые домены и почтовые ящики реальным почтовым ящикам. Эти
почтовые ящики могут быть локальными, удаленными, синонимами,
определенными в /etc/mail/aliases, или
файлами.Пример таблицы виртуального доменаroot@example.com root
postmaster@example.com postmaster@noc.example.net
@example.com joeВ примере выше мы видим сопоставление адресов для домена
example.com. Почта
обрабатывается по первому совпадению с записью в этом файле.
Первая запись сопоставляет адрес root@example.com
локальному почтовому ящику root.
Вторая запись сопоставляет postmaster@example.com
локальному почтовому ящику postmaster
на хосте noc.example.net. Наконец,
до этого момента адрес в домене example.com не совпал ни с одним из
предыдущих, будет применено последнее сопоставление, в которому
соответствует всякое другое почтовое сообщение, отправленное на любой
адрес в example.com. Это сообщение
будет доставлено в локальный почтовый ящик
joe.AndrewBoothmanНаписал GregoryNeil ShapiroИнформация получена из писем, написанных Установка другой почтовой программыemailзамена mtaКак уже упоминалось, FreeBSD поставляется с MTA (Mail Transfer Agent)
sendmail. Следовательно, по умолчанию
именно эта программа отвечает за вашу исходящую и входящую
почту.Однако, по различным причинам некоторые системные администраторы
заменяют системный MTA. Эти причины варьируются от простого желания
попробовать другой MTA до потребности в определенных возможностях
пакета, основанного на другой почтовой программе. К счастью, вне
зависимости от причины, в FreeBSD такая замена выполняется
просто.Установка нового MTAВам предоставлен широкий выбор MTA. Начните с поиска в
коллекции портов FreeBSD,
где их немало. Конечно, вы можете использовать любой MTA
по желанию, взятый откуда угодно, если только сможете
запустить его под FreeBSD.Начните с установки нового MTA. После установки у вас будет
возможность решить, действительно ли он подходит вашем нуждам,
а также настроить новое программное обеспечение перед тем, как
заменить им sendmail. При установке
новой программы убедитесь, что она не пытается перезаписать
системные файлы, такие как /usr/bin/sendmail.
Иначе ваша новая почтовая программа фактически начнет работать
до того, как вы ее настроите.Обратитесь к документации на выбранный MTA
за информацией по его настройке.Отключение sendmailПроцедура, используемая для запуска
sendmail, значительно изменилась между
релизами 4.5-RELEASE и 4.6-RELEASE. Поэтому процедура, используемая
для его отключения, немного отличается.FreeBSD 4.5-STABLE до 2002/4/4 и раньше
(включая 4.5-RELEASE и более ранние)Добавьте:sendmail_enable="NO"в /etc/rc.conf. Это отключит
сервис входящей почты sendmail,
но если /etc/mail/mailer.conf (см. ниже)
не изменен, sendmail все еще
будет использоваться для отправки почты.FreeBSD 4.5-STABLE после 2002/4/4
(включая 4.6-RELEASE и более поздние)Для полного отключения
sendmail используйтеsendmail_enable="NONE"в /etc/rc.conf.Если вы отключите сервис исходящей почты
sendmail таким способом, необходимо
заменить его полностью работоспособной альтернативной системой
доставки почты. Если вы не сделаете этого, системные программы,
такие как &man.periodic.8;, не смогут отправлять сообщения
по электронной почте как обычно. Многие программы в вашей
системе могут требовать наличия функционирующей
sendmail-совместимой системы.
Если приложения будут продолжать использовать программу
sendmail, пытаясь отправить почту
после отключения почтовой системы, почта может попасть в
неактивную очередь sendmail и никогда
не будет доставлена.Если вы хотите отключить только сервис входящей почты
sendmail, установитеsendmail_enable="NO"в /etc/rc.conf. Дополнительная информация
о параметрах запуска sendmail
доступна на странице справочника &man.rc.sendmail.8;.Запуск нового MTA при загрузкеВы можете выбрать один из двух методов для запуска нового MTA
при загрузке, опять же в зависимости от используемой версии
FreeBSD.FreeBSD 4.5-STABLE до 2002/4/11
(включая 4.5-RELEASE и более ранние)Добавьте в каталог
/usr/local/etc/rc.d/, скрипт с расширением
.sh и с правами выполнения пользователем
root. Скрипт должен принимать параметры
start и stop.
Во время запуска системы он будет запущен командой/usr/local/etc/rc.d/supermailer.sh startкоторая также может использоваться для запуска сервера вручную
Во время завершения работы системы, системные скрипты используют
параметр stop, выполнив команду/usr/local/etc/rc.d/supermailer.sh stopкоторая также может использоваться для остановки почтового сервера
при работающей системе.FreeBSD 4.5-STABLE после 2002/4/11
(включая 4.6-RELEASE и более поздние)С более поздними версиями FreeBSD, вы можете использовать
метод, описанный выше, или добавить строкуmta_start_script="filename"в /etc/rc.conf, где
filename это имя скрипта, который вы
хотите выполнить при загрузке для запуска MTA.Замещение sendmail как
почтовой программы по умолчаниюПрограмма sendmail настолько
распространена в качестве стандартной программы для систем &unix;,
что многие программы считают, что она уже установлена и настроена.
По этой причине многие альтернативные MTA предоставляют собственные
совместимые реализации интерфейса командной строки
sendmail; это облегчает их использование
в качестве прозрачной замены
sendmail.Поэтому если вы используете альтернативную почтовую программу,
потребуется убедиться, что когда программное обеспечение
пытается выполнить стандартные исполняемые файлы
sendmail, такие как
/usr/bin/sendmail, на самом деле выполняются
программы вновь установленной почтовой системы. К счастью,
FreeBSD предоставляет систему, называемую &man.mailwrapper.8;,
которая выполняет эту работу за вас.Когда установлен sendmail,
файл /etc/mail/mailer.conf выглядит
примерно так:sendmail /usr/libexec/sendmail/sendmail
send-mail /usr/libexec/sendmail/sendmail
mailq /usr/libexec/sendmail/sendmail
newaliases /usr/libexec/sendmail/sendmail
hoststat /usr/libexec/sendmail/sendmail
purgestat /usr/libexec/sendmail/sendmailЭто означает, что когда выполняется какая-то из этих стандартных
программ (например сам sendmail), система на
самом деле вызывает копию mailwrapper, называемую
sendmail, которая обращается к
mailer.conf и выполняет вместо этого
/usr/libexec/sendmail/sendmail.
Такая схема делает простой замену программ, которые на самом деле
выполняются, когда вызываются стандартные функции
sendmail.Поэтому если вы хотите выполнять
/usr/local/supermailer/bin/sendmail-compat
вместо sendmail, отредактируйте
/etc/mail/mailer.conf так:sendmail /usr/local/supermailer/bin/sendmail-compat
send-mail /usr/local/supermailer/bin/sendmail-compat
mailq /usr/local/supermailer/bin/mailq-compat
newaliases /usr/local/supermailer/bin/newaliases-compat
hoststat /usr/local/supermailer/bin/hoststat-compat
purgestat /usr/local/supermailer/bin/purgestat-compatЗапуск новой почтовой программыКак только вы все настроили, потребуется или уничтожить
процесс sendmail, который уже не
нужен и запустить новую почтовую программу, или просто перегрузить
систему. Перезагрузка также даст вам возможность проверить,
правильно ли настроена система для автоматического запуска
MTA при загрузке.Поиск и устранение неисправностейemailустранение неисправностейПочему я должен использовать FQDN для хостов вне моей подсети?Вы, видимо, обнаружили, что хост, к которому вы обратились,
оказался на самом деле в другом домене; например, если вы
находитесь в домене foo.bar.edu и
хотите обратиться к хосту mumble в домене bar.edu, то должны указать его полное
доменное имя, mumble.bar.edu, а не
просто mumble.BINDТрадиционно, программа разрешения имен BSD BIND позволяла это
делать. Однако, текущая версия BIND,
поставляемая с FreeBSD, больше не добавляет имена доменов,
отличающихся от того, в котором вы находитесь, для не полностью
указанных имен хостов. То есть, имя mumble будет
опознан как mumble.foo.bar.edu или
будет искаться в корневом домене.Это отличается от предыдущего поведения, при котором поиск
продолжался в доменах mumble.bar.edu и mumble.edu. Если вам интересны причины
объявления такого поведения плохой практикой и даже ошибкой в
безопасности, обратитесь к RFC 1535.Хорошим решением будет поместить строку
search foo.bar.edu bar.edu
вместо ранее используемой:
domain foo.bar.edu
в файл /etc/resolv.conf. Однако
удостоверьтесь, что порядок поиска не нарушает границ
полномочий между локальным и внешним администрированием, в
терминологии RFC 1535.MX recordsendmail выдает ошибку
mail loops back to myselfВ FAQ по sendmail дан следующий ответ:Я получаю такие сообщения об ошибке:
553 MX list for domain.net points back to relay.domain.net
554 <user@domain.net>... Local configuration error
Как можно решить эту проблему?
Согласно записям MX, почта для домена domain.net перенаправляется на хост
relay.domain.net, однако последний не распознается как
domain.net. Добавьте domain.net в файл
/etc/mail/local-host-names
[известный как /etc/sendmail.cw до версии 8.10]
(если вы используете
FETURE(use_cw_file)) или добавьте Cw domain.net в файл
/etc/mail/sendmail.cf.FAQ по sendmail можно найти на
и рекомендуется
прочесть его при желании произвести некоторые
усовершенствования настроек почтовой системы.PPPКак организовать работу почтового сервера при коммутируемом соединении
с Интернет?Вы хотите подключить к интернет компьютер с FreeBSD, работающий
в локальной сети. Компьютер с FreeBSD будет почтовым шлюзом
для локальной сети. PPP соединение не выделенное.UUCPMX recordСуществует как минимум два пути, чтобы сделать это. Один способ
это использование UUCP.Другой способ это использование постоянно работающего интернет
сервера для обеспечения вторичного MX сервиса вашего домена.
Например, домен вашей компании example.com, и провайдер интернет
настроил example.net
для обеспечения вторичного MX сервиса:
example.com. MX 10 example.com.
MX 20 example.net.Только один хост должен быть указан в качестве последнего
получателя (добавьте запись Cw example.com в файл
/etc/mail/sendmail.cf на машине
example.com).Когда программа sendmail (со стороны
отправителя) захочет доставить почту, она
попытается соединиться с вашим хостом (example.com) через модемное подключение.
Скорее всего, ей это не удастся (вы,
вероятнее всего, не будете подключены к интернет).
Программа sendmail
автоматически перейдет ко вторичному MX серверу, т.е. вашему провайдеру
(example.net).
Вторичный MX сервер будет периодически пытаться соединиться с
вашим хостом и доставить почту на основной сервер MX
(example.com).Вы можете воспользоваться следующим сценарием, чтобы забирать
почту каждый раз, когда вы входите в систему:#!/bin/sh
# Put me in /usr/local/bin/pppmyisp
( sleep 60 ; /usr/sbin/sendmail -q ) &
/usr/sbin/ppp -direct pppmyispЕсли же вы хотите написать отдельный пользовательский скрипт,
лучше воспользоваться командой sendmail
-qRexample.com вместо вышеприведенного сценария, так как в
этом случае вся почта в очереди для хоста
example.com будет обработана
немедленно.Рассмотрим эту ситуацию подробнее:Вот пример сообщения из &a.isp.name;.> Мы предоставляем вторичный MX для наших клиентов. Вы соединяетесь
> с нашим сервером несколько раз в день, чтобы забрать почту для вашего
> первичного (главного) MX (мы не соединяемся с ним каждый раз, когда
> приходит новая почта для его доменов). Далее, sendmail отправляет
> почту, находящуюся в очереди каждые 30 минут, и клиент должен быть
> подключен к Интернет в течении 30 минут, чтобы удостовериться, что
> вся почта ушла на основной MX-сервер.
>
> Может быть, есть какая-либо команда, которая заставит sendmail
> немедленно отправить все почту, находящуюся в очереди? Естественно,
> пользователи не обладают какими-либо повышенными привилегиями на
> нашем сервере.
В секции privacy flags файла
sendmail.cf, определяется опция
Уберите restrictqrun, чтобы разрешить рядовым
пользователям инициировать работу с очередью. Вам также может понадобиться
изменить порядок MX-серверов. Так, если вы предоставляете первый (основной)
MX-сервер для ваши пользователей, мы указываем:
# If we are the best MX for a host, try directly instead of generating
# local config error.
OwTrue
Таким образом, удаленный хост будет доставлять почту непосредственно к вам,
не пытаясь установить соединение с клиентом. Затем уже вы, в свою очередь,
отсылаете ее клиенту. Удостоверьтесь, что в DNS есть записи про
customer.com и hostname.customer.com. Просто
добавьте запись A в DNS для customer.com.Почему я продолжаю получать ошибки Relaying
Denied при отправки почты через другие
хосты?В установке FreeBSD по умолчанию,
sendmail настроен для отправки
почты только от хоста, на котором он работает. Например,
если доступен POP сервер, пользователи
смогут проверять почту из школы, с работы или других
удаленных точек, но не смогут отправлять письма. Обычно,
через некоторое время после попытки будет отправлено письмо
от MAILER-DAEMON с сообщением
об ошибке 5.7 Relaying Denied.Есть несколько путей разрешения этой ситуации. Самый прямой
путь это использование адреса вашего провайдера в файле
relay-domains, расположенном в
/etc/mail/relay-domains. Быстрый способ
сделать это:&prompt.root; echo "your.isp.example.com" > /etc/mail/relay-domainsПосле создания или редактирования этого файла вы должны
перезапустить sendmail. Это отлично
работает, если вы администратор сервера и не хотите отправлять
почту локально, или хотите воспользоваться почтовым
клиентом/системой на другом компьютере или даже через другого
провайдера. Это также очень полезно, если у вас настроены одна
или две почтовые записи. Если необходимо добавить несколько
адресов, вы можете просто открыть этот файл в текстовом редакторе и
добавить домены, по одному на строку:your.isp.example.com
other.isp.example.net
users-isp.example.org
www.example.orgТеперь будет отправляться любая почта, посылаемая через вашу
систему любым хостом из этого списка (предоставляемого
пользователем, имеющим учетную запись в вашей системе).
Это отличный способ разрешить пользователям отправлять почту
через вашу систему удаленно, одновременно он блокирует отправку
спама.Расширенное руководствоВ следующем разделе рассматриваются более сложные темы, такие как
настройка почты и включение почтовой системы для всего домена.Базовая конфигурацияemailнастройкаИзначально, вы можете отправлять почту во внешний
мир если правильно составлен файл
/etc/resolv.conf или запущен свой сервер
имен. Если вы хотите, чтобы почта, предназначенная для хоста в
вашем домене, доставлялась MTA (например,
sendmail) на вашем хосте FreeBSD, есть два
пути:Запустите свой собственный сервер DNS, тем самым организовав
собственный домен, например, FreeBSD.orgПолучайте почту для вашего хоста непосредственно. Это
работает при доставке почты непосредственно на DNS имя вашей
машины. Например, example.FreeBSD.org.SMTPНезависимо от выбранного из предложенных выше вариантов, для
доставки почты непосредственно на ваш хост у него должен быть
постоянный IP адрес (а не динамический,
как у большинства PPP соединений). Если вы находитесь за
брандмауэром, то последний должен пропускать SMTP-пакеты. Если
вы хотите, чтобы почта приходила непосредственно на ваш
хост, необходимо убедиться в одном из двух:MX recordУбедитесь, что запись (с наименьшим номером) MX в
DNS соответствует IP адресу
вашего хоста.Убедитесь, что в DNS для вашего хоста вообще отсутствует
MX-запись.Выполнение любого из перечисленных условий обеспечит доставку
почты для вашего хоста.Попробуйте это:&prompt.root; hostname
example.FreeBSD.org
&prompt.root; host example.FreeBSD.org
example.FreeBSD.org has address 204.216.27.XXЕсли вы это видите, то можно без проблем посылать почту на
yourlogin@example.FreeBSD.org (предполагается,
что sendmail на example.FreeBSD.org работает правильно).Однако, если вы видите это:&prompt.root; host example.FreeBSD.org
example.FreeBSD.org has address 204.216.27.XX
example.FreeBSD.org mail is handled (pri=10) by hub.FreeBSD.orgто вся почта, посланная на example.FreeBSD.org будет собираться на
hub (для того же пользователя), вместо того, чтобы
быть отосланной непосредственно на ваш хост.Эта информация обрабатывается вашим DNS сервером. Соответствующая
запись DNS, указывающая, через какой хост будет проходить ваша
почта, называется MX (Mail
eXchanger). Если для хоста отсутствует такая
запись, почта будет приходить прямо на этот хост.Допустим, что запись MX для хоста freefall.FreeBSD.org в какой-то момент
выглядела так:freefall MX 30 mail.crl.net
freefall MX 40 agora.rdrop.com
freefall MX 10 freefall.FreeBSD.org
freefall MX 20 who.cdrom.comВы видите, что для хоста freefall существуют
несколько MX-записей. Запись с наименьшим номером соответствует
хосту, получающему почту непосредственно, если он доступен; если
он недоступен по каким-то причинам, другие сервера (иногда называемые
(резервными MX) временно получают почту, и хранят ее
пока не станут доступны хосты с меньшими номерами, в конечном итоге
отправляя почту на эти хосты.Чтобы альтернативные MX-хосты использовались наиболее
эффективно, они должны быть независимо подключены к Интернет. Ваш
провайдер (или дружественный сайт) скорее всего без проблем сможет
оказать подобные услуги.Почта для вашего доменаДля настройки почтового хоста (почтовый
сервер) вам потребуется, чтобы почта, направляемая различным рабочим
станциям, пересылалась этому хосту. Обычно вам необходима
доставка всей почты для любого хоста вашего домена (в данном случае
*.FreeBSD.org) на почтовый сервер, чтобы
пользователи могли получать свою почту на с этого сервера.DNSЧтобы облегчить себе (и другим) жизнь, создайте на обеих машинах
учетные записи с одинаковыми именами пользователей, например, с помощью
команды &man.adduser.8;.Сервер, который вы будете использовать в качестве почтового,
должен быть объявлен таковым для каждой машины в домене. Вот
фрагмент примерной конфигурации:example.FreeBSD.org A 204.216.27.XX ; Рабочая станция
MX 10 hub.FreeBSD.org ; Почтовый шлюзТаким образом, вся корреспонденция, адресованная рабочей
станции, будет обрабатываться вашим почтовым сервером, независимо от
того, что указано в A-записи.Все это можно реализовать только в том случае, если вы
используете сервер DNS. Если вы по каким-либо причинам не имеете
возможности установить свой собственный сервер имен, необходимо
договориться с провайдером или теми, кто поддерживает ваш
DNS.Если вы хотите поддерживать несколько виртуальных почтовых
серверов, может пригодиться следующая информация. Допустим, что
ваш клиент зарезервировал домен, например, customer1.org, и вам требуется, чтобы
почта, предназначенная для customer1.org приходила на ваш хост,
например, mail.myhost.com. В таком
случае, DNS должен выглядеть так:customer1.org MX 10 mail.myhost.comЗаметьте, что если вам требуется только получать почту для
домена, соответствующая A-запись не
нужна.Помните, что если вы попытаетесь каким-либо образом обратиться
к хосту customer1.org, у вас
вряд ли что-либо получится, если нет A-записи для этого
хоста.Последнее, что вы должны сделать – это сказать программе
sendmail, для каких доменов и/или хостов
она должна принимать почту. Это можно сделать несколькими
способами:Добавьте названия этих хостов в файл
/etc/mail/local-host-names, если вы используете
FEATURE(use_cw_file). Если у вас
sendmail
версии ниже 8.10, необходимо отредактировать файл
/etc/sendmail.cw.Добавьте строку Cwyour.host.com в файл
/etc/sendmail.cf или
/etc/mail/sendmail.cf (если у вас
sendmail
версии 8.10 или более поздней).SMTP через UUCPНастройка поставляемого с FreeBSD sendmail
предназначена для сайтов, подключенных к интернет непосредственно.
Сайты, осуществляющие обмен почтой через UUCP, должны использовать
другой файл настройки sendmail.Редактирование /etc/mail/sendmail.cf вручную
это сложная задача. sendmail версии 8
генерирует файлы настройки через препроцессор &man.m4.1;, реально
настройка выполняется на более высоком уровне абстракции.
Файлы настройки &man.m4.1; можно найти в
/usr/src/usr.sbin/sendmail/cf.Если вы не установили в систему все исходные тексты, пакет настройки
sendmail можно найти в отдельном архиве
исходных текстов. Если CDROM с исходными текстами
FreeBSD смонтирован, выполните:&prompt.root; cd /cdrom/src
&prompt.root; cat scontrib.?? | tar xzf - -C /usr/src/contrib/sendmailЭта установка займет всего несколько сотен килобайт. Файл
README в каталоге cf
содержит введение в основы настройки &man.m4.1;.Лучшим способом настройки поддержки передачи по UUCP является
использование возможности mailertable.
При этом создается база данных, которая помогает
sendmail решать вопросы маршрутизации.Во-первых, создайте файл .mc. В каталоге
/usr/src/usr.sbin/sendmail/cf/cf находятся
несколько примеров. Возьмем для примера имя файла
foo.mc. Все, что потребуется для преобразования
его в sendmail.cf, это:&prompt.root; cd /usr/src/usr.sbin/sendmail/cf/cf
&prompt.root; make foo.cf
&prompt.root; cp foo.cf /etc/mail/sendmail.cfТипичный .mc файл может выглядеть примерно
так:VERSIONID(`Your version number') OSTYPE(bsd4.4)
FEATURE(accept_unresolvable_domains)
FEATURE(nocanonify)
FEATURE(mailertable, `hash -o /etc/mail/mailertable')
define(`UUCP_RELAY', your.uucp.relay)
define(`UUCP_MAX_SIZE', 200000)
define(`confDONT_PROBE_INTERFACES')
MAILER(local)
MAILER(smtp)
MAILER(uucp)
Cw your.alias.host.name
Cw youruucpnodename.UUCPСтроки, содержащие
accept_unresolvable_domains,
nocanonify, и
confDONT_PROBE_INTERFACES, предотвратят использование
DNS для доставки почты. Пункт UUCP_RELAY
необходим для поддержки доставки по UUCP. Просто поместите сюда
имя хоста в интернет, способного работать с .UUCP адресами
псевдо-доменов; скорее всего, вы введете сюда основной сервер
пересылки почты провайдера.Как только вы сделаете это, потребуется файл
/etc/mail/mailertable. Если вы используете
для всей почты только одно внешнее соединение, подойдет следующий
файл:#
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
. uucp-dom:your.uucp.relayБолее сложный пример может выглядеть так:#
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
#
horus.interface-business.de uucp-dom:horus
.interface-business.de uucp-dom:if-bus
interface-business.de uucp-dom:if-bus
.heep.sax.de smtp8:%1
horus.UUCP uucp-dom:horus
if-bus.UUCP uucp-dom:if-bus
. uucp-dom:В первых трех строках обрабатываются специальные случаи, когда
почта для домена должна отправляться не на маршрут по умолчанию,
а на ближайшее соединение UUCP для сокращения пути доставки.
Следующая строка обрабатывает почту, которая может быть доставлена
по SMTP для локального Ethernet домена. Наконец, определены
маршруты UUCP в нотации псевдо-доменов .UUCP, для включения
перезаписи правил по умолчанию правилом
uucp-neighbor
!recipient.
Последняя строка всегда содержит одиночную точку, означающую
все остальное, с отправкой через UUCP, являющимся
универсальным почтовым шлюзом. Все имена узлов после ключевого слова
uucp-dom: должны представлять существующие маршруты
UUCP, проверить их можно с помощью команды
uuname.Напоминаем, что этот файл должен быть преобразован в базу данных
DBM перед использованием. Командную строку для этой задачи лучше всего
поместить в качестве комментария в верхней части файла
mailertable. Всегда выполняйте эту команду после
правки файла mailertable.И наконец: если вы не уверены, что некоторые отдельные почтовые
маршруты будут работать, запомните параметр
sendmail . С этим
параметром sendmail запускается в
режиме тестирования адреса; просто введите
3,0 и адрес, который вы хотите протестировать.
В последней строке появится сообщение об используемом внутреннем
почтовом агенте, хосте назначения, с которым вызывается этот агент,
и (возможно транслированный) адрес. Выход из этого режима
происходит при нажатии CtrlD.&prompt.user; sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
>3,0 foo@example.com
canonify input: foo @ example . com
...
parse returns: $# uucp-dom $@ your.uucp.relay $: foo < @ example . com . >
>^DBillMoranПредоставил Настройка почты только для отправкиСуществует множество случаев, когда может потребоваться только
отправка почты через почтовый сервер. Вот отдельные примеры:У вас настольный компьютер, но вы хотите использовать такие
программы как &man.send-pr.1;. Для пересылки почты вам потребуется
использовать почтовый сервер провайдера.Ваш компьютер является сервером, где почта не хранится локально,
необходима только переправка всей почты через внешний почтовый
сервер.Практически любой MTA способен работать и в
этих условиях. К сожалению, может быть очень сложно правильно настроить
полноценный MTA для работы только с исходящей
почтой. Такие программы, как sendmail
и postfix слишком избыточны для этих
целей.К тому же, если вы используете обычные средства доступа в
интернет, условий для запуска почтового сервера может
быть недостаточно.Простейшим способом удовлетворить имеющиеся потребности может быть
установка порта mail/ssmtp.
Выполните под root следующие команды:&prompt.root; cd /usr/ports/mail/ssmtp
&prompt.root; make install replace cleanПосле установки потребуется настроить
mail/ssmtp с помощью файла из
четырех строк, расположенного в
/usr/local/etc/ssmtp/ssmtp.conf:root=yourrealemail@example.com
mailhub=mail.example.com
rewriteDomain=example.com
hostname=_HOSTNAME_Убедитесь, что используете существующий почтовый адрес для
root. Введите сервер вашего провайдера для
пересылки исходящей почты вместо mail.example.com (некоторые провайдеры
называют его сервером исходящей почты или
SMTP сервером).Убедитесь, sendmail выключен путем
добавления строки sendmail_enable="NONE"
в /etc/rc.conf.У пакета mail/ssmtp имеются
и другие параметры. Обратитесь к файлу с примером настройки
в /usr/local/etc/ssmtp или к странице справочника
ssmtp за примерами и дополнительной
информацией.Установка ssmtp таким способом
позволит правильно работать любым программам на вашем компьютере,
которым требуется отправка почты, но не нарушит политику вашего
провайдера и не позволит вашему компьютеру быть использованным
спамерами.Использование почты с коммутируемым соединениемЕсли у вас есть статический IP, настройки по умолчанию менять
не потребуется. Установите имя хоста в соответствии с присвоенным
именем интернет и sendmail будет делать
свою работу.Если у вас динамический IP адрес и используется коммутируемое
PPP соединение с интернет, у вас возможно уже есть почтовый ящик
на сервере провайдера. Предположим, что домен провайдера называется
example.net, и что ваше
имя пользователя user, ваш компьютер называется
bsd.home, и провайдер сообщил вам, что
возможно использование relay.example.net в качестве сервера для пересылки
почты.Для получения почты из почтового ящика необходима установка
соответствующей программы. Хорошим выбором является
утилита fetchmail, она поддерживает
множество различных протоколов. Эта программа доступна в виде
пакета или из коллекции портов (mail/fetchmail). Обычно провайдер
предоставляет доступ по протоколу POP. Если
вы работаете с пользовательским PPP, то можете
автоматически забирать почту после установления соединения с
интернет с помощью следующей записи в
/etc/ppp/ppp.linkup:MYADDR:
!bg su user -c fetchmailЕсли вы используете sendmail (как
показано ниже) для доставки почты к не-локальным учетным записям,
вам возможно потребуется обработка почтовой очереди
sendmail сразу после установки
соединения с интернет. Для выполнения этой работы поместите
в /etc/ppp/ppp.linkup следующую команду
сразу после fetchmail: !bg su user -c "sendmail -q"Предполагается, что учетная запись для
user существует на bsd.home. В домашнем каталоге
user на bsd.home, создайте файл
.fetchmailrc:poll example.net protocol pop3 fetchall pass MySecretЭтот файл не должен быть доступен на чтение никому, кроме
user, поскольку в нем находится пароль
MySecret.Для отправки почты с правильным заголовком
from:, вам потребуется сообщить
sendmail использовать
user@example.net вместо
user@bsd.home. Вы можете также указать
sendmail отправлять почту через relay.example.net, для более быстрой пересылки
почты.Должен подойти следующий файл .mc:VERSIONID(`bsd.home.mc version 1.0')
OSTYPE(bsd4.4)dnl
FEATURE(nouucp)dnl
MAILER(local)dnl
MAILER(smtp)dnl
Cwlocalhost
Cwbsd.home
MASQUERADE_AS(`example.net')dnl
FEATURE(allmasquerade)dnl
FEATURE(masquerade_envelope)dnl
FEATURE(nocanonify)dnl
FEATURE(nodns)dnl
define(`SMART_HOST', `relay.example.net')
Dmbsd.home
define(`confDOMAIN_NAME',`bsd.home')dnl
define(`confDELIVERY_MODE',`deferred')dnlОбратитесь к предыдущему разделу за информацией о том, как
преобразовать этот файл .mc в файл
sendmail.cf. Не забудьте также перезапустить
sendmail после обновления
sendmail.cf.JamesGorhamНаписал SMTP аутентификацияНаличие SMTP аутентификации на почтовом сервере
дает множество преимуществ. SMTP аутентификация
может добавить дополнительный уровень безопасности к
sendmail, и позволяет мобильным пользователям,
подключающимся к разным хостам, возможность использовать тот же
почтовый сервер без необходимости перенастройки почтового клиента
при каждом подключении.Установите security/cyrus-sasl
из портов. Вы можете найти этот порт в
security/cyrus-sasl.
В пакете security/cyrus-sasl
есть множество параметров компиляции, и для используемого здесь
метода убедитесь, что выбран параметр
.После установки
security/cyrus-sasl,
отредактируйте /usr/local/lib/sasl/Sendmail.conf
(или создайте его если он не существует) и добавьте следующую
строку:pwcheck_method: passwdЭтот метод включит аутентификацию
sendmail через базу данных
passwd FreeBSD. Это позволяет избежать
проблем, связанных с созданием нового набора имен пользователей
и паролей для каждого пользователя, которому необходима
SMTP аутентификация, пароль для входа в систему
и для отправки почты будет одним и тем же.Теперь отредактируйте /etc/make.conf и
добавьте следующие строки:SENDMAIL_CFLAGS=-I/usr/local/include/sasl1 -DSASL
SENDMAIL_LDFLAGS=-L/usr/local/lib
SENDMAIL_LDADD=-lsaslЭти параметры необходимы sendmail
для подключения cyrus-sasl
во время компиляции. Убедитесь, что cyrus-sasl был установлен до
перекомпиляции sendmail.Перекомпилируйте sendmail, выполнив
следующие команды:&prompt.root; cd /usr/src/usr.sbin/sendmail
&prompt.root; make cleandir
&prompt.root; make obj
&prompt.root; make
&prompt.root; make installКомпиляция sendmail должна пройти
без проблем, если /usr/src не был сильно
изменен и доступны необходимые разделяемые библиотеки.После компилирования и переустановки
sendmail, отредактируйте файл
/etc/mail/freebsd.mc (или тот файл, который
используется в качестве .mc; многие
администраторы используют в качестве имени этого файла
вывод &man.hostname.1; для обеспечения уникальности).
Добавьте к нему следующие строки:dnl set SASL options
TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
define(`confDEF_AUTH_INFO', `/etc/mail/auth-info')dnlЭти параметры настраивают различные методы, доступные
sendmail для аутентификации пользователей.
Если вы хотите использовать вместо
pwcheck другой метод, обратитесь к
прилагаемой документации.Наконец, запустите &man.make.1; в каталоге
/etc/mail. Из файла
.mc будет создан файл
.cf, называющийся
freebsd.cf (или с тем именем, которое было
использовано для файла .mc). Затем
используйте команду make install restart,
которая скопирует файл в sendmail.cf,
и правильно перезапустит sendmail.
Дополнительная информация об этом процессе находится в
/etc/mail/Makefile.Если все шаги пройдены успешно, введите информацию для
аутентификации в настройки почтового клиента и отправьте тестовое
сообщение. Для определения причин возможных ошибок установите
параметр sendmail
в 13 и просмотрите
/var/log/maillog.Для включения сервиса после каждой загрузки системы вам может
потребоваться добавление в /etc/rc.conf
следующих строк:sasl_pwcheck_enable="YES"
sasl_pwcheck_program="/usr/local/sbin/pwcheck"Эти строки инициализируют SMTP_AUTH при загрузке
системы.За дальнейшей информацией обратитесь к странице
sendmail, посвященной
SMTP аутентификации.MarcSilverПредоставил Почтовые программы пользователейпочтовые программы пользователейПочтовая программа пользователя (Mail User Agent,
MUA) это приложение, используемое для отправки
и получения почты. Кроме того, поскольку почта
эволюционирует и становится более сложной,
MUA совершенствуют свои функции по обработке
почты, становятся более удобны в использовании. &os; поддерживает
множество различных пользовательских почтовых программ, каждая
из которых может быть легко установлена из коллекции портов FreeBSD. Пользователи могут
выбирать между графическими почтовыми клиентами, такими как
evolution или
balsa, консольными клиентами, такими
как mutt, pine
или mail, или веб интерфейсами, используемыми в
некоторых больших организациях.mailВ &os; в качестве MUA по умолчанию используется
&man.mail.1;. Это консольный MUA, предоставляющий
все основные функции, необходимые для отправки и получения текстовых
сообщений, хотя его возможности по работе с вложениями ограничены и
он может работать только с локальными почтовыми ящиками.Хотя mail не поддерживает работу с серверами
POP или IMAP, эти почтовые
ящики могут быть загружены в локальный файл mbox
с помощью fetchmail, который будет
обсуждаться далее в этой главе ().Для отправки и получения почты просто выполните команду
mail, как в этом примере:&prompt.user; mailСодержимое почтового ящика в каталоге
- /var/mail будет автоматически
+ /var/mail будет автоматически
прочитано утилитой mail. Если почтовый ящик
пуст, утилита завершит работу с сообщением о том, что почта не
была обнаружена. После чтения почтового ящика запустится
интерфейс программы и будет отображен список сообщений. Сообщения
нумеруются автоматически и будут выглядеть как в этом примере:Mail version 8.1 6/6/93. Type ? for help.
"/var/mail/marcs": 3 messages 3 new
>N 1 root@localhost Mon Mar 8 14:05 14/510 "test"
N 2 root@localhost Mon Mar 8 14:05 14/509 "user account"
N 3 root@localhost Mon Mar 8 14:05 14/509 "sample"Теперь сообщения могут быть прочитаны с помощью команды
t, завершаемой номером сообщения, которое должно
быть отображено. В этом примере мы прочтем первое сообщение:& t 1
Message 1:
From root@localhost Mon Mar 8 14:05:52 2004
X-Original-To: marcs@localhost
Delivered-To: marcs@localhost
To: marcs@localhost
Subject: test
Date: Mon, 8 Mar 2004 14:05:52 +0200 (SAST)
From: root@localhost (Charlie Root)
This is a test message, please reply if you receive it.Как видно в примере выше, клавиша t выводит
сообщение со всеми заголовками. Для повторного вывода
списка сообщений необходимо использовать клавишу
h.Если требуется ответить на сообщение, используйте для
ответа mail, нажав клавишу R или
r. Клавиша R используется в
mail для ответа только отправителю,
а r для ответа и отправителю, и другим получателям
сообщения. Вы можете также завершить эти команды номером письма,
на которое хотите составить ответ. После этого необходимо ввести
ответ, конец сообщения должен быть завершен символом
. на новой строке. Пример можно увидеть ниже:& R 1
To: root@localhost
Subject: Re: test
Thank you, I did get your email.
.
EOTДля отправки нового сообщения используйте клавишу
m и введите адрес получателя. Несколько получателей
могут быть указаны через запятую. Введите тему сообщения и
его содержимое. Конец сообщения отмечается помещением
символа . на новой строке.& mail root@localhost
Subject: I mastered mail
Now I can send and receive email using mail ... :)
.
EOTВ утилите mail для вызова справки в любой
момент может быть использована команда ?,
для получения помощи по mail необходимо также
обратиться к странице справочника &man.mail.1;.Как упоминалось выше, команда &man.mail.1; не была первоначально
предназначена для работы с вложениями, и поэтому их поддержка
довольно слабая. Современные MUA,
такие как mutt, работают с вложениями
гораздо более уверенно. Но если вы все же предпочитаете
использовать mail,
установите порт converters/mpack.muttmutt это небольшая но очень
мощная почтовая программа с отличными возможностями, в числе
которых:Возможность сортировки сообщений по дискуссиям;Поддержка PGP для подписи и шифрования сообщений;Поддержка MIME;Поддержка Maildir;Широкие возможности настройки.Все эти возможности делают
mutt одним из самых лучших почтовых
клиентов. Обратитесь к за
дополнительной информацией по mutt.Стабильная версия mutt может быть
установлена из порта mail/mutt.
После установки порта, mutt может
быть запущен следующей командой:&prompt.user; muttmutt автоматически прочтет содержимое
пользовательского почтового ящика в каталоге /var/mail и отобразит почту,
+ class="directory">/var/mail и отобразит почту,
если она имеется в наличии. Если почты в ящике пользователя нет,
mutt будет ожидать команд от пользователя.
В примере ниже показан mutt со
списком сообщений:Для чтения почты просто выберите сообщение с помощью клавиш
навигации и нажмите Enter. Пример
mutt, отображающего сообщение, показан
ниже:Как и команда &man.mail.1;, mutt
позволяет пользователям отвечать как только отправителю, так и всем
получателям. Для ответа только отправителю почты, используйте
клавишу r. Для группового ответа и отправителю
сообщения и всем получателям используйте клавишу
g.mutt использует &man.vi.1; в качестве
редактора для создания писем и ответа на них. Редактор можно
заменить путем создания или редактирования собственного
.muttrc в своем домашнем каталоге и установки
переменной .Для создания нового почтового сообщения нажмите
m. После введения темы
mutt запустит &man.vi.1; для создания
письма. Как только письмо будет завершено, сохраните его и закройте
vi, mutt продолжит
работу, отобразив окно с сообщением, которое должно быть отправлено.
Для отправки сообщения нажмите y. Пример окна с
сообщением показан ниже:mutt также содержит исчерпывающий
справочник, к которому можно обратиться из большинства меню,
нажав клавишу ?. Верхняя строка также показывает
клавиатурные сокращения, которые могут быть использованы.pinepine предназначен для начинающих
пользователей, но включает некоторые дополнительные
возможности.В программе pine ранее были обнаружены некоторые уязвимости,
позволяющие удаленному взломщику выполнять произвольный код
с правами пользователя локальной системы путем отправки
специально подготовленного письма. Все эти
известные проблемы были исправлены,
но код pine написан в очень небезопасном стиле и офицеры
безопасности &os; считают, что возможно наличие других
не обнаруженных уязвимостей. Имейте это ввиду при установке
pine.Текущая версия pine может быть
установлена из порта mail/pine4.
Как только порт установлен, pine можно
запустить командой:&prompt.user; pineПри первом запуске pine отображает
страницу приветствия с кратким введением, а также просьбу
команды разработчиков pine
отправить анонимное почтовое сообщение, позволяющее им
определить количество пользователей, работающих с их почтовым
клиентом. Для отправки анонимного сообщения нажмите
Enter, или E для выхода
из из приветствия без отправки анонимного сообщения. Пример
приветствия показан ниже:Затем отображается главное меню, перемещение по которому
осуществляется с помощью клавиш навигации. В главном меню
находятся ссылки для составления новых писем, просмотра почтовых
каталогов, и даже управления адресной книгой. Ниже главного меню
показаны клавиатурные сокращения, выполняющие
соответствующие задачи.По умолчанию pine открывает каталог
- inbox. Для просмотра списка
+ inbox. Для просмотра списка
сообщений нажмите I, или выберите
MESSAGE INDEX, как показано ниже:В списке показаны сообщения в текущем каталоге, они могут быть
просмотрены с помощью клавиш навигации. Подсвеченные сообщения
можно прочесть нажав Enter.На снимке экрана ниже показан пример письма, отображаемого
pine. Внизу экрана даны клавиатурные
сокращения. Например, r используется для
указания MUA ответить на отображаемое в
данный момент сообщение.Ответ на письмо в pine осуществляется
с помощью редактора pico, который
устанавливается по умолчанию вместе с pine.
pico упрощает навигацию в сообщении
гораздо проще для новых пользователей, чем &man.vi.1; или
&man.mail.1;. Как только ответ будет готов, сообщение можно отправить
нажав CtrlX.
pine запросит подтверждение.Программа pine может быть настроена
через пункт SETUP главного меню.
Обратитесь к странице
за дальнейшей информацией.MarcSilverПредоставил Использование fetchmailиспользование fetchmailfetchmail это полноценный
IMAP и POP клиент,
позволяющий пользователям автоматически загружать почту с
удаленных серверов IMAP и POP
в локальные почтовые ящики; так доступ к почтовым ящикам упрощается.
fetchmail может быть установлен из
порта mail/fetchmail и
предоставляет различные возможности, в том числе:Поддержка протоколов POP3,
APOP, KPOP,
IMAP, ETRN и
ODMR.Возможность пересылки почты через SMTP,
что позволяет использовать функции фильтрации, перенаправления и
синонимов.Может быт запущен в режиме даемона для периодической проверки
поступающих сообщений.Может забирать почту с нескольких почтовых ящиков и рассылать
ее различным локальным пользователям в зависимости от
настроек.Описание всех возможностей
fetchmail выходит за пределы этой главы,
за дополнительной информацией обратитесь к документации по
fetchmail. Утилита
fetchmail требует наличия
файла настройки .fetchmailrc. Этот файл
включает информацию о сервере, а также информацию для аутентификации.
Поскольку этот файл содержит важную информацию, правильно будет
сделать его доступным для чтения только владельцем с помощью
следующей команды:&prompt.user; chmod 600 .fetchmailrcВ следующем примере файл .fetchmailrc
предназначен для загрузки одного почтового ящика по протоколу
POP. Этот файл указывает
fetchmail соединиться с
example.com с именем пользователя
joesoap и паролем XXX.
В примере подразумевается, что пользователь joesoap
существует также и в локальной системе.poll example.com protocol pop3 username "joesoap" password "XXX"В следующем примере производится подключение к нескольким
POP и IMAP серверам,
при необходимости почта перенаправляется другим локальным
пользователям:poll example.com proto pop3:
user "joesoap", with password "XXX", is "jsoap" here;
user "andrea", with password "XXXX";
poll example2.net proto imap:
user "john", with password "XXXXX", is "myth" here;Утилита fetchmail может работать
в режиме даемона с флагом , заданным с
интервалом (в секундах), через который
fetchmail должен опрашивать
серверы, перечисленные в .fetchmailrc.
В следующем примере fetchmail будет
забирать почту каждые 60 секунд:&prompt.user; fetchmail -d 60Дополнительную информацию о fetchmail
можно найти на сайте .MarcSilverПредоставил Использование procmailиспользование procmailУтилита procmail это невероятно
мощное приложение, используемое для фильтрации входящей почты.
Она позволяет пользователям определять правила,
которые могут быть сопоставлены входящим письмам для выполнения
определенных действий или для перенаправления почты в
альтернативные почтовые ящики и/или на почтовые адреса.
procmail может быть установлен
с помощью порта mail/procmail.
После установки он может быть непосредственно интегрирован в
большинство MTA; сверьтесь с документацией
на ваш MTA. Другой способ интеграции
procmail – добавление в
файл .forward, находящийся в домашнем
каталоге пользователя, следующей строки:"|exec /usr/local/bin/procmail || exit 75"В этом разделе будут показаны основы настройки правил
procmail, а также краткое описание их
действия. Эти и другие правила должны быть помещены в файл
.procmailrc, который должен находиться в домашнем
каталоге пользователя.Большую часть этих правил также можно найти на странице справочника
&man.procmailex.5;.Перенаправление всей почты от user@example.com на
внешний адрес goodmail@example2.com::0
* ^From.*user@example.com
! goodmail@example2.comПеренаправление всей почты объемом меньше 1000 байт на внешний адрес
goodmail@example2.com::0
* < 1000
! goodmail@example2.comПеренаправление всей почты, отправляемой на
alternate@example.com, в почтовый ящик
alternate::0
* ^TOalternate@example.com
alternateПеренаправление всей почты с Spam в
/dev/null::0
^Subject:.*Spam
/dev/nullПолезный пример, обрабатывающий входящую почту со списков
рассылки &os;.org и
помещающий каждый список в отдельный почтовый ящик.:0
* ^Sender:.owner-freebsd-\/[^@]+@FreeBSD.ORG
{
LISTNAME=${MATCH}
:0
* LISTNAME??^\/[^@]+
FreeBSD-${MATCH}
}
diff --git a/ru_RU.KOI8-R/books/handbook/mirrors/chapter.sgml b/ru_RU.KOI8-R/books/handbook/mirrors/chapter.sgml
index bb4409036d..5b99cbdcb8 100644
--- a/ru_RU.KOI8-R/books/handbook/mirrors/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/mirrors/chapter.sgml
@@ -1,2870 +1,2856 @@
ДенисПеплинПеревод на русский язык: Получение FreeBSDИздатели CDROM и DVDКоробочная версияFreeBSD доступна в коробочной версии (FreeBSD CD диски,
дополнительное программное обеспечение, печатная документация) от
нескольких поставщиков:CompUSA
WWW: Frys Electronics
WWW: Наборы CD и DVDНаборы FreeBSD CD и DVD доступны у множества онлайн
поставщиков:BSD Mall (подразделение Daemon News)PO Box 161Nauvoo, IL62354USA
Телефон: +1 866 273-6255
Факс: +1 217 453-9956
Email: sales@bsdmall.com
WWW: BSD-Systems
Email: info@bsd-systems.co.uk
WWW: fastdiscs.com6 Eltham CloseLeeds, LS6 2TYUnited Kingdom
Телефон: +44 870 1995 171
Email: sales@fastdiscs.com
WWW: FreeBSD Mall, Inc.3623 Sanford StreetConcord, CA94520-1405США
Телефон: +1 925 674-0783
Факс: +1 925 674-0821
Email: info@freebsdmall.com
WWW: FreeBSD Services Ltd11 Lapwing CloseBicesterOX26 6XRВеликобритания
WWW: Hinner EDVSt. Augustinus-Str. 10D-81825MünchenГермания
Телефон: (089) 428 419
WWW: Ikarios22-24 rue Voltaire92000NanterreФранция
WWW: Ingram Micro1600 E. St. Andrew PlaceSanta Ana, CA92705-4926США
Телефон: 1 (800) 456-8000
WWW: JMC SoftwareИрландия
Телефон: 353 1 6291282
WWW: The Linux EmporiumHilliard House, Lester WayWallingfordOX10 9TAВеликобритания
Телефон: +44 1491 837010
Факс: +44 1491 837016
WWW: Linux System Labs Australia21 Ray DriveBalwyn NorthVIC - 3104Австралия
Телефон: +61 3 9857 5918
Факс: +61 3 9857 8974
WWW: LinuxCenter.Ruул. Галерная, 55Санкт-Петербург190000Россия
Телефон: +7-812-3125208
Email: info@linuxcenter.ru
WWW: UNIXDVD.COM LTD57 Primrose AvenueSheffieldS5 6FSВеликобритания
WWW: РаспространителиЕсли вы продавец и хотите заниматься FreeBSD CDROM,
пожалуйста свяжитесь с распространителем:Cylogistics809B Cuesta Dr., #2149Mountain View, CA94040США
Телефон: +1 650 694-4949
Факс: +1 650 694-4953
Email: sales@cylogistics.com
WWW: FreeBSD Services Ltd11 Lapwing CloseBicesterOX26 6XRВеликобритания
WWW: Kudzu, LLC7375 Washington Ave. S.Edina, MN55439США
Телефон: +1 952 947-0822
Факс: +1 952 947-0876
Email: sales@kudzuenterprises.comLinuxCenter.Ruул. Галерная, 55Санкт-Петербург190000Россия
Телефон: +7-812-3125208
Email: info@linuxcenter.ru
WWW: Navarre Corp7400 49th Ave SouthNew Hope, MN55428США
Телефон: +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ВведениеАнонимный 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.Использование анонимного 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 loginAt the prompt, enter the passwordanoncvs.
&prompt.user; cvs co ls
&prompt.user; cvs release -d ls
&prompt.user; cvs logoutИспользование SSH для извлечения дерева
src/:&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 loginAt the prompt, enter the passwordanoncvs.
&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 loginAt the prompt, enter the passwordanoncvs.
&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 loginAt the prompt, enter the passwordanoncvs.
&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.Использование CTMCTM это метод синхронизации удаленного
дерева исходных текстов с центральным. Он был разработан для
использования с деревом исходных текстов FreeBSD, хотя может
быть полезен и для других целей. На данный момент существует очень
немного (если она вообще существует) документации по процессу создания
дельта-файлов (deltas, разница между имеющимися и актуальными
исходными текстами), поэтому обратитесь в список рассылки
&a.ctm-users.name; за
дополнительной информацией, если захотите использовать
CTM для других целей.Зачем мне может понадобиться
CTM?CTM создаст для вас локальную копию
исходных текстов FreeBSD. Существует множество разновидностей
дерева исходных текстов. Захотите ли вы поддерживать все дерево
CVS или только одну из ветвей, CTM
может предоставить вам все необходимое. Если вы разработчик
FreeBSD, но ваше соединение по TCP/IP некачественное или
отсутствует, или же вы просто хотите, чтобы изменения автоматически
отправлялись вам, CTM предназначен
для вас. Вам потребуется получать до трех изменений в день для
наиболее активных ветвей. Они будут отправляться вам по электронной
почте. Размеры обновлений всегда поддерживаются настолько малыми,
насколько это возможно. Они обычно меньше 5K, хотя случается
(раз из десяти) достигают 10-50K и время от времени даже
100K или больше.Вам также потребуется узнать о различных особенностях работы
непосредственно с исходными текстами в разработке, вместо
готовых релизов. Это в частности относится к выбору исходных
текстов ветви -CURRENT. Рекомендуется прочесть материал
На переднем крае разработок.Что потребуется для использования
CTM?Вам потребуются две вещи: программа
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.
Нажмите на ссылку выше и следуйте инструкциям для подписки
на эту рассылку.Использование CTM в первый
разПеред тем, как вы сможете начать использование дельта-файлов
CTM, потребуется определить
исходную точку для последующего их применения.Сначала потребуется определить, что уже имеется.
Каждый может начать с пустого (empty) каталога.
Вы должны использовать дельта-файл Empty
для создания поддерживаемого CTM дерева.
Планируется распространение стартовых дельта-файлов
на CD, но на данный момент это не делается.Поскольку дерево исходных текстов может быть объемом в десятки
мегабайт, предпочтительно начать с каких-то уже имеющихся текстов.
Если у вас есть -RELEASE CD, распакуйте исходные тексты с него.
Это снизит объем передаваемых данных.Вы можете распознать стартовый дельта-файл
по символу X, добавляемому к номеру
(например, src-cur.3210XEmpty.gz).
Обозначение перед X соответствует имеющимся
исходным текстам. Empty это пустой каталог.
Как правило файл с Empty создается через каждые
100 дельта-файлов. Между прочем, эти файлы большие! От 70 до
;) мегабайт упакованных gzip данных это
обычный размер для XEmpty.Как только вы получили основной дельта-файл, потребуются также
все дельта-файлы с последующими номерами.Повседневное использование
CTMДля применения дельта-файлов, просто выполните:&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 в актуальном состоянии.Другие интересные возможности
CTMОпределение файлов, которые будут затронуты
обновлениемВы можете определить список изменений, которые
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 только если он
помечается как подходящий после обработки всех параметров
и .Дальнейшие планы для CTMМасса планов:Использовать какой-то из видов аутентификации в системе
CTM, позволяющий обнаружение
поддельных дат CTM.Доработать параметры CTM,
поскольку они могут ввести в заблуждение.РазноеСуществует набор дельта-файлов и для коллекции
ports, но интерес к нему пока не так
высок.Зеркала CTMCTM/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Если base каталог не существует, теперь подходящий момент
для его создания. Клиент cvsup не
запустится, если base каталог не существует.Различные настройки supfile:Существует еще одна строка, которая обычно должна
присутствовать в supfile:*default release=cvs delete use-rel-suffix compressrelease=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Файл refuseКак упомянуто выше, 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; наше стандартное расположение
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/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,
обратитесь к его справочной странице.Запуск CVSupТеперь вы готовы к тестированию обновления. Командная строка для
этого очень проста:&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;.Коллекции файлов CVSupКоллекции файлов, доступные через
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=cvsIRC утилиты.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=cvsKerberos и 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.Зеркала CVSupCVSup серверы для 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 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 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 использует имена тегов,
+ src использует имена тегов,
начинающиеся с RELENG_. Деревья
- ports и
- doc используют теги, имена
+ ports и
+ doc используют теги, имена
которых начинаются с RELEASE.
- Наконец, в дереве www
+ Наконец, в дереве www
нет специальных имен для релизов.RELENG_5_3_0_RELEASEFreeBSD 5.3RELENG_4_10_0_RELEASEFreeBSD 4.10RELENG_5_2_1_RELEASEFreeBSD 5.2.1RELENG_5_2_0_RELEASEFreeBSD 5.2RELENG_4_9_0_RELEASEFreeBSD 4.9RELENG_5_1_0_RELEASEFreeBSD 5.1RELENG_4_8_0_RELEASEFreeBSD 4.8RELENG_5_0_0_RELEASEFreeBSD 5.0RELENG_4_7_0_RELEASEFreeBSD 4.7RELENG_4_6_2_RELEASEFreeBSD 4.6.2RELENG_4_6_1_RELEASEFreeBSD 4.6.1RELENG_4_6_0_RELEASEFreeBSD 4.6RELENG_4_5_0_RELEASEFreeBSD 4.5RELENG_4_4_0_RELEASEFreeBSD 4.4RELENG_4_3_0_RELEASEFreeBSD 4.3RELENG_4_2_0_RELEASEFreeBSD 4.2RELENG_4_1_1_RELEASEFreeBSD 4.1.1RELENG_4_1_0_RELEASEFreeBSD 4.1RELENG_4_0_0_RELEASEFreeBSD 4.0RELENG_3_5_0_RELEASEFreeBSD-3.5RELENG_3_4_0_RELEASEFreeBSD-3.4RELENG_3_3_0_RELEASEFreeBSD-3.3RELENG_3_2_0_RELEASEFreeBSD-3.2RELENG_3_1_0_RELEASEFreeBSD-3.1RELENG_3_0_0_RELEASEFreeBSD-3.0RELENG_2_2_8_RELEASEFreeBSD-2.2.8RELENG_2_2_7_RELEASEFreeBSD-2.2.7RELENG_2_2_6_RELEASEFreeBSD-2.2.6RELENG_2_2_5_RELEASEFreeBSD-2.2.5RELENG_2_2_2_RELEASEFreeBSD-2.2.2RELENG_2_2_1_RELEASEFreeBSD-2.2.1RELENG_2_2_0_RELEASEFreeBSD-2.2.0AFS сайты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.sersync сайтыСледующие сайты организуют доступ к 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
сервера.
diff --git a/ru_RU.KOI8-R/books/handbook/multimedia/chapter.sgml b/ru_RU.KOI8-R/books/handbook/multimedia/chapter.sgml
index 3140f946ef..f8d45192b7 100644
--- a/ru_RU.KOI8-R/books/handbook/multimedia/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/multimedia/chapter.sgml
@@ -1,1904 +1,1906 @@
MosesMooreПредоставил АлександрКоваленкоПеревод на русский язык: ДенисПеплинМультимедиаКраткий обзорFreeBSD поддерживает большое количество различных звуковых
карт, что позволяет вам насладится высококачественным звуком. Также это
дает вам возможность записывать и воспроизводить звуковые файлы в формате
MPEG Audio Layer 3 (MP3), WAV, Ogg Vorbis, а также во множестве других
форматов. Коллекция Портов FreeBSD также содержит ряд приложений,
позволяющих редактировать записанные звуковые файлы, добавлять звуковые
эффекты, управлять подключенными MIDI устройствами.Также FreeBSD может поддерживать воспроизведение видеофайлов и DVD.
Количество приложений, позволяющих кодировать, преобразовывать и
воспроизводить различные форматы видео, существенно меньше
количества приложений для работы со звуком. Например, на время написания
этого документа в Коллекции Портов FreeBSD не существовало хорошего
приложения для преобразования видео, которое могло бы быть использовано
для преобразований между разными форматами, как, например, audio/sox. Впрочем, ситуация в этой области
меняется быстро.Эта глава описывает необходимые шаги для настройки вашей звуковой
карты. Настройка и установка X11 () уже охватывает вопросы, связанные с аппаратными
установками вашей видеокарты, хотя могут быть возможности
дополнительной настройки для улучшения воспроизведения.После прочтения этой главы вы будете знать:Как настроить систему так, чтобы звуковая карта была
опознана.Методы проверки работы звуковой карты при помощи тестовых
приложений.Как исправить проблемы, возникающие при работе со звуковыми
картами.Как прослушать и создать MP3 и другие форматы.Как X сервер поддерживает видео.Некоторые проигрыватели и кодировщики видео, которые показывают
хорошие результаты.Как воспроизвести DVD, .mpg и
.avi файлы.Как скопировать информацию с CD и DVD в файлы.Как настроить ТВ тюнер.Как настроить сканер.Прежде, чем начать читать эту главу вы должны:Знать как конфигурировать и устанавливать новое ядро
().Попытка смонтировать аудио CD при помощи команды
&man.mount.8; как минимум, сообщит об ошибке и, как максимум, может
привести к панике ядра. Эти носители имеют
специальные форматы, которые отличны от обычной файловой системы
ISO.MosesMooreПредоставил MarcFonvieilleРасширил для &os; 5.X Настройка звуковой картыНастройка системыPCIISAзвуковые картыПеред тем как начать, определите модель вашей карты,
процессор, который она использует, и интерфейс карты: PCI или ISA.
FreeBSD поддерживает множество разных PCI и ISA карт.
Сверьтесь со списком поддерживаемых аудио устройств в Информации об оборудовании,
чтобы проверить, поддерживается ли ваша карта. Этот документ также
содержит информацию о том, какой драйвер поддерживает вашу
карту.ядроконфигурацияДля того, чтобы использовать звуковую карту, вы должный загрузить
соответствующий драйвер устройства. Этого можно достигнуть двумя путями.
Простейший способ – это просто загрузить соответствующий вашей карте
модуль ядра используя &man.kldload.8;, что можно сделать или из командной
строки:&prompt.root; kldload snd_emu10k1или добавлением соответствующей строки к файлу
/boot/loader.conf:snd_emu10k1_load="YES"Эти примеры приведены для звуковой карты Creative
&soundblaster; Live!. Другие имеющиеся модули драйверов
звуковых карты приведены в
/boot/defaults/loader.conf
Если вы не уверены, какой драйвер использовать, попробуйте загрузить
snd_driver:&prompt.root; kldload snd_driverЭто мета-драйвер, загружающий сразу все наиболее распространенные
драйверы сразу. это повышает скорость поиска правильного драйвера.
Возможна также загрузка всех звуковых драйверов через
/boot/loader.conf.В &os; 4.X для загрузки всех звуковых драйверов вам будет
необходимо загрузить модуль snd вместо
snd_driver.Другой способ заключается в
добавлении статического драйвера в ядро. В разделе ниже дана
более подробная информация о том, что вам нужно сделать для добавления
поддержки оборудования. Более подробно о конфигурация ядра описана в
.Настройка собственного ядра с поддержкой звукаПервое, что необходимо сделать, это добавить в ядро
общий звуковой драйвер &man.sound.4;. Добавьте в
файл конфигурации ядра следующую строку:device soundВ &os; 4.X, вам необходимо использовать следующую
строку:device pcmЗатем необходимо добавить поддержку имеющейся звуковой
карты. Следовательно, нужно знать какой драйвер поддерживает
карту. Для этого сверьтесь со списком поддерживаемых
устройств из Информации об оборудовании.
Например, звуковая карта Creative &soundblaster; Live!
поддерживается драйвером &man.snd.emu10k1.4;.
Для добавления поддержки этой карты, используйте:device "snd_emu10k1"Прочтите страницу справочника драйвера, чтобы узнать,
какой синтаксис использовать. Информация, относящаяся
к синтаксису включения звуковых драйверов в файл конфигурации
ядра, может быть также найдена в файле
(/usr/src/sys/i386/conf/LINT для
&os; 4.X).Не-PnP ISA карты могут потребовать включения в ядро
информации о настройках звуковой карты (IRQ, I/O port,
и т.д.). Эта информация добавляется редактированием
файла /boot/device.hints.
Во время загрузки системы &man.loader.8; прочтет этот
файл и настройки ядру. Например, старая ISA не-PnP карта
Creative &soundblaster; 16 использует драйвер &man.snd.sbc.4;
со следующей строкой, добавленной к файлу настройки ядра:device sbcи со следующей информацией в
/boot/device.hints:hint.sbc.0.at="isa"
hint.sbc.0.port="0x220"
hint.sbc.0.irq="5"
hint.sbc.0.drq="1"
hint.sbc.0.flags="0x15"В данном случае, карта использует порт ввода-вывода
0x220 и IRQ 5.Синтаксис, используемый в файле
/boot/device.hints, описан в справочной
странице драйвера. В &os; 4.X эти настройки записываются
непосредственно в файл конфигурации ядра. В случае ISA
карты используется такая строка:device sbc0 at isa? port 0x220 irq 5 drq 1 flags 0x15Установки, приведенные выше, используются по умолчанию.
В некоторых случаях вам может потребоваться изменить IRQ
или другие настройки в соответствии с настройками карты.
За более подробной информацией обратитесь к странице справочника
&man.snd.sbc.4;.В &os; 4.X некоторые системы со встроенной в
материнскую плату звуковой картой могут потребовать
следующей строки в файле настройки ядра:options PNPBIOSТестирование звуковой картыПосле перезагрузки модифицированного ядра, или после загрузки
необходимого модуля, звуковая карта должна появиться в буфере
системных сообщений (&man.dmesg.8;) примерно так:pcm0: <Intel ICH3 (82801CA)> port 0xdc80-0xdcbf,0xd800-0xd8ff irq 5 at device 31.5 on pci0
pcm0: [GIANT-LOCKED]
pcm0: <Cirrus Logic CS4205 AC97 Codec>Статус звуковой карты может быт проверен через файл
/dev/sndstat:&prompt.root; cat /dev/sndstat
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <Intel ICH3 (82801CA)> at io 0xd800, 0xdc80 irq 5 bufsz 16384
kld snd_ich (1p/2r/0v channels duplex default)Вывод этой команды для вашей системы может отличаться.
Если устройства pcm не появились, вернитесь
назад и проверьте выполненные действия. Проверьте файл настройки
ядра еще раз и убедитесь, что выбрано подходящее устройство.
Часто встречающиеся проблемы приведены в .Если всё пройдет удачно, звуковая карта заработает. Если
CD-ROM или DVD-ROM привод правильно подключён к звуковой карте, вы можете
вставить CD в привод и воспроизвести его при помощи
&man.cdcontrol.1;.&prompt.user; cdcontrol -f /dev/acd0 play 1Различные приложения, например audio/workman может предоставить
более дружественный
пользователю интерфейс. Вы можете также установить
приложения для прослушивания звуковых файлов MP3, как например
audio/mpg123. Быстрым способом
тестирования звуковой карты является отправка данных в
файл /dev/dsp, как здесь:&prompt.user; cat filename > /dev/dspгде filename может быть любым
файлом. Результатом выполнения этой команды станет шум,
который означает, что звуковая карта на самом деле
работает.Пользователям &os; 4.X потребуется создать устройства
звуковой карты перед тем, как ее использовать. Если в буфере
системных сообщений карта появилась как
pcm0, вам необходимо выполнить от
root следующее:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV snd0Если карта обнаружена как pcm1,
выполните то же самое, заменив
snd0 на
snd1.MAKEDEV создаст группу файлов устройств,
которые будут использоваться различными звуковыми
приложениями.Уровни громкости звука могут быть изменены командой &man.mixer.8;.
Более подробная информация находится на странице справочной системы
&man.mixer.8;.Часто встречающиеся проблемыфайлы устройствпорт ввода-выводаIRQDSPОшибкаРешениеunsupported subdevice XXОдно или более устройств не были правильно
созданы. Повторите приведенные выше шаги.sb_dspwr(XX) timed outПорт ввода-вывода указан неправильно.bad irq XXIRQ установлен неправильно. Убедитесь, что
настройки в системе и на карте одинаковы.xxx: gus pcm not attached, out of
memoryДля использования устройства недостаточно
памяти.xxx: can't open /dev/dsp!Проверьте с помощью fstat | grep
dsp, не занято ли устройство другим приложением.
Создать проблемы могут esound и
поддержка звука в KDE.MunishChopraПредоставил Использование нескольких источников звукаДостаточно часто встречается необходимость иметь несколько источников
звука, которые должны воспроизводить одновременно, например когда
esound или artsd не
поддерживают совместное использование звукового устройства с некоторым
приложением.FreeBSD позволяет делать это при помощи виртуальных
звуковых каналов, которые могут быть настроены с помощью
&man.sysctl.8;. Виртуальные каналы позволяют вам мультиплексировать
каналы воспроизведения звуковой карты, смешивая звук в ядре.Для установки количества виртуальных каналов вы можете использовать
две переменные sysctl, которые, если вы пользователь root,
могут быть установлены таким образом:&prompt.root; sysctl hw.snd.pcm0.vchans=4
&prompt.root; sysctl hw.snd.maxautovchans=4В этом примере выделяются четыре виртуальных канала, чего вполне
достаточно для повседневного использования.
hw.snd.pcm0.vchans это количество виртуальных каналов
устройства pcm0, оно может быть установлено сразу
же, как только устройство было подключено.
hw.snd.maxautovchans это количество виртуальных
каналов, которые выделяются новому аудио устройству, когда оно
подключается при помощи &man.kldload.8;. Так как модуль
pcm может быть загружен независимо от аппаратных
драйверов, hw.snd.maxautovchans может указывать
количество виртуальных каналов для любых устройств, которые будут подключены
позже.Если вы не используете &man.devfs.5;, необходимо будет указать
приложениям
/dev/dsp0.x, где
x это число от 0 до 3, если
hw.snd.pcm0.vchans установлено в значение 4. Для
системы, использующей &man.devfs.5;, вышеуказанные настройки будут
сделаны автоматически прозрачно для пользователя.JosefEl-RayesПредоставил Установка значений по умолчанию для каналов mixerЗначения по умолчанию для различных каналов mixer жестко
прописаны в исходных текстах драйвера &man.pcm.4;. Существует
множество различных приложений и даемонов, которые позволяют
устанавливать значения для mixer, которые они запоминают
и выставляют каждый раз при запуске, но это не совсем
правильное решение, нам нужны значения по умолчанию на уровне
драйвера. Они могут быть установлены путем указания
в /boot/device.hints. Например:hint.pcm.0.vol="100"Установит значение для канала volume в значение по умолчанию
100, как только будет загружен модуль &man.pcm.4;.Только &os; 5.3 и более свежие релизы поддерживают
эту возможность.ChernLeeПредоставил Звук MP3MP3 (MPEG Layer 3 Audio) достигает качества звука, близкого к CD, и
нет причин не воспользоваться им на вашей рабочей
станции.Проигрыватели MP3На данный момент наиболее популярным MP3-проигрывателем для
&xfree86; является
XMMS (X Multimedia System). Скины приложения
WinAMP могут быть использованы для
XMMS так как графический интерфейс
пользователя практически идентичен интерфейсу программы
WinAMP от Nullsoft.
XMMS поддерживает также собственные
расширения.XMMS может быть установлен из порта или
пакета multimedia/xmms.Интерфейс XMMS интуитивно понятен и
включает в себя список песен, графический эквалайзер и многое другое.
Те, кто знаком с WinAMP найдут
XMMS очень простым в использовании.Порт audio/mpg123 является
альтернативой, это MP3-проигрыватель для командной строки.mpg123 может быть запущен с указанием
звукового устройства и файла MP3 в командной строке как показано
ниже:&prompt.root; mpg123 -a /dev/dsp1.0 Foobar-GreatestHits.mp3
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3.
Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp.
Uses code from various people. See 'README' for more!
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!
Playing MPEG stream from Foobar-GreatestHits.mp3 ...
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo
/dev/dsp1.0 должно быть заменено соответствующим
устройством dsp для вашей системы.Копирование аудио дорожек с CDПеред тем как преобразовывать CD или дорожку CD в MP3, аудио данные
на CD должны быть скопированы на жёсткий диск. Это можно сделать путём
копирования данных CDDA (CD Digital Audio) в файл WAV.Утилита cdda2wav, которая является частью пакета
sysutils/cdrtools, может быть
использована для копирования аудио информации с CD, а также различной
связанной информации.Когда музыкальный CD находится в приводе, следующая команда может
быть выполнена под root для того,
чтобы скопировать весь CD в отдельные (один на каждую дорожку) WAV
файлы:&prompt.root; cdda2wav -D 0,1,0 -Bcdda2wav поддерживает ATAPI (IDE)
приводы CDROM. Для копирования с IDE привода, укажите имя устройства
вместо номеров SCSI. Например, для того, чтобы скопировать 7-ую
аудио дорожку с IDE-привода:&prompt.root; cdda2wav -D /dev/acd0a -t 7Параметр
указывает устройство SCSI 0,1,0,
соответственно результату работы cdrecord
-scanbus.Для того, чтобы копировать отдельные дорожки, используйте параметр
как показано ниже:&prompt.root; cdda2wav -D 0,1,0 -t 7Этот пример показывает как скопировать 7-ю дорожку музыкального CD.
Для того чтобы скопировать набор дорожек, например, с первой по
седьмую, укажите диапазон:&prompt.root; cdda2wav -D 0,1,0 -t 1+7Утилита &man.dd.1; также может быть использована для копирования
аудио дорожек на приводах ATAPI, для того, чтобы узнать больше об этом,
прочитайте .Создание (encoding) файлов MP3На сегодняшний день наилучшим выбором программы для создания mp3
является lame.
Lame находится в дереве портов в подкаталоге
audio/lame.Используя скопированные файлы WAV следующая команда преобразует
audio01.wav в
audio01.mp3:&prompt.root; lame -h -b 128 \
--tt "Foo Song Title" \
--ta "FooBar Artist" \
--tl "FooBar Album" \
--ty "2001" \
--tc "Ripped and encoded by Foo" \
--tg "Genre" \
audio01.wav audio01.mp3Частота 128 килобит является стандартом "де факто" для MP3. Многие,
однако, используют более высокие частоты для получения лучшего
качества, 160 или 192 килобита. Чем выше частота, тем больше дискового
пространства будет занимать получаемый MP3, но качество будет выше.
Параметр включает режим лучшее качество, но
меньше скорость. Параметры, начинающиеся с
указывают теги ID3, которые обычно содержат информацию о песне,
включаемую в файл MP3. О дополнительных настройках преобразования можно
узнать, прочитав страницу руководства lame.Декодирование MP3Для того, чтобы записать музыкальный CD из файлов MP3, они должны
быть преобразованы в несжатый формат WAV. Как
XMMS, так и
mpg123 поддерживают вывод MP3 в
распакованный формат файлов.Запись на диск в XMMS:Запустите XMMS:Нажмите правой кнопкой мыши в главном окне
XMMS для того, чтобы показать меню.Выберите Preferences (либо
Свойства, если у вас локализованная версия
XMMS) в
Options.Измените расширение вывода на Disk Writer Plugin
(или Расширение записи на диск, если у вас
локализованная версия XMMS).Нажмите Configure (или
Настройка, если у вас локализованная версия
XMMS).Введите (или выберите при помощи обзора) каталог, в который
следует сохранять распакованные файлы.Загрузите файл MP3 в XMMS как вы это
делаете обычно. Установите громкость на 100% и отключите
эквалайзер.Нажмите Воспроизвести —
XMMS будет выглядеть так же как и при
обычном воспроизведении MP3, но самой музыки слышно не будет. На
самом деле MP3 воспроизводится в файл.Убедитесь, что вы установили расширение вывода таким, как оно
было до этого, для того, чтобы снова слушать MP3.Запись в stdout в mpg123:Запустите mpg123 -s audio01.mp3 > audio01.pcmXMMS записывает файл в формате WAV, в то
время как mpg123 преобразовывает MP3 в
простые аудио данные PCM. Оба формата могут быть использованы
cdrecord для создания музыкальных
CD.
Для использования &man.burncd.8; вам потребуются простые аудио данные
PCM. Если же вы будете использовать файлы в формате WAV, то заметите
небольшой щелчок в начале каждой аудио дорожки, этот щелчок - заголовок
файла в формате WAV. Вы очень просто можете избавиться от него путём
удаления заголовка WAV при помощи утилиты
SoX (она может быть установлена из порта
audio/sox или соответствующего
пакета:&prompt.user; sox -t wav -r 44100 -s -w -c 2 track.wav track.rawПрочтите для того, чтобы узнать
больше о записи CD в FreeBSD.RossLippertПредоставил Воспроизведение видеоВоспроизведение видео является очень новой и быстро развивающейся
областью применения. Будьте терпеливы. Не всё будет работать так
беспроблемно, как это было со звуком.Прежде, чем вы начнёте, определите модель видеокарты и
чипсет, который она использует. Хотя &xorg;
и &xfree86;
поддерживают множество различных видеокарт, только их малая часть
показывает хорошую скорость воспроизведения видео. Для того, чтобы
получить список расширений, поддерживаемых X-сервером, который
используется вашей видеокартой, используйте команду &man.xdpyinfo.1; во
время работы X11.Неплохо также иметь небольшой файл MPEG, который бы использовался
как тестовый файл для проверки различных проигрывателей и настроек. Так
как некоторые проигрыватели DVD будут искать носитель DVD как
/dev/dvd по умолчанию или быть жёстко настроены
на него, возможно будет полезно сделать символические ссылки на
правильные устройства:&prompt.root; ln -sf /dev/acd0c /dev/dvd
&prompt.root; ln -sf /dev/racd0c /dev/rdvdДля FreeBSD 5.X, которая использует &man.devfs.5; рекомендуется
немного другой набор ссылок:&prompt.root; ln -sf /dev/acd0 /dev/dvd
&prompt.root; ln -sf /dev/acd0 /dev/rdvdОбратите внимание, природа &man.devfs.5; такова, что такие созданные
вручную ссылки не сохраняются при перезагрузке системы. Для
автоматического создания символических ссылок при каждой загрузке
системы добавьте в /etc/devfs.conf
следующие строки:link acd0 dvd
link acd0 rdvdКроме того, декодирование DVD требует доступа к специальным
функциям DVD-ROM, поэтому должен быть доступ на запись для устройств
DVD.параметры ядраoptions CPU_ENABLE_SSEпараметры ядраoptions USER_LDTНекоторые из обсуждаемых портов полагаются на наличие некоторых
параметров ядра для правильной сборки. Перед тем, как собирать порты,
добавьте эти параметры в файл конфигурации ядра, пересоберите ядро и
перезагрузите систему:option CPU_ENABLE_SSE
option USER_LDToption USER_LDT в &os; 5.X
не существует.Для того, чтобы улучшить работу разделяемой памяти X11,
рекомендуется увеличить значения некоторых переменных
&man.sysctl.8;:kern.ipc.shmmax=67108864
kern.ipc.shmall=32768Определение возможностей видеоXVideoSDLDGAСуществует несколько возможных путей отображения видео под X11. Что
именно будет действительно работать, во многом зависит от аппаратного
обеспечения. Каждый из описанных методов будет работать с различным
качеством
на разном аппаратном обеспечении. Во-вторых, воспроизведение видео в
X11, это тема, которой уделяется достаточно много внимания последнее
время, и с каждой новой версией &xorg;
или &xfree86; могут
наблюдаться значительные улучшения.Список наиболее часто используемых видеоинтерфейсов:X11: обычный вывод X11 с использованием разделяемой памяти.XVideo: расширение интерфейса X11, которое поддерживает видео в
любом объекте X11.SDL: the Simple Directmedia Layer.DGA: the Direct Graphics Access — Прямой Доступ для
Графики.SVGAlib: низкоуровневый доступ к графике на консоли.XVideo&xorg; и
&xfree86; 4.X включают в себя
расширение, называющееся XVideo (также известное
как Xvideo, Xv и xv), которое позволяет отображать видео прямо на
объектах при помощи специального ускорения. Это расширение
предоставляет очень хорошее качество воспроизведения даже на low-end
машинах.Для того чтобы проверить, работает ли это расширение, используйте
команду xvinfo:&prompt.user; xvinfoXVideo поддерживается вашей видеокартой, если результат выглядит приблизительно так:X-Video Extension version 2.2
screen #0
Adaptor #0: "Savage Streams Engine"
number of ports: 1
port base: 43
operations supported: PutImage
supported visuals:
depth 16, visualID 0x22
depth 16, visualID 0x23
number of attributes: 5
"XV_COLORKEY" (range 0 to 16777215)
client settable attribute
client gettable attribute (current value is 2110)
"XV_BRIGHTNESS" (range -128 to 127)
client settable attribute
client gettable attribute (current value is 0)
"XV_CONTRAST" (range 0 to 255)
client settable attribute
client gettable attribute (current value is 128)
"XV_SATURATION" (range 0 to 255)
client settable attribute
client gettable attribute (current value is 128)
"XV_HUE" (range -180 to 180)
client settable attribute
client gettable attribute (current value is 0)
maximum XvImage size: 1024 x 1024
Number of image formats: 7
id: 0x32595559 (YUY2)
guid: 59555932-0000-0010-8000-00aa00389b71
bits per pixel: 16
number of planes: 1
type: YUV (packed)
id: 0x32315659 (YV12)
guid: 59563132-0000-0010-8000-00aa00389b71
bits per pixel: 12
number of planes: 3
type: YUV (planar)
id: 0x30323449 (I420)
guid: 49343230-0000-0010-8000-00aa00389b71
bits per pixel: 12
number of planes: 3
type: YUV (planar)
id: 0x36315652 (RV16)
guid: 52563135-0000-0000-0000-000000000000
bits per pixel: 16
number of planes: 1
type: RGB (packed)
depth: 0
red, green, blue masks: 0x1f, 0x3e0, 0x7c00
id: 0x35315652 (RV15)
guid: 52563136-0000-0000-0000-000000000000
bits per pixel: 16
number of planes: 1
type: RGB (packed)
depth: 0
red, green, blue masks: 0x1f, 0x7e0, 0xf800
id: 0x31313259 (Y211)
guid: 59323131-0000-0010-8000-00aa00389b71
bits per pixel: 6
number of planes: 3
type: YUV (packed)
id: 0x0
guid: 00000000-0000-0000-0000-000000000000
bits per pixel: 0
number of planes: 0
type: RGB (packed)
depth: 1
red, green, blue masks: 0x0, 0x0, 0x0Следует заметить, что перечисленные форматы (YUV2, YUV12 и т.п.) не
присутствуют в каждой реализации XVideo и их отсутствие может быть
помехой для некоторых проигрывателей.Если результат выглядит так:X-Video Extension version 2.2
screen #0
no adaptors presentто, возможно, XVideo не поддерживается для вашей видеокарты.Если XVideo не поддерживается вашей видеокартой, то это всего лишь
означает, что будет сложнее получить приемлемые для воспроизведения
видео вычислительные мощности. В зависимости от вашей видеокарты и
процессора, возможно, вы сможете получить удовлетворительный результат.
Возможно, вы должны будете прочитать о путях улучшения
производительности здесь: .Simple Directmedia LayerSDL был задуман как уровень абстракции для разработки
кросплатформенных приложений под µsoft.windows;, BeOS и &unix;, позволяя
им эффективно использовать звук и графику. SDL предоставляет
низкоуровневые абстракции для аппаратного обеспечения, что, зачастую,
может быть более эффективным чем интерфейс X11.SDL есть в Коллекции портов FreeBSD: devel/sdl12.Прямой доступ для графики (DGA)DGA это расширение &xfree86; которое позволяет программам напрямую
изменять кадровый буфер (framebuffer) без участия X-сервера. Поскольку
DGA основывается на низкоуровневом доступе к памяти, программы, которые
используют его должны исполняться от пользователя
root.Расширение DGA может быть протестировано при помощи &man.dga.1;.
Когда dga запущена, она изменяет цвета на экране при
каждом нажатии клавиш. Для того, чтобы выйти из неё, используйте
q.Порты и пакеты для работы с видеовидео портывидео пакетыЭтот раздел обсуждает программное обеспечение для работы с видео
из Коллекции Портов FreeBSD. Воспроизведение видео является
очень активной сферой разработок программного обеспечения и возможности
различных приложений могут несколько отличаться от описанных
здесь.Во-первых, важно помнить, что многие приложения для работы с
видео, которые работают на FreeBSD, были разработаны как приложения
Linux. Многие из этих приложений все еще бета-качества. Вот
некоторые проблемы, которые могут встретиться в работе видео
пакетов на FreeBSD:Приложение не может воспроизвести файл, который создало другое
приложение.Приложение не может воспроизвести файл, который создало
само.Одно и то же приложение на разных машинах, скомпилированное на
каждой машине специально для неё, воспроизводит один и тот же файл
различно.Кажущийся тривиальным фильтр, например фильтр изменения размеров
изображения, приводит к очень плохим артефактам из-за
неправильной функции изменения размера.Приложение часто не работает (оставляет core-файл).Документация не устанавливается вместе с портом и может быть
найдена лишь на сайте или в каталоге порта
- work.
+ work.
Многие из этих приложений могут также проявлять
линуксизмы. Так, это могут быть
некоторые проблемы, связанные со способом реализации некоторых
стандартных библиотек в дистрибутивах Linux, или некоторыми
дополнительными возможностями ядра Linux, которые авторы приложений
посчитали существующими везде. Эти проблемы не всегда могут быть
обнаружены людьми,
поддерживающими порт (порты), вследствие чего могут возникнуть проблемы,
сходные с нижеперечисленными:Использование /proc/cpuinfo для того, чтобы
определить характеристики процессора.Неправильное использование нитей (threads), которое может
привести к зависанию программы при завершении вместо нормального
выхода.Программного обеспечения, которое обычно используется совместно
с данным приложением, ещё нет в Коллекции Портов FreeBSD.Таким образом, разработчики этих приложений должны сотрудничать с
людьми, поддерживающими порты, для того, чтобы минимизировать количество
обходных путей, необходимых для портирования.MPlayerMPlayer это недавно разработанный и
быстро развивающийся проигрыватель видео. Задачами команды
разработчиков MPlayer являются скорость и
гибкость при работе на Linux и других Unix-системах. Проект был начал,
когда его основатель стал сыт по горло плохой производительностью и
качеством проигрывателей того времени. Некоторые могут сказать, что
графический интерфейс был принесён в жертву рационализированному
дизайну. Однако, как
только вы привыкнете к опциям командной строки MPlayer и его управлению
с клавиатуры, всё будет хорошо.Компиляция MPlayerMPlayerсборкаMPlayer находится в multimedia/mplayer. MPlayer производит
различные тесты аппаратного обеспечения во время процесса компиляции,
в результате чего полученные исполняемые модули не могут быть
перенесены с одной системы на другую. Поэтому важно собирать его из
портов, а не использовать бинарный пакет. Также, при сборке вы можете
указать различные установки при помощи параметров командной строки
make, как описывается в
Makefile в начале сборки:&prompt.root; cd /usr/ports/multimedia/mplayer
&prompt.root; make
N - O - T - E
Take a careful look into the Makefile in order
to learn how to tune mplayer towards you personal preferences!
For example,
make WITH_GTK1
builds MPlayer with GTK1-GUI support.
If you want to use the GUI, you can either install
/usr/ports/multimedia/mplayer-skins
or download official skin collections from
http://www.mplayerhq.hu/homepage/dload.html
Параметры порта по умолчанию должны подходить большинству
пользователей. Однако, если вам необходим кодек XviD,
необходимо указать в командной строке параметр
WITH_XVID. Устройство
DVD по умолчанию также может быть указано в командной
строке параметром WITH_DVD_DEVICE,
по умолчанию используется /dev/acd0.На время написания данного документа порт
MPlayer'а собирает и устанавливает свою
документацию в формате HTML и два исполняемых файла,
mplayer и mencoder,
который является утилитой для перекодировки видео.Документация к MPlayer очень
информативна. Если читатель найдет информацию этой главы о аппаратном
обеспечении для поддержки видео и интерфейсам недостаточной, то
документация MPlayer будет очень
хорошим дополнением. Обязательно уделите время
чтению документации MPlayer, если вам
нужна информация о поддержке видео под &unix;.Использование MPlayerMPlayerиспользованиеКаждый пользователь MPlayer должен
создать подкаталог .mplayer в своем домашнем
каталоге. Для того, чтобы его создать, выполните следующие
действия:&prompt.user; cd /usr/ports/multimedia/mplayer
&prompt.user; make install-userПараметры для mplayer перечислены в страничке
руководства mplayer. За более подробной информацией вы можете обратиться
к документации в формате HTML. В этом разделе мы опишем несколько самых
распространённых случаев использования mplayer.Для того, чтобы воспроизвести файл, например
testfile.avi через один из многих видеоинтерфейсов,
используйте параметр :&prompt.user; mplayer -vo xv testfile.avi&prompt.user; mplayer -vo sdl testfile.avi&prompt.user; mplayer -vo x11 testfile.avi&prompt.root; mplayer -vo dga testfile.avi&prompt.root; mplayer -vo 'sdl:dga' testfile.aviСтоит испробовать все варианты интерфейсов, так как их
производительность зависит от множества факторов и будет заметно меняться
в зависимости от аппаратного обеспечения.Для того, чтобы воспроизвести DVD, замените
testfile.avi на , где N является номером
дорожки, с которой следует начать воспроизведение и
DEVICE файл устройства
привода DVD. Например, для того, чтобы воспроизвести дорожку 3 с
/dev/dvd:&prompt.root; mplayer -vo xv dvd://3 -dvd-device /dev/dvdУстройство DVD по умолчанию может быть определено во время
сборки порта MPlayer параметром
WITH_DVD_DEVICE. По умолчанию,
это устройство /dev/acd0. Дополнительную
информацию можно найти в Makefile порта.Для того, чтобы остановить, приостановить или продолжить
воспроизведение, воспользуйтесь привязкой клавиш, информация о которой
может быть получена посредством запуска mplayer -h, либо
на страничке документации.Дополнительные, достаточно важные параметры воспроизведения:
, которые включают полноэкранный режим и
, который улучшает производительность на
медленных системах.Для того, чтобы командная строка запуска mplayer не становилась
слишком большой, пользователь может создать файл
.mplayer/config и установить параметры по умолчанию
там:vo=xv
fs=yes
zoom=yesТакже mplayer может быть использован для
копирования дорожек DVD в .vob файлы. Для того,
чтобы скопировать вторую дорожку DVD необходимо выполнить следующую
команду:&prompt.root; mplayer -dumpstream -dumpfile out.vob dvd://2 -dvd-device /dev/dvdПолученный файл, out.vob, будет представлять
собой MPEG, с которым можно производить различные действия при помощи
программ, которые будут описаны далее в этом разделе.mencodermencoderПеред использованием
mencoder, было бы
неплохо ближе ознакомится с его параметрами, используя документацию в
формате HTML. Также существует страничка справочника mplayer, но она не
очень полезна без HTML документации. Существует бесчисленное множество
способов улучшения качества, снижения битрейта и изменения формата; и
некоторые из этих приёмов могут влиять на производительность. Ниже
приведено несколько примеров использования mencoder.
Во-первых, простое копирование:&prompt.user; mencoder input.avi -oac copy -ovc copy -o output.aviНеправильная комбинация параметров командной строки привести к
появлению файлов, которые невозможно будет
воспроизвести даже mplayer. Поэтому, если вы хотите
скопировать в файл, лучше использовать только параметр
mplayer .Для того, чтобы преобразовать input.avi в MPEG4
со звуком в формате MPEG Audio Layer 3 (MP3) (требуется audio/lame):&prompt.user; mencoder input.avi -oac mp3lame -lameopts br=192 \
-ovc lavc -lavcopts vcodec=mpeg4:vhq -o output.aviЭта команда создаст файл, воспроизводимый mplayer
и xine.input.avi может быть заменён на
и
mplayer, запущенный от
пользователя root, будет преобразовывать дорожку DVD
напрямую. Так как первый раз, скорее всего, вы будете недовольны
полученными результатами, всё же рекомендуется копировать
дорожку в файл и работать затем с файлом.Проигрыватель хinexine - это большой проект, в задачи
которого входит не только создание решения для видео все-в-одном, но и
создание базовой библиотеки с возможностью расширения возможностей путем
использования плагинов (расширений). Поставляется он как в виде порта,
так и в виде пакета, multimedia/xine.xine все еще несовершенен, но, все-таки это
хорошее начало. На практике xine требует либо
быстрого процессора с быстрой видеокартой или поддержку расширения
XVideo. Графический интерфейс можно использовать, но он все еще немного
неуклюж.На время написания этого документа в поставке
xine не существовало модуля ввода, который бы
мог воспроизводить DVD, закодированные по алгоритму CSS. Существуют
сборки, в которых есть такой модуль, но ни одна из них не входит в
Коллекцию Портов FreeBSD.По сравнению с MPlayer,
xine является более дружелюбным к
пользователю, но, в то же время, скрывает более тонкие настройки и
управление от пользователя. Также xine лучше
работает на XVideo интерфейсах.По умолчанию, xine запускается с
графическим интерфейсом. Для открытия файлов используются меню.&prompt.user; xineВ качестве альтернативы можно использовать его для запуска файла
непосредственно, без GUI, следующей командой:&prompt.user; xine -g -p mymovie.aviУтилиты transcodeПриложение transcode не является
проигрывателем. Это набор инструментов для преобразования
.avi и .mpg файлов. При помощи
transcode можно объединять видеофайлы,
исправлять поврежденные файлы, использовать инструменты командной строки
для работы с потоками ввода/вывода
stdin/stdout.Так же, как и MPlayer,
transcode является очень экспериментальным
программным продуктом, который необходимо собирать из порта multimedia/transcode. Этот порт имеет огромное
количество параметров для команды make при сборке.
Рекомендуется:&prompt.root; make WITH_LIBMPEG2=yesЕсли вы планируете установить multimedia/avifile, то добавьте параметр
WITH_AVIFILE в строку запуска make
как показано ниже:&prompt.root; make WITH_AVIFILE=yes WITH_LIBMPEG2=yesНиже приводятся два примера использования
transcode для преобразования видео, в результате
которого изменяется размер изображения. Первый пример преобразовывает
данные в openDIVX AVI файл, в то время как второй использует более
переносимый формат MPEG.&prompt.user; transcode -i input.vob -x vob -V -Z 320x240 \
-y opendivx -N 0x55 -o output.avi&prompt.user; transcode -i input.vob -x vob -V -Z 320x240 \
-y mpeg -N 0x55 -o output.tmp
&prompt.user; tcmplex -o output.mpg -i output.tmp.m1v -p output.tmp.mpa -m 1Существует страничка справочника для transcode, но
для различных утилит tc* (таких как
tcmplex), которые тоже устанавливаются в систему,
документации очень немного. Тем не менее, для получение краткой справки
по использованию команд, может быть задан параметр
.По сравнению с mencoder,
transcode работает заметно медленнее, но имеет больше
шансов создать более переносимый файл, который можно будет воспроизвести
на большем количестве систем. Например MPEG,
созданные при помощи transcode, воспроизводятся в
&windows.media; Player и Apple
&quicktime;.Дальнейшее чтениеРазличные пакеты видео программ для FreeBSD интенсивно
разрабатываются. Очень возможно, что в ближайшем будущем
многие обсуждаемые здесь проблемы разрешатся. Это займет время, и те, кто
желает получить максимум от аудио/видео возможностей FreeBSD, должны
будут собирать необходимые знания из нескольких списков часто задаваемых
вопросов и обучающих статей, а также использовать различные
приложения. Этот раздел существует для того, чтобы читатель мог получить
указания на несколько источников дополнительной информации.Документация
MPlayer очень содержательна в
техническом плане. Возможно, эти документы должны использоваться любым
человеком, желающим получить высокий уровень знаний о видео на &unix;
системах. Список рассылки MPlayer враждебен
для любого, кто не потрудился прочитать документацию, так что, если у вас
есть желание сообщать о найденных ошибках, прочитайте вначале
документацию.xine
HOWTO содержит главу об улучшении производительности, которая
применима к любому проигрывателю.Наконец, существует несколько многообещающих приложений, которые
читатель может испробовать:Avifile,
для которого также существует порт multimedia/avifile.Ogle, для
которого также существует порт multimedia/ogle.Xtheatermultimedia/dvdauthor, пакет с открытыми
текстами для распространения DVD контента.JosefEl-RayesПервоначально предоставил MarcFonvieilleУлучшил и адаптировал Настройка ТВ тюнеровТВ тюнерыВведениеТВ тюнеры предназначены для просмотра
широковещательного или кабельного телевидения на компьютере. Большинство
тюнеров поддерживают композитный видео вход RCA или
S-video, а некоторые из них поставляются с FM радио тюнером.&os; поддерживает PCI ТВ тюнеры, использующие
Brooktree Bt848/849/878/879 или Conexant CN-878/Fusion 878a
Video Capture Chip через драйвер &man.bktr.4;. Вы должны также
убедиться, что тюнер поддерживается; обратитесь к странице справочника
&man.bktr.4; за списком поддерживаемых тюнеров.Добавление драйвераДля использования карты потребуется загрузить драйвер
&man.bktr.4;, что можно сделать, добавив в
/boot/loader.conf следующую строку:bktr_load="YES"В качестве альтернативы, вы можете статически скомпилировать
ядро с поддержкой ТВ тюнера; добавьте следующие строки в
файл конфигурации ядра:device bktr
device iicbus
device iicbb
device smbusЭти дополнительные драйвера устройств необходимы, поскольку
компоненты карты соединены через шину I2C. Затем соберите и
установите новое ядро.Как только поддержка тюнера будет добавлена в систему, перегрузите
компьютер. Во время загрузки TV карта должна отобразить примерно
такие строки:bktr0: <BrookTree 848A> mem 0xd7000000-0xd7000fff irq 10 at device 10.0 on pci0
iicbb0: <I2C bit-banging driver> on bti2c0
iicbus0: <Philips I2C bus> on iicbb0 master-only
iicbus1: <Philips I2C bus> on iicbb0 master-only
smbus0: <System Management Bus> on bti2c0
bktr0: Pinnacle/Miro TV, Philips SECAM tuner.Конечно, эти сообщения будут различаться на разном оборудовании.
Тем не менее, проверьте, что тюнер определяется правильно; возможна
перезапись параметров, определенных ядром, с помощью &man.sysctl.8;
MIB и параметров в файле настройки ядра. Например, если вы хотите
указать, что это Philips SECAM тюнер, добавьте следующую строку
к файлу настройки ядра:options OVERRIDE_TUNER=6или прямо задайте переменную &man.sysctl.8;:&prompt.root; sysctl hw.bt848.tuner=6Обратитесь к странице &man.bktr.4; и файлу
/usr/src/sys/conf/NOTES за более детальной
информацией о доступных параметрах (если вы работаете в
&os; 4.X, вместо
/usr/src/sys/conf/NOTES используйте
/usr/src/sys/i386/conf/LINT).Полезные приложенияДля использования ТВ тюнера вам потребуется установить одно из
следующих приложений:multimedia/fxtv
предоставляет возможности ТВ-в-окне и захвата
изображений/аудио/видео.multimedia/xawtv
это также приложение для ТВ тюнера, с теми же, что и у
fxtv возможностями.misc/alevt раскодирует
и отображает видеотекст/телетекст.audio/xmradio,
приложение для использования с FM радио тюнером, поставляемым
с некоторыми ТВ тюнерами.audio/wmtune, это
удобное приложение для радио тюнеров.В коллекции портов &os; можно найти и другие приложения.Решение проблемЕсли вы столкнулись с какой-либо проблемой, связанной с ТВ
тюнером, проверьте в первую очередь поддержку микросхемы захвата
видео и тюнера драйвером &man.bktr.4;, а также правильность установки
параметров. За дальнейшей поддержкой и с вопросами о ТВ тюнере
вы можете обращаться в &a.multimedia.name; и
использовать его архивы.MarcFonvieilleНаписана ДмитрийМорозовскийПеревод на русский язык: СканерысканерыВведение&os;, как и прочие современные операционные системы, поддерживает
сканеры. Стандартный доступ к сканерам обеспечивается программой
SANE (Scanner Access Now
Easy), обеспечивающей универсальный интерфейс
(API)
и доступной в коллекции портов &os;. Для общения со сканерами
SANE использует некоторые драйвера
устройств &os;.&os; поддерживает сканеры с интерфейсом как SCSI, так и USB.
Убедитесь, что ваш сканер поддерживается
SANE перед тем, как приступить к
конфигурации. Список устройств, поддерживаемых
SANE, можно найти здесь.
Кроме того, страница справочника &man.uscanner.4; также перечисляет
поддерживаемые устройства.Конфигурация ядраКак уже отмечалось, поддерживаются как SCSI, так и USB сканеры.
В зависимости от интерфейса вашего сканера требуется поддержка разных
драйверов устройств.USBСтандартное ядро GENERIC включает в себя
драйвера, необходимые для поддержки USB сканеров. Если вы
компилируете собственное ядро, убедитесь, что в его конфигурации
присутствуют строкиdevice usb
device uhci
device ohci
device uscannerВ зависимости от чипсета USB, встроенного в вашу материнскую
плату, потребуется лишь один из драйверов device
uhci или device ohci, однако, наличие
обеих строк в конфигурации ядра никому не повредит.Если вы не хотите перестраивать ядро, и при этом ваше ядро не
является стандартным (GENERIC), вы можете
загрузить модуль драйвера поддержки сканеров &man.uscanner.4;
при помощи команды &man.kldload.8;:&prompt.root; kldload uscannerДля автоматической загрузки модуля при старте системы добавьте
в файл /boot/loader.conf строкуuscanner_load="YES"После перезагрузки с новым ядром или загрузки модуля подключите
ваш USB сканер. В буфере системных сообщений (&man.dmesg.8;) должно
появиться сообщение о найденном устройстве, например:uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2В данном случае сканер будет использовать устройство
/dev/uscanner0.В &os; 4.X для корректного распознавания некоторых USB
устройств должен быть запущен даемон USB (&man.usbd.8;).
Для этого добавьте строку usbd_enable="YES"
в файл конфигурации системы /etc/rc.conf.
SCSIЕсли ваш сканер имеет интерфейс SCSI, важно знать, к какому
контроллеру он подключен. В зависимости от контроллера потребуются
различные драйвера в файле конфигурации ядра. Стандартное ядро
GENERIC поддерживает большинство
распространенных SCSI-контроллеров. Внимательно прочитайте файл
NOTES (в &os; 4.X файл
LINT) и добавьте необходимые строки в файл
конфигурации вашего ядра. Помимо строки для драйвера адаптера,
вам потребуются следующие строки:device scbus
device passПосле сборки и загрузки нового ядра, в буфере системных
сообщений должны появиться строки о вашем сканере, например:pass2 at aic0 bus 0 target 2 lun 0
pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device
pass2: 3.300MB/s transfersЕсли сканер не был включен в момент загрузки, его можно
принудительно опознать, выполнив сканирование SCSI шины при
помощи команды &man.camcontrol.8;:&prompt.root; camcontrol rescan all
Re-scan of bus 0 was successful
Re-scan of bus 1 was successful
Re-scan of bus 2 was successful
Re-scan of bus 3 was successfulПосле этого сканер должен появиться в списке устройств:&prompt.root; camcontrol devlist
<IBM DDRS-34560 S97B> at scbus0 target 5 lun 0 (pass0,da0)
<IBM DDRS-34560 S97B> at scbus0 target 6 lun 0 (pass1,da1)
<AGFA SNAPSCAN 600 1.10> at scbus1 target 2 lun 0 (pass3)
<PHILIPS CDD3610 CD-R/RW 1.00> at scbus2 target 0 lun 0 (pass2,cd0)More details about SCSI devices, are available in the
&man.scsi.4; and &man.camcontrol.8; manual pages.Конфигурация SANEСистема SANE состоит из двух частей:
аппаратной поддержки (backend, graphics/sane-backends) и программной
поддержки (frontend, graphics/sane-frontends). Первая часть
обеспечивает собственно доступ к сканеру. Список
поддерживаемых устройствSANE
содержит информацию о необходимом вам аппаратном модуле.
Вторая часть обеспечивает графический интерфейс для сканирования
(xscanimage).В первую очередь следует установить порт или пакет graphics/sane-backends, после чего при
помощи команды sane-find-scanner проверить
поддержку сканера системой SANE:&prompt.root; sane-find-scanner -q
found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3В выводе должны присутствовать интерфейс сканера и имя
используемого устройства. Производитель и модель сканера могут
отсутствовать: это нормально.Некоторым USB сканерам может потребоваться загрузка прошивки.
Подробности смотрите в страницах справочника драйвера сканера,
&man.sane-find-scanner.1; и &man.sane.7;.Теперь необходимо убедиться, что сканер опознан программой
графического интерфейса. В состав системы
SANE входит утилита &man.scanimage.1;,
позволяющая работать со сканером из командной строки. Опция
используется для показа информации
о сканере:&prompt.root; scanimage -L
device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scannerОтсутствие сообщений или сообщение об отсутствии устройств
означает, что утилита &man.scanimage.1; не смогла идентифицировать
сканер. В этом случае вам потребуется отредактировать файл
конфигурации аппаратного модуля и указать устройство, используемое
- сканером. Такие проблемы присущи некоторым моделям USB сканеров.
+ сканером. Все файлы настройки находятся в каталоге
+ /usr/local/etc/sane.d/.
+ Такие проблемы присущи некоторым моделям USB сканеров.
Например, в случае USB сканера, описанного в разделе , утилита
sane-find-scanner выдаст следующую информацию:
&prompt.root; sane-find-scanner -q
found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0Сканер обнаружен корректно, он использует интерфейс USB
и доступен через устройство /dev/uscanner0.
Теперь попробуем идентифицировать его:&prompt.root; scanimage -L
No scanners were identified. If you were expecting something different,
check that the scanner is plugged in, turned on and detected by the
sane-find-scanner tool (if appropriate). Please read the documentation
which came with this software (README, FAQ, manpages).Поскольку сканер не идентифицирован, нам потребуется изменить
файл конфигурации
/usr/local/etc/sane.d/epson.conf.
В нашем примере использован сканер &epson.perfection; 1650, так что
мы знаем, что будет использоваться драйвер epson.
Не забудьте прочитать комментарии в файле конфигурации. Требуемые
изменения весьма просты: закомментируйте все строки, описывающие
интерфейсы, не соответствующий интерфейсу вашего сканера (в нашем
случае, все строки, начинающиеся со scsi: наш
сканер использует интерфейс USB), и добавьте в конец файла строку,
содержащую интерфейс и имя использованного устройства.
Мы добавим строкуusb /dev/uscanner0Пожалуйста, прочтите комментарии в файле конфигурации, а также
страницы справочника для более полной информации. Теперь мы можем
проверить, что наш сканер опознан:&prompt.root; scanimage -L
device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scannerНаш USB сканер опознан. Не столь важно, что имя и номер модели
не совпадают, главное, что используются правильные имя устройства
и драйвер: `epson:/dev/uscanner0'.После того как команда scanimage -L опознала
сканер, конфигурация завершена. Все готово к сканированию.Хотя утилита &man.scanimage.1; позволяет производить сканирование
из командной строки, как правило, для сканирования предпочтительнее
использовать графический интерфейс. Для этого в состав
SANE входит простая, но эффективная
утилита xscanimage (graphics/sane-frontends).Другой популярной программой графического интерфейса к сканеру
является Xsane (graphics/xsane). Эта программа
поддерживает такие расширенные возможности, как разные режимы
сканирования (фотокопия, факс и т.п.), цветокоррекцию, потоковое
сканирование и другие. Оба приложения пригодны для использования
в качестве плагинов сканирования для GIMP.
Доступ к сканеру для других пользователейВсе описанные операции выполнялись нами с привилегиями
суперпользователя (root). Вам может
потребоваться дать доступ к сканеру другим пользователям.
Для этого необходимо разрешить доступ на чтение и запись
к файлу устройства, обслуживающему сканер. В нашем примере
USB сканер использует устройство /dev/uscanner0,
принадлежащее группе operator.
Добавление пользователя joe в группу
operator разрешит ему использовать сканер:
&prompt.root; pw groupmod operator -m joeЗа подробностями обращайтесь к странице справочника &man.pw.8;.
Вам также потребуется установить нужные права доступа (0660 или 0664)
к устройству /dev/uscanner0, поскольку по
умолчанию группа operator может лишь
читать из него. Это достигается добавлением следующей строки
в файл /etc/devfs.rules:[system=5]
add path uscanner0 mode 660Затем добавьте в файл конфигурации системы
/etc/rc.conf такую строку (после чего
перезагрузите систему):devfs_system_ruleset="system"Подробную информацию о правах на файлы устройств вы найдете
на странице справочника &man.devfs.8;. В &os; 4.X группа
operator по умолчанию имеет права как
на чтение, так и на запись, к устройству
/dev/uscanner0.Разумеется, по соображениям безопасности, вы должны как следует
подумать, прежде чем добавлять пользователя в другие группы,
в особенности в группу operator.
diff --git a/ru_RU.KOI8-R/books/handbook/network-servers/chapter.sgml b/ru_RU.KOI8-R/books/handbook/network-servers/chapter.sgml
index 9f2f424ffa..41d112a7cd 100644
--- a/ru_RU.KOI8-R/books/handbook/network-servers/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/network-servers/chapter.sgml
@@ -1,5177 +1,5177 @@
MurrayStokelyРеорганизовал АндрейЗахватовПеревод на русский язык: Сетевые серверыКраткий обзорЭта глава посвящена некоторым наиболее часто используемым сетевым
службам систем &unix;. Мы опишем, как установить, настроить,
протестировать и поддерживать многие различные типы сетевых сервисов.
Для облегчения вашей работы в главу включены
примеры конфигурационных файлов.После чтения этой главы вы будете знать:Как управлять даемоном inetd.Как настроить сетевую файловую систему.Как настроить сетевой сервер информации для совместного
использования учётных записей пользователей.Как настроить автоматическое конфигурирование сетевых параметров
при помощи DHCP.Как настроить сервер имён.Как настроить Apache HTTP
сервер.Как настроить файловый и принт сервер для &windows;
клиентов с использованием Samba.Как синхронизировать дату и время, а также настроить сервер
времени с протоколом NTP.Перед чтением этой главы вы должны:Понимать основы работы скриптов
/etc/rc.Свободно владеть основными сетевыми терминами.Знать как устанавливать дополнительные программы сторонних
разработчиков ().ChernLeeТекст предоставил Супер-серверinetdОбзор&man.inetd.8; называют также супер-сервером
Интернет, потому что он управляет соединениями к многим
сервисам. Когда
inetd принимает соединение, он определяет,
для какой программы предназначено соединение, запускает соответствующий
процесс и предоставляет ему сокет, ссылка на который передается
процессу в качестве стандартных устройств ввода, вывода и сообщения об
ошибках. Запуск одного экземпляра
inetd уменьшает общую нагрузку на систему по
сравнению с запуском каждого даемона индивидуально в выделенном
режиме.В первую очередь inetd используется для
вызова других даемонов, но несколько простых протоколов, таких, как
chargen, auth и
daytime, обслуживаются
непосредственно.Этот раздел посвящен основам настройки
inetd посредством его параметров командной
строки и его конфигурационного файла,
/etc/inetd.conf.Настройкиinetd инициализируется посредством
системы /etc/rc.conf. Параметр
inetd_enable по умолчанию установлен в
NO, однако часто включается утилитой
sysinstall при выборе профиля среднего
уровня безопасности. Указание
inetd_enable="YES" или
inetd_enable="NO" в файле
/etc/rc.conf может задать или запретить запуск
inetd во время загрузки.Кроме того, через inetd_flags даемону
inetd могут быть переданы различные
параметры командной строки.Параметры командной строкиФормат вызова inetd:-dВключение отладочной информации.-lВключение регистрации успешных соединений.-wВключение механизма TCP Wrapping для внешних служб (по
умолчанию включено).-WВключение механизма TCP Wrapping для внутренних служб,
которые встроены в inetd (по
умолчанию включено).-c maximumОпределение максимального числа одновременных запусков каждой
службы; по умолчание не ограничено. Может быть переопределено
индивидуально для каждой службы при помощи параметра
.-C rateОпределение по умолчанию максимального количества раз,
которое служба может быть вызвана с одного IP-адреса в минуту; по
умолчанию не ограничено. Может быть переопределено для каждой
службы параметром
.-R rateОпределяет максимальное количество раз, которое служба может
быть вызвана в минуту; по умолчанию 256. Частота, равная 0,
не ограничивает число вызовов.-aЗадает один IP-адрес, к которому делается привязка.
Альтернативно может быть указано имя хоста, и в этом случае
используется соответствующий этому имени хоста адрес IPv4 или
IPv6. Обычно имя хоста задается, когда
inetd запускается в окружении
&man.jail.8;, и в этом случае имя хоста соответствует этому
&man.jail.8;-окружению.Если используется формат с именем хоста и требуется привязка
как для IPv4, так и для IPv6, то для каждой привязки требуется
запись с соответствующим типом протокола для каждой службы в
файле /etc/inetd.conf. К примеру, службе
на основе TCP потребуется две записи, в одной для протокола
используется tcp4, а в другой
используется tcp6.-pЗадает альтернативный файл для хранения ID процесса.Эти параметры могут быть переданы в
inetd при помощи
inetd_flags в файле
/etc/rc.conf. По умолчанию значение
inetd_flags установлено в -wW,
что включает механизм TCP wrapping для внутренних и внешних служб
inetd. Новичкам эти параметры изменять и
даже задавать их в файле /etc/rc.conf не
нужно.Внешняя служба является даемоном вне
inetd, который запускается при получении
соединения к нему. С другой стороны, внутренней службой является
услуга, которую inetd предоставляет
сам.inetd.confНастройка inetd управляется через файл
/etc/inetd.conf.Если в файле /etc/inetd.conf делались
изменения, то inetd можно заставить считать
его конфигурационный файл повторно, послав сигнал HangUP процессу
inetd, как показано здесь:Посылка сигнала HangUP процессу
inetd&prompt.root; kill -HUP `cat /var/run/inetd.pid`В каждой строке конфигурационного файла описывается отдельный
даемон. Комментариям в файле предшествует знак #. Файл
/etc/inetd.conf имеет такой формат:service-name
socket-type
protocol
{wait|nowait}[/max-child[/max-connections-per-ip-per-minute]]
user[:group][/login-class]
server-program
server-program-argumentsПример записи для даемона ftpd,
использующего IPv4:ftp stream tcp nowait root /usr/libexec/ftpd ftpd -lservice-nameЭто имя сервиса, предоставляемого конкретным даемоном. Оно
должно соответствовать сервису, указанному в файле
/etc/services. Здесь определяется, какой
порт должен обслуживать inetd. При
создании нового сервиса он должен помещаться сначала в файл
/etc/services.socket-typestream, dgram,
raw либо seqpacket.
stream должен использоваться для
ориентированных на соединение даемонов TCP, когда как
dgram используется для даемонов, использующих
транспортный протокол UDP.protocolОдно из следующих:ПротоколОписаниеtcp, tcp4TCP IPv4udp, udp4UDP IPv4tcp6TCP IPv6udp6UDP IPv6tcp46TCP как для IPv4, так и для v6udp46UDP как для IPv4, так и для v6{wait|nowait}[/max-child[/max-connections-per-ip-per-minute]] определяет, может ли даемон,
вызванный из inetd, работать с
собственным сокетом, или нет. Сокеты типа
должны использовать параметр , когда как
даемоны с потоковыми
сокетами, которые обычно многопоточны, должны использовать
. обычно передает
много сокетов одному даемону, когда как
порождает даемон для каждого нового сокета.Максимальное число порожденных даемонов, которых может
создать inetd, может быть задано
параметром . Если нужно ограничение в
десять экземпляров некоторого даемона, то после параметра
нужно задать
/10.Кроме , может быть задействован
другой параметр, ограничивающий максимальное число соединений от
одного источника.
служит именно
для этого. Здесь значение, равное десяти, будет ограничивать
любой заданный IP-адрес на выполнение десяти попыток подключения
к некоторому сервису в минуту. Это полезно для предотвращения
намеренного или ненамеренного расходования ресурсов и атак типа
Denial of Service (DoS) на машину.В этом поле или
обязательны. и
опциональны.Многопоточный даемон типа stream без ограничений
или
будет
определен просто вот так: nowait.Тот же самый даемон с ограничением в максимум десять даемонов
будет определен так: nowait/10.Наконец, та же конфигурация с ограничением в двадцать
соединений на IP-адрес в минуту и общим ограничением в максимум
десять порожденных даемонов выглядит так:
nowait/10/20.Эти параметры, используемые все со значениями по умолчанию
даемоном fingerd, имеют такой
вид:finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -suserЭто имя пользователя, под которым должен
работать соответствующий даемон. Чаще всего даемоны работают
как пользователь root. Для обеспечения
безопасности некоторые серверы запускаются как пользователь
daemon или как пользователь с минимальными
правами nobody.server-programПолный маршрут к даемону, который будет выполняться при
установлении соединения. Если даемон является сервисом,
предоставляемым самим inetd, то нужно
задать ключевое слово .server-program-argumentsЭтот параметр работает вместе с параметром
, задавая параметры, начиная с
argv[0], передаваемые даемону при запуске.
Если в командной
строке задано mydaemon -d, то
mydaemon -d будет являться значением для
. И снова, если даемон
является внутренней службой, то здесь нужно использовать
.БезопасностьВ зависимости от схемы безопасности, выбранной при установке,
многие из даемонов inetd могут оказаться по
умолчанию включенными. Если нет особой нужды в некотором даемоне, то
выключите его! Поместите знак # перед ненужным даемоном
в /etc/inetd.conf
и пошлите сигнал для inetd.
Некоторые даемоны, такие, как fingerd,
вообще нежелательны, потому что они дают атакующему слишком много
информации.Некоторые даемоны не заботятся о безопасности и имеют большие
таймауты для соединений или вообще их не имеют. Это позволяет
атакующему неспешно устанавливать соединения к конкретному даемону,
истощая имеющиеся ресурсы. Может оказаться полезным задать для
некоторых даемонов ограничения
и
.По умолчанию механизм TCP wrapping включен. Обратитесь к
справочной странице по &man.hosts.access.5; для получения более
подробной информации о задании ограничений TCP для различных даемонов,
запускаемых посредством inetd.Разноеdaytime,
time,
echo,
discard,
chargen и
auth все являются услугами, предоставляемыми
самим inetd.Сервис auth предоставляет
идентификационные сетевые услуги
(ident, identd)
и поддается настройке.Обратитесь к справочной странице по &man.inetd.8; для получения
более подробной информации.TomRhodesРеорганизация и улучшения BillSwingleТекст создал Network File System (NFS)NFSКроме поддержки многих прочих типов файловых систем, во FreeBSD
встроена поддержка сетевой файловой системы (Network File System),
известной как NFS. NFS позволяет
системе использовать каталоги и файлы совместно с другими машинами,
посредством сети. Посредством NFS пользователи и
программы могут получать доступ к файлам на удалённых системах точно так
же, как если бы это были файлы на собственных дисках.Вот некоторые из наиболее заметных преимуществ, которые даёт
использование NFS:Отдельно взятые рабочие станции используют меньше собственного
дискового пространства, так как совместно используемые данные могут
храниться на одной отдельной машине и быть доступными для других
машин в сети.Пользователям не нужно иметь домашние каталоги, отдельные
для каждой машины в вашей сети. Домашние каталоги могут
располагаться на сервере NFS и их можно сделать
доступными отовсюду в сети.Устройства хранения информации, такие, как дискеты, приводы
CD-ROM и устройства &iomegazip;, могут использоваться другими машинами в
сети. Это может привести к уменьшению переносимых устройств хранения
информации в сети.Как работает NFSNFS строится по крайней мере из двух основных
частей: сервера и одного или большего количества клиентов. Клиент
обращается к данным, находящимся на сервере, в режиме удалённого
доступа. Для того, чтобы это нормально функционировало, нужно
настроить и запустить несколько процессов.В &os; 5.X, утилита portmap была
заменена на утилиту rpcbind.
Таким образом, при
использовании &os; 5.X пользователю необходимо заменить в
последующих примерах все команды portmap
на rpcbind.На сервере работают следующие даемоны:NFSсерверфайл серверunix клиентыportmapmountdnfsdДаемонОписаниеnfsdДаемон NFS, обслуживающий запросы от
клиентов NFS.mountdДаемон монтирования NFS, который
выполняет запросы, передаваемые ему от &man.nfsd.8;.portmapДаемон отображения портов позволяет клиентам
NFS определить порт, используемый сервером
NFS.Клиент может запустить также даемон, называемый
nfsiod. nfsiod
обслуживает запросы, поступающие от сервера от сервера
NFS. Он необязателен, увеличивает
производительность, однако для нормальной и правильной работы не
требуется. Для получения дополнительной информации обратитесь к
разделу справочной системы о &man.nfsiod.8;.Настройка NFSNFSнастройкаНастройка NFS является достаточно незамысловатым
процессом. Все процессы, которые должны быть запущены, могут быть
запущены во время загрузки посредством нескольких модификаций в
вашем файле /etc/rc.conf.Проверьте, что на NFS-сервере в файле
/etc/rc.conf имеются такие строки:portmap_enable="YES"
nfs_server_enable="YES"
nfs_server_flags="-u -t -n 4"
mountd_flags="-r"mountd запускается автоматически, если включена
функция сервера NFS.На клиенте убедитесь, что в файле /etc/rc.conf
присутствует такой параметр:nfs_client_enable="YES"Файл /etc/exports определяет, какие
файловые системы на вашем сервере NFS будут
экспортироваться (иногда их называют совместно
используемыми). Каждая строка в
/etc/exports задаёт файловую систему, которая
будет экспортироваться и какие машины будут иметь к ней доступ. Кроме
машин, имеющих доступ, могут задаваться другие параметры, влияющие на
характеристики доступа. Имеется полный набор параметров,
которые можно использовать, но здесь пойдёт речь лишь о некоторых из
них. Описания остальных параметров можно найти на страницах справочной
системы по &man.exports.5;.Вот несколько примерных строк из файла
/etc/exports:NFSпримеры экспортированияВ следующих примерах даётся общая идея того, как экспортировать
файловые системы, хотя конкретные параметры могут отличаться в
зависимости от ваших условий и конфигурации сети. К примеру, чтобы
экспортировать каталог /cdrom для трёх машин,
находящихся в том же самом домене, что и сервер (поэтому отсутствует
доменное имя для каждой машины) или для которых имеются записи в
файле /etc/hosts. Флаг
указывает на использование экспортируемой файловой
системы в режиме только чтения. С этим флагом удалённая система не
сможет никоим образом изменить экспортируемую файловую систему./cdrom -ro host1 host2 host3В следующей строке экспортируется файловая система
/home, которая становится доступной трем хостам,
указанным по их IP-адресам. Это полезно, если у вас есть собственная
сеть без настроенного сервера DNS. Как вариант,
файл /etc/hosts может содержать внутренние имена
хостов; пожалуйста, обратитесь к справочную систему по &man.hosts.5;
для получения дополнительной информации. Флаг
позволяет рассматривать подкаталоги в
качестве точек монтирования. Другими словами, это не монтирование
подкаталогов, но разрешение клиентам монтировать только каталоги,
которые им требуются или нужны./home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4В строке, приведённой ниже, файловая система
/a экспортируется таким образом, что она доступна
двум клиентам из других доменов. Параметр
позволяет пользователю
root удалённой системы осуществлять запись на
экспортируемую файловую систему как пользователь
root. Если параметр
-maproot=root не задан,
то даже если пользователь имеет права доступа root
на удалённой системе, он не сможет модифицировать
файлы на экспортированной файловой системе./a -maproot=root host.example.com box.example.orgДля того, чтобы клиент смог обратиться к экспортированной файловой
системе, он должен иметь права сделать это. Проверьте, что клиент
указан в вашем файле /etc/exports.В файле /etc/exports каждая строка содержит
информацию об экспортировании для отдельной файловой системы для
отдельно взятого хоста. Удалённый хост может быть задан только
один раз для каждой файловой системы, и может иметь
только одну запись, используемую по умолчанию, для каждой локальной
файловой системы. К примеру, предположим, что
/usr является отдельной файловой системой.
Следующий /etc/exports будет некорректен:/usr/src client
/usr/ports clientОдна файловая система, /usr, имеет две
строки, задающие экспортирование для одного и того же хоста,
client. Правильный формат в этом случае таков:/usr/src /usr/ports clientСвойства отдельной файловой системы, экспортируемой некоторому
хосту, должны задаваться в одной строке. Строки без указания клиента
воспринимаются как отдельный хост. Это ограничивает то, как вы можете
экспортировать файловые системы, но для большинства это не
проблема.Ниже приведён пример правильного списка экспортирования, где
/usr и /exports являются
локальными файловыми системами:# Экспортируем src и ports для client01 и client02, но
# только client01 имеет права пользователя root на них
/usr/src /usr/ports -maproot=root client01
/usr/src /usr/ports client02
# Клиентские машины имеют пользователя root и могут монтировать всё в
# каталоге /exports. Кто угодно может монтировать /exports/obj в режиме чтения
/exports -alldirs -maproot=root client01 client02
/exports/obj -roВы должны перезапустить mountd после того, как
изменили /etc/exports, чтобы изменения вступили в
силу. Это может быть достигнуто посылкой сигнала HUP процессу
mountd:&prompt.root; kill -HUP `cat /var/run/mountd.pid`Как вариант, при перезагрузке FreeBSD всё настроится правильно.
Хотя выполнять перезагрузку вовсе не обязательно. Выполнение следующих
команд пользователем root запустит всё, что
нужно.На сервере NFS:&prompt.root; portmap
&prompt.root; nfsd -u -t -n 4
&prompt.root; mountd -rНа клиенте NFS:&prompt.root; nfsiod -n 4Теперь всё должно быть готово к реальному монтированию удалённой
файловой системы. В приводимых примерах сервер будет носить имя
server, а клиент будет носить имя
client. Если вы только хотите
временно смонтировать удалённую файловую систему, или всего лишь
протестировать ваши настройки, то просто запустите команды, подобные
приводимым здесь, работая как пользователь root на
клиентской машине:NFSмонтирование&prompt.root; mount server:/home /mntПо этой команде файловая система /home на
сервере будет смонтирована в каталог /mnt на
клиенте. Если всё настроено правильно, вы сможете войти в каталог
/mnt на клиенте и увидеть файлы, находящиеся на
сервере.Если вы хотите автоматически монтировать удалённую файловую
систему при каждой загрузке компьютера, добавьте файловую систему в
/etc/fstab. Вот пример:server:/home /mnt nfs rw 0 0На страницах справочной системы по &man.fstab.5; перечислены все
доступные параметры.Практическое использованиеУ NFS есть много вариантов практического
применения. Ниже приводится несколько наиболее широко распространённых
способов её использования:NFSиспользованиеНастройка несколько машин для совместного использования CDROM
или других носителей. Это более дешёвый и зачастую более удобный
способ установки программного обеспечения на несколько машин.В больших сетях может оказаться более удобным настроить
центральный сервер NFS, на котором размещаются
все домашние каталоги пользователей. Эти домашние каталоги могут
затем экспортироваться в сеть так, что пользователи всегда будут
иметь один и тот же домашний каталог вне зависимости от того, на
какой рабочей станции они работают.Несколько машин могут иметь общий каталог
/usr/ports/distfiles. Таким образом, когда
вам нужно будет установить порт на несколько машин, вы сможете быстро
получить доступ к исходным текстам без их загрузки на каждой
машине.WylieStilwellТекст предоставил ChernLeeТекст переписал Автоматическое монтирование с
amdamdдаемон автоматического монтирования&man.amd.8; (даемон автоматического монтирования) автоматически
монтирует удалённую файловую систему,
как только происходит обращение к файлу или каталогу в этой файловой
системе. Кроме того, файловые системы, которые были неактивны
некоторое время, будут автоматически размонтированы даемоном
amd. Использование
amd является простой альтернативой
статическому монтированию, так как в последнем случае обычно всё должно
быть описано в файле /etc/fstab.amd работает, сам выступая как сервер
NFS для каталогов /host и
/net. Когда происходит обращение к файлу в одном
из этих каталогов, amd ищет соответствующий
удаленный ресурс для монтирования и автоматически его монтирует.
/net используется для монтирования экспортируемой
файловой системы по адресу IP, когда как каталог
/host используется для монтирования ресурса по
удаленному имени хоста.Обращение к файлу в каталоге
/host/foobar/usr укажет
amd на выполнение попытки монтирования
ресурса /usr, который находится на хосте
foobar.Монтирование ресурса при помощи
amdВы можете посмотреть доступные для монтирования ресурсы
отдалённого хоста командой showmount. К примеру,
чтобы посмотреть ресурсы хоста с именем foobar, вы
можете использовать:&prompt.user; showmount -e foobar
Exports list on foobar:
/usr 10.10.10.0
/a 10.10.10.0
&prompt.user; cd /host/foobar/usrКак видно из примера, showmount показывает
/usr как экспортируемый ресурс. При переходе в
каталог /host/foobar/usr даемон
amd пытается разрешить имя хоста
foobar и автоматически смонтировать требуемый
ресурс.amd может быть запущен из скриптов
начальной загрузки, если поместить такую строку в файл
/etc/rc.conf:amd_enable="YES"Кроме того, даемону amd могут быть
переданы настроечные флаги через параметр
amd_flags. По умолчанию
amd_flags настроен следующим образом:amd_flags="-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map"Файл /etc/amd.map задает опции, используемые
по умолчанию при монтировании экспортируемых ресурсов. В файле
/etc/amd.conf заданы настройки некоторых более
сложных возможностей amd.Обратитесь к справочным страницам по &man.amd.8; и &man.amd.conf.5;
для получения более полной информации.JohnLindТекст предоставил Проблемы взаимодействия с другими системамиНекоторые сетевые адаптеры для систем PC с шиной ISA имеют
ограничения, которые могут привести к серьезным проблемам в сети, в
частности, с NFS. Эти проблемы не специфичны для FreeBSD, однако
эту систему они затрагивают.Проблема, которая возникает практически всегда при работе по сети
систем PC (FreeBSD) с высокопроизводительными рабочими станциями,
выпущенными такими производителями, как Silicon Graphics, Inc. и Sun
Microsystems, Inc. Монтирование по протоколу NFS будет работать
нормально, и некоторые операции также будут выполняться успешно, но
неожиданно сервер окажется недоступным для клиент, хотя запросы к и
от других систем будут продолжаться обрабатываться. Такое встречается
с клиентскими системами, не зависимо от того, является ли клиент
машиной с FreeBSD или рабочей станцией. Во многих системах при
возникновении этой проблемы нет способа корректно завершить работу
клиента. Единственным выходом зачастую является холодная перезагрузка
клиента, потому что ситуация с NFS не может быть разрешена.Хотя правильным решением является установка более
производительного и скоростного сетевого адаптера на систему FreeBSD,
имеется простое решение, приводящее к удовлетворительным результатам.
Если система FreeBSD является сервером, укажите
параметр на клиенте при монтировании. Если
система FreeBSD является клиентом, то смонтируйте
файловую систему NFS с параметром . Эти
параметры могут быть заданы в четвертом поле записи в файле
fstab клиента при автоматическом монтировании,
или при помощи параметра в команде &man.mount.8; при
монтировании вручную.Нужно отметить, что имеется также другая проблема, ошибочно
принимаемая за приведенную выше, когда серверы и клиенты NFS находятся
в разных сетях. Если это тот самый случай,
проверьте, что ваши маршрутизаторы пропускают
нужную информацию UDP, в противном случае вы
ничего не получите, что бы вы ни предпринимали.В следующих примерах fastws является именем хоста
(интерфейса) высокопроизводительной рабочей станции, а
freebox является именем хоста (интерфейса) системы
FreeBSD со слабым сетевым адаптером. Кроме того,
/sharedfs будет являться экспортируемой через NFS
файловой системой (обратитесь к страницам справочной системы по команде
&man.exports.5;), а /project будет точкой
монтирования экспортируемой файловой системы на клиенте. В любом
случае, отметьте, что для вашего приложения могут понадобиться
дополнительные параметры, такие, как ,
или .Пример системы FreeBSD (freebox) как клиента
в файле /etc/fstab на машине
freebox:fastws:/sharedfs /project nfs rw,-r=1024 0 0Команда, выдаваемая вручную на машине
freebox:&prompt.root; mount -t nfs -o -r=1024 fastws:/sharedfs /projectПример системы FreeBSD в качестве сервера в файле
/etc/fstab на машине
fastws:freebox:/sharedfs /project nfs rw,-w=1024 0 0Команда, выдаваемая вручную на машине
fastws:&prompt.root; mount -t nfs -o -w=1024 freebox:/sharedfs /projectПрактически все 16-разрядные сетевые адаптеры позволят работать
без указанных выше ограничений на размер блоков при чтении и
записи.Для тех, кто интересуется, ниже описывается, что же происходит в
при появлении этой ошибки, и объясняется, почему ее невозможно
устранить. Как правило, NFS работает с блоками размером
8 килобайт (хотя отдельные фрагменты могут иметь меньшие
размеры). Так, пакет Ethernet имеет максимальный размер около
1500 байт, то
блок NFS разбивается на несколько пакетов Ethernet, хотя
на более высоком уровне это все тот же единый блок, который должен быть
принят, собран и подтвержден как один блок.
Высокопроизводительные рабочие станции могут посылать пакеты, которые
соответствуют одному блоку NFS, сразу друг за другом, насколько это
позволяет делать стандарт. На слабых, низкопроизводительных адаптерах
пакеты, пришедшие позже, накладываются поверх ранее пришедших пакетов
того же самого блока до того, как они могут быть переданы хосту и
блок как единое целое не может быть собран или подтвержден. В
результате рабочая станция входит в ситуацию таймаута и пытается
повторить передачу, но уже с полным блоком в 8 КБ, и процесс будет
повторяться снова, до бесконечности.Задав размер блока меньше размера пакета Ethernet, мы достигаем
того, что любой полностью полученный пакет Ethernet может быть
подтвержден индивидуально, и избежим тупиковую ситуацию.Наложение пакетов может все еще проявляться, когда
высокопроизводительные рабочие станции сбрасывают данные на PC-систему,
однако повторение этой ситуации не обязательно с более скоростными
адаптерами с блоками NFS. Когда происходит наложение,
затронутые блоки будут переданы снова, и скорее всего, они будут
получены, собраны и подтверждены.BillSwingleТекст создал EricOgrenВнёс добавления UdoErdelhoffNetwork Information System (NIS/YP)Что это такое?NISSolarisHP-UXAIXLinuxNetBSDOpenBSDNIS,
что является сокращением от Network Information Services
(Сетевые Информационные Службы), которые были разработаны компанией
Sun Microsystems для централизованного администрирования систем &unix;
(изначально &sunos;). В настоящее время эти службы практически стали
промышленным стандартом; все основные &unix;-подобные системы
(&solaris;, HP-UX, &aix;, Linux, NetBSD, OpenBSD, FreeBSD и так далее)
поддерживают NIS.yellow pagesNISNIS
первоначально назывались Yellow Pages (или yp), но из-за
проблем с торговым знаком Sun изменила это название. Старое название
(и yp) всё ещё часто употребляется.NISдоменыЭто система клиент/сервер на основе вызовов RPC, которая позволяет
группе машин в одном домене NIS совместно использовать общий набор
конфигурационных файлов. Системный администратор может настроить
клиентскую систему NIS только с минимальной настроечной информацией, а
затем добавлять, удалять и модифицировать настроечную информацию из
одного места.Windows NTЭто похоже на систему доменов &windowsnt;; хотя их внутренние
реализации не так уж и похожи, основные функции сравнимы.Термины/программы, о которых вы должны знатьСуществует несколько терминов и некоторое количество
пользовательских программ, которые будут нужны, когда вы будете
пытаться сделать NIS во FreeBSD, и в случае создания сервера, и
в случае работы в качестве клиента NIS:portmapТерминОписаниеИмя домена NISГлавный сервер NIS и все его клиенты (включая вторичные
серверы), имеют доменное имя NIS. Как и в случае с именем
домена &windowsnt;, имя домена NIS не имеет ничего общего с
DNS.portmapДля обеспечения работы RPC (Remote Procedure Call,
Удалённого Вызова Процедур, сетевого протокола, используемого
NIS), должен быть запущен даемон portmap.
Если даемон portmap не запущен, невозможно
будет запустить сервер NIS, или работать как
NIS-клиент.ypbindСвязывает
NIS-клиента с его NIS-сервером. Он определяет имя NIS-домена
системы, и при помощи RPC подключается к серверу.
ypbind является основой клиент-серверного
взаимодействия в среде NIS; если на клиентской машине
программа ypbind перестанет работать, то
эта машина не сможет получить доступ к серверу NIS.ypservПрограмма ypserv, которая должна
запускаться только на серверах NIS: это и есть
сервер NIS. Если &man.ypserv.8; перестанет работать, то
сервер не сможет отвечать на запросы NIS (к счастью, на этот
случай предусмотрен вторичный сервер). Есть несколько
реализаций NIS (к FreeBSD это не относится), в которых не
производится попыток подключиться к другому серверу, если ранее
используемый сервер перестал работать. Зачастую единственным
средством, помогающим в этой ситуации, является перезапуск
серверного процесса (или сервера полностью) или процесса
ypbind на клиентской машине.rpc.yppasswddПрограмма rpc.yppasswdd, другой
процесс, который запускается только на главных NIS-серверах:
это даемон, позволяющий клиентам NIS изменять свои
пароли NIS. Если этот даемон не запущен, то пользователи
должны будут входить на основной сервер NIS и там менять свои
пароли.Как это работает?В системе NIS существует три типа хостов: основные (master)
серверы, вторичные (slave) серверы и клиентские машины. Серверы
выполняют роль централизованного хранилища информации о конфигурации
хостов. Основные серверы хранят оригиналы этой информации, когда как
вторичные серверы хранят ее копию для обеспечения избыточности.
Клиенты связываются с серверами, чтобы предоставить им эту
информацию.Информация во многих файлах может совместно использоваться
следующим образом. Файлы master.passwd,
group и hosts используются
совместно через NIS. Когда процессу, работающему на клиентской машине,
требуется информация, как правило, находящаяся в этих файлах локально,
то он делает запрос к серверу NIS, с которым связан.Типы машинNISглавный серверОсновной сервер NIS.
Такой сервер, по аналогии с первичным контроллером домена
&windowsnt;, хранит файлы, используемые всеми клиентами NIS. Файлы
passwd, group и
различные другие файлы, используемые клиентами NIS, находятся
на основном сервере.Возможно использование одной машины в качестве сервера для
более чем одного домена NIS. Однако, в этом введении такая
ситуация не рассматривается, и предполагается менее масштабное
использование NIS.NISвторичный серверВторичные серверы NIS. Похожие на
вторичные контроллеры доменов &windowsnt;, вторичные серверы
NIS содержат копии оригинальных файлов данных NIS. Вторичные
серверы NIS обеспечивают избыточность, что нужно в критичных
приложениях. Они также помогают распределять нагрузку на
основной сервер: клиенты NIS всегда подключаются к тому серверу
NIS, который ответил первым, в том числе и к вторичным
серверам.NISклиентКлиенты NIS.
Клиенты NIS, как и большинство рабочих станций &windowsnt;,
аутентифицируются на сервере NIS (или на контроллере домена
&windowsnt; для рабочих станций &windowsnt;) во время
входа в систему.Использование NIS/YPВ этом разделе приводится пример настройки NIS.В этом разделе предполагается, что вы работаете с FreeBSD 3.3
или выше. Указания, приводимые здесь, скорее всего,
будут работать с любой версией FreeBSD, выше,
чем 3.0, однако нет гарантий, что это на самом деле так.ПланированиеДавайте предположим, что вы являетесь администратором в маленькой
университетской лаборатории. В настоящий момент в этой лаборатории
с 15 машинами отсутствует единая точка администрирования; на каждой
машине имеются собственные файлы /etc/passwd и
/etc/master.passwd. Эти файлы синхронизируются
друг с другом только вручную; сейчас, когда вы добавляете
пользователя в лаборатории, вы должны выполнить команду
adduser на всех 15 машинах. Понятно, что такое
положение вещей нужно исправлять, так что вы решили перевести
сеть на использование NIS, используя две машины в качестве
серверов.Итак, конфигурация лаборатории сейчас выглядит примерно
так:Имя машиныIP-адресРоль машиныellington10.0.0.2Основной сервер NIScoltrane10.0.0.3Вторичный сервер NISbasie10.0.0.4Факультетская рабочая станцияbird10.0.0.5Клиентская машинаcli[1-11]10.0.0.[6-17]Другие клиентские машиныЕсли вы определяете схему NIS первый раз, ее нужно хорошо
обдумать. Вне зависимости от размеров вашей сети, есть несколько
ключевых моментов, которые требуют принятия решений.Выбор имени домена NISNISимя доменаЭто имя не должно быть именем домена, которое
вы использовали. Более точно это имя называется именем
домена NIS. Когда клиент рассылает запросы на получение
информации, он включает в них имя домена NIS, частью которого
является. Таким способом многие сервера в сети могут указать,
какой сервер на какой запрос должен отвечать. Думайте о домене
NIS как об имени группы хостов, которые каким-то образом
связаны.Некоторые организации в качестве имени домена NIS используют
свой домен Интернет. Это не рекомендуется, так как может вызвать
проблемы в процессе решения сетевых проблем. Имя домена NIS должно
быть уникальным в пределах вашей сети и хорошо, если оно будет
описывать группу машин, которые представляет. Например,
художественный отдел в компании Acme Inc. может находиться в
домене NIS с именем acme-art. В нашем примере
положим, что мы выбрали имя test-domain.SunOSНесмотря на это, некоторые операционные системы (в частности,
&sunos;) используют свое имя домена NIS в качестве имени домена
Интернет. Если одна или более машин в вашей сети имеют такие
ограничения, вы обязаны использовать имя
домена Интернет в качестве имени домена NIS.Требования к серверуЕсть несколько вещей, которые нужно иметь в виду при выборе
машины для использования в качестве сервера NIS. Одной из
обескураживающей вещью, касающейся NIS, является уровень
зависимости клиентов от серверов. Если клиент не может
подключиться к серверу своего домена NIS, зачастую машину просто
становится нельзя использовать. Отсутствие информации о
пользователях и группах приводит к временной остановке работы
большинства систем. Зная это, вы должны выбрать машину, которая
не должна подвергаться частым перезагрузкам и не используется
для разработки. Сервер NIS в идеале должен быть отдельно стоящей
машиной, единственным целью в жизни которой является быть сервером
NIS. Если вы работаете в сети, которая не так уж сильно загружена,
то можно поместить сервер NIS на машине, на которой запущены и
другие сервисы, просто имейте в виду, что если сервер NIS
становится недоступным, то это негативно отражается на
всех клиентах NIS.Серверы NISОригинальные копии всей информации NIS хранится на единственной
машине, которая называется главным сервером NIS. Базы данных,
которые используются для хранения информации, называются картами NIS.
Во FreeBSD эти карты хранятся в
/var/yp/[domainname], где
[domainname] является именем обслуживаемого
домена NIS. Один сервер NIS может поддерживать одновременно
несколько доменов, так что есть возможность иметь несколько таких
каталогов, по одному на каждый обслуживаемый домен. Каждый домен
будет иметь свой собственный независимый от других набор карт.Основной и вторичный серверы обслуживают все запросы NIS с
помощью даемона ypserv. ypserv
отвечает за получение входящих запросов от клиентов NIS,
распознавание запрашиваемого домена и отображение имени в путь к
соответствующему файлы базы данных, а также передаче информации из
базы данных обратно клиенту.Настройка основного сервера NISNISнастройка сервераНастройка основного сервера NIS может оказаться сравнительно
простой, в зависимости от ваших потребностей. В поставку FreeBSD
сразу включена поддержка NIS. Все, что вам нужно, это добавить
следующие строки в файл /etc/rc.conf, а
FreeBSD сделает за вас всё остальное..nisdomainname="test-domain"
В этой строке задается имя домена NIS, которое будет
test-domain, еще до настройки сети
(например, после перезагрузки).nis_server_enable="YES"
Здесь указывается FreeBSD на запуск процессов серверов NIS,
когда дело доходит до сетевых настроек.nis_yppasswdd_enable="YES"
Здесь указывается на запуск даемона
rpc.yppasswdd, который, как это отмечено
выше, позволит пользователям менять свой пароль NIS с
клиентской машины.В зависимости от ваших настроек NIS, вам могут понадобиться
дополнительные строки. Обратитесь к разделу о серверах NIS,
которые являются и клиентами NIS ниже для получения
подробной информации.А теперь всё, что вам нужно сделать, это запустить команду
/etc/netstart, работая как администратор. По
ней произойдет настройка всего, при этом будут использоваться
значения, заданные в файле /etc/rc.conf.Инициализация карт NISNISкартыКарты NIS являются файлами баз данных,
которые хранятся в каталоге /var/yp.
Они генерируются из конфигурационных файлов, находящихся в каталоге
/etc основного сервера NIS, за одним
исключением: файл /etc/master.passwd.
На это есть весомая причина, вам не нужно распространять пароли
пользователя root и других административных
пользователей на все серверы в домене NIS. По этой причине, прежде
чем инициализировать карты NIS, вы должны сделать вот что:&prompt.root; cp /etc/master.passwd /var/yp/master.passwd
&prompt.root; cd /var/yp
&prompt.root; vi master.passwdВы должны удалить все записи, касающиеся системных
пользователей (bin, tty,
kmem, games и так далее), а
также записи, которые вы не хотите распространять клиентам NIS
(например, root и другие пользователи с UID,
равным 0 (администраторы)).Проверьте, чтобы файл
/var/yp/master.passwd был недоступен для
записи ни для группы, ни для остальных пользователей (режим
доступа 600)! Воспользуйтесь командой chmod,
если это нужно.Tru64 UNIXКогда с этим будет покончено, самое время инициализировать
карты NIS! В поставку FreeBSD включен скрипт с именем
ypinit, который делает это (обратитесь к его
справочной странице за дополнительной информацией). Отметьте, что
этот скрипт имеется в большинстве операционных систем &unix;, но не
во всех. В системе Digital Unix/Compaq Tru64 UNIX он называется
ypsetup. Так как мы генерируем карты для
главного сервера NIS, то при вызове программы
ypinit мы передаем ей параметр
. Для генерации карт NIS в предположении, что
вы уже сделали шаги, описанные выше, выполните следующее:ellington&prompt.root; ypinit -m test-domain
Server Type: MASTER Domain: test-domain
Creating an YP server will require that you answer a few questions.
Questions will all be asked at the beginning of the procedure.
Do you want this procedure to quit on non-fatal errors? [y/n: n] n
Ok, please remember to go back and redo manually whatever fails.
If you don't, something might not work.
At this point, we have to construct a list of this domains YP servers.
rod.darktech.org is already known as master server.
Please continue to add any slave servers, one per line. When you are
done with the list, type a <control D>.
master server : ellington
next host to add: coltrane
next host to add: ^D
The current list of NIS servers looks like this:
ellington
coltrane
Is this correct? [y/n: y] y
[..вывод при генерации карт..]
NIS Map update completed.
ellington has been setup as an YP master server without any errors.Программа ypinit должна была создать файл
/var/yp/Makefile из
/var/yp/Makefile.dist. При создании этого
файла предполагается, что вы работаете в окружении с единственным
сервером NIS и только с машинами FreeBSD. Так как в домене
test-domain имеется также и вторичный сервер,
то вы должны отредактировать файл
/var/yp/Makefile:ellington&prompt.root; vi /var/yp/MakefileВы должны закомментировать строку, в которой указаноNOPUSH = "True"(она уже не раскомментирована).Настройка вторичного сервера NISNISвторичный серверНастройка вторичного сервера NIS осуществляется ещё проще,
чем настройка главного сервера. Войдите на вторичный сервер и
отредактируйте файл /etc/rc.conf точно также,
как вы делали это ранее. Единственным отличием является то, что
при запуске программы ypinit мы теперь должны
использовать опцию . Применение опции
требует также указание имени главного сервера
NIS, так что наша команда должна выглядеть так:coltrane&prompt.root; ypinit -s ellington test-domain
Server Type: SLAVE Domain: test-domain Master: ellington
Creating an YP server will require that you answer a few questions.
Questions will all be asked at the beginning of the procedure.
Do you want this procedure to quit on non-fatal errors? [y/n: n] n
Ok, please remember to go back and redo manually whatever fails.
If you don't, something might not work.
There will be no further questions. The remainder of the procedure
should take a few minutes, to copy the databases from ellington.
Transferring netgroup...
ypxfr: Exiting: Map successfully transferred
Transferring netgroup.byuser...
ypxfr: Exiting: Map successfully transferred
Transferring netgroup.byhost...
ypxfr: Exiting: Map successfully transferred
Transferring master.passwd.byuid...
ypxfr: Exiting: Map successfully transferred
Transferring passwd.byuid...
ypxfr: Exiting: Map successfully transferred
Transferring passwd.byname...
ypxfr: Exiting: Map successfully transferred
Transferring group.bygid...
ypxfr: Exiting: Map successfully transferred
Transferring group.byname...
ypxfr: Exiting: Map successfully transferred
Transferring services.byname...
ypxfr: Exiting: Map successfully transferred
Transferring rpc.bynumber...
ypxfr: Exiting: Map successfully transferred
Transferring rpc.byname...
ypxfr: Exiting: Map successfully transferred
Transferring protocols.byname...
ypxfr: Exiting: Map successfully transferred
Transferring master.passwd.byname...
ypxfr: Exiting: Map successfully transferred
Transferring networks.byname...
ypxfr: Exiting: Map successfully transferred
Transferring networks.byaddr...
ypxfr: Exiting: Map successfully transferred
Transferring netid.byname...
ypxfr: Exiting: Map successfully transferred
Transferring hosts.byaddr...
ypxfr: Exiting: Map successfully transferred
Transferring protocols.bynumber...
ypxfr: Exiting: Map successfully transferred
Transferring ypservers...
ypxfr: Exiting: Map successfully transferred
Transferring hosts.byname...
ypxfr: Exiting: Map successfully transferred
coltrane has been setup as an YP slave server without any errors.
Don't forget to update map ypservers on ellington.Теперь у вас должен быть каталог с именем
/var/yp/test-domain. Копии карт главного
сервера NIS должны быть в этом каталоге. Вы должны удостовериться,
что этот каталог обновляется. Следующие строки в
/etc/crontab вашего вторичного сервера должны
это делать:20 * * * * root /usr/libexec/ypxfr passwd.byname
21 * * * * root /usr/libexec/ypxfr passwd.byuidЭти две строки заставляют вторичный сервер синхронизировать
свои карты с картами главного сервера. Хотя эти строчки не
обязательны, так как главный сервер делает попытки передать все
изменения в своих картах NIS на свои вторичные серверы, но из-за
того, что информация для входа в систему настолько жизненно важна для
систем, зависящих от сервера, что выполнение регулярных обновлений
является совсем не плохой идеей. Это ещё более важно в загруженных
сетях, в которых обновления карт могут не всегда завершаться
успешно.А теперь точно также запустите команду
/etc/netstart на вторичном сервере, по которой
снова выполнится запуск сервера NIS.Клиенты NISКлиент NIS выполняет так называемую привязку к конкретному
серверу NIS при помощи даемона ypbind.
ypbind определяет домен, используемый в системе
по умолчанию (тот, который устанавливается по команде
domainname), и начинает широковещательную рассылку
запросов RPC в локальной сети. В этих запросах указано имя домена,
к серверу которого ypbind пытается осуществить
привязку. Если сервер, который был настроен для обслуживания
запрашиваемого домена, получит широковещательный запрос, он ответит
ypbind, который, в свою очередь запомнит адрес
сервера. Если имеется несколько серверов (например, главный и
несколько вторичных), то ypbind будет использовать
адрес первого ответившего. С этого момента клиентская система будет
направлять все свои запросы NIS на этот сервер. Время от времени
ypbind будет пинать сервер для
проверки его работоспособности.
Если на один из тестовых пакетов не удастся получить ответа за
разумное время, то ypbind пометит этот домен как
домен, с которым связка разорвана, и снова начнет процесс посылки
широковещательных запросов в надежде найти другой сервер.Настройка клиента NISNISнастройка клиентаНастройка машины с FreeBSD в качестве клиента NIS достаточно
проста.Отредактируйте файл /etc/rc.conf,
добавив туда следующие строки для того, чтобы задать имя домена
NIS и запустить ypbind во время запуска
сетевых служб:nisdomainname="test-domain"
nis_client_enable="YES"Для импортирования всех возможных учётных записей от сервера
NIS, удалите все записи пользователей из вашего файла
/etc/master.passwd и воспользуйтесь
командой vipw для добавления следующей строки
в конец файла:+:::::::::Эта строчка даст всем пользователям с корректной учетной
записью в картах учетных баз пользователей доступ к этой
системе. Есть множество способов настроить ваш клиент NIS,
изменив эту строку. Посмотрите ниже текст, касающийся сетевых групп, чтобы
получить более подробную информацию. Дополнительная информация
для изучения находится в книге издательства O'Reilly под
названием Managing NFS and NIS.Вы должны оставить хотя бы одну локальную запись (то есть
не импортировать ее через NIS) в вашем
/etc/master.passwd и эта запись должна
быть также членом группы wheel. Если
с NIS что-то случится, эта запись может использоваться для
удаленного входа в систему, перехода в режим администратора и
исправления неисправностей.Для импортирования всех возможных записей о группах с
сервера NIS, добавьте в ваш файл
/etc/group такую строчку:+:*::После завершения выполнения этих шагов у вас должно получиться
запустить команду ypcat passwd и увидеть
карту учетных записей сервера NIS.Безопасность NISВ общем-то любой пользователь, зная имя вашего домена, может
выполнить запрос RPC к &man.ypserv.8; и получить содержимое ваших карт
NIS. Для предотвращения такого неавторизованного обмена &man.ypserv.8;
поддерживает так называемую систему securenets, которая может
использоваться для ограничения доступа к некоторой группе хостов. При
запуске &man.ypserv.8; будет пытаться загрузить информацию, касающуюся
securenets, из файла /var/yp/securenets.Имя каталога зависит от параметра, указанного вместе с опцией
. Этот файл содержит записи, состоящие из
указания сети и сетевой маски, разделенных пробелом. Строчки,
начинающиеся со знака #, считаются комментариями.
Примерный файл securenets может иметь примерно такой вид:# allow connections from local host -- mandatory
127.0.0.1 255.255.255.255
# allow connections from any host
# on the 192.168.128.0 network
192.168.128.0 255.255.255.0
# allow connections from any host
# between 10.0.0.0 to 10.0.15.255
# this includes the machines in the testlab
10.0.0.0 255.255.240.0Если &man.ypserv.8; получает запрос от адреса, который соответствует
одному из этих правил, он будет отрабатывать запрос обычным образом.
Если же адрес не подпадает ни под одно правило, запрос будет
проигнорирован и в журнал будет записано предупреждающее сообщение. Если
файл /var/yp/securenets не существует,
ypserv будет обслуживать соединения от любого
хоста.Программа ypserv также поддерживает пакет программ
tcpwrapper от Wietse Venema. Это позволяет
администратору для ограничения доступа вместо
/var/yp/securenets использовать конфигурационные
файлы tcpwrapper.Хотя оба этих метода управления доступом обеспечивают некоторую
безопасность, они, как основанные на проверке привилегированного
порта, оба подвержены атакам типа IP spoofing. Весь
сетевой трафик, связанный с работой NIS, должен блокироваться вашим
межсетевым экраном.Серверы, использующие файл /var/yp/securenets,
могут быть не в состоянии обслуживать старых клиентов NIS с древней
реализацией протокола TCP/IP. Некоторые из этих реализаций при
рассылке широковещательных запросов устанавливают все биты машинной
части адреса в ноль и/или не в состоянии определить маску подсети при
вычислении адреса широковещательной рассылки. Хотя некоторые из этих
проблем могут быть решены изменением конфигурации клиента, другие
могут привести к отказу от использования
/var/yp/securenets.Использование /var/yp/securenets на сервере
с такой архаичной реализацией TCP/IP является весьма плохой идеей, и
приведёт к потере работоспособности NIS в большой части вашей
сети.tcpwrapperИспользование пакета tcpwrapper увеличит
время отклика вашего сервера NIS. Дополнительной задержки может
оказаться достаточно для возникновения таймаутов в клиентских
программах, особенно в загруженных сетях или с медленными серверами
NIS. Если одна или более ваших клиентских систем страдают от таких
проблем, вы должны преобразовать такие клиентские системы во вторичные
серверы NIS и сделать принудительную их привязку к самим себе.Запрет входа некоторых пользователейВ нашей лаборатории есть машина basie, о которой
предполагается, что она является исключительно факультетской рабочей
станцией. Мы не хотим исключать эту машину из домена NIS, однако
файл passwd на главном сервере NIS содержит
учетные записи как для работников факультета, так и студентов. Что мы
можем сделать?Есть способ ограничить вход некоторых пользователей на этой машине,
даже если они присутствуют в базе данных NIS. Чтобы это сделать, вам
достаточно добавить
-username в конец файла
/etc/master.passwd на клиентской машине, где
username является именем пользователя,
которому вы хотите запретить вход. Рекомендуется сделать это с помощью
утилиты vipw, так как vipw
проверит ваши изменения в /etc/master.passwd, а
также автоматически перестроит базу данных паролей по окончании
редактирования. Например, если мы хотим запретить пользователю
bill осуществлять вход на машине
basie, то мы сделаем следующее:basie&prompt.root; vipw[add -bill to the end, exit]
vipw: rebuilding the database...
vipw: done
basie&prompt.root; cat /etc/master.passwd
root:[password]:0:0::0:0:The super-user:/root:/bin/csh
toor:[password]:0:0::0:0:The other super-user:/root:/bin/sh
daemon:*:1:1::0:0:Owner of many system processes:/root:/sbin/nologin
operator:*:2:5::0:0:System &:/:/sbin/nologin
bin:*:3:7::0:0:Binaries Commands and Source,,,:/:/sbin/nologin
tty:*:4:65533::0:0:Tty Sandbox:/:/sbin/nologin
kmem:*:5:65533::0:0:KMem Sandbox:/:/sbin/nologin
games:*:7:13::0:0:Games pseudo-user:/usr/games:/sbin/nologin
news:*:8:8::0:0:News Subsystem:/:/sbin/nologin
man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/sbin/nologin
bind:*:53:53::0:0:Bind Sandbox:/:/sbin/nologin
uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico
xten:*:67:67::0:0:X-10 daemon:/usr/local/xten:/sbin/nologin
pop:*:68:6::0:0:Post Office Owner:/nonexistent:/sbin/nologin
nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/sbin/nologin
+:::::::::
-bill
basie&prompt.root;UdoErdelhoffТекст предоставил Использование сетевых группсетевые группыСпособ, описанный в предыдущем разделе, работает достаточно хорошо,
если вам нужны особые правила для очень малой группы пользователей или
машин. В более крупных сетях вы забудете о
запрете входа определенных пользователей на важные машины или даже
будете настраивать каждую машину по отдельности, теряя таким образом
главное преимущество использования NIS:
централизованное администрирование.Ответом разработчиков NIS на эту проблему являются
сетевые группы. Их назначение и смысл можно
сравнить с обычными группами, используемыми в файловых системах &unix;.
Главное отличие заключается в отсутствии числового идентификатора и
возможности задать сетевую группу включением как пользователей, так и
других сетевых групп.Сетевые группы были разработаны для работы с большими, сложными
сетями с сотнями пользователей и машин. С одной стороны, хорошо, если
вам приходится с такой ситуацией. С другой стороны, эта сложность
делает невозможным описание сетевых групп с помощью простых примеров.
Пример, используемый в дальнейшем, демонстрирует эту проблему.Давайте предположим, что успешное внедрение системы NIS в вашей
лаборатории заинтересовало ваше руководство. Вашим следующим заданием
стало расширение домена NIS для включения в него некоторых других
машин студенческого городка. В двух таблицах перечислены имена
новых машин и пользователей, а также их краткое описание.Имена пользователейОписаниеalpha, betaОбычные служащие IT-департаментаcharlie, deltaПрактиканты IT-департаментаecho, foxtrott, golf, ...Обычные сотрудникиable, baker, ...Проходящие интернатуруИмена машинОписаниеwar, death, famine, pollutionВаши самые важные серверы. Только служащим IT позволяется
входить на эти машины.pride, greed, envy, wrath, lust, slothМенее важные серверы. Все сотрудники департамента IT могут
входить на эти машины.one, two, three, four, ...Обычные рабочие станции. Только
реально нанятым служащим позволяется
использовать эти машины.trashcanОчень старая машина без каких-либо критичных данных. Даже
проходящим интернатуру разрешено ее использовать.Если вы попытаетесь реализовать эти требования, ограничивая
каждого пользователя по отдельности, то вам придется добавить на каждой
машине в файл passwd по одной строчке
-user для каждого пользователя, которому
запрещено входить на эту систему. Если вы забудете даже одну строчку,
у вас могут начаться проблемы. Гораздо проще делать это правильно во
время начальной установки, однако вы постепенно будете
забывать добавлять строчки для новых пользователей во время
повседневной работы. В конце концов, Мерфи был оптимистом.Использование в этой ситуации сетевых групп дает несколько
преимуществ. Нет необходимости описывать по отдельности каждого
пользователя; вы ставите в соответствие пользователю одну или
несколько сетевых групп и разрешаете или запрещаете вход всем членам
сетевой группы. Если вы добавляете новую машину, вам достаточно
определить ограничения на вход для сетевых групп. Если добавляется
новый пользователь, вам достаточно добавить его к одной или большему
числу сетевых групп. Эти изменения независимы друг от друга: нет
больше комбинаций для каждого пользователя и машины.
Если настройка вашей системы NIS тщательно спланирована, то для
разрешения или запрещения доступа к машинам вам нужно будет
модифицировать единственный конфигурационный файл.Первым шагом является инициализация карты NIS по имени netgroup.
Программа &man.ypinit.8; во FreeBSD по умолчанию этой карты не
создаёт, хотя реализация NIS будет её поддерживает, как только она
будет создана. Чтобы создать пустую карту, просто наберитеellington&prompt.root; vi /var/yp/netgroupи начните добавлять содержимое. Например, нам нужно по крайней
мере четыре сетевых группы: сотрудники IT, практиканты IT, обычные
сотрудники и интернатура.IT_EMP (,alpha,test-domain) (,beta,test-domain)
IT_APP (,charlie,test-domain) (,delta,test-domain)
USERS (,echo,test-domain) (,foxtrott,test-domain) \
(,golf,test-domain)
INTERNS (,able,test-domain) (,baker,test-domain)IT_EMP, IT_APP и так далее
являются именами сетевых групп. Несколько слов в скобках служат для
добавления пользователей в группу. Три поля внутри группы обозначают
следующее:Имя хоста или хостов, к которым применимы последующие записи.
Если имя хоста не указано, то запись применяется ко всем хостам.
Если же указывается имя хоста, то вы получите мир темноты, ужаса
и страшной путаницы.Имя учетной записи, которая принадлежит этой сетевой
группе.Домен NIS для учетной записи. Вы можете импортировать в вашу
сетевую группу учетные записи из других доменов NIS, если вы один
из тех несчастных, имеющих более одного домена NIS.Каждое из этих полей может содержать шаблоны, подробности даны в
странице справочника по &man.netgroup.5;.сетевые группыНе нужно использовать имена сетевых групп длиннее 8 символов,
особенно если в вашем домене NIS имеются машины, работающие под
управлением других операционных систем. Имена чувствительны к
регистру; использование заглавных букв для имен сетевых групп
облегчает распознавание пользователей, имен машин и сетевых
групп.Некоторые клиенты NIS (отличные от FreeBSD) не могут работать
с сетевыми группами, включающими большое количество записей.
Например, в некоторых старых версиях &sunos; возникают проблемы, если
сетевая группа содержит более 15 записей. Вы
можете обойти это ограничение, создав несколько подгрупп с 15 или
меньшим количеством пользователей и настоящую сетевую группу,
состоящую из подгрупп:BIGGRP1 (,joe1,domain) (,joe2,domain) (,joe3,domain) [...]
BIGGRP2 (,joe16,domain) (,joe17,domain) [...]
BIGGRP3 (,joe31,domain) (,joe32,domain)
BIGGROUP BIGGRP1 BIGGRP2 BIGGRP3Вы можете повторить этот процесс, если вам нужно иметь более 225
пользователей в одной сетевой группе.Активация и распространение вашей карты NIS проста:ellington&prompt.root; cd /var/yp
ellington&prompt.root; makeЭто приведет к созданию трех карт NIS
netgroup, netgroup.byhost и
netgroup.byuser. Воспользуйтесь утилитой
&man.ypcat.1; для проверки доступности ваших новых карт NIS:ellington&prompt.user; ypcat -k netgroup
ellington&prompt.user; ypcat -k netgroup.byhost
ellington&prompt.user; ypcat -k netgroup.byuserВывод первой команды должен соответствовать содержимому файла
/var/yp/netgroup. Вторая команда не выведет
ничего, если вы не зададите сетевые группы, специфичные для хоста.
Третья команда может использоваться пользователем для получения
списка сетевых групп.Настройка клиента достаточно проста. Чтобы настроить сервер
war, вам достаточно запустить &man.vipw.8;
и заменить строку+:::::::::на+@IT_EMP:::::::::Теперь только данные, касающиеся пользователей, определенных в
сетевой группе IT_EMP, импортируются в
базу паролей машины war и только этим
пользователям будет разрешен вход.К сожалению, это ограничение также касается и функции ~ командного
процессора и всех подпрограмм, выполняющих преобразование между
именами пользователей и их числовыми ID. Другими
словами, команда cd ~user
работать не будет, команда ls -l будет выдавать
числовые идентификаторы вместо имён пользователей, а
find . -user joe -print работать откажется, выдавая
сообщение No such user. Чтобы это исправить,
вам нужно будет выполнить импорт всех записей о пользователях
без разрешения на вход на ваши серверы.Это можно сделать, добавив еще одну строку в файл
/etc/master.passwd. Эта строка должна
содержать:+:::::::::/sbin/nologin, что означает
Произвести импортирование всех записей с заменой командного
процессора на /sbin/nologin в импортируемых
записях. Вы можете заменить любое поле в строке с паролем,
указав значение по умолчанию в вашем
/etc/master.passwd.Проверьте, что строка
+:::::::::/sbin/nologin помещена после
+@IT_EMP:::::::::. В противном случае все
пользовательские записи, импортированные из NIS, будут иметь
/sbin/nologin в качестве оболочки.После этого изменения при появлении нового сотрудника IT вам будет
достаточно изменять только одну карту NIS. Вы можете применить
подобный метод для менее важных серверов, заменяя
старую строку +::::::::: в их файлах
/etc/master.passwd на нечто, подобное
следующему:+@IT_EMP:::::::::
+@IT_APP:::::::::
+:::::::::/sbin/nologinСоответствующие строки для обычных рабочих станций могут иметь
такой вид:+@IT_EMP:::::::::
+@USERS:::::::::
+:::::::::/sbin/nologinИ все было прекрасно до того момента, когда через несколько
недель изменилась политика: Департамент IT начал нанимать интернатуру.
Интернатуре в IT позволили использовать обычные рабочие станции и
менее важные серверы; практикантам позволили входить на главные
серверы. Вы создали новую сетевую группу IT_INTERN, добавили в нее
новую интернатуру и начали изменять настройки на всех и каждой
машине... Как говорит старая мудрость: Ошибки в
централизованном планировании приводят к глобальному
хаосу.Возможность в NIS создавать сетевые группы из других сетевых
групп может использоваться для предотвращения подобных ситуаций. Одним
из вариантов является создание сетевых групп на основе ролей.
Например, вы можете создать сетевую группу с именем
BIGSRV для задания ограничений на вход на
важные серверы, другую сетевую группу с именем
SMALLSRV для менее важных серверов и третью
сетевую группу под названием USERBOX для
обычных рабочих станций. Каждая из этих сетевых групп содержит
сетевые группы, которым позволено входить на эти машины. Новые записи
для вашей карты NIS сетевой группы должны выглядеть таким
образом:BIGSRV IT_EMP IT_APP
SMALLSRV IT_EMP IT_APP ITINTERN
USERBOX IT_EMP ITINTERN USERSЭтот метод задания ограничений на вход работает весьма хорошо,
если вы можете выделить группы машин с одинаковыми ограничениями. К
сожалению, такая ситуация может быть исключением, но не правилом. В
большинстве случаев вам нужна возможность определять ограничения на
вход индивидуально для каждой машины.Задание сетевых групп в зависимости от машин является другой
возможностью, которой можно воспользоваться при изменении политики,
описанной выше. При таком развитии событий файл
/etc/master.passwd на каждой машине содержит две
строки, начинающиеся с +. Первая из них добавляет
сетевую группу с учётными записями, которым разрешено входить на эту
машину, а вторая добавляет все оставшиеся учетные записи с
/sbin/nologin в качестве командного процессора.
Хорошей идеей является использование ИМЕНИ МАШИНЫ заглавными буквами
для имени сетевой группы. Другими словами, строки должны иметь такой
вид:+@BOXNAME:::::::::
+:::::::::/sbin/nologinКак только вы завершите эту работу для всех ваших машин, вам не
нужно будет снова модифицировать локальные версии
/etc/master.passwd. Все будущие изменения могут
быть выполнены изменением карты NIS. Вот пример возможной карты
сетевой группы для этого случая с некоторыми полезными
дополнениями:# Сначала определяем группы пользователей
IT_EMP (,alpha,test-domain) (,beta,test-domain)
IT_APP (,charlie,test-domain) (,delta,test-domain)
DEPT1 (,echo,test-domain) (,foxtrott,test-domain)
DEPT2 (,golf,test-domain) (,hotel,test-domain)
DEPT3 (,india,test-domain) (,juliet,test-domain)
ITINTERN (,kilo,test-domain) (,lima,test-domain)
D_INTERNS (,able,test-domain) (,baker,test-domain)
#
# Теперь задаем несколько групп на основе ролей
USERS DEPT1 DEPT2 DEPT3
BIGSRV IT_EMP IT_APP
SMALLSRV IT_EMP IT_APP ITINTERN
USERBOX IT_EMP ITINTERN USERS
#
# И группы для специальных задач
# Открыть пользователям echo и golf доступ к антивирусной машине
SECURITY IT_EMP (,echo,test-domain) (,golf,test-domain)
#
# Сетевые группы, специфичные для машин
# Наши главные серверы
WAR BIGSRV
FAMINE BIGSRV
# Пользователю india необходим доступ к этому серверу
POLLUTION BIGSRV (,india,test-domain)
#
# Этот очень важен и ему требуются большие ограничения доступа
DEATH IT_EMP
#
# Антивирусная машина, упомянутая выше
ONE SECURITY
#
# Ограничить машину единственным пользователем
TWO (,hotel,test-domain)
# [...далее следуют другие группы]Если вы используете какие-либо базы данных для управления
учетными записями ваших пользователей, вы должны смочь создать первую
часть карты с помощью инструментов построения отчетов вашей базы
данных. В таком случае новые пользователи автоматически получат
доступ к машинам.И последнее замечание: Не всегда бывает разумно использовать
сетевые группы на основе машин. Если в студенческих лабораториях вы
используете несколько десятков или даже сотен одинаковых машин, то
вам нужно использовать сетевые группы на основе ролей, а не основе
машин, для того, чтобы размеры карты NIS оставались в разумных
пределах.Важные замечанияЕсть некоторые действия, которые нужно будет выполнять по-другому,
если вы работаете с NIS.Каждый раз, когда вы собираетесь добавить пользователя в
лаборатории, вы должны добавить его только на
главном сервере NIS и обязательно перестроить карты
NIS. Если вы забудете сделать это, то новый
пользователь не сможет нигде войти, кроме как на главном сервере
NIS. Например, если в лаборатории нам нужно добавить нового
пользователя jsmith, мы делаем вот что:&prompt.root; pw useradd jsmith
&prompt.root; cd /var/yp
&prompt.root; make test-domainВместо pw useradd jsmith вы можете также
запустить команду adduser jsmith.Не помещайте административные учетные записи в карты
NIS. Вам не нужно распространять административных
пользователей и их пароли на машины, которые не должны иметь доступ
к таким учётным записям.Сделайте главный и вторичные серверы NIS безопасными
и минимизируйте их время простоя. Если кто-то либо
взломает, либо просто отключит эти машины, то люди без права
входа в лабораторию с легкостью получат доступ.Это основное уязвимое место в любой централизованно
администрируемой системе. Если вы не
защищаете ваши серверы NIS, вы будете иметь дело с толпой
разозлённых пользователей!Совместимость с NIS v1ypserv из поставки FreeBSD имеет
встроенную поддержку для обслуживания клиентов NIS v1. Реализация
NIS
во FreeBSD использует только протокол NIS v2, хотя другие реализации
имеют поддержку протокола v1 для совместимости со старыми системами.
Даемоны ypbind, поставляемые с такими
системами, будут пытаться осуществить привязку к серверу NIS v1, даже
если это им не нужно (и они будут постоянно рассылать широковещательные
запросы в поиске такого сервера даже после получения ответа от сервера
v2). Отметьте, что хотя имеется поддержка обычных клиентских вызовов,
эта версия ypserv не отрабатывает запросы на передачу карт v1;
следовательно, она не может использоваться в качестве главного или
вторичного серверов вместе с другими серверами NIS, поддерживающими
только протокол v1. К счастью, скорее всего, в настоящий момент
такие серверы практически не используются.Серверы NIS, которые также являются клиентами NISОсобое внимание следует уделить использованию
ypserv в домене со
многими серверами, когда серверные машины являются также клиентами
NIS.
Неплохо бы заставить серверы осуществить привязку к самим себе,
запретив рассылку запросов на привязку и возможно, перекрестную
привязку друг к другу. Если один сервер выйдет из строя, а другие
будут зависеть от него, то в результате могут возникнуть странные
ситуации. Постепенно все клиенты попадут в таймаут и попытаются
привязаться к другим серверам, но полученная задержка может быть
значительной, а странности останутся, так как серверы снова могут
привязаться друг к другу.Вы можете заставить хост выполнить привязку к конкретному серверу,
запустив команду ypbind с флагом
. Если вы не хотите делать это вручную каждый
раз при перезагрузке
вашего сервера NIS, то можете добавить в файл
/etc/rc.conf такие строки:nis_client_enable="YES" # run client stuff as well
nis_client_flags="-S NIS domain,server"Дополнительную информацию можно найти на странице справки по
&man.ypbind.8;.Форматы паролейNISформаты паролейОдним из общих вопросов, которые возникают в начале работы с NIS,
является вопрос совместимости форматов паролей. Если ваш сервер NIS
использует пароли, зашифрованные алгоритмом DES, то он будет
поддерживать только тех клиентов, что также используют DES. К
примеру, если в вашей сети имеются клиенты NIS, использующие &solaris;,
то вам, скорее всего, необходимо использовать пароли с шифрованием по
алгоритму DES.Чтобы понять, какой формат используют ваши серверы и клиенты,
загляните в файл /etc/login.conf. Если хост
настроен на использование паролей, зашифрованных по алгоритму DES,
то класс default будет содержать запись вроде
следующей:default:\
:passwd_format=des:\
:copyright=/etc/COPYRIGHT:\
[Последующие строки опущены]Другими возможными значениями для passwd_format
являются blf и md5 (для паролей,
шифруемых по стандартам Blowfish и MD5 соответственно).Если вы внесли изменения в файл
/etc/login.conf, то вам также нужно перестроить
базу данных параметров входа в систему, что достигается запуском
следующей команды пользователем root:&prompt.root; cap_mkdb /etc/login.confФормат паролей, которые уже находятся в файле
/etc/master.passwd, не будет изменён до тех пор,
пока пользователь не сменит свой пароль после
перестроения базы данных параметров входа в систему.После этого, чтобы удостовериться в том, что пароли зашифрованы
в том формате, который выбран вами, нужно проверить, что строка
crypt_default в /etc/auth.conf
указывает предпочтение выбранного вами формата паролей. Для этого
поместите выбранный формат первым в списке. Например, при
использовании DES-шифрования паролей строка будет выглядеть так:crypt_default = des blf md5Выполнив вышеперечисленные шаги на каждом из серверов и клиентов
NIS, работающих на FreeBSD, вы можете обеспечить их согласованность
относительно используемого в вашей сети формата паролей. Если у вас
возникли проблемы с аутентификацией клиента NIS, начать
её решать определённо стоит отсюда. Запомните: если вы хотите
использовать сервер NIS в гетерогенной сети, вам, наверное, нужно
будет использовать DES на всех системах в силу того, что это
минимальный общий стандарт.GregSutterТекст написал Автоматическая настройка сети (DHCP)Что такое DHCP?Dynamic Host Configuration ProtocolDHCPInternet Software Consortium (ISC)DHCP, или Dynamic Host Configuration Protocol (Протокол
Динамической Конфигурации Хостов), описывает порядок, по которому
система может подключиться к сети и получить необходимую информацию
для работы в ней. Во FreeBSD используется реализация DHCP от ISC
(Internet Software Consortium), так что вся информация, описывающая
особенности, зависящие от реализации, относится к дистрибутиву
ISC.Что описывается в этом разделеВ этом разделе описываются компоненты системы ISC DHCP как со стороны
клиента, так и со стороны сервера. Программа, работающая на клиентской
стороне, dhclient, интегрирована в поставку FreeBSD,
а серверная часть доступна в виде порта net/isc-dhcp3-server. Кроме ссылок ниже,
много полезной информации находится на страницах справочной системы,
описывающих &man.dhclient.8;, &man.dhcp-options.5; и
&man.dhclient.conf.5;.Как это работаетUDPКогда на клиентской машине выполняется программа
dhclient, являющаяся клиентом DHCP, она начинает
широковещательную рассылку запросов на получение настроечной информации.
По умолчанию эти запросы делаются на 68 порт UDP. Сервер отвечает на UDP
67, выдавая клиенту адрес IP и другую необходимую информацию, такую, как
сетевую маску, маршрутизатор и серверы DNS. Вся эта информация даётся в
форме аренды DHCP и верна только определенное время (что
настраивается администратором сервера DHCP). При таком подходе
устаревшие адреса IP тех клиентов, которые больше не подключены к сети,
могут автоматически использоваться повторно.Клиенты DHCP могут получить от сервера очень много информации.
Подробный список находится в странице Справочника
&man.dhcp-options.5;.Интеграция с FreeBSDКлиент DHCP от ISC, dhclient, полностью
интегрирован во FreeBSD. Поддержка клиента DHCP есть как в программе
установки, так и в самой системе, что исключает необходимость в
знании подробностей конфигурации сети в любой сети, имеющей сервер
DHCP. Утилита dhclient включена во все версии
FreeBSD, начиная с 3.2.sysinstallDHCP поддерживается утилитой sysinstall.
При настройке сетевого интерфейса из программы
sysinstall первый
вопрос, который вам задается: Do you want to try DHCP
configuration of this interface? (Хотите ли вы попробовать
настроить этот интерфейс через DHCP?). Утвердительный ответ
приведёт к запуску программы dhclient, и при удачном
его выполнении к автоматическому заданию информации для настройки
интерфейса.Есть две вещи, которые вы должны сделать для того, чтобы ваша
система использовала DHCP при загрузке:DHCPтребованияУбедитесь, что устройство bpf
включено в компиляцию вашего ядра. Чтобы это сделать, добавьте
строчку device bpf
(pseudo-device bpf в &os; 4.X)
в конфигурационный
файл ядра и перестройте ядро. Более подробная информация о
построении ядер имеется в .Устройство bpf уже является частью
ядра GENERIC, которое поставляется вместе с
FreeBSD, так что, если вы не используете другое ядро, то вам и
не нужно его делать для того, чтобы работал DHCP.Те, кто беспокоится о безопасности, должны иметь в виду, что
устройство bpf является также тем самым
устройством, которое позволяет работать программам-снифферам
пакетов (хотя для этого они должны быть запущены пользователем
root). Наличие устройства
bpfнеобходимо для
использования DHCP, но если вы чересчур беспокоитесь о
безопасности, то вам нельзя добавлять устройство
bpf в ядро только для того, чтобы
в неопределённом будущем использовать DHCP.Отредактируйте ваш файл /etc/rc.conf,
включив в него следующее:ifconfig_fxp0="DHCP"Обязательно замените fxp0 на имя интерфейса,
который вы хотите настраивать динамически, как это описано в .Если dhclient в вашей системе находится в другом
месте или если вы хотите задать дополнительные параметры для
dhclient, то также укажите следующее (изменив так,
как вам нужно):dhcp_program="/sbin/dhclient"
dhcp_flags=""DHCPсерверСервер DHCP, dhcpd, включён как часть порта
net/isc-dhcp3-server в коллекцию
портов. Этот порт содержит DHCP-сервер от ISC и документацию.ФайлыDHCPконфигурационные файлы/etc/dhclient.confdhclient требует наличия конфигурационного
файла, /etc/dhclient.conf. Как правило, файл
содержит только комментарии, а настройки по умолчанию достаточно
хороши. Этот настроечный файл описан на страницах справочной
системы по &man.dhclient.conf.5;./sbin/dhclientdhclient скомпонован статически и находится
в каталоге /sbin. На страница Справочника
&man.dhclient.8; дается более подробная информация о
dhclient./sbin/dhclient-scriptdhclient-script является специфичным для
FreeBSD скриптом настройки клиента DHCP. Он описан в
&man.dhclient-script.8;, но для нормального функционирования
никаких модификаций со стороны пользователя не требуется./var/db/dhclient.leasesВ этом файле клиент DHCP хранит базу данных выданных к
использованию адресов в виде журнала. На странице
&man.dhclient.leases.5; дается гораздо более подробное
описание.Дополнительная литератураПолное описание протокола DHCP дается в RFC 2131. Кроме
того, дополнительная информация есть на сервере .Установка и настройка сервера DHCPЧему посвящён этот разделЭтот раздел даёт информацию о том, как настроить систему
FreeBSD для работы в качестве сервера DHCP на основе реализации
пакета DHCP от ISC (Internet Software Consortium).Серверная часть пакета не поставляется как часть FreeBSD, так
что вам потребуется установить порт net/isc-dhcp3-relay для получения
этого сервиса. Обратитесь к для получения
более полной информации об использовании коллекции портов.Установка сервера DHCPDHCPустановкаДля того, чтобы настроить систему FreeBSD на работу в качестве
сервера DHCP, вам необходимо обеспечить присутствие устройства
&man.bpf.4;, вкомпилированного в ядро. Для этого
добавьте строку device bpf
(pseudo-device bpf в &os; 4.X) в файл
конфигурации вашего ядра. Для получения более полной информации о
построении ядер, обратитесь к .Устройство bpf уже входит в состав
ядра GENERIC, поставляемого с FreeBSD, так что
вам не нужно создавать собственное ядро для обеспечения работы
DHCP.Те, кто обращает особое внимание на вопросы безопасности,
должны заметить, что bpf является тем
устройством, что позволяет нормально работать снифферам пакетов
(хотя таким программам требуются привилегированный доступ).
Наличие устройства bpfобязательно для использования DHCP, но если
вы очень обеспокоены безопасностью, наверное, вам не нужно
включать bpf в ваше ядро только потому,
что в отдалённом будущем вы собираетесь использовать DHCP.Следующим действием, которое вам нужно выполнить, является
редактирование примерного dhcpd.conf, который
устанавливается в составе порта net/isc-dhcp3-server. По умолчанию это
файл /usr/local/etc/dhcpd.conf.sample, и вы
должны скопировать его в файл
/usr/local/etc/dhcpd.conf перед тем, как его
редактировать.Настройка сервера DHCPDHCPdhcpd.confdhcpd.conf состоит из деклараций
относительно подсетей и хостов, и проще всего описывается на
примере:option domain-name "example.com";
option domain-name-servers 192.168.4.100;
option subnet-mask 255.255.255.0;
default-lease-time 3600;
max-lease-time 86400;
ddns-update-style none;
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.129 192.168.4.254;
option routers 192.168.4.1;
}
host mailhost {
hardware ethernet 02:03:04:05:06:07;
fixed-address mailhost.example.com;
}Этот параметр задаёт домен, который будет выдаваться
клиентам в качестве домена, используемого по умолчанию при
поиске. Обратитесь к страницам справочной системы по
&man.resolv.conf.5; для получения дополнительной информации о
том, что это значит.Этот параметр задаёт список разделённых запятыми серверов
DNS, которые должен использовать клиент.Маска сети, которая будет выдаваться клиентам.Клиент может запросить определённое время, которое будет
действовать выданная информация. В противном случае сервер
выдаст настройки с этим сроком (в секундах).Это максимальное время, на которое сервер будет выдавать
конфигурацию. Если клиент запросит больший срок, он будет
подтверждён, но будет действовать только
max-lease-time секунд.Этот параметр задаёт, будет ли сервер DHCP пытаться
обновить DNS при выдаче или освобождении конфигурационной
информации. В реализации ISC этот параметр является
обязательным.Это определение того, какие IP-адреса должны использоваться
в качестве резерва для выдачи клиентам. IP-адреса между и
включая границы, будут выдаваться клиентам.Объявление маршрутизатора, используемого по умолчанию,
который будет выдаваться клиентам.Аппаратный MAC-адрес хоста (чтобы сервер DHCP мог
распознать хост, когда тот делает запрос).Определение того, что хосту всегда будет выдаваться один и
тот же IP-адрес. Заметьте, что указание здесь имени хоста
корректно, так как сервер DHCP будет разрешать имя хоста
самостоятельно до того, как выдать конфигурационную
информацию.Как только вы закончите составлять свой
dhcpd.conf, вы можете продолжить работу
запуском сервера при помощи следующей команды:&prompt.root; /usr/local/etc/rc.d/isc-dhcpd.sh startЕсли в будущем вам понадобится сделать изменения в настройке
вашего сервера, то важно заметить, что посылка сигнала
SIGHUP приложению
dhcpdне приведёт к
перезагрузке настроек, как это бывает для большинства даемонов.
Вам нужно послать сигнал SIGTERM для остановки
процесса, а затем перезапустить его при помощи вышеприведённой
команды.ФайлыDHCPконфигурационный файлы/usr/local/sbin/dhcpddhcpd скомпонован статически и
расположен в каталоге /usr/local/sbin.
Страницы справочной системы &man.dhcpd.8;,
устанавливаемые портом, содержат более полную информацию о
dhcpd./usr/local/etc/dhcpd.confdhcpd требует наличия
конфигурационного файла,
/usr/local/etc/dhcpd.conf, до того, как
он будет запущен и начнёт предоставлять сервис клиентам.
Необходимо, чтобы этот файл содержал все данные, которая
будет выдаваться обслуживаемым клиентам, а также информацию о
работе сервера. Этот конфигурационный файл описывается на
страницах справочной системы &man.dhcpd.conf.5;, которые
устанавливаются портом./var/db/dhcpd.leasesСервер DHCP ведёт базу данных выданной информации в этом
файле, который записывается в виде протокола. Страницы
справочной системы &man.dhcpd.leases.5;, устанавливаемые портом,
дают гораздо более подробное описание./usr/local/sbin/dhcrelaydhcrelay используется в сложных
ситуациях, когда сервер DHCP пересылает запросы от клиента
другому серверу DHCP в отдельной сети. Если вам нужна такая
функциональность, то установите порт net/isc-dhcp3-server. На страницах
справочной системы &man.dhcrelay.8;, которые устанавливаются
портом, даётся более полное описание.ChernLeeТекст предоставил Domain Name System (DNS)ОбзорBINDПо умолчанию во FreeBSD используется одна из версий программы BIND
(Berkeley Internet Name Domain), являющейся самой распространенной
реализацией протокола DNS. DNS - это протокол, при помощи которого
имена преобразуются в IP-адреса и наоборот. Например, в ответ на
запрос о www.FreeBSD.org будет получен IP-адрес
веб-сервера Проекта FreeBSD, а запрос о
ftp.FreeBSD.org возвратит IP-адрес соответствующей
машины с FTP-сервером. Точно также происходит и обратный процесс.
Запрос, содержащий IP-адрес машины, возвратит имя хоста. Для
выполнения запросов к DNS вовсе не обязательно иметь в системе
работающий сервер имён.DNSВ сети Интернет DNS управляется через достаточно сложную систему
авторизированных корневых серверов имён, и других менее крупных
серверов имён, которые содержат и кэшируют информацию о конкретных
доменах.В этом документа рассматривается BIND 8.x, так как это стабильная
версия, используемая во FreeBSD. BIND 9.x может быть установлен как
порт net/bind9.Протокол DNS стандартизован в RFC1034 и RFC1035.На данный момент пакет BIND поддерживается Internet Software
Consortium .Используемая терминологияДля понимания этого документа нужно понимать значения некоторых
терминов, связанных с работой DNS.резолверобратный DNSкорневая зонаТерминОпределениеПрямой запрос к DNS (forward DNS)Преобразование имён хостов в адреса IPОриджин (origin)Обозначает домен, покрываемый конкретным файлом
зоныnamed, bind, сервер
имёнОбщеупотребительные названия для обозначения пакета BIND,
обеспечивающего работу сервера имён во FreeBSD.РезолверСистемный процесс, посредством которого машина обращается
к серверу имён для получения информации о зонеОбратный DNS (reverse DNS)Операция, обратная прямому запросу к DNS; преобразование
адресов IP в имена хостовКорневая зонаНачало иерархии зон Интернет. Все зоны находятся под
корневой зоной, подобно тому, как все файлы располагаются ниже
корневого каталога.ЗонаОтдельный домен, поддомен или часть DNS, управляемая
одним сервером.зоныпримерыПримеры зон:. является корневой зонойorg. является зоной ниже корневой зоныexample.org является зоной под зоной
org.foo.example.org. является поддоменом,
зоной под зоной example.org.1.2.3.in-addr.arpa является зоной, в которую
включены все IP-адреса, формирующие пространство адресов
3.2.1.*.Как можно видеть, уточняющая часть имени хоста появляется слева.
Например, example.org. более точен, чем
org., также, как org. более
точен, чем корневая зона. Расположение каждой части имени хоста сильно
похоже на файловую систему: каталог /dev
расположен в корневой файловой системе, и так далее.Причины, по которым вам может понадобиться сервер имёнСервера имён обычно используются в двух видах: авторитетный сервер
имён и кэширующий сервер имён.Авторитетный сервер имён нужен, когда:нужно предоставлять информацию о DNS остальному миру, отвечая
на запросы авторизированно.зарегистрирован домен, такой, как
example.org и в этом домене требуется
поставить имена машин в соответствие с их адресами IP.блоку адресов IP требуется обратные записи DNS (IP в имена
хостов).резервный (slave) сервер имён должен отвечать на запросы о
домене, когда основной не работает или не доступен.Кэширующий сервер имён нужен, когда:локальный сервер DNS может кэшировать информацию и отвечать на
запросы быстрее, чем это происходит при прямом опросе внешнего
сервера имён.требуется уменьшение общего сетевого трафика (DNS
составляет около 5% всего трафика Интернет, или чуть
больше).Например, когда кто-нибудь запрашивает информацию о
www.FreeBSD.org, то обычно резолвер обращается к
серверу имён вашего провайдера, посылает запрос и ожидает ответа. С
локальным кэширующим сервером DNS запрос во внешний мир будет делаться
всего один раз. Каждый дополнительный запрос не будет посылаться за
пределы локальной сети, потому что информация уже имеется в
кэше.Как это работаетВо FreeBSD даемон BIND, по очевидным причинам, называется
named.ФайлОписаниеnamedдаемон BINDndcпрограмма управления даемоном сервера имён/etc/namedbкаталог, в котором располагается вся информация о зонах
BIND/etc/namedb/named.confконфигурационный файл для даемонаФайлы зон обычно располагаются в каталоге
/etc/namedb и содержат информацию о зоне DNS,
за которую отвечает сервер имён.Запуск BINDBINDзапускТак как сервер имён BIND устанавливается по умолчанию, его
настройка сравнительно проста.Чтобы даемон named запускался во
время загрузки, поместите в /etc/rc.conf
следующую строку:named_enable="YES"Для запуска даемона вручную (после его настройки):&prompt.root; ndc startКонфигурационные файлыBINDконфигурационные файлыИспользование make-localhostОбязательно выполните следующие команды:&prompt.root; cd /etc/namedb
&prompt.root; sh make-localhostдля того, чтобы правильно создать файл
/etc/namedb/localhost.rev локальной обратной
зоны для loopback-интерфейса./etc/namedb/named.conf// $FreeBSD$
//
// Refer to the named(8) manual page for details. If you are ever going
// to setup a primary server, make sure you've understood the hairy
// details of how DNS is working. Even with simple mistakes, you can
// break connectivity for affected parties, or cause huge amount of
// useless Internet traffic.
options {
directory "/etc/namedb";
// In addition to the "forwarders" clause, you can force your name
// server to never initiate queries of its own, but always ask its
// forwarders only, by enabling the following line:
//
// forward only;
// If you've got a DNS server around at your upstream provider, enter
// its IP address here, and enable the line below. This will make you
// benefit from its cache, thus reduce overall DNS traffic in the
Internet.
/*
forwarders {
127.0.0.1;
};
*/Как и говорится в комментариях, если вы хотите получить эффект от
использования кэша провайдера, то можно включить раздел
forwarders. В обычном случае сервер имён будет
рекурсивно опрашивать определённые серверы имён Интернет до тех пор,
пока не получит ответ на свой запрос. При включении этого раздела
он будет автоматически опрашивать сервер имён вашего провайдера (или
тот, который здесь указан), используя преимущества его кэша.
наличия нужной информации. Если соответствующий сервер имён провайдера
работает быстро и имеет хороший канал связи, то в результате такой
настройки вы можете получить хороший результат.
127.0.0.1 здесь
работать не будет. Измените
его на IP-адрес сервера имён провайдера./*
* If there is a firewall between you and name servers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
/*
* If running in a sandbox, you may have to specify a different
* location for the dumpfile.
*/
// dump-file "s/named_dump.db";
};
// Note: the following will be supported in a future release.
/*
host { any; } {
topology {
127.0.0.0/8;
};
};
*/
// Setting up secondaries is way easier and the rough picture for this
// is explained below.
//
// If you enable a local name server, don't forget to enter 127.0.0.1
// into your /etc/resolv.conf so this server will be queried first.
// Also, make sure to enable it in /etc/rc.conf.
zone "." {
type hint;
file "named.root";
};
zone "0.0.127.IN-ADDR.ARPA" {
type master;
file "localhost.rev";
};
zone
"0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.INT" {
type master;
file "localhost.rev";
};
// NB: Do not use the IP addresses below, they are faked, and only
// serve demonstration/documentation purposes!
//
// Example secondary config entries. It can be convenient to become
// a secondary at least for the zone where your own domain is in. Ask
// your network administrator for the IP address of the responsible
// primary.
//
// Never forget to include the reverse lookup (IN-ADDR.ARPA) zone!
// (This is the first bytes of the respective IP address, in reverse
// order, with ".IN-ADDR.ARPA" appended.)
//
// Before starting to setup a primary zone, better make sure you fully
// understand how DNS and BIND works, however. There are sometimes
// unobvious pitfalls. Setting up a secondary is comparably simpler.
//
// NB: Don't blindly enable the examples below. :-) Use actual names
// and addresses instead.
//
// NOTE!!! FreeBSD runs BIND in a sandbox (see named_flags in rc.conf).
// The directory containing the secondary zones must be write accessible
// to BIND. The following sequence is suggested:
//
// mkdir /etc/namedb/s
// chown bind:bind /etc/namedb/s
// chmod 750 /etc/namedb/sДополнительная информация о запуске BIND в ограниченном окружении
находится в соответствующем
разделе./*
zone "example.com" {
type slave;
file "s/example.com.bak";
masters {
192.168.1.1;
};
};
zone "0.168.192.in-addr.arpa" {
type slave;
file "s/0.168.192.in-addr.arpa.bak";
masters {
192.168.1.1;
};
};
*/Это примеры описаний прямой и обратной зон из файла
named.conf для вторичных серверов.Для каждого новой зоны, которую будет обслуживать сервер имён,
в файл named.conf должна быть добавлена
запись.К примеру, самая простая запись для домена example.org может выглядеть вот так:zone "example.org" {
type master;
file "example.org";
};Зона является первичной, что отражается в поле
, и информация о зоне хранится в файле
/etc/namedb/example.org, что указывается в
поле .zone "example.org" {
type slave;
file "example.org";
};В случае вторичной зоны информация о ней передается с основного
сервера имён для заданной зоны и сохраняется в указанном файле. Если
и когда основной сервер имён выходит и строя или недосягаем, то
скачанная информация о зоне будет находиться на вторичных серверах и
они смогут обслуживать эту зону.Файлы зонПример файла зоны example.org
для основного
сервера (располагающийся в файле
/etc/namedb/example.org) имеет такой
вид:$TTL 3600
example.org. IN SOA ns1.example.org. admin.example.org. (
5 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL
; DNS Servers
@ IN NS ns1.example.org.
@ IN NS ns2.example.org.
; Machine Names
localhost IN A 127.0.0.1
ns1 IN A 3.2.1.2
ns2 IN A 3.2.1.3
mail IN A 3.2.1.10
@ IN A 3.2.1.30
; Aliases
www IN CNAME @
; MX Record
@ IN MX 10 mail.example.org.Заметьте, что все имена хостов, оканчивающиеся на .,
задают полное имя, тогда как все имена без символа . на
конце считаются заданными относительно origin. Например,
www преобразуется в
www.origin.
В нашем воображаемом файле ориджином является
example.org., так что
www преобразуется в
www.example.org.Файл зоны имеет следующий формат:recordname IN recordtype valueDNSзаписиНаиболее часто используемые записи DNS:SOAначало зоны ответственностиNSавторитативный сервер именAадрес хостаCNAMEканоническое имя для алиасаMXобмен почтойPTRуказатель на доменное имя (используется в обратных
зонах DNS)example.org. IN SOA ns1.example.org. admin.example.org. (
5 ; Serial
10800 ; Refresh after 3 hours
3600 ; Retry after 1 hour
604800 ; Expire after 1 week
86400 ) ; Minimum TTL of 1 dayexample.org.имя домена, а также ориджин для этого файла зоны.ns1.example.org.основной/авторитативный сервер имён для этой зоны.admin.example.org.человек, отвечающий за эту зону, адрес электронной почты с
подменённым символом @. (admin@example.org
становится admin.example.org)5последовательный номер файла. При каждом изменении файла
зоны это число должно увеличиваться. В настоящее время для
нумерации многие администраторы предпочитают формат
ггггммддвв. 2001041002
будет означать, что
файл последний раз изменялся 10.04.2001, а последнее число
02
означает, что это была вторая модификация файла за день.
Последовательный номер важен, так как он служит для того, чтобы
вторичные серверы узнавали об обновлении зоны.@ IN NS ns1.example.org.Это NS-запись. Такие записи должны иметься для
всех серверов имён, которые будут отвечать за зону. Символ
@, используемый здесь, преобразуется в
example.org. Этот
символ @ соответствует ориджину.localhost IN A 127.0.0.1
ns1 IN A 3.2.1.2
ns2 IN A 3.2.1.3
mail IN A 3.2.1.10
@ IN A 3.2.1.30Записи типа A служат для обозначения имён машин. Как это видно
выше, имя ns1.example.org будет
преобразовано в
3.2.1.2. И снова здесь используется
символ ориджина @, обозначая, что
example.org будет преобразовано
в 3.2.1.30.www IN CNAME @Записи с каноническими именами обычно используются для присвоения
машинам псевдонимов. В этом примере www является
псевдонимом для машины, соответствующей ориджину, то есть
example.org (3.2.1.30).
Записи CNAME могут использоваться для присвоения
псевдонимов именам хостов или для использования одного имени
несколькими машинами по очереди.MX record@ IN MX 10 mail.example.org.MX-запись указывает, какие почтовые серверы
отвечают за обработку входящей электронной почты для зоны. mail.example.org является именем почтового
сервера, а 10 обозначает приоритет этого почтового сервера.Можно иметь несколько почтовых серверов с приоритетами 3, 2 и 1.
Почтовый сервер, пытающийся доставить почту для example.org,
сначала попробует связаться с машиной, имеющий MX-запись с самым
большим приоритетом, затем с приоритетом поменьше и так далее, до тех
пор, пока почта не будет отправлена.Для файлов зон in-addr.arpa (обратные записи DNS) используется тот
же самый формат, отличающийся только использованием записей
PTR вместо A или
CNAME.$TTL 3600
1.2.3.in-addr.arpa. IN SOA ns1.example.org. admin.example.org. (
5 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
3600 ) ; Minimum
@ IN NS ns1.example.org.
@ IN NS ns2.example.org.
2 IN PTR ns1.example.org.
3 IN PTR ns2.example.org.
10 IN PTR mail.example.org.
30 IN PTR example.org.В этом файле дается полное соответствие имён хостов IP-адресам в
нашем описанном ранее вымышленном домене.Кэширующий сервер имёнBINDкэширующий сервер имёнКэширующий сервер имён - это сервер имён, не отвечающий ни
за какую зону. Он просто выполняет запросы от своего имени и сохраняет
результаты для последующего использования. Для настройки такого
сервера достаточно исключить все описания зон из стандартной
конфигурации сервера имён.Запуск named в песочницеBINDработа в песочницеchrootДля дополнительной безопасности вам может потребоваться запускать
&man.named.8; с правами непривилегированного пользователя и настроить
его на выполнение &man.chroot.8; в каталог-песочницу. Это позволит
сделать недоступным для даемона named все,
что расположено вне песочницы. Если named
будет взломан, то это поможет уменьшить возможный ущерб. По умолчанию
во FreeBSD имеются пользователь и группа с именами
bind, которые предназначены именно для такого
использования.Многие рекомендуют вместо настройки
named на использование
chroot, запускать named
внутри &man.jail.8;. В этом разделе такой подход не
рассматривается.Так как named не сможет обратиться ни к
чему вне песочницы (например, совместно используемым библиотекам,
сокетам протоколов и так далее), то нужно выполнить несколько шагов,
чтобы named смог работать нормально. В
следующем списке предполагается, что каталогом песочницы является
/etc/namedb и что вы не делали никаких изменений
в содержимом этого каталога. Выполните следующие шаги, работая как
пользователь root:Создайте все каталоги, которые ожидает увидеть
named:&prompt.root; cd /etc/namedb
&prompt.root; mkdir -p bin dev etc var/tmp var/run master slave
&prompt.root; chown bind:bind slave var/*Программе named нужен доступ с
правом записи в эти каталоги, так что это все, что мы ей
предоставим.Измените и создайте базовые файлы зоны и настроек:&prompt.root; cp /etc/localtime etc
&prompt.root; mv named.conf etc && ln -sf etc/named.conf
&prompt.root; mv named.root master
&prompt.root; sh make-localhost && mv localhost.rev localhost-v6.rev master
&prompt.root; cat > master/named.localhost
$ORIGIN localhost.
$TTL 6h
@ IN SOA localhost. postmaster.localhost. (
1 ; serial
3600 ; refresh
1800 ; retry
604800 ; expiration
3600 ) ; minimum
IN NS localhost.
IN A 127.0.0.1
^DЭто позволит программе named
протоколировать правильное время в &man.syslogd.8;.syslogлог файлыDNSЕсли вы используете &os; версии ранее 4.9-RELEASE, то постройте
статически скомпонованную копию
named-xfer и скопируйте её в
песочницу:&prompt.root; cd /usr/src/lib/libisc
&prompt.root; make cleandir && make cleandir && make depend && make all
&prompt.root; cd /usr/src/lib/libbind
&prompt.root; make cleandir && make cleandir && make depend && make all
&prompt.root; cd /usr/src/libexec/named-xfer
&prompt.root; make cleandir && make cleandir && make depend && make NOSHARED=yes all
&prompt.root; cp named-xfer /etc/namedb/bin && chmod 555 /etc/namedb/bin/named-xferПосле установки статически скомпонованного
named-xfer, во избежание появления старых копий
библиотек и программ в дереве исходного кода, требуется некоторая
зачистка:&prompt.root; cd /usr/src/lib/libisc
&prompt.root; make cleandir
&prompt.root; cd /usr/src/lib/libbind
&prompt.root; make cleandir
&prompt.root; cd /usr/src/libexec/named-xfer
&prompt.root; make cleandirИногда при выполнении этого шага возникают ошибки. Если
это случилось, выполните такую команду:&prompt.root; cd /usr/src && make cleandir && make cleandirи удалите ваше дерево /usr/obj:&prompt.root; rm -fr /usr/obj && mkdir /usr/objПри этом из вашего дерева исходных текстов будет удалён
весь мусор, и повторение вышеописанных шагов
должно выполниться успешно.Если вы используете &os; 4.9-RELEASE или более позднюю версию,
то копия named-xfer в каталоге
/usr/libexec по умолчанию является статически
скомпонованной, и вы можете просто скопировать её в песочницу при
помощи команды &man.cp.1;.Создайте файл устройства dev/null,
который named может видеть и писать в
него:&prompt.root; cd /etc/namedb/dev && mknod null c 2 2
&prompt.root; chmod 666 nullСоздайте символическую ссылку
/var/run/ndc на
/etc/namedb/var/run/ndc:&prompt.root; ln -sf /etc/namedb/var/run/ndc /var/run/ndcЭто просто для того, чтобы не задавать опцию
при каждом запуске &man.ndc.8;. Так как
содержимое каталога /var/run удаляется
при загрузке, и если это
показалось вам полезным, то вы можете добавить эту команду
в crontab для root
с использованием параметра
. Обратитесь к справочной странице по
&man.crontab.5; для получения более полной информации
относительно этого.syslogлог файлыnamedНастройте &man.syslogd.8; на создание дополнительного
протоколирующего сокета log, в который
может писать named. Для этого добавьте
-l /etc/namedb/dev/log к переменной
syslogd_flags из файла
/etc/rc.conf.chrootЗадайте запуск named и выполнение
chroot в песочницу, добавив следующее в
/etc/rc.conf:named_enable="YES"
named_flags="-u bind -g bind -t /etc/namedb /etc/named.conf"Заметьте, что конфигурационный файл
/etc/named.conf именуется по полному
имени относительно песочницы, то есть в
вышеприведённой строке указывается файл, который на самом деле
является файлом
/etc/namedb/etc/named.conf.Следующим шагом является редактирование файла
/etc/namedb/etc/named.conf так, чтобы
named знал, какую зону загружать и где найти
их на диске. Далее следует прокомментированный пример (все, что
специально не прокомментировано, ничем не отличается от настройки
сервера DNS, работающего не в песочнице):options {
directory "/";
named-xfer "/bin/named-xfer";
version ""; // Не выдавайте версию BIND
query-source address * port 53;
};
// управляющий сокет ndc
controls {
unix "/var/run/ndc" perm 0600 owner 0 group 0;
};
// Далее следуют зоны:
zone "localhost" IN {
type master;
file "master/named.localhost";
allow-transfer { localhost; };
notify no;
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "master/localhost.rev";
allow-transfer { localhost; };
notify no;
};
zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.int" {
type master;
file "master/localhost-v6.rev";
allow-transfer { localhost; };
notify no;
};
zone "." IN {
type hint;
file "master/named.root";
};
zone "private.example.net" in {
type master;
file "master/private.example.net.db";
allow-transfer { 192.168.10.0/24; };
};
zone "10.168.192.in-addr.arpa" in {
type slave;
masters { 192.168.10.2; };
file "slave/192.168.10.db";
};В директиве directory указан каталог
/, так как все файлы, которые нужны для
named, находятся внутри этого каталога
(вспомните, что это равнозначно обычному
пользовательскому /etc/namedb).Задает полный путь к двоичному выполнимому файлу
named-xfer (внутри границ видимости
named). Это необходимо, так как
named компилируется с тем, чтобы
брать named-xfer по умолчанию из
/usr/libexec.Задает имя файла (относительно директивы
directory выше), в котором
named может найти файл зоны для этой
зоны.Задает имя файла (относительно директивы
directory выше), в котором
named должен записывать копию файла
зоны для этой зоны после успешной передачи ее с основного сервера.
Вот почему нам нужно изменить владельца каталога
slave на bind на этапах
настроек выше.После выполнения шагов выше либо перезагрузите ваш сервер, либо
перезапустите &man.syslogd.8; и запустите &man.named.8;, не забыв
использовать новые опции, заданные в syslogd_flags и
named_flags. Теперь
named должен заработать в песочнице!БезопасностьХотя BIND является самой распространенной реализацией DNS, всегда
стоит вопрос об обеспечении безопасности. Время от времени
обнаруживаются возможные и реальные бреши в безопасности.Весьма полезно прочесть сообщения безопасности CERT и подписаться на
&a.security-notifications; для того, чтобы быть в курсе
текущих проблем с обеспечением безопасности Internet и FreeBSD.Если возникают проблемы, то наличие последних исходных текстов и
свежеоткомпилированного named
не помешает.Дополнительная литератураСправочная информация по BIND/named:
&man.ndc.8;, &man.named.8; и
&man.named.conf.5;
Официальная страница ISC BIND
FAQ по BIND
Книга издательства O'Reilly DNS and BIND 4th
EditionRFC1034 - Domain
Names - Concepts and FacilitiesRFC1035 - Domain
Names - Implementation and SpecificationTomRhodesАвтор: DmitryMorozovskyПеревод на русский язык:
- BIND9 and &os;
+ BIND9 и &os;bind9установка&os; начиная с версии 5.3 содержит в базовой поставке
сервер DNS BIND9.
Среди прочих нововведений стоит отметить новые возможности, связанные
с безопасностью, новую организацию файлов конфигурации и автоматическое
использование опции &man.chroot.8;. Первая часть этой главы посвящена
обсуждению новых возможностей и их использования, вторая описывает
процесс обновления сервера DNS при переходе на &os; 5.3. Мы будем
ссылаться на сервер BIND как &man.named.8;.
Мы подразумеваем, что читатель знаком с терминологией, описываемой в
предыдущей главе.Файлы конфигурации для named в настоящее время
располагаются в каталоге
- /var/named/etc/namedb/ и требуют
+ /var/named/etc/namedb/ и требуют
модификации перед началом использования сервера. Большая часть работы
по конфигурации сервера DNS происходит именно в этом каталоге.Конфигурация основной (Master) зоныДля создания основной зоны перейдите в каталог
- /var/named/etc/namedb/
+ /var/named/etc/namedb/
и выполните команду&prompt.root; sh make-localhostПри удачном стечении обстоятельств в каталоге
- master появится два новых файла:
+ master появится два новых файла:
localhost.rev для локального домена и
localhost-v6.rev для локальной зоны
IPv6. В поставляемом стандартном файле
конфигурации named.conf уже есть ссылки на оба
файла зон.Конфигурация зависимой (Slave) ЗоныДополнительные домены и поддомены могут быть добавлены как
зависимые зоны. В большинстве случаев достаточно просто скопировать
файл master/localhost.rev в каталог
- slave и изменить копию.
+ slave и изменить копию.
После изменения файлов зон нужно добавить ссылки на них в
основной файл конфигурации named.conf, например,
так:zone "example.com" {
type slave;
file "slave/example.com";
masters {
10.0.0.1;
};
};
zone "0.168.192.in-addr.arpa" {
type slave;
file "slave/0.168.192.in-addr.arpa";
masters {
10.0.0.1;
};
};Отметим, что использованный в этом примере IP
адрес является адресом, с которого будут копироваться файлы зон;
этот адрес не обязательно является публичным сервером
DNS.Стартовая конфигурация системыДля автоматического запуска даемона named
при загрузке системы добавьте в файл стартовой конфигурации
rc.conf строкуnamed_enable="YES"Есть и другие параметры конфигурации, но эта строка —
минимально необходима. Список параметров можно найти на странице
справочника &man.rc.conf.5;. Если запуск named
не разрешен в rc.conf, сервер можно запустить
вручную командой&prompt.root; /etc/rc.d/named startBIND9: вопросы безопасности&os автоматически запускает named
в ограниченном пространстве &man.chroot.8;; кроме того, существует
еще несколько средств, помогающих защитить сервис
DNS от возможных атак.Списки ограничения доступаДля ограничения доступа к зонам могут применяться списки
доступа. Для этого опишите для домена список IP
адресов, которым разрешены запросы к содержимому доменной зоны, и
используйте имя этого списка в конфигурации зоны.
Вот пример описания списка ограничения доступа:acl "example.com" {
192.168.0.0/24;
};
zone "example.com" {
type slave;
file "slave/example.com";
masters {
10.0.0.1;
};
allow-query { example.com; };
};
zone "0.168.192.in-addr.arpa" {
type slave;
file "slave/0.168.192.in-addr.arpa";
masters {
10.0.0.1;
};
allow-query { example.com; };
};Версия сервераРазрешать всем запросы о версии вашего DNS
сервера может быть не самой лучшей идеей: возможный злоумышленник
может воспользоваться ей для выяснения известных ошибок и
уязвимостей и применить их вашего сервера. Для предотвращения этого
в раздел options файла конфигурации
named.conf можно вписать строку, скрывающую
версию сервера:options {
directory "/etc/namedb";
pid-file "/var/run/named/pid";
dump-file "/var/dump/named_dump.db";
statistics-file "/var/stats/named.stats";
version "None of your business";MurrayStokelyПредоставил Apache HTTP сервервеб сервернастройкаApacheОбзор&os; используется в качестве платформы для многих из самых
нагруженных серверов в мире. Большинство серверов в интернет
используют Apache HTTP сервер.
Пакеты Apache должны быть включены
в поставку FreeBSD. Если вы не установили их во вместе с
системой, воспользуйтесь портами www/apache13 или www/apache2.Как только Apache был успешно
установлен, его необходимо настроить.В этом разделе рассказывается о версии 1.3.X
Apache HTTP сервера, поскольку
эта версия наиболее широко используется в &os;.
Apache 2.X
содержит много новых технологий, но здесь они не обсуждаются.
За дополнительной информацией о
Apache 2.X, обращайтесь к .НастройкаApacheфайл настройкиВ &os; основной файл настройки Apache HTTP сервера
устанавливается в
/usr/local/etc/apache/httpd.conf.
Это обычный текстовый &unix; файл настройки с строками
комментариев, начинающимися с символа #.
Исчерпывающее описание всех возможных параметров настройки
находится за пределом рассмотрения этой книги, поэтому
здесь будут описаны только наиболее часто модифицируемые
директивы.ServerRoot "/usr/local"Указывает верхний каталог установки
Apache по
умолчанию. Бинарные файлы находятся в
- bin и
- sbin, подкаталоги
+ bin и
+ sbin, подкаталоги
расположены относительно корневого каталога сервера, файлы
настройки находятся в
- etc/apache.
+ etc/apache.
ServerAdmin you@your.addressАдрес, на который должны будут отправляться
сообщения о проблемах с сервером. Этот адрес
выводится на некоторые генерируемые сервером
страницы, например с сообщениями об ошибках.ServerName www.example.comServerName позволяет вам устанавливать имя хоста,
которое отправляется обратно клиентам, если оно
отличается от того, с которым настроен хост
(например, использование www вместо реального
имени хоста).DocumentRoot "/usr/local/www/data"DocumentRoot: Каталог, внутри которого будут храниться
документы. По умолчанию, все запросы обрабатываются внутри
этого каталога, но символические ссылки и синонимы могут
использоваться для указания на другие каталоги.Хорошей идеей будет сделать резервные копии настроек
Apache перед внесением изменений. Как только вы будете
удовлетворены первоначальной настройкой, можно запускать
Apache.Запуск ApacheApacheзапуск или остановкаApache не запускается из
inetd, как это делают многие
другие сетевые серверы. Он настроен для автономного запуска,
чтобы обеспечивать большую производительность при обработке
HTTP запросов от браузеров клиентов. Для упрощения запуска,
остановки и перезапуска сервера существует shell скрипт.
Для запуска Apache в первый раз
просто выполните:&prompt.root; /usr/local/sbin/apachectl startВы можете остановить сервер в любой момент, выполнив:&prompt.root; /usr/local/sbin/apachectl stopПосле внесения любых изменений в файл настроек, вам потребуется
перезапустить сервер:&prompt.root; /usr/local/sbin/apachectl restartДля запуска Apache при старте системы,
добавьте в /etc/rc.conf следующую строку:apache_enable="YES"Если вы хотите передать программе Apachehttpd дополнительные параметры командной
при загрузке системы, они могут быть помещены в дополнительную
строку rc.conf:apache_flags=""Теперь, когда веб сервер запущен, вы можете просмотреть свой веб
сайт, задав в строке браузера адрес
http://localhost/. По умолчанию отображается
веб страница
/usr/local/www/data/index.html.Виртуальный хостингApache поддерживает два различных
типа виртуального хостинга (Virtual Hosting). Первый метод
основан на именах (Name-based Virtual Hosting). Он использует
полученные от клиента заголовки HTTP/1.1 для определения имени
хоста. Это позволяет многим различным доменам использовать
один и тот же IP адрес.Для настройки Apache на использование
этого типа хостинга добавьте в httpd.conf
запись подобную следующей:NameVirtualHost *Если веб сервер назывался www.domain.tld и
вы хотите настроить виртуальный домен для
www.someotherdomain.tld, необходимо добавить
в httpd.conf следующие записи:<VirtualHost *>
ServerName www.domain.tld
DocumentRoot /www/domain.tld
<VirtualHost>
<VirtualHost *>
ServerName www.someotherdomain.tld
DocumentRoot /www/someotherdomain.tld
</VirtualHost>Замените адреса и пути к документам на те, что вы будете
использовать.За дополнительной информацией по настройке виртуальных хостов
обращайтесь к официальной документации
Apache: Модули ApacheApacheмодулиСуществуют множество различных модулей
Apache,
которые добавляют функциональность к основному
серверу. Коллекция портов FreeBSD предоставляет
простой способ установки Apache
с некоторыми наиболее популярными дополнительными
модулями.mod_sslвеб серверзащитаSSLкриптографияМодуль mod_ssl использует
библиотеку OpenSSL для
сильной криптографии через протоколы Secure Sockets Layer
(SSL v2/v3) и Transport Layer Security (TLS v1).
Этот модуль содержит все необходимое для запроса
подписанного сертификата из центра сертификации
для защищенного веб сервера на &os;.Если вы еще не установили
Apache, версия
Apache с
mod_ssl может быть установлена
через порт www/apache13-modssl.
Поддержка SSL также присутствует и включена по умолчанию
для порта www/apache2.mod_perlPerlПроект интеграции
Apache/Perl объединяет мощь
языка программирования Perl и HTTP сервера
Apache.
С модулем mod_perl возможно
написание модулей Apache
полностью на Perl. Кроме того, постоянно
запущенный встроенный в сервер интерпретатор
позволяет не тратить ресурсы на запуск внешнего
интерпретатора и время на запуск Perl.Если вы еще не установили Apache,
его версия с модулем mod_perl может
быть установлена через
порт www/apache13-modperl.PHPPHPPHP, сокращение от PHP: Hypertext
Preprocessor это широко используемый Open Source
скриптовый язык общего назначения, который в основном
предназначен для веб разработки и может быть встроен в
HTML. Его синтаксис был взят от C, &java;, и Perl и язык
легок в изучении. Основное преимущество языка в том, что
он позволяет веб разработчикам создавать веб страницы быстро,
но есть и множество других возможностей.PHP может быть установлен из порта lang/php5.MurrayStokelyПредоставил Файл сервер и печать для µsoft.windows; клиентов
(Samba)Samba серверMicrosoft Windowsфайл серверWindows клиентыпринт серверWindows клиентыОбзорSamba это популярный пакет
программ с открытыми исходными текстами, которая предоставляет
файловые и принт-сервисы µsoft.windows; клиентам.
Эти клиенты могут подключаться и использовать файловое
пространство FreeBSD, как если бы это был локальный диск,
или принтеры FreeBSD, как если бы это были локальные
принтеры.Пакет Samba должен быть включен
в поставку FreeBSD. Если вы не установили
Samba при первой установке системы,
ее можно установить из порта или пакета net/samba3.НастройкаФайл настройки Samba по умолчанию
устанавливается в
/usr/local/etc/smb.conf.default. Этот файл
необходимо скопировать в
/usr/local/etc/smb.conf и отредактировать
перед использованием Samba.В файле smb.conf находится информация,
необходимая для работы Samba,
например определение принтеров и общих каталогов,
которые будут использоваться совместно с &windows; клиентами.
В пакет Samba входит программа с
веб интерфейсом, называемая swat,
которая дает простой способ редактирования файла
smb.conf.Использование Samba Web Administration Tool (SWAT)Программа веб администрирования Samba (Samba Web
Administration Tool, SWAT) запускается как даемон из
inetd. Следовательно, в
/etc/inetd.conf необходимо снять комментарий
перед тем, как использовать swat для
настройки Samba:swat stream tcp nowait/400 root /usr/local/sbin/swatКак описано в ,
после изменения настроек inetd
необходимо отправить HangUP сигнал.Как только swat был включен
inetd.conf, вы можете использовать
браузер для подключения к .
Сначала необходимо зарегистрироваться с системной
учетной записью root.После успешного входа на основную страницу настройки
Samba, вы можете просмотреть
документацию или начать настройку, нажав на кнопку
Globals. Раздел Globals
соответствует переменным,
установленным в разделе [global] файла
/usr/local/etc/smb.conf.Глобальные настройкиНезависимо от того, используете ли вы
swat, или редактируете
/usr/local/etc/smb.conf непосредственно,
первые директивы, которые вы скорее всего встретите при
настройке Samba, будут
следующими:workgroupИмя домена или рабочей группы NT для компьютеров,
которые будут получать доступ к этому серверу.netbios nameNetBIOSУстанавливает имя NetBIOS, под которым будет
работать Samba сервер. По
умолчанию оно устанавливается
равным первому компоненту DNS имени хоста.server stringУстанавливает строку, которая будет показана командой
net view и некоторыми другими сетевыми
инструментами, которые отображают строку описания
сервера.Настройки безопасностиДве из наиболее важных настроек в
/usr/local/etc/smb.conf отвечают за
выбор модели безопасности и за формат паролей для
клиентов. Эти параметры контролируются следующими
директивами:securityДва наиболее часто используемых параметра это
security = share и security
= user. Если имена пользователей для клиентов
совпадают с их именами на компьютере &os;, вы возможно
захотите включить безопасность уровня пользователя (user).
Это политика безопасности по умолчанию, она требует,
чтобы клиент авторизовался перед доступом к совместно
используемым ресурсам.На уровне безопасности share клиенту не требуется
входить на сервер перед подключением к ресурсу.
Эта модель безопасности использовалась по умолчанию
в старых версиях Samba.passdb backendNIS+LDAPSQL база данныхSamba поддерживает
несколько различных подсистем аутентификации. Вы можете
аутентифицировать клиентов с помощью LDAP, NIS+,
базы данных SQL, или через модифицированный файл
паролей. Метод аутентификации по умолчанию
smbpasswd, и здесь рассматривается
только он.Предполагая, что используется подсистема по умолчанию
smbpasswd, необходимо создать файл
/usr/local/private/smbpasswd, чтобы
Samba могла аутентифицировать
клиентов. Если вы хотите разрешить всем учетным записям
&unix; доступ с &windows; клиентов, используйте следующую
команду:&prompt.root; grep -v "^#" /etc/passwd | make_smbpasswd > /usr/local/private/smbpasswd
&prompt.root; chmod 600 /usr/local/private/smbpasswdОбратитесь к документации на Samba
за дополнительной информацией о параметрах настройки.
Основные настройки, рассмотренные здесь, достаточны для
первого запуска Samba.Запуск SambaДля запуска Samba при
загрузке системы, добавьте в /etc/rc.conf
следующую строку:samba_enable="YES"Затем вы можете запустить Samba в
любой момент, набрав:&prompt.root; /usr/local/etc/rc.d/samba.sh start
Starting SAMBA: removing stale tdbs :
Starting nmbd.
Starting smbd.Samba состоит из трех
отдельных даемонов. Вы можете видеть, что
nmbd и smbd
запускаются скриптом samba.sh.
Если вы включили сервис разрешения имен winbind
в smb.conf, то увидите также
запуск даемона winbindd.Вы можете остановить Samba в любой
момент, набрав:&prompt.root; /usr/local/etc/rc.d/samba.sh stopSamba это сложный программный
набор с функциональностью, позволяющей полную интеграцию в сети
µsoft.windows;. За дальнейшей информацией о функциях,
выходящих за рамки описанной здесь базовой установки,
обращайтесь к .MurrayStokelyПредоставил Протокол передачи файлов (FTP)FTP серверОбзорПротокол передачи файлов (File Transfer Protocol, FTP) дает
пользователям простой путь передачи файлов на и с FTP сервера. В &os;
серверная программа FTP,
ftpd, включена в базовую систему.
Это упрощает настройку и администрирование FTP сервера в
FreeBSD.НастройкаНаиболее важный шаг заключается в определении того,
каким учетным записям будет позволено получать доступ
к FTP серверу. В обычной системе FreeBSD есть множество
системных учетных записей, используемых различными даемонами,
но пользователям должно быть запрещен вход с использованием
этих учетных записей. В файле /etc/ftpusers
находится список пользователей, которым запрещен доступ по
FTP. По умолчанию он включает упомянутые системные учетные
записи, но в него можно добавить и определенных пользователей,
которым будет запрещен доступ по FTP.Вам может понадобиться ограничить доступ определенных
пользователей без полного запрета использования FTP.
Это можно сделать через файл /etc/ftpchroot.
В нем находится список пользователей и групп, к которым
применяется ограничение доступа. На странице справочника
&man.ftpchroot.5; дана подробная информация, и она не будет
дублироваться здесь.Если вы захотите разрешить анонимный FTP доступ на
сервер, в системе &os; необходимо создать пользователя
ftp. Этот пользователь сможет
входить на FTP сервер с именем пользователя
ftp или anonymous,
с любым паролем (существует соглашение об использовании
почтового адреса пользователя в качестве пароля).
FTP сервер выполнит &man.chroot.2; при входе пользователя
anonymous для ограничения доступа только домашним каталогом
пользователя ftp.Существуют два текстовых файла, определяющих сообщение,
отправляемое FTP клиентам. Содержимое файла
/etc/ftpwelcome будет выведено пользователям
перед приглашением на вход. После успешного входа
будет выведено содержимое файла /etc/ftpmotd.
Обратите внимание, что путь к этому файлу задается относительно
домашнего каталога пользователя, так что анонимным пользователям
будет отправляться ~ftp/etc/ftpmotd.Как только FTP сервер был правильно настроен, он должен
быть включен в /etc/inetd.conf. Все, что
необходимо, это удалить символ комментария
# из начала существующей строки
ftpd:ftp stream tcp nowait root /usr/libexec/ftpd ftpd -lКак описано в ,
сигнал HangUP должен быть отправлен inetd
после того, как этот файл настройки был изменен.Теперь вы можете войти на FTP сервер, введя:&prompt.user; ftp localhostПоддержкаsyslogлог файлыFTPДля протоколирования даемон ftpd
использует сообщения &man.syslog.3;. По умолчанию, &man.syslog.3;
поместит сообщения, относящиеся к FTP, в файл
/var/log/xferlog. Местоположение
лог файла FTP может быть изменено путем изменения следующей
строки в файле /etc/syslog.conf:ftp.info /var/log/xferlogУчитывайте потенциальные проблемы, возникающие с
анонимным FTP сервером. В частности, вы должны дважды
подумать, прежде чем позволить анонимным пользователям
загружать файлы на сервер. Вы можете обнаружить, что
FTP сайт стал форумом, на котором происходит обмен
нелицензионным коммерческим программным обеспечением
или чем-то еще хуже. Если вам необходимо разрешить
анонимную выгрузку файлов на FTP, права должны быть настроены
таким образом, чтобы эти файлы не могли прочитать другие
анонимные пользователи до их рассмотрения администратором.TomHukinsТекст предоставил Синхронизация часов через NTPNTPОбзорС течением времени часы компьютера имеют тенденцию отставать.
Network Time
Protocol - Сетевой Протокол Времени (NTP) является одним из способов
вести точное время.Многие сервисы Интернет опираются или сильно зависят от точности
часов компьютеров. К примеру, веб-сервер может получать запрос на
посылку файла, который был недавно модифицирован. В локальной сети
необходимо, чтобы часы компьютеров, совместно использующих файлы,
были синхронизированы, чтобы время модификации файлов устанавливалось
правильно. Такие службы, как
&man.cron.8;, также зависят от правильности установки системных
часов, поскольку запускают команды в определенное время.NTPntpdFreeBSD поставляется с сервером NTP &man.ntpd.8;, который можно
использовать для опроса других серверов NTP для установки часов на
вашей машине или предоставления услуг точного времени.Выбор подходящих серверов NTPNTPвыбор серверовДля синхронизации ваших часов вам нужно найти для использования
один или большее количество серверов NTP. Ваш сетевой администратор
или провайдер могут иметь сервер NTP для этой цели—обратитесь к
ним, так ли это в вашем случае. Существует онлайн список
общедоступных серверов NTP, которым можно воспользоваться для
поиска ближайшего к вам сервера NTP. Не забудьте выяснить политику
выбранного вами сервера и спросить разрешения, если это
требуется.Выбор нескольких несвязанных серверов NTP является хорошей идеей в
том случае, если один из используемых вами серверов станет недоступным
или его часы неточны. &man.ntpd.8; использует ответы, которые он
получает от других серверов с умом—он делает предпочтение
надежным серверам.Настройка вашей машиныNTPнастройкаБазовая конфигурацияntpdateЕсли вам нужно только синхронизировать ваши часы при загрузке
машины, вы можете воспользоваться утилитой &man.ntpdate.8;. Это
может подойти для некоторых настольных машин, которые часто
перезагружаются и только требуют изредка синхронизироваться, но
на большинстве машин должен работать &man.ntpd.8;.Использование &man.ntpdate.8; при загрузке также хорошо для
машин, на которых запущен даемон &man.ntpd.8;. Программа
&man.ntpd.8; изменяет время постепенно, тогда как &man.ntpdate.8;
устанавливает время вне
зависимости от того, насколько велика разница между текущим временем
машины и точным временем.Для включения &man.ntpdate.8; во время загрузки, добавьте строчку
ntpdate_enable="YES" в файл
/etc/rc.conf. Вам также потребуется указать
все серверы, с которыми вы хотите синхронизироваться, и все
параметры, которые передаются в &man.ntpdate.8;, в
ntpdate_flags.NTPntp.confОбщие настройкиNTP настраивается в файле /etc/ntp.conf,
формат которого описан в &man.ntp.conf.5;. Вот простой
пример:server ntplocal.example.com prefer
server timeserver.example.org
server ntp2a.example.net
driftfile /var/db/ntp.driftПараметр server задает, какие серверы будут
использоваться, по одному в каждой строке. Если сервер задан с
аргументом prefer, как ntplocal.example.com, то этому серверу отдается
предпочтение перед остальными. Ответ от предпочтительного сервера
будет отброшен, если он значительно отличается от ответов других
серверов, в противном случае он будет использоваться безотносительно
к другим ответам. Аргумент prefer обычно
используется для серверов NTP, о которых известно, что они очень
точны, такими, на которых используется специальное оборудование
точного времени.Параметр driftfile задает файл, который
используется для хранения смещения частоты системных часов.
Программа &man.ntpd.8; использует его для автоматической компенсации
естественного смещения часов, позволяя ему поддерживать достаточно
правильную настройку, даже если он на некоторый период отключается от
внешнего источника информации о времени.Параметр driftfile задает, какой файл
используется для сохранения информации о предыдущих ответах от
серверов NTP, которые вы используете. Этот файл содержит внутреннюю
информацию для NTP. Он не должен изменяться никакими другими
процессами.Управление доступом к вашему серверуПо умолчанию ваш сервер NTP будет доступен всем хостам в
Интернет. Параметр restrict в файле
/etc/ntp.conf позволяет вам контролировать,
какие машины могут обращаться к вашему серверу.Если вы хотите запретить всем машинам обращаться к вашему серверу
NTP, добавьте следующую строку в
файл /etc/ntp.conf:restrict default ignoreЕсли вы хотите разрешить синхронизировать свои часы с вашим
сервером только машинам в вашей сети, но запретить им настраивать
сервер или быть равноправными участниками синхронизации времени, то
вместо указанной добавьте строчку
- restrict 192.168.1.0 mask 255.255.255.0 notrust nomodify notrap
+ restrict 192.168.1.0 mask 255.255.255.0 nomodify notrapгде 192.168.1.0 является адресом
IP вашей сети, а 255.255.255.0 её
сетевой маской./etc/ntp.conf может содержать несколько
директив restrict. Для получения подробной
информации обратитесь к подразделу Access Control
Support (Поддержка Управления Доступом) в
&man.ntp.conf.5;.Запуск сервера NTPДля того, чтобы сервер NTP запускался при загрузке, добавьте строку
xntpd_enable="YES" в файл
/etc/rc.conf. Если вы хотите передать
дополнительные опции в &man.ntpd.8;, то отредактируйте параметр
xntpd_flags в файле
/etc/rc.conf.Для запуска сервера без перезагрузки вашей машины, выполните
команду ntpd, не забыв задать дополнительные
параметры из переменной xntpd_flags в файле
/etc/rc.conf. К примеру:&prompt.root; ntpd -p /var/run/ntpd.pidВо &os; 5.X различные параметры из
/etc/rc.conf были переименованы. В частности,
в списке параметров вам необходимо заменить каждую строчку
xntpd на ntpd.Использование ntpd с временным подключением к
ИнтернетДля нормальной работы программе &man.ntpd.8; не требуется
постоянное подключение к Интернет. Однако если ваше временное
подключение к Интернет настроено для дозвона по требованию, хорошо бы
запретить трафику NTP вызывать дозвон или поддерживать соединение
постоянно. Если вы используете пользовательский PPP, то можете
воспользоваться директивами filter в файле
/etc/ppp/ppp.conf. К примеру: set filter dial 0 deny udp src eq 123
# Prevent NTP traffic from initiating dial out
set filter dial 1 permit 0 0
set filter alive 0 deny udp src eq 123
# Prevent incoming NTP traffic from keeping the connection open
set filter alive 1 deny udp dst eq 123
# Prevent outgoing NTP traffic from keeping the connection open
set filter alive 2 permit 0/0 0/0Более подробную информацию можно найти в разделе PACKET
FILTERING (ФИЛЬТРАЦИЯ ПАКЕТОВ) в &man.ppp.8;, а примеры в
/usr/share/examples/ppp/.Некоторые провайдеры Интернет блокируют трафик по портам с
маленькими номерами, что приводит к неработоспособности NTP, так как
ответы никогда не достигают вашей машины.Дополнительная литератураДокументация по серверу NTP может быть найдена в каталоге
/usr/share/doc/ntp/ в формате HTML.
diff --git a/ru_RU.KOI8-R/books/handbook/printing/chapter.sgml b/ru_RU.KOI8-R/books/handbook/printing/chapter.sgml
index 3285e624a2..9935c72295 100644
--- a/ru_RU.KOI8-R/books/handbook/printing/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/printing/chapter.sgml
@@ -1,4924 +1,4924 @@
SeanKellyНаписал JimMockРеструктурировал и обновил ВалерийКравчукПеревод на русский язык: ПечатьКраткий обзорсистема спулинга LPDпечатьFreeBSD можно использовать для печати на широком спектре принтеров, от
старых матричных до новейших лазерных, без исключений, что позволяет
создавать высококачественные распечатки из используемых приложений.FreeBSD можно также сконфигурировать для работы в качестве сервера
печати в сети; в этом качестве FreeBSD может получать задания печати от множества
других компьютеров, включая другие компьютеры под управлением ОС FreeBSD, хосты &windows;
и &macos;. FreeBSD будет гарантировать печать заданий по одному и может сохранять
информацию о том, какие пользователи и машины выполняют основную часть печати,
выдавать страницы-баннеры, показывающие, кому принадлежит распечатка,
и многое другое.При прочтении этой главы вы узнаете:Как конфигурировать спулер печати FreeBSD.Как устанавливать фильтры печати для специфической обработки определенных
заданий печати, включая преобразование поступающих на печать документов в
форматы, которые понимает принтер.Как включить при печати колонтитулы или выдачу страниц-баннеров.Как печатать на принтеры, подключенные к другим компьютерам.Как печатать на принтеры, подключенные непосредственно к сети.Как задавать ограничения для принтера, включая ограничение
размера заданий печати и запрет печати для отдельных пользователей.Как сохранять статистическую информацию о печати и учитывать использование
принтера.Как решать проблемы печати.Прежде чем читать эту главу, вы должны:Знать, как сконфигурировать и установить новое ядро
().ВведениеДля использования принтеров в ОС FreeBSD надо настроить их для
работы с системой спулинга печати Беркли (Berkeley line printer spooling system),
также известной как система спулинга LPD.
Это - стандартная система управления принтером во FreeBSD. В этой главе
представлена система спулинга LPD,
которую часто называют просто LPD, и описано
ее конфигурирование.Если вы уже знакомы с LPD или другой
системой спулинга печати, вы можете сразу перейти к разделу Настройка системы спулинга.LPD управляет всеми аспектами работы принтеров
хоста. Она отвечает за несколько вещей:Она управляет доступом к непосредственно подключенным принтерам и
принтерам, подключенным к другим хостам в сети.задания печатиОна позволяет пользователям посылать файлы на печать; эти посылки
называют заданиями.Она предотвращает одновременный доступ к принтеру нескольких
пользователей путем поддержки очереди для каждого
принтера.Она позволяет печатать страницы заголовка (их также
называют баннерными или начальными
страницами), чтобы пользователи могли легко находить распечатанные задания
в пачке распечаток.Она обеспечивает установку параметров взаимодействия для принтеров
подключенных, к последовательным портам.Она может отправлять задания по сети спулеру
LPD на другом хосте.Она может применять специальные фильтры для форматирования заданий
для печати на разных языках описания страниц или задействования специфических
возможностей принтера.Она учитывает использование принтера.С помощью файла конфигурации
(/etc/printcap) и за счет предоставления специальных
программ фильтрования, можно потребовать от системы LPD
выполнять все или некоторые из перечисленных выше функций на широком
спектре принтерного оборудования.Зачем использовать спулерЕсли вы - единственный пользователь системы, вы можете спросить,
зачем возиться со спулером, если управление доступом,
страницы заголовка или учет использования принтера вам не нужно. Хотя можно
обеспечить непосредственный доступ к принтеру, в любом случае следует
использовать спулер, поскольку:LPD печатает задания в фоновом режиме;
вам не придется ждать, пока данные будут скопированы на принтер.&tex;LPD позволяет легко пропустить
задание печати через фильтры для добавления заголовков с
датой/временем или преобразования специального формата файлов
(такого как файла &tex; DVI) в формат, который понимает принтер.
Вам не придется выполнять эти шаги вручную.Многие свободно распространяемые и коммерческие программы,
обеспечивающие возможность печати, обычно предполагают
взаимодействие со спулером системы. Путем настройки
системы спулинга вы упростите поддержку другого
программного обеспечения, которое может быть добавлено
в дальнейшем или уже установлено.Основная настройкаДля использования принтеров с системой спулинга
LPD, необходимо настроит как сам
принтер, так и программное обеспечение
LPD. Этот документ описывает два уровня
настройки:См. раздел Простая настройка
принтера, чтобы узнать, как подключить принтер,
объяснить LPD, как с ним
взаимодействовать, и отправлять на принтер простые текстовые
файлы.См. раздел Расширенная
настройка принтера, чтобы узнать, как печатать файлы
множества специальных форматов, как печатать страницы заголовка,
печатать по сети, управлять доступом к принтерам и учитывать
использование принтера.Простая настройка принтераВ этом разделе описано, как сконфигурировать принтер
и программное обеспечение LPD для
использования принтера. Здесь рассматриваются следующие вопросы:В разделе Настройка
оборудования представлены советы по подключению
принтера к порту компьютера.В разделеНастройка
программного обеспечения показано, как настроить
файл конфигурации спулера LPD
(/etc/printcap).Если вы настраиваете принтер, использующий для принятия
заданий печати вместо последовательного или параллельного
интерфейса сетевой протокол, см. раздел
Принтеры с
сетевыми интерфейсами для приема данных.Хотя этот раздел и назван Простая настройка
принтера, это, на самом деле, достаточно сложно.
Заставить принтер работать с компьютером и спулером
LPD - самая сложная часть.
Расширенные опции, вроде выдачи страниц заголовков и учета
использования, установить несложно, как только принтер
заработает.Настройка оборудованияВ этом разделе описаны различные способы подключения
принтера к ПК. Рассматриваются различные порты и кабели, а
также параметры конфигурации ядра, которые может потребоваться
установить, чтобы ОС FreeBSD могла взаимодействовать с
принтером.Если вы уже подключили ваш принтер и успешно печатали на
него в другой операционной системе, можете перейти к разделу
Настройка программного
обеспечения.Порты и кабелиПринтеры, которые продаются сегодня для использования на ПК,
обычно поддерживают один или несколько из следующих
интерфейсов:принтерыпоследовательныеПоследовательные интерфейсы, также
известные как RS232C или RS232D, или COM-порты, используют
для посылки данных на принтер последовательный порт
компьютера. Последовательные интерфейсы широко
распространены в компьютерной индустрии, кабели для них легко
найти и просто сделать. Для последовательных интерфейсов
иногда нужны специальные кабели, и для их использования может
потребоваться настраивать достаточно сложные опции
взаимодействия. Большинство последовательных портов ПК имеют
максимальную скорость передачи 115200 бит/сек, поэтому
печатать через них большие графические задания
неудобно.принтерыпараллельныеПараллельные интерфейсы используют
параллельный порт компьютера для посылки данных на принтер.
Параллельные интерфейсы широко распространены на рынке ПК
и работают быстрее, чем последовательные RS232.
Кабели легко найти, но сделать самостоятельно сложнее. При
использовании параллельных интерфейсов опции взаимодействия
обычно задавать не надо, что делает их конфигурирование
существенно проще.centronicsпараллельные принтерыПараллельные интерфейсы иногда называют
интерфейсами Centronics, по названию типа
разъема на принтере.принтерыUSBИнтерфейсы USB (сокращение от Universal Serial
Bus - универсальная последовательная шина), могут работать
на еще больших скоростях, чем параллельные или
последовательные интерфейсы RS232. Кабели для них -
простые и дешевые. USB превосходит последовательный RS232
и параллельный интерфейсы для печати, но не слишком
хорошо поддерживается в &unix;-системах. Обойти эту проблему
можно, купив принтер с двумя интерфейсами, USB и
параллельным, как у многих принтеров.В общем случае, параллельные интерфейсы обычно
обеспечивают только одностороннюю передачу (с компьютера
на принтер), тогда как последовательные и USB поддерживают
двустороннюю. Более новые параллельные порты (EPP и ECP) и принтеры
могут взаимодействовать в обоих направлениях под FreeBSD, если
используется кабель, соответствующий стандарту IEEE1284.PostScriptДвустороннее взаимодействие с принтером через параллельный
порт обычно выполняется одним из двух способов. Первый метод
опирается на использование специально созданного драйвера
принтера для FreeBSD, который поддерживает специфический язык
данного принтера. Этот метод типичен для струйных принтеров и
может использоваться для получения информации об уровне чернил и
другой информации о состоянии. Второй метод используется, когда
принтер поддерживает &postscript;.Фактически, задания &postscript;
являются программами, посылаемыми для выполнения принтеру;
они вообще могут не выдавать результат на бумагу и возвращать
их непосредственно компьютеру. &postscript; также использует
двустороннее взаимодействие для сообщения компьютеру о проблемах,
таких как ошибки в &postscript;-программе или замятие бумаги.
Такая информация может пригодиться пользователям. Более того,
лучший способ эффективного учета использования
&postscript;-принтера требует двустороннего взаимодействия:
вы запрашиваете у принтера значение счетчика страниц (сколько
страниц напечатал принтер за все время существования), затем
посылаете задание пользователя, затем снова запрашиваете значение
его счетчика страниц. Вычитаем одно значение из другого, и узнаем,
сколько бумаги потратил пользователь.Параллельные портыДля подключения принтера через параллельный интерфейс,
соедините принтер и компьютер кабелем Centronics.
Инструкции для принтера, для компьютера или обе должны полностью
описывать эту процедуру.Помните, какой параллельный порт компьютера вы использовали.
Первый параллельный порт в ОС FreeBSD -
/dev/ppc0; второй -
/dev/ppc1, и так далее. Имена устройств для
принтеров используют ту же схему: /dev/lpt0
для принтера на первом параллельном порту и т.д.Последовательные портыДля подключения принтера через последовательный интерфейс,
соедините принтер с компьютером подходящим последовательным кабелем.
Инструкции для принтера, для компьютера или обе должны полностью
описывать эту процедуру.Если вы не знаете, что такое подходящий последовательный
кабель, можете попробовать использовать один из следующих:Модемный кабель соединяет каждый штырёк
на одном конце кабеля напрямую с соответствующим штырьком
на другом конце. Кабель такого типа также называют
кабелем DTE-to-DCE.нуль-модемный кабельНуль-модемный кабель соединяет часть
штырьков напрямую, другие - меняет (пересылку данных на приём
данных, например), а некоторые - закорачивает на каждом разъеме.
Кабель такого типа также называют кабелем
DTE-to-DTE cable.Кабель последовательного принтера,
необходимый для некоторых редко используемых принтеров, похож
на нуль-модемный кабель, но посылает часть сигналов на
соответствующие штырьки, а не закорачивает их.скорость передачичетностьпротокол управления передачейВам надо также настроить эти параметры взаимодействия с принтером,
обычно - через элементы управления на лицевой панели или переключатели
(DIP switches) на принтере. Выберите максимальную скорость передачи
bps (бит в секунду, иногда -
baud rate), которую могут поддерживать как
компьютер, так и принтер. Выберите 7 или 8 битов данных; четность none,
even или odd; и 1 или 2 стоп-бита. Также надо выбрать протокол управления
передачей: none или XON/XOFF (также известный как
внутриполосный или программный).
Запомните выбранные установки для последующего конфигурирования
программного обеспечения.Настройка программного обеспеченияВ этом разделе описана настройка программного обеспечения,
необходимая для печати с помощью системы спулинга
LPD в ОС FreeBSD.
Вот план действий, которые необходимо выполнить:При необходимости, сконфигурировать в ядре поддержку порта,
к которому подключен принтер; в разделе Конфигурирование ядра описано,
что надо сделать.Установить режим взаимодействия для параллельного порта,
если используется параллельный порт; детали представлены
в разделе Настройка
режима взаимодействия для параллельного порта.Проверить, может ли операционная система посылать данные
на принтер. В разделе Проверка
взаимодействия с принтером даны советы, как это сделать.Настроить LPD для принтера,
изменяя файл /etc/printcap. Как это
сделать описано далее в этой главе.Конфигурирование ядраЯдро операционной системы компилируется для работы с
конкретным набором устройств. Последовательный или параллельный
интерфейс для принтера входит в этот набор. Поэтому может
понадобиться добавить поддержку для дополнительного
последовательного или параллельного порта, если он еще
не сконфигурирован в ядре.Чтобы узнать, поддерживает ли используемое в настоящий
момент ядро последовательный интерфейс, наберите:&prompt.root; grep sioN /var/run/dmesg.bootГде N - номер последовательного
порта, начиная с нуля. Если вы получаете результат, подобный
следующему:sio2 at port 0x3e8-0x3ef irq 5 on isa
sio2: type 16550Aзначит, ядро поддерживает порт.Чтобы узнать, поддерживает ли ядро параллельный интерфейс,
наберите:&prompt.root; grep ppcN /var/run/dmesg.bootГде N номер параллельного порта,
начиная с нуля. Если вы получаете результат, подобный
следующему:ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/8 bytes thresholdзначит, ядро поддерживает порт.Может потребоваться переконфигурировать ядро, чтобы
операционная система распознала и использовала параллельный
или последовательный порт, используемый для подключения
принтера.Чтобы добавить поддержку последовательного порта,
обратитесь к разделу, посвященному конфигурированию ядра.
Чтобы добавить поддержку параллельного порта, почитайте
этот же раздел и следующий раздел.Добавление файлов /dev для портовFreeBSD 5.0 включает файловую систему
devfs, которая автоматически создает
специальные файлы устройств по мере необходимости.
Если вы используете версию FreeBSD с включенной поддержкой
devfs, можно пропустить этот раздел.Хотя ядро может уже поддерживать взаимодействие по
последовательному или параллельному порту, вам необходим
программный интерфейс, через которых работающие в системе программы
смогут посылать и принимать данные. Именно для этого и
существуют специальные файлы устройств в каталоге
/dev.Для добавления файла в каталог /dev
для порта:Станьте пользователем root с помощью
команды &man.su.1;.
Введите пароль пользователя root
в ответ на приглашение.Перейдите в каталог /dev:&prompt.root; cd /devВведите команду:&prompt.root; ./MAKEDEV portГде port - имя специального файла
устройства для порта, который вы хотите создать. Используйте
lpt0 для принтера на первом параллельном порту,
lpt1 для принтера на втором порту и т.д.;
используйте ttyd0 для первого последовательного
порта, ttyd1 - для второго и так далее.Введите команду:&prompt.root; ls -l portчтобы убедиться, что требуемый специальный файл устройства
создан.Настройка режима взаимодействия для параллельного портаПри использовании параллельного интерфейса можно выбрать,
должна ли ОС FreeBSD взаимодействовать с принтером на основе
прерываний или путем опроса. Универсальный драйвер принтера
(&man.lpt.4;) во FreeBSD 4.X и 5.X использует
систему &man.ppbus.4;, которая управляет чипсетом порта
с помощью драйвера &man.ppc.4;.Метод взаимодействия на основе прерываний
является стандартным для ядра GENERIC. По этому методу,
операционная система использует линию запроса прерывания (IRQ line)
для определения готовности принтера к приему данных.Метод взаимодействия путем опроса
требует от операционной системы постоянно запрашивать
принтер, готов ли он к приему данных. Когда он отвечает,
что готов, ядро посылает дополнительные данные.Метод взаимодействия на основе прерываний обычно работает
несколько быстрее, но использует ценную линию запроса прерывания.
Про некоторые новые принтеры HP утверждают, что они работают
некорректно в режиме взаимодействия на основе прерываний,
вероятно, из-за некоторой (еще не вполне понятной) проблемы
синхронизации. Для этих принтеров необходимо устанавливать
режим опроса. Используйте тот режим, который работает. Некоторые
принтеры будут работать в обоих режимах, но оказываются
крайне медленными в режиме на основе прерываний.Режим взаимодействия можно установить двумя способами:
конфигурируя ядро или с помощью программы &man.lptcontrol.8;.Для установки режима взаимодействия путем
конфигурирования ядра:Отредактируйте файл конфигурации ядра. Найдите запись
ppc0. Если вы настраиваете второй
параллельный порт, ищите запись ppc1.
Используйте запись ppc2 для третьего порта,
и так далее.Если необходимо установить режим на основе прерываний,
для FreeBSD 4.X добавьте спецификацию
irq:device ppc0 at isa? irq NГде N - номер IRQ
для параллельного порта компьютера.Для FreeBSD 5.X, отредактируйте следующую строку:hint.ppc.0.irq="N"в файле /boot/device.hints, заменив
N соответствующим номером IRQ.
Файл конфигурации ядра также должен содержать драйвер
&man.ppc.4;:device ppcЕсли необходимо установить режим опроса, не добавляйте
спецификацию irq:Для FreeBSD 4.X используйте следующую строку в
файле конфигурации ядра:device ppc0 at isa?Для FreeBSD 5.X просто удалите из файла
/boot/device.hints следующую
строку:hint.ppc.0.irq="N"В некоторых случаях, этого недостаточно для перевода
порта в режим опроса под FreeBSD 5.X. Чаще всего,
проблема связана с драйвером &man.acpi.4;, который может
опрашивать и подключать устройства и, тем самым,
управлять режимом доступа к порту принтера. Чтобы решить
эту проблему, проверьте конфигурацию &man.acpi.4;.Сохраните файл. Затем сконфигурируйте, соберите и установите
ядро и перезагрузите систему. Подробнее см. в разделе конфигурирование ядра.Для настройки режима взаимодействия с помощью
утилиты &man.lptcontrol.8;:Введите команду:&prompt.root; lptcontrol -i -d /dev/lptNдля установки режима взаимодействия на основе прерываний
для lptN.Введите команду:&prompt.root; lptcontrol -p -d /dev/lptNдля установки режима взаимодействия по опросу для
lptN.Вы можете поместить эти команды в файл
/etc/rc.local для установки требуемого режима
при каждой загрузке системы. Дополнительную информацию об этом
ищите на странице справочного руководства &man.lptcontrol.8;.Проверка взаимодействия с принтеромПрежде чем переходить к конфигурированию системы спулинга,
надо убедиться, что операционная система может успешно посылать данные
на принтер. Намного проще отлаживать взаимодействие с принтером и
систему спулинга отдельно.Для тестирования принтера мы пошлем на него текст. Для принтеров,
которые могут непосредственно печатать посланные на них символы,
программа &man.lptest.1; идеально подходит: она генерирует все 96
печатных символов ASCII в 96 строках.PostScriptДля &postscript;- (или основанного на другом языке) принтера,
необходим более сложный тест. Подойдет небольшая
&postscript;-программа, вроде следующей:%!PS
100 100 moveto 300 300 lineto stroke
310 310 moveto /Helvetica findfont 12 scalefont setfont
(Is this thing working?) show
showpageПредставленный выше &postscript;-код можно поместить в
в файл и использовать, как показано в примерах в следующих
разделах.PCLКогда в этом документе речь идет о языке принтера,
подразумевается язык типа &postscript;, а не PCL компании Hewlett
Packard. Хотя PCL имеет прекрасные функциональные возможности, в нем
можно смешивать обычный текст с его управляющими
последовательностями. &postscript; не позволяет непосредственно
печатать обычный текст, и это язык принтера именно того рода,
для которого надо выполнять специальные настройки.Проверка параллельного принтерапринтерыпараллельныеВ этом разделе описано, как проверить, может ли ОС FreeBSD
взаимодействовать с принтером, подключенным к параллельному порту.Для тестирования принтера на параллельном порту:Станьте пользователем root с помощью
команды &man.su.1;.Пошлите данные на принтер.Если принтер может печатать обычный текст, используйте
утилиту &man.lptest.1;. Введите команду:&prompt.root; lptest > /dev/lptNГде N - номер параллельного порта,
начиная с нуля.Если принтер понимает &postscript; или другой язык принтера,
пошлите на принтер небольшую программу. Введите команду:&prompt.root; cat > /dev/lptNЗатем, построчно, внимательно введите
программу, поскольку вы не сможете отредактировать строку
после нажатия клавиши RETURN
или ENTER. По окончании ввода программы,
нажмите CONTROL+D или другую комбинацию клавиш,
используемую для ввода символа конца файла.Можно также поместить программу в файл и выполнить команду:&prompt.root; cat file > /dev/lptNГде file - имя файла, содержащего
программу, которую вы хотите послать принтеру.Вы должны увидеть распечатку. Не переживайте, если текст выглядит
не так, как предполагалось; этими проблемами мы займемся позже.Проверка последовательного принтерапринтерыпоследовательныеВ этом разделе описано, как проверить, может ли ОС FreeBSD
взаимодействовать с принтером, подключенным к последовательному
порту.Для тестирования принтера на последовательном
порту:Станьте пользователем root с помощью
команды &man.su.1;.Отредактируйте файл /etc/remote.
Добавьте следующую запись:printer:dv=/dev/port:br#bps-rate:pa=parityбит в секундупоследовательный портчетностьГде port - специальный файл
устройства для последовательного порта (ttyd0,
ttyd1 и т.д.), bps-rate -
скорость обработки данных принтером, в битах в секунду,
а parity - требуемая принтером четность
(значение even, odd,
none или zero).Вот пример записи для принтера, подключенного
к третьему последовательному порту на скорости 19200 bps
без четности:printer:dv=/dev/ttyd2:br#19200:pa=noneПодключитесь к принтеру с помощью &man.tip.1;.
Введите команду:&prompt.root; tip printerЕсли этот шаг не срабатывает, снова отредактируйте
файл /etc/remote и попробуйте использовать
устройство /dev/cuaaN
вместо /dev/ttydN.Пошлите данные на принтер.Если принтер может печатать обычный текст, используйте
утилиту &man.lptest.1;. Введите команду:&prompt.user; $lptestЕсли принтер понимает &postscript; или другой язык
принтера, пошлите на принтер небольшую программу.
Вводите программу, построчно, очень
внимательно, поскольку нажатие клавиши Backspacе
или других клавиш редактирования может иметь значение
для принтера. Может также понадобиться нажать специальную
комбинацию клавиш, обозначающую конец файла, чтобы принтер
понял, что получена вся программа. Для
&postscript;-принтеров нажмите CONTROL+D.Можно также поместить программу в файл и ввести команду:&prompt.user; >fileГде file - имя файла,
содержащего программу. После того, как утилита
&man.tip.1; пошлет файл, нажмите требуемую для
ввода признака конца файла комбинацию клавиш.Вы должны увидеть распечатку. Не переживайте, если текст выглядит
не так, как предполагалось; этими проблемами мы займемся позже.Включение спулера: файл /etc/printcapСейчас ваш принтер уже должен быть подключен, ядро
(при необходимости) - сконфигурировано для взаимодействия с ним,
и вы смогли послать на принтер простые данные. Теперь мы готовы
к конфигурированию системы LPD для управления
доступом к принтеру.Система LPD конфигурируется путем
редактирования файла /etc/printcap. Система
спулинга LPD читает этот файл при
каждом использовании спулера, так что, изменения в файле
сразу же учитываются.принтерыхарактеристикиФормат файла &man.printcap.5; прост. Используйте
свой любимый текстовый редактор для изменения файла
/etc/printcap. Формат файла идентичен
формату других файлов, описывающих характеристики, например,
/usr/share/misc/termcap и
/etc/remote. Полная информация о формате
представлена на странице справочного руководства &man.cgetent.3;.Простое конфигурирование спулера включает следующие шаги:Выберите имя (и несколько удобных псевдонимов) для принтера
и поместите их в файл /etc/printcap; подробнее
об именовании см. в разделе
Именование принтера.начальные страницыОтключите выдачу начальных страниц (которые по умолчанию выдаются),
вставив характеристику sh; подробнее об
этом см. в разделе
Подавление выдачи
начальных страниц.Создайте каталог для спулинга и укажите его местонахождение
с помощью характеристики sd; подробнее об этом
см. в разделе Создание
каталога спулинга.Выберите специальный файл устройства /dev для
использования с принтером и укажите его в файле
/etc/printcap с помощью характеристики
lp; подробнее об этом см. в разделе
Выбор устройства для принтера.
Кроме того, если принтер подключен к последовательному порту,
настройте параметры взаимодействия с помощью характеристики
ms#, которая обсуждается в разделе
Конфигурирование параметров
взаимодействия для спулера.Установите фильтр для обычного текста; подробнее об этом
см. в разделе Установка
текстового фильтра.Проверьте настройку, напечатав что-нибудь с помощью команды
&man.lpr.1;. Подробнее об этом см. в разделах
Проверка и
Выявление
проблем.Принтеры, использующие специальные языки, например, &postscript;-принтеры,
не могут непосредственно печатать обычный текст. Простая настройка,
представленная выше и описанная в следующих разделах, предполагает, что,
если вы устанавливаете такой принтер, то будете печатать только файлы,
которые он может обработать.Пользователи часто предполагают, что они могут печатать обычный
текст на любом из установленных в системе принтеров. Программы,
взаимодействующие для обеспечения печати с системой
LPD, обычно исходят из этого же предположения.
Если вы устанавливаете такой принтер и хотите иметь возможность посылать
на печать задания на языке принтера и в виде обычного
текста, настоятельно рекомендуется добавить дополнительный шаг к представленной
выше простой последовательности настройки: установите программу
автоматического преобразования обычного текста в &postscript; (или
другой язык принтера). В разделе
Прием заданий с обычным текстом
на &postscript;-принтеры рассказано, как это сделать.Именование принтераПервый (простой) шаг - выбрать имя для принтера.
На самом деле, не важно, выберите ли вы функциональное имя или
причудливое, поскольку для принтера можно также задать несколько
псевдонимов.По крайней мере, один из принтеров, указанных в файле
/etc/printcap, должен иметь псевдоним
lp. Это - стандартное имя принтера.
Если пользователи не установят переменную среды PRINTER
и не укажут имя принтера в командной сроке при вводе любой
команды системы LPD, по умолчанию для
ее выполнения будет использован принтер lp.Также широко распространена практика в качестве последнего
псевдонима для принтера задавать полное его описание, включая
производителя и модель.После выбора имени и нескольких популярных псевдонимов поместите
их в файл /etc/printcap. Имя принтера должно начинаться
с крайнего левого столбца. Каждый псевдоним отделяйте вертикальной
чертой, а после последнего псевдонима поместите двоеточие.В следующем примере мы начнем со скелетного файла
/etc/printcap, определяющего два принтера
(построчный принтер Diablo 630 и лазерный &postscript;-принтер
Panasonic KX-P4455):#
# /etc/printcap для хоста rose
#
rattan|line|diablo|lp|Diablo 630 Line Printer:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:В этом примере первый принтер назван
rattan и ему заданы псевдонимы
line, diablo,
lp и Diablo 630 Line
Printer. Поскольку у него есть псевдоним
lp, он является стандартным принтером. Второму
принтеру дано имя bamboo и ему заданы псевдонимы
ps, PS,
S, panasonic и
Panasonic KX-P4455 PostScript v51.4.Подавление выдачи начальных страницпечатьначальных страницСистема спулинга LPD будет по умолчанию
печатать заголовочную страницу для каждого задания.
Заголовочная страница содержит имя пользователя, отправившего задание,
хост, с которого поступило задание, и имя задания, красивыми большими
буквами. К сожалению, все эти дополнительные тексты мешают
отладке простой настройки принтера, поэтому мы будет отключать
выдачу начальных страниц.Для подавления выдачи начальных страниц добавьте характеристику
sh к записи принтера в файле
/etc/printcap. Вот пример файла
/etc/printcap с добавлением sh:#
# /etc/printcap для хоста rose - никаких начальных страниц
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:Обратите внимание, как мы использовали правильный формат: первая
строка начинается с самого левого столбца, а последующие строки
смещены на один символ табуляции. Каждая строка в записи,
кроме последней, завершается символом обратной косой.Создание каталога для спулингаprinter spoolзадания печатиСледующий шаг в простой настройке спулера - создать
каталог для спулинга, каталог, в котором
находятся задания печати, пока не будут напечатаны, и находятся
еще несколько других файлов для поддержки спулера.Из-за присущих каталогам спулинга постоянных изменений, принято
помещать эти каталоги в каталог /var/spool.
Кроме того, не нужно создавать резервные копии содержимого каталогов
спулинга. Пересоздать их можно с помощью простой команды
&man.mkdir.1;.Принято также задавать для каталога имя, совпадающее с именем
принтера, как показано ниже:&prompt.root; mkdir /var/spool/имя-принтераОднако при наличии большого количества принтеров в сети
может иметь смысл поместить все каталоги спулинга в один каталог,
который просто резервируется для печати с помощью
LPD. Мы сделаем это для наших двух принтеров,
rattan и bamboo:&prompt.root; mkdir /var/spool/lpd
&prompt.root; mkdir /var/spool/lpd/rattan
&prompt.root; mkdir /var/spool/lpd/bambooЕсли вас интересует конфиденциальность заданий, отправляемых
пользователями на печать, можно защитить каталог спулинга, чтобы
он не был общедоступным. Каталоги спулинга должны принадлежать и
быть доступны на чтение, запись и просмотр содержимого пользователю
daemon и группе daemon, и никому больше. Мы установим это для
каталогов спулинга принтеров из нашего примера:&prompt.root; chown daemon:daemon /var/spool/lpd/rattan
&prompt.root; chown daemon:daemon /var/spool/lpd/bamboo
&prompt.root; chmod 770 /var/spool/lpd/rattan
&prompt.root; chmod 770 /var/spool/lpd/bambooНаконец, надо сообщить системе LPD
об этих каталогах с помощью файла /etc/printcap.
Полное имя каталога спулинга задается с помощью характеристики
sd:#
# /etc/printcap для хоста rose - добавлены каталоги спулинга
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:sd=/var/spool/lpd/rattan:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:Обратите внимание, что имя принтера начинается с самого
первого столбца, а все последующие строки смещены на один
символ табуляции и каждая строка в записи,
кроме последней, завершается символом обратной косой.Если вы не зададите каталог спулинга с помощью характеристики
sd, система спулинга будет использовать по умолчанию
каталог /var/spool/lpd.Выбор устройства для принтераВ разделе Добавление файлов
/dev для портов мы выяснили, какой специальный
файл устройства в каталоге /dev FreeBSD будет
использовать для взаимодействия с принтером. Теперь мы сообщаем эту
информацию системе LPD. Когда у системы
спулинга есть задание для печати, она будет открывать указанное устройство
от имени программы-фильтра (которая отвечает за передачу данных
на принтер).Задайте полное имя устройства /dev в файле
/etc/printcap с помощью характеристики
lp.В нашем текущем примере давайте предположим, что принтер
rattan подключен к первому параллельному порту,
а принтер bamboo - к шестому последовательному
порту; вот что нужно добавить в файл /etc/printcap:#
# /etc/printcap для хоста rose - указано, какие устройства использовать
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:sd=/var/spool/lpd/rattan:\
:lp=/dev/lpt0:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:\
:lp=/dev/ttyd5:Если вы не укажете характеристику lp для
принтера в файле /etc/printcap, система
LPD использует по умолчанию
устройство /dev/lp. Устройство
/dev/lp сейчас в ОС FreeBSD не существует.Если устанавливаемый принтер подключен к параллельному порту,
перейдите к разделу Установка
текстового фильтра. Иначе выполните сначала инструкции,
представленные в следующем разделе.Конфигурирование параметров взаимодействия спулерапринтерыпоследовательныеДля принтеров на последовательных портах система
LPD может устанавливать скорость передачи,
четность и другие параметры взаимодействия через последовательных порт
от имени программы-фильтра, которая посылает данные на принтер.
Это полезно потому, что:Позволяет опробовать различные параметры взаимодействия, просто
редактируя файл /etc/printcap; программу-фильтр
перекомпилировать не нужно.Позволяет системе спулинга использовать одну и ту же
программу-фильтр для нескольких принтеров, которые могут иметь
различные установки для взаимодействия через последовательный
порт.Следующие характеристики в файле /etc/printcap
задают параметры взаимодействия через последовательный порт
для устройства, указанного в качестве значения характеристики
lp:br#bps-rateУстанавливает скорость взаимодействия для устройства в
bps-rate, где
bps-rate может иметь значение 50, 75, 110,
134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600,
19200, 38400, 57600 или 115200 бит в секунду.ms#stty-modeУстанавливает опции для терминального устройства после открытия устройства.
Поддерживаемые опции описаны на странице справочного руководства &man.stty.1;.Когда система LPD открывает устройство,
заданное характеристикой lp, она устанавливает
опции устройства в соответствии со значением характеристики
ms#. Наибольший интерес представляют
режимы parenb, parodd,
cs5, cs6, cs7,
cs8, cstopb,
crtscts и ixon, которые
описаны на странице справочного руководства &man.stty.1;.Давайте зададим опции для нашего принтера на шестом последовательном
порту. Мы установим скорость передачи 38400. В качестве режима
установим без четности с помощью -parenb,
8-битовые символы с помощью cs8,
отсутствие модемного управления с помощью clocal и
аппаратное управление потоком с помощью опции crtscts:bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:\
:lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:Установка текстового фильтрапечатьфильтрыТеперь мы готовы задать системе LPD,
какой текстовый фильтр использовать для посылки заданий на принтер.
Текстовый фильтр, известный также как
входной фильтр, - это программа, которую система LPD запускает при получении задания на
печать. Когда система LPD запускает
текстовый фильтр для принтера, она направляет на стандартный
входной поток фильтра задание печати, а его стандартный выходной
поток - на устройство принтера, заданное характеристикой lp.
Предполагается, что фильтр прочитает задание из стандартного входного
потока, выполнит все необходимые для принтера преобразования и
выдаст результат в стандартный выходной поток, который и будет
напечатан. Подробнее о текстовом фильтре см. в разделе
Фильтры.Для простой настройки принтера в качестве текстового фильтра можно
задать небольшой скрипт командного интерпретатора, который просто
выполняет /bin/cat для посылки задания на принтер.
В составе FreeBSD поставляется другой фильтр, lpf,
обрабатывающий забой и подчеркивание для принтеров, которые не слишком
хорошо справляются с потоком данных, содержащих такие символы. И,
конечно же, вы можете использовать любую другую необходимую
программу-фильтр. Фильтр lpf детально описан в разделе
lpf: текстовый фильтр.Сначала давайте создадим скрипт командного интерпретатора
/usr/local/libexec/if-simple для простого
тестового фильтра. Поместите в этот файл следующий текст с помощью
любимого текстового редактора:#!/bin/sh
#
# if-simple - Простой фильтр входного текста для lpd
# Установлен в /usr/local/libexec/if-simple
#
# Просто копирует stdin в stdout. Игнорирует все аргументы фильтра.
/bin/cat && exit 0
exit 2Сделайте этот файл выполняемым:&prompt.root; chmod 555 /usr/local/libexec/if-simpleА теперь потребуйте от системы LPD его использовать, указав его в
качестве значения характеристики if в файле
/etc/printcap. Мы добавим его для двух принтеров,
имеющихся пока в примере файла /etc/printcap:#
# /etc/printcap для хоста rose - добавлен текстовый фильтр
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\
:if=/usr/local/libexec/if-simple:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:\
:lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:\
:if=/usr/local/libexec/if-simple:Копию скрипта if-simple можно
найти в каталоге /usr/share/examples/printing.
+ class="directory">/usr/share/examples/printing.
Запуск системы LPDДемон &man.lpd.8; запускается из /etc/rc,
а необходимость запуска задается переменной lpd_enable.
Эта переменная по умолчанию имеет значение NO. Если
вы еще этого не сделали, добавьте строку:lpd_enable="YES"в файл /etc/rc.conf, а затем либо перезапустите
машину, либо просто выполните команду &man.lpd.8;.&prompt.root; lpdПроверкаВы добрались до конца простой настройки системы
LPD. К сожалению,
поздравлять вас еще рано, поскольку надо еще проверить
настройку и устранить все выявленные проблемы. Для проверки
настройки, попытайтесь что-то распечатать. Для печати с помощью
системы LPD используется
команда &man.lpr.1;, которая посылает задание на печать.Можно скомбинировать &man.lpr.1; с программой &man.lptest.1;,
представленной в разделе Проверка
взаимодействия с принтером, генерирующей тестовый текст.Для тестирования простой настройки
LPD:Введите команду:&prompt.root; lptest 20 5 | lpr -Pprinter-nameГде printer-name - имя
(или псевдоним) принтера, заданное в файле
/etc/printcap. Для проверки стандартного
принтера, введите команду &man.lpr.1; без аргумента .
Как уже отмечалось, если тестируется принтер, предполагающий использование
&postscript;, пошлите ему &postscript;-программу вместо использования
утилиты &man.lptest.1;. Это можно сделать, поместив программу в файл
и выполнив команду lpr file.Для &postscript;-принтера вы должны получить результаты выполнения
программы. Если вы используете &man.lptest.1;, ваши результаты должны
иметь такой вид:!"#$%&'()*+,-./01234
"#$%&'()*+,-./012345
#$%&'()*+,-./0123456
$%&'()*+,-./01234567
%&'()*+,-./012345678Для дальнейшего тестирования принтера, попытайтесь загрузить
программы побольше (для принтеров, поддерживающих определенный язык)
или выполните команду &man.lptest.1; с другими аргументами. Например,
команда lptest 80 60 выдаст 60 строк по 80
символов в каждой.Если принтер не работает, см. раздел Выявление проблем.Расширенная настройка принтераВ этом разделе описаны фильтры для печати специально сформатированных
файлов, начальных страниц, печати по сети, ограничения и учета использования
принтера.ФильтрыпечатьфильтрыХотя система LPD поддерживает сетевые
протоколы, очереди, контроль доступа и другие аспекты печати, большая
часть реальной работы происходит в
фильтрах. Фильтры - это программы,
взаимодействующие с принтером и обеспечивающие учет особенностей
устройства и специальных требований. При простой настройке принтера
мы установили фильтр для обычного текста—крайне простой, который
должен работать с большинством принтеров (см. раздел
Установка текстового
фильтра).Однако, чтобы обеспечить преобразования формата, учет использования
принтера и индивидуальных особенностей отдельных принтеров и т.п.,
надо разобраться, как работают фильтры. В конечном итоге, всеми этими
аспектами печати должен заниматься фильтр. А плохая новость состоит
в том, что, в большинстве случаев, вы сами
должны предоставить соответствующие фильтры. Хорошая новость состоит
в том, что многие фильтры общедоступны; а если подходящих нет,
их обычно легко написать.Кроме того, в составе ОС FreeBSD поставляется один фильтр,
/usr/libexec/lpr/lpf, работающий со многими
принтерами, которые могут печатать обычный текст. (Он обрабатывает
символы забоя и табуляции в файле, выполняет учет использования, но
и не более того.) Есть также ряд фильтров и компонентов фильтров
в наборе портов FreeBSD.Вот что вы найдете в этом разделе:В разделе Как работают
фильтры сделана попытка дать обзор роли фильтра в процессе
печати. Прочтите этот раздел, чтобы понять, что происходит
за кадром, когда система LPD
использует фильтры. Это понимание поможет предвидеть и решать
проблемы, с которыми вы можете столкнуться при добавлении дополнительных
фильтров для каждого из принтеров.Система LPD предполагает, что
каждый принтер, по умолчанию, может печатать обычный текст. Это
проблематично для &postscript;-принтеров (или принтеров на базе
другого языка), поскольку они не могут печатать обычный текст
непосредственно. В разделе
Прием заданий с
обычным текстом на &postscript;-принтеры описано, что
нужно сделать, чтобы решить эту проблему. Прочтите этот раздел,
если используете &postscript;-принтер.&postscript; - популярный формат выдачи для многих программ.
Некоторые люди даже пишут &postscript;-код непосредственно. К
сожалению, &postscript;-принтеры дороги. В разделе Имитация &postscript; на
не-&postscript; принтерах описано, как можно дополнительно
изменить текстовый фильтр принтера для приема и печати данных
&postscript; не не-&postscript; принтере.
Прочтите этот раздел, если ваш принтер не поддерживает
&postscript;.В разделе Фильтры преобразования
описан способ автоматизации преобразования определенных форматов
файлов, например, графики или данных для печатного станка, в форматы,
которые может обработать ваш принтер. После чтения этого раздела
вы сможете настроить свои принтеры так, что пользователи смогут
выполнять команду lpr -t для печати данных troff,
или lpr -d для печати данных &tex; DVI, или
lpr -v - для печати растровых изображений, и
так далее. Я рекомендую прочитать этот раздел.В разделе Выходные фильтры
описана не часто используемая возможность задавать выходные
фильтры в системе LPD. Если только вы
не печатаете начальные страницы (см. Начальные страницы),
можно, пожалуй, вообще пропустить этот раздел.В разделе lpf: текстовый
фильтр описана команда lpf, - достаточно
полный, хотя и простой текстовый фильтр для строчных принтеров
(и лазерных принтеров, работающих как строчные), поставляемый в
составе ОС FreeBSD. Если надо быстро настроить учет использования
принтера для обычного текста или если используется принтер,
из которого при получении символов забоя идет дым, несомненно,
стоит подумать об использовании lpf.Различные скрипты, описанные далее, можно найти в каталоге
/usr/share/examples/printing.
+ class="directory">/usr/share/examples/printing.
Как работают фильтрыКак уже упоминалось, фильтр - это выполняемая программа, запускаемая
системой LPD для поддержки специфических
особенностей устройства при взаимодействии с принтером.Когда системе LPD надо напечатать
входящий в задание файл, она запускает программу-фильтр. Стандартный
входной поток фильтра связывается с файлом, который надо распечатать,
его стандартный выходной поток - с принтером, а стандартный поток
ошибок перенаправляется в файл регистрации ошибок (задается
характеристикой lf в файле
/etc/printcap, или используется стандартное
устройство /dev/console).troffЗапускаемый системой LPD фильтр и его
аргументы зависят от того, что указано в файле
/etc/printcap, и какие аргументы указал
пользователь для задания в команде &man.lpr.1;. Например,
если пользователь ввел команду lpr -t,
система LPD должна запустить фильтр troff,
заданный характеристикой tf для соответствующего
принтера. Если пользователь хочет печатать обычный текст, система
должна запустить фильтр if (это верно в большинстве
случаев: подробнее см. в разделе
Выходные фильтры).В файле /etc/printcap можно задавать
три вида фильтров:Текстовый фильтр, который в документации
LPD двусмысленно называют
входным фильтром, обеспечивает печать
обычного текста. Рассматривайте его как стандартный фильтр.
Система LPD предполагает, что любой
принтер может по умолчанию печатать обычный текст, а на текстовый
фильтр возлагается задача обеспечить, чтобы символы забоя,
табуляции или другие специальные символы не сбивали принтер с
толку. Если вы работаете в среде, где надо учитывать
использование принтера, текстовый фильтр должен также
учитывать количество напечатанных страниц, обычно, подсчитывая
количество напечатанных строк и сравнивая их с количеством строк на
страницу, поддерживаемых принтером. Текстовый фильтр запускается со
следующим списком аргументов:
имя-фильтра-c-wширина-lдлина-iсдвиг-n имя-пользователя-h хостучетный-файл
где
указывается, если задание послано командой
lpr -lшириназначение из характеристики pw (page
width - ширина страницы), указанной в файле
/etc/printcap, по умолчанию - 132длиназначение из характеристики pl (page
length - длина страницы), по умолчанию - 66сдвигсдвиг, заданный командой lpr -i,
по умолчанию - 0имя-пользователярегистрационное имя пользователя, печатающего файлхостимя хоста, с которого было послано заданиеучетный-файлимя учетного файла, задаваемое характеристикой
af.печатьфильтрыФильтр преобразования преобразует
специфичный формат файла в то, что принтер может воспроизвести
на бумаге. Например, данные системы набора ditroff нельзя печатать
непосредственно, но можно установить фильтр преобразования
для файлов ditroff, чтобы преобразовывать данные ditroff
в тот вид, который принтер может воспринять и напечатать. В разделе
Фильтры
преобразования описано всё об этих фильтрах. Фильтры
преобразования также необходимы для учета, если предполагается
учет использования принтера. Фильтры преобразования
запускаются со следующими аргументами:
имя-фильтра-xширина-пиксела-yвысота-пиксела-n имя-пользователя-h хостучетный-файл
где ширина-пиксела - значение
характеристики px (по умолчанию - 0),
а высота-пиксела - значение характеристики
py (по умолчанию - 0).Выходной фильтр используется только
если нет текстового фильтра или если включена выдача начальных
страниц. Судя по моему опыту, выходные фильтры используются редко.
Они описаны в разделе Выходные
фильтры. У выходного фильтра есть всего два аргумента:
имя-фильтра-wширина-lдлина
которые идентичны аргументам и
текстового фильтра.Фильтры также должны завершать работу со
следующим статусом выхода:exit 0Если фильтр успешно напечатал файл.exit 1Если фильтр не смог напечатать файл, но хочет, чтобы
система LPD попыталась
распечатать файл ещё раз. Система LPD
перезапустит фильтр, если его работа завершена с этим статусом.exit 2Если фильтр не смог напечатать файл и не хочет, чтобы
система LPD пыталась его печатать
еще раз. Система LPD удалит файл.Поставляемый в составе FreeBSD текстовый фильтр
/usr/libexec/lpr/lpf использует аргументы, задающие
ширину и длину страницы для определения того, когда посылать символ
прогона страницы (form feed) и как учитывать использование принтера.
Он использует переданные в качестве аргументов имя пользователя,
хост и учетный файл для внесения учетных записей.При поиске фильтров убедитесь, что они совместимы с системой LPD.
Если да, они должны поддерживать описанные выше списки аргументов.
Если вы планируете создавать фильтры для общего использования,
позаботьтесь о поддержке этих списков аргументов и кодов выхода.Прием заданий с обычным текстом на &postscript;-принтерызадания печатиЕсли вы - единственный пользователь компьютера и &postscript;-принтера
(или принтера на основе другого языка), и вы обещаете никогда не
посылать на принтер обычный текст и никогда не использовать возможностей
различных программ, требующих посылки на принтер обычного текста,
вам можно не заботиться о том, что описано в этом разделе.Но, если вы хотите посылать на принтер как задания &postscript;,
так и обычный текст, рекомендуется дополнить настройку принтера. Для
этого надо, чтобы текстовый фильтр определял, является ли поступающее
задание обычным текстом или программой на языке &postscript;. Все
&postscript;-задания должны начинаться с %! (для
других языков принтеров обратитесь к соответствующей документации).
Если первые два символа в задании - именно эти, речь идет о &postscript;,
и мы можем остальную часть задания передавать непосредственно. Если же
первые два символа в файле - другие, фильтр будет преобразовывать
текст в &postscript; и печатать результат.Как нам это сделать?принтерыпоследовательныеЕсли вы используете последовательный принтер, хороший способ
достичь поставленной цели состоит в установке lprps.
lprps - это фильтр для &postscript;-принтера,
выполняющий двустороннее взаимодействие с принтером. Он обновляет файл
состояния принтера, помещая в него подробную информацию, выданную
принтером, так что пользователи и администраторы могут узнать,
в каком именно состоянии (например, toner low
или paper jam) находится принтер. Но еще
важнее, что он включает программу psif, которая
определяет, является ли входящее задание обычным текстом, и вызывает
textps (еще одну программу, поставляемую вместе
с lprps) для преобразования его в &postscript;.
Затем lprps посылает преобразованное задание
на принтер.lprps входит в набор портов FreeBSD
(см. Набор портов). Вы, конечно, можете
загрузить, собрать и установить его самостоятельно. После установки
lprps просто укажите путь к программе
psif, входящей в состав пакета
lprps. Если вы установили lprps
из набора портов, используйте следующий текст в записи для
последовательного &postscript;-принтера в файле
/etc/printcap::if=/usr/local/libexec/psif:Надо также задать характеристику rw;
она требует от системы LPD открывать принтер
в режиме чтения и записи.При использовании параллельного &postscript;-принтера (что не
позволяет обеспечить двустороннее взаимодействие с принтером,
необходимое для системы lprps), можно
использовать в качестве текстового фильтра следующий скрипт командного
интерпретатора:#!/bin/sh
#
# psif - Печать PostScript или обычного текста на PostScript-принтере
# Скрипт, а НЕ версия, входящая в состав lprps
# Установлен в /usr/local/libexec/psif
#
IFS="" read -r first_line
first_two_chars=`expr "$first_line" : '\(..\)'`
if [ "$first_two_chars" = "%!" ]; then
#
# Задание PostScript, печатать его.
#
echo "$first_line" && cat && printf "\004" && exit 0
exit 2
else
#
# Обычный текст, преобразовать его, а затем напечатать.
#
( echo "$first_line"; cat ) | /usr/local/bin/textps && printf "\004" && exit 0
exit 2
fiВ представленном выше скрипте, textps - отдельно
установленная программа для преобразования обычного текста в
&postscript;. Можно использовать любую программу преобразования текста
в &postscript;. Набор портов FreeBSD (см. Набор
портов) включает полнофункциональную программу преобразования
текста в &postscript; под названием a2ps, которую
тоже можно попробовать использовать.Имитация &postscript; на не-&postscript; принтерахPostScriptэмуляцияGhostscript&postscript; является фактическим стандартом для
высококачественного набора и печати. &postscript;, однако, -
дорогой стандарт. К счастью, благодаря компании
Aladdin Enterprises есть свободный аналог &postscript; под названием
Ghostscript, который работает с FreeBSD.
Ghostscript может читать большинство &postscript;-файлов и выдавать
соответствующие страницы на множество устройств, включая много
моделей не-PostScript принтеров. Установив Ghostscript и используя
специальный текстовых фильтр для принтера, можно заставить ваш
не-&postscript; принтер работать фактически как &postscript;-принтер.Ghostscript входит в набор портов FreeBSD, если вы хотите
устанавливать его оттуда. Вы можете также легко загрузить, собрать и
установить его самостоятельно.Для имитации &postscript; надо, чтобы текстовый фильтр
определял, печатается ли &postscript;-файл. Если нет, фильтр будет
передавать файл на принтер непосредственно; в противном случае, он
будет использовать Ghostscript, чтобы сначала преобразовать файл в
формат, который поймет принтер.Рассмотрим пример: следующий сценарий представляет собой
текстовый фильтр для принтеров Hewlett Packard DeskJet 500.
Для других принтеров замените аргумент
в команде gs (Ghostscript). (Введите
команду gs -h для получения списка устройств,
поддерживаемых установленной версией Ghostscript.)#!/bin/sh
#
# ifhp - Печать Ghostscript-эмулированного PostScript на DeskJet 500
# Установлен в /usr/local/libexec/ifhp
#
# Обрабатывать LF как CR+LF (чтобы избежать "эффекта ступенек"
# на принтерах HP/PCL:
#
printf "\033&k2G" || exit 2
#
# Прочитать первые два символа файла
#
IFS="" read -r first_line
first_two_chars=`expr "$first_line" : '\(..\)'`
if [ "$first_two_chars" = "%!" ]; then
#
# Это PostScript; используем Ghostscript для чтения, преобразования и печати.
#
/usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 \
-sOutputFile=- - && exit 0
else
#
# Обычный текст или HP/PCL, поэтому просто печатаем его напрямую; печатаем в
# конце символ прогона страницы, чтобы была выдана последняя страница.
#
echo "$first_line" && cat && printf "\033&l0H" &&
exit 0
fi
exit 2Наконец, надо указать системе LPD,
какой фильтр использовать, задав характеристику if::if=/usr/local/libexec/ifhp:Вот и все. Теперь можно выполнять lpr plain.text
и lpr whatever.ps, и обе команды должны успешно
печатать.Фильтры преобразованияПосле завершения простой настройки, описанной в разделе
Простая настройка принтера,
прежде всего, вам может потребоваться установить фильтры
преобразования для любимых форматов файлов (кроме обычных
текстов ASCII).Зачем устанавливать фильтры преобразования?&tex;печать файлов dviФильтры преобразования упрощают печать различного рода файлов.
В качестве примера, предположим, что активно используется
издательская система &tex; и имеется &postscript;-принтер.
При каждой генерации DVI-файла из &tex;, мы не можем печатать его
непосредственно, пока не преобразуем в &postscript;. Для этого
используется такая последовательность команд:&prompt.user; dvips seaweed-analysis.dvi
&prompt.user; lpr seaweed-analysis.psУстановив фильтр преобразования для файлов DVI, мы можем не
конвертировать файл каждый раз вручную, возложив эту задачу на
систему LPD. Теперь при каждом получении
DVI-файла нас от его распечатки отделяет только один шаг:&prompt.user; lpr -d seaweed-analysis.dviМы заставили систему LPD автоматически
преобразовывать DVI-файл, указав опцию . Все
опции преобразования представлены в разделе
Опции форматирования
и преобразования.Для каждой из опций преобразования, которая должна поддерживаться
принтером, установите фильтр преобразования и
укажите его полное имя в файле /etc/printcap.
Фильтр преобразования аналогичен текстовому фильтру для простой
настройки принтера (см. раздел
Установка текстового фильтра),
но вместо печати обычного текста он преобразует файл в формат,
который может понять принтер.Какие фильтры преобразования следует устанавливать?Устанавливать надо те фильтры преобразования, которые
предполагается использовать. Если вы часто печатаете файлы DVI,
значит, фильтр преобразования DVI необходим. Если вам часто
приходится печатать результаты работы troff, может потребоваться
фильтр troff.В следующей таблице представлены фильтры, с которыми
работает система LPD, их
соответствующие характеристики для файла
/etc/printcap, а также способ их вызова
в команде lpr:Тип файлаХарактеристика /etc/printcapОпция lprcifplotcfDVIdfplotgfditroffnfТекст на языке FORTRANrftrofftfрастровое изображениеvfобычный текстifникакой, или
В нашем примере использование lpr -d означает,
что для принтера должна быть задана характеристика
df в записи в файле
/etc/printcap.FORTRANВопреки мнению многих, форматы вроде текста на языке FORTRAN
и plot, вероятно, устарели. У себя на машине вы можете дать
новые значения этим или любым другим опциям форматирования,
установив соответствующие специализированные фильтры. Например,
пусть необходимо напрямую печатать файлы Printerleaf (файлы
настольной издательской системы Interleaf), но вообще вы не собираетесь
печатать файлы типа plot. Можно установить фильтр преобразования
Printerleaf в качестве значения характеристики gf
и научить своих пользователей, что команда lpr -g
означает печатать файлы Printerleaf.Установка фильтров преобразованияПоскольку фильтры преобразования представляют собой программы,
не входящие в базовую поставку FreeBSD, их, видимо, надо помещать
в каталоге /usr/local. Популярное
местонахождение - каталог /usr/local/libexec,
поскольку эти фильтры являются специализированными программами для
выполнения системой LPD; обычным
пользователям никогда не понадобится их выполнять.Для включения фильтра преобразования, укажите его полное
имя в качестве значения соответствующей характеристики для принтера
в файле /etc/printcap.В качестве примера, давайте добавим фильтр преобразования DVI
в запись для принтера bamboo. Вот опять пример
файла /etc/printcap, с новой характеристикой
df для принтера bamboo.#
# /etc/printcap для хоста rose - добавлен фильтр df для bamboo
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:sd=/var/spool/lpd/rattan:\
:lp=/dev/lpt0:\
:if=/usr/local/libexec/if-simple:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:\
:lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\
:if=/usr/local/libexec/psif:\
:df=/usr/local/libexec/psdf:Фильтр DVI - скрипт командного интерпретатора по имени
/usr/local/libexec/psdf. Вот его текст:#!/bin/sh
#
# psdf - фильтр принтера, преобразующий DVI в PostScript
# Установлен в /usr/local/libexec/psdf
#
# Вызывается системой lpd при выполнении пользователем команды lpr -d
#
exec /usr/local/bin/dvips -f | /usr/local/libexec/lprps "$@"Это скрипт выполняет команду dvips в режиме
фильтрования (аргумент ) входного потока,
представляющего собой задание для печати. Затем запускается
фильтр &postscript;-принтера lprps (см. раздел
Прием заданий с
обычным текстом на &postscript;-принтеры) с аргументами,
переданными системой LPD этому скрипту.
Команда lprps будет использовать эти аргументы
для учета распечатанных страниц.Дополнительные примеры фильтров преобразованияПоскольку нет фиксированного набора шагов для установки
фильтров преобразования, я просто представлю дополнительные
примеры. Используйте их в качестве руководства при создании
собственных фильтров. Используйте их непосредственно, если
нужно.Следующий пример фильтра преобразует растровый файл (точнее,
GIF-файл) для печати на принтере Hewlett Packard LaserJet III-Si:#!/bin/sh
#
# hpvf - Преобразовать GIF-файлы в HP/PCL и напечатать
# Установлен в /usr/local/libexec/hpvf
PATH=/usr/X11R6/bin:$PATH; export PATH
giftopnm | ppmtopgm | pgmtopbm | pbmtolj -resolution 300 \
&& exit 0 \
|| exit 2Он работает путем преобразования GIF-файла в переносимый формат anymap,
его - в переносимый формат graymap, затем - в переносимый bitmap,
а уже его - в данные, подходящие для LaserJet/PCL.Вот файл /etc/printcap с записью для
принтера, в которой используется представленный выше фильтр:#
# /etc/printcap для хоста orchid
#
teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
:lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\
:if=/usr/local/libexec/hpif:\
:vf=/usr/local/libexec/hpvf:Следующий скрипт является фильтром преобразования для печати
данных troff, получаемых из системы набора groff, на
&postscript;-принтере bamboo:#!/bin/sh
#
# pstf - Преобразует выдаваемые groff данные troff в PS и печатает.
# Установлен в /usr/local/libexec/pstf
#
exec grops | /usr/local/libexec/lprps "$@"Представленный выше скрипт снова использует команду
lprps для взаимодействия с принтером.
Если принтер подключен к параллельному порту, придется
использовать следующий скрипт:#!/bin/sh
#
# pstf - Преобразует выдаваемые groff данные troff в PS и печатает.
# Установлен в /usr/local/libexec/pstf
#
exec gropsВот и все. Вот какую запись надо добавить в файл
/etc/printcap, чтобы включить этот фильтр::tf=/usr/local/libexec/pstf:Вот пример, который пригодится старым специалистам по языку FORTRAN.
Это фильтр для печати текста программы на языке FORTRAN на любом принтере,
который может непосредственно печатать обычный текст. Мы установим его
для принтера teak:#!/bin/sh
#
# hprf - Фильтр текста на языке FORTRAN для LaserJet 3si:
# Установлен в /usr/local/libexec/hprf
#
printf "\033&k2G" && fpr && printf "\033&l0H" &&
exit 0
exit 2Надо добавить следующую строку к записи в файле
/etc/printcap для принтера
teak, чтобы включить этот фильтр::rf=/usr/local/libexec/hprf:Перейдем к последнему, более сложному примеру. Мы добавим фильтр
DVI для уже использовавшегося принтера LaserJet по имени
teak. Сначала простая часть: изменить файл
/etc/printcap, указав местонахождение
фильтра DVI::df=/usr/local/libexec/hpdf:А теперь - часть посложнее: создать фильтр. Для этого нам
понадобится программа преобразования DVI в LaserJet/PCL. Набор
портов FreeBSD (см. Набор портов)
содержит одну: соответствующий пакет называется
dvi2xx. Установка этого пакета дает нам
необходимую программу, dvilj2p, которая
преобразует DVI в коды, подходящие для LaserJet IIp,
LaserJet III и LaserJet 2000.Команда dvilj2p требует создания
достаточно сложного фильтра hpdf, поскольку
она не может читать стандартный входной поток. Она хочет работать
с именем файла. Что еще хуже, имя файла должно завершаться
расширением .dvi, так что использование
стандартного входного потока /dev/fd/0
тоже проблематично. Мы можем обойти эту проблему, создав (символическую)
связь (с именем, завершающимся суффиксом .dvi) с
устройством /dev/fd/0, тем самым, заставив
команду dvilj2p читать из стандартного входного
потока.Единственная оставшаяся проблема состоит в том, что мы не можем
создавать временную связь в каталоге /tmp.
Символьные связи принадлежат пользователю и группе bin.
Фильтр же работает от имени пользователя daemon. А у
каталога /tmp установлен sticky bit. Фильтр сможет
создать связь, но не сможет почистить за собой и удалить ее, поскольку
связь будет принадлежать другому пользователю.Вместо этого, фильтр будет создавать символическую связь в текущем
рабочем каталоге, которым является каталог спулинга (задаваемый
характеристикой sd в файле
/etc/printcap). Это отличное место для выполнения
фильтрами своих действий, особенно потому, что (иногда)
в каталоге спулинга места больше, чем в /tmp.Вот, наконец, и сам фильтр:#!/bin/sh
#
# hpdf - Печать данных DVI на принтере HP/PCL
# Установлен в /usr/local/libexec/hpdf
PATH=/usr/local/bin:$PATH; export PATH
#
# Определяем функцию для удаления временных файлов. Они существуют
# в текущем каталоге - в каталоге спулинга для принтера.
#
cleanup() {
rm -f hpdf$$.dvi
}
#
# Определяем функцию для обработки критических ошибок: напечатать заданное
# сообщение и выйти с кодом 2. Код выхода 2 сообщает системе LPD, что не
# надо повторно пытаться печатать задание.
#
fatal() {
echo "$@" 1>&2
cleanup
exit 2
}
#
# Если пользователь удаляет задание, система LPD будет посылать сигнал SIGINT,
# поэтому перехватываем SIGINT (и пару других сигналов), чтобы убрать за собой.
#
trap cleanup 1 2 15
#
# Гарантируем, что не конфликтуем с существующими файлами.
#
cleanup
#
# Связываем входной файл DVI со стандартным входным потоком (файлом для печати).
#
ln -s /dev/fd/0 hpdf$$.dvi || fatal "Cannot symlink /dev/fd/0"
#
# Заменяем LF = CR+LF
#
printf "\033&k2G" || fatal "Cannot initialize printer"
#
# Преобразуем и печатаем. Значение, возвращаемое программой dvilj2p, не надежно,
# так что мы его игнорируем.
#
dvilj2p -M1 -q -e- dfhp$$.dvi
#
# Убираем за собой и завершаем работу
#
cleanup
exit 0Автоматизированное преобразование: альтернатива фильтрам преобразованияВсе эти фильтры преобразования многое дают для среды печати,
но требуют от пользователя указывать (в командной строке
&man.lpr.1;), какой именно фильтр использовать. Если пользователи
не особенно разбираются в компьютерах, необходимость указывать
опцию фильтра будет их раздражать. Что еще хуже, однако,
при неправильном указании опции фильтрования может быть применен
фильтр, не соответствующий типу файла, и принтер испортит несколько
сотен страниц бумаги.Вместо установки фильтров преобразования, можно попытаться
заставить текстовый фильтр (поскольку он применяется по умолчанию)
определять тип файла, который его попросили напечатать, и затем
автоматически вызывать соответствующий фильтр преобразования.
В этом могут помочь утилиты вроде file. Конечно,
будет сложно различать некоторые типы
файлов—и, кончено же, можно задавать фильтры преобразования
только для них.apsfilterпечатьфильтрыapsfilterВ наборе портов FreeBSD есть текстовый фильтр, выполняющий
автоматическое преобразование; это apsfilter.
Он может выявлять обычный текст, &postscript; и файлы DVI,
выполнять соответствующие преобразования и печатать
результат.Выходные фильтрыСистема спулинга LPD поддерживает еще
один тип фильтров, который мы еще не рассматривали: выходные фильтры.
Выходной фильтр предназначен только для печати обычного текста,
как текстовый фильтр, но с множеством упрощений. Если вы используете
выходной фильтр, а текстовый фильтр не задан, то:Система LPD запускает выходной
фильтр один раз для всего задания, а не для каждого файла задания.Система LPD не пытается определить начало
или конец файлов в задании для выходного фильтра.Система LPD не передает выходному
фильтру имя пользователя или хоста, так что этот фильтр не предназначен
для учета использования принтера. Фактически, он получает всего два
аргумента:имя-фильтра-wширина-lдлинаГде ширина берется из характеристики
pw, а длина - из
характеристики pl для соответствующего
принтера.Не соблазняйтесь простотой выходного фильтра. Если вы хотите,
чтобы каждый файл в задании начинал печататься с новой страницы,
выходной фильтр не поможет. Используйте текстовый
фильтр (также известный как входной); см. раздел
Установка текстового фильтра.
Более того, выходной фильтр, фактически, - более
сложный, поскольку он должен проверять посылаемый ему
поток байтов в поисках специальных символов-флагов и посылать себе
сигналы от имени системы LPD.Однако выходной фильтр необходим, если
надо выдавать начальные страницы и требуется посылать управляющие
последовательности или другие строки инициализации, чтобы можно было
напечатать начальную страницу. (Но он не поможет,
если необходимо учитывать начальные страницы для пользователя,
поскольку система LPD не передает
выходному фильтру никакой информации о пользователе или хосте.)На одном принтере система LPD
позволяет совместно с выходным использовать текстовый или другие
фильтры. В таких случаях, система LPD будет
запускать выходной фильтр только для печати начальной страницы (см.
раздел Начальные
страницы). Система LPD затем
предполагает, что выходной фильтр остановится,
посылая ему два байта: ASCII 031 и ASCII 001. Когда выходной фильтр
видит эти два байта (031, 001), он должен остановиться, посылая
себе сигнал SIGSTOP. Когда система
LPD закончит выполнение остальных фильтров,
она перезапускает выходной фильтр, посылая ему сигнал
SIGCONT.Если есть выходной фильтр, но нет текстового,
и система LPD обрабатывает задания с обычным
текстом, LPD использует для выполнения
задания выходной фильтр. Как уже было сказано, выходной фильтр
будет печатать все файлы задания последовательно, без прогонов
страниц или других настроек бумаги, а это вряд ли
вас устроит. Почти во всех случаях необходим текстовый фильтр.Программа lpf, которую мы представили ранее
как текстовый фильтр, может также работать как выходной фильтр. Если
срочно необходим простой выходной фильтр, но вы не хотите писать
код ля выявления байтов и посылки сигнала, попробуйте использовать
lpf. Можно также поместить lpf
в скрипт командного интерпретатора для обработки любых
кодов инициализации, которые может потребовать принтер.lpf: текстовый фильтрПрограмма /usr/libexec/lpr/lpf,
поставляемая в составе двоичного дистрибутива FreeBSD,
представляет собой текстовый (входной) фильтр, который может
печатать с отступом (если задание послано командой
lpr -i), пропускать все символы буквально
(если задание послано командой lpr -l),
настраивать позицию печати при получении в задании символов
забоя и табуляции, а также учитывать количество напечатанных страниц.
Она может также использоваться как выходной фильтр.Программа lpf подходит для многих сред печати.
И хотя она не позволяет посылать на принтер инициализационные
последовательности, легко написать скрипт командного интерпретатора,
который будет выполнять необходимую инициализацию, а затем вызывать
lpf.учет страницучетиспользования принтераЧтобы программа lpf корректно выполняла учет
страниц, ей необходимо указать корректные значения характеристик
pw и pl в файле
/etc/printcap. Она использует эти значения для
определения того, сколько текста может поместиться на странице и сколько
страниц было в задании пользователя. Подробнее об учете использования
принтера см. в разделе Учет
использования принтера.Начальные страницыПри наличии множества пользователей, использующих
различные принтеры, вероятно, можно считать начальные
страницы неизбежным злом.баннерные страницыначальные страницыначальные страницыНачальные страницы, которые также называют баннерными
или разделительными страницами, идентифицируют,
кому принадлежат задания после их печати. Обычно информация на них
выдается большими, жирными буквами, возможно, с декоративными рамочками,
чтобы в пачке распечаток они отличались от реальных документов,
образующих задания пользователей. Они позволяют пользователям быстро
находить свои задания. Очевидный недостаток выдачи начальных страниц
состоит в том, что для каждого задания надо печатать на одну страницу
больше, причем, страница эта хоть сколько-нибудь нужна несколько минут, а
затем она оказывается в мусорной корзине или сдается в макулатуру.
(Учтите, что начальная страница выдается в начале задания, а не перед каждым
файлом, так что бумаги может теряться не так уж и много.)Система LPD может выдавать заголовочные
страницы для ваших распечаток автоматически, если
ваш принтер может непосредственно печатать обычный текст. Если используется
&postscript;-принтер, потребуется внешняя программа для генерации начальной
страницы; см. Начальные
страницы на &postscript;-принтерах.Включение выдачи начальных страницВ разделе Простая настройка
принтера мы отключили выдачу начальных страниц, задав характеристику
sh (что означает suppress header) в
файле /etc/printcap. Для включения Для обеспечения
выдачи начальных страниц на принтер, просто удалите характеристику
sh.Кажется слишком просто, правда?Вы правы. Может потребоваться задать выходной
фильтр для посылки строк инициализации на принтер. Вот пример выходного
фильтра для Hewlett Packard PCL-совместимых принтеров:#!/bin/sh
#
# hpof - Выходной фильтр для Hewlett Packard PCL-совместимых принтеров
# Установлен в /usr/local/libexec/hpof
printf "\033&k2G" || exit 2
exec /usr/libexec/lpr/lpfЗадайте полное имя выходного фильтра в качестве значения
характеристики of. Подробнее об этом см.
в разделе Выходные фильтры.Вот пример файла /etc/printcap для принтера
teak, который мы представили ранее; мы включили
выдачу начальных страниц и добавили показанный выше выходной фильтр:#
# /etc/printcap для хоста orchid
#
teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
:lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\
:if=/usr/local/libexec/hpif:\
:vf=/usr/local/libexec/hpvf:\
:of=/usr/local/libexec/hpof:Теперь, когда пользователи выдают задания на принтер
teak, они получают начальную страницу с каждым
заданием. Если пользователи хотят тратить время на поиск своих
распечаток, они могут подавить вывод начальных страниц,
посылая задание с опцией lpr -h;
другие опции &man.lpr.1; см. в разделе
Опции начальных
страниц.Система LPD выдает символ прогона
страницы (form feed) после начальной страницы. Если ваш принтер
использует другой символ или последовательность символов
для выброса напечатанной страницы, укажите их в
качестве значения характеристики ff
в файле /etc/printcap.Управление начальными страницамиВключая выдачу начальных страниц, система LPD
будет выдавать длинный длинный заголовок, целую страницу
с большими буквами, идентифицирующими пользователя, хост и задание. Ниже
представлен пример (kelly напечатала задание по имени outline с хоста rose): k ll ll
k l l
k l l
k k eeee l l y y
k k e e l l y y
k k eeeeee l l y y
kk k e l l y y
k k e e l l y yy
k k eeee lll lll yyy y
y
y y
yyyy
ll
t l i
t l
oooo u u ttttt l ii n nnn eeee
o o u u t l i nn n e e
o o u u t l i n n eeeeee
o o u u t l i n n e
o o u uu t t l i n n e e
oooo uuu u tt lll iii n n eeee
r rrr oooo ssss eeee
rr r o o s s e e
r o o ss eeeeee
r o o ss e
r o o s s e e
r oooo ssss eeee
Job: outline
Date: Sun Sep 17 11:04:58 1995Система LPD добавляет прогон страницы
после этого текста, чтобы задание начиналось с новой страницы
(если только вы не указали характеристику sf (suppress
form feeds) в записи соответствующего принтера в файле
/etc/printcap).Если вы предпочитаете, чтобы система LPD
создавала короткий заголовок, укажите
характеристику sb (short banner) в файле
/etc/printcap. Начальная страница будет
иметь следующий вид:rose:kelly Job: outline Date: Sun Sep 17 11:07:51 1995Также по умолчанию система LPD печатает
начальную страницу перед заданием. Для изменения порядка на обратный,
укажите характеристику hl (header last) в файле
/etc/printcap.Учет начальных страницИспользование встроенных начальных страниц системы
LPD порождает определенную парадигму
учета использования принтера: начальные страницы пользователи
не должны оплачивать.Почему?Поскольку выходной фильтр - единственная внешняя программа,
управляющая выдачей начальных страниц, которая может выполнять учет,
а ей не передают информацию о пользователе или хосте
и учётный файл, так что, она не имеет никакого представления о том,
на чей счет отнести использование принтера. Также недостаточно
просто добавлять одну страницу в текстовом фильтре
или в любом из фильтров преобразований (которые имеют информацию
о пользователе и хосте), поскольку пользователи могут подавлять
выдачу начальных страниц с помощью опции lpr -h.
И их заставят оплачивать начальные страницы, которые они не печатали.
Понятно, что опцию lpr -h будут использовать в большинстве
случаев те, кто озабочен проблемами окружающей среды, но вы никак не
можете стимулировать ее использование.Также недостаточно, чтобы каждый из фильтров
генерировал собственные начальные страницы (и, тем самым,
мог их учитывать). Если пользователи захотят отказаться от выдачи
начальных страниц и укажут опцию lpr -h, они все
равно их получат, и будут вынуждены оплатить, поскольку система
LPD не передает информации о наличии опции
ни одному из этих фильтров.Итак, что же вы можете сделать?Вы можете:Принять парадигму системы LPD и
сделать начальные страницы бесплатными.Установить альтернативную систему вместо LPD,
такую как LPRng. В разделе
Альтернативы стандартному
спулеру представлена дополнительная информация о других
системах спулинга, которые можно использовать вместо
LPD.
Написать умный выходной фильтр. Обычно
выходной фильтр не предназначен для выполнения чего-то кроме
инициализации принтера и простых преобразований символов. Он
подходит для начальных страниц и заданий с обычным текстом
(когда нет текстового (входного) фильтра). Но, если есть текстовый
фильтр для заданий с обычным текстом, то система
LPD будет запускать выходной фильтр только
для начальных страниц. И выходной фильтр может анализировать
текст начальной страницы, которую генерирует система
LPD, чтобы определить, на счет какого
пользователя и хоста отнести начальную страницу. Единственная
проблема этого метода в том, что выходной фильтр все равно не
знает, какой учетный файл использовать (ему не передают
имя файла, заданное в качестве значения характеристики
af), но при наличии хорошо известного учетного
файла, его имя можно явно указать в выходном фильтре. Для
упрощения этапа анализа задайте характеристику
sh (short header) в файле
/etc/printcap. Повторимся, что это может
оказаться слишком сложным, и пользователи, несомненно, больше оценят
великодушного системного администратора, который сделает начальные
страницы бесплатными.Начальные страницы на &postscript;-принтерахКак было описано выше, система LPD может
генерировать начальную страницу в виде обычного текста, что подходит для
многих принтеров. Конечно, &postscript;-принтеры не могут непосредственно
печатать обычный текст, так что, для них возможность выдачи начальных
страниц системы LPD бесполезна—или почти
бесполезна.Один очевидный способ получить начальные страницы — заставить
каждый фильтр преобразования и текстовый фильтр генерировать начальную
страницу. Эти фильтры должны использовать аргументы имя пользователя и хост
для генерации соответствующей начальной страницы. Недостаток этого
метода состоит в том, что пользователи будут всегда получать начальные
страницы, даже если будут посылать задания с помощью команды
lpr -h.Давайте рассмотрим этот метод детально. Следующий сценарий
принимает три аргумента (регистрационное имя пользователя,
имя хоста и имя задания) и создает простую
начальную страницу на языке &postscript;:#!/bin/sh
#
# make-ps-header - выдать начальную страницу на языке PostScript в stdout
# Установлен в /usr/local/libexec/make-ps-header
#
#
# Это единицы измерения PostScript (72 на дюйм). Измените значения для A4 или
# другого используемого формата бумаги:
#
page_width=612
page_height=792
border=72
#
# Проверяем аргументы
#
if [ $# -ne 3 ]; then
echo "Usage: `basename $0` <user> <host> <job>" 1>&2
exit 1
fi
#
# Сохраняем значения в переменных, в основном, для упрощения понимания
# последующего PostScript-кода.
#
user=$1
host=$2
job=$3
date=`date`
#
# Посылаем PostScript-код в stdout.
#
exec cat <<EOF
%!PS
%
% Гарантируем, что не будем влиять на следующее далее задание пользователя
%
save
%
% Делаем тонкую некрасивую рамку по краям бумаги.
%
$border $border moveto
$page_width $border 2 mul sub 0 rlineto
0 $page_height $border 2 mul sub rlineto
currentscreen 3 -1 roll pop 100 3 1 roll setscreen
$border 2 mul $page_width sub 0 rlineto closepath
0.8 setgray 10 setlinewidth stroke 0 setgray
%
% Выдаем регистрационное имя пользователя, красивыми, большими и рельефными буквами
%
/Helvetica-Bold findfont 64 scalefont setfont
$page_width ($user) stringwidth pop sub 2 div $page_height 200 sub moveto
($user) show
%
% Теперь выдаем всякие детали
%
/Helvetica findfont 14 scalefont setfont
/y 200 def
[ (Job:) (Host:) (Date:) ] {
200 y moveto show /y y 18 sub def }
forall
/Helvetica-Bold findfont 14 scalefont setfont
/y 200 def
[ ($job) ($host) ($date) ] {
270 y moveto show /y y 18 sub def
} forall
%
% Вот и все
%
restore
showpage
EOFТеперь, каждый из фильтров преобразования и текстовый фильтр
может вызвать этот сценарий, чтобы сначала сгенерировать
начальную страницу, а затем напечатать задание пользователя.
Вот фильтр преобразования DVI, представленные ранее в этом
документе, измененный для выдачи начальной страницы:#!/bin/sh
#
# psdf - фильтр преобразования DVI в PostScript
# Установлен в /usr/local/libexec/psdf
#
# Вызывается системой lpd при выполнении пользователем команды lpr -d
#
orig_args="$@"
fail() {
echo "$@" 1>&2
exit 2
}
while getopts "x:y:n:h:" option; do
case $option in
x|y) ;; # Ignore
n) login=$OPTARG ;;
h) host=$OPTARG ;;
*) echo "LPD started `basename $0` wrong." 1>&2
exit 2
;;
esac
done
[ "$login" ] || fail "No login name"
[ "$host" ] || fail "No host name"
( /usr/local/libexec/make-ps-header $login $host "DVI File"
/usr/local/bin/dvips -f ) | eval /usr/local/libexec/lprps $orig_argsОбратите внимание, как фильтр должен анализировать список
аргументов, чтобы определить имя пользователя и имя хоста.
Анализ аргументов в других фильтрах аргументов выполняется точно так же.
Текстовый фильтр принимает, однако, немного другой набор аргументов
(см. раздел Как работают
фильтры).Как уже упоминалось, представленная выше схема хотя и достаточно
проста, но не позволяет учесть опцию подавить вывод
начальной страницы (опция ) команды
lpr. Если пользователи хотят сберечь деревья
(или несколько копеек, если вы берете деньги и за начальные страницы),
они не смогут этого сделать, поскольку каждый фильтр будет
выдавать начальную страницу для каждого задания.Чтобы позволить пользователям отключать выдачу начальной страницы для
отдельного задания, надо будет использовать прием, представленный в
разделе Учет
начальных страниц: написать выходной фильтр, который анализирует
сгенерированную системой LPD начальную страницу и выдает ее
&postscript;-версию. Если пользователь посылает задание командой
lpr -h, система LPD
не будет генерировать начальную страницу, как и ваш выходной
фильтр. В противном случае, ваш выходной фильтр будет читать текст,
полученный от системы LPD, и
посылать на принтер соответствующий &postscript;-код для начальной
страницы.Если вы используете &postscript;-принтер с последовательным
интерфейсом, можно использовать систему lprps,
которая включает выходной фильтр, psof,
делающий то, что описано выше. Помните, что программа
psof не учитывает напечатанные пользователями
начальные страницы.Печать по сетипринтерысетевыепечать по сетиFreeBSD поддерживает печать по сети: посылку заданий на
удаленные принтеры. Печатью по сети обычно называют две разные
ситуации:Работа с принтером, подключенным к удаленному хосту. Вы
устанавливаете принтер с обычным последовательным или параллельным
интерфейсом на одном хосте. Затем, вы настраиваете систему
LPD для обеспечения доступа к принтеру
с других хостов в сети. В разделе
Принтеры, установленные
на удаленных хостах описано, как это сделать.Работа с принтером, подключенным непосредственно к сети.
Принтер имеет сетевой интерфейс, кроме (или вместо) более
традиционного последовательного или параллельного. Такой принтер
может работать следующим образом:Он может понимать протокол LPD и
даже поддерживать очереди заданий с удаленных хостов. В этом
случае, он работает просто как обычный хост с системой
LPD. Для настройки такого принтера
следуйте той же процедуре, которая описана в разделе
Принтеры,
установленные на удаленных хостах.Он может поддерживать получение потока данных по сети. В
этом случае, вы подключаете принтер к одному
из хостов в сети, делая этот хост ответственным за поддержку
очередей заданий и их посылку на принтер. В разделе
Принтеры с
интерфейсами для получения потока данных по сети представлен
ряд советов по установке таких принтеров.Принтеры, установленные на удаленных хостахСистема спулинга LPD имеет встроенную
поддержку для посылки заданий на другие хосты, на которых тоже работает
система LPD (или совместимая с
LPD). Это позволяет установить принтер
на одном хосте и сделать его доступным с других хостов. Она также
работает с принтерами, имеющими сетевые интерфейсы и понимающими
протокол LPD.Для обеспечения такого рода удаленной печати, сначала установите
принтер на одном хосте, хосте принтера, с помощью
процедуры, описанной в разделе Простая
настройка принтера. Выполните любые необходимые дополнительные
настройки, как описано в разделе Расширенная
настройка принтера. Не забудьте протестировать принтер и убедиться,
обеспечивает ли он заданные возможности системы LPD.
Также проверьте, что локальный хост имеет право
использовать службу LPD на
удаленном хосте (см. раздел
Ограничение приема
заданий с удаленных хостов).принтерысетевыепечать по сетиЕсли вы используете принтер с сетевым интерфейсом,
совместимый с системой LPD, упомянутым
в обсуждении выше хостом принтера будет сам
принтер, а в качестве имена принтера будет
выступать имя, которое вы сконфигурировали для принтера. См.
документацию, поставляемую с принтером и/или сетевым интерфейсом
принтера.Если вы используете Hewlett Packard Laserjet, то при задании
принтеру имени text будет автоматически
выполняться преобразование символа LF в последовательность
CRLF, так что, сценарий hpif не понадобится.Затем, на других хостах, для которых вы хотите обеспечить доступ
к принтеру, создайте запись в их файлах /etc/printcap
со следующими компонентами:Дайте записи любое подходящее имя. Для простоты, однако,
имеет смысл задавать такое же имя и псевдонимы, как и на хосте
принтера.Характеристику lp оставьте пустой, указав
это явно (:lp=:).Создайте каталог спулинга и укажите его местонахождение в
характеристике sd. Система
LPD будет сохранять задания в нем,
прежде чем они будут посланы на хост принтера.Укажите имя хоста принтера в качестве значения характеристики
rm.Укажите имя принтера на хосте принтера
в качестве значения характеристики rp.Вот и все. Не нужно перечислять фильтры преобразования, размеры
страницы и вообще ничего больше в файле
/etc/printcap.Рассмотрим пример. На хосте rose есть два принтера,
bamboo и rattan.
Мы позволим пользователям хоста orchid печатать на эти
принтеры. Вот файл /etc/printcap для хоста
orchid (из раздела
Включение
выдачи начальных страниц). В нем уже есть запись для принтера
teak; мы добавили две записи для принтеров на
хосте rose:#
# /etc/printcap для хоста orchid - добавлены (удаленные) принтеры на rose
#
#
# teak - локальный принтер; он подключен непосредственно к orchid:
#
teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
:lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\
:if=/usr/local/libexec/ifhp:\
:vf=/usr/local/libexec/vfhp:\
:of=/usr/local/libexec/ofhp:
#
# rattan подключен к rose; посылать задания для rattan на хост rose:
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan:
#
# bamboo тоже подключен к rose:
#
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:Затем достаточно только создать каталоги спулинга на
orchid:&prompt.root; mkdir -p /var/spool/lpd/rattan /var/spool/lpd/bamboo
&prompt.root; chmod 770 /var/spool/lpd/rattan /var/spool/lpd/bamboo
&prompt.root; chown daemon:daemon /var/spool/lpd/rattan /var/spool/lpd/bambooТеперь пользователи хоста orchid могут печатать на
принтеры rattan и bamboo. Если,
например, пользователь на orchid выполнит команду
&prompt.user; lpr -P bamboo -d sushi-review.dvi
система LPD на orchid
будет копировать задание в каталог спулинга
/var/spool/lpd/bamboo и учтет, что печатается
задание DVI. Как только на хосте rose появится место
в каталоге спулинга принтера bamboo, две системы
LPD передадут файл на хост rose.
Файл будет ждать в очереди на rose пока, наконец, не будет
напечатан. Он будет преобразован из формата DVI в &postscript; (поскольку
bamboo является &postscript;-принтером) на хосте
rose.Принтеры с интерфейсами для получения потока данных по сетиЧасто при покупке сетевой карты для принтера можно приобрести
две версии: эмулирующую спулер (более дорогая версия) или просто
позволяющую принимать на принтер данные так, как если бы
использовался последовательный или параллельный порт (более
дешевая версия). В этом разделе описано, как использовать
более дешёвую версию. Использование более дорогой версии
описано в предыдущем разделе
Принтеры, установленные
на удаленных хостах.Формат файла /etc/printcap позволяет
указывать, какой последовательный или параллельный интерфейс
использовать, и (при использовании последовательного интерфейса),
какую установить скорость, использовать ли управление потоком,
размер отступов для табуляций, преобразование символов новой строки
и другие параметры. Но нет способа указать подключение к принтеру,
прослушивающему TCP/IP или другой сетевой порт.Для посылки данных на подключенный к сети принтер, надо разработать
программу взаимодействия, которую могут вызывать текстовый фильтр и
фильтры преобразований. Вот один из примеров: скрипт
netprint принимает все данные со стандартного
входного потока и посылает их на принтер, подключенный к сети.
Мы указываем имя хоста принтера в качестве первого аргумента, а
номер порта, к которому надо подключаться - в качестве второго
аргумента команды netprint. Учтите, что
поддерживается только одностороннее взаимодействие (с ОС FreeBSD
на принтер); многие сетевые принтеры поддерживают двустороннее
взаимодействие, и вы можете захотеть его использовать (для
получения состояния принтера, учета и т.п.).#!/usr/bin/perl
#
# netprint - Текстовый фильтр для принтера, подключенного к сети
# Установлен в /usr/local/libexec/netprint
#
$#ARGV eq 1 || die "Usage: $0 <printer-hostname> <port-number>";
$printer_host = $ARGV[0];
$printer_port = $ARGV[1];
require 'sys/socket.ph';
($ignore, $ignore, $protocol) = getprotobyname('tcp');
($ignore, $ignore, $ignore, $ignore, $address)
= gethostbyname($printer_host);
$sockaddr = pack('S n a4 x8', &AF_INET, $printer_port, $address);
socket(PRINTER, &PF_INET, &SOCK_STREAM, $protocol)
|| die "Can't create TCP/IP stream socket: $!";
connect(PRINTER, $sockaddr) || die "Can't contact $printer_host: $!";
while (<STDIN>) { print PRINTER; }
exit 0;Затем можно использовать этот сценарий в различных фильтрах. Пусть
у нас есть строчный принтер Diablo 750-N, подключенный к сети. Принтер
принимает данные на печать через порт 5100. Имя хоста для принтера -
scrivener. Вот текстовый фильтр для этого принтера:#!/bin/sh
#
# diablo-if-net - Текстовый фильтр для принтера Diablo `scrivener',
# прослушивающего порт 5100. Установлен в /usr/local/libexec/diablo-if-net
#
exec /usr/libexec/lpr/lpf "$@" | /usr/local/libexec/netprint scrivener 5100Ограничение использования принтерапринтерыограничение доступаВ этом разделе представлена информация об ограничении доступа к
принтеру. Система LPD позволяет управлять
тем, кто может обращаться к принтеру, как локально, так и удаленно,
смогут ли они печатать несколько копий, насколько большими могут
быть их задания и насколько могут разрастаться очереди печати.Ограничение количества копийСистема LPD позволяет пользователям
легко печатать несколько копий файла. Пользователи могут печатать
задания с помощью команды lpr -#5
(например) и получать пять копий каждого файла в задании. Хорошо это
или нет - решать вам.Если вы считаете, что многочисленные копии только изнашивают ваши
принтеры, можете отключить опцию команды
&man.lpr.1;, добавив характеристику sc в файл
/etc/printcap. Когда пользователи пошлют
задания с опцией , они увидят:lpr: multiple copies are not allowedУчтите, что если вы настроили удаленный доступ к принтеру (см.
раздел Принтеры,
установленные на удаленных хостах), необходимо задать
характеристику sc также и в файлах
/etc/printcap удаленных хостов, иначе
пользователи все равно смогут посылать задания с несколькими
копиями с других хостов.Рассмотрим пример. Вот файл /etc/printcap
для хоста rose. Принтер rattan
вполне надежен, поэтому мы разрешим печатать на него несколько
копий, но лазерный принтер bamboo несколько
более изношен, поэтому мы отключим для него печать нескольких
копий, добавив характеристику sc:#
# /etc/printcap для хоста rose - запрещает печать нескольких копий на bamboo
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:sd=/var/spool/lpd/rattan:\
:lp=/dev/lpt0:\
:if=/usr/local/libexec/if-simple:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:sc:\
:lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\
:if=/usr/local/libexec/psif:\
:df=/usr/local/libexec/psdf:Теперь нам также нужно добавить характеристику sc
в файле /etc/printcap на хосте orchid
(и раз уж мы его меняем, давайте отключим печать нескольких копий для
принтера teak):#
# /etc/printcap для хоста orchid - отключена печать нескольких копий на
# локальном принтере teak и на удаленном принтере bamboo
teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
:lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:sc:\
:if=/usr/local/libexec/ifhp:\
:vf=/usr/local/libexec/vfhp:\
:of=/usr/local/libexec/ofhp:
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:sc:С помощью характеристики sc мы предотвращаем
использование команды lpr -#, но это не мешает
пользователям просто выполнить команду &man.lpr.1; несколько раз
или просто послать один и тот же файл несколько раз в одном задании
следующим образом:&prompt.user; lpr forsale.sign forsale.sign forsale.sign forsale.sign forsale.signЕсть много способов предотвратить такое некорректное использование
(включая его игнорирование), которые вы можете разработать самостоятельно.Ограничение доступа к принтерамВы можете управлять тем, кто и на какие принтеры может печатать,
с помощью механизма групп &unix; и характеристики
rg в файле /etc/printcap.
Просто поместите пользователей, которым необходимо предоставить
доступ к принтеру, в определенную группу, a затем укажите эту
группу в качестве значения характеристики rg.Пользователи, не входящие в эту группу (включая root)
будут получать уведомление
lpr: Not a member of the restricted group
при попытке печатать на контролируемый принтер.Как и в случае с характеристикой sc (подавить
выдачу нескольких копий), при необходимости, надо указывать
характеристику rg и на удаленных хостах, имеющих
доступ к вашим принтерам (см. раздел
Принтеры, установленные
на удаленных хостах).Например, давайте разрешим всем обращаться к принтеру
rattan, но только пользователи группы
artists смогут использовать принтер
bamboo. Вот знакомый уже файл
/etc/printcap для хоста rose:#
# /etc/printcap для хоста rose - ограничение группы для bamboo
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:sd=/var/spool/lpd/rattan:\
:lp=/dev/lpt0:\
:if=/usr/local/libexec/if-simple:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:\
:lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\
:if=/usr/local/libexec/psif:\
:df=/usr/local/libexec/psdf:Давайте не будем менять другой рассматриваемый файл
/etc/printcap (для хоста
orchid). Конечно, в результате, любой пользователь
orchid может печатать на bamboo.
Возможно, на хосте orchid учетных записей и так
немного, и вы хотите, чтобы все они имели доступ к принтеру. Или нет.Для принтера может быть только одна ограниченная группа.Контроль размеров посылаемых заданийзадания печатиЕсли к принтеру обращается несколько пользователей, вам,
возможно, понадобиться установить ограничение на максимальный
размер файлов, которые пользователи могут посылать ан печать.
В конечном итоге, размер файловой системы, в которой находятся
каталоги спулинга, ограничен, и надо гарантировать, что
в нем останется место для заданий других пользователей.задания печатиуправленияСистема LPD ограничить максимально
допустимый размер файла в задании с помощью характеристики
mx. Размер задается в блоках, размер которых,
BUFSIZ, составляет 1024 байта.
Если задать этой характеристике значение ноль, размер файла
ограничиваться не будет; однако, если характеристика
mx вообще не задана, то будет использоваться
стандартное ограничение - 1000 блоков.Ограничение применяется к файлам в задании,
а не к общему размеру задания.Система LPD не откажется печатать
файл больше максимально допустимого для принтера размера. Вместо
этого, она поставит в очередь часть файла до заданного
предела, и она будет напечатана. Остальное не будет напечатано.
Правильность такого поведения не бесспорна.Давайте установим ограничения для принтеров из наших примеров,
rattan и bamboo. Поскольку
&postscript;-файлы этих художников обычно бывают весьма
большими, мы ограничим их размер пятью мегабайтами. Мы не
будем ограничивать использование обычного текстового строчного
принтера:#
# /etc/printcap для хоста rose
#
#
# Без ограничения на размер задания:
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:mx#0:sd=/var/spool/lpd/rattan:\
:lp=/dev/lpt0:\
:if=/usr/local/libexec/if-simple:
#
# Размер файла - не более пяти мегабайт:
#
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\
:lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\
:if=/usr/local/libexec/psif:\
:df=/usr/local/libexec/psdf:Опять таки, ограничения применяются только для локальных
пользователей. Если вы настроили удаленный доступ к принтерам,
для удаленных пользователей эти ограничения не действуют.
Надо задать характеристику mx и в файлах
/etc/printcap удаленных хостов. Более
детальную информацию по удаленной печати см. в разделе
Принтеры,
установленные на удаленных хостах.Есть еще один специализированный способ ограничить
размер заданий печати с удаленных принтеров; см. раздел
Ограничение
печати заданий с удаленных хостов.Ограничение печати заданий с удаленных хостовСистема спулинга LPD обеспечивает
несколько способов ограничить посылку заданий с удаленных
хостов:Ограничения хостовВы можете управлять тем, с каких удаленных хостов
локальная система LPD принимает
запросы, с помощью файлов /etc/hosts.equiv и
/etc/hosts.lpd. Система
LPD проверяет, поступает ли
входящий запрос с хоста, указанного в одном из этих файлов.
Если нет, система LPD отвергает
запрос.Формат этих файлов простой: по одному имени хоста в строке.
Учтите, что файл /etc/hosts.equiv также
используется протоколом &man.ruserok.3; и влияет на
программы &man.rsh.1; и &man.rcp.1;, так что, будьте
внимательны.Например, вот файл /etc/hosts.lpd
для хоста rose:orchid
violet
madrigal.fishbaum.deЭто означает, что хост rose будет
принимать запросы с хостов orchid,
violet и
madrigal.fishbaum.de. Если любой
другой хост попытается обратиться к системе
LPD хоста rose,
его задание будет отвергнуто.Ограничения размераВы можете управлять тем, сколько свободного места должно
оставаться в файловой системе, в которой находится каталог
спулинга. Создайте файл с именем minfree
в каталоге спулинга для локального принтера. Вставьте в этот
файл число, задающее, сколько блоков диска (по 512 байтов)
должно быть свободными, чтобы удаленное задание было принято.Это позволяет гарантировать, что удаленные пользователи не
заполнят вашу файловую систему. Можно также использовать этот
механизм для предоставления определенного преимущества
локальным пользователям: они смогут ставить задания в очередь
еще долго после того, как свободного места на диске станет
меньше, чем указано в файле minfree.Например, давайте добавим файл minfree
для принтера bamboo. Найдем в файле
/etc/printcap каталог спулинга для этого
принтера; вот запись для принтера bamboo:bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\
:lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:mx#5000:\
:if=/usr/local/libexec/psif:\
:df=/usr/local/libexec/psdf:Каталог спулинга задается характеристикой
sd. Укажем, что в файловой системе
должно быть три мегабайта (что составляет 6144 блоков диска)
свободного места, чтобы система LPD
принимала удаленные задания:&prompt.root; echo 6144 > /var/spool/lpd/bamboo/minfree
Ограничения пользователейВы можете управлять тем, какие удаленные пользователи
смогут печатать на локальные принтеры, задавая характеристику
rs в файле /etc/printcap.
Когда характеристика rs указана в записи
для локально подключенного принтера, система
LPD будет принимать задания с
удаленных хостов, если пользователь,
посылающий задание, также имеет учетную запись с тем же
именем на локальном хосте. В противном случае,
система LPD отвергает задание.Эта возможность особенно полезна в среде, где есть,
например, несколько отделов, совместно использующих сеть,
и некоторые пользователи могут переходить из отдела в отдел.
Если дать им учетные записи в системах, они смогут использовать
принтеры из систем в своих отделах. Если вы хотели бы
позволить им использовать только
принтеры, но не остальные ресурсы вашего компьютера,
можно дать им формальные учетные записи,
без начального каталога и с бесполезным начальным
командным интерпретатором вроде /usr/bin/false.Учет использования принтераучетиспользования принтераИтак, вам надо брать деньги за распечатки. А почему нет?
Бумага и чернила стоят денег. А есть еще и затраты на
поддержку в работоспособном состоянии—принтеры имеют
множество движущихся частей и склонны к поломкам. Вы проанализировали
состояние принтеров, объемы использования и затраты на их эксплуатацию,
и получили определенную стоимость страницы (или фута, метра или
чего угодно). Теперь, как же начать реально учитывать распечатки?Итак, плохая новость состоит в том, что система спулинга
LPD в этом не сильно поможет. Учет сильно
зависит от типа используемого принтера, форматов распечаток и
ваших требований к оплате использования
принтеров.Для реализации учета надо изменить текстовый фильтр принтера
(чтобы учитывать обычные текстовые задания) и фильтры преобразования
(чтобы учитывать другие форматы файлов), для подсчета страниц или
запроса количества напечатанных страниц у принтера. Не получится
обойтись использованием простого выходного фильтра, поскольку
он не может выполнять учет. См. раздел
Фильтры.Обычно есть два способа выполнения учета:Периодический учет - более распространенный
способ, возможно, потому, что он проще. Когда кто-то печатает
задание, фильтр регистрирует пользователя, хост и количество
страниц в учетном файле. Каждый месяц, семестр, год или раз в
любой желаемый период времени, вы собираете учетные файлы для
различных принтеров, суммируете напечатанные каждым пользователем
страницы и выставляете суммы за использование. Затем вы
очищаете все регистрационные файлы, начиная с чистого листа новый
отчетный период.Постоянный учет используется реже,
вероятно, потому, что сложнее в реализации. Этот метод требует от
фильтров выставлять пользователям суммы за распечатки сразу после
использования принтеров. Как и проверка дисковых квот, этот учет
выполняется немедленно. Вы можете не давать пользователям печатать,
если баланс на их счету стал отрицательным, а также предоставить
им способ проверить и изменить свои квоты печати.
Но этот метод требует поддержки базы данных для отслеживания
пользователей и квот.Система спулинга LPD легко поддерживает
оба метода: поскольку вы (в большинстве случаев) должны предоставить
фильтры, вам придется предоставить и код для учета. Но есть и
положительный момент: методы учета могут быть сколько угодно гибкими.
Например, можно выбрать периодический или постоянный учет. Можно
выбрать, какую именно информацию регистрировать: имена пользователей,
имена хостов, типы заданий, количество напечатанных страниц,
квадратные метры использованной бумаги, продолжительность печати
заданий, и т.д. Это делается путем изменения фильтров так, чтобы
они сохраняли соответствующую информацию.Простая система учета использования принтераВ составе FreeBSD поставляется две программы, которые можно сразу
использовать для организации простой системы периодического учета.
Речь идет о текстовом фильтре lpf, описанном в
разделе lpf: текстовый фильтр,
и о программе &man.pac.8;, обеспечивающей сбор и суммирование
записей из учетных файлов принтеров.Как уже упоминалось в разделе, посвященном фильтрам
(Фильтры), система
LPD при запуске текстового фильтра и
фильтров преобразований передает им имя учетного файла в командной
строке. Фильтры могут использовать соответствующий аргумент, чтобы
определить, куда записывать учетную информацию. Имя этого файла
берется из значения характеристики af в файле
/etc/printcap и, если не заданно как абсолютное,
интерпретируется относительно каталога спулинга.Система LPD запускает lpf
с аргументами ширины и длины страницы (которые берутся из
характеристик pw и pl).
Программа lpf использует эти аргументы для
определения количества бумаги, которая будет использована. После
посылки файла на принтер она вносит запись в учетный файл. Эти
записи имеют следующий вид:2.00 rose:andy
3.00 rose:kelly
3.00 orchid:mary
5.00 orchid:mary
2.00 orchid:zhangСледует использовать отдельный учетный файл для каждого принтера,
поскольку программа lpf не реализует механизм
блокирования файлов, и два экземпляра lpf могут
повредить записи друг друга, если записывают одновременно в один
и тот же файл. Простой способ выделить отдельный учетный файл для
каждого принтера - использовать характеристику
af=acct в файле /etc/printcap.
Тогда каждый учетный файл окажется в каталоге спулинга соответствующего
принтера и будет назван acct.Когда вы будете готовы выставить пользователям счет за
распечатки, запустите программу &man.pac.8;. Просто перейдите в
каталог спулинга принтера, учетную информацию которого вы хотите
обработать, и введите команду pac. Вы
получите итоговые суммы в долларах, как показано ниже: Login pages/feet runs price
orchid:kelly 5.00 1 $ 0.10
orchid:mary 31.00 3 $ 0.62
orchid:zhang 9.00 1 $ 0.18
rose:andy 2.00 1 $ 0.04
rose:kelly 177.00 104 $ 3.54
rose:mary 87.00 32 $ 1.74
rose:root 26.00 12 $ 0.52
total 337.00 154 $ 6.74Команда &man.pac.8; принимает следующие аргументы:По какому принтеру подсчитывать
итоговые суммы. Эта опция работает, только если в качестве
значения характеристики af в файле
/etc/printcap указано абсолютное имя.Сортировать отчет по сумме, а не по имени пользователя в
алфавитном порядке.Игнорировать имя хоста в учетных файлах. При указании этой
опции, пользователь smith на хосте
alpha считается тем же, что и пользователь
smith на хосте gamma.
Обычно эти пользователи считаются разными.Вычислять суммы из расчета стоимость
долларов за страницу или за фут, вместо использования
значения характеристики pc в файле
/etc/printcap, или двух центов (как принято по
умолчанию). Можно задавать стоимость
как число с плавающей запятой.Изменить порядок сортировки.Создать итоговый учетный файл и очистить учетный файл.имя…Выдать учетную информацию только для пользователей с
заданными именами.В стандартном отчете, который создает команда &man.pac.8;,
выдается количество страниц, напечатанное каждым из пользователей с
различных хостов. Если для вас хосты не имеют значения (поскольку
пользователи могут работать на любом хосте), выполните команду
pac -m для получения следующих итогов: Login pages/feet runs price
andy 2.00 1 $ 0.04
kelly 182.00 105 $ 3.64
mary 118.00 35 $ 2.36
root 26.00 12 $ 0.52
zhang 9.00 1 $ 0.18
total 337.00 154 $ 6.74Для получения сумм в долларах программа &man.pac.8; использует
значение характеристики pc в файле
/etc/printcap (по умолчанию - 200, или 2 цента
за страницу). Укажите в качестве значения этой характеристики, в
сотых долях цента, стоимость страницы или фута, исходя из которой
вы хотите брать деньги за распечатки. Это значение можно
переопределить при вызове команды &man.pac.8; с помощью опции
. Но при использовании опции
стоимость надо указывать в долларах, а не в сотых долях цента.
Например, команда
&prompt.root; pac -p1.50
приводит к тому, что страница будет стоить один доллар пятьдесят
центов. Используя эту опцию, можно фактически начинать грести деньги
лопатой.Наконец, при выполнении команды pac -s итоговая
информация будет сохранена в итоговом учетном файле, имя которого
строится как имя учетного файла принтера с суффиксом
_sum. Затем учетный файл принтера очищается.
Когда команда &man.pac.8; выполняется повторно, она перечитывает
итоговый файл для получения начальных сумм, а затем добавляет
информацию из обычного учетного файла.Как можно подсчитать количество напечатанных страниц?Для выполнения хоть отдаленно точного учета надо уметь определять,
сколько бумаги использовано для печати задания. Это - основная
проблема учета использования принтеров.Для обычных текстовых заданий решить эту проблему не сложно: надо
считать, сколько строк входит в задание, и сравнивать с количеством
строк на страницу, которые поддерживает принтер. Не забывайте
учитывать символы забоя в файлах, которые приводят к перепечатке
строк поверх, а также длинные логические строки, которые переносятся
на несколько физических.Текстовый фильтр lpf (представленный в разделе
lpf: текстовый фильтр)
учитывает эти вещи при выполнении учета. Если вы пишете текстовый
фильтр, который должен осуществлять учет, может иметь смысл
просмотреть исходный код программы lpf.Но как обрабатывать файлы других форматов?Ну, для преобразования из DVI в формат LaserJet или из DVI в
&postscript;, можно в фильтре анализировать диагностические
результаты команды dvilj или dvips,
чтобы определить, сколько страниц было преобразовано. Может оказаться
возможным применить этот прием и для других форматов файлов и
программ преобразования.Но эти методы несовершенны из-за того, что принтер мог
фактически и не напечатать все эти страницы. Например, он мог
замять бумагу, в нем мог закончиться тонер или он мог вообще
взорваться—и пользователю все равно пришлось бы платить.Так что же делать?Есть только один надежный способ
точного учета. Купите принтер, который может
сообщать, сколько бумаги он использовал, и подключите его
через последовательный порт или по сети. Практически все
&postscript;-принтеры поддерживают такую возможность. Другие
модели - тоже (сетевые лазерные принтеры Imagen, например).
Измените фильтры для этих принтеров так, чтобы получать количество
использованных страниц после печати каждого задания, и пусть они
записывают учетную информацию только на основе
этого значения. Не надо ни считать строки, ни выполнять
чреватую ошибками обработку файла.Конечно, всегда можно поступить великодушно и не брать денег
за распечатки.Использование принтеровпринтерыиспользованиеВ этом разделе описано, как использовать настроенные принтеры
в ОС FreeBSD. Вот сводка команд пользовательского уровня:&man.lpr.1;Печать заданий&man.lpq.1;Проверка очередей принтеров&man.lprm.1;Удаление заданий из очередей принтеровЕсть также административная команда, &man.lpc.8;, описанную в
разделе Администрирование спулера
LPD, используемая для управления
принтерами и их очередями.Все три команды, &man.lpr.1;, &man.lprm.1; и &man.lpq.1;,
поддерживают опцию ,
позволяющую указать, с каким принтером/очередью из указанных в
файле /etc/printcap работать. Это позволяет
посылать, удалять и проверять задания на разных принтерах. Если вы
не используете опцию , эти команды используют
принтер, указанный в качестве значения переменной среды
PRINTER. Наконец, если переменная среды
PRINTER не задана, эти команды по умолчанию
направляются на принтер по имени lp.Далее термин стандартный принтер
означает принтер, указанный переменной среды PRINTER
или принтер по имени lp, если переменная
среды PRINTER не задана.Задания печатиДля печати файлов, выполните команду:&prompt.user; lpr имя-файла...печатьЭта команда печатает каждый из перечисленных файлов на стандартный
принтер. Если файлы не указаны, команда &man.lpr.1; читает данные для
печати со стандартного входного потока. Например, следующая команда
печатает некоторые важные системные файлы:&prompt.user; lpr /etc/host.conf /etc/hosts.equivДля выбора конкретного принтера, введите:&prompt.user; lpr -P имя-принтераимя-файла...Следующая команда печатает подробный листинг текущего каталога
на принтере rattan:&prompt.user; ls -l | lpr -P rattanПоскольку для команды &man.lpr.1; файлы не указаны,
команда lpr читает данные для печати из стандартного
входного потока, который содержит результат выполнения команды
ls -l.Команда &man.lpr.1; может также принимать множество опций
для управления форматированием, применения преобразований,
печати нескольких копий и т.д. Дополнительную информацию см. в
разделе Опции печати.Проверка заданийзадания печатиПри печати с помощью команды &man.lpr.1;, данные, которые надо
напечатать, помещаются вместе в пакет, который называют заданием
печати, и посылаются системе спулинга LPD.
Каждый принтер имеет очередь заданий, и ваше задание ждет в этой
очереди вместе с другими вашими заданиями и заданиями других
пользователей. Принтер печатает эти задания по принципу первым пришло,
первым выполнено.Для получения очереди стандартного принтера, введите команду
&man.lpq.1;. Чтобы указать конкретный принтер, используйте
опцию . Например, команда
&prompt.user; lpq -P bamboo
показывает очередь для принтера по имени bamboo.
Вот пример результатов выполнения команды lpq:bamboo is ready and printing
Rank Owner Job Files Total Size
active kelly 9 /etc/host.conf, /etc/hosts.equiv 88 bytes
2nd kelly 10 (standard input) 1635 bytes
3rd mary 11 ... 78519 bytesПоказано, что в очереди bamboo есть три
задания. Первое задание, посланное пользователем kelly, получило
номер задания 9. Каждое задание для принтера получает
уникальный номер задания. В большинстве случаев номер задания можно
игнорировать, но он потребуется, если надо будет отменить задание;
подробнее об этом см. в разделе Удаление
заданий.Задание номер 9 состоит из двух файлов; несколько файлов,
указанных в командной строке &man.lpr.1;, считаются частью одного
задания. Это задание является текущим активным (обратите внимание на
слово active в столбце Rank),
т.е. принтер должен сейчас печатать это задание. Второе задание
состоит из данных, передаваемых в качестве стандартного входного
потока команде &man.lpr.1;. Третье задание послано пользователем
mary; оно намного больше по объему.
Полное имя файла, который печатается, слишком длинное и не помещается,
поэтому команда &man.lpq.1; просто выдает три точки.Самая первая строка результатов команды &man.lpq.1; тоже полезна:
она говорит о том, что сейчас делает принтер (или, по крайней мере,
что он делает по мнению системы LPD).Команда &man.lpq.1; также поддерживает опцию
для генерации подробного длинного листинга. Вот пример результатов
выполнения команды lpq -l:waiting for bamboo to become ready (offline ?)
kelly: 1st [job 009rose]
/etc/host.conf 73 bytes
/etc/hosts.equiv 15 bytes
kelly: 2nd [job 010rose]
(standard input) 1635 bytes
mary: 3rd [job 011rose]
/home/orchid/mary/research/venus/alpha-regio/mapping 78519 bytesУдаление заданийЕсли вы передумали печатать задание, можно удалить его из очереди
заданий с помощью команды &man.lprm.1;. Часто можно использовать
&man.lprm.1; для удаления активного задания, но часть задания или
даже все задание все равно может быть напечатано.Для удаления задания со стандартного принтера сначала используйте
команду &man.lpq.1; для поиска номера задания. Затем введите команду:&prompt.user; lprm номер-заданияДля удаления задания с указанного принтера, задайте опцию
option. Следующая команда удаляет задание номер
10 из очереди заданий принтера bamboo:&prompt.user; lprm -P bamboo 10Для команды &man.lprm.1; есть ряд сокращений:lprm -Удаляет все задания (со стандартного принтера), принадлежащие
пользователю, который выполнил команду.lprm пользовательУдаляет все задания (для стандартного принтера), принадлежащие
указанному пользователю. Суперпользователь
может удалять задания других пользователей; обычный пользователь
может удалять только собственные задания.lprmЕсли в командной строке не указаны номер задания, имя
пользователя, или указана опция ,
команда &man.lprm.1; удаляет текущее активное задание на стандартном
принтере, если оно принадлежит вам. Суперпользователь может удалять
любое активное задание.Добавьте опцию для любого из перечисленных выше
сокращений, чтобы работать с любым необходимым принтером вместо
стандартного. Например, следующая команда удаляет все задания текущего
пользователя из очереди принтера по имени rattan:&prompt.user; lprm -P rattan -Если вы работаете в сетевой среде, команда &man.lprm.1; позволит
вам удалять задания только с хоста, с которого они были посланы,
даже если тот же принтер доступен и с других хостов. Следующая
последовательность команд демонстрирует это:&prompt.user; lpr -P rattan myfile
&prompt.user; rlogin orchid
&prompt.user; lpq -P rattan
Rank Owner Job Files Total Size
active seeyan 12 ... 49123 bytes
2nd kelly 13 myfile 12 bytes
&prompt.user; lprm -P rattan 13
rose: Permission denied
&prompt.user; logout
&prompt.user; lprm -P rattan 13
dfA013rose dequeued
cfA013rose dequeued
Не только обычный текст: опции печатиКоманда &man.lpr.1; поддерживает несколько опций, управляющих
форматированием текста, преобразованием графики и других форматов
файлов, выдачей нескольких копий, обработкой задания и др. В этом
разделе описаны эти опции.Опции форматирования и преобразованияСледующие опции команды &man.lpr.1; управляют форматированием
файлов в задании. Используйте эти опции, если задание содержит не
простой текст или если вы хотите сформатировать простой текст с
помощью утилиты &man.pr.1;.&tex;Например, следующая команда печатает файл DVI (из системы
верстки &tex;) по имени fish-report.dvi
на принтере bamboo:&prompt.user; lpr -P bamboo -d fish-report.dviЭти опции применяются для каждого файла в задании, так что нельзя
смешивать (например) файлы DVI и ditroff в одном задании. Вместо этого
посылайте однотипные файлы отдельными заданиями, используя для каждого
задания соответствующие опции преобразования.Все эти опции, кроме и ,
требуют наличия установленных для целевого принтера фильтров
преобразования. Например, опция требует фильтра
преобразования DVI. Подробнее см. в разделе
Фильтры преобразования.Печать файлов cifplot.Печать файлов DVI.Печать текстовых файлов на языке FORTRAN.Печать графиков.Сдвинуть результат вправо на число
столбцов; если число не указано,
сдвиг выполняется на 8 столбцов. Эта опция работает только с
определенными фильтрами преобразования.Не помещайте пробелы между и числом.Печать текстовых данных буквально, включая управляющие символы.Печать данных ditroff (device independent troff).-pФорматировать обычный текст перед печатью утилитой &man.pr.1;.
Подробнее см. &man.pr.1;.Использовать указанный заголовок
в колонтитуле &man.pr.1; вместо имени файла. Эта опция учитывается
только при использовании вместе с опцией .Печать данных troff.Печать растровых данных.Вот пример: следующая команда печатает красиво сформатированную
версию справочного руководства по команде &man.ls.1; на стандартный
принтер:&prompt.user; zcat /usr/share/man/man1/ls.1.gz | troff -t -man | lpr -tКоманда &man.zcat.1; распаковывает исходный код страницы справочного
руководства &man.ls.1; и передает его команде &man.troff.1;, которая
форматирует его и выдает результат в формате GNU troff, передаваемый
команде &man.lpr.1;, посылающей задание спулеру LPD.
Поскольку мы использовали опцию команды &man.lpr.1;,
спулер при печати задания будет преобразовывать результат GNU troff в
формат, понятный стандартному принтеру.Опции обработки заданийСледующие опции команды &man.lpr.1; требуют от системы
LPD специальной обработки задания:-# копийВыдавать указанное количество копий
каждого файла в задании вместо одной. Администратор может отключить
эту опцию для уменьшения износа принтера и поощрения использования
ксерокса. См. раздел
Ограничение
количества копий.В следующем примере на стандартный принтер печатается три
копии файла parser.c, а затем - три копии
parser.h:&prompt.user; lpr -#3 parser.c parser.h-mПосылать почту после завершения задания печати. При указании
этой опции, система LPD будет посылать
почту на ваше имя после завершения обработки вашего задания. В
сообщении будет сказано, выполнено ли задание успешно или по ходу
была ошибка, и (часто) - в чем она состояла.-sНе копировать файлы в каталог спулинга, а сделать там на них
символические связи.Эту опцию имеет смысл использовать при печати больших заданий.
Она экономит место в каталоге спулинга (ваше задание может занять
все свободное место в файловой системе, в которой находится каталог
спулинга). Она также экономит время, поскольку системе
LPD не придется копировать каждый байт
задания в каталог спулинга.Есть, однако, и недостаток: поскольку система
LPD будет ссылаться на исходные
файлы непосредственно, вы не сможете изменять или удалять их,
пока они не будут распечатаны.Если вы печатаете на удаленный принтер, система LPD
будет вынуждена, так или иначе, скопировать файлы с локального хоста
на удаленный, поэтому опция сэкономит место только
в локальном каталоге спулинга, но не в удаленном. Но, она все равно
полезна.-rУдалять файлы в задании после копирования в каталог спулинга
или после печати, если указана опция . Будьте
внимательны при использовании этой опции!Опции начальных страницЭти опции команды &man.lpr.1; изменяют текст, который обычно
выдается на начальной странице задания. Если выдача начальных страниц
для целевого принтера отключена, эти опции не действуют. Информацию по
настройке начальных страниц см. в разделе
Начальные страницы.-C текстЗаменить имя хоста на начальной странице
текстом. Обычно на ней выдается имя хоста,
с которого было послано задание.-J текстЗаменить имя задания на начальной странице
текстом. Имя задания обычно совпадает с
именем первого файла в задании или имеет значение stdin,
если печатается стандартный входной поток.-hНе выдавать начальной страницы.В некоторых организациях эта опция может не действовать, что
определяется способом генерации начальных страниц. Подробнее см. в
разделе Начальные
страницы.Администрирование принтеровКак администратор принтеров, вы должны их установить, настроить и
протестировать. С помощью команды &man.lpc.8; вы можете
взаимодействовать с принтерами и другими способами. С помощью
&man.lpc.8; вы можете:Запускать и останавливать принтерыВключать и отключать их очередиИзменять порядок заданий в каждой очереди.Начнем с замечания по терминологии: если принтер
остановлен, он не будет печатать ничего из
своей очереди. Пользователи могут продолжать посылать задания,
которые будут ждать в очереди, пока принтер не будет
запущен или пока очередь не будет очищена.Если очередь отключена, ни один пользователь
(кроме root) не может посылать задания на
принтер. Во включенную очередь можно посылать
задания. Принтер для отключенной очереди может быть
запущен; при этом он будет продолжать печатать
находящиеся в очереди задания, пока очередь не станет пустой.В общем случае, для использования команды &man.lpc.8; необходимо
иметь привилегии root. Обычные пользователи
могут использовать команду &man.lpc.8; только для получения состояния
принтера и перезапуска зависшего принтера.Далее представлена сводка команд &man.lpc.8;. Большинство команд
принимает аргумент имя-принтера, задающий,
с каким принтером работать. Можно использовать значение all
вместо имени-принтера, означающее все
принтеры, перечисленные в файле /etc/printcap.abort
имя-принтераСнять текущее задание и остановить принтер. Пользователи могут
продолжать посылать задания, если очередь включена.clean
имя-принтераУдалить старые файлы из каталога спулинга принтера.
Иногда файлы, составляющие задание, не удаляются как положено
системой LPD, особенно если
в ходе печати были ошибки и выполнялось много административных
действий. Эта команда находит файлы, не принадлежащие каталогу
спулинга, и удаляет их.disable
имя-принтераОтключить постановку новых заданий в очередь. Если принтер
работает, он продолжит печатать задания, остающиеся в очереди.
Суперпользователь (root) всегда может посылать
задания, даже в отключенную очередь.Эта команда полезна при тестировании вновь установленного
принтера или фильтра: отключаем очередь и посылаем задания как
root. Другие пользователи не смогут посылать
задания, пока вы не закончите тестирование и не включите очередь
повторно командой enable.down имя-принтерасообщениеОтключить принтер. Аналогична последовательности команд
disable и stop.
Указанное сообщение выдается как
состояние принтера при проверке пользователем очереди принтера
с помощью &man.lpq.1; или запросе его состояния командой
lpc status.enable
имя-принтераВключить очередь для принтера. Пользователи могут посылать
задания, но принтер не будет их печатать, пока не будет запущен.help
имя-командыВыдать справочную информацию по команде
имя-команды. Если
имя-команды не указано,
выдает сводку по имеющимся командам.restart
имя-принтераПерезапустить принтер. Обычные пользователи могут использовать эту
команду, если в результате неких чрезвычайных обстоятельств система
LPD зависла, но они не могут запустить
принтер, остановленный командами stop или
down. Команда restart
эквивалентна последовательности команд abort
и start.start
имя-принтераЗапустить принтер. Принтер будет печатать задания, находящиеся в
его очереди.stop
имя-принтераОстановить принтер. Принтер закончит печать текущего задания
и больше ничего из очереди печатать не будет. Хотя принтер и
остановлен, пользователи могут посылать задания во включенную
очередь.topq имя-принтеразадание-или-имя-пользователяПереупорядочить очередь для указанного принтера, помещая
указанные по номеру задания или
задания указанного по имени пользователя
в начало очереди. Для этой команды нельзя использовать
all в качестве имени-принтера.up
имя-принтераВключить принтер; команда по действию противоположна команде
down. Эквивалентна последовательности команд
start и enable.Утилита &man.lpc.8; принимает перечисленные выше команды в
командной строке. Если команда не указана, утилита &man.lpc.8;
входит в интерактивный режим, в котором можно вводить команды,
пока не будет введена команда exit,
quit или символ конца файла.Альтернативы стандартному спулеруЕсли вы прочитали все это руководство, к этому моменту вы
знаете практически все, что надо знать о системе спулинга
LPD, входящей в состав ОС FreeBSD.
Вы, возможно, уже осознали многие из ее недостатков, что, естественно,
приводит к вопросу: Какие еще системы спулинга существуют (и
работают с ОС FreeBSD)?LPRngLPRngСистема LPRng, имя которой означает
LPR: the Next Generation (LPR: следующее поколение) -
это полностью переписанная система PLP. Патрик Пауэл (Patrick Powell)
и Джастин Мейсон (Justin Mason) (основной специалист, занимающийся
поддержкой PLP) объединили усилия для создания системы
LPRng. Основной сайт по системе
LPRng -
.CUPSCUPSСистема CUPS (сокращение от Common
UNIX Printing System) предоставляет переносимый механизм печати для
операционных систем, основанных на &unix;. Она была разработана
компанией Easy Software Products в качестве стандартного механизма
печати для всех производителей и пользователей &unix;.Система CUPS использует протокол
Internet Printing Protocol (IPP) для управления
заданиями и очередями. Протоколы Line Printer Daemon (LPD),
Server Message Block (SMB) и AppSocket (известный
также как JetDirect) также поддерживаются, но с меньшими возможностями.
Система CUPS добавляет поиск сетевых принтеров и опции печати на
основе PostScript Printer Description (PPD), для
поддержки практической печати в &unix;.Основной сайт по системе CUPS -
.Выявление проблемПосле выполнения простого тестирования с помощью команды
&man.lptest.1; вы можете получить один из следующих результатов вместо
корректной распечатки:Все работает, после определенной задержки; или не выдается
распечатанная страница.Принтер напечатал все, что нужно, но он на некоторое время
задумывался и ничего не делал. Фактически, могло потребоваться
нажать кнопку PRINT REMAINING или FORM FEED на принтере, чтобы
результаты были выданы.Если это произошло, вероятно, принтер ждал, нет ли в задании
еще данных, прежде чем что бы то ни было печатать. Для решения
этой проблемы можно посылать в текстовом фильтре на принтер символ
FORM FEED (или любую необходимую последовательность символов).
Этого обычно достаточно, чтобы принтер немедленно распечатал
любой остающийся в его внутреннем буфере текст. Также полезно
убедиться, что каждое задание печати заканчивается полной страницей,
чтобы следующее задание не начиналось где-то с середины последней
страницы предыдущего задания.Следующий измененный скрипт командного интерпретатора
/usr/local/libexec/if-simple выдает символ
прогона страницы после посылки задания на принтер:#!/bin/sh
#
# if-simple - Простой текстовый входной фильтр для lpd
# Установлен в /usr/local/libexec/if-simple
#
# Просто копирует stdin в stdout. Игнорирует все аргументы фильтра.
# Выдает символ прогона страницы (\f) после печати задания.
/bin/cat && printf "\f" && exit 0
exit 2Принтер печатает лесенкой.Вы получаете на бумаге следующее:!"#$%&'()*+,-./01234
"#$%&'()*+,-./012345
#$%&'()*+,-./0123456MS-DOSOS/2ASCIIВы стали очередной жертвой эффекта лесенки,
вызванного различными интерпретациями того, какие символы должны
обозначать новую строку. Операционные системы &unix;-стиля используют
один символ: ASCII-код 10, перевод строки (line feed - LF). &ms-dos;,
&os2; и другие используют пару символов, ASCII-код 10
и ASCII-код 13 (возврат каретки, carriage return
или CR). Многие принтеры используют соглашение &ms-dos; для
представления новых строк.При печати из FreeBSD в тексте используется только символ перевода
строки. Принтер, встретив символ перевода строки, переходит на
следующую строку, но оставляет ту же горизонтальную позицию на
строке для следующего печатаемого символа. Вот зачем нужен символ
возврата каретки: чтобы перенести следующий печатаемый символ
на левый край бумаги.Вот что ОС FreeBSD хочет от принтера:Принтер получает CRПринтер печатает CRПринтер получает LFПринтер печатает CR + LFВот несколько способов этого добиться:Использовать переключатели конфигурации принтера или панель
управления, чтобы изменить его интерпретацию этих символов.
Поищите как это сделать в руководстве по своему принтеру.Если вы загружаете другие операционные системы, кроме
FreeBSD, может иметь смысл переконфигурировать
принтер для использования такой интерпретации символов CR и LF,
которая принята в этих операционных системах. Затем можно
использовать одно из представленных далее решений.Заставить драйвер последовательного порта FreeBSD автоматически
преобразовывать LF в CR+LF. Конечно, это подойдет
только для принтеров, подключенных к
последовательным портам. Для включения этой возможности используйте
характеристику ms# и установите режим
onlcr для принтера в файле
/etc/printcap.Послать управляющий код на принтер,
заставляющий его временно обрабатывать символы LF по-другому.
Управляющие коды, которые может поддерживать ваш принтер, поищите
в руководстве своего принтера. Когда найдете соответствующий
управляющий код, измените текстовый фильтр для посылки сначала
этого кода, а затем - задания печати.PCLВот пример текстового фильтра для принтеров, понимающих
управляющие последовательности языка Hewlett-Packard PCL. Этот
фильтр заставляет принтер обрабатывать символы LF как LF и CR;
затем он посылает задание; наконец, он посылает символ
прогона страницы для выдачи последней страницы задания. Он должен
работать практически со всеми принтерами Hewlett Packard.#!/bin/sh
#
# hpif - Простой текстовый входной фильтр для lpd для принтеров на базе HP-PCL
# Установлен в /usr/local/libexec/hpif
#
# Просто копирует stdin в stdout. Игнорирует все аргументы фильтра.
# Требует от принтера обрабатывать LF как CR+LF. Выдает страницу по окончании.
printf "\033&k2G" && cat && printf "\033&l0H" && exit 0
exit 2Вот пример файла /etc/printcap с хоста
orchid. К нему через первый параллельный порт
подключен один принтер, Hewlett Packard LaserJet 3Si, по имени
teak. Для него в качестве текстового фильтра
используется представленный выше скрипт:#
# /etc/printcap для хоста orchid
#
teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
:lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\
:if=/usr/local/libexec/hpif:Строки напечатаны одна поверх другой.Принтер так и не перешел на следующую строку. Все строки текста
были напечатаны одна поверх другой, на одной строке.Эта проблема обратна эффекту лесенки, описанному
выше, и встречается намного реже. Каким-то образом, символы LF,
которые ОС FreeBSD использует для завершения строк, обрабатывались
как символы CR и вызывали перевод позиции печати на левый край
бумаги, но не переход на следующую строку.Используйте переключатели конфигурации принтера или панель управления
для обеспечения следующей интерпретации символов LF и CR:Принтер получаетПринтер печатаетCRCRLFCR + LFПринтер теряет символы.По ходу печати принтер не печатает несколько символов в каждой
строке. Проблема со временем может становиться все хуже, так что
теряется все больше символов.Проблема состоит в том, что принтер не справляется с той скоростью,
с которой компьютер посылает данные по последовательной линии (эта
проблема не должна возникать на принтерах, подключенных к параллельным
портам). Есть два способа решить проблему:Если принтер поддерживает управление потоком XON/XOFF,
заставить FreeBSD использовать его, указав режим
ixon в характеристике ms#.Если принтер поддерживает управление несущим потоком
(carrier flow control), укажите режим crtscts
в характеристике ms#. Убедитесь, что кабель,
соединяющий принтер с компьютером, правильно распаян для управления
несущим потоком.Напечатан мусор.Принтер напечатал нечто похожее на случайный мусор, а не
требуемый текст.Это, обычно, - еще один симптом неправильных параметров
взаимодействия с последовательным принтером. Перепроверьте
скорость взаимодействия в характеристике br
и установку четности в характеристике ms#;
проверьте, что принтер использует те же установки, которые
заданы в файле /etc/printcap.Ничего не произошло.Если ничего не произошло, проблема, вероятно, связана с FreeBSD, а
не с оборудованием. Добавьте характеристику журнального файла
(lf) в файл /etc/printcap для
принтера, работу с которым отлаживаете. Например, вот запись для
принтера rattan с характеристикой
lf:rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:sd=/var/spool/lpd/rattan:\
:lp=/dev/lpt0:\
:if=/usr/local/libexec/if-simple:\
:lf=/var/log/rattan.logЗатем попытайтесь напечатать снова. Поищите в журнальном файле
(в нашем примере - /var/log/rattan.log)
возможные сообщения об ошибках. На основе полученных сообщений
попытайтесь решить проблему.Если вы не зададите характеристику lf,
система LPD использует по умолчанию
/dev/console.
diff --git a/ru_RU.KOI8-R/books/handbook/users/chapter.sgml b/ru_RU.KOI8-R/books/handbook/users/chapter.sgml
index b5c90c904f..f8768821fa 100644
--- a/ru_RU.KOI8-R/books/handbook/users/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/users/chapter.sgml
@@ -1,1163 +1,1163 @@
NeilBlakey-MilnerПредоставил ДенисПеплинПеревод на русский язык: Пользователи и основы управления учетными записямиКраткий обзорFreeBSD позволяет одновременную работу множества пользователей
на одном компьютере. Разумеется, только один пользователь может сидеть
за клавиатурой и перед экраном в один момент времени
Конечно, пока не используется множество терминалов, но мы
оставим эту тему для ., но любое количество пользователей может выполнять работу
через сеть. Для использования системы у каждого пользователя должна
быть учетная запись.После прочтения этой главы вы будете знать:Различия между разнообразными учетными записями в системе
FreeBSD.Как добавлять учетные записи пользователей.Как удалять учетные записи пользователей.Как изменять данные учетных записей пользователей, такие
как полное имя пользователя, или предпочитаемую оболочку.Как устанавливать ограничения на использование ресурсов,
например на использование памяти и времени CPU для учетных записей
или групп учетных записей.Как использовать группы для упрощения управлением учетными
записями.Перед прочтением этой главы вам потребуется:Понимание основ &unix; и FreeBSD ().ВведениеВесь доступ к системе осуществляется через учетные записи,
и все процессы запускаются пользователями, так что управление
пользователями и учетными записями в системах FreeBSD имеет
всеобъемлющее значение.С каждой учетной записью в системе FreeBSD связана определенная
идентификационная информация.Имя пользователяИмя пользователя в том виде, в каком оно вводится в
приглашение login:. Имена пользователей
должны быть уникальны в пределах одного компьютера; не может
быть двух пользователей с одинаковым именем пользователя.
Существует множество правил для создания правильных имен
пользователей, документированных в &man.passwd.5;; вы как
правило будете использовать имена пользователей, состоящие
из восьми или меньшего количества символов, все символы в
нижнем регистре.ПарольС каждой учетной записью связан пароль. Пароль может быть
пустым, в этом случае для доступа к системе не нужен пароль.
Обычно это очень плохая идея; у каждой учетной записи должен быть
пароль.ID пользователя (User ID, UID)The UID это номер, традиционно от 0 до
65535Возможно использование UID/GID вплоть до
4294967295, но эти ID могут вызвать серьезные проблемы с
программами, делающими предположения о значениях
ID., используемый для однозначной идентификации
пользователя в системе. Сама система FreeBSD для идентификации
пользователей использует UID — любая команда FreeBSD,
позволяющая вам указывать имя пользователя, первым делом
преобразует его к UID. Это означает, что вы можете создать
несколько учетных записей с различными именами пользователей,
но с одним UID. FreeBSD будет воспринимать эти учетные записи как
одного пользователя. Маловероятно, что вам когда-либо это
понадобится.ID группы (Group ID, GID)GID это номер, традиционно от 0 до
65535, используемый
для однозначной идентификации главной группы, к которой
принадлежит пользователь. Группы это механизм для контроля
доступа к ресурсам на основе GID пользователя вместо его UID.
Это может значительно уменьшить размер некоторых файлов настройки.
Кроме того, пользователь может быть включен более чем в одну
группу.Класс логинаКлассы логинов это расширение к механизму групп,
позволяющее системе более гибко управлять различными
пользователями.Время изменения пароляПо умолчанию FreeBSD не принуждает пользователей периодически
менять пароли. Вы можете включить эту функцию для определенных
пользователей, заставив некоторых или всех пользователей менять
пароли по прошествии определенного времени.Время истечения действия учетной записиПо умолчанию в FreeBSD время действия учетных записей не
ограничено. Если вы создаете учетные записи, продолжительность
жизни которых ограничена, например в учетные записи для
студентов в школе, вы можете определить время истечения
действия учетной записи. После наступления этого времени
учетная запись не может использоваться для входа в систему,
хотя каталоги и файлы этой учетной записи останутся
нетронутыми.Полное имя пользователяИмя пользователя является уникальным идентификатором
учетной записи в FreeBSD, но недостаточно для сопоставления
с реальным именем пользователя. Эта информация может быть
добавлена в учетную запись.Домашний каталогДомашний каталог это полный путь к каталогу в системе, в
котором пользователь начнет работать после входа в систему.
По общепринятому соглашению все домашние каталоги пользователей
помещаются в
/home/username
или
/usr/home/username.
Пользователи хранят личные файлы в домашнем каталоге и в любых
подкаталогах, создаваемых внутри домашнего каталога.Оболочка пользователяОболочка необходима пользователям как средство взаимодействия
с системой по умолчанию. Существует множество различных видов
оболочек, опытные пользователи работают с собственными
настройками, которые могут быть отражены в установках их учетных
записей.Существует три основных типа учетных записей: суперпользователь, системные пользователи, и учетные записи пользователей.
Учетная запись суперпользователя, обычно называемая
root, используется для управления системой
без ограничения привилегий. Системные пользователи запускают
сервисы. Наконец, учетные записи пользователей необходимы обычным
людям для входа в систему, чтения почты, и так далее.Учетная запись суперпользователяучетные записисуперпользователь (root)Учетная запись суперпользователя, обычно называемая
root, существует в системе изначально
для целей системного администрирования, и не должна использоваться
для повседневных задач, таких как получение и отправка почты,
общее исследование системы или программирование.Причина в том, что суперпользователь, в отличие от обычных
пользователей, может работать без ограничений и неправильное
использование учетной записи суперпользователя может привести к
полному уничтожению системы. Учетные записи пользователей не
способны уничтожит систему вследствие ошибки, поэтому обычно
лучше использовать учетные записи обычных пользователей везде,
где это возможно, пока вам не потребуются дополнительные
привилегии для какой-то определенной задачи.Вы всегда должны дважды и трижды проверять команды, выполняемые
под учетной записью суперпользователя, поскольку даже один лишний
пробел или отсутствующий символ может привести к безвозвратной
потере данных.Таким образом, первое, что вам необходимо сделать после прочтения
этой главы, это создать непривилегированную учетную запись пользователя
для повседневного использования (если вы еще этого не сделали).
Это необходимо сделать независимо от того, работаете ли вы на
многопользовательском или однопользовательском компьютере.
Позже в этой главе мы обсудим как создать дополнительные учетные записи,
и как менять уровень привилегий между нормальным пользователем и
суперпользователем.Системные учетные записиучетные записисистемныеСистемные пользователи предназначены для запуска сервисов, таких
как DNS, почта, веб серверы и так далее. Это необходимо по соображениям
безопасности; если все сервисы работают от суперпользователя, они
могут действовать без ограничений.учетные записиdaemonучетные записиoperatorПримеры системных пользователей это daemon,
operator, bind (для
Domain Name Service, DNS), и news. Зачастую
системные администраторы создают httpd
для запуска устанавливаемых веб серверов.учетные записиnobodynobody это классический непривилегированный
системный пользователь. Тем не менее, необходимо помнить, что чем
больше сервисов используют nobody, тем больше
файлов и процессов ассоциировано с этим пользователем, и следовательно
тем больше прав появляется у этого пользователя.Учетные записи пользователейучетные записипользователейУчетные записи пользователей в основном означают доступ в систему
для обычных людей, и эти учетные записи отделяют пользователя и
его рабочую среду, предотвращая повреждение пользователем системы
или данных других пользователей, и позволяя пользователям
настраивать свою рабочую среду без влияния на других
пользователей.Каждая персона, получающая доступ к вашей системе, должна получить
уникальную учетную запись пользователя. Это позволит вам выяснить
кто что делает, предотвращая сбивание одним пользователем настроек
других пользователей, чтение чужой почты и так далее.Каждый пользователь может настраивать свою собственную рабочую
среду для приспособления системы под свои нужды с помощью альтернативных
оболочек, редакторов, привязки клавиш и настроек языка.Изменение учетных записейучетные записиизменениеВ среде &unix; существуют различные команды для работы с учетными
записями пользователей. Наиболее часто используемые команды приведены
в таблице, ниже находятся более детальные примеры их
использования.КомандаКраткое описание&man.adduser.8;Рекомендуемое приложение командной строки для добавления
новых пользователей.&man.rmuser.8;Рекомендуемое приложение командной строки для удаления
пользователей.&man.chpass.1;Гибкий инструмент для изменения информации в базе данных
пользователей.&man.passwd.1;Простой инструмент командной строки для изменения паролей
пользователей.&man.pw.8;Мощный и гибкий инструмент для изменения любой информации,
связанной с учетными записями пользователей.adduserучетные записидобавлениеadduser
- /usr/share/skel
+ /usr/share/skelкаталог шаблоновskeleton directory&man.adduser.8; это простая программа для добавления новых
пользователей. Она создает записи в системных файлах
passwd и group.
Она также создает домашний каталог для нового пользователя,
копируя файлы настройки по умолчанию (dotfiles, файлы
имя который начинается с символа .) из
/usr/share/skel и опционально может отправлять
новому пользователю приветственное сообщение.В &os; 5.0, скрипт &man.adduser.8; был переписан с языка
Perl на язык shell, работающий в качестве оболочки к
&man.pw.8;, так что использование этого скрипта в &os; 4.X
немного отличается использования в &os; 5.X.Для создания файла настройки используйте
adduser -s -config_create.
С параметром &man.adduser.8;
не будет выводить информацию. Позже для изменения настроек
по умолчанию мы используем параметр .
Далее, мы настроим параметры &man.adduser.8; по умолчанию и
создадим нашу первую учетную запись пользователя, поскольку
повседневное использование root
неприемлемо.Настройка adduser и добавление
пользователя в &os; 4.X&prompt.root; adduser -v
Use option ``-silent'' if you don't want to see all warnings and questions.
Check /etc/shells
Check /etc/master.passwd
Check /etc/group
Enter your default shell: csh date no sh tcsh zsh [sh]: zsh
Your default shell is: zsh -> /usr/local/bin/zsh
Enter your default HOME partition: [/home]:
Copy dotfiles from: /usr/share/skel no [/usr/share/skel]:
Send message from file: /etc/adduser.message no
[/etc/adduser.message]: no
Do not send message
Use passwords (y/n) [y]: y
Write your changes to /etc/adduser.conf? (y/n) [n]: y
Ok, let's go.
Don't worry about mistakes. I will give you the chance later to correct any input.
Enter username [a-z0-9_-]: jru
Enter full name []: J. Random User
Enter shell csh date no sh tcsh zsh [zsh]:
Enter home directory (full path) [/home/jru]:
Uid [1001]:
Enter login class: default []:
Login group jru [jru]:
Login group is ``jru''. Invite jru into other groups: guest no
[no]: wheel
Enter password []:
Enter password again []:
Name: jru
Password: ****
Fullname: J. Random User
Uid: 1001
Gid: 1001 (jru)
Class:
Groups: jru wheel
HOME: /home/jru
Shell: /usr/local/bin/zsh
OK? (y/n) [y]: y
Added user ``jru''
Copy files from /usr/share/skel to /home/jru
Add another user? (y/n) [y]: n
Goodbye!
&prompt.root;В результате мы изменили оболочку по умолчанию на
zsh (дополнительная оболочка, находящаяся
в коллекции портов), и отключили отправку добавляемым пользователям
письма с приветствием. Затем мы сохранили настройки, создали
учетную запись для jru, и убедились, что
jru находится в группе
wheel (теперь этот пользователь может получить
привилегии root с помощью команды
&man.su.1;.)Пароль, который вы вводите, не отображается,
звездочки при вводе пароля также не отображаются.
убедитесь, что не ввели пароль неправильно дваждыТеперь просто используйте &man.adduser.8; без аргументов,
и вам не потребуется изменять настройки по умолчанию. Если
программа будет запрашивать изменение настроек по умолчанию,
попробуйте параметр .Добавление пользователя в &os; 5.X&prompt.root; adduser
Username: jru
Full name: J. Random User
Uid (Leave empty for default):
Login group [jru]:
Login group is jru. Invite jru into other groups? []: wheel
Login class [default]:
Shell (sh csh tcsh zsh nologin) [sh]: zsh
Home directory [/home/jru]:
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username : jru
Password : ****
Full Name : J. Random User
Uid : 1001
Class :
Groups : jru wheel
Home : /home/jru
Shell : /usr/local/bin/zsh
Locked : no
OK? (yes/no): yes
adduser: INFO: Successfully added (jru) to the user database.
Add another user? (yes/no): no
Goodbye!
&prompt.root;rmuserrmuserучетные записиудалениеДля полного удаления пользователя из системы вы можете
использовать &man.rmuser.8;. Эта программа выполняет следующие
действия:Удаление записи пользователя из &man.crontab.1; (если
она присутствует).Удаляет задачи &man.at.1;, принадлежащие
пользователю.Уничтожает все процессы, принадлежащие пользователю.Удаляет пользователя из локального файла паролей.Удаляет домашний каталог пользователя (если он принадлежит
пользователю).Удаляет принадлежащую пользователю входящую почту из
/var/mail.Удаляет все файлы, принадлежащие пользователю, из каталогов
с временными файлами, например /tmp.Наконец, удаляет имя пользователя из всех групп, которым оно
принадлежит, в /etc/group.
Если после этого удаления группа остается пустой и
имя группы совпадает с именем пользователя, она удаляется;
Это необходимо для удаления пользовательских уникальных
групп, создаваемых &man.adduser.8;.&man.rmuser.8; не может использоваться для удаления учетной
записи суперпользователя, поскольку это почти всегда означает
разрушение системы.По умолчанию используется интерактивный режим, программа
пытается убедиться, что вы уверены в своих действиях.Интерактивное удаление учетной записи с помощью
rmuser&prompt.root; rmuser jru
Matching password entry:
jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh
Is this the entry you wish to remove? y
Remove user's home directory (/home/jru)? y
Updating password file, updating databases, done.
Updating group file: trusted (removing group jru -- personal group is empty) done.
Removing user's incoming mail file /var/mail/jru: done.
Removing files belonging to jru from /tmp: done.
Removing files belonging to jru from /var/tmp: done.
Removing files belonging to jru from /var/tmp/vi.recover: done.
&prompt.root;chpasschpass&man.chpass.1; изменяет информацию в базе данных пользователей:
пароли, оболочки, персональную информацию.Только системные администраторы с правами суперпользователя
могут изменять информацию и пароли других пользователей с помощью
&man.chpass.1;.При запуске без параметров (кроме опционального имени
пользователя), &man.chpass.1; вызывает редактор, содержащий
информацию о пользователе. Когда пользователь выходит из редактора,
база данных пользователей обновляется этой информацией.В &os; 5.X, после выхода из редактора будет запрошен
пароль (если вы не суперпользователь.Интерактивная работа с chpass
суперпользователя#Changing user database information for jru.
Login: jru
Password: *
Uid [#]: 1001
Gid [# or name]: 1001
Change [month day year]:
Expire [month day year]:
Class:
Home directory: /home/jru
Shell: /usr/local/bin/zsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:Обычные пользователи могут изменять лишь небольшую часть этой
информации, и только для своей учетной записи.Интерактивная работа с chpass обычного
пользователя#Changing user database information for jru.
Shell: /usr/local/bin/zsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:&man.chfn.1; и &man.chsh.1; это всего лишь ссылки на
&man.chpass.1;, как и &man.ypchpass.1;, &man.ypchfn.1; и
&man.ypchsh.1;. NIS поддерживается автоматически, так что
указание yp перед командой не обязательно.
Если это непонятно, не беспокойтесь, NIS будет рассмотрен в
.passwdpasswdучетные записиизменение пароля&man.passwd.1; это обычный способ изменения собственного пароля
пользователя, или пароля другого пользователя
суперпользователем.Для предотвращения случайного или неавторизованного изменения,
перед установкой нового пароля необходимо ввести старый.Изменение пароля&prompt.user; passwd
Changing local password for jru.
Old password:
New password:
Retype new password:
passwd: updating the database...
passwd: doneИзменение пароля другого пользователя
суперпользователем&prompt.root; passwd jru
Changing local password for jru.
New password:
Retype new password:
passwd: updating the database...
passwd: doneКак и с &man.chpass.1;, &man.yppasswd.1; это всего лишь
ссылка на &man.passwd.1;, так что NIS работает с обеими
командами.pwpw&man.pw.8; это утилита командной строки для создания, удаления,
модифицирования и отображения пользователей и групп. Она
функционирует как внешний интерфейс к системным файлам пользователей
и групп. У &man.pw.8; очень мощный набор параметров командной строки,
что делает это программу подходящей для использования в shell
скриптах, но новым пользователям она может показаться более сложной,
чем другие представленные здесь команды.Ограничение пользователейограничение пользователейучетные записиограничениеЕсли у вас есть пользователи, может появиться мысль о возможности
ограничения нагрузки на систему. FreeBSD предоставляет
администратору несколько способов ограничения объема
занимаемых пользователями системных ресурсов. Существует два вида
ограничений: дисковые квоты и другие ограничения ресурсов.квотыограничение пользователейквотыдисковые квотыДисковые квоты ограничивают объем пространства, занимаемого
пользователями, это способ быстрой проверки объема без вычисления
его каждый раз. Квоты обсуждаются в .Другие ограничения ресурсов включают способы ограничения
использования CPU, памяти и других ресурсов, которые могут потребляться
пользователем. Ограничения накладываются с помощью классов учетных
записей и обсуждаются в этом разделе./etc/login.confКлассы учетных записей определяются в
/etc/login.conf. Описание полной семантики
выходит за пределы обсуждаемого здесь материала, она детально
описана в странице справочника &man.login.conf.5;. Достаточно
сказать, что каждому пользователю присвоен класс
(default по умолчанию), и каждому классу присвоен
набор характеристик. Характеристика определяется в виде пары
имя=значение,
где имя это определенный идентификатор,
а значение это произвольная строка,
обрабатываемая в зависимости от имени. Настройка классов и
характеристик довольно проста и также описана в
&man.login.conf.5;.Система не читает настройки в
/etc/login.conf непосредственно, она обращается
к файлу базы данных /etc/login.conf.db.
Для создания /etc/login.conf.db из
/etc/login.conf, выполните следующую
команду:&prompt.root; cap_mkdb /etc/login.confОграничения на ресурсы отличаются от обычных характеристик:
во-первых, для каждого ограничения существует мягкое
(текущее) и жесткое ограничение. Мягкое ограничение
может настраиваться пользователем или приложением, но не может
превышать жесткое ограничение. Последнее может быть уменьшено
пользователем, но никогда не увеличено. Во-вторых, большинство
ограничений ресурсов применяются к процессам определенного пользователя,
а не к пользователю вообще. Обратите внимание, что эти различия
реализуются специфической обработкой лимитов, а не реализацией
структуры характеристик учетных записей (т.е. это не
настоящий специальный случай характеристик).Ниже приведен список наиболее часто используемых ограничений
на ресурсы (остальные, вместе с другими характеристиками
можно найти в &man.login.conf.5;).coredumpsizecoredumpsizeограничение пользователейcoredumpsizeОграничение на размер файла core, генерируемого программой,
по очевидным причинам подчиняющееся другим ограничениям
на используемое дисковое пространство (например,
filesize, или дисковые квоты).
Тем не менее, оно часто используется как менее строгий
метод контролирования потребления дискового пространства:
поскольку пользователь не создает файлы core самостоятельно,
и зачастую не удаляет их, установка этого параметра может
предохранить его от выхода за пределы дисковых квот, если
большая программа (например, emacs)
создаст core файл.cputimecputimeограничение пользователейcputimeЭто максимальное количество времени CPU, потребляемого
пользователем. Превысившие это время процессы будут уничтожены
ядром.
Это ограничение потребляемого
времени CPU, а не процентов использования
CPU, которые отображаются в некоторых полях &man.top.1;
и &man.ps.1;. Ограничения на них на время написания этого
материала невозможны и такие ограничения практически
бесполезны: компилятор — вполне законное приложение
— иногда может легко использовать почти 100%
CPU.filesizefilesizeограничение пользователейfilesizeЭто максимальный размер файла, который может обрабатываться
пользователем. В отличие от дисковых
квот, это ограничение применяется к отдельным файлам,
а не ко всему набору принадлежащих пользователю файлов.maxprocmaxprocограничение пользователейmaxprocЭто максимальное число процессов, которые могут быть
запущены пользователем. В это число включаются и консольные
и фоновые процессы. По очевидным причинам, они не могут быть
больше, чем системное ограничение, указываемое через
переменную &man.sysctl.8; kern.maxproc.
Имейте ввиду, что установка слишком жестких ограничений может
стать помехой работе пользователя: зачастую полезно входить
в систему с нескольких консолей или использовать каналы.
Некоторые задачи, такие как компиляция большой программы,
также порождают множество процессов (например, &man.make.1;,
&man.cc.1; и другие препроцессоры).memorylockedmemorylockedограничение пользователейmemorylockedЭто максимальный объем памяти, блокировка которого
может быть запрошена процессом (см. например
&man.mlock.2;). Некоторые критически важные для системы
программы, такие как &man.amd.8;, блокируют память так,
что при выгрузке они не создают системе дополнительных
проблем.memoryusememoryuseограничение пользователейmemoryuseЭто максимальный объем памяти, которая может быть занята
процессами. Он включает основную и основную память и
использование подкачки. Это ограничение не снимает все вопросы,
связанные с использованием памяти, но для начала это подходящее
ограничение.openfilesopenfilesограничение пользователейopenfilesЭто максимальное количество файлов, которые могут быть
открыты процессами. В FreeBSD, файлы также используются для
представления сокетов и каналов IPC; не устанавливайте слишком
маленькое значение. Ограничение этого параметра, устанавливаемое
для всей системы, определяется переменной &man.sysctl.8;
kern.maxfiles.sbsizesbsizeограничение пользователейsbsizeЭто ограничение потребляемого пользователем объема сетевой
памяти, т.е. mbufs. Оно было введено как ответ на старые
DoS атаки, при которых создавалось множество сокетов,
но обычно может быть использовано и для ограничения
сетевых соединений.stacksizestacksizeограничение пользователейstacksizeЭто максимальный размер, до которого может вырасти стек
процесса. Сам по себе этот параметр не может ограничить
размер используемой программой памяти, следовательно,
его необходимо использовать вместе с другими ограничениями.Существуют несколько других аспектов, которые необходимо учитывать
при установке ограничений ресурсов. Ниже приведены некоторые общие
подсказки, советы и различные комментарии.Процессам, загружаемым при старте системы скриптами
/etc/rc присваивается класс
daemon.Хотя /etc/login.conf, поставляемый с
системой, это хороший источник подходящих значений для большинства
ограничений, только вы, администратор, можете знать подходящие
значения для вашей системы. Установка слишком слабых ограничений
может повлечь злоупотребления системой, а установка слишком
сильных ограничений может стать помехой производительности.Пользователи X Window System (X11) возможно должны получить
больше ресурсов, чем другие пользователи. X11 сама по себе
потребляет много ресурсов, а также провоцирует пользователей
на одновременный запуск большего количества программ.Помните, что многие ограничения применяются к отдельным
процессам, а не к пользователю вообще. Например, установка
openfiles в 50 означает, что каждый
процесс, запущенный пользователем, может открывать до 50
файлов. Таким образом, общее количество файлов, которые могут
быть открыты пользователем, вычисляется как
openfiles, помноженное на
maxproc. Это также применимо к потребляемой
памяти.За дальнейшей информацией по ограничениям на ресурсы, классам
учетных записей и характеристикам, обращайтесь к соответствующим
страницам справочника.Персонализация пользователейЛокализация это окружение, настраиваемое системным администратором
или пользователем для работы с различными языками, наборами
символов, стандартами даты и времени, и так далее. Это обсуждается
в главе локализация.Группыгруппы/etc/groupsучетные записигруппыГруппа это просто список пользователей. Группа идентифицируется
по имени и GID (Group ID, идентификатор группы). В FreeBSD
(и большинстве других &unix;-подобных системах) ядро для определения
прав процесса использует два фактора: его ID пользователя и
список групп, которым он принадлежит. Когда вы слышите что-то о
group ID пользователя или процесса, это обычно означает
только первую группу из списка.Имена групп связываются с ID групп в файле
/etc/group. Это текстовый файл с четырьмя
разделенными двоеточием полями. Первое поле это имя группы,
второе это зашифрованный пароль, третье это ID группы, а четвертое
это разделенный запятыми список членов группы. Этот файл может
быть безопасно отредактирован вручную (предполагается, конечно,
что вы не сделаете синтаксических ошибок!). За более полным описанием
синтаксиса обратитесь к странице справочника &man.group.5;.Если вы не хотите редактировать /etc/group
вручную, используйте команду &man.pw.8; для добавления и
редактирования групп. Например, для добавления группы,
называемой teamtwo, и проверки ее существования
вы можете использовать:Добавление группы с использованием &man.pw.8;&prompt.root; pw groupadd teamtwo
&prompt.root; pw groupshow teamtwo
teamtwo:*:1100:Число 1100 это ID группы
teamtwo. На данный момент в,
teamtwo нет членов, и поэтому она практически
бесполезна. Давайте изменим эту ситуацию, добавив
jru в группу teamtwo.Добавление пользователя в группу с использованием
&man.pw.8;&prompt.root; pw groupmod teamtwo -M jru
&prompt.root; pw groupshow teamtwo
teamtwo:*:1100:jruАргумент к параметру это разделенный
запятыми список пользователей, являющихся членами группы. Из предыдущих
разделов мы знаем, что файл паролей также указывает группу для
каждого пользователя. Пользователь автоматически добавляется системой
к списку групп; пользователь не будет показан как член группы при
использовании &man.pw.8; , но эта
информация будет показана при использовании &man.id.1; или похожего
инструмента. Другими словами, с этим параметром программа &man.pw.8;
работает только с файлом /etc/group; она никогда
не будет пытаться получить дополнительную информацию из файла
/etc/passwd.Использование &man.id.1; для определения принадлежности к
группам&prompt.user; id jru
uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo)Как вы можете видеть, jru является членом
групп jru и
teamtwo.За дальнейшей информацией о &man.pw.8;, обратитесь к ее странице
справочника, а за дополнительной информацией о формате файла
/etc/group к странице справочника
&man.group.5;.
diff --git a/ru_RU.KOI8-R/books/handbook/x11/chapter.sgml b/ru_RU.KOI8-R/books/handbook/x11/chapter.sgml
index c20b3edbff..a7e838586c 100644
--- a/ru_RU.KOI8-R/books/handbook/x11/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/x11/chapter.sgml
@@ -1,1894 +1,1894 @@
KenTomОбновил для сервера X.Org's X11 MarcFonvieilleАндрейЗахватовПеревод на русский язык: X Window SystemОбзорFreeBSD использует X11 для того, чтобы дать пользователям мощный
графический интерфейс. X11 является открытой реализацией
X Window System, включая &xorg; и
&xfree86;. В версиях &os; до и включая
&os; 4.10-RELEASE и &os; 5.2.1-RELEASE сервером X11
по умолчанию был &xfree86;, выпускаемый
The &xfree86; Project, Inc. Начиная с &os; 5.3-RELEASE,
официальной версией X11 по умолчанию стал
&xorg;, разработанный
X.Org Foundation.Эта глава посвящена установке и настройке
X11 в системе FreeBSD, с акцентом на
&xorg;.За дополнительной информацией по видео оборудованию, поддерживаемому
X11, обратитесь к веб сайтам
&xorg; или
&xfree86;.После чтения этой главы вы будете знать:Как установить и настроить X11.Различные компоненты X Window System и их
взаимодействие.Как установить и использовать различные оконные менеджеры.Как использовать шрифты &truetype; в X11.Как настроить вашу систему на графический интерфейс входа
(XDM).Перед чтением этой главы вы должны:Знать, как устанавливать дополнительное программное обеспечение
сторонних разработчиков ().В этой главе описана установка и настройка серверов X11 и
&xorg; и
&xfree86;. По большей части
файлы настройки, команды и синтаксис идентичны.
Там, где есть различия, приводится синтаксис и
&xorg; и
&xfree86;.Основы XПервое знакомство с X может оказаться чем-то вроде шока для тех, кто
работал с другими графическими системами, такими, как µsoft.windows;
или &macos;.Хотя нет необходимости вникать во все детали различных компонентов X и
их взаимодействия, некоторые базовые знания делают возможным
использование сильных сторон X.Почему именно X?X не является первой оконной системой для &unix;, но она является
самой популярной из них. До работы над X команда ее разработчиков трудилась
над другой оконной системой. Та система называлась W
(от Window). X была просто следующей
буквой в романском алфавите.X можно называть X, X Window System,
X11 и множеством других терминов. Факт использования названия
X Windows для X11 может задеть интересы некоторых
людей; дополнительную информацию по этому поводу можно найти на
странице справочной системы &man.X.7;.Модель клиент/сервер в XX изначально разрабатывалась, чтобы быть системой, ориентированной
на работу в сети с использованием модели
клиент-сервер.В модели работы X X-сервер работает на компьютере с
клавиатурой, монитором и мышью. Ответственность сервера включает управление
дисплеем, обработку ввода с клавиатуры и мыши и так далее. Каждое
X-приложение (например, XTerm или
&netscape;) является
клиентом. Клиент посылает сообщения серверу, такие,
как Пожалуйста, нарисуй окно со следующими координатами,
а сервер посылает в ответ сообщения типа Пользователь только что
щёлкнул мышью на кнопке OK.В случае
- использования дома или в офисе, сервер и клиенты X будут скорее всего работать на
+ использования дома или в офисе, сервер и клиенты X как правило будут работать на
том же самом компьютере. Однако реально возможно запускать X-сервер
на менее мощном настольном компьютере, а приложения X (клиенты) на,
скажем, мощной и дорогой машине, обслуживающей целый офис. В этом
сценарии X-клиент и сервер общаются через сеть.Некоторых это вводит в заблуждение, потому что терминология X
в точности обратна тому, что они ожидают. Они полагают, что
X-сервер будет большой мощной машиной, стоящей на полу,
а X-клиентом является машина, стоящая на их
столах.Важно помнить, что X-сервером является машина с монитором и
клавиатурой, а X-клиенты являются программами, выводящими окна.В протоколе нет ничего, что заставляет машины клиента и сервера
работать под управлением одной и той же операционной системы, или
даже быть одним и тем же типом компьютера. Определённо возможно
запускать X-сервер в µsoft.windows; или &macos; от Apple, и есть
множество свободно распространяемых и коммерческих приложений, которые
это реализуют.Начиная с &os; 5.3-RELEASE, X-сервер, поставляемый с FreeBSD, называется
&xorg;, и он распространяется свободно
под лицензией, очень похожей на условия распространения FreeBSD.
Имеются и коммерческие X-серверы для FreeBSD.Оконный менеджерФилософия построения X очень похожа на философию построения &unix;,
инструменты, не политика. Это значит, что X не пытаются
диктовать то, как должна быть выполнена работа. Вместо этого
пользователю предоставляются инструменты, а за пользователем остается
принятие решения о том, как использовать эти инструменты.Этот подход расширен в X тем, что не задается, как окна должны
выглядеть на экране, как их двигать мышью, какие комбинации клавиш
должны использоваться для переключения между окнами (то есть
AltTab, в случае использования µsoft.windows;), как должны
выглядеть заголовки окон, должны ли в них быть кнопки для закрытия, и
прочее.Вместо этого X делегирует ответственность за это приложению,
которое называется Window Manager (Менеджер Окон). Есть
десятки оконных менеджеров для X: AfterStep,
Blackbox, ctwm,
Enlightenment,
fvwm, Sawfish,
twm,
WindowMaker и другие. Каждый из этих
оконных менеджеров предоставляет различные внешние виды и удобства;
некоторые из них поддерживают виртуальные рабочие столы;
некоторые из них позволяют изменять назначения комбинаций
клавиш, используемых для управления рабочим столом; в некоторых есть
кнопка Start или нечто подобное; некоторые поддерживают
темы, позволяя изменять внешний вид, поменяв тему.
Эти оконные менеджеры, а также множество
других, находятся в категории x11-wm коллекции
Портов.Кроме того, оболочки KDE и
GNOME обе имеют собственные оконные
менеджеры, которые интегрированы с оболочкой.Каждый оконный менеджер также имеет собственный механизм настройки;
некоторые предполагают наличие вручную созданного конфигурационного
файла; некоторые предоставляют графические инструменты для выполнения
большинства работ по настройке; по крайней мере один
(Sawfish) имеет конфигурационный файл,
написанный на диалекте языка Lisp.Политика фокусированияДругой особенностью, за которую отвечает оконный менеджер,
является политика фокусирования мыши. Каждая оконная
система должна иметь некоторый способ выбора окна для активации
получения нажатий клавиш, а также визуальную индикацию того, какое
окно активно.Широкоизвестная политика фокусировки называется
click-to-focus. Эта модель используется в
µsoft.windows;, когда окно становится активным после получения
щелчка мыши.X не поддерживает никакой конкретной политики фокусирования.
Вместо этого менеджер окон управляет тем, какое окно владеет фокусом
в каждый конкретный момент времени. Различные оконные менеджеры
поддерживают разные методы фокусирования. Все они поддерживают метод
щелчка для фокусирования, и большинство из них поддерживают некоторые
другие методы.Самыми популярными политики фокусирования являются:focus-follows-mouse (фокус следует за мышью)Фокусом владеет то окно, что находится под
указателем мыши. Это не обязательно будет окно, которое
находится поверх всех остальных. Фокус меняется при
указании на другое окно, при этом также нет нужды щёлкать на
нём.sloppy-focus (нечеткий фокус)С политикой focus-follows-mouse если мышь помещается
поверх корневого окна (или заднего фона), то никакое окно
фокус не получает, а нажатия клавиш просто пропадают.
При использовании политики нечёткого фокуса он меняется
только когда курсор попадает на новое окно, но не когда
уходит с текущего окна.щелчок для выбора фокусаАктивное окно выбирается щелчком мыши. Затем окно
может быть поднято и появиться поверх всех
других окон. Все нажатия клавиш теперь будут направляться
в это окно, даже если курсор переместится к другому.Многие оконный менеджер поддерживают и другие политики, а также
вариации перечисленных. Обязательно обращайтесь к документации по
оконному менеджеру.ВиджетыПодход X, заключающийся в предоставлении инструментов, а не
политики, распространяется и на виджеты, которые располагаются на
экране в каждом приложении.Виджет (widget) является термином для всего в
пользовательском интерфейсе, на чём можно
щёлкать или каким-то образом управлять; кнопки, зависимые (radio
buttons) и независимые (check boxes) кнопки, иконки, списки и так
далее. В µsoft.windows; это называется элементами
управления (controls).µsoft.windows; и &macos; от Apple обе имеют очень жёсткую
политику относительно виджетов. Предполагается, что разрабатываемые
приложения обязательно должны иметь похожий внешний вид. Что касается
X, то было решено, что не нужно требовать обязательного использования
какого-то определённого графического стиля или набора виджетов.В результате не стоит ожидать от X-приложений
похожести во внешнем виде. Существует несколько популярных наборов
виджетов и их разновидностей, включая оригинальный набор виджетов
Athena от MIT, &motif; (по
образу которого был разработан набор виджетов в µsoft.windows;,
все эти скошенные углы и три разновидности серого цвета),
OpenLook и другие.В большинстве появляющихся в настоящее время приложений для X будет
использоваться современно выглядящий набор виджетов, либо Qt,
используемый в KDE, либо
GTK+, используемый проектом
GNOME. В этом отношении наблюдается
унификация внешнего вида рабочего стола в &unix;, что определённо
облегчает жизнь начинающему пользователю.Установка X11На &os; могут быть установлены &xorg;
или &xfree86;. Начиная с
&os; 5.3-RELEASE, &xorg; является
для &os; версией X11 по умолчанию. &xorg;
это сервер X11 дистрибутива X11R6.7, выпущенный X.Org
Foundation. X11R6.7 основан на коде
&xfree86 4.4RC2 и X11R6.6.
X.Org Foundation выпустил X11R6.7 в апреле 2004 года.Для сборки и установки &xorg; из
коллекции портов, выполните:&prompt.root; cd /usr/ports/x11/xorg
&prompt.root; make install cleanПеред сборкой полной версии &xorg;
удостоверьтесь в наличии хотя бы 4 GB свободного места.Для сборки и установки &xfree86;
из коллекции портов:&prompt.root; cd /usr/ports/x11/XFree86-4
&prompt.root; make install cleanКроме того, X11 может быть установлен непосредственно из
пакетов. Бинарные пакеты, устанавливаемые &man.pkg.add.1;,
доступны и для X11. Когда &man.pkg.add.1; используется для удаленной
загрузки пакетов, номер версии пакета необходимо удалить.
&man.pkg.add.1; автоматически установит последнюю версию
приложения.Таким образом, для загрузки и установки пакета
&xorg;, просто наберите:&prompt.root; pkg_add -r xorgПакет &xfree86; 4.X может быть
установлен командой:&prompt.root; pkg-add -r XFree86В примерах выше будет установлен полный дистрибутив
X11, включая серверы, клиенты, шрифты
и так далее. Также доступны и отдельные пакеты и порты для
различных частей X11.В оставшейся части главы будет рассказано о том, как сконфигурировать
X11 и настроить рабочее окружение.Замена &xfree86; на
&xorg;Как и с любым портом, вам необходимо проверить файл
/usr/ports/UPDATING на наличие изменений.
Инструкции по переходу с &xfree86;
на &xorg; включены в этот
файл.Используйте CVSup для обновления
дерева портов перед любой переустановкой. Для замены
X11 вам также потребуется установить sysutils/portupgrade.В файл /etc/make.conf необходимо
добавить переменную X_WINDOW_SYSTEM=xorg.
Это необходимо, чтобы система знала, какой X11 используется.
Старая переменная XFREE86_VERSION не используется,
она заменена переменной X_WINDOW_SYSTEM.Затем используйте следующие команды:&prompt.root; pkg_delete -f /var/db/pkg/imake-4* /var/db/pkg/XFree86-*
&prompt.root; cd /usr/ports/x11/xorg
&prompt.root; make install clean
&prompt.root; pkgdb -FКоманда &man.pkgdb.1; является частью программы
portupgrade, она обновит
различные зависимости пакетов.Перед сборкой полной версии &xorg;
удостоверьтесь в наличии хотя бы 4 GB свободного места.ChristopherShumwayТекст предоставил Конфигурация X11&xfree86; 4.X&xfree86;&xorg;X11Перед тем, как начатьПеред настройкой X11
необходима следующая информация о конфигурируемой системе:Характеристики монитораНабор микросхем, используемый в видеоадаптереОбъём видеопамятичастота горизонтальной разверткичастота вертикальной разверткиХарактеристики монитора используются в
X11 для определения рабочего
разрешения и частоты. Эти характеристики обычно могут быть получены из
документации, которая прилагается к монитору или с сайта производителя.
Тут нужны два диапазона значений, для частоты горизонтальной развёртки
и для частоты вертикальной синхронизации.Набор микросхем графического адаптера определяет, модуль какого
драйвера использует X11 для работы с
графическим оборудованием.
Для большинства типов микросхем это может быть определено
автоматически, но все же его полезно знать на тот случай, когда
автоматическое определение не работает правильно.Объём видеопамяти графического адаптера определяет разрешение и
глубину цвета, с которым может работать система. Это важно, чтобы
пользователь знал ограничения системы.Конфигурирование X11Процесс настройки X11 является
многошаговым. Первый шаг заключается в построении начального
конфигурационного файла. Работая с правами суперпользователя,
просто запустите:&prompt.root; Xorg -configureДля &xfree86; запустите:&prompt.root; XFree86 -configureПри этом в каталоге /root будет создан скелет
конфигурационного файла X11 под именем
xorg.conf.new (там, куда после &man.su.1; или
непосредственного входа будет указывать переменная
$HOME). Для &xfree86;,
этот файл называется XF86Config.new. Программа
X11 сделает попытку распознать графическое оборудование системы и
запишет конфигурационный файл, загружающий правильные драйверы для
обнаруженного оборудования в системе.Следующим шагом является тестирование существующей конфигурации для
проверки того, что &xorg; может работать
с графическим оборудованием в настраиваемой системе. Для этого
выполните:&prompt.root; Xorg -config xorg.conf.newПользователям &xfree86; необходимо
выполнить:&prompt.root; XFree86 -xf86config XF86Config.newЕсли появилась чёрно-белая сетка и курсор мыши в виде
X, то настройка была выполнена успешно. Для завершения тестирования
просто нажмите одновременно
CtrlAltBackspace.Если мышь не работает, его необходимо настроить.
Обратитесь к в главе об установке
&os;.Тонкая настройка X11Теперь выполните тонкую настройку в файле
xorg.conf.new по своему вкусу (или
XF86Config.new, если вы работаете с
&xfree86;).
Откройте файл в текстовом редакторе, таком, как &man.emacs.1; или
&man.ee.1;. Сначала задайте частоты для
монитора. Они обычно обозначаются как частоты горизонтальной и
вертикальной синхронизации. Эти значения добавляются в файл
XF86Config.new в
раздел "Monitor":Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
HorizSync 30-107
VertRefresh 48-120
EndSectionКлючевых слов HorizSync и
VertRefresh может и не оказаться в
файле конфигурации. Если их нет, то они должны быть добавлены, с
указанием корректных значений горизонтальной частоты синхронизации
после ключевого слова HorizSync и вертикальной
частоты синхронизации после ключевого слова
VertRefresh. В примере выше были введены частоты
монитора настраиваемой системы.X позволяет использовать возможности технологии DPMS (Energy Star)
с поддерживающими её мониторами. Программа &man.xset.1; управляет
временными задержками и может явно задавать режимы ожидания, останова
и выключения. Если вы хотите включить использование возможностей
DPMS вашего монитора, вы должны добавить следующую строку в раздел,
описывающий монитор:Option "DPMS"xorg.confXF86ConfigПока файл конфигурации xorg.conf.new
(или XF86Config.new) открыт
в редакторе, выберите желаемые разрешение и глубину цвета, которые
будут использоваться по умолчанию. Они задаются в секции
"Screen":Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1024x768"
EndSubSection
EndSectionКлючевое слово DefaultDepth описывает
глубину цвета, с которой будет работа по умолчанию. Это значение
может быть переопределено при помощи параметра командной строки
для &man.Xorg.1; (или &man.XFree86.1;).
Ключевое слово
Modes описывает разрешение, с которым нужно
работать при данной глубине цвета. Заметьте, что поддерживаются
только те стандартные режимы VESA, что определены графическим
оборудованием настраиваемой системы. В примере выше глубина цвета по
умолчанию равна двадцати четырём битам на пиксел. При такой глубине
цвета принимается разрешение в 1024 на 768 точек.Наконец, запишите конфигурационный файл и
протестируйте его при помощи тестового режима, описанного выше.При решении проблем могут помочь лог файлы X11, в которых
находится информация по каждому устройству, к которому
подключен сервер X11. Лог файлам
&xorg; названия даются в формате
/var/log/Xorg.0.log (лог файлам
&xfree86; названия даются в формате
XFree86.0.log). Имена лог файлам
могут даваться от Xorg.0.log до
Xorg.8.log и так далее.Если все в порядке, то конфигурационный файл нужно установить в
общедоступное место, где его сможет найти &man.Xorg.1; (или
&man.XFree86.1;).
Обычно это /etc/X11/xorg.conf или
/usr/X11R6/etc/X11/xorg.conf
(для &xfree86; это
/etc/X11/XF86Config или
/usr/X11R6/etc/X11/XF86Config).&prompt.root; cp xorg.conf.new /etc/X11/xorg.confДля &xfree86;:&prompt.root; cp XF86Config.new /etc/X11/XF86ConfigТеперь процесс настройки X11 завершен. Для запуска
&xfree86; 4.X посредством &man.startx.1;
установите порт x11/wrapper.
В &xorg; уже включен код wrapper, и
установка его из порта не требуется. X11 можно также запустить через
&man.xdm.1;.Имеется также графический инструмент для настройки,
&man.xorgcfg.1; (&man.xf86cfg.1; для
&xfree86;), который включён в
дистрибутив X11. Он позволяет выполнить
настройку в интерактивном режиме посредством выбора соответствующих
драйверов и настроек. Эта программа может быть запущена в консоли
командой xf86cfg -textmode. Для получения более
полной информации обратитесь к странице справочной системы
&man.xorgcfg.1; или &man.xf86cfg.1;.Кроме того, существует программа настройки &man.xorgconfig.1;
(&man.xf86config.1; для &xfree86;),
это консольная утилита, которая менее дружественна к пользователю,
но может работать в ситуациях, в которых другие утилиты не
работают.Тонкие вопросы настройкиКонфигурирование при работе с графическими чипсетами &intel;
i810графический чипсет Intel i810Конфигурирование при работе с интегрированными наборами микросхем
&intel; i810 требует наличия agpgart,
программного интерфейса AGP, посредством которого
X11 будет управлять адаптером.
Драйвер &man.agp.4; присутствует в ядре GENERIC
с момента выпуска 4.8-RELEASE и 5.0-RELEASE. Для предшествующих
релизов вам нужно добавлять такую строку:device agpв конфигурационный файл вашего ядра и перестраивать новое ядро.
Однако вместо этого вы можете подгружать модуль ядра
agp.ko автоматически во время загрузки системы
при помощи &man.loader.8;. Для этого просто добавьте следующую
строку в файл /boot/loader.conf:agp_load="YES"Затем, в случае использования FreeBSD 4.X или более ранних
её версий, для программного интерфейса должен быть создан файл
устройств. Для создания файла устройств для AGP запустите
&man.MAKEDEV.8; в каталоге /dev:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV agpgartВо FreeBSD 5.X и более поздних версиях будет
использоваться &man.devfs.5; для выделения файлов устройств в
прозрачном режиме, поэтому шаг с &man.MAKEDEV.8; не нужен.Это позволит конфигурировать графическое оборудование точно так
же, как и любой другой графический адаптер. Заметьте, что для
систем, у которых драйвер &man.agp.4; в ядро не вкомпилирован,
попытка погрузить модуль с помощью &man.kldload.8; окончится
неудачно. Этот драйвер должен оказаться в ядре во время загрузки,
либо вкомпилированным, либо подгруженным посредством
/boot/loader.conf.Если вы используете &xfree86; 4.1.0
(или более позднюю версию), и выдаются сообщения о неразрешённых
ссылках типа fbPictureInit, попробуйте добавить
такую строчку после Driver "i810" в
конфигурационном файле X11:Option "NoDDC"MurrayStokelyТекст предоставил Использование шрифтов в X11Шрифты Type1Шрифты, используемые по умолчанию и распространяемые вместе с
X11, вряд ли можно назвать идеально
подходящими для применения в обычных издательских приложениях. Большие
презентационные шрифты выглядят рвано и непрофессионально, а мелкие
шрифты в &netscape; вообще невозможно
разобрать. Однако есть некоторое количество свободно распространяемых
высококачественных шрифтов Type1 (&postscript;), которые можно без
изменений использовать с X11. К примеру, в наборе шрифтов URW
(x11-fonts/urwfonts) имеются
высококачественные версии стандартных шрифтов type1 (Times Roman, Helvetica, Palatino и другие). В набор Freefonts
(x11-fonts/freefonts) включено ещё
больше шрифтов, однако большинство из них предназначено для
использования в программном обеспечении для работы с графикой,
например, Gimp, и они не вполне пригодны
для использования в качестве
экранных шрифтов. Кроме того, X11 с
минимальными усилиями может быть настроена на использование шрифтов
&truetype;. Более детальная информация находится на странице
справочной системы &man.X.7; и в разделе о
шрифтах &truetype; ниже.Для установки вышеупомянутых коллекций шрифтов Type1 из коллекции
портов выполните следующие команды:&prompt.root; cd /usr/ports/x11-fonts/urwfonts
&prompt.root; make install cleanТо же самое нужно будет сделать для коллекции freefont и других.
Чтобы X-сервер обнаруживал
этих шрифты, добавьте соответствующую строку в
файл настройки X сервера /etc/X11/
(xorg.conf для
&xorg; и
XF86Config для
&xfree86;),
которая должна выглядеть так:FontPath "/usr/X11R6/lib/X11/fonts/URW/"Либо из командной строки при работе с X выполните:&prompt.user; xset fp+ /usr/X11R6/lib/X11/fonts/URW
&prompt.user; xset fp rehashЭто сработает, но будет потеряно, когда сеанс работы с X будет
закрыт, если эта команда не будет добавлена в начальный файл
(~/.xinitrc в случае обычного сеанса через
startx
или ~/.xsession при входе через графический
менеджер типа XDM). Третий способ
заключается в использовании нового файла
/usr/X11R6/etc/fonts/local.conf: посмотрите
раздел об антиалиасинге.Шрифты &truetype;Шрифты TrueTypeшрифтыTrueTypeКак в &xfree86; 4.X, так и в
&xorg; имеется встроенная
поддержка шрифтов &truetype;. Имеются два модуля, которые могут
обеспечить эту функциональность. В нашем примере используется модуль
freetype, потому что он в большей степени похож на другие механизмы
для работы с шрифтами. Для включения модуля freetype достаточно в
раздел "Module" файла
/etc/X11/xorg.conf или
/etc/X11/XF86Config добавить следующую
строчку.Load "freetype"В случае &xfree86; 3.3.X требуется
отдельный сервер шрифтов &truetype;. Для этого обычно
используется Xfstt. Для установки
Xfstt просто установите порт
x11-servers/Xfstt.Теперь создайте каталог для шрифтов &truetype;
(к примеру, /usr/X11R6/lib/X11/fonts/TrueType) и
скопируйте все шрифты &truetype; в этот каталог. Имейте в виду,
что напрямую использовать шрифты &truetype; с &macintosh; нельзя;
для использования с X11 они должны
быть в формате &unix;/&ms-dos;/&windows;. После того, как файлы будут
скопированы в этот каталог, воспользуйтесь утилитой
ttmkfdir для создания файла
fonts.dir, который укажет подсистеме вывода
шрифтов X на местоположение этих новых файлов.
ttmkfdir имеется в Коллекции Портов FreeBSD
как x11-fonts/ttmkfdir.&prompt.root; cd /usr/X11R6/lib/X11/fonts/TrueType
&prompt.root; ttmkfdir > fonts.dirПосле этого добавьте каталог со шрифтами &truetype;
к маршруту поиска шрифтов. Это делается точно также, как описано выше
для шрифтов Type1, то есть
выполните&prompt.user; xset fp+ /usr/X11R6/lib/X11/fonts/TrueType
&prompt.user; xset fp rehashили добавьте строку в файл
xorg.conf (или
XF86Config).Это всё. Теперь &netscape;,
Gimp,
&staroffice; и все остальные X-приложения
должны увидеть установленные шрифты &truetype;. Очень маленькие (как
текст веб-страницы на дисплее с высоким разрешением) и очень большие (в
&staroffice;) шрифты будут теперь выглядеть
гораздо лучше.Joe MarcusClarkeОбновление выполнил Антиалиасинг шрифтовшрифты с антиалиасингомшрифтыантиалиасингАнлиалиасинг присутствует в X11 начиная с
&xfree86;,
версии 4.0.2. Однако настройка шрифтов была довольно
громоздка вплоть до появления &xfree86;
4.3.0. Начиная с версии &xfree86; 4.3.0,
все шрифты, расположенные в каталогах
/usr/X11R6/lib/X11/fonts/ и
~/.fonts/, автоматически становятся доступными для
применения антиалиасинга в приложениях, использующих Xft. Не все
приложения могут использовать Xft, но во многих его поддержка
присутствует. Примерами приложений, использующих Xft, является Qt
версий 2.3 и более поздних (это инструментальный пакет для оболочки
KDE), GTK+ версий 2.0 и более поздних (это
инструментальный пакет для оболочки GNOME),
а также Mozilla версий 1.2 и более
поздних.Для управления тем, к каким шрифтам применять антиалиасинг, а также
для настройки параметров антиалиасинга, создайте (или отредактируйте,
если он уже существует) файл
/usr/X11R6/etc/fonts/local.conf. Некоторые мощные
возможности системы шрифтов Xft могут быть настроены при помощи этого
файла; в этом разделе описаны лишь некоторые простые возможности. Для
выяснения всех деталей, пожалуйста, обратитесь к
&man.fonts-conf.5;.XMLЭтот файл должен быть сформирован в формате XML. Обратите особое
внимание на регистр символов, и удостоверьтесь, что все тэги корректно
закрыты. Файл начинается обычным заголовком XML, за которым следуют
задание DOCTYPE, а потом
тэг <fontconfig>:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
Как и говорилось ранее, все шрифты из каталога
/usr/X11R6/lib/X11/fonts/, а также
~/.fonts/ уже доступны для приложений,
использующих Xft. Если вы хотите добавить каталог, отличный от этих
двух, добавьте строчку, подобную следующей, в файл
/usr/X11R6/etc/fonts/local.conf:<dir>/path/to/my/fonts</dir>После добавления новых шрифтов, и особенно новых каталогов со
шрифтами, вы должны выполнить следующую команду для перестроения
кэшей шрифтов:&prompt.root; fc-cache -fАнтиалиасинг делает границы несколько размытыми, что делает очень
мелкий текст более читабельным и удаляет лесенки из
текста большого размера, но может вызвать нечёткость при применении к
тексту обычного размера. Для исключения размеров шрифтов, меньших 14, из
антиалиасинга, добавьте такие строки: <match target="font">
<test name="size" compare="less">
<double>14</double>
</test>
<edit name="antialias" mode="assign">
<bool>false</bool>
</edit>
</match>
<match target="font">
<test name="pixelsize" compare="less" qual="any">
<double>14</double>
</test>
<edit mode="assign" name="antialias">
<bool>false</bool>
</edit>
</match>шрифтымежсимвольное расстояниеДля некоторых моноширинных шрифтов антиалиасинг может также
оказаться неприменимым при определении межсимвольного интервала. В
частности, эта проблема возникает с KDE.
Одним из возможных решений для этого
является жесткое задание межсимвольного интервала в 100. Добавьте
следующие строки: <match target="pattern" name="family">
<test qual="any" name="family">
<string>fixed</string>
</test>
<edit name="family" mode="assign">
<string>mono</string>
</edit>
</match>
<match target="pattern" name="family">
<test qual="any" name="family">
<string>console</string>
</test>
<edit name="family" mode="assign">
<string>mono</string>
</edit>
</match>(это создаст алиасы для других общеупотребительных имён для
шрифтов фиксированного размера как "mono"), а затем
добавьте: <match target="pattern" name="family">
<test qual="any" name="family">
<string>mono</string>
</test>
<edit name="spacing" mode="assign">
<int>100</int>
</edit>
</match> С некоторыми шрифтами, такими, как Helvetica, могут получиться
проблемы при антиалиасинге. Обычно это проявляется в виде шрифта,
который наполовину вертикально обрезан. Хуже того, это может
привести к сбоям таких приложений, как
Mozilla. Во избежание этого следует
добавить следующее в файл local.conf: <match target="pattern" name="family">
<test qual="any" name="family">
<string>Helvetica</string>
</test>
<edit name="family" mode="assign">
<string>sans-serif</string>
</edit>
</match> После того, как вы закончите редактирование
local.conf, удостоверьтесь, что вы завершили файл
тэгом </fontconfig>. Если этого не сделать,
то ваши изменения будут проигнорированы.Набор шрифтов по умолчанию, поставляемый с
X11, не очень желателен, если
включается антиалиасинг. Гораздо лучший набор шрифтов, используемых
по умолчанию, можно найти в порте
x11-fonts/bitstream-vera. Этот
порт установит файл
/usr/X11R6/etc/fonts/local.conf, если такого ещё
не существует. Если файл существует, то порт создаст файл
/usr/X11R6/etc/fonts/local.conf-vera. Перенесите
содержимое этого файла в
/usr/X11R6/etc/fonts/local.conf, и шрифты
Bitstream автоматически заменят используемые по умолчанию в
X11 шрифты Serif, Sans Serif и
Monospaced.Наконец, пользователи могут добавлять собственные наборы
посредством персональных файлов .fonts.conf.
Для этого каждый пользователь должен просто создать файл
~/.fonts.conf. Этот файл также должен быть в
формате XML.LCD-дисплейШрифтыLCD-дисплейИ последнее замечание: при использовании дисплея LCD может
понадобиться включение разбиения точек. При этом компоненты красного,
зелёного и голубого цветов (разделяемые по горизонтали),
рассматриваются как отдельные точки для улучшения разрешения экрана
по горизонтали; результат может оказаться потрясающим. Для включения
этого механизма добавьте такую строчку где-нибудь в файл
local.conf:
<match target="font">
<test qual="all" name="rgba">
<const>unknown</const>
</test>
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
</match>
В зависимости от типа дисплея, rgb может
потребоваться заменить на bgr,
vrgb или vbgr: пробуйте и
смотрите, что работает лучше.Mozillaвеб-браузерыMozillaMozillaАнтиалиасинг должен быть включен при следующем запуске X-сервера.
Однако программы должны знать, как использовать его преимущества.
В настоящее время инструментальный пакет Qt умеет ими пользоваться,
так что вся оболочка KDE может
использовать шрифты с антиалиасингом (обратитесь к о KDE для
выяснения всех подробностей). GTK+ и GNOME
также можно заставить использовать антиалиасинг посредством капплета
Font (обратитесь к для выяснения всех подробностей).
По умолчанию Mozilla версий 1.2 и выше
будет автоматически использовать антиалиасинг. Для отмены этого
перестройте Mozilla с флагом
-DWITHOUT_XFT.SethKingsleyТекст предоставил Менеджеры Экранов (Display Managers) XВступлениеX Display ManagerМенеджер Экранов X (XDM) это
необязательный компонент
Системы Окон X, который используется для управления login сессиями.
Это полезно в ряде ситуаций, например минимальные
X Терминалы,
декстопы, большие сетевые сервера Экранов. Так как Система Окон X
не зависит от сетей и протоколов, то существует множество различных
конфигураций для X клиентов и серверов запущенных на различных
компьютерах подключенных к сети. XDM
предоставляет графический
интерфейс для выбора сервера к которому Вы желаете подключится и
введения информации авторизующей пользователя, например комбинацию
логина и пароля.Представляйте себе, что XDM
предоставляет такие же
возможности для пользователей, как и программа &man.getty.8;
(смотрите для подробной информации).
И это именно так, XDM производит вход в
систему для подключенного
пользователя и запускает управляющую сессию для пользователя (обычно
это менеджер окон X). После этого XDM
ожидает завершения
приложения, означающее завершение пользователем работы и
отключает управляющую сессию. После этого
XDM может снова вывести
приглашение к входу в систему и ожидать входа другого пользователя.
Использование XDMПрограммой даемона XDM является
/usr/X11R6/bin/xdm. Эта программа может быть
запущена от пользователя root в любой момент, и
она начнёт управлять дисплеем X на локальной машине.
Если XDM нужно запускать
в фоновом режиме каждый раз при запуске компьютера, то наиболее
правильный способ это добавить новую запись в
/etc/ttys. Для более подробной информации о
формате и использовании этого файла смотрите секцию . Это строка, которую необходимо добавить
в файл /etc/ttys для того чтобы запустить
даемон XDM на виртуальном терминале:ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secureПо умолчанию эта запись отключена; для её включения
нужно заменить пятое поле с off на
on и перезапустить &man.init.8;, используя метод,
описанный в . Первое поле это название
терминала, которым будет управлять программа, ttyv8.
Это означает, что XDM будет запущен на 9ом
виртуальном терминале.Конфигурирование XDMКонфигурационные файлы XDM находятся в
каталоге
/usr/X11R6/lib/X11/xdm. В нём размещаются
насколько файлов, которые используются для изменения
поведения и внешнего вида XDM.
Обычно это следующие файлы:ФайлОписаниеXaccessПравила авторизации клиентов.XresourcesЗначения ресурсов X по умолчанию.XserversСписок локальных и удаленных экранов.XsessionСценарий сессии по умолчанию.Xsetup_*Скрипт для запуска приложений до появления приглашения
к входу в систему.xdm-configГлобальный конфигурационный файл для всех экранов
запущенных на локальной машинеxdm-errorsОшибки сгенерированные серверной программой.xdm-pidID процесса запущенного XDM.В этом каталоге также находятся несколько командных сценариев
и программ используемых для настройки рабочего стола (desktop),
когда запускается XDM. Назначение
каждого из этих файлов будет вкратце описано. Точный синтаксис и
информацию по их использованию описаны в &man.xdm.1;.В конфигурации по умолчанию это просто прямоугольное окно
приглашения ко входу в систему с именем компьютера большим шрифтом
написанным сверху и строками ввода Login: и
Password: внизу. Это хорошая отправная точка
для изменения внешнего вида экранов
XDM.XaccessПротокол, по которому происходит подключение дисплеев,
управляемых XDM, называется X Display
Manager Connection
Protocol (XDMCP). Этот файл представляет собой
набор правил для управления XDMCP соединениями с
удалёнными машинами. По умолчанию он позволяет подключаться
любым клиентам, но это не имеет значения, пока
стандартный файл xdm-config не содержит
указаний по обслуживанию удалённых соединений.XresourcesЭто файл содержащий установки по умолчанию для
приложений запущенных в экране выбора серверов и экране
приглашения к входу в систему. Именно здесь может быть
изменён вид программы входа в систему. Формат этого файла
идентичен файлу app-defaults описанному
в документации к X11.XserversЭто список удаленных экранов, которые XDM должен предоставить
как варианты для входа в систему.XsessionЭтот файл представляет себя командный сценарий по умолчанию
для пользователей вошедших в систему с использованием
XDM.
Обычно каждый пользователь имеет собственный сценарий входа в файле
~/.xsession, который используется
вместо этого сценария.Xsetup_*Они запускаются автоматически перед тем, как показывается экран
выбора сервера или экран входа в систему. Для каждого экрана
(display) есть свой сценарий с именем Xsetup_,
за которым следует локальный номер экрана (например,
Xsetup_0).
Обычно эти сценарии запускают одну или две программы в
фоновом режиме, например xconsole.xdm-configЗдесь содержатся настройки в формате app-defaults,
которые применимы ко всем экранам данного компьютера.xdm-errorsЗдесь находится выдача X серверов, которые
XDM пытается запустить. Если экран,
который XDM пытается
открыть отключается по некоторым причинам, то это хорошее
место для поиска сообщений об ошибках. Эти сообщения также
записываются в пользовательский файл
~/.xsession-errors для каждого сеанса.Использование сетевого сервера дисплеевДля того, чтобы позволить другим клиентам подключаться к серверу
дисплеев, отредактируйте правила
контроля доступа и включите обслуживание сетевых соединений.
По умолчанию они выключены, что является хорошим решением
с точки зрения обеспечения безопасности. Для того, чтобы
позволить XDM принимать сетевые соединения,
в первую очередь
закомментируйте строку в файле xdm-config:! SECURITY: do not listen for XDMCP or Chooser requests
! Comment out this line if you want to manage X terminals with xdm
DisplayManager.requestPort: 0и потом перезапустите XDM. Помните,
что комментарии в файлах app-defaults начинаются с символа
!, а не как обычно, #. Может
потребоваться более жёсткий контроль доступа. Взгляните на примеры из
Xaccess и почитайте Справочник о
&man.xdm.1;.Замены для XDMСуществует несколько программ, заменяющих
XDM. Одна из них,
kdm (поставляемая вместе с
KDE), описана далее в этой главе. В
kdm имеется много визуальных и
косметических улучшений, а также функциональность, позволяющая
пользователям выбирать собственные оконные менеджеры во время
входа в систему.ValentinoVaschettoТекст предоставил Графические оболочкиВ этом разделе описываются различные графические оболочки, доступные
в X для FreeBSD. Термин графическая оболочка может
использоваться для чего угодно, от простого менеджера окон до
полнофункционального набора приложений для рабочего стола типа
KDE или
GNOME.GNOMEО GNOMEGNOMEGNOME является дружественной к
пользователю графической
оболочкой, позволяющей пользователям легко использовать и настраивать
свои компьютеры. В GNOME имеется панель
(для запуска приложений и
отображения их состояния), рабочий стол (где могут быть размещены
данные и приложения), набор стандартных инструментов и приложений для
рабочего стола, а также набор соглашений, облегчающих совместную
работу и согласованность приложений. Пользователи других
операционных систем или оболочек при использовании такой мощной
графической оболочки, какую обеспечивает
GNOME, должны чувствовать
себя в родной среде. Дополнительную информацию относительно
GNOME во FreeBSD можно найти на сайте
FreeBSD GNOME
Project.Установка GNOMEЛегче всего установить GNOME через
меню Desktop Configuration в ходе процесса установки
FreeBSD, как описано в
Главы 2. Её также легко установить из пакета или Коллекции
Портов:Для установки пакета GNOME из сети,
просто наберите:&prompt.root; pkg_add -r gnome2Для построения GNOME из
исходных текстов используйте дерево портов:&prompt.root; cd /usr/ports/x11/gnome2
&prompt.root; make install cleanПосле установки GNOME нужно указать
X-серверу на запуск GNOME вместо
стандартного оконного менеджера. Если файл
.xinitrc уже откорректирован, то просто
замените строку, в которой запускается используемый менеджер окон,
на ту, что вызовет
/usr/X11R6/bin/gnome-session.
Если в конфигурационном файле нет ничего особенного, то будет
достаточно просто набрать:&prompt.user; echo "/usr/X11R6/bin/gnome-session" > ~/.xinitrcТеперь наберите startx, и будет запущена
графическая оболочка GNOME.Если используется менеджер дисплеев типа
XDM, то это не сработает. Вместо этого
создайте выполнимый файл .xsession с той
же самой командой в нём. Для этого отредактируйте файл,
заменив существующую команду запуска оконного
менеджера на
/usr/X11R6/bin/gnome-session:&prompt.user; echo "#!/bin/sh" > ~/.xsession
&prompt.user; echo "/usr/X11R6/bin/gnome-session" >> ~/.xsession
&prompt.user; chmod +x ~/.xsessionЕщё одним вариантом является настройка менеджера дисплеев таким
образом, чтобы он позволял выбирать оконный менеджер во время входа в
систему; в разделе о KDE2 в
подробностях описывается, как сделать это для
kdm, менеджера дисплеев из
KDE.Шрифты с антиалиасингом и GNOMEGNOMEантиалиасинг шрифтовX11 поддерживает антиалиасинг посредством своего расширения
RENDER. GTK+ 2.0 и более поздние версии (это
инструментальный пакет, используемый
GNOME) могут использовать такую
функциональность. настройка антиалиасинга описана в
. Таким образом, при наличии современного
GNOME. Просто перейдите в
ApplicationsDesktop PreferencesFont
и выберите либо
Best shapes,
Best contrast, либо
Subpixel smoothing (LCDs). Для приложений
GTK+, которые не являются частью оболочки
GNOME, задайте в качестве значения
переменной окружения GDK_USE_XFT1 перед запуском программы.KDEKDEО KDEKDE является простой в использовании
современной графической оболочкой. Вот лишь некоторое из того, что
даёт пользователю KDE:Прекрасный современный рабочий столРабочий стол, полностью прозрачный для работы в сетиИнтегрированная система помощи, обеспечивающая удобный и
согласованный доступ к системе помощи по использованию рабочего
стола KDE и его приложенийЕдинообразный внешний вид и управление во всех приложениях
KDEСтандартизированные меню и панели инструментов, комбинации
клавиш, цветовые схемы и так далее.Интернационализация: в KDE
поддерживается более 40 языковЦентрализованное единообразное конфигурирование рабочего
стола в диалоговом режимеБольшое количество полезных приложений для
KDEДля KDE существует пакет офисных
приложений, который выполнен по технологии KParts из
KDE, состоящий из программы для работы с
электронными таблицами, презентационной программы, органайзера,
клиента для чтения телеконференций и других программ. С
KDE также поставляется веб-браузер под
названием Konqueror, который
является серьезным соперником другим браузерам для &unix;-систем.
Дополнительную информацию о KDE можно
найти на веб-сайте
KDE. Для получения информации и информационных ресурсов,
специфичных для KDE во FreeBSD, обратитесь
к сайту команды FreeBSD-KDE
team.Установка KDEКак и в случае с GNOME или любой
другой графической оболочкой, легче всего установить
KDE через меню Desktop
Configuration во время установки FreeBSD, как это описано в
Главы 2. Повторимся ещё
раз, что программное обеспечение можно легко установить из пакета
или из Коллекции Портов:Для установки пакета KDE из сети,
просто наберите:&prompt.root; pkg_add -r kde&man.pkg.add.1; автоматически загрузит самую последнюю версию
приложения.Для построения KDE из исходных
текстов воспользуйтесь деревом портов:&prompt.root; cd /usr/ports/x11/kde3
&prompt.root; make install cleanПосле установки KDE нужно
указать X-серверу на запуск этого приложения вместо оконного
менеджера, используемого по умолчанию. Это достигается
редактированием файла .xinitrc:&prompt.user; echo "exec startkde" > ~/.xinitrcТеперь при вызове X Window System по команде
startx в качестве оболочки будет использоваться
KDE.При использовании менеджера дисплеев типа
XDM настройка несколько отличается.
Вместо этого нужно отредактировать файл
.xsession. Указания для
kdm описаны далее в этой главе.Более подробно о KDEТеперь, когда KDE установлена в
системе, можно узнать много нового из её справочных страниц или просто
указанием и щелканием по различным меню. Пользователи &windows; или
&mac; будут чувствовать себя как дома.Лучшим справочником по KDE является
онлайновая документация. KDE
поставляется с собственным веб-браузером, который называется
Konqueror,
десятками полезных приложений и подробной документацией. В оставшейся
части этого раздела обсуждаются технические вопросы, трудные для
понимания при случайном исследовании.Менеджер дисплеев KDEKDEменеджер дисплеевАдминистратору многопользовательской системы может
потребоваться графический экран входа в систему для
приглашения пользователей. Вы можете использовать XDM, как это описано
ранее. Однако в KDE имеется
альтернативный менеджер kdm, который был
разработан для того, чтобы выглядеть более привлекательно и иметь
большее количество настраиваемых опций для входа в систему. В
частности, пользователи могут легко выбирать (посредством меню),
какую оболочку (KDE,
GNOME или что-то ещё) запускать после
входа в систему.Чтобы начать, запустите панель управления
KDE, kcontrol, из-под
пользователя root. Вообще говоря, считается
небезопасным работать в X пользователем
root. Вместо этого запустите менеджер окон
как обычный пользователь, откройте окно терминала (такого, как
xterm или konsole) из
KDE, станьте пользователем
root по команде su (для
этого нужно быть членом группы wheel из
/etc/group), а затем наберите
kcontrol.Щёлкните на иконке слева с надписью
System, затем на Login
manager. Справа имеется много
различных параметров настройки, которые более детально описаны в
руководстве по KDE. Щёлкните на
sessions справа. Щёлкните на кнопку
New type для того, чтобы добавить
различные оконные менеджеры и графические оболочки. Это просто
названия, так что они могут именоваться
KDE или GNOME,
а не startkde или
gnome-session.)
Включите название failsafe.Поэкспериментируйте также и с другими меню, они в
основном носят косметический характер и самоописательны. Когда
закончите, щёлкните на Apply внизу и завершите
работу панели управления.Чтобы kdm понимал, что значат эти
названия (KDE,
GNOME и так далее), отредактируйте файлы,
которые использует XDM.
В KDE 2.2 это изменилось: в
kdm теперь используются собственные
конфигурационные файлы. Пожалуйста, обратитесь к документации
по KDE 2.2 для получения подробной
информации.В окне терминала, работая как пользователь
root, отредактируйте файл
/usr/X11R6/lib/X11/xdm/Xsession. В середине
есть раздел, выглядящий вот так:case $# in
1)
case $1 in
failsafe)
exec xterm -geometry 80x24-0-0
;;
esac
esacНужно добавить к этому разделу несколько строк. Полагая, что
ранее использовались названия KDE и
GNOME, сделаем следующее:case $# in
1)
case $1 in
kde)
exec /usr/local/bin/startkde
;;
GNOME)
exec /usr/X11R6/bin/gnome-session
;;
failsafe)
exec xterm -geometry 80x24-0-0
;;
esac
esacЧтобы выбор KDE в качестве оболочки
на момент входа в систему был принят, нужно добавить такую строку в
/usr/X11R6/lib/X11/xdm/Xsetup_0:/usr/local/bin/kdmdesktopТеперь проверьте, что
kdm перечислена в файле
/etc/ttys для запуска при следующей загрузке.
Для этого просто следуйте инструкциям из предыдущего раздела
о XDM, заменив отсылки к программе
/usr/X11R6/bin/xdm на
/usr/local/bin/kdm.Шрифты с антиалиасингомKDEантиалиасинг шрифтовX11 поддерживает антиалиасинг через своё расширение
RENDER, а начиная с версии 2.3, Qt (инструментарий,
используемый в KDE) поддерживает это
расширение. Настройка этого описана в по
антиалиасингу с шрифтами X11. Таким образом, при работе с
современным программным обеспечением в оболочке
KDE возможно использование
антиалиасинга. Просто перейдите в меню KDE, затем к
PreferencesLook and FeelFonts
и поставьте галочку рядом с
Use Anti-Aliasing for Fonts and Icons. Для
работы с приложением Qt, которое не является частью
KDE, перед его запуском нужно
устанавливать переменную окружения QT_XFT в
значение true.XFceО XFceXFce является графической оболочкой,
построенной на основе инструментального пакета GTK+, используемого в
GNOME, но гораздо легче и предназначен
для тех, кому нужен простой, эффективно работающий рабочий стол,
который легко использовать и настраивать. Визуально он выглядит
очень похоже на CDE, который есть в
коммерческих &unix;-системах. Вот некоторые из достоинств
XFce:Простой, лёгкий в обращении рабочий столПолностью настраиваемый при помощи мыши, с
интерфейсом drag and drop и так далееГлавная панель похожа на CDE, с
меню, апплетами и возможностями по быстрому запуску
приложенийИнтегрированный оконный менеджер, менеджер файлов,
управление звуком, модуль совместимости с
GNOME и прочееВозможность использования тем (так как использует
GTK+)Быстрый, легкий и эффективный: идеален для
устаревших/слабых машин или для машин с ограниченной
памятьюДополнительную информацию о XFce
можно найти на сайте
XFce.Установка XFceДля XFce имеется (на момент написания
этого текста) бинарный пакет. Для его установки просто
наберите:&prompt.root; pkg_add -r xfce4Либо в случае построения из исходных текстов используйте
Коллекцию Портов: &prompt.root; cd /usr/ports/x11-wm/xfce4
&prompt.root; make install cleanТеперь укажите X-серверу на запуск
XFce при следующем
запуске X. Просто наберите вот что:&prompt.user; echo "/usr/X11R6/bin/startxfce4" > ~/.xinitrcПри следующем запуске X в качестве рабочего стола
будет использоваться XFce.
Как это сказано выше, если используется
менеджер дисплеев, такой, как XDM, создайте
файл .xsession так, как это
описано в разделе о GNOME, но
с командой /usr/X11R6/bin/startxfce4, либо
настройте менеджер дисплеев так, чтобы он разрешил выбор рабочего
стола во время входа в систему, как это описано в разделе о kdm.