diff --git a/ru_RU.KOI8-R/books/handbook/disks/chapter.sgml b/ru_RU.KOI8-R/books/handbook/disks/chapter.sgml index 3c41b4eb84..4361c4e4e6 100644 --- a/ru_RU.KOI8-R/books/handbook/disks/chapter.sgml +++ b/ru_RU.KOI8-R/books/handbook/disks/chapter.sgml @@ -1,4520 +1,4571 @@ Андрей Захватов Перевод на русский язык: Устройства хранения Краткий обзор В этой главе описывается использование дисков во FreeBSD. К ним относятся диски в памяти, диски, подключенные по сети, обычные устройства хранения SCSI/IDE и устройства, использующие интерфейс USB. После чтения этой главы вы будете знать: Терминологию, используемую во FreeBSD для описания организации данных на физическом диске (разделы и слайсы). Как добавить дополнительные винчестеры к вашей системе. Как настроить &os; для использования дисковых устройств USB. Как настроить виртуальные файловые системы, такие, как диски в оперативной памяти. Как использовать квоты для ограничения использования дискового пространства. Как зашифровать диски, чтобы защитить их от взлома. Как создавать и записывать CD и DVD во FreeBSD. Различные варианты использования устройств хранения для резервных копий. Как использовать программы резервного копирования, имеющиеся для FreeBSD. Как выполнять резервное копирование на дискеты. Что такое мгновенные копии файловых систем и как их эффективно использовать Перед прочтением этой главы вам потребуется: Узнать как настраивать и устанавливать новое ядро FreeBSD (). Имена устройств Далее приводится список физических устройств хранения информации, которые поддерживаются во FreeBSD, и имена устройств, которые им соответствуют. Соглашения по именованию физических дисков Тип диска Имя дискового устройства Винчестеры IDE ad Приводы IDE CDROM acd Винчестеры SCSI и дисковые устройства USB da Приводы SCSI CDROM cd Различные нестандартные приводы CDROM mcd для Mitsumi CD-ROM, scd для Sony CD-ROM, matcd для Matsushita/Panasonic CD-ROM 5 октября 2002 года драйвер &man.matcd.4; был удалён из ветки FreeBSD 4.X и отсутствует во FreeBSD 5.0 и последующих релизах. Дискеты fd Ленточные приводы SCSI sa Ленточные приводы IDE ast Флэш-диски fla для флэш-устройств &diskonchip; Диски RAID aacd для &adaptec; AdvancedRAID, mlxd и mlyd для &mylex;, amrd для AMI &megaraid;, idad для Compaq Smart RAID, twed для &tm.3ware; RAID.
David O'Brien Изначальный текст предоставил Добавление дисков диски добавление Предположим, что мы хотим установить новый диск SCSI на машину, имеющую в данный момент только один диск. Сначала выключим компьютер и установим диск в компьютер согласно инструкциям к компьютеру, контроллеру и от производителя диска. Из-за большого разнообразия этих процедур их рассмотрение выходит за рамки этого документа.. Войдите в систему как пользователь root. После того, как вы установили диск, просмотрите файл /var/run/dmesg.boot, чтобы убедиться, что новый диск был найден. Продолжая наш пример, только что добавленный диск будет называться da1 и мы хотим смонтировать его в каталог /1 (если вы добавляете диск IDE, то устройство будет называться wd1 в системах, предшествовавших 4.0, и ad1 в системах 4.X и 5.X). разделы слайсы fdisk FreeBSD работает на IBM-PC совместимых компьютерах, поэтому она должна уметь работать с разделами PC BIOS. Однако они отличаются от традиционных разделов BSD. Диск ПК может иметь до четырёх записей разделов BIOS. Если диск на самом деле будет использоваться исключительно под FreeBSD, вы можете использовать режим dedicated. В противном случае FreeBSD будет располагаться в одном из разделов PC BIOS. Во FreeBSD разделы PC BIOS называются слайсами, чтобы не путать их с традиционными разделами BSD. Вы также можете использовать слайсы и с диском, предназначенным исключительно для FreeBSD, однако используемым в компьютере, на котором имеется дополнительная операционная система. Это является хорошим способом избежать путаницы в утилите fdisk других операционных систем, не связанных с FreeBSD. В случае слайсов диск будет добавлен как /dev/da1s1e. Это интерпретируется следующим образом: диск SCSI, устройство номер 1 (второй диск SCSI), слайс 1 (раздел PC BIOS 1), и раздел BSD e. В случае использования в выделенном режиме диск будет добавлен просто как /dev/da1e. Вследствие использования 32-разрядных целых чисел для адресации секторов, &man.bsdlabel.8; (называемый &man.disklabel.8; в &os; 4.X) ограничен 2^32-1 секторами на диск, или 2TB в в большинстве случаев. Формат &man.fdisk.8; позволяет наличие первого сектора со смещением не более 2^32-1 и длину не более 2^32-1, что ограничивает размер раздела до 2TB, а размер диска до 4TB в большинстве случаев. Формат &man.sunlabel.8; ограничен 2^32-1 секторами на раздел и 8 разделами, что составляет 16TB. Для дисков большего раздела могут быть использованы разделы &man.gpt.8;. Использование утилиты &man.sysinstall.8; sysinstall добавление дисков su Использование <application>Sysinstall</application> Вы можете использовать простые меню утилиты sysinstall (/stand/sysinstall во &os; версий, более старых, чем 5.2) для разбиения на разделы и разметки нового диска. Войдите как пользователь root или воспользуйтесь командой su. Запустите команду sysinstall и войдите в меню Configure. Внутри FreeBSD Configuration Menu, пролистайте и выберите пункт Fdisk. Редактор разделов <application>fdisk</application> При работе с утилитой fdisk ввод A используется для выделения под FreeBSD полностью всего диска. Когда будет задан вопрос о том, хотите ли вы сохранить совместимость с другими возможными операционными системами в будущем, ответьте YES. Запишите изменения на диск при помощи команды W. А теперь выйдите из редактора FDISK, нажав q. В этот момент вам будет задан вопрос о Master Boot Record (главной загрузочной записи). Так как вы добавляете диск к уже работающей системе, выберите None. Редактор метки диска разделы BSD Теперь вам нужно выйти из sysinstall и запустить эту утилиту снова. Следуйте указаниям выше, но на этот раз выберите пункт Label. Вы перейдёте к меню Disk Label Editor. Здесь вы создадите традиционные разделы BSD. На диске может быть до восьми разделов, имеющих метки a-h. Некоторые из меток разделов имеют особый смысл. Раздел a используется для размещения корневого раздела (/). По этой причине только ваш системный диск (например, тот, с которого происходит загрузка), должен иметь раздел a. Раздел b используется под раздел подкачки, и вы можете иметь много дисков с разделами подкачки. Раздел c используется для доступа ко всему диску в режиме эксклюзивного использования или ко всему слайсу FreeBSD при работе в режиме с использованием слайсов. Остальные разделы имеют обычное предназначение. Редактор метки диска программы sysinstall использует раздел e для некорневого раздела и не для раздела подкачки. Внутри редактора метки диска создайте отдельную файловую систему, нажав C. Когда будет задан вопрос о том, будет ли это раздел с файловой системой (FS) или это будет раздел подкачки, выберите FS и наберите точку монтирования (например, /mnt). При добавлении диска после установки системы, программа sysinstall не будет автоматически создавать записи в файле /etc/fstab, поэтому точка монтирования не так уж и важна. Теперь вы готовы записать новую метку на диск и создать на нем файловую систему. Сделайте это, набрав W. Проигнорируйте сообщения об ошибках от sysinstall о невозможности смонтировать новый раздел. Полностью выйдите из редактора метки диска и из программы sysinstall. Завершение Последний шаг заключается в редактировании файла /etc/fstab и добавлении записи для вашего нового диска. Использовании утилит командной строки Работа со слайсами Следующая настройка позволит вашему диску корректно работать с другими операционными системами, которые могут быть установлены на вашем компьютере, и не вызовет конфликта с утилитами fdisk других операционных систем. Этот способ рекомендуется использовать для установок новых дисков. Используйте эксклюзивный режим, только если у вас есть реальные причины делать это! &prompt.root; dd if=/dev/zero of=/dev/da1 bs=1k count=1 &prompt.root; fdisk -BI da1 # Инициализируем новый диск. &prompt.root; disklabel -B -w -r da1s1 auto # Размечаем его. &prompt.root; disklabel -e da1s1 # Редактируем только что созданную метку диска и добавляем разделы. &prompt.root; mkdir -p /1 &prompt.root; newfs /dev/da1s1e # Повторяем этот шаг для всех созданных разделов. &prompt.root; mount /dev/da1s1e /1 # Монтируем раздел(ы) &prompt.root; vi /etc/fstab # Добавляем соответствующую запись/записи в файл /etc/fstab. Если у вас установлен диск IDE, подставьте ad вместо da. На системах версий ранее 4.X используйте wd. Эксклюзивный режим OS/2 Если вы не будете использовать новый диск совместно с другой операционной системой, то вы можете использовать режим эксклюзивного использования. Отметьте, что этот режим может ввести в заблуждение операционные системы от Microsoft; однако информацию они не разрушат. А вот &os2; компании IBM будет забирать себе любой раздел, который она найдет и не сможет распознать. &prompt.root; dd if=/dev/zero of=/dev/da1 bs=1k count=1 &prompt.root; disklabel -Brw da1 auto &prompt.root; disklabel -e da1 # create the `e' partition &prompt.root; newfs -d0 /dev/da1e &prompt.root; mkdir -p /1 &prompt.root; vi /etc/fstab # add an entry for /dev/da1e &prompt.root; mount /1 Альтернативный метод заключается в следующем: &prompt.root; dd if=/dev/zero of=/dev/da1 count=2 &prompt.root; disklabel /dev/da1 | disklabel -BrR da1 /dev/stdin &prompt.root; newfs /dev/da1e &prompt.root; mkdir -p /1 &prompt.root; vi /etc/fstab # add an entry for /dev/da1e &prompt.root; mount /1 Начиная с &os; 5.1-RELEASE, на смену старой программе &man.disklabel.8; пришла утилита &man.bsdlabel.8;. У &man.bsdlabel.8; отсутствуют некоторые устаревшие опции и параметры; в примере выше параметр не может использоваться с &man.bsdlabel.8;. Для получения дополнительной информации обратитесь к справочной странице п о &man.bsdlabel.8;. RAID Программный RAID Christopher Shumway Оригинальный текст предоставил Jim Brown Изменения внёс RAIDпрограммный RAIDCCD Конфигурация драйвера объединённого диска (CCD) При выборе решения для организации хранилища самыми важными характеристиками являются скорость, надежность и стоимость. Редко все эти характеристики наличествуют одновременно; обычно быстрое и надёжное устройство хранения стоит дорого, а при уменьшении стоимости в жертву приносятся скорость работы или надёжность. При проектировании описываемой далее системы в качестве самого важного фактора была выбрана её стоимость, затем быстродействие и надёжность. Скорость передачи данных для этой системы ограничивалась только пропускной способностью сети. И, хотя надёжность очень важна, CCD-диск, описываемый ниже, обслуживал работу с данными, полные копии которых уже хранились на дисках CD-R, так они могли быть с лёгкостью обновлены. При выборе решения для массового хранения данных первым шагом является определение ваших требований к нему. Если в ваших требованиях главными являются скорость или надёжность, а не стоимость, то ваш выбор будет отличаться от описываемой в этом разделе системы. Установка оборудования Кроме системного IDE-диска, основу описываемого далее CCD-диска общим объёмом примерно в 90 Гбайт составили три IDE-диска Western Digital 30GB, 5400 RPM. В идеальном случае каждый диск IDE имеет собственный контроллер и кабель, но для минимизации стоимости дополнительные контроллеры IDE не использовались. Вместо этого диски были настроены при помощи переключателей так, что на каждом IDE-контроллере находилось по одному ведущему и одному ведомому диску. До перезагрузки BIOS системы была настроена на автоматическое распознавание подключенных дисков. Более важно то, что при перезагрузке их распознала FreeBSD: ad0: 19574MB <WDC WD205BA> [39770/16/63] at ata0-master UDMA33 ad1: 29333MB <WDC WD307AA> [59598/16/63] at ata0-slave UDMA33 ad2: 29333MB <WDC WD307AA> [59598/16/63] at ata1-master UDMA33 ad3: 29333MB <WDC WD307AA> [59598/16/63] at ata1-slave UDMA33 Если FreeBSD не распознала все диски, проверьте корректность положения переключателей на них. На большинстве IDE-дисков имеется также переключатель Cable Select. Он не имеет отношения к выбору ведущего и ведомого устройств. Для получения помощи по правильному положению переключателей обратитесь к документации по устройствам. Затем определите, как сделать их частью файловой системы. Изучите справку по &man.vinum.8; () и &man.ccd.4;. В нашем конкретном случае была выбрана технология &man.ccd.4;. Настройка CCD Драйвер &man.ccd.4; позволяет вам взять несколько идентичных дисков и объединить их в одну логическую файловую систему. Для использования &man.ccd.4; нужно ядро со встроенной поддержкой &man.ccd.4;. Добавьте такую строку в файл конфигурации ядра, перестройте и установите новое ядро: pseudo-device ccd 4 В системах 5.X вместо этого вам нужно использовать такую строку: device ccd Во FreeBSD 5.X нет нужды указывать количество устройств &man.ccd.4; так как драйвер устройства &man.ccd.4; теперь клонируется сам — новые экземпляры устройств будут создаваться автоматически по необходимости. Во FreeBSD 3.0 и последующих версиях поддержка &man.ccd.4; также может быть обеспечена загрузкой подгружаемого модуля ядра. Для настройки &man.ccd.4; сначала вам нужно воспользоваться утилитой &man.disklabel.8; для разметки дисков: disklabel -r -w ad1 auto disklabel -r -w ad2 auto disklabel -r -w ad3 auto При этом создаются метки для ad1c, ad2c и ad3c, которые занимают диск полностью. Начиная с &os; 5.1-RELEASE, на смену старой программе &man.disklabel.8; пришла утилита &man.bsdlabel.8;. У &man.bsdlabel.8; отсутствуют некоторые устаревшие опции и параметры; в примере выше параметр не может использоваться с &man.bsdlabel.8;. Для получения дополнительной информации обратитесь к справочной странице п о &man.bsdlabel.8;. Следующим шагом является изменение типа метки диска. Для редактирования дисков можно использовать утилиту &man.disklabel.8;: disklabel -e ad1 disklabel -e ad2 disklabel -e ad3 При этом в редакторе, задаваемом переменной окружения EDITOR (обычно это &man.vi.1;), открывается текущая метка каждого диска. Немодифицированная метка диска будет выглядеть примерно следующим образом: 8 partitions: # size offset fstype [fsize bsize bps/cpg] c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597) Добавьте новый раздел e для использования драйвером &man.ccd.4;. Как правило, он может быть скопирован с раздела c, но поле должно иметь значение 4.2BSD. Теперь метка диска должна выглядеть примерно так: 8 partitions: # size offset fstype [fsize bsize bps/cpg] c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597) e: 60074784 0 4.2BSD 0 0 0 # (Cyl. 0 - 59597) Построение файловой системы Файл устройства для ccd0c может ещё не существовать, так что для его создания предварительно выполните такие команды: cd /dev sh MAKEDEV ccd0 Во FreeBSD 5.0 &man.devfs.5; будет управлять файлами устройств в каталоге /dev автоматически, так что в использовании MAKEDEV необходимости нет. Теперь, когда все диски размечены, вы должны построить &man.ccd.4;. Для этого используйте утилиту &man.ccdconfig.8; с параметрами, подобными следующим: ccdconfig ccd0 32 0 /dev/ad1e /dev/ad2e /dev/ad3e Использование и значение каждого параметра описывается ниже: Первым аргументом является конфигурируемое устройство, в нашем случае /dev/ccd0c. Часть /dev/ является необязательной. Чередование для файловой системы. Оно определяет размер единицы блока данных в количестве дисковых блоков, каждый из которых обычно имеет объём в 512 байт. Таким образом, при чередовании в 32 это будет составлять 16384 байт. Опции для &man.ccdconfig.8;. Если вы хотите включить зеркалирование диска, то можете задать это здесь. В нашей конфигурации зеркалирование для &man.ccd.4; не предусмотрено, поэтому здесь задан 0 (ноль). Последним параметром для &man.ccdconfig.8; является список устройств для объединения в массив. Для каждого устройства нужно задавать полное имя. После запуска &man.ccdconfig.8; устройство &man.ccd.4; будет отконфигурировано. Может будет построить файловую систему. Обратитесь к справке по команде &man.newfs.8; для выяснения требуемых параметров, или просто запустите: newfs /dev/ccd0c Автоматическое выполнение Вообще говоря, вам потребуется монтировать &man.ccd.4; при каждой перезагрузке. Для этого сначала вы должны отконфигурировать это устройство. Запишите вашу текущую конфигурацию в файл /etc/ccd.conf при помощи такой команды: ccdconfig -g > /etc/ccd.conf При перезагрузке скрипт /etc/rc запускает команду ccdconfig -C, если существует файл /etc/ccd.conf. При этом &man.ccd.4; автоматически конфигурируется так, чтобы он мог быть смонтирован. Если при загрузке вы входите в однопользовательский режим, то перед тем, как выполнять монтирование &man.ccd.4; по команде &man.mount.8;, вам нужно для конфигурации массива запустить следующую команду: ccdconfig -C Для автоматического монтирования &man.ccd.4; поместите запись о &man.ccd.4; в файл /etc/fstab, чтобы он мог быть смонтирован во время загрузки системы: /dev/ccd0c /media ufs rw 2 2 Менеджер томов Vinum RAIDпрограммный RAIDVinum Менеджер томов Vinum является драйвером блочного устройства, который реализует виртуальные диски. Он отделяет дисковое оборудование от интерфейса блочного устройства и работает с данными таким образом, что в результате повышается гибкость, производительность и надёжность по сравнению с традиционным взглядом на дисковое хранилище как на кусок дискового пространства. &man.vinum.8; реализует модели RAID-0, RAID-1 и RAID-5, как по отдельности, так и в комбинациях. Обратитесь к для получения более полной информации о &man.vinum.8;. Аппаратный RAID RAID Оборудование FreeBSD поддерживает также целый ряд аппаратных контроллеров RAID. Эти устройства самостоятельно управляют RAID-подсистемой, без необходимости иметь специфичное для FreeBSD программное обеспечения управления массивом. При помощи встроенной в адаптер BIOS, он сам управляет большинством дисковых операций. Далее следует краткое описание установки при помощи контроллера Promise IDE RAID. После установки адаптера и запуска системы, выдаётся запрос на ввод. Следуйте указаниям для входа в настройку адаптера. Отсюда вы можете объединить все подключенные диски. После этого во FreeBSD диск(и) будут выглядеть как один диск. Аналогично могут быть настроены и другие уровни RAID. Перестроение массивов ATA RAID1 FreeBSD позволяет вам выполнять горячую замену вышедшего из строя диска. При этом требуется, чтобы вы заметили это до перезагрузки. Вероятно, в файле /var/log/messages или в выдаче команды &man.dmesg.8; вы увидите примерно следующее: ad6 on monster1 suffered a hard error. ad6: READ command timeout tag=0 serv=0 - resetting ad6: trying fallback to PIO mode ata3: resetting devices .. done ad6: hard error reading fsbn 1116119 of 0-7 (ad6 bn 1116119; cn 1107 tn 4 sn 11)\\ status=59 error=40 ar0: WARNING - mirror lost При помощи &man.atacontrol.8; получите дополнительную информацию: &prompt.root; atacontrol list ATA channel 0: Master: no device present Slave: acd0 <HL-DT-ST CD-ROM GCR-8520B/1.00> ATA/ATAPI rev 0 ATA channel 1: Master: no device present Slave: no device present ATA channel 2: Master: ad4 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 Slave: no device present ATA channel 3: Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 Slave: no device present &prompt.root; atacontrol status ar0 ar0: ATA RAID1 subdisks: ad4 ad6 status: DEGRADED Сначала вам нужно отключить канал контроллера ATA, содержащий отказавший диск, чтобы его можно было без последствий извлечь: &prompt.root; atacontrol detach ata3 Замените диск. Повторно подключите канал дискового контроллера: &prompt.root; atacontrol attach ata3 Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 Slave: no device present Добавьте новый диск к массиву в качестве резервного: &prompt.root; atacontrol addspare ar0 ad6 Перестройте массив: &prompt.root; atacontrol rebuild ar0 Проверить состояние дел можно при помощи следующей команды: &prompt.root; dmesg | tail -10 [выдача удалена] ad6: removed from configuration ad6: deleted from ar0 disk1 ad6: inserted into ar0 disk1 as spare &prompt.root; atacontrol status ar0 ar0: ATA RAID1 subdisks: ad4 ad6 status: REBUILDING 0% completed Дождитесь завершения этой операции. Marc Fonvieille Предоставил USB устройства хранения USB диски Множество современных устройств хранения используют Universal Serial Bus (USB): жесткие диски, брелоки USB, CD-R приводы, и т.д. &os; предоставляет поддержку этих устройств. Настройка Драйвер &man.umass.4; предоставляет поддержку устройств хранения USB. Если вы используете GENERIC ядро, изменять что-либо в настройках не потребуется. Если вы используете настроенное ядро, убедитесь, что в файле настройки присутствуют следующие строки: device scbus device da device pass device uhci device ohci device usb device umass Для доступа к устройствам хранения USB драйвер &man.umass.4; использует подсистему SCSI, ваши устройства USB будут видны системе как SCSI устройства. В зависимости от чипсета USB на материнской плате, вам потребуется только один из параметров device uhci или device ohci. Однако, наличие обоих этих параметров не помешает. Не забудьте скомпилировать и установить новое ядро после добавления каких-либо строк. Если ваше USB устройство это пишущий привод CD-R или DVD, необходимо добавить в ядро SCSI CD-ROM драйвер, &man.cd.4;, следующей строкой: device cd Поскольку устройство записи видно как SCSI диск, драйвер &man.atapicam.4; не должен использоваться в файле настройки. Поддержка USB 2.0 контроллеров предоставляется в &os; 5.X, и в ветви 4.X с &os; 4.10-RELEASE. Добавьте: device ehci в файл настройки ядра для поддержки USB 2.0. Обратите внимание, что драйверы &man.uhci.4; и &man.ohci.4; все еще нужны, если необходима поддержка USB 1.X. В &os; 4.X, необходимо запустить USB даемона (&man.usbd.8;), чтобы увидеть некоторые USB устройства. Для этого добавьте usbd_enable="YES" в файл /etc/rc.conf и перезагрузите компьютер. Тестирование конфигурации Конфигурация готова к тестированию, подключите устройство USB, и в буфере системных сообщений (&man.dmesg.8;), диск должен отобразиться примерно так: umass0: USB Solid state disk, rev 1.10/1.00, addr 2 GEOM: create disk da0 dp=0xc2d74850 da0 at umass-sim0 bus 0 target 0 lun 0 da0: <Generic Traveling Disk 1.11> Removable Direct Access SCSI-2 device da0: 1.000MB/s transfers da0: 126MB (258048 512 byte sectors: 64H 32S/T 126C) Конечно, производитель, имя устройства (da0) и другие детали могут отличаться в зависимости от конфигурации. Поскольку устройство USB видится как SCSI, команда camcontrol может быть использована для вывода списка устройств хранения USB, подключенных к системе: &prompt.root; camcontrol devlist <Generic Traveling Disk 1.11> at scbus0 target 0 lun 0 (da0,pass0) Если на диске есть файловая система, у вас должна быть возможность смонтировать ее. поможет вам создать и отформатировать разделы на диске USB если потребуется. Если вы отключите устройство (диск должен быть сначала размонтирован), вы должны увидеть в буфере системных сообщений что-то подобное: umass0: at uhub0 port 1 (addr 2) disconnected (da0:umass-sim0:0:0:0): lost device (da0:umass-sim0:0:0:0): removing device entry GEOM: destroy disk da0 dp=0xc2d74850 umass0: detached Дополнительная информация Помимо разделов Добавление дисков и Монтирование и размонтирование файловых систем, также может быть полезно чтение различных страниц справочника: &man.umass.4;, &man.camcontrol.8;, и &man.usbdevs.8;. Mike Meyer Текст предоставил Запись и использование оптических носителей (CD) CDROM создание Введение Компакт-диски (CD) имеют несколько особенностей, отличающих их от обычных дисков. Во-первых, на них невозможно производить запись. Они спроектированы с расчетом на то, что их можно читать последовательно без задержек на перемещение головки между дорожками. К тому же их гораздо проще переносить от системы к системе, чем носители близкого объема. У CD имеются дорожки, но они представляют собой последовательность данных, читаемую последовательно, и не являются физической характеристикой диска. Для записи CD во FreeBSD вы готовите файлы данных, которые будут формировать дорожки на компакт-диске, а затем записываете дорожки на CD. ISO 9660 файловые системы ISO 9660 Файловая система ISO 9660 была разработана с учетом этих отличий, К сожалению, она унаследовала ограничения файловых систем, которые были тогда. К счастью, она дает механизм расширений, которые позволяют правильно записанным дискам обходить эти ограничения и при этом продолжать работать с системами, которые не поддерживают эти расширения. sysutils/cdrtools Для создания файла данных, содержащего файловую систему ISO 9660, используется программа &man.mkisofs.8;, которая включена в порт sysutils/cdrtools. Она имеет опции, поддерживающие различные расширения, и описана ниже. устройство записи CD ATAPI Какой инструмент использовать для записи CD, зависит от того, является ли ваше устройство для записи CD устройством ATAPI или каким-либо другим. С устройствами для записи стандарта ATAPI используется программа burncd, которая является частью комплекта поставки системы. С устройствами SCSI и USB нужно использовать cdrecord из порта sysutils/cdrtools. burncd поддерживает не все устройства. Для определения того, поддерживается ли устройство, посмотрите список поддерживаемых приводов CD-R/RW. устройство записи CD драйвер ATAPI/CAM Если вы используете &os; 5.X, &os; 4.8-RELEASE или более новые версии, то при работе с ATAPI-оборудованием через модуль ATAPI/CAM можно использовать утилиту cdrecord и другие инструменты для SCSI-приводов. Если для записи CD вам нужна программа с графическим интерфейсом пользователя, взгляните на X-CD-Roast или K3b. Они доступны в виде пакетов или из портов sysutils/xcdroast и sysutils/k3b. Программам X-CD-Roast и K3b для работы с оборудованием ATAPI требуется модуль ATAPI/CAM. mkisofs Программа &man.mkisofs.8;, поставляемая с портом sysutils/cdrtools создаёт файловую систему ISO 9660, которая является образом дерева каталогов в пространстве имён файловой системы &unix;. В самом простом случае она используется так: &prompt.root; mkisofs -o imagefile.iso /path/to/tree файловые системы ISO 9660 Эта команда создаст файл imagefile.iso, содержащий файловую систему ISO 9660, которая является копией дерева каталогов /path/to/tree. Во время работы она будет преобразовывать имена файлов в имена, которые удовлетворяют ограничениям файловой системы ISO 9660, и исключит файлы, которые носят имена, неподходящие для файловой системы ISO. файловые системы HFS файловые системы Joliet Для того, чтобы обойти эти ограничения, имеется несколько опций. В частности, включает использование расширений Rock Ridge, распространенных в &unix;-системах, с будут применены расширения Joliet, используемые в системах от Microsoft, а может использоваться для создания файловых систем HFS, используемых в &macos;. Для CD, которые будут использоваться только с системами FreeBSD, может использоваться опция , отменяющая все ограничения на имена файлов. При использовании с опцией генерируется образ файловой системы, идентичный начальному дереву FreeBSD, хотя при этом стандарт ISO 9660 может нарушаться в нескольких местах. CDROM создание загрузочного Последней часто используемой опцией является . Она используется для указания загрузочного образа для использования при создании загрузочного CD в стандарте El Torito. Этой опции указывается аргумент, который является маршрутом к загрузочному образу из корня дерева, записываемого на CD. По умолчанию, &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; для получения более подробной информации. burncd CDROM запись Если ваше устройство для записи CD соответствует стандарту ATAPI, то для записи ISO-образа на компакт-диск вы можете воспользоваться командой burncd. burncd входит в базовый комплект операционной системы и установлена как /usr/sbin/burncd. Использовать её очень просто, так как параметров у ней немного: &prompt.root; burncd -f cddevice data imagefile.iso fixate По этой команде файл imagefile.iso будет скопирован на cddevice. По умолчанию используется устройство /dev/acd0 (или /dev/acd0c в &os; 4.X). Для получения информации о параметрах, задающих скорость записи, выброс диска после записи и запись звуковых данных, обратитесь к &man.burncd.8;. cdrecord Если ваше устройство для записи CD не соответствует стандарту ATAPI, то для записи компакт-дисков вам нужно пользоваться программой cdrecord. cdrecord не входит в комплект поставки системы; вы должны установить её из порта sysutils/cdrtools или из соответствующего пакета. Изменения в системе могут приводить к тому, что откомпилированные версии этой программы работать не будут, или приводить к порче дисков. Поэтому вы должны при обновлении системы либо обновить порт, либо, если вы следуете -STABLE, обновить порт при появлении его новой версии. Хотя cdrecord имеет много опций, в основном использовать её ещё проще, чем burncd. Запись образа ISO 9660 делается такой командой: &prompt.root; cdrecord dev=device imagefile.iso Тонким моментом при использовании cdrecord является определение правильного устройства . Чтобы задать параметр правильно, воспользуйтесь флагом команды cdrecord, в результате чего может получиться примерно такой результат: CDROM запись &prompt.root; cdrecord -scanbus Cdrecord 1.9 (i386-unknown-freebsd4.2) Copyright (C) 1995-2000 Jörg Schilling Using libscg version 'schily-0.1' scsibus0: 0,0,0 0) 'SEAGATE ' 'ST39236LW ' '0004' Disk 0,1,0 1) 'SEAGATE ' 'ST39173W ' '5958' Disk 0,2,0 2) * 0,3,0 3) 'iomega ' 'jaz 1GB ' 'J.86' Removable Disk 0,4,0 4) 'NEC ' 'CD-ROM DRIVE:466' '1.26' Removable CD-ROM 0,5,0 5) * 0,6,0 6) * 0,7,0 7) * scsibus1: 1,0,0 100) * 1,1,0 101) * 1,2,0 102) * 1,3,0 103) * 1,4,0 104) * 1,5,0 105) 'YAMAHA ' 'CRW4260 ' '1.0q' Removable CD-ROM 1,6,0 106) 'ARTEC ' 'AM12S ' '1.06' Scanner 1,7,0 107) * Здесь приведены соответствующие значения параметров для имеющихся устройств. Найдите здесь ваше устройство для записи CD, а в качестве параметров для задавайте три числа через запятые. В нашем случае CRW-устройству соответствуют числа 1,5,0, так что правильным параметром будет . Имеется более простой способ задать эти значения; обратитесь к справочной информации о &man.cdrecord.1; для выяснения подробностей. Там же находится информация о записи звуковых дорожек, управлении скоростью и другим вещам. Копирование аудио CD Вы можете копировать музыкальные CD, извлекая данные аудио с CD в набор файлов, а затем записывая эти файлы на чистый CD. Процесс несколько различен в случаях использования устройств ATAPI и SCSI. Устройства SCSI Используйте cdda2wav для извлечения данных аудио. &prompt.user; cdda2wav -v255 -D2,0 -B -Owav Воспользуйтесь cdrecord для записи файлов .wav. &prompt.user; cdrecord -v dev=2,0 -dao -useinfo *.wav Значение, соответствующее 2,0, должно быть установлено правильно, как это описано в . Устройства ATAPI Драйвер устройств ATAPI CD делает каждую дорожку доступной как /dev/acddtnn, где d является номером привода, а nn соответствует номеру дорожки, который записывается двумя десятичными цифрами с нулём в начале, если это нужно. Таким образом, первая дорожка на первом диске будет носить имя /dev/acd0t01, вторая будет именоваться /dev/acd0t02, третья будет носить имя /dev/acd0t03 и так далее. Удостоверьтесь, что соответствующий файл имеется в каталоге /dev. При его отсутствии следует принудительно перечитать оглавление диска: &prompt.root; dd if=/dev/acd0 of=/dev/null count=1 В версиях &os; 4.X номера треков не предваряются нулем. В случае отсутствия нужных файлов устройств, создайте их при помощи команды MAKEDEV: &prompt.root; cd /dev &prompt.root; sh MAKEDEV acd0t99 Извлеките каждую дорожку при помощи команды &man.dd.1;. При извлечении файлов вы должны также использовать специфическое значение для размера блока. &prompt.root; dd if=/dev/acd0t01 of=track1.cdr bs=2352 &prompt.root; dd if=/dev/acd0t02 of=track2.cdr bs=2352 ... Запишите извлечённые файлы на диск при помощи утилиты burncd. Вы должны указать, что это файлы с аудио, и что burncd должна зафиксировать диск по окончании работы. &prompt.root; burncd -f /dev/acd0 audio track1.cdr track2.cdr ... fixate Копирование компакт-дисков с данными Вы можете скопировать CD с данными в файл образа, который функционально эквивалентен файлу образа, созданному командой &man.mkisofs.8;, и вы можете использовать его для копирования любого CD с данными. В приводимом здесь примере предполагается, что ваш привод CDROM называется acd0. Подставьте название вашего привода CDROM. В &os; 4.X к имени устройства должен быть добавлен символ c для указания на то, что берётся весь раздел, а в случае CDROM, весь диск. &prompt.root; dd if=/dev/acd0 of=file.iso bs=2048 Теперь, когда вы имеете образ, вы можете записать его на CD так, как это описано выше. Использование компакт-диски с данными Теперь, после того, как вы создали стандартный CDROM с данными, вы, наверное, захотите смонтировать его и считать с него данные. По умолчанию &man.mount.8; предполагает, что файловая система имеет тип ufs. Если вы попытаетесь выполнить что-то вроде: &prompt.root; mount /dev/cd0 /mnt вы получите сообщение Incorrect super block, и диск не смонтируется. CDROM не является файловой системой UFS, поэтому попытки смонтировать его таким образом будут терпеть неудачу. Вам просто нужно указать команде &man.mount.8;, что файловая система имеет тип ISO9660, и всё должно заработать. Сделайте это, задав параметр при вызове &man.mount.8;. К примеру, если вы хотите смонтировать устройство CDROM, /dev/cd0, в каталог /mnt, вы должны выполнить: &prompt.root; mount -t cd9660 /dev/cd0 /mnt Заметьте, что имя вашего устройства (/dev/cd0 в этом примере) может быть другим, в зависимости от интерфейса, используемого в CDROM. Кроме того, параметр всего лишь задаёт выполнение утилиты &man.mount.cd9660.8;. Пример выше может быть упрощён до: &prompt.root; mount_cd9660 /dev/cd0c /mnt Таким способом, вообще говоря, вы можете использовать компакт-диски любого производителя. Диски с некоторыми расширениями ISO 9660 могут, однако, работать со странностями. К примеру диски Joliet хранят все имена файлов в виде последовательностей двухбайтовых символов Unicode. Ядро FreeBSD (пока ещё) не может работать с Unicode, поэтому не английские символы выводятся в виде знаков вопроса. (Если в работаете с FreeBSD 4.3 или более поздней версией, то в драйвере CD9660 имеется механизм для динамической загрузки соответствующей таблицы преобразования Unicode. Модули для некоторых распространённых кодировок могут быть получены из порта sysutils/cd9660_unicode.) Время от времени вы можете получать сообщения Device not configured при попытке смонтировать CDROM. Это обычно означает, что привод CDROM полагает, что в нём нет диска, или что привод не виден на шине. Приводу CDROM может понадобиться несколько секунд, чтобы понять, что он был закрыт, так что будьте терпеливы. Иногда SCSI CDROM может потеряться из-за того, что у него не было достаточно времени, чтобы ответить на сброс шины. Если у вас имеется SCSI CDROM, то, пожалуйста, добавьте следующий параметр в конфигурацию вашего ядра и перестройте его. options SCSI_DELAY=15000 Это укажет вашей шине SCSI выдерживать 15-секундную паузу во время загрузки, чтобы дать вашему приводу CDROM шанс ответить на сброс шины. Запись необработанных данных на компакт-диски Вы можете предпочесть запись файла непосредственно на CD без создания файловой системы ISO 9660. Некоторые поступают так при создании резервных копий. Это выполняется гораздо быстрее. чем запись стандартного компакт-диска: &prompt.root; burncd -f /dev/acd1 -s 12 data archive.tar.gz fixate Для извлечения данных, записанных так на компакт-диск, вы должны считывать данные из файла непосредственного доступа к устройству: &prompt.root; tar xzvf /dev/acd1 Вы не можете монтировать этот диск как обычный CDROM. Такой компакт-диск не может быть прочитан ни в какой другой операционной системе, кроме FreeBSD. Если вы хотите монтировать CD или обменяться данными с другой операционной системой, то вы должны использовать &man.mkisofs.8; так, как это было описано выше. Marc Fonvieille Предоставил устройство записи CD драйвер ATAPI/CAM Использование драйвера ATAPI/CAM Этот драйвер позволяет работать с ATAPI-устройствами (приводы CD-ROM, CD-RW, DVD и так далее) через подсистему SCSI, таким образом расширяя использование таких приложений, как sysutils/cdrdao или &man.cdrecord.1;. Для использования этого драйвера вам необходимо добавить в файл конфигурации ядра следующую строку: device atapicam Кроме того, в файле конфигурации ядра должны быть следующие строки: device ata device scbus device cd device pass которые уже должны там присутствовать. После этого перестройте и установите ваше новое ядро, выполните перезагрузку машины. В процессе загрузки ваш пишущий привод должен появиться примерно следующим образом: acd0: CD-RW <MATSHITA CD-RW/DVD-ROM UJDA740> at ata1-master PIO4 cd0 at ata1 bus 0 target 0 lun 0 cd0: <MATSHITA CDRW/DVD UJDA740 1.00> Removable CD-ROM SCSI-0 device cd0: 16.000MB/s transfers cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed Теперь с ним можно работать через устройство /dev/cd0, например, чтобы смонтировать CD-ROM в каталог /mnt, просто наберите следующую команду: &prompt.root; mount -t cd9660 /dev/cd0 /mnt Для получения SCSI-адреса пишущего привода, вы можете, работая как пользователь root, запустить такую команду: &prompt.root; camcontrol devlist <MATSHITA CDRW/DVD UJDA740 1.00> at scbus1 target 0 lun 0 (pass0,cd0) Таким образом, 1,0,0 будет SCSI-адресом для использования с &man.cdrecord.1; и другими приложениями для работы со SCSI. Для получения дополнительной информации об ATAPI/CAM и системе SCSI, обратитесь к страницам справочной системы по &man.atapicam.4; и &man.cam.4;. Marc Fonvieille Предоставил Andy Polyakov Дополнения предоставил Создание и использование оптических носителей (DVD) DVD запись Введение DVD это следующее после CD поколение оптических носителей. DVD может вмещать больше данных чем любой CD и является современным стандартом распространения видео. Для записываемых DVD существует пять физических форматов записи: DVD-R: Был первым форматом записываемых DVD. Стандарт DVD-R был создан DVD Forum. Это формат для однократной записи. DVD-RW: Это перезаписываемая версия стандарта DVD-R. Носители DVD-RW могут быть перезаписаны около 1000 раз. DVD-RAM: Это также перезаписываемый формат, поддерживаемый DVD Forum. DVD-RAM может быть виден как съемный жесткий диск. Однако, этот носитель не совместим с большинством приводов - DVD-ROM и проигрывателями DVD-Video; лишь несколько - пишущих DVD поддерживают формат DVD-RAM. + DVD-ROM и проигрывателями DVD-Video; лишь некоторые + пишущие DVD поддерживают формат DVD-RAM. Более подробно + о работе с DVD-RAM можно прочитать в разделе + . DVD+RW: Это перезаписываемый формат, созданный DVD+RW Alliance. Носитель DVD+RW может быть перезаписан около 1000 раз. DVD+R: Этот формат — однократно записываемая версия формата DVD+RW. Однослойный записываемый DVD может хранить до 4,700,000,000 байт, что равно 4.38 Гбайт, или 4485 Мбайт (1 килобайт это 1024 байт). Необходимо различать физический носитель и приложение. Например, DVD-Video это определенная файловая раскладка, которая может быть помещена на записываемый DVD любого физического формата: DVD-R, DVD+R, DVD-RW и т.д. Перед выбором типа носителя вы должны убедиться, что и устройство записи и DVD-Video проигрыватель (отдельный или DVD-ROM привод компьютера) совместимы с данным носителем. Настройка Для записи DVD будет использоваться программа &man.growisofs.1;. Эта команда входит в набор утилит dvd+rw-tools (sysutils/dvd+rw-tools), который поддерживает все типы носителей DVD. Эти утилиты используют подсистему SCSI для доступа к устройствам, следовательно необходимо добавить в ядро поддержку ATAPI/CAM. Если пишущий привод использует USB интерфейс, это добавление бесполезно и необходимо прочесть более подробную информацию по настройке устройств USB в Вам также потребуется включить DMA доступ для устройств ATAPI, это можно сделать добавив в /boot/loader.conf следующую строку: hw.ata.atapi_dma="1" Перед использованием dvd+rw-tools вы должны свериться со списком совместимого оборудования dvd+rw-tools с информацией по устройствам для записи DVD. Если вам нужен графический интерфейс пользователя, взгляните на K3b (sysutils/k3b), который предоставляет дружественный пользователю интерфейс к &man.growisofs.1; и многим другим программам записи. Запись DVD с данными Команда &man.growisofs.1; является оболочкой для mkisofs, она вызовет &man.mkisofs.8; для создания файловой системы и запишет DVD. Это означает, что вам не потребуется создавать образ с данными перед началом процесса записи. Для записи данных из каталога /path/to/data на DVD+R или DVD-R, используйте следующую команду: &prompt.root; growisofs -dvd-compat -Z /dev/cd0 -J -R /path/to/data Параметры передаются &man.mkisofs.8; для создания файловой системы (в данном случае: файловая система ISO 9660 с расширениями Joliet и Rock Ridge), обратитесь к странице справочника &man.mkisofs.8; за более подробной информацией. Параметр используется для первой сессии записи в любом случае: для одной или нескольких сессий. Устройство DVD, /dev/cd0, должно быть изменено в соответствии с имеющимися настройками. Параметр закроет диск и дозапись станет невозможна. Это должно улучшить совместимость с приводами DVD-ROM. Возможна также запись предварительного (pre-mastered) образа, например, для записи imagefile.iso запустим: &prompt.root; growisofs -dvd-compat -Z /dev/cd0=imagefile.iso Скорость записи должна быть определена и автоматически установлена в соответствии с носителем и приводом. Если вы хотите явно указать скорость записи, используйте параметр . За дальнейшей информацией обратитесь к странице справочника &man.growisofs.1;. DVD DVD-Video Запись DVD-Video DVD-Video это особая файловая система, базирующаяся на ISO 9660 и спецификациях micro-UDF (M-UDF). DVD-Video также представляет определенную иерархию структуры данных, поэтому для создания DVD потребуется особая программа, такая как multimedia/dvdauthor. Если у вас уже есть образ файловой системы DVD-Video, просто запишите его как любой другой образ, примеры находятся в предыдущем разделе. Если вы создали DVD и результат находится в каталоге /path/to/video, для записи DVD-Video должна быть использована следующая команда: &prompt.root; growisofs -Z /dev/cd0 -dvd-video /path/to/video Параметр будет передан &man.mkisofs.8; и укажет создать файловую систему DVD-Video. Помимо этого, параметр подразумевает параметр &man.growisofs.1; . DVD DVD+RW Использование DVD+RW В отличие от CD-RW, новый DVD+RW необходимо отформатировать перед первым использованием. Программа &man.growisofs.1; позаботится об этом сама при необходимости, и это рекомендованный способ. Тем не менее, для форматирования DVD+RW вы можете использовать команду dvd+rw-format: &prompt.root; dvd+rw-format /dev/cd0 Эту операцию необходимо выполнить лишь однажды, помните, что только новые носители DVD+RW необходимо форматировать. Затем запишите DVD+RW тем способом, который описан в предыдущем разделе. Если вы хотите записать новые данные (полностью новую файловую систему, а не дописать данные) на DVD+RW, его не нужно очищать, просто запишите поверх предыдущей записи (создав новую начальную сессию) примерно так : &prompt.root; growisofs -Z /dev/cd0 -J -R /path/to/newdata Формат DVD+RW делает возможным легко дописать данные к предыдущей записи. Операция состоит в присоединении предыдущей сессии к существующей, это не мультисессионная запись, &man.growisofs.1; расширит (grow) файловую систему ISO 9660, существующую на носителе. Например, для дозаписи данных к предыдущей сессии на DVD+RW, используется следующая команда: &prompt.root; growisofs -M /dev/cd0 -J -R /path/to/nextdata При последующих записях &man.mkisofs.8; необходимо передавать те же параметры, что и при первой записи. Вы можете использовать параметр для улучшения совместимости с приводами DVD-ROM. В случае DVD+RW это не помешает добавлению данных. Если по какой-либо причине вам потребуется очистить носитель, используйте следующую команду: &prompt.root; growisofs -Z /dev/cd0=/dev/zero DVD DVD-RW Использование DVD-RW Существует два формата дисков DVD-RW: последовательно дополняемый и с ограниченной перезаписью. По умолчанию формат дисков DVD-RW последовательный. Новый DVD-RW может быть записан непосредственно без необходимости форматирования, однако DVD-RW с данными в последовательном формате необходимо очистить перед созданием новой начальной сессии. Для очистки DVD-RW в последовательном формате, запустите: &prompt.root; dvd+rw-format -blank=full /dev/cd0 Полная очистка () займет около одного часа на скорости 1x. Быструю очистку можно выполнить с параметром , если DVD-RW будет записан в режиме Disk-At-Once (DAO). Для записи DVD-RW в режиме DAO, используйте команду: &prompt.root; growisofs -use-the-force-luke=dao -Z /dev/cd0=imagefile.iso Параметр не должен потребоваться, поскольку &man.growisofs.1; попытается определить был ли носитель быстро очищен и включить DAO запись. Фактически, лучше использовать режим с ограниченной перезаписью с любым DVD-RW, этот формат более гибкий, чем формат по умолчанию с последовательной записью. Для записи данных на последовательный DVD-RW, используйте ту же команду, что и для других форматов DVD: &prompt.root; growisofs -Z /dev/cd0 -J -R /path/to/data Если вы хотите добавить данные к предыдущей записи, используйте параметр &man.growisofs.1; . Однако при добавлении данных на DVD-RW в последовательном режиме, на диске будет создана новая сессия и в результате получится мультисессионный диск. В формате DVD-RW с ограниченной перезаписью не требуется очищать носитель перед созданием новой начальной сессии, вам всего лишь нужно переписать диск с параметром , подобно DVD+RW. Возможно также увеличение существующей файловой системы ISO 9660, записанной на диск тем же способом, как для DVD+RW с параметром . В результате получится односессионный DVD. Для перевода DVD-RW в формат с ограниченной перезаписью, необходимо использовать следующую команду: &prompt.root; dvd+rw-format /dev/cd0 Для перевода обратно в последовательный формат, выполните: &prompt.root; dvd+rw-format -blank=full /dev/cd0 Мультисессия Лишь несколько DVD-ROM и проигрывателей поддерживают мультисессионные DVD, в основном они в лучшем случае прочтут только первую сессию. DVD+R, DVD-R и DVD-RW в последовательном формате могут работать с несколькими сессиями, и это не относится к форматам DVD+RW и DVD-RW в формате ограниченной перезаписи. Использование следующей команды после первой (не закрытой) сессии для DVD+R, DVD-R, или DVD-RW в последовательном формате, добавит на диск новую сессию: &prompt.root; growisofs -M /dev/cd0 -J -R /path/to/nextdata Использование этой командной строки с DVD+RW или DVD-RW в режиме ограниченной перезаписи добавит данные, объединив новую сессию с предыдущей. В результате получится односессионный диск. Такой способ используется для добавления данных после первой записи на эти носители. Некоторый объем носителя используется между сессиями для завершения и начала сессии. Следовательно, для оптимизации объема хранения сессии должны быть большими. Количество сессий ограничено 154 для DVD+R, около 2000 для DVD-R и 127 для DVD+R Double Layer. Дополнительная информация Для получения дополнительной информации о DVD, можно запустить команду dvd+rw-mediainfo /dev/cd0, диск должен находиться в приводе. Дополнительная информация о dvd+rw-tools может быть найдена на странице справочника &man.growisofs.1;, на Web-сайте dvd+rw-tools и в архивах списка рассылки cdwrite. Вывод dvd+rw-mediainfo при записи или проблемный носитель необходимы для любого сообщения о проблеме. Без этого вывода будет совершенно невозможно помочь вам. + + + Использование DVD-RAM + + DVD + DVD-RAM + + + + Конфигурация + + Записывающие устройства DVD-RAM поставляются с интерфейсами + SCSI и ATAPI. В последнем случае вы должны убедиться, что для + них включен режим DMA, добавив в файл + /boot/loader.conf строку + + hw.ata.atapi_dma="1" + + + + Подготовка носителя + + Как указывалось ранее, DVD-RAM представляется съемным жестким + диском. Как и другие дисковые устройства, DVD-RAM должет быть + подготовлен к первому использованию. В нашем примере + мы займём все пространство диска одной файловой системой + UFS2. + + Убедившись, что носитель находится в приводе, выполните от имени + пользователя root команды + + &prompt.root; dd if=/dev/zero of=/dev/acd0 count=2 +&prompt.root; disklabel -Bw acd0 +&prompt.root; newfs /dev/acd0 + + Имя устройства DVD device, acd0, должно + соответствовать вашей конфигурации. + + + + Использование носителя + + После выполнения указанных выше команд, DVD-RAM может быть + смонтирован как обычный жесткий диск: + + &prompt.root; mount /dev/acd0 /mnt + + После этого вы можете читать и писать на DVD-RAM. + Julio Merino Первоначальный текст предоставил Martin Karlsson Переписал Дискеты Хранение данных на дискетах иногда бывает полезным, например, когда нет других съёмных носителей или когда необходимо перенести небольшой объём данных на другой компьютер. В этом разделе будет описано, как использовать дискеты во FreeBSD. В основном речь пойдёт о форматировании и использовании дискет DOS размером 3.5 дюйма, однако общие принципы применимы и для других форматов гибких дисков. Форматирование дискет Устройство Доступ к гибким дискам, как, впрочем, и к остальным устройствам, осуществляется через соответствующие файлы в каталога /dev. Чтобы обратиться к дискете при использовании релизов 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 Гбайт. Стандарт DDS-3 в настоящее время поддерживает ёмкости лент вплоть до 12 Гбайт (или 24 Гбайт сжатой информации). В накопителях 4мм, как и в приводах 8мм, используется технология спирального сканирования. Все плюсы и минусы этой технологии относятся как к 4мм, так и 8мм приводам. Не следует использовать ленты после того, как они были подвергнуты 2000 проходов, или были использованы для создания 100 полных копий. 8мм (Exabyte) носители на магнитной ленте магнитные ленты Exabyte (8мм) Ленты шириной 8мм являются самым распространённым типом для ленточных SCSI-накопителей; они же являются наиболее удачным выбором при выборе типа носителей для обмена лентами. Наверное, каждый сервер имеет привод Exabyte шириной 8мм и объёмом 2 Гбайт. Эти приводы удобны, они работают надёжно и тихо. Картриджи дешевы и малы по размеру (4.8 x 3.3 x 0.6 дюймов; 122 x 84 x 15 мм). Одним минусом лент шириной 8мм является сравнительно малое время службы головок и лент из-за высокой скорости движения ленты вдоль головок. Скорость передачи данных варьируется от ~250 kB/s до ~500 kB/s. Объём хранимых данных начинается с 300 Мбайт и может достигать 7 Гбайт. Аппаратное сжатие, имеющееся практически на всех таких приводах, увеличивает емкость примерно вдвое. Эти приводы существуют как в виде отдельных модулей, так и в виде многоприводных ленточных библиотек с 6 приводами и 120 лентами в одном отсеке. Ленты сменяются автоматически модулем. Емкости библиотек достигают величин, превышающих 840 Гбайт. Модель Exabyte Mammoth поддерживает ёмкость ленты в 12 Гбайт (24 Гбайт со сжатием) и стоит примерно вдвое больше, чем обычный ленточный накопитель. Данные на ленту записываются по технологии спирального сканирования, головки позиционируются под углом к носителю (примерно в 6 градусов). Лента оборачивается на 270 градусов вокруг шпульки, которая держит головки. Во время скольжения ленты вокруг шпульки последняя вращается. В результате достигается высокая плотность записи данных с очень близко лежащими дорожками, расположенными под наклоном по всей ленте. QIC носители на магнитной ленте QIC-150 Ленты и накопители формата QIC-150, наверное, являются наиболее распространенным типом носителей. Приводы лент формата QIC являются самыми дешёвыми серьёзными накопителями для резервного копирования. Минусом является стоимость носителей. Ленты формата QIC по сравнению с лентами шириной 8мм или 4мм являются дорогими, превосходя их по стоимости хранения одного гигабайта в пять раз. Однако если вам будут достаточно половины ленты, QIC может оказаться правильным выбором. QIC является самым распространенным типом привода. Каждый сайт имеет привод QIC какой-либо емкости. QIC имеет большое количество плотностей на физически похожих (иногда даже идентичных) лентах. Приводы QIC работают вовсе не тихо. Эти накопители громко осуществляют поиск перед тем, как начать запись данных и достаточно шумны в процессе чтения, записи или поиска. Ленты QIC имеют размеры (6 x 4 x 0.7 дюймов; 152 x 102 x 17 мм). Скорость обмена данными лежит в границах от ~150 kB/s до ~500 kB/s. Ёмкость накопителей варьируется от 40 Мбайт до 15 Гбайт. Аппаратное сжатие присутствует во многих современных накопителях QIC. Приводы QIC устанавливаются менее часто; они вытесняются накопителями DAT. На ленту данные записываются в виде дорожек. Дорожки располагаются в длину вдоль всей ленты. Количество дорожек, и, в свою очередь, их ширина, меняется вместе с емкостью ленты. Большинство, если не все современные накопители обеспечивают обратную совместимость по крайней мере для чтения (однако зачастую и для режима записи). Формат QIC имеет хорошую репутацию в области надежности хранения данных (механика устроена проще и более надежна, чем в случае накопителей, построенных по технологии спирального сканирования). Ленты не следует больше использовать после создания 5,000 резервных копий. DLT носители на магнитной ленте DLT Формат DLT обладает самой высокой скоростью передачи данных среди всех перечисленных здесь накопителей. Лента шириной 1/2" (12.5мм) помещена в один картридж с катушкой (4 x 4 x 1 дюймов; 100 x 100 x 25 мм). Вдоль одной из сторон картриджа расположена сдвигающаяся крышечка. Механизм накопителя открывает эту крышку, чтобы вытащить конец ленты. На этом конце имеется овальное отверстие, которое используется для захвата ленты. Принимающая катушка размещена внутри накопителя. Все другие типы картриджей, перечисленные здесь (за исключением 9-дорожечных лент), имеют как подающий, так и принимающий барабаны внутри самого картриджа. Скорость передачи данных равна примерно 1.5 MB/s, что в три раза больше скорости передачи данных для накопителей 4мм, 8мм или QIC. Ёмкость картриджей варьируется от 10 Гбайт до 20 Гбайт для одного накопителя. Приводы могут компоноваться как многоленточные роботизированные, так и многоленточные, многоприводные библиотеки лент, вмещающие от 5 до 900 лент и от 1 до 20 приводов, что даёт ёмкость хранилища от 50 Гбайт до 9 Тбайт. Формат DLT Type IV поддерживает емкость до 70 Гбайт со сжатием. Данные на ленту записываются в виде дорожек, параллельных направлению движения (точно также, как и для лент QIC). Одновременно записываются две дорожки. Срок жизни головок чтения/записи сравнительно велик; как только лента перестает двигаться, одновременно прекращается трение между головками и лентой. AIT носители на магнитной ленте AIT AIT - это новый формат фирмы Sony, который позволяет хранить до 50 Гбайт (со сжатием) информации на одной ленте. Ленты содержат микросхемы памяти, на которых размещается каталог содержимого ленты. Этот каталог может быть быстро считан накопителем для определения расположения файлов на ленте, вместо того, чтобы тратить несколько минут на поиск, как это происходит с другими форматами. Такое программное обеспечение, как SAMS:Alexandria, может управлять сорока или большим количеством ленточных библиотек AIT, связываясь непосредственно с памятью лент для вывода их содержимого, определения того, какие файлы были скопированы на какую ленту, выбора нужной ленты, её загрузки и восстановления данных с ленты. Библиотеки с такими функциями стоят в районе $20,000, выводя их из ниши любительского рынка. Использование новой ленты первый раз Если вы попытаетесь прочитать или записать новую, абсолютно чистую ленту, в первый раз, то вам это не удастся. Выводимые на консоль сообщения будут выглядеть примерно так: sa0(ncr1:4:0): NOT READY asc:4,1 sa0(ncr1:4:0): Logical unit is in process of becoming ready На ленте отсутствует идентификационный блок (блок номер 0). Со времен принятия стандарта QIC-525 все накопители формата QIC записывают на ленту идентификационный блок (Identifier Block). Здесь имеется два решения: По команде mt fsf 1 ленточный накопитель записывает идентификационный блок на ленту. Воспользуйтесь кнопкой на передней панели для выброса ленты. Вставьте ленту повторно и по команде dump сбросьте данные на ленту. Программа dump выдаст DUMP: End of tape detected, а на консоли будет выведено: HARDWARE FAILURE info:280 asc:80,96. перемотайте ленту такой командой: mt rewind. Последующие операции с лентой будут успешными. Создание резервных копий на дискетах Можно ли использовать дискеты для создания резервных копий моих данных? дискеты с резервными копиями дискеты На самом деле дискеты не подходят для создания резервных копий, потому что: Носитель ненадёжен, особенно если речь идет о больших сроках хранения. Создание резервных копий и восстановление данных происходит очень медленно. Дискеты имеют весьма ограниченную емкость (дни, когда весь винчестер копировался на десяток или около того дискет, давно прошли). Несмотря на все это, если у вас нет другого способа сделать резервную копию ваших данных, то дискеты все же лучше, чем ничего. Если вы используете дискеты, то проверьте, что они должны быть хорошего качества. Дискеты, которые валялись по всему офису в течении нескольких лет, не подойдут. Идеально использовать новые от известного производителя. Итак, как же сделать резервную копию данных на дискетах? Самым лучшим методом создания резервной копии на дискете является использование утилиты &man.tar.1; с опцией (многотомные архивы), которая позволяет размещать архивы на нескольких дискетах. Для копирования всех файлов в текущем каталоге и подкаталогах выполните следующее (работая как пользователь root): &prompt.root; tar Mcvf /dev/fd0 * Когда первая дискета окажется полностью заполненной, программа &man.tar.1; выдаст запрос на следующий том (так как работа утилиты &man.tar.1; не зависит от носителя, она имеет дело с томами; здесь это означает дискету). Prepare volume #2 for /dev/fd0 and hit return: Это сообщение будет повторяться (со все увеличивающимся номером тома) до тех пор, пока все указанные файлы не будут заархивированы. Можно ли резервные копии подвергнуть компрессии? tar gzip сжатие К сожалению, &man.tar.1; при создании многотомных архивов не позволяет использовать опцию . Вы конечно же, можете скомпрессировать все файлы утилитой &man.gzip.1;, программой &man.gzip.1; скопировать их на дискеты, а затем распаковать файлы снова утилитой &man.gunzip.1;! Как восстановить данные из моих резервных копий? Для полного восстановления архива воспользуйтесь такой командой: &prompt.root; tar Mxvf /dev/fd0 Есть два подхода к восстановлению только нужных вам файлов. В первом вы можете начать с первой дискеты и выдать такую команду: &prompt.root; tar Mxvf /dev/fd0 filename Программа &man.tar.1; будет выдавать запрос на подачу последующих дискет до тех пор, пока не найдет требуемый файл. Как альтернатива, если вы знаете, на какой дискете расположен файл, то вы можете просто подать ее и дать ту же самую команду, что и выше. Заметьте, что если первый файл на дискете является продолжением предыдущего, то &man.tar.1; выдаст предупреждение о том, что не может его восстановить, хотя вы этого и не просили делать! Lowell Gilbert Первоначально написано Стратегии резервного копирования При разработке плана резервного копирования первым делом надо продумать методы защиты от следующих проблем: Отказ жесткого диска Случайное удаление файлов Повреждение содержимого файлов Полное уничтожение компьютера (например, при пожаре), при котором погибнут также резервные копии, физически находящиеся рядом. Вполне возможно, что для ваших нужд нет единой стратегии, наилучшим образом покрывающей все описанные проблемы; более того, скорее всего, ее и не может быть (разве что для персональных систем, где ценность данных очень низка). Вот несколько наиболее распространенных технологий, применяемых для резервного копирования: Архивация системы целиком с копированием на какой-либо надежный внешний носитель и размещение его вдалеке от основной системы. При этом вы защищены от всех перечисленных проблемы, однако этот метод требует много времени и неудобен в процессе восстановления. Вы можете хранить резервные копии рядом или даже смонтированными, однако все равно столкнетесь с неудобствами при восстановлении, в особенности для непривилегированных пользователей. Снэпшоты файловых систем. Помогают только от случайного удаления файлов, но как раз в этом случае очень полезны и эффективны. Полные копии файловых систем или дисков (например, периодический запуск программы rsync для машины целиком). Для защиты от отказа жестких дисков этот способ обычно несколько уступает RAID; для восстановления случайно удаленных файлов может быть сравним по удобству со снэпшотами UFS, в зависимости от вашей ситуации. RAID. Минимизирует или исключает вовсе простои при отказе жестких дисков. При этом средняя частота таких отказов увеличивается (поскольку количество дисков больше), но разбираться с ними становится много спокойнее. Проверка отпечатков файлов (fingerprints). Для этого весьма полезна утилита &man.mtree.8;. Не являясь собственно технологией резервного копирования, этот метод помогает выяснять, когда вам пока обращаться к резервным копиям. В особенности это важно для "оффлайновых" резервных копий. Довольно легко придумать и другие стратегии резервного копирования; многие из них будут композициями уже упомянутых. Наличие специальных требований, как правило, приводит к специализированным же технологиям (например, резервное копирование базы данных, как правило, требует использования методов, специфичных для соответствующей СУБД). Главным остается знание опасностей потери данных, от которых вы хотите себя оградить, и методов защиты от них. Основы технологии резервного копирования Тремя основными программами резервного копирования являются &man.dump.8;, &man.tar.1; и &man.cpio.1;. Dump и Restore программы резервного копирования резервное копирование / восстановление dump restore Для &unix; традиционными программами резервного копирования являются dump и restore. Они работают с приводом как с набором дисковых блоков, которые расположены ниже понятий файлов, связей и каталогов, создаваемых файловыми системами. Программа dump выполняет резервное копирование всей файловой системы, располагающейся на устройстве. Невозможно выполнить резервное копирование части файловой системы или дерева каталогов, которые располагаются более чем в одной файловой системе. Утилита dump не записывает на ленту файлы и каталоги, она записывает блоки данных, из которых строятся файлы и каталоги. Если вы используете программу dump для работы с корневым каталогом, при этом не будет выполняться резервное копирование /home, /usr и многих других каталогов, так как они обычно являются точками монтирования других файловых систем или символическими ссылками на эти файловые системы. В программе dump имеются некоторые неудобства, оставшиеся от её ранних дней в составе Version 6 операционной системы AT&T UNIX (примерно 1975). Параметры, используемые по умолчанию, подходят для 9-дорожечных лент (6250 bpi), но не для современных носителей с высокой плотностью записи информации (до 62,182 ftpi). Для использования ёмкостей нынешних накопителей на магнитной ленте эти параметры могут быть заданы в командной строке. .rhosts При помощи rdump и rrestore возможно резервное копирование данных по сети на накопитель, подключенный к другому компьютеру. Обе программы используют в работе &man.rcmd.3; и &man.ruserok.3; для доступа к накопителю на магнитной ленте на удалённом компьютере. Поэтому пользователь, выполняющий резервное копирование, должен быть указан в файле .rhosts на удалённом компьютере. Аргументы для rdump и rrestore должны подходить для использования на другом компьютере. При выполнении копирования по команде rdump на компьютере с FreeBSD на накопитель Exabyte, подключенный к машине Sun по имени komodo, используйте такую команду: &prompt.root; /sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nsa8 /dev/da0a 2>&1 Будьте осторожны: есть проблемы с обеспечением безопасности при аутентификации посредством .rhosts. Внимательно рассмотрите вашу ситуацию. Программы dump и restore можно использовать в более защищённом режиме посредством ssh. Использование <command>dump</command> через <application>ssh</application> &prompt.root; /sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \ targetuser@targetmachine.example.com dd of=/mybigfiles/dump-usr-l0.gz Либо воспользуйтесь встроенной в dump возможностью, задав переменную окружения RSH: Использование <command>dump</command> при работе через <application>ssh</application> с заданием <envar>RSH</envar> &prompt.root; RSH=/usr/bin/ssh /sbin/dump -0uan -f targetuser@targetmachine.example.com:/dev/sa0 /usr <command>tar</command> программы резервного копирования tar Утилита &man.tar.1; также восходит корнями к Version 6 системы AT&T UNIX (около 1975). tar работает с файловой системой, записывая на ленту файлы и каталоги. Эта утилита поддерживает не полный набор опций, имеющихся в &man.cpio.1;, однако не требует необычного перенаправления в командной строке, которое используется в утилите cpio. tar FreeBSD начиная с версии 5.3 содержит как GNU tar, так и используемую по умолчанию утилиту bsdtar. Версия GNU вызывается командой gtar, и поддерживает удалённые устройства в том же самом синтаксисе, что и rdump. Чтобы скопировать данные на накопитель Exabyte, подключенный к машине Sun по имени komodo, используйте такую команду: &prompt.root; /usr/bin/gtar cf komodo:/dev/nsa8 . 2>&1 Тот же результат вы можете получить, используя bsdtar, воспользовавшись перенаправлением вывода и командой rsh для посылки данных на удалённый ленточный накопитель. &prompt.root; tar cf - . | rsh hostname dd of=tape-device obs=20b Если вы беспокоитесь о безопасности создания резервных копий по сети, то вместо rsh вам нужно использовать ssh. <command>cpio</command> программы резервного копирования cpio &man.cpio.1; является оригинальной программой &unix; для обмена файлами на магнитных носителях. В утилите cpio имеются опции (кроме всего прочего), позволяющие выполнять изменение порядка следования байтов, поддерживающие различные форматы архивов и выполняющие перенаправление данных другим программам. Последняя возможность делает cpio прекрасным выбором для целей установки. cpio не знает о том, как работать с каталогами, список файлов должен даваться через stdin. cpio cpio не поддерживает создание резервных копий по сети. Вы можете воспользоваться перенаправлением вывода и программой rsh для посылки данных на удалённый накопитель. &prompt.root; for f in directory_list; do find $f >> backup.list done &prompt.root; cpio -v -o --format=newc < backup.list | ssh user@host "cat > backup_device" Где directory_list это список директорий, c которых Вы хотите создать резервные копии, user@host это комбинация пользователь/хост которая описывает того кто занимается резервированием, и backup_device это устройство куда копии должны быть записаны (например, /dev/nsa0). <command>pax</command> программы резервного копирования pax pax POSIX IEEE &man.pax.1; является ответом IEEE/&posix; на утилиты tar и cpio. В течение многих лет различные версии программ tar и cpio получались не совсем совместимыми. Так что вместо того, чтобы попытаться полностью их стандартизировать, &posix; создал новую утилиту для работы с архивами. pax пытается читать и писать различные форматы cpio и tar, и, кроме того, свои собственные новые форматы. Набор команд этой утилиты больше напоминает cpio, чем tar. <application>Amanda</application> программы резервного копирования amanda amanda Amanda (Advanced Maryland Network Disk Archiver) является целой клиент/серверной системой резервного копирования, а не отдельной программой. Сервер Amanda сможет осуществлять резервное копирование на единственный накопитель любого количества компьютеров, на которых имеется клиент Amanda и которые могут связываться по сети с сервером Amanda. Общей проблемой систем с большим количеством больших дисков является то, что время, требуемое для непосредственной записи данных на ленту, превышает лимит времени, выделенный на эту задачу. Amanda решает эту проблему. Amanda может использовать промежуточный диск для резервного копирования нескольких файловых систем одновременно. Amanda создаёт наборы архивов: группа лент, используемых в некоторый период времени для создания полных копий всех файловых систем, перечисленных в конфигурационном файле системы Amanda. Архивный набор содержит также создаваемый каждую ночь инкрементальные (или дифференциальные) резервные копии всех файловых систем. Восстановление повреждённой файловой системы требует наличия самой последней полной копии и инкрементальных резервных копий. Конфигурационный файл даёт прекрасный механизм для управления процессом резервного копирования и объёмом трафика, генерируемого системой Amanda. Amanda сможет использовать любую из перечисленных выше программ для записи данных на ленту. Amanda имеется в виде как порта, так и пакета, и по умолчанию она не установлена. Не делать ничего Не делать ничего - это не программа для компьютера, и в то же время это наиболее широко используемая стратегия резервного копирования. Здесь нет никаких первоначальных затрат. Здесь нет расписания, которому нужно следовать. Просто скажите нет. Если что-то случится с вашими данными, улыбнитесь и забудьте о них! Если ваше время и данные практически ничего не стоят, то не делать ничего является самой подходящей программой для вашего компьютера. Но будьте осторожны, &posix; является весьма полезным инструментом, и через полгода вы можете обнаружить, что у вас есть набор файлов, представляющих для вас определенную ценность. Ничего не делать является правильным методом резервного копирования для /usr/obj и других деревьев каталогов, которые могут быть в точности перегенерированы вашим компьютером. Примером являются файлы, представляющие страницы этого Руководства в форматах HTML или &postscript;. Они генерируются из входных файлов в формате SGML. Создавать резервные копии файлов в форматах HTML и &postscript; не нужно. Исходные файлы в формате SGML копируются регулярно. Какая программа резервного копирования самая лучшая? LISA &man.dump.8; Точка. Elizabeth D. Zwicky протестировала все программы резервного копирования, обсуждаемые здесь. Беспроигрышным вариантом для сохранения всех ваших данных и особенностей файловых систем &unix; является dump. Элизабет создала файловые системы, содержащие большое количество необычных элементов (и некоторых не так уж необычных) и тестировала каждую из программ, выполняя резервное копирование и последующее восстановление этих файловых систем. В число необычных элементов входили: файлы с дырами, файлы с дырами и блоком пустого места, файлы с необычными символами в их именах, нечитаемые и незаписываемые файлы, устройства, меняющие свой размер во время резервного копирования, файлы, создаваемые и удаляемые во время копирования и тому подобное. Она представила результаты на конференции LISA V в октябре 1991 года. Посмотрите ссылку на сайте torture-testing Backup and Archive Programs. Процедура восстановления при сбое До того, как случится катастрофа Вам нужно выполнить всего лишь четыре шага для того, чтобы быть готовым к любому сбою. disklabel Во-первых, распечатайте разметку диска для всех ваших дисков (к примеру, disklabel da0 | lpr), таблицу файловых систем (/etc/fstab) и все сообщения, выводимые при загрузке, каждого по два экземпляра. аварийные дискеты Во-вторых, определите, все ли устройства присутствуют на загрузочной и аварийной дискетах (boot.flp и fixit.flp). Самым простым способом проверки является перезагрузка вашей машины с загрузочной дискетой, вставленной в дисковод и последующая проверка сообщений при загрузке. Если все имеющиеся у вас устройства здесь будут перечислены и будут работоспособны, перейдите к третьему шагу. В противном случае вам необходимо будет создать две особым образом сформированные загрузочные дискеты, на которых помещено ядро, могущее смонтировать все ваши диски и получить доступ к вашему стримеру. На этих дискетах должны быть: fdisk, disklabel, newfs, mount и какая-либо используемая вами программа резервного копирования. Эти программы должны быть скомпонованы статически. Если вы используете dump, то на дискете должна присутствовать и программа restore. В-третьих, регулярно создавайте резервные копии на ленте. Любые изменения, которые вы делали после последнего резервного копирования, могут быть безвозвратно потеряны. На лентах включайте защиту от записи. В-четвертых, проверяйте работу дискет (либо boot.flp и fixit.flp, либо двух дискет, которые вы сделали при выполнении второго шага) и лент с резервными копиями. Ведите журнал выполняемых действий. Храните эти записи вместе с загрузочной дискетой, распечатками и лентами. Вы просто обезумеете при восстановлении данных, если окажется, что записи могли бы избежать разрушения ваших резервных копий (Каким образом? Вместо команды tar xvf /dev/sa0 вы могли случайно набрать tar cvf /dev/sa0 и тем самым перезаписать вашу резервную копию). Для дополнительной страховки, каждый раз создавайте загрузочные дискеты и две резервные копии на ленте. Храните одну из копий в каком-то удаленном месте и НЕ в том же здании, где находится ваш офис. Достаточно большое количество компаний во Всемирном Торговом Центре изучило это на своей шкуре. Это удаленное хранилище должно быть физически отделено на большое расстояние от ваших компьютеров и дисковых устройств. Скрипт для создания загрузочной дискеты /mnt/sbin/init gzip -c -best /sbin/fsck > /mnt/sbin/fsck gzip -c -best /sbin/mount > /mnt/sbin/mount gzip -c -best /sbin/halt > /mnt/sbin/halt gzip -c -best /sbin/restore > /mnt/sbin/restore gzip -c -best /bin/sh > /mnt/bin/sh gzip -c -best /bin/sync > /mnt/bin/sync cp /root/.profile /mnt/root cp -f /dev/MAKEDEV /mnt/dev chmod 755 /mnt/dev/MAKEDEV chmod 500 /mnt/sbin/init chmod 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/halt chmod 555 /mnt/bin/sh /mnt/bin/sync chmod 6555 /mnt/sbin/restore # # create the devices nodes # cd /mnt/dev ./MAKEDEV std ./MAKEDEV da0 ./MAKEDEV da1 ./MAKEDEV da2 ./MAKEDEV sa0 ./MAKEDEV pty0 cd / # # create minimum filesystem table # cat > /mnt/etc/fstab < После сбоя Главный вопрос: выжило ли ваше оборудование? Вы регулярно делали резервные копии, так что нет нужды беспокоиться о программном обеспечении. Если оборудование было повреждено, должны быть заменены неисправные компоненты. Если с оборудованием все в порядке, проверьте ваши дискеты. При использовании самостоятельно созданной загрузочной дискеты, загрузитесь в однопользовательском режиме (набрав -s в приглашении boot:). Пропустите следующий абзац. Если вы используете дискеты boot.flp и fixit.flp, читайте дальше. Вставьте дискету boot.flp в первый дисковод и загрузите компьютер. На экран будет выведено оригинальное меню установки. Выберите пункт Fixit--Repair mode with CDROM or floppy. После вывода приглашения вставьте fixit.flp. restore и другие нужные вам программы находятся в каталоге /mnt2/rescue (/mnt2/stand во &os; версий, предшествующих 5.2). Восстановите по отдельности каждую файловую систему. mount корневой раздел disklabel newfs Попробуйте выполнить команду mount (например, mount /dev/da0a /mnt) по отношению к корневому разделу вашего первого диска. Если метка диска была испорчена, то воспользуйтесь командой disklabel для переразбиения на разделы и разметки диска так, чтобы получившаяся метка совпала с той, которая вами была распечатана и сохранена. Для повторного создания файловых систем используйте утилиту newfs. Повторно смонтируйте корневой раздел дискеты в режиме чтения-записи (mount -u -o rw /mnt). Воспользуйтесь вашей программой резервного копирования и резервными копиями на лентах для восстановления данных для этой файловой системы (например. restore vrf /dev/sa0). Размонтируйте файловую систему (например, umount /mnt). Повторите эту процедуру для каждой файловой системы, которая была повреждена. Как только ваша система заработает, сделайте резервную копию на новые ленты. Что бы ни вызвало сбой или потерю данных, это может случиться снова. Ещё один час, потраченный в этот момент, может спасти вас от неприятностей в будущем. * Я не был готов к катастрофе, и что теперь? ]]> Marc Fonvieille Реорганизацию и улучшения выполнил Сетевые файловые системы, файловые системы в памяти и с отображением в файл виртуальные диски диски виртуальные Кроме дисков, которые вы физически устанавливаете в ваш компьютер; дискеты, компакт-диски, винчестеры и так далее, FreeBSD воспринимает и другие типы дисков - виртуальные диски. NFS Coda диски память Сюда могут быть отнесены сетевые файловые системы, такие, как Network File System и Coda, а также файловые системы с организацией в памяти и создаваемые в файлах. В зависимости от версии FreeBSD, которую вы используете, для создания и работы с файловыми системами, отображаемыми в оперативную память или файлы, вам нужно будет пользоваться разными инструментами. Пользователи FreeBSD 4.X для создания требуемых устройств должны использовать &man.MAKEDEV.8;. Во FreeBSD 5.0 и более поздних версиях для создания файлов устройств используется &man.devfs.5;, которая выполняет это прозрачно для пользователей. Файловая система в файле во FreeBSD 4.X диски хранимые в файле (4.X) Утилита &man.vnconfig.8; конфигурирует и позволяет использовать дисковые устройства на основе псевдо-устройств vnode. vnode представляет собой файл и отвечает за работу с файлом. Это означает, что &man.vnconfig.8; использует файлы для создания и работы с файловой системой. Одним из возможных способов использования является монтирование образов дискет или образов компакт-дисков, сброшенных в файлы. Для использования &man.vnconfig.8; в конфигурационном файле ядра вам нужно включить поддержку &man.vn.4;: pseudo-device vn Чтобы смонтировать имеющийся образ файловой системы: Использование vnconfig для монтирования имеющегося образа файловой системы во FreeBSD 4.X &prompt.root; vnconfig vn0 diskimage &prompt.root; mount /dev/vn0c /mnt Для создания нового образа файловой системы с помощью &man.vnconfig.8;: Создание нового диска в файле с помощью <command>vnconfig</command> &prompt.root; dd if=/dev/zero of=newimage bs=1k count=5k 5120+0 records in 5120+0 records out &prompt.root; vnconfig -s labels -c vn0 newimage &prompt.root; disklabel -r -w vn0 auto &prompt.root; newfs vn0c Warning: 2048 sector(s) in last cylinder unallocated /dev/vn0c: 10240 sectors in 3 cylinders of 1 tracks, 4096 sectors 5.0MB in 1 cyl groups (16 c/g, 32.00MB/g, 1280 i/g) super-block backups (for fsck -b #) at: 32 &prompt.root; mount /dev/vn0c /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/vn0c 4927 1 4532 0% /mnt Файловые системы, отображаемые в файлы диски отображаемые в файлы Во FreeBSD 5.X и более поздних для конфигурации и подключения дисков &man.md.4;, отображаемых в оперативную память, используется утилита &man.mdconfig.8;. Для работы с &man.mdconfig.8; вам нужно подгрузить модуль &man.md.4; или добавить поддержку этих устройств в файл конфигурации ядра: device md Утилита &man.mdconfig.8; поддерживает три типа виртуальных дисков, отображаемых в память: диски в памяти, которая выделяется запросами &man.malloc.9; и диски в памяти, использующие в качестве устройств хранения файлы или раздел подкачки. Одним из возможных использований таких дисков является монтирование файлов с образами дискет или CD. Для монтирования образа существующей файловой системы: Использование <command>mdconfig</command> для монтирования файла с образом существующей файловой системы &prompt.root; mdconfig -a -t vnode -f diskimage -u 0 &prompt.root; mount /dev/md0 /mnt Для создания образа новой файловой системы при помощи &man.mdconfig.8;: Создание нового диска, отображаемого в файл, при помощи <command>mdconfig</command> &prompt.root; dd if=/dev/zero of=newimage bs=1k count=5k 5120+0 records in 5120+0 records out &prompt.root; mdconfig -a -t vnode -f newimage -u 0 &prompt.root; bsdlabel -w md0 auto &prompt.root; newfs md0a /dev/md0c: 5.0MB (10224 sectors) block size 16384, fragment size 2048 using 4 cylinder groups of 1.25MB, 80 blks, 192 inodes. super-block backups (for fsck -b #) at: 160, 2720, 5280, 7840 &prompt.root; mount /dev/md0a /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md0a 4710 4 4330 0% /mnt Если в параметре вы не задали номер устройства, то &man.mdconfig.8; для выбора неиспользуемого устройства будет использовать функцию автоматическое выделения в &man.md.4;. Имя выделенного устройства будет выдано на стандартное устройство выводы в виде, например, md4. Для получения более полной информации о &man.mdconfig.8;, пожалуйста, обратитесь к соответствующей странице справочной системы. Утилита &man.mdconfig.8; весьма полезна, однако для создания файла с файловой системой требуется произвести много действий. Вместе с FreeBSD 5.0 поставляется утилита под названием &man.mdmfs.8;, которая создаёт диск &man.md.4; при помощи &man.mdconfig.8;, размещает на нём файловую систему UFS при помощи &man.newfs.8; и монтирует её командой &man.mount.8;. Например, если вы хотите создать и смонтировать такой же образ файловой системе, как выше, просто наберите такую команду: Настройка и монтирование диска, отображаемого в файл, при помощи команды <command>mdmfs</command> &prompt.root; dd if=/dev/zero of=newimage bs=1k count=5k 5120+0 records in 5120+0 records out &prompt.root; mdmfs -F newimage -s 5m md0 /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md0 4718 4 4338 0% /mnt Если вы используете параметр без номера устройства, то &man.mdmfs.8; будет использовать автоматическую нумерацию &man.md.4; для автоматического выбора неиспользуемого устройства. Более полную информацию о &man.mdmfs.8; можно найти на страницах справочной системы. Файловая система в памяти во FreeBSD 4.X диски файловые системы в памяти (4.X) Драйвер &man.md.4; является простым и эффективным способом создания файловых систем в памяти во FreeBSD 4.X. Для выделения памяти используется &man.malloc.9;. Просто возьмите файловую систему, которую вы приготовили при помощи, скажем, &man.vnconfig.8; и: Диск md в памяти во FreeBSD 4.X &prompt.root; dd if=newimage of=/dev/md0 5120+0 records in 5120+0 records out &prompt.root; mount /dev/md0c /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md0c 4927 1 4532 0% /mnt Для получения более полной информации, пожалуйста, обратитесь к страницам справочной системы по &man.md.4;. Файловые системы с отображением в память диски файловая система в памяти При работе с файловыми системами, отображаемыми в файл или память, используются одни и те же утилиты: &man.mdconfig.8; или &man.mdmfs.8;. Обычно для отображаемых в память файловых систем следует использовать опцию хранение на области подкачки. Это не означает, что такая файловая система будет сразу сброшена на диск: место под нее будет выделено из общего пула памяти, и при необходимости может перемещаться в область подкачки. Также, возможно выделение места под файловую систему в основной памяти (через &man.malloc.9;); однако, следует помнить, что использование таких файловых систем, в особенности большого размера, может привести к панике системы от исчерпания ядерной памяти. Создание нового диска с отображением в память при помощи <command>mdconfig</command> &prompt.root; mdconfig -a -t swap -s 5m -u 1 &prompt.root; newfs -U md1 /dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048 using 4 cylinder groups of 1.27MB, 81 blks, 192 inodes. with soft updates super-block backups (for fsck -b #) at: 160, 2752, 5344, 7936 &prompt.root; mount /dev/md1 /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md1 4718 4 4338 0% /mnt Создание нового диска с отображением в память при помощи <command>mdmfs</command> &prompt.root; mdmfs -s 5m md2 /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md2 4846 2 4458 0% /mnt Отключение диска, отображаемого в память, от системы диски отключение диска, отображаемого в память Если файловые системы, отображаемые в память или файл, больше не используются, вам нужно высвободить все ресурсы для системы. Первым делом нужно размонтировать файловую систему, затем воспользоваться &man.mdconfig.8; для отключения диска от системы и освободить ресурсы. К примеру, чтобы отключить и освободить все ресурсы, используемые /dev/md4: &prompt.root; mdconfig -d -u 4 Для выдачи информации об отконфигурированных устройствах &man.md.4; используется команда mdconfig -l. Во FreeBSD 4.X для отключения устройства используется команда &man.vnconfig.8;. Например, для отключения и освобождения всех ресурсов, используемых /dev/vn4: &prompt.root; vnconfig -u vn4 Tom Rhodes Текст предоставил Мгновенные копии файловых систем файловые системы мгновенные копии Во FreeBSD 5.0 вместе с технологией Отложенных обновлений представлена новая возможность: генерация мгновенных копий файловых систем. Мгновенные копии позволяют пользователю создавать образы заданных файловых систем и работать с ними как с файлами. Файлы мгновенных копий должны создаваться в той файловой системе, над которой производится действие, и пользователь может создавать не более 20 мгновенных копий для каждой файловой системы. Активные копии записываются в суперблок, так что они остаются в силе между операциями монтирования и размонтирования в процессе системных перезагрузок. Если мгновенная копия больше не нужна, она может быть удалена стандартной командой &man.rm.1;. Мгновенные копии могут удаляться в любом порядке, однако всё использованное пространство не может быть использовано, так как другая мгновенная копия может претендовать на некоторые блоки из освобождённых. Неизменяемый флаг устанавливается на файл при помощи &man.mksnap.ffs.8; после первоначального создания файла мгновенной копии. Команда &man.unlink.1; делает исключение для файлов мгновенных копий, позволяя их удалять. Мгновенные копии создаются при помощи утилиты &man.mount.8;. Чтобы создать мгновенную копию /var в файле /var/snapshot/snap, воспользуйтесь такой командой: &prompt.root; mount -u -o snapshot /var/snapshot/snap /var В качестве альтернативного средства создания мгновенных копий вы можете использовать утилиту &man.mksnap.ffs.8;: &prompt.root; mksnap_ffs /var /var/snapshot/snap Файлы мгновенных копий файловых систем (к примеру, /var) можно найти при помощи команды &man.find.1;: &prompt.root; find /var -flags snapshot После создания мгновенной копии есть несколько способов её использования: Некоторые администраторы будут использовать файл мгновенной копии для целей создания резервной копии, так как мгновенная копия может быть перенесена на CD или магнитную ленту. Утилита проверка целостности файловой системы, &man.fsck.8;, может быть запущена над мгновенной копией. Полагая, что файловая система была в порядке, когда она была смонтирована, вы всегда должны получать нормальный (и неизменный) результат. Это именно то, что выполняет фоновый процесс &man.fsck.8;. Запустить утилиту &man.dump.8; с мгновенной копией. Будет создаваться дамп, соответствующий файловой системе на момент создания мгновенной копии. Утилита &man.dump.8; при использовании опции тоже может работать с мгновенными копиями, создавать их дампы, а затем удалять за один проход. Смонтировать командой &man.mount.8; мгновенную копию как замороженный образ файловой системы. Чтобы смонтировать командой &man.mount.8; мгновенную копию /var/snapshot/snap, запустите: &prompt.root; mdconfig -a -t vnode -f /var/snapshot/snap -u 4 &prompt.root; mount -r /dev/md4 /mnt Теперь вы можете пройтись по иерархии вашей зафиксированной файловой системы /var, смонтированной в каталог /mnt. Первоначально всё будет в том же самом состоянии, в каком это было во время создания мгновенной копии. Единственным исключением будет то, что любые ранее сделанные мгновенные копии будут видны как файлы нулевой длины. Когда использование мгновенной копии закончено, она может быть удалена командой: &prompt.root; umount /mnt &prompt.root; mdconfig -d -u 4 Для получения более полной информации о и мгновенных копиях файловых систем, включая технической описание, вы можете посетить сайт Маршалла Кёрка МакКузика (Marshall Kirk McKusick) по адресу . Квотирование файловых систем учёт дисковое пространство дисковые квоты Квоты - это опциональная возможность операционной системы, которая позволяет ограничивать объем дискового пространства и/или количество файлов для конкретного пользователя или членов определенной группы в рамках одной файловой системы. Чаще всего эта возможность используется в системах разделения времени, когда желательно ограничить количество ресурсов, которые может использовать один пользователь или группа пользователей. Это позволит не допустить ситуации, когда один пользователь или группа пользователей заполняют всё доступное дисковое пространство. Настройка вашей системы на использование дисковых квот Перед тем, как попытаться использовать дисковые квоты, необходимо убедиться, что квоты включены в вашем ядре. Это делается добавлением следующей строки в конфигурационный файл вашего ядра: options QUOTA В стандартном ядре GENERIC это по умолчанию не включено, так что для использования дисковых квот вам нужно будет настроить, откомпилировать и установить собственное ядро. Пожалуйста, обратитесь к за дополнительной информацией о настройке ядра. Затем вам потребуется включить квотирование дисков в файле /etc/rc.conf. Это делается добавление такой строчки: enable_quotas="YES" дисковые квоты проверка Для более полного контроля над запуском квотирования имеется дополнительная переменная для настройки. Как правило, при загрузке целостность квот каждой файловой системы проверяется программой &man.quotacheck.8;. При работе программы &man.quotacheck.8; проверяется точное соответствие данных в базе данных квот данным в файловой системе. Это весьма долгий процесс, что отражается на времени загрузки системы. Если вам захочется пропустить этот шаг, то для этого предназначена специальная переменная в файле /etc/rc.conf: check_quotas="NO" Наконец, вам потребуется отредактировать файл /etc/fstab для включения дисковых квот на уровне файловых систем. Это то место, где вы можете включить квоты для пользователей, для групп или для обеих этих категорий для всех ваших файловых систем. Для включения пользовательских квот для файловой системы, добавьте параметр в поле параметров файловой системы, на которой вы хотите включить квотирование, в файле /etc/fstab. Например: /dev/da1s2g /home ufs rw,userquota 1 2 Подобным же образом для включения квотирования на уровне групп, воспользуйтесь параметром вместо . Чтобы включить квотирование как для пользователей, так и для групп, измените строчку следующим образом: /dev/da1s2g /home ufs rw,userquota,groupquota 1 2 По умолчанию файлы квот хранятся в корневом каталоге файловой системы в файлах с именами quota.user и quota.group соответственно для пользовательских и групповых квот. Для получения подробной информации обратитесь к команде &man.fstab.5;. Хотя справочная страница по &man.fstab.5; утверждает, что вы можете указать другое местоположение файлов с квотами, этого делать не рекомендуется, потому что различные утилиты для работы с квотами не могут нормально работать в такой ситуации. На этом этапе вы должны перезагрузить вашу систему с новым ядром. Скрипт /etc/rc автоматически запустит соответствующие команды для создания начальных файлов для всех квот, которые вы создали в файле /etc/fstab, так что нет нужды вручную создавать никаких файлов квот нулевой длины. При нормальной работе вам не потребуется вручную запускать программы &man.quotacheck.8;, &man.quotaon.8; или &man.quotaoff.8;. Однако вам нужно хотя бы прочесть страницы справочника по этим командам, просто чтобы ознакомиться с их функциями. Установка квот дисковые квоты ограничения Как только вы настроили вашу систему на использование квот, проверьте, что они действительно были задействованы. Простым способом сделать это является запуск такой команды: &prompt.root; quota -v Вы должны увидеть однострочную информацию, отражающую использование диска и текущие ограничения для каждой файловой системы, на которой включено квотирование. Теперь вы действительно готовы задавать ограничения при помощи команды &man.edquota.8;. У вас есть несколько вариантов того, как приводить в действие ограничения по объему дискового пространства, который могут занимать пользователь или группа, а также по количеству файлов, которые они могут создать. Вы можете ограничивать размещение ресурсов на основе объема дискового пространства (квотирование блоков), количества файлов (квотирование inode) или их комбинации. Каждое из этих ограничений, в свою очередь, делится на две категории: мягкие и жёсткие ограничения. жёсткое ограничение Жёсткое ограничение не может быть превышено. Как только пользователь достиг своих ограничений, ресурсы соответствующей файловой системы ему больше выделяться не будут. Например, если пользователь имеет жесткое ограничение в 500 Кбайт на файловой системе и в текущий момент использует 490 Кбайт, то пользователь может получить дополнительно ещё 10 Кбайт. Попытка занять ещё 11 Кбайт окончится неудачно. мягкое ограничение С другой стороны, мягкие ограничения могут быть превышены в течении некоторого периода времени. Этот период времени также называют периодом отсрочки, который по умолчанию равен одной неделе. Если пользователь превышает своё мягкое ограничение в течение периода времени, превышающего отсрочку, то это мягкое ограничение становится жестким и последующее выделение ресурсов будет запрещено. Когда пользователь вернётся обратно к отметке, меньшей, чем мягкое ограничение, то период отсрочки будет сброшен. Далее приводится пример того, что вы можете наблюдать при запуске команды &man.edquota.8;. Когда вызывается команда &man.edquota.8;, вы оказываетесь в редакторе, заданном переменной переменной окружения EDITOR, или в редакторе vi, если переменная EDITOR не задана, и можете редактировать квоты. &prompt.root; edquota -u test Quotas for user test: /usr: kbytes in use: 65, limits (soft = 50, hard = 75) inodes in use: 7, limits (soft = 50, hard = 60) /usr/var: kbytes in use: 0, limits (soft = 50, hard = 75) inodes in use: 0, limits (soft = 50, hard = 60) Для каждой файловой системы, на которой включено квотирование, вы должны увидеть две строки. В одной строке приведены ограничения на блоки, а в другой на количество inode. Например, чтобы увеличить ограничения на количество блоков для пользователя с мягкого ограничения в 50 и жёсткого ограничения в 75, на мягкое ограничение в 500 и жёсткое ограничение в 600, измените: /usr: kbytes in use: 65, limits (soft = 50, hard = 75) на: /usr: kbytes in use: 65, limits (soft = 500, hard = 600) Новые ограничения вступят в силу после выхода из редактора. Иногда желательно установить ограничения квот на некоторый диапазон UID (идентификаторов пользователей). Это можно сделать при помощи параметра в команде &man.edquota.8;. Во-первых, установите желаемое ограничение для пользователя, а затем запустите команду edquota -p protouser startuid-enduid. Например, если пользователь test имеет желаемые ограничения, то для дублирования этих ограничений на пользователей с UID от 10000 до 19999 может быть использована такая команда: &prompt.root; edquota -p test 10000-19999 Дополнительную информацию можно получить из справочной страницы по команде &man.edquota.8;. Проверка ограничений и использования диска дисковые квоты проверка Для проверки квот и использования дисков вы можете использовать команды &man.quota.1; или &man.repquota.8;. Команда &man.quota.1; может быть использована для проверки квот отдельных пользователей, групп, а также использования дисков. Пользователь может только проверить собственную квоту и квоту той группы, к которой он принадлежит. Только администратор системы может проверить квоты всех пользователей и групп. Команду &man.repquota.8; можно использовать для получения суммарной статистики всех квот и использования дисков для файловых систем с включенными квотами. Далее приведен пример вывода команды quota -v для пользователя, который имеет ограничения на двух файловых системах. Disk quotas for user test (uid 1002): Filesystem usage quota limit grace files quota limit grace /usr 65* 50 75 5days 7 50 60 /usr/var 0 50 75 0 50 60 период отсрочки В этом примере для файловой системы /usr пользователь превысил свое мягкое ограничение в 50 Кбайт на 15 Кбайт и имеет 5 дней до истечения отсрочки. Отметьте знак звездочки *, который указывает на превышение пользователем своего ограничения. Как правило, файловые системы, на которых пользователь не занимает дискового пространства, не показываются в выводе команды &man.quota.1;, даже если ему выделена квота на этой файловой системе. При использовании параметра эти файловые системы выводятся, как, например, файловая система /usr/var в примере выше. Квоты в NFS NFS Квоты определяются подсистемой квот на сервере NFS. Даемон &man.rpc.rquotad.8; предоставляет информацию о квотах для программы &man.quota.1; на клиентах NFS, позволяя пользователям на этих машинах смотреть свою статистику о квотах. Включите rpc.rquotad в файле /etc/inetd.conf следующим образом: rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad Теперь перезапустите inetd: &prompt.root; kill -HUP `cat /var/run/inetd.pid` Lucky Green Текст предоставил
shamrock@cypherpunks.to
Шифрование дисковых разделов диски шифрование FreeBSD предоставляет прекрасную возможность по защите от несанкционированного доступа к данным. Права на доступ к файлам и технология принудительного контроля доступа MAC (Mandatory Access Control) (смотрите see ) помогают предотвратить несанкционированный доступ посторонних лиц к данным, при условии работы операционной системы и компьютера. Однако права доступа, контролируемые операционной системой, не имеют значения, если нападающий получает физический доступ к компьютеру и может просто перенести жёсткий диск на другую машину для копирования и дальнейшего анализа важных данных. Вне зависимости от того, как атакующий завладел жёстким диском или выключенным компьютером, технологии gbde (GEOM Based Disk Encryption - шифрование диска на уровне GEOM) и криптографическая подсистема geli &os; могут защитить данные файловой системы компьютера даже против очень заинтересованной атакующей стороны с достаточными ресурсами. В отличие от громоздких систем шифрования, которые шифруют отдельные файлы, gbde и geli шифруют в прозрачном режиме файловую систему в целом, при этом данные в открытом виде на диск никогда не записываются. Шифрование диска при помощи gbde Получите права пользователя <username>root</username> Настройка gbde требует права доступа администратора системы. &prompt.user; su - Password: Проверьте номер версии операционной системы Для работы &man.gbde.4; требуется 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;. Начиная с версии &os; 5.2-RELEASE, базовая система содержит скрипт rc.d для автоматического монтирования шифрованных разделов. Его аргументы могут быть указаны в файле &man.rc.conf.5;: gbde_autoattach_all="YES" gbde_devices="ad4s1c" При этом ключевая фраза для gbde должна быть введена на этапе загрузки. После введения ключевой фразы зашифрованный раздел будет смонтирован автоматически. Такой подход может быть очень удобным для использования gbde на ноутбуках. Криптографическая защита, применяемая в gbde &man.gbde.8; шифрует содержимое секторов при помощи 128-битного AES в режиме CBC. Каждый сектор диска шифруется различным ключом AES. Более полная информацию о системе шифрования gbde, включая алгоритм генерации ключей для секторов из ключевой фразы, вводимой пользователем, можно найти на страницах справочной системы о &man.gbde.4;. Вопросы совместимости &man.sysinstall.8; несовместим с устройствами, зашифрованными gbde. Все устройства *.bde перед запуском &man.sysinstall.8; должны быть отключены от системы, или эта утилита аварийно завершит работу на этапе обнаружения устройств. Для отключения защищённого устройства, используемого в нашем примере, воспользуйтесь такой командой: &prompt.root; gbde detach /dev/ad4s1c Также заметьте, что, так как &man.vinum.4; работает не через подсистему &man.geom.4;, то вы не можете использовать тома vinum с gbde. Daniel Gerzo Предоставлено Шифрование дисков при помощи <command>geli</command> Начиная с версии 6.0 &os; поддерживается новый класс GEOM — geli. В настоящий момент он поддерживается &a.pjd;. Класс Geli отличается от gbde; он предоставляет другой комплекс возможностей и использует иную схему криптования. Наиболее значимыми особенностями &man.geli.8; являются: Использование инфраструктуры &man.crypto.9;: при наличии аппаратной криптографической поддержки, geli автоматически использует ее. Поддержка разнообразных криптоалгоритмов (в настоящее время AES, Blowfish и 3DES). Поддержка шифрованного корневого раздела. Для загрузки в такой ситуации потребуется ввести ключевую фразу. Поддержка двух независимых ключей шифрования (например, основного ключа и ключа компании). Высокая скорость работы geli за счет простого криптования сектор-сектор. Поддержка архивирования основных ключей. При необходимости текущие ключи могут быть уничтожены, а в дальнейшем доступ к данным восстановлен при помощи архивированных ключей. Поддержка криптования файловых систем случайным одноразовым ключом — например, для разделов подкачки или временных файловых систем. Другие возможности класса geli описаны в его странице справочника: &man.geli.8;. Несколько следующих страниц будут посвящены описанию процесса конфигурации geli в ядре &os; и создания нового криптографического провайдера geli. В завершение, мы продемонстрируем, как создать шифрованный раздел подкачки при помощи geli. Для того чтобы использовать geli, вам потребуется &os; версии 6.0-RELEASE или более поздней. Поскольку необходимо внести изменения в конфигурацию ядра, потребуются также привилегии суперпользователя. Изменение конфигурацию ядра: включение <command>geli</command> Добавьте в конфигурационный файл ядра следующие строки: options GEOM_ELI device crypto Перестройте ядро, как описано в разделе . Помимо этого, поддержка geli может быть активирована модулем ядра на этапе загрузки. Для этого добавьте в файл /boot/loader.conf строку: geom_eli_load="YES" Теперь ядро должно поддерживать &man.geli.8;. Генерация главного ключа Предлагаемый пример описывает процесс генерации ключевого файла, который послужит частью главного ключа для шифрованного провайдера, монтируемого в каталог /private. При помощи содержимого ключевого файла создается набор случайных данных, которым зашифровывается главный ключ. Кроме того, он будет защищен кодовой фразой. Размер сектора провайдера будет составлять 4kB. Наконец, мы обсудим, как присоединиться к провайдеру geli, создать на базе его файловую систему, как ее смонтировать и работать с ней, и, в заключение, как корректно завершить работу. Больший чем обычно размер сектора (как в нашем примере, 4 кБ) рекомендуется для увеличения производительности. Главный ключ будет защищен кодовой фразой; данные для ключевого файла берутся из /dev/random. Размер сектора создаваемого нами шифрованного провайдера /dev/da2.eli — 4кБ. &prompt.root; dd if=/dev/random of=/root/da2.key bs=64 count=1 &prompt.root; geli init -s 4096 -K /root/da2.key /dev/da2 Enter new passphrase: Reenter new passphrase: Использование одновременно кодовой фразы и ключевого файла не обязательно: любой из этих методов защиты главного ключа может применяться независимо. Если в качестве имени ключевого файла указан -, используется стандартный ввод. Это позволяет использовать более одного ключевого файла: &prompt.root; cat keyfile1 keyfile2 keyfile3 | geli init -K - /dev/da2 Свяжите сгенерированный ключ с провайдером &prompt.root; geli attach -k /root/da2.key /dev/da2 Enter passphrase: Созданный при этом файл дискового устройства будет называться /dev/da2.eli. &prompt.root; ls /dev/da2* /dev/da2 /dev/da2.eli Создайте новую файловую систему &prompt.root; dd if=/dev/random of=/dev/da2.eli bs=1m &prompt.root; newfs /dev/da2.eli &prompt.root; mount /dev/da2.eli /private Зашифрованная файловая система будет видна в выводе утилиты &man.df.1; и готова к использованию: &prompt.root; df -H Filesystem Size Used Avail Capacity Mounted on /dev/ad0s1a 248M 89M 139M 38% / /devfs 1.0K 1.0K 0B 100% /dev /dev/ad0s1f 7.7G 2.3G 4.9G 32% /usr /dev/ad0s1d 989M 1.5M 909M 0% /tmp /dev/ad0s1e 3.9G 1.3G 2.3G 35% /var /dev/da2.eli 150G 4.1K 138G 0% /private Размонтирование и деактивация провайдера После завершения работы с шифрованным разделом, когда содержимое каталога /private больше не нужно, будет разумным отключить раздел от системы. &prompt.root; umount /private &prompt.root; geli detach da2.eli Дополнительную информацию о &man.geli.8; можно найти на соответствующей странице справочника. Использование стартового скрипта <filename>rc.d</filename> <filename>geli</filename> Для удобства использования подсистемы geli в комплект базовой системы &os; входит стартовый скрипт, работой которого можно управлять из &man.rc.conf.5;: geli_devices="da2" geli_da2_flags="-p -k /root/da2.key" При этом дисковый раздел /dev/da2 будет сконфигурирован как провайдер geli, связан с ключевым файлом /root/da2.key, а кодовая фраза не будет использоваться (отметим, что это возможно только в том случае, если при инициализации geli был указан ключ -P). Шифрованный провайдер geli будет отсоединен перед выключением системы. Дополнительную информацию о конфигурации скриптов rc.d можно найти в соответствующей главе Руководства.
Christian Brüffer Написано Шифрование области подкачки swap encrypting Шифрование области подкачки в &os; доступно начиная с версии 5.3-RELEASE и достаточно легко конфигурируется. Варианты конфигурации слегка различаются в зависимости от версии системы. Начиная с версии 6.0-RELEASE, для шифрования разделов подкачки можно использовать утилиты &man.gbde.8; или &man.geli.8;; в более ранних версиях доступно только решение при помощи &man.gbde.8;. В обоих случаях используется скрипт rc.d encswap. Предыдущий раздел, Шифрование дисковых разделов, кратко описывает различные методы криптования. Зачем шифровать область подкачки? Как и в случае дисковых разделов, шифрование области подкачки применяется для защиты важной информации. Возьмем, к примеру, приложение, которому требуется работать с паролями. До тех пор, пока пароли хранятся в физической памяти, все в порядке. Если же операционная система начинает выгружать отдельные участки памяти в область подкачки, чтобы освободить память для других приложений, пароли могут быть записаны на диск в открытом виде и тем самым оказаться легко доступными злоумышленнику (имеющему физический доступ к диску — прим. пер.). В таких ситуациях решением может стать шифрование раздела подкачки. Подготовка В данном разделе мы будем считать, что разделом подкачки является ad0s1b. До настоящего момента раздел подкачки не был зашифрован. Таким образом, на нем могут содержаться пароли или какая-либо иная важная информация в открытом виде. Чтобы избавиться от этого, заполним раздел подкачки случайными данными: &prompt.root; dd if=/dev/random of=/dev/ad0s1b bs=1m Шифрование раздела подкачки при помощи &man.gbde.8; В версиях &os; начиная с 6.0-RELEASE в строку файла /etc/fstab, описывающую раздел подкачки, необходимо добавить суффикс .bde: # Device Mountpoint FStype Options Dump Pass# /dev/ad0s1b.bde none swap sw 0 0 В системах версий до &os; 6.0-RELEASE, кроме того, потребуется следующая строка в файле конфигурации системы /etc/rc.conf: gbde_swap_enable="YES" Шифрование раздела подкачки при помощи &man.geli.8; Процедура при использовании &man.geli.8; для шифрования раздела подкачки сходна с использованием &man.gbde.8;. В строку файла /etc/fstab, описывающую раздел подкачки, нужно добавить суффикс .eli: # Device Mountpoint FStype Options Dump Pass# /dev/ad0s1b.eli none swap sw 0 0 По умолчанию, &man.geli.8; использует алгоритм криптования AES с длиной ключа 256 бит. При необходимости эти параметры могут быть изменены в опции geli_swap_flags файла конфигурации /etc/rc.conf. Приведенная ниже строка указывает, что скрипт rc.d encswap должен использовать для криптования алгоритм Blowfish с ключом длиной 128 бит, размером сектора 4 килобайта и включенной опцией отсоединиться при последнем закрытии: geli_swap_flags="-a blowfish -l 128 -s 4096 -d" За списком возможных опций обращайтесь к описанию команды onetime в странице справочника &man.geli.8;. Окончательная проверка После перезагрузки системы правильность работы шифрованного раздела подкачки может быть проверена при помощи команды swapinfo. В случае использования &man.gbde.8;: &prompt.user; swapinfo Device 1K-blocks Used Avail Capacity /dev/ad0s1b.bde 542720 0 542720 0% При использовании &man.geli.8;: &prompt.user; swapinfo Device 1K-blocks Used Avail Capacity /dev/ad0s1b.eli 542720 0 542720 0%
diff --git a/ru_RU.KOI8-R/books/handbook/x11/chapter.sgml b/ru_RU.KOI8-R/books/handbook/x11/chapter.sgml index 926e9aaca4..e986ca0f32 100644 --- a/ru_RU.KOI8-R/books/handbook/x11/chapter.sgml +++ b/ru_RU.KOI8-R/books/handbook/x11/chapter.sgml @@ -1,1913 +1,1794 @@ Ken Tom Обновили для сервера X.Org X11 Marc Fonvieille Андрей Захватов Перевод на русский язык: X Window System Обзор FreeBSD использует X11 для того, чтобы дать пользователям мощный графический интерфейс. X11 является открытой реализацией X Window System, включая &xorg; и &xfree86;. В версиях &os; до и включая &os; 4.11-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;. Модель клиент/сервер в X X изначально разрабатывалась, чтобы быть системой, ориентированной на работу в сети с использованием модели клиент-сервер. В модели работы X X-сервер работает на компьютере с клавиатурой, монитором и мышью. Область ответственности сервера включает управление дисплеем, обработку ввода с клавиатуры и мыши и так далее. Каждое X-приложение (например, XTerm или &netscape;) является клиентом. Клиент посылает сообщения серверу, такие, как Пожалуйста, нарисуй окно со следующими координатами, а сервер посылает в ответ сообщения типа Пользователь только что щёлкнул мышью на кнопке OK. В случае использования дома или в офисе, сервер и клиенты 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 тем, что не задается, как окна должны выглядеть на экране, как их двигать мышью, какие комбинации клавиш должны использоваться для переключения между окнами (то есть Alt Tab , в случае использования µ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 если мышь помещается поверх корневого окна (или заднего фона), то никакое окно фокус не получает, а нажатия клавиш просто пропадают. При использовании политики нечёткого фокуса он меняется только когда курсор попадает на новое окно, но не когда уходит с текущего окна. щелчок для выбора фокуса (click-to-focus) Активное окно выбирается щелчком мыши. Затем окно может быть поднято и появится поверх всех других окон. Все нажатия клавиш теперь будут направляться в это окно, даже если курсор переместится к другому. Многие оконные менеджеры поддерживают и другие политики, а также вариации перечисленных. Обязательно обращайтесь к документации по оконному менеджеру. Виджеты Подход 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, версией X11 по умолчанию для &os; является &xorg;. &xorg; это сервер X дистрибутива открытой реализации X Window System, выпущенной X.Org Foundation. &xorg; основан на коде &xfree86 4.4RC2 и X11R6.6. X.Org Foundation выпустила X11R6.7 в апреле 2004 года, а X11R6.8.2 в феврале 2005; эта версия доступна из Коллекции портов &os;. Для сборки и установки &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 и настроить рабочее окружение. Замена <application>&xfree86;</application> на <application>&xorg;</application> Как и с любым портом, вам необходимо проверить файл /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 свободного места. Christopher Shumway Текст предоставил Конфигурация 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, то настройка была выполнена успешно. Для завершения тестирования просто нажмите одновременно Ctrl Alt Backspace . Если мышь не работает, ее необходимо настроить. Обратитесь к в главе об установке &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.conf XF86Config Пока файл конфигурации 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. Он позволяет выполнить настройку в интерактивном режиме посредством выбора соответствующих драйверов и настроек. Эта программа может быть запущена в консоли командой xorgcfg -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" Murray Stokely Текст предоставил Использование шрифтов в 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 Marcus Clarke Обновление выполнил Антиалиасинг шрифтов шрифты с антиалиасингом шрифты антиалиасинг Антиалиасинг присутствует в 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 отключение шрифтов с антиалиасингом Антиалиасинг должен быть включен при следующем запуске X-сервера. Однако программы должны знать, как использовать его преимущества. В настоящее время инструментальный пакет Qt умеет ими пользоваться, так что вся оболочка KDE может - использовать шрифты с антиалиасингом (обратитесь к о KDE для - выяснения всех подробностей). GTK+ и GNOME + использовать шрифты с антиалиасингом. + GTK+ и GNOME также можно заставить использовать антиалиасинг посредством капплета Font (обратитесь к для выяснения всех подробностей). По умолчанию Mozilla версий 1.2 и выше будет автоматически использовать антиалиасинг. Для отмены использования антиалиасинга перестройте Mozilla с флагом -DWITHOUT_XFT. Seth Kingsley Текст предоставил Менеджеры экранов (Display Managers) X Вступление X Display Manager Менеджер Экранов X (XDM) это необязательный компонент X Window System, который используется для управления входом пользователей в систему. Это полезно в ряде ситуаций, например для минимальных X Терминалов, десктопов, больших сетевых серверов экранов. Так как X Window System не зависит от сетей и протоколов, то существует множество различных конфигураций для 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-pid ID процесса запущенного 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 имеется много визуальных и косметических улучшений, а также функциональность, позволяющая пользователям выбирать собственные оконные менеджеры во время входа в систему. Valentino Vaschetto Текст предоставил Графические оболочки В этом разделе описываются различные графические оболочки, доступные в X для FreeBSD. Термин графическая оболочка может использоваться для чего угодно, от простого менеджера окон до полнофункционального набора приложений для рабочего стола, типа KDE или GNOME. GNOME О GNOME GNOME GNOME является дружественной к пользователю графической оболочкой, позволяющей пользователям легко использовать и настраивать свои компьютеры. В GNOME имеется панель (для запуска приложений и отображения их состояния), рабочий стол (где могут быть размещены данные и приложения), набор стандартных инструментов и приложений для рабочего стола, а также набор соглашений, облегчающих совместную работу и согласованность приложений. Пользователи других операционных систем или оболочек при использовании такой мощной графической оболочки, какую обеспечивает GNOME, должны чувствовать себя в родной среде. Дополнительную информацию относительно GNOME во FreeBSD можно найти на сайте FreeBSD GNOME Project. Web сайт также содержит достаточно исчерпывающие FAQ'и, касающиеся установки, конфигурирования и управления GNOME. Установка 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 вместо стандартного оконного менеджера. Самый простой путь запустить GNOME - это использовать GDM (GNOME Display Manager). GDM, который устанавливается, как часть GNOME (но отключен по умолчанию), может быть включён путём добавления gdm_enable="YES" в /etc/rc.conf. После перезагрузки, GNOME запустится автоматически после того, как вы зарегистрируйтесь в системе. Никакой дополнительной конфигурации не требуется. GNOME может также быть запущен из командной строки с помощью конфигурирования файла .xinitrc. Если файл .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. Шрифты с антиалиасингом и GNOME GNOME антиалиасинг шрифтов X11 поддерживает антиалиасинг посредством своего расширения RENDER. GTK+ 2.0 и более поздние версии (это инструментальный пакет, используемый GNOME) могут использовать такую функциональность. Настройка антиалиасинга описана в . Таким образом, при наличии современного GNOME, возможно использование антиалиасинга. Просто перейдите в Applications Desktop Preferences Font и выберите либо Best shapes, Best contrast, либо Subpixel smoothing (LCDs). Для приложений GTK+, которые не являются частью оболочки GNOME, задайте в качестве значения переменной окружения GDK_USE_XFT 1 перед запуском программы. KDE KDE О KDE KDE является простой в использовании современной графической оболочкой. Вот лишь некоторые из преимуществ, которые даёт пользователю KDE: Прекрасный современный рабочий стол Рабочий стол, полностью прозрачный для работы в сети Интегрированная система помощи, обеспечивающая удобный и согласованный доступ к системе помощи по использованию рабочего стола KDE и его приложений Единообразный внешний вид и управление во всех приложениях KDE Стандартизированные меню и панели инструментов, комбинации клавиш, цветовые схемы и так далее. Интернационализация: в KDE поддерживается более 40 языков Централизованное единообразное конфигурирование рабочего стола в диалоговом режиме Большое количество полезных приложений для KDE - Для KDE существует пакет офисных - приложений, который выполнен по технологии KParts из - KDE, состоящий из программы для работы с - электронными таблицами, презентационной программы, органайзера, - клиента для чтения телеконференций и других программ. С - 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, десятками полезных приложений и подробной документацией. В оставшейся части этого раздела обсуждаются технические вопросы, трудные для понимания при случайном исследовании. Менеджер дисплеев KDE KDE менеджер дисплеев Администратору многопользовательской системы может потребоваться графический экран для входа пользователей в систему. Вы можете использовать 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/krootimage - - Теперь проверьте, что - kdm перечислена в файле - /etc/ttys для запуска при следующей загрузке. - Для этого просто следуйте инструкциям из предыдущего раздела - о XDM, заменив вызов программы - /usr/X11R6/bin/xdm на - /usr/local/bin/kdm. - - - - Шрифты с антиалиасингом - - - KDE + Для того, чтобы разрешить запуск kdm, + измените в файле /etc/ttys строку, относящуюся + к консоли ttyv8: - антиалиасинг шрифтов - + ttyv8 "/usr/local/bin/kdm -nodaemon" xterm on secure - X11 поддерживает антиалиасинг через своё расширение - RENDER, а начиная с версии 2.3, Qt (инструментарий, - используемый в KDE) поддерживает это - расширение. Настройка описана в по - антиалиасингу с шрифтами X11. Таким образом, при работе с - современным программным обеспечением, в оболочке - KDE возможно использование - антиалиасинга. Просто перейдите в меню KDE, затем к - - Preferences - Look and Feel - Fonts - и поставьте галочку рядом с - Use Anti-Aliasing for Fonts and Icons. Для - работы с приложением Qt, которое не является частью - KDE, перед его запуском нужно - устанавливать переменную окружения QT_XFT в - значение true. XFce О XFce XFce является графической оболочкой, построенной на основе инструментального пакета 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.