diff options
Diffstat (limited to 'documentation/content/ru/books/handbook/disks')
-rw-r--r-- | documentation/content/ru/books/handbook/disks/_index.adoc | 2613 | ||||
-rw-r--r-- | documentation/content/ru/books/handbook/disks/_index.po | 6457 |
2 files changed, 7656 insertions, 1414 deletions
diff --git a/documentation/content/ru/books/handbook/disks/_index.adoc b/documentation/content/ru/books/handbook/disks/_index.adoc index 3948191349..a0bbb803ab 100644 --- a/documentation/content/ru/books/handbook/disks/_index.adoc +++ b/documentation/content/ru/books/handbook/disks/_index.adoc @@ -1,12 +1,14 @@ --- -title: Глава 17. Устройства хранения -part: Часть III. Системное администрирование -prev: books/handbook/audit +description: 'Эта глава посвящена использованию дисков и носителей данных в FreeBSD. Здесь рассматриваются SCSI- и IDE-диски, CD- и DVD-носители, диски в оперативной памяти и USB-устройства хранения данных.' next: books/handbook/geom -showBookMenu: true -weight: 21 params: - path: "/books/handbook/disks/" + path: /books/handbook/disks/ +part: 'Часть III. Администрирование системы' +prev: books/handbook/audit +showBookMenu: true +tags: ["storage", "disks", "gpart", "mount", "quotas", "encrypt", "GPT", "cdrecord", "quotas", "swap", "HAST", "CD", "DVD", "resizing", "growing"] +title: 'Глава 20. Устройства хранения' +weight: 24 --- [[disks]] @@ -17,7 +19,7 @@ params: :icons: font :sectnums: :sectnumlevels: 6 -:sectnumoffset: 17 +:sectnumoffset: 20 :partnums: :source-highlighter: rouge :experimental: @@ -48,462 +50,289 @@ include::../../../../../shared/asciidoctor.adoc[] endif::[] [[disks-synopsis]] -== Краткий обзор +== Обзор -В этой главе описывается использование дисков во FreeBSD. К ним относятся диски в памяти, диски, подключенные по сети, обычные устройства хранения SCSI/IDE и устройства, использующие интерфейс USB. +Эта глава посвящена использованию дисков и носителей данных в FreeBSD. Сюда входят SCSI- и IDE-диски, CD- и DVD-носители, диски в памяти и USB-устройства хранения данных. -После чтения этой главы вы будете знать: +Прочитав эту главу, вы будете знать: -* Терминологию, используемую во FreeBSD для описания организации данных на физическом диске (разделы и слайсы). -* Как добавить дополнительные винчестеры к вашей системе. -* Как настроить FreeBSD для использования дисковых устройств USB. -* Как настроить виртуальные файловые системы, такие, как диски в оперативной памяти. +* Как добавить дополнительные жесткие диски в систему FreeBSD. +* Как увеличить размер раздела диска в FreeBSD. +* Как настроить FreeBSD для использования USB-накопителей. +* Как использовать CD и DVD носители в системе FreeBSD. +* Как использовать программы резервного копирования, доступные в FreeBSD. +* Как настроить диски в памяти. +* Что такое снимки файловой системы и как их эффективно использовать. * Как использовать квоты для ограничения использования дискового пространства. -* Как зашифровать диски, чтобы защитить их от взлома. -* Как создавать и записывать CD и DVD во FreeBSD. -* Различные варианты использования устройств хранения для резервных копий. -* Как использовать программы резервного копирования, имеющиеся для FreeBSD. -* Как выполнять резервное копирование на дискеты. -* Что такое мгновенные копии файловых систем и как их эффективно использовать - -Перед прочтением этой главы вам потребуется: - -* Узнать как настраивать и устанавливать новое ядро FreeBSD (crossref:kernelconfig[kernelconfig, Настройка ядра FreeBSD]). - -[[disk-naming]] -== Имена устройств - -Далее приводится список физических устройств хранения информации, которые поддерживаются во FreeBSD, и имена устройств, которые им соответствуют. - -[[disk-naming-physical-table]] -.Соглашения по именованию физических дисков -[cols="1,1", frame="none", options="header"] -|=== -| Тип диска -| Имя дискового устройства - -|Винчестеры IDE -|`ad` - -|Приводы IDE CDROM -|`acd` - -|Винчестеры SCSI и дисковые устройства USB -|`da` +* Как зашифровать диски и раздел подкачки для защиты от злоумышленников. +* Как настроить сеть хранения данных с высокой доступностью. -|Приводы SCSI CDROM -|`cd` +Прежде чем читать эту главу, вы должны: -|Различные нестандартные приводы CDROM -|`mcd` для Mitsumi CD-ROM, `scd` для Sony CD-ROM - -|Дискеты -|`fd` - -|Ленточные приводы SCSI -|`sa` - -|Ленточные приводы IDE -|`ast` - -|Флэш-диски -|`fla` для флэш-устройств DiskOnChip(R) - -|Диски RAID -|`aacd` для Adaptec(R) AdvancedRAID, `mlxd` и `mlyd` для Mylex(R), `amrd` для AMI MegaRAID(R), `idad` для Compaq Smart RAID, `twed` для 3ware(R) RAID. -|=== +* Знать, как crossref:kernelconfig[kernelconfig,конфигурировать и установливать новое ядро FreeBSD]. [[disks-adding]] == Добавление дисков -В этом разделе будет описан процесс добавления нового SCSI диска на машину, имеющую в данный момент только один диск. Сначала выключим компьютер и установим диск в компьютер согласно инструкциям к компьютеру, контроллеру и от производителя диска. Из-за большого разнообразия этих процедур их рассмотрение выходит за рамки этого документа.. - -Войдите в систему как пользователь `root`. После того, как вы установили диск, просмотрите файл [.filename]#/var/run/dmesg.boot#, чтобы убедиться, что новый диск был найден. Продолжая наш пример, только что добавленный диск будет называться [.filename]#da1# и мы хотим смонтировать его в каталог [.filename]#/1# (если вы добавляете диск IDE, то устройство будет называться [.filename]#ad1#). +В этом разделе описывается, как добавить новый диск SATA к компьютеру, в котором в настоящее время установлен только один накопитель. Сначала выключите компьютер и установите диск, следуя инструкциям производителей компьютера, контроллера и диска. Перезагрузите систему и войдите в систему как `root`. -FreeBSD работает на IBM-PC совместимых компьютерах, поэтому она должна уметь работать с разделами PC BIOS. Однако они отличаются от традиционных разделов BSD. Диск ПК может иметь до четырёх записей разделов BIOS. Если диск на самом деле будет использоваться исключительно под FreeBSD, вы можете использовать режим _dedicated_. В противном случае FreeBSD будет располагаться в одном из разделов PC BIOS. Во FreeBSD разделы PC BIOS называются _слайсами_, чтобы не путать их с традиционными разделами BSD. Вы также можете использовать слайсы и с диском, предназначенным исключительно для FreeBSD, однако используемым в компьютере, на котором имеется дополнительная операционная система. Это является хорошим способом избежать путаницы в утилите `fdisk` других операционных систем, не связанных с FreeBSD. +Проверьте [.filename]#/var/run/dmesg.boot#, чтобы убедиться, что новый диск обнаружен. В этом примере новый SATA-диск будет отображаться как [.filename]#ada1#. -В случае слайсов диск будет добавлен как [.filename]#/dev/da1s1e#. Это интерпретируется следующим образом: диск SCSI, устройство номер 1 (второй диск SCSI), слайс 1 (раздел PC BIOS 1), и раздел BSD [.filename]#e#. В случае использования в выделенном режиме диск будет добавлен просто как [.filename]#/dev/da1e#. +Для этого примера на новом диске будет создан один большой раздел. Схема разделов https://en.wikipedia.org/wiki/GUID_Partition_Table[GPT] будет использована вместо более старой и менее универсальной схемы MBR. -Вследствие использования 32-разрядных целых чисел для адресации секторов, man:bsdlabel[8] ограничен 2^32-1 секторами на диск, или 2TB в большинстве случаев. Формат man:fdisk[8] позволяет наличие первого сектора со смещением не более 2^32-1 и длину не более 2^32-1, что ограничивает размер раздела до 2TB, а размер диска до 4TB в большинстве случаев. Формат man:sunlabel[8] ограничен 2^32-1 секторами на раздел и 8 разделами, что составляет 16TB. Для дисков большего раздела могут быть использованы разделы man:gpt[8]. - -=== Использование утилиты man:sysinstall[8] - -[.procedure] +[NOTE] ==== -. Использование Sysinstall -+ -Вы можете использовать простые меню утилиты `sysinstall` для разбиения на разделы и разметки нового диска. Войдите как пользователь `root` или воспользуйтесь командой `su`. Запустите команду `sysinstall` и войдите в меню `Configure`. Внутри `FreeBSD Configuration Menu`, пролистайте и выберите пункт `Fdisk`. -. Редактор разделов fdisk -+ -При работе с утилитой fdisk нажатие kbd:[A] используется для выделения под FreeBSD полностью всего диска. Когда будет задан вопрос о том, хотите ли вы "сохранить совместимость с другими возможными операционными системами в будущем", ответьте `YES`. Запишите изменения на диск при помощи команды kbd:[W]. А теперь выйдите из редактора FDISK, нажав kbd:[Q]. В этот момент вам будет задан вопрос о "Master Boot Record" (главной загрузочной записи). Так как вы добавляете диск к уже работающей системе, выберите `None`. -. Редактор метки диска -+ -Теперь вам нужно выйти из sysinstall и запустить эту утилиту снова. Следуйте указаниям выше, но на этот раз выберите пункт `Label`. Вы перейдёте к меню `Disk Label Editor`. Здесь вы создадите традиционные разделы BSD. На диске может быть до восьми разделов, имеющих метки `a-h`. Некоторые из меток разделов имеют особый смысл. Раздел `a` используется для размещения корневого раздела ([.filename]#/#). По этой причине только ваш системный диск (например, тот, с которого происходит загрузка), должен иметь раздел `a`. Раздел `b` используется под раздел подкачки, и вы можете иметь много дисков с разделами подкачки. Раздел `c` используется для доступа ко всему диску в режиме эксклюзивного использования или ко всему слайсу FreeBSD при работе в режиме с использованием слайсов. Остальные разделы имеют обычное предназначение. -+ -Редактор метки диска программы sysinstall использует раздел `e` для некорневого раздела и не для раздела подкачки. Внутри редактора метки диска создайте отдельную файловую систему, нажав kbd:[C]. Когда будет задан вопрос о том, будет ли это раздел с файловой системой (FS) или это будет раздел подкачки, выберите `FS` и наберите точку монтирования (например, [.filename]#/mnt#). При добавлении диска после установки системы, программа sysinstall не будет автоматически создавать записи в файле [.filename]#/etc/fstab#, поэтому точка монтирования не так уж и важна. -+ -Теперь вы готовы записать новую метку на диск и создать на нем файловую систему. Сделайте это, нажав kbd:[W]. Проигнорируйте сообщения об ошибках от sysinstall о невозможности смонтировать новый раздел. Полностью выйдите из редактора метки диска и из программы sysinstall. -. Завершение -+ -Последний шаг заключается в редактировании файла [.filename]#/etc/fstab# и добавлении записи для вашего нового диска. +Если добавляемый диск не пуст, старую информацию о разделах можно удалить с помощью `gpart delete`. Подробности см. в man:gpart[8]. ==== -=== Использовании утилит командной строки - -==== Работа со слайсами +Создается схема разделов, а затем добавляется единственный раздел. Для повышения производительности на новых дисках с большими размерами аппаратных блоков раздел выравнивается по границам одного мегабайта: -Следующая настройка позволит вашему диску корректно работать с другими операционными системами, которые могут быть установлены на вашем компьютере, и не вызовет конфликта с утилитами `fdisk` других операционных систем. Этот способ рекомендуется использовать для установок новых дисков. Используйте `эксклюзивный` режим, только если у вас есть реальные причины делать это! - -[source,shell] +[source, shell] .... -# dd if=/dev/zero of=/dev/da1 bs=1k count=1 -# fdisk -BI da1 # Инициализируем новый диск. -# bsdlabel -B -w da1s1 auto # Размечаем его. -# bsdlabel -e da1s1 # Редактируем только что созданную метку диска и добавляем разделы. -# mkdir -p /1 -# newfs /dev/da1s1e # Повторяем этот шаг для всех созданных разделов. -# mount /dev/da1s1e /1 # Монтируем раздел(ы) -# vi /etc/fstab # Добавляем соответствующую запись/записи в файл /etc/fstab. +# gpart create -s GPT ada1 +# gpart add -t freebsd-ufs -a 1M ada1 .... -Если у вас установлен диск IDE, подставьте [.filename]#ad# вместо [.filename]#da#. - -==== Эксклюзивный режим +В зависимости от использования может потребоваться несколько небольших разделов. См. man:gpart[8] для вариантов создания разделов меньше целого диска. -Если вы не будете использовать новый диск совместно с другой операционной системой, то вы можете использовать режим `эксклюзивного` использования. Отметьте, что этот режим может ввести в заблуждение операционные системы от Microsoft; однако информацию они не разрушат. А вот OS/2(R) компании IBM будет "забирать себе" любой раздел, который она найдет и не сможет распознать. +Информацию о разделах диска можно просмотреть с помощью `gpart show`: -[source,shell] +[source, shell] .... -# dd if=/dev/zero of=/dev/da1 bs=1k count=1 -# bsdlabel -Bw da1 auto -# bsdlabel -e da1 # create the `e' partition -# newfs /dev/da1e -# mkdir -p /1 -# vi /etc/fstab # add an entry for /dev/da1e -# mount /1 +% gpart show ada1 +=> 34 1465146988 ada1 GPT (699G) + 34 2014 - free - (1.0M) + 2048 1465143296 1 freebsd-ufs (699G) + 1465145344 1678 - free - (839K) .... -Альтернативный метод заключается в следующем: +Создается файловая система в новом разделе на новом диске: -[source,shell] +[source, shell] .... -# dd if=/dev/zero of=/dev/da1 count=2 -# bsdlabel /dev/da1 | bsdlabel -BR da1 /dev/stdin -# newfs /dev/da1e -# mkdir -p /1 -# vi /etc/fstab # add an entry for /dev/da1e -# mount /1 +# newfs -U /dev/ada1p1 .... -[[raid]] -== RAID - -[[raid-soft]] -=== Программный RAID - -[[ccd]] -==== Конфигурация драйвера объединённого диска (CCD) - -При выборе решения для организации хранилища самыми важными характеристиками являются скорость, надежность и стоимость. Редко все эти характеристики наличествуют одновременно; обычно быстрое и надёжное устройство хранения стоит дорого, а при уменьшении стоимости в жертву приносятся скорость работы или надёжность. - -При проектировании описываемой далее системы в качестве самого важного фактора была выбрана её стоимость, затем быстродействие и надёжность. Скорость передачи данных для этой системы ограничивалась только пропускной способностью сети. И, хотя надёжность очень важна, CCD-диск, описываемый ниже, обслуживал работу с данными, полные копии которых уже хранились на дисках CD-R, так они могли быть с лёгкостью обновлены. +Создается пустой каталог как _точка монтирования_ — место для подключения нового диска в файловой системе исходного диска: -При выборе решения для массового хранения данных первым шагом является определение ваших требований к нему. Если в ваших требованиях главными являются скорость или надёжность, а не стоимость, то ваш выбор будет отличаться от описываемой в этом разделе системы. - -[[ccd-installhw]] -===== Установка оборудования - -Кроме системного IDE-диска, основу описываемого далее CCD-диска общим объёмом примерно в 90 Гбайт составили три IDE-диска Western Digital 30GB, 5400 RPM. В идеальном случае каждый диск IDE имеет собственный контроллер и кабель, но для минимизации стоимости дополнительные контроллеры IDE не использовались. Вместо этого диски были настроены при помощи переключателей так, что на каждом IDE-контроллере находилось по одному ведущему и одному ведомому диску. - -До перезагрузки BIOS системы была настроена на автоматическое распознавание подключенных дисков. Более важно то, что при перезагрузке их распознала FreeBSD: - -[.programlisting] +[source, shell] .... -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 +# mkdir /newdisk .... -[NOTE] -==== -Если FreeBSD не распознала все диски, проверьте корректность положения переключателей на них. На большинстве IDE-дисков имеется также переключатель "Cable Select". Он _не имеет_ отношения к выбору ведущего и ведомого устройств. Для получения помощи по правильному положению переключателей обратитесь к документации по устройствам. -==== - -[[ccd-setup]] -===== Настройка CCD - -Драйвер man:ccd[4] позволяет вам взять несколько идентичных дисков и объединить их в одну логическую файловую систему. Для использования man:ccd[4] нужно ядро со встроенной поддержкой man:ccd[4]. Добавьте такую строку в файл конфигурации ядра, перестройте и установите новое ядро: +Наконец, в файл [.filename]#/etc/fstab# добавляется запись, чтобы новый диск автоматически монтировался при загрузке: [.programlisting] .... -device ccd +/dev/ada1p1 /newdisk ufs rw 2 2 .... -Поддержка man:ccd[4] также может быть обеспечена загрузкой подгружаемого модуля ядра. - -Для настройки man:ccd[4] сначала вам нужно воспользоваться утилитой man:bsdlabel[8] для разметки дисков: +Новый диск можно подключить вручную без перезагрузки системы: -[.programlisting] +[source, shell] .... -bsdlabel -w ad1 auto -bsdlabel -w ad2 auto -bsdlabel -w ad3 auto +# mount /newdisk .... -При этом создаются метки для [.filename]#ad1c#, [.filename]#ad2c# и [.filename]#ad3c#, которые занимают диск полностью. - -Следующим шагом является изменение типа метки диска. Для редактирования дисков можно использовать утилиту man:bsdlabel[8]: +[[disks-growing]] +== Изменение размера и увеличение дисков -[.programlisting] -.... -bsdlabel -e ad1 -bsdlabel -e ad2 -bsdlabel -e ad3 -.... +Емкость диска может быть увеличена без изменения уже имеющихся данных. Это часто происходит с виртуальными машинами, когда виртуальный диск оказывается слишком маленьким и его расширяют. Иногда образ диска записывается на USB-накопитель, но не использует его полную емкость. Здесь мы описываем, как изменить размер или _расширить_ содержимое диска, чтобы использовать увеличенную емкость. -При этом в редакторе, задаваемом переменной окружения `EDITOR` (обычно это man:vi[1]), открывается текущая метка каждого диска. +Определите имя устройства диска, который нужно изменить, просмотрев [.filename]#/var/run/dmesg.boot#. В этом примере в системе только один SATA-диск, поэтому диск будет отображаться как [.filename]#ada0#. -Не модифицированная метка диска будет выглядеть примерно следующим образом: +Перечислите разделы на диске, чтобы увидеть текущую конфигурацию: -[.programlisting] +[source, shell] .... -8 partitions: -# size offset fstype [fsize bsize bps/cpg] - c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597) +# gpart show ada0 +=> 34 83886013 ada0 GPT (48G) [CORRUPT] + 34 128 1 freebsd-boot (64k) + 162 79691648 2 freebsd-ufs (38G) + 79691810 4194236 3 freebsd-swap (2G) + 83886046 1 - free - (512B) .... -Добавьте новый раздел `e` для использования драйвером man:ccd[4]. Как правило, он может быть скопирован с раздела `c`, но поле `fstype` _должно_ иметь значение `4.2BSD`. Теперь метка диска должна выглядеть примерно так: +[NOTE] +==== +Если диск был отформатирован с использованием схемы разделов https://en.wikipedia.org/wiki/GUID_Partition_Table[GPT], он может отображаться как "повреждённый", поскольку резервная таблица разделов GPT больше не находится в конце диска. Восстановите резервную таблицу разделов с помощью `gpart`: -[.programlisting] +[source, shell] .... -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) +# gpart recover ada0 +ada0 recovered .... -[[ccd-buildingfs]] -===== Построение файловой системы +==== -Теперь, когда все диски размечены, вы должны построить man:ccd[4]. Для этого используйте утилиту man:ccdconfig[8] с параметрами, подобными следующим: +Теперь дополнительное пространство на диске доступно для использования новым разделом или для расширения существующего раздела: -[.programlisting] +[source, shell] .... -ccdconfig ccd0 32 0 /dev/ad1e /dev/ad2e /dev/ad3e +# gpart show ada0 +=> 34 102399933 ada0 GPT (48G) + 34 128 1 freebsd-boot (64k) + 162 79691648 2 freebsd-ufs (38G) + 79691810 4194236 3 freebsd-swap (2G) + 83886046 18513921 - free - (8.8G) .... -Использование и значение каждого параметра описывается ниже: -* Первым аргументом является конфигурируемое устройство, в нашем случае [.filename]#/dev/ccd0c#. Часть [.filename]#/dev/# является необязательной. -* Чередование для файловой системы. Оно определяет размер единицы блока данных в количестве дисковых блоков, каждый из которых обычно имеет объём в 512 байт. Таким образом, при чередовании в 32 это будет составлять 16384 байт. -* Опции для man:ccdconfig[8]. Если вы хотите включить зеркалирование диска, то можете задать это здесь. В нашей конфигурации зеркалирование для man:ccd[4] не предусмотрено, поэтому здесь задан 0 (ноль). -* Последним параметром для man:ccdconfig[8] является список устройств для объединения в массив. Для каждого устройства нужно задавать полное имя. +Разделы можно изменять в размере только в пределах непрерывного свободного пространства. В данном случае последним разделом на диске является раздел подкачки, но требуется изменить размер второго раздела. Поскольку разделы подкачки содержат только временные данные, их можно безопасно отмонтировать, удалить, а затем заново создать третий раздел после изменения размера второго раздела. -После запуска man:ccdconfig[8] устройство man:ccd[4] будет отконфигурировано. Может будет построить файловую систему. Обратитесь к справке по команде man:newfs[8] для выяснения требуемых параметров, или просто запустите: +Отключить раздел подкачки: -[.programlisting] +[source, shell] .... -newfs /dev/ccd0c +# swapoff /dev/ada0p3 .... -[[ccd-auto]] -===== Автоматическое выполнение - -Вообще говоря, вам потребуется монтировать man:ccd[4] при каждой перезагрузке. Для этого сначала вы должны отконфигурировать это устройство. Запишите вашу текущую конфигурацию в файл [.filename]#/etc/ccd.conf# при помощи такой команды: +Удалите третий раздел, указанный флагом `-i`, с диска _ada0_. -[.programlisting] +[source, shell] .... -ccdconfig -g > /etc/ccd.conf +# gpart delete -i 3 ada0 +ada0p3 deleted +# gpart show ada0 +=> 34 102399933 ada0 GPT (48G) + 34 128 1 freebsd-boot (64k) + 162 79691648 2 freebsd-ufs (38G) + 79691810 22708157 - free - (10G) .... -При перезагрузке скрипт `/etc/rc` запускает команду `ccdconfig -C`, если существует файл [.filename]#/etc/ccd.conf#. При этом man:ccd[4] автоматически конфигурируется так, чтобы он мог быть смонтирован. - -[NOTE] +[WARNING] ==== -Если при загрузке вы входите в однопользовательский режим, то перед тем, как выполнять монтирование man:ccd[4] по команде man:mount[8], вам нужно для конфигурации массива запустить следующую команду: -[.programlisting] +Существует риск потери данных при изменении таблицы разделов смонтированной файловой системы. Наилучшим вариантом будет выполнение следующих шагов на размонтированной файловой системе, загрузившись с Live CD-ROM или USB-устройства. Однако, если это крайне необходимо, смонтированную файловую систему можно изменить, отключив защитные механизмы GEOM: + +[source, shell] .... -ccdconfig -C +# sysctl kern.geom.debugflags=16 .... ==== -Для автоматического монтирования man:ccd[4] поместите запись о man:ccd[4] в файл [.filename]#/etc/fstab#, чтобы он мог быть смонтирован во время загрузки системы: +Измените размер раздела, оставив место для создания раздела подкачки нужного размера. Раздел, который нужно изменить, указывается с помощью `-i`, а новый желаемый размер — с помощью `-s`. Дополнительно выравнивание раздела контролируется с помощью `-a`. Это изменяет только размер раздела. Файловая система в разделе будет расширена в отдельном шаге. -[.programlisting] +[source, shell] .... -/dev/ccd0c /media ufs rw 2 2 +# gpart resize -i 2 -s 47G -a 4k ada0 +ada0p2 resized +# gpart show ada0 +=> 34 102399933 ada0 GPT (48G) + 34 128 1 freebsd-boot (64k) + 162 98566144 2 freebsd-ufs (47G) + 98566306 3833661 - free - (1.8G) .... -[[raid-hard]] -=== Аппаратный RAID - -FreeBSD поддерживает также целый ряд аппаратных контроллеров RAID. Эти устройства самостоятельно управляют RAID-подсистемой, без необходимости иметь специфичное для FreeBSD программное обеспечения управления массивом. - -При помощи встроенной в адаптер BIOS, он сам управляет большинством дисковых операций. Далее следует краткое описание установки при помощи контроллера Promise IDERAID. После установки адаптера и запуска системы, выдаётся запрос на ввод. Следуйте указаниям для входа в настройку адаптера. Отсюда вы можете объединить все подключенные диски. После этого во FreeBSD диск(и) будут выглядеть как один диск. Аналогично могут быть настроены и другие уровни RAID. - -=== Перестроение массивов ATA RAID1 +Воссоздайте раздел подкачки и активируйте его. Если размер не указан с помощью `-s`, используется все оставшееся пространство: -FreeBSD позволяет вам выполнять горячую замену вышедшего из строя диска. При этом требуется, чтобы вы заметили это до перезагрузки. - -Вероятно, в файле [.filename]#/var/log/messages# или в выдаче команды man:dmesg[8] вы увидите примерно следующее: - -[.programlisting] +[source, shell] .... -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 +# gpart add -t freebsd-swap -a 4k ada0 +ada0p3 added +# gpart show ada0 +=> 34 102399933 ada0 GPT (48G) + 34 128 1 freebsd-boot (64k) + 162 98566144 2 freebsd-ufs (47G) + 98566306 3833661 3 freebsd-swap (1.8G) +# swapon /dev/ada0p3 .... -При помощи man:atacontrol[8] получите дополнительную информацию: +Увеличьте файловую систему UFS, чтобы использовать новую ёмкость изменённого раздела: -[source,shell] +[source, shell] .... -# 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 - -# atacontrol status ar0 -ar0: ATA RAID1 subdisks: ad4 ad6 status: DEGRADED +# growfs /dev/ada0p2 +Device is mounted read-write; resizing will result in temporary write suspension for /. +It's strongly recommended to make a backup before growing the file system. +OK to grow file system on /dev/ada0p2, mounted on /, from 38GB to 47GB? [Yes/No] Yes +super-block backups (for fsck -b #) at: + 80781312, 82063552, 83345792, 84628032, 85910272, 87192512, 88474752, + 89756992, 91039232, 92321472, 93603712, 94885952, 96168192, 97450432 .... -[.procedure] -==== +Если файловая система ZFS, изменение размера запускается выполнением подкоманды `online` с ключом `-e`: -. Сначала вам нужно отключить канал контроллера ATA, содержащий отказавший диск, чтобы его можно было без последствий извлечь: -+ -[source,shell] -.... -# atacontrol detach ata3 -.... -+ -. Замените диск. -. Повторно подключите канал дискового контроллера: -+ -[source,shell] -.... -# atacontrol attach ata3 -Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 -Slave: no device present +[source, shell] .... -+ -. Добавьте новый диск к массиву в качестве резервного: -+ -[source,shell] -.... -# atacontrol addspare ar0 ad6 -.... -+ -. Перестройте массив: -+ -[source,shell] +# zpool online -e zroot /dev/ada0p2 .... -# atacontrol rebuild ar0 -.... -+ -. Проверить состояние дел можно при помощи следующей команды: -+ -[source,shell] -.... -# dmesg | tail -10 -[выдача удалена] -ad6: removed from configuration -ad6: deleted from ar0 disk1 -ad6: inserted into ar0 disk1 as spare -# atacontrol status ar0 -ar0: ATA RAID1 subdisks: ad4 ad6 status: REBUILDING 0% completed -.... -+ -. Дождитесь завершения этой операции. -==== +Как раздел, так и файловая система на нем теперь изменены в размере для использования нового доступного пространства на диске. [[usb-disks]] -== USB устройства хранения +== USB-накопители -Множество современных устройств хранения используют Universal Serial Bus (USB): жесткие диски, брелоки USB, CD-R приводы, и т.д. FreeBSD предоставляет поддержку этих устройств. +Многие внешние устройства хранения данных, такие как жесткие диски, USB-флешки, а также устройства для записи CD и DVD, используют универсальную последовательную шину (USB). FreeBSD поддерживает устройства USB 1.x, 2.0 и 3.0. -=== Настройка +[NOTE] +==== +Поддержка USB 3.0 несовместима с некоторым оборудованием, включая чипсеты Haswell (Lynx point). Если FreeBSD загружается с сообщением `failed with error 19`, отключите xHCI/USB3 в BIOS системы. +==== -Драйвер man:umass[4] предоставляет поддержку устройств хранения USB. Если вы используете [.filename]#GENERIC# ядро, изменять что-либо в настройках не потребуется. Если вы используете настроенное ядро, убедитесь, что в файле настройки присутствуют следующие строки: +Поддержка USB-накопителей встроена в ядро [.filename]#GENERIC#. Для собственной сборки ядра убедитесь, что следующие строки присутствуют в конфигурационном файле ядра: [.programlisting] .... -device scbus -device da -device pass -device uhci -device ohci -device ehci -device usb -device umass +device scbus # SCSI bus (required for ATA/SCSI) +device da # Direct Access (disks) +device pass # Passthrough device (direct ATA/SCSI access) +device uhci # provides USB 1.x support +device ohci # provides USB 1.x support +device ehci # provides USB 2.0 support +device xhci # provides USB 3.0 support +device usb # USB Bus (required) +device umass # Disks/Mass storage - Requires scbus and da +device cd # needed for CD and DVD burners .... -Для доступа к устройствам хранения USB драйвер man:umass[4] использует подсистему SCSI, ваши устройства USB будут видны системе как SCSI устройства. В зависимости от чипсета USB на материнской плате, для включения поддержки USB 1.X вам потребуется только один из параметров `device uhci` или `device ohci`. Однако, наличие обоих этих параметров не помешает. Поддержка контроллеров USB 2.0 предоставляется драйвером man:ehci[4] (строка `device ehci`). Не забудьте скомпилировать и установить новое ядро после добавления каких-либо строк. +FreeBSD использует драйвер man:umass[4], который задействует подсистему SCSI для доступа к USB-устройствам хранения данных. Поскольку любое USB-устройство будет распознаваться системой как SCSI-устройство, если USB-устройство является записывающим CD- или DVD-приводом, _не_ включайте `device atapicam` в конфигурационный файл пользовательского ядра. -[NOTE] -==== -Если ваше USB устройство это пишущий привод CD-R или DVD, необходимо добавить в ядро SCSI CD-ROM драйвер, man:cd[4], следующей строкой: +Оставшаяся часть этого раздела демонстрирует, как убедиться, что USB-накопитель распознаётся FreeBSD, и как настроить устройство для использования. -[.programlisting] +=== Настройка устройств + +Для проверки конфигурации USB подключите USB-устройство. Используйте `dmesg`, чтобы убедиться, что устройство появилось в системном буфере сообщений. Результат должен выглядеть примерно так: + +[source, shell] .... -device cd +umass0: <STECH Simple Drive, class 0/0, rev 2.00/1.04, addr 3> on usbus0 +umass0: SCSI over Bulk-Only; quirks = 0x0100 +umass0:4:0:-1: Attached to scbus4 +da0 at umass-sim0 bus 0 scbus4 target 0 lun 0 +da0: <STECH Simple Drive 1.04> Fixed Direct Access SCSI-4 device +da0: Serial Number WD-WXE508CAN263 +da0: 40.000MB/s transfers +da0: 152627MB (312581808 512 byte sectors: 255H 63S/T 19457C) +da0: quirks=0x2<NO_6_BYTE> .... -Поскольку устройство записи видно как SCSI диск, драйвер man:atapicam[4] не должен использоваться в файле настройки. -==== - -=== Тестирование конфигурации +Марка, файл устройства ([.filename]#da0#), скорость и размер будут отличаться в зависимости от устройства. -Конфигурация готова к тестированию, подключите устройство USB, и в буфере системных сообщений (man:dmesg[8]), диск должен отобразиться примерно так: +Поскольку USB-устройство распознаётся как SCSI, для вывода списка USB-накопителей, подключённых к системе, можно использовать `camcontrol`: -[source,shell] +[source, shell] .... -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) +# camcontrol devlist +<STECH Simple Drive 1.04> at scbus4 target 0 lun 0 (pass3,da0) .... -Конечно, производитель, имя устройства ([.filename]#da0#) и другие детали могут отличаться в зависимости от конфигурации. - -Поскольку устройство USB видится как SCSI, команда `camcontrol` может быть использована для вывода списка устройств хранения USB, подключенных к системе: +Или можно использовать `usbconfig` для вывода списка устройств. Дополнительную информацию об этой команде смотрите в man:usbconfig[8]. -[source,shell] +[source, shell] .... -# camcontrol devlist -<Generic Traveling Disk 1.11> at scbus0 target 0 lun 0 (da0,pass0) +# usbconfig +ugen0.3: <Simple Drive STECH> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (2mA) .... -Если на диске есть файловая система, у вас должна быть возможность смонтировать ее. <<disks-adding>> поможет вам создать и отформатировать разделы на диске USB если потребуется. +Если устройство не было отформатировано, обратитесь к crossref:disks[disks-adding,Добавление дисков] для получения инструкций по форматированию и созданию разделов на USB-накопителе. Если накопитель поставляется с файловой системой, он может быть смонтирован пользователем `root` с помощью инструкций из crossref:basics[mount-unmount,«Монтирование и размонтирование файловых систем»]. [WARNING] ==== - -Ниже описанный механизм (`vfs.usermount`), допускающий монтирование случайных носителей пользователями, не являющимися доверенными, считается небезопасным. Большинство файловых систем во FreeBSD никак не ограждено от возможности _несанкционированного_ монтирования устройств. +Разрешение непривилегированным пользователям монтировать произвольные носители путем включения `vfs.usermount`, как описано ниже, не должно считаться безопасным с точки зрения защиты. Большинство файловых систем не предназначены для защиты от вредоносных устройств. ==== -Чтобы это устройство мог смонтировать обычный пользователь, необходимо выполнить определенные действия. Для начала, необходимо дать обычным пользователям доступ к устройствам, создаваемым при подключении USB устройства. Решение состоит во включении всех пользователей данных устройств в группу `operator`. Это делается утилитой man:pw[8]. Затем, когда устройства созданы, у группы `operator` должен быть доступ на чтение и запись для этих устройств. Это выполняется путем добавления следующих строк в [.filename]#/etc/devfs.rules#: +Чтобы устройство можно было монтировать обычным пользователем, одним из решений является добавление всех пользователей устройства в группу `operator` с помощью man:pw[8]. Затем убедитесь, что группа `operator` имеет права на чтение и запись устройства, добавив следующие строки в [.filename]#/etc/devfs.rules#: [.programlisting] .... @@ -513,1179 +342,913 @@ add path 'da*' mode 0660 group operator [NOTE] ==== -Если к системе подключены SCSI диски, это должно быть сделано немного иначе. Так, если в системе уже есть диски с [.filename]#da0# по [.filename]#da2#, вторая строка должна выглядеть так: +Если в системе также установлены внутренние SCSI-диски, измените вторую строку следующим образом: [.programlisting] .... add path 'da[3-9]*' mode 0660 group operator .... -Это исключит уже существующие диски из группы `operator`. +Это исключит первые три SCSI-диска ([.filename]#da0# — [.filename]#da2#) из принадлежности к группе `operator`. Замените _3_ на количество внутренних SCSI-дисков. Дополнительную информацию об этом файле смотрите в man:devfs.rules[5]. ==== -Вам также потребуется включить набор правил man:devfs.rules[5] в файл [.filename]#/etc/rc.conf#: +Затем включите набор правил в [.filename]#/etc/rc.conf#: [.programlisting] .... devfs_system_ruleset="localrules" .... -Затем, ядро необходимо настроить так, чтобы оно позволяло обычным пользователям монтировать файловые системы. Простейший способ сделать это - добавить в файл [.filename]#/etc/sysctl.conf# следующую строку: +Затем настройте систему для разрешения обычным пользователям монтировать файловые системы, добавив следующую строку в [.filename]#/etc/sysctl.conf#: [.programlisting] .... vfs.usermount=1 .... -Этот параметр установится только после последующей перезагрузки. Для установки этой переменной можно также использовать man:sysctl[8]. +Поскольку это вступит в силу только после следующей перезагрузки, используйте `sysctl`, чтобы установить эту переменную сейчас: -Последний шаг - создание каталога, куда будет монтироваться файловая система. Каталог должен принадлежать пользователю, монтирующему файловую систему. Один из способов сделать это под пользователем `root` - создать каталог [.filename]#/mnt/username# (замените _username_ именем пользователя, а _usergroup_ - именем главной группы пользователя): +[source, shell] +.... +# sysctl vfs.usermount=1 +vfs.usermount: 0 -> 1 +.... -[source,shell] +Последним шагом является создание каталога, в который будет монтироваться файловая система. Этот каталог должен принадлежать пользователю, который будет монтировать файловую систему. Один из способов сделать это — создать подкаталог от имени `root`, принадлежащий этому пользователю, например [.filename]#/mnt/username#. В следующем примере замените _username_ на имя пользователя, а _usergroup_ на основную группу пользователя: + +[source, shell] .... # mkdir /mnt/username # chown username:usergroup /mnt/username .... -Предположим, что USB брелок подключен, и появилось устройство [.filename]#/dev/da0s1#. Поскольку эти устройства обычно поставляются форматированными с файловой системой FAT, их можно смонтировать так: +Предположим, подключена USB-флешка, и появилось устройство [.filename]#/dev/da0s1#. Если устройство отформатировано с файловой системой FAT, пользователь может смонтировать его с помощью: -[source,shell] +[source, shell] .... % mount -t msdosfs -o -m=644,-M=755 /dev/da0s1 /mnt/username .... -Если вы отключите устройство (диск должен быть сначала размонтирован), вы должны увидеть в буфере системных сообщений что-то подобное: +Прежде чем устройство можно будет отключить, его _необходимо_ размонтировать: -[source,shell] +[source, shell] .... -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 +% umount /mnt/username .... -=== Дополнительная информация - -Помимо разделов <<disks-adding,Добавление дисков>> и crossref:basics[mount-unmount,Монтирование и размонтирование файловых систем], также может быть полезно чтение различных страниц справочника: man:umass[4], man:camcontrol[8], и man:usbconfig[8] для FreeBSD 8.X или man:usbdevs[8] для более ранних версий FreeBSD. - -[[creating-cds]] -== Запись и использование оптических носителей (CD) - -=== Введение +После удаления устройства в системном буфере сообщений будут отображены сообщения, аналогичные следующим: -Компакт-диски (CD) имеют несколько особенностей, отличающих их от обычных дисков. Во-первых, на них невозможно производить запись. Они спроектированы с расчетом на то, что их можно читать последовательно без задержек на перемещение головки между дорожками. К тому же их гораздо проще переносить от системы к системе, чем носители близкого объема. - -У CD имеются дорожки, но они представляют собой последовательность данных, читаемую последовательно, и не являются физической характеристикой диска. Для записи CD во FreeBSD вы готовите файлы данных, которые будут формировать дорожки на компакт-диске, а затем записываете дорожки на CD. +[source, shell] +.... +umass0: at uhub3, port 2, addr 3 (disconnected) +da0 at umass-sim0 bus 0 scbus4 target 0 lun 0 +da0: <STECH Simple Drive 1.04> s/n WD-WXE508CAN263 detached +(da0:umass-sim0:0:0:0): Periph destroyed +.... -Файловая система ISO 9660 была разработана с учетом этих отличий, К сожалению, она унаследовала ограничения файловых систем, которые были тогда. К счастью, она дает механизм расширений, которые позволяют правильно записанным дискам обходить эти ограничения и при этом продолжать работать с системами, которые не поддерживают эти расширения. +=== Автомонтирование съемных носителей -Для создания файла данных, содержащего файловую систему ISO 9660, используется программа man:mkisofs[8], которая включена в порт package:sysutils/cdrtools[]. Она имеет опции, поддерживающие различные расширения, и описана ниже. +USB-устройства могут автоматически монтироваться при раскомментировании этой строки в [.filename]#/etc/auto_master#: -Какой инструмент использовать для записи CD, зависит от того, является ли ваше устройство для записи CD устройством ATAPI или каким-либо другим. С устройствами для записи стандарта ATAPI используется программа `burncd`, которая является частью комплекта поставки системы. С устройствами SCSI и USB нужно использовать `cdrecord` из порта package:sysutils/cdrtools[]. Утилиту `cdrecord` и другие инструменты для SCSI-приводов также можно использовать при работе с ATAPI-оборудованием через <<atapicam,модуль ATAPI/CAM>>. +[source, shell] +.... +/media -media -nosuid +.... -Если для записи CD вам нужна программа с графическим интерфейсом пользователя, взгляните на X-CD-Roast или K3b. Они доступны в виде пакетов или из портов package:sysutils/xcdroast[] и package:sysutils/k3b[]. Программам X-CD-Roast и K3b для работы с оборудованием ATAPI требуется <<atapicam,модуль ATAPI/CAM>>. +Затем добавьте следующие строки в [.filename]#/etc/devd.conf#: -[[mkisofs]] -=== mkisofs +[source, shell] +.... +notify 100 { + match "system" "GEOM"; + match "subsystem" "DEV"; + action "/usr/sbin/automount -c"; +}; +.... -Программа man:mkisofs[8], поставляемая с портом package:sysutils/cdrtools[] создаёт файловую систему ISO 9660, которая является образом дерева каталогов в пространстве имён файловой системы UNIX(R). В самом простом случае она используется так: +Перезагрузите конфигурацию, если man:autofs[5] и man:devd[8] уже запущены: -[source,shell] +[source, shell] .... -# mkisofs -o imagefile.iso /path/to/tree +# service automount restart +# service devd restart .... -Эта команда создаст файл _imagefile.iso_, содержащий файловую систему ISO 9660, которая является копией дерева каталогов _/path/to/tree_. Во время работы она будет преобразовывать имена файлов в имена, которые удовлетворяют ограничениям файловой системы ISO 9660, и исключит файлы, которые носят имена, неподходящие для файловой системы ISO. +man:autofs[5] можно настроить для запуска при загрузке, добавив следующую строку в [.filename]#/etc/rc.conf#: -Для того, чтобы обойти эти ограничения, имеется несколько опций. В частности, `-R` включает использование расширений Rock Ridge, распространенных в UNIX(R)-системах, с `-J` будут применены расширения Joliet, используемые в системах от Microsoft, а `-hfs` может использоваться для создания файловых систем HFS, используемых в Mac OS(R). +[.programlisting] +.... +autofs_enable="YES" +.... -Для CD, которые будут использоваться только с системами FreeBSD, может использоваться опция `-U`, отменяющая все ограничения на имена файлов. При использовании с опцией `-R` генерируется образ файловой системы, идентичный начальному дереву FreeBSD, хотя при этом стандарт ISO 9660 может нарушаться в нескольких местах. +man:autofs[5] требует, чтобы man:devd[8] был включён, как это и настроено по умолчанию. -Последней часто используемой опцией является `-b`. Она используется для указания загрузочного образа для использования при создании загрузочного CD в стандарте "El Torito". Этой опции указывается аргумент, который является маршрутом к загрузочному образу из корня дерева, записываемого на CD. По умолчанию, man:mkisofs[8] создает образ ISO в так называемом режиме "эмуляции флоппи-диска", и потому ожидает загрузочный образ размера строго 1200, 1440 или 2880 KB. Некоторые загрузчики, в том числе и тот, что используется на дистрибутивных дисках FreeBSD, не используют режим эмуляции; в этом случае должна использоваться опция `-no-emul-boot`. Так что, если [.filename]#/tmp/myboot# содержит загрузочную систему FreeBSD с загрузочным образом в [.filename]#/tmp/myboot/boot/cdboot#, вы можете создать образ файловой системы ISO 9660 в [.filename]#/tmp/bootable.iso# следующим образом: +Запустите службы немедленно с помощью: -[source,shell] +[source, shell] .... -# mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot +# service automount start +# service automountd start +# service autounmountd start +# service devd start .... -Сделав это, и имея в ядре отконфигурированное устройство [.filename]#md#, вы можете смонтировать файловую систему, выполнив: +Каждая файловая система, которая может быть автоматически смонтирована, отображается как каталог в [.filename]#/media/#. Каталог именуется в соответствии с меткой файловой системы. Если метка отсутствует, каталог именуется в соответствии с устройством. + +Файловая система автоматически монтируется при первом доступе и размонтируется после периода неактивности. Автомонтируемые диски также можно размонтировать вручную: -[source,shell] +[source, shell] .... -# mdconfig -a -t vnode -f /tmp/bootable.iso -u 0 -# mount -t cd9660 /dev/md0 /mnt +# automount -fu .... -В этот момент вы можете проверить, что [.filename]#/mnt# и [.filename]#/tmp/myboot# идентичны. - -Имеется много других опций, которые можно использовать с программой man:mkisofs[8] для тонкой настройки её поведения. В частности: модификации в размещении ISO 9660 и создание дисков в форматах Joliet и HFS. Обратитесь к справочным страницам по man:mkisofs[8] для получения более подробной информации. +Этот механизм обычно используется для карт памяти и USB-флешек. Он может применяться с любыми блочными устройствами, включая оптические приводы или iSCSI LUN. -[[burncd]] -=== burncd +[[creating-cds]] +== Создание и использование CD-носителей -Если ваше устройство для записи CD соответствует стандарту ATAPI, то для записи ISO-образа на компакт-диск вы можете воспользоваться командой `burncd`. `burncd` входит в базовый комплект операционной системы и установлена как [.filename]#/usr/sbin/burncd#. Использовать её очень просто, так как параметров у ней немного: +Компакт-диски (CD) обладают рядом особенностей, которые отличают их от обычных дисков. Они спроектированы так, чтобы их можно было читать непрерывно без задержек на перемещение головки между дорожками. Хотя на CD действительно есть дорожки, они обозначают участки данных, предназначенные для непрерывного чтения, а не физическое свойство диска. Файловая система ISO 9660 была разработана для работы с этими различиями. -[source,shell] -.... -# burncd -f cddevice data imagefile.iso fixate -.... +Коллекция портов FreeBSD предоставляет несколько утилит для записи и копирования аудио- и данных на CD. В этой главе демонстрируется использование нескольких утилит командной строки. Для записи CD с графическим интерфейсом можно установить пакеты или порты package:sysutils/xcdroast[] или package:sysutils/k3b[]. -По этой команде файл _imagefile.iso_ будет скопирован на _cddevice_. По умолчанию используется устройство [.filename]#/dev/acd0#. Для получения информации о параметрах, задающих скорость записи, выброс диска после записи и запись звуковых данных, обратитесь к man:burncd[8]. - -[[cdrecord]] -=== cdrecord +[[atapicam]] +=== Поддерживаемые устройства -Если ваше устройство для записи CD не соответствует стандарту ATAPI, то для записи компакт-дисков вам нужно пользоваться программой `cdrecord`. `cdrecord` не входит в комплект поставки системы; вы должны установить её из порта package:sysutils/cdrtools[] или из соответствующего пакета. Изменения в системе могут приводить к тому, что откомпилированные версии этой программы работать не будут, или приводить к порче дисков. Поэтому вы должны при обновлении системы либо обновить порт, либо, если вы crossref:cutting-edge[stable,следуете -STABLE], обновить порт при появлении его новой версии. +Ядро [.filename]#GENERIC# обеспечивает поддержку SCSI, USB и устройств чтения и записи ATAPICD. Если используется собственное ядро, параметры, которые должны присутствовать в конфигурационном файле ядра, зависят от типа устройства. -Хотя `cdrecord` имеет много опций, в основном использовать её ещё проще, чем `burncd`. Запись образа ISO 9660 делается такой командой: +Для SCSI-устройства, записывающего CD или DVD диски, убедитесь, что присутствуют следующие параметры: -[source,shell] +[.programlisting] .... -# cdrecord dev=device imagefile.iso +device scbus # SCSI bus (required for ATA/SCSI) +device da # Direct Access (disks) +device pass # Passthrough device (direct ATA/SCSI access) +device cd # needed for CD and DVD burners .... -Тонким моментом при использовании `cdrecord` является определение правильного устройства `dev`. Чтобы задать параметр правильно, воспользуйтесь флагом `-scanbus` команды `cdrecord`, в результате чего может получиться примерно такой результат: +Для USB-привода убедитесь, что указаны следующие параметры: -[source,shell] +[.programlisting] .... -# cdrecord -scanbus -Cdrecord-Clone 2.01 (i386-unknown-freebsd7.0) Copyright (C) 1995-2004 J"org 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) * +device scbus # SCSI bus (required for ATA/SCSI) +device da # Direct Access (disks) +device pass # Passthrough device (direct ATA/SCSI access) +device cd # needed for CD and DVD burners +device uhci # provides USB 1.x support +device ohci # provides USB 1.x support +device ehci # provides USB 2.0 support +device xhci # provides USB 3.0 support +device usb # USB Bus (required) +device umass # Disks/Mass storage - Requires scbus and da .... -Здесь приведены соответствующие значения параметров `dev` для имеющихся устройств. Найдите здесь ваше устройство для записи CD, а в качестве параметров для `dev` задавайте три числа через запятые. В нашем случае CRW-устройству соответствуют числа 1,5,0, так что правильным параметром будет `dev=1,5,0`. Имеется более простой способ задать эти значения; обратитесь к справочной информации о man:cdrecord[1] для выяснения подробностей. Там же находится информация о записи звуковых дорожек, управлении скоростью и другим вещам. - -[[duplicating-audiocds]] -=== Копирование аудио CD +Для ATAPI устройств, записывающих CD или DVD диски, убедитесь, что указаны следующие параметры: -Вы можете копировать музыкальные CD, извлекая данные аудио с CD в набор файлов, а затем записывая эти файлы на чистый CD. Процесс несколько различен в случаях использования устройств ATAPI и SCSI. +[.programlisting] +.... +device ata # Legacy ATA/SATA controllers +device scbus # SCSI bus (required for ATA/SCSI) +device pass # Passthrough device (direct ATA/SCSI access) +device cd # needed for CD and DVD burners +.... -[.procedure] +[NOTE] ==== -*Procedure: Устройства SCSI* +В версиях FreeBSD до 10.x эта строка также необходима в конфигурационном файле ядра, если устройство записи является ATAPI-устройством: -. Используйте `cdda2wav` для извлечения данных аудио. -+ -[source,shell] +[.programlisting] .... -% cdda2wav -vall -D2,0 -B -Owav +device atapicam .... -+ -. Воспользуйтесь `cdrecord` для записи файлов [.filename]#.wav#. -+ -[source,shell] + +В качестве альтернативы, этот драйвер можно загрузить при загрузке, добавив следующую строку в файл [.filename]#/boot/loader.conf#: + +[.programlisting] .... -% cdrecord -v dev=2,0 -dao -useinfo *.wav +atapicam_load="YES" .... -+ -Значение, соответствующее _2,0_, должно быть установлено правильно, как это описано в <<cdrecord>>. -==== -[.procedure] +Это потребует перезагрузки системы, так как этот драйвер может быть загружен только во время загрузки. ==== -*Procedure: Устройства ATAPI* -[NOTE] -====== -На приводах ATAPI также можно использовать утилиту `cdda2wav`. Для её функционирования потребуется <<atapicam,драйвер ATAPI/CAM>>. Следует отметить, что данная утилита предназначена для корректного извлечения и обработки аудио данных, в отличие от утилиты, приведенной в нижеследующем примере. -====== +Чтобы убедиться, что FreeBSD распознает устройство, выполните команду `dmesg` и найдите запись об этом устройстве. В системах до версии 10.x имя устройства в первой строке вывода будет [.filename]#acd0# вместо [.filename]#cd0#. -. Драйвер устройств ATAPI CD делает каждую дорожку доступной как [.filename]#/dev/acddtnn#, где _d_ является номером привода, а _nn_ соответствует номеру дорожки, который записывается двумя десятичными цифрами с нулём в начале, если это нужно. Таким образом, первая дорожка на первом диске будет носить имя [.filename]#/dev/acd0t01#, вторая будет именоваться [.filename]#/dev/acd0t02#, третья будет носить имя [.filename]#/dev/acd0t03# и так далее. -+ -Удостоверьтесь, что соответствующий файл имеется в каталоге [.filename]#/dev#. При его отсутствии следует принудительно перечитать оглавление диска: -+ -[source,shell] +[source, shell] .... -# dd if=/dev/acd0 of=/dev/null count=1 +% dmesg | grep cd +cd0 at ahcich1 bus 0 scbus1 target 0 lun 0 +cd0: <HL-DT-ST DVDRAM GU70N LT20> Removable CD-ROM SCSI-0 device +cd0: Serial Number M3OD3S34152 +cd0: 150.000MB/s transfers (SATA 1.x, UDMA6, ATAPI 12bytes, PIO 8192bytes) +cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed .... -+ -. Извлеките каждую дорожку при помощи команды man:dd[1]. При извлечении файлов вы должны также использовать специфическое значение для размера блока. -+ -[source,shell] + +[[cdrecord]] +=== Запись компакт-диска + +В FreeBSD для записи компакт-дисков можно использовать `cdrecord`. Эта команда устанавливается с пакетом или портом package:sysutils/cdrtools[]. + +Хотя `cdrecord` имеет множество опций, базовое использование просто. Укажите имя ISO-файла для записи и, если в системе несколько устройств для записи, укажите имя используемого устройства: + +[source, shell] .... -# dd if=/dev/acd0t01 of=track1.cdr bs=2352 -# dd if=/dev/acd0t02 of=track2.cdr bs=2352 -... +# cdrecord dev=device imagefile.iso .... -+ -. Запишите извлечённые файлы на диск при помощи утилиты `burncd`. Вы должны указать, что это файлы с аудио, и что `burncd` должна зафиксировать диск по окончании работы. -+ -[source,shell] + +Чтобы определить имя устройства записывающего привода, используйте `-scanbus`, что может дать результат, подобный следующему: + +[source, shell] .... -# burncd -f /dev/acd0 audio track1.cdr track2.cdr ... fixate +# cdrecord -scanbus +ProDVD-ProBD-Clone 3.00 (amd64-unknown-freebsd10.0) Copyright (C) 1995-2010 Jörg Schilling +Using libscg version 'schily-0.9' +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) * .... -==== -[[imaging-cd]] -=== Копирование компакт-дисков с данными +Найдите запись устройство для записи CD и используйте три числа, разделенные запятыми, в качестве значения для `dev`. В данном случае устройство Yamaha имеет значение `1,5,0`, поэтому правильный ввод для указания этого устройства — `dev=1,5,0`. Обратитесь к руководству `cdrecord` для других способов указания этого значения, а также для получения информации о записи аудиодорожек и управлении скоростью записи. -Вы можете скопировать CD с данными в файл образа, который функционально эквивалентен файлу образа, созданному командой man:mkisofs[8], и вы можете использовать его для копирования любого CD с данными. В приводимом здесь примере предполагается, что ваш привод CDROM называется [.filename]#acd0#. Подставьте название вашего привода CDROM. +Или выполните следующую команду, чтобы получить адрес записывающего устройства: -[source,shell] +[source, shell] .... -# dd if=/dev/acd0 of=file.iso bs=2048 +# camcontrol devlist +<MATSHITA CDRW/DVD UJDA740 1.00> at scbus1 target 0 lun 0 (cd0,pass0) .... -Теперь, когда вы имеете образ, вы можете записать его на CD так, как это описано выше. +Используйте числовые значения для `scbus`, `target` и `lun`. В этом примере `1,0,0` — это имя устройства, которое следует использовать. -[[mounting-cd]] -=== Использование компакт-диски с данными +[[mkisofs]] +=== Запись данных в файловую систему ISO -Теперь, после того, как вы создали стандартный CDROM с данными, вы, наверное, захотите смонтировать его и считать с него данные. По умолчанию man:mount[8] предполагает, что файловая система имеет тип `ufs`. Если вы попытаетесь выполнить что-то вроде: +Для создания компакт-диска с данными файлы, которые будут составлять дорожки на диске, необходимо подготовить перед записью на CD. В FreeBSD пакет package:sysutils/cdrtools[] устанавливает `mkisofs`, который можно использовать для создания файловой системы ISO 9660, представляющей образ дерева каталогов в UNIX(R) файловой системе. Простейший способ использования — указать имя создаваемого ISO-файла и путь к файлам, которые нужно поместить в файловую систему ISO 9660: -[source,shell] +[source, shell] .... -# mount /dev/cd0 /mnt +# mkisofs -o imagefile.iso /path/to/tree .... -вы получите сообщение `Incorrect super block`, и диск не смонтируется. CDROM не является файловой системой `UFS`, поэтому попытки смонтировать его таким образом будут терпеть неудачу. Вам просто нужно указать команде man:mount[8], что файловая система имеет тип `ISO9660`, и всё должно заработать. Сделайте это, задав параметр `-t cd9660` при вызове man:mount[8]. К примеру, если вы хотите смонтировать устройство CDROM, [.filename]#/dev/cd0#, в каталог [.filename]#/mnt#, вы должны выполнить: +Эта команда сопоставляет имена файлов в указанном пути с именами, соответствующими ограничениям стандартной файловой системы ISO 9660, и исключает файлы, не соответствующие стандарту для файловых систем ISO. + +Для преодоления ограничений стандарта доступен ряд опций. В частности, `-R` включает расширения Rock Ridge, распространённые в системах UNIX(R), а `-J` включает расширения Joliet, используемые в системах Microsoft(R). -[source,shell] +Для компакт-дисков, которые будут использоваться только в системах FreeBSD, можно применить `-U` для отключения всех ограничений на имена файлов. При использовании вместе с `-R` создаётся образ файловой системы, идентичный указанному дереву FreeBSD, даже если он нарушает стандарт ISO 9660. + +Последняя опция общего назначения — `-b`. Она используется для указания местоположения загрузочного образа при создании загрузочного CD в формате "El Torito". Эта опция принимает аргумент — путь к загрузочному образу относительно корня дерева, записываемого на CD. По умолчанию `mkisofs` создаёт образ ISO в режиме "эмуляции флоппи-диска", поэтому ожидает, что загрузочный образ будет иметь размер ровно 1200, 1440 или 2880 КБ. Некоторые загрузчики, например, используемые на дистрибутивных носителях FreeBSD, не применяют режим эмуляции. В этом случае следует использовать опцию `-no-emul-boot`. Таким образом, если [.filename]#/tmp/myboot# содержит загрузочную систему FreeBSD с загрузочным образом в [.filename]#/tmp/myboot/boot/cdboot#, то следующая команда создаст [.filename]#/tmp/bootable.iso#: + +[source, shell] .... -# mount -t cd9660 /dev/cd0 /mnt +# mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot .... -Заметьте, что имя вашего устройства ([.filename]#/dev/cd0# в этом примере) может быть другим, в зависимости от интерфейса, используемого в CDROM. Кроме того, параметр `-t cd9660` всего лишь задаёт выполнение утилиты man:mount_cd9660[8]. Пример выше может быть упрощён до: +Полученный образ ISO можно подключить как диск в памяти с помощью: -[source,shell] +[source, shell] .... -# mount_cd9660 /dev/cd0c /mnt +# mdconfig -a -t vnode -f /tmp/bootable.iso -u 0 +# mount -t cd9660 /dev/md0 /mnt .... -Таким способом, вообще говоря, вы можете использовать компакт-диски любого производителя. Диски с некоторыми расширениями ISO 9660 могут, однако, работать со странностями. К примеру диски Joliet хранят все имена файлов в виде последовательностей двухбайтовых символов Unicode. Ядро FreeBSD не может работать с Unicode, но CD9660 драйвер способен преобразовывать Unicode символы на лету. Если некоторые символы не английского алфавита выглядят, как знаки вопроса, то вам нужно указать используемую вами кодировку с помощью опции `-C`. За дополнительной информацией, обращайтесь к странице справочника man:mount_cd9660[8]. +Затем можно убедиться, что [.filename]#/mnt# и [.filename]#/tmp/myboot# идентичны. + +Доступно множество других опций для `mkisofs`, позволяющих точно настроить его поведение. Подробности смотрите в man:mkisofs[8]. [NOTE] ==== -Чтобы смочь произвести преобразование символов посредством опции `-C`, ядру понадобится загрузить модуль [.filename]#cd9660_iconv.ko#. Это может быть сделано либо добавлением ниже представленной строчки в [.filename]#loader.conf#: +Возможно скопировать компакт-диск с данными в файл образа, функционально эквивалентный файлу образа, созданному с помощью `mkisofs`. Для этого используйте [.filename]#dd#, указав имя устройства в качестве входного файла и имя создаваемого ISO в качестве выходного файла: -[.programlisting] +[source, shell] .... -cd9660_iconv_load="YES" +# dd if=/dev/cd0 of=file.iso bs=2048 .... -с последующей перезагрузкой машины, либо загрузкой модуля вручную с помощью man:kldload[8]. +Полученный файл образа можно записать на компакт-диск, как описано в crossref:disks[cdrecord,Запись компакт-диска]. ==== -Время от времени вы можете получать сообщения `Device not configured` при попытке смонтировать CDROM. Это обычно означает, что привод CDROM полагает, что в нём нет диска, или что привод не виден на шине. Приводу CDROM может понадобиться несколько секунд, чтобы понять, что он был закрыт, так что будьте терпеливы. +[[mounting-cd]] +=== Использование компакт-дисков с данными -Иногда SCSI CDROM может потеряться из-за того, что у него не было достаточно времени, чтобы ответить на сброс шины. Если у вас имеется SCSI CDROM, то, пожалуйста, добавьте следующий параметр в конфигурацию вашего ядра и crossref:kernelconfig[kernelconfig-building,перестройте его]. +После записи ISO-образа на компакт-диск его можно смонтировать, указав тип файловой системы, имя устройства с компакт-диском и существующую точку монтирования: -[.programlisting] +[source, shell] .... -options SCSI_DELAY=15000 +# mount -t cd9660 /dev/cd0 /mnt .... -Это укажет вашей шине SCSI выдерживать 15-секундную паузу во время загрузки, чтобы дать вашему приводу CDROM шанс ответить на сброс шины. - -[[rawdata-cd]] -=== Запись необработанных данных на компакт-диски - -Вы можете предпочесть запись файла непосредственно на CD без создания файловой системы ISO 9660. Некоторые поступают так при создании резервных копий. Это выполняется гораздо быстрее. чем запись стандартного компакт-диска: +Поскольку `mount` предполагает, что файловая система имеет тип `ufs`, ошибка `Incorrect super block` возникнет, если не указать `-t cd9660` при монтировании компакт-диска с данными. -[source,shell] -.... -# burncd -f /dev/acd1 -s 12 data archive.tar.gz fixate -.... +В то время как любой компакт-диск с данными можно смонтировать таким образом, диски с определёнными расширениями ISO 9660 могут работать неожиданно. Например, диски Joliet хранят все имена файлов в двухбайтовых символах Unicode. Если некоторые неанглийские символы отображаются как знаки вопроса, укажите локальную кодировку с помощью `-C`. Для получения дополнительной информации обратитесь к man:mount_cd9660[8]. -Для извлечения данных, записанных так на компакт-диск, вы должны считывать данные из файла непосредственного доступа к устройству: +[NOTE] +==== +Для выполнения этого преобразования символов с помощью опции `-C` необходимо загрузить модуль ядра [.filename]#cd9660_iconv.ko#. Это можно сделать, добавив следующую строку в [.filename]#loader.conf#: -[source,shell] +[.programlisting] .... -# tar xzvf /dev/acd1 +cd9660_iconv_load="YES" .... -Вы не можете монтировать этот диск как обычный CDROM. Такой компакт-диск не может быть прочитан ни в какой другой операционной системе, кроме FreeBSD. Если вы хотите монтировать CD или обменяться данными с другой операционной системой, то вы должны использовать man:mkisofs[8] так, как это было описано выше. - -[[atapicam]] -=== Использование драйвера ATAPI/CAM +и затем перезагрузить машину, или напрямую загрузить модуль с помощью `kldload`. +==== -Этот драйвер позволяет работать с ATAPI-устройствами (приводы CD-ROM, CD-RW, DVD и так далее) через подсистему SCSI, таким образом расширяя использование таких приложений, как package:sysutils/cdrdao[] или man:cdrecord[1]. +Изредка при попытке смонтировать компакт-диск с данными может отображаться сообщение `Device not configured`. Обычно это означает, что привод не обнаружил диск в лотке или что привод не виден на шине. Обнаружение носителя может занять несколько секунд, поэтому следует набраться терпения. -Для использования этого драйвера вам необходимо добавить в файл [.filename]#/boot/loader.conf# следующую строку: +Иногда привод SCSICD может быть пропущен, потому что у него не хватило времени ответить на сброс шины. Чтобы решить эту проблему, можно создать пользовательское ядро с увеличенной задержкой SCSI по умолчанию. Добавьте следующую опцию в конфигурационный файл собственного ядра и пересоберите ядро, следуя инструкциям в crossref:kernelconfig[kernelconfig-building,“Сборка и установка собственного ядра”]: [.programlisting] .... -atapicam_load="YES" +options SCSI_DELAY=15000 .... -с последующей перезагрузкой машины. +Это указывает шине SCSI сделать паузу в 15 секунд во время загрузки, чтобы дать CD-приводу максимальный шанс ответить на сброс шины. [NOTE] ==== -Если для вас предпочтительнее статически скомпилировать поддержку man:atapicam[4] в ядро, то добавьте эту строчку в файл конфигурации ядра: - -[.programlisting] -.... -device atapicam -.... +Возможно записать файл непосредственно на CD без создания файловой системы ISO 9660. Это называется записью сырых данных на CD, и некоторые люди делают это для целей резервного копирования. -Кроме того, в файле конфигурации ядра должны быть следующие строки: +Такой диск нельзя смонтировать как обычный CD с данными. Чтобы извлечь данные, записанные на такой диск, их необходимо прочитать непосредственно с устройства. Например, следующая команда извлечёт сжатый tar-архив со второго CD-устройства в текущую рабочую директорию: -[.programlisting] +[source, shell] .... -device ata -device scbus -device cd -device pass +# tar xzvf /dev/cd1 .... -которые уже должны там присутствовать. Затем пересоберите, установите новое ядро и перезагрузите компьютер. +Для монтирования компакт-диска с данными они должны быть записаны с использованием `mkisofs`. ==== -В процессе загрузки ваш пишущий привод должен появиться примерно следующим образом: +[[duplicating-audiocds]] +=== Копирование аудио-CD -[source,shell] -.... -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 -.... +Для копирования аудио-CD извлеките аудиоданные с диска в виде набора файлов, затем запишите эти файлы на чистый CD. -Теперь с ним можно работать через устройство [.filename]#/dev/cd0#, например, чтобы смонтировать CD-ROM в каталог [.filename]#/mnt#, просто наберите следующую команду: +В crossref:disks[using-cdrecord, Копирование аудио-CD] описано, как дублировать и записывать аудио-CD. Если версия FreeBSD меньше 10.0 и устройство является ATAPI, необходимо сначала загрузить модуль `atapicam`, следуя инструкциям в crossref:disks[atapicam, Поддерживаемые устройства]. -[source,shell] +[[using-cdrecord]] +[.procedure] +.Процедура: Копирование аудио-CD +. Пакет или порт package:sysutils/cdrtools[] устанавливает `cdda2wav`. Эту команду можно использовать для извлечения всех аудиодорожек, при этом каждая дорожка записывается в отдельный WAV-файл в текущей рабочей директории: ++ +[source, shell] .... -# mount -t cd9660 /dev/cd0 /mnt +% cdda2wav -vall -B -Owav .... - -Для получения SCSI-адреса пишущего привода, вы можете, работая как пользователь `root`, запустить такую команду: - -[source,shell] ++ +Имя устройства не нужно указывать, если в системе только одно устройство CD. Обратитесь к руководству `cdda2wav` для получения инструкций по указанию устройства и дополнительной информации о других параметрах этой команды. +. Используйте `cdrecord` для записи файлов [.filename]#.wav#: ++ +[source, shell] .... -# camcontrol devlist -<MATSHITA CDRW/DVD UJDA740 1.00> at scbus1 target 0 lun 0 (pass0,cd0) +% cdrecord -v dev=2,0 -dao -useinfo *.wav .... - -Таким образом, `1,0,0` будет SCSI-адресом для использования с man:cdrecord[1] и другими приложениями для работы со SCSI. - -Для получения дополнительной информации об ATAPI/CAM и системе SCSI, обратитесь к страницам справочной системы по man:atapicam[4] и man:cam[4]. ++ +Убедитесь, что _2,0_ установлено правильно, как описано в crossref:disks[cdrecord, Запись CD]. [[creating-dvds]] -== Создание и использование оптических носителей (DVD) +== Создание и использование DVD-носителей -=== Введение +По сравнению с компакт-диском, DVD представляет собой следующее поколение технологии хранения данных на оптических носителях. DVD может вмещать больше данных, чем любой компакт-диск, и является стандартом для издания видео. -DVD это следующее после CD поколение оптических носителей. DVD может вмещать больше данных чем любой CD и является современным стандартом распространения видео. +Для записываемого DVD можно определить пять физических форматов записи: -Для записываемых DVD существует пять физических форматов записи: +* DVD-R: Это первый доступный формат записываемых DVD. Стандарт DVD-R определен http://www.dvdforum.org/forum.shtml[DVD Forum]. Этот формат поддерживает однократную запись. +* DVD-RW: Это перезаписываемая версия стандарта DVD-R. DVD-RW можно перезаписывать около 1000 раз. +* DVD-RAM: Это перезаписываемый формат, который можно рассматривать как съемный жесткий диск. Однако, этот носитель не совместим с большинством приводов DVD-ROM и DVD-видеоплееров, так как лишь немногие DVD-рекордеры поддерживают формат DVD-RAM. Дополнительную информацию об использовании DVD-RAM см. в crossref:disks[creating-dvd-ram, Использование DVD-RAM]. +* DVD+RW: Это перезаписываемый формат, определенный https://en.wikipedia.org/wiki/DVD%2BRW_Alliance[альянсом DVD+RW Alliance]. DVD+RW можно перезаписывать около 1000 раз. +* DVD+R: Этот формат является однократно записываемой разновидностью формата DVD+RW. -* DVD-R: Был первым форматом записываемых DVD. Стандарт DVD-R был создан http://www.dvdforum.com/forum.shtml[DVD Forum]. Это формат для однократной записи. -* DVD-RW: Это перезаписываемая версия стандарта DVD-R. Носители DVD-RW могут быть перезаписаны около 1000 раз. -* DVD-RAM: Это также перезаписываемый формат, поддерживаемый DVD Forum. DVD-RAM может быть виден как съемный жесткий диск. Однако, этот носитель не совместим с большинством приводов DVD-ROM и проигрывателями DVD-Video; лишь некоторые пишущие DVD поддерживают формат DVD-RAM. Более подробно о работе с DVD-RAM можно прочитать в разделе <<creating-dvd-ram>>. -* DVD+RW: Это перезаписываемый формат, созданный http://www.dvdrw.com/[DVD+RW Alliance]. Носитель DVD+RW может быть перезаписан около 1000 раз. -* DVD+R: Этот формат - однократно записываемая версия формата DVD+RW. - -Однослойный записываемый DVD может хранить до 4,700,000,000 байт, что равно 4.38 Гбайт, или 4485 Мбайт (1 килобайт это 1024 байт). +Однослойный записываемый DVD может вместить до 4 700 000 000 байт, что фактически составляет 4,38 ГБ или 4485 МБ, так как 1 килобайт равен 1024 байтам. [NOTE] ==== -Необходимо различать физический носитель и приложение. Например, DVD-Video это определенная файловая раскладка, которая может быть помещена на записываемый DVD любого физического формата: DVD-R, DVD+R, DVD-RW и т.д. Перед выбором типа носителя вы должны убедиться, что и устройство записи и DVD-Video проигрыватель (отдельный или DVD-ROM привод компьютера) совместимы с данным носителем. +Необходимо различать физический носитель и приложение. Например, DVD-Video — это определённая структура файлов, которую можно записать на любой перезаписываемый DVD-носитель, такой как DVD-R, DVD+R или DVD-RW. Перед выбором типа носителя убедитесь, что и записывающее устройство, и проигрыватель DVD-Video поддерживают рассматриваемый носитель. ==== -=== Настройка +=== Конфигурация -Для записи DVD будет использоваться программа man:growisofs[1]. Эта команда входит в набор утилит dvd+rw-tools (package:sysutils/dvd+rw-tools[]), который поддерживает все типы носителей DVD. +Для записи DVD используйте man:growisofs[1]. Эта команда входит в набор утилит package:sysutils/dvd+rw-tools[], которые поддерживают все типы DVD-носителей. -Эти утилиты используют подсистему SCSI для доступа к устройствам, следовательно необходимо добавить в ядро <<atapicam,поддержку ATAPI/CAM>>. Если пишущий привод использует USB интерфейс, это добавление бесполезно и необходимо прочесть более подробную информацию по настройке устройств USB в <<usb-disks>> +Эти инструменты используют подсистему SCSI для доступа к устройствам, поэтому поддержка crossref:disks[atapicam,ATAPI/CAM] должна быть загружена или статически собрана в ядре. Эта поддержка не требуется, если устройство записи использует интерфейс USB. Подробнее о настройке USB-устройств см. в разделе crossref:disks[usb-disks,USB-накопители]. -Вам также потребуется включить DMA доступ для устройств ATAPI, это можно сделать добавив в [.filename]#/boot/loader.conf# следующую строку: +Доступ DMA также должен быть включен для устройств ATAPI, добавив следующую строку в [.filename]#/boot/loader.conf#: [.programlisting] .... hw.ata.atapi_dma="1" .... -Перед использованием dvd+rw-tools вы должны свериться со http://fy.chalmers.se/~appro/linux/DVD+RW/hcn.html[списком совместимого оборудования dvd+rw-tools] с информацией по устройствам для записи DVD. +Перед попыткой использования dvd+rw-tools ознакомьтесь с http://fy.chalmers.se/~appro/linux/DVD+RW/hcn.html[примечаниями о совместимости оборудования]. [NOTE] ==== -Если вам нужен графический интерфейс пользователя, взгляните на K3b (package:sysutils/k3b[]), который предоставляет дружественный пользователю интерфейс к man:growisofs[1] и многим другим программам записи. +Для графического интерфейса можно использовать пакет package:sysutils/k3b[], который предоставляет удобный интерфейс к man:growisofs[1] и многим другим инструментам записи. ==== -=== Запись DVD с данными +=== Запись данных на DVD -Команда man:growisofs[1] является оболочкой для <<mkisofs,mkisofs>>, она вызовет man:mkisofs[8] для создания файловой системы и запишет DVD. Это означает, что вам не потребуется создавать образ с данными перед началом процесса записи. +Поскольку man:growisofs[1] является интерфейсом для crossref:disks[mkisofs,mkisofs], он вызывает man:mkisofs[8] для создания структуры файловой системы и записи на DVD. Это означает, что нет необходимости создавать образ данных перед процессом записи. -Для записи данных из каталога [.filename]#/path/to/data# на DVD+R или DVD-R, используйте следующую команду: +Для записи данных из [.filename]#/path/to/data# на DVD+R или DVD-R используйте следующую команду: -[source,shell] +[source, shell] .... # growisofs -dvd-compat -Z /dev/cd0 -J -R /path/to/data .... -Параметры `-J -R` передаются man:mkisofs[8] для создания файловой системы (в данном случае: файловая система ISO 9660 с расширениями Joliet и Rock Ridge), обратитесь к странице справочника man:mkisofs[8] за более подробной информацией. +В этом примере `-J -R` передаются в man:mkisofs[8] для создания файловой системы ISO 9660 с расширениями Joliet и Rock Ridge. Подробности см. в man:mkisofs[8]. -Параметр `-Z` используется для первой сессии записи в любом случае: для одной или нескольких сессий. Устройство DVD, _/dev/cd0_, должно быть изменено в соответствии с имеющимися настройками. Параметр `-dvd-compat` закроет диск и дозапись станет невозможна. Это должно улучшить совместимость с приводами DVD-ROM. +Для начальной записи сессии используется параметр `-Z` как для одиночных, так и для множественных сессий. Замените _/dev/cd0_ на имя устройства DVD. Использование `-dvd-compat` указывает, что диск будет закрыт и запись нельзя будет дополнять. Это также обеспечивает лучшую совместимость носителя с приводами DVD-ROM. -Возможна также запись предварительного (pre-mastered) образа, например, для записи _imagefile.iso_ запустим: +Для записи предварительно созданного образа, например _imagefile.iso_, используйте: -[source,shell] +[source, shell] .... # growisofs -dvd-compat -Z /dev/cd0=imagefile.iso .... -Скорость записи должна быть определена и автоматически установлена в соответствии с носителем и приводом. Если вы хотите явно указать скорость записи, используйте параметр `-speed=`. За дальнейшей информацией обратитесь к странице справочника man:growisofs[1]. +Скорость записи должна определяться и автоматически устанавливаться в зависимости от носителя и используемого привода. Для принудительного задания скорости записи используйте `-speed=`. Примеры использования см. в man:growisofs[1]. [NOTE] ==== -Если размер файлов внутри набора превышает 4.38Гб, то необходимо будет создать гибридную файловую систему UDF/ISO-9660, для чего потребуется передать параметры `-udf -iso-level 3` в man:mkisofs[8] и в остальные соответствующие программы (например, man:growisofs[1]). Указание параметров обязательно лишь во время создания файла образа или во время непосредственной записи на диск. Созданный таким способом диск должен монтироваться утилитой man:mount_udf[8]. Диск будет доступен лишь тем операционным системам, которые поддерживают UDF; в противном случае носитель будет отображаться как поврежденный. +Для поддержки файлов размером более 4,38 ГБ необходимо создать гибридную файловую систему UDF/ISO-9660, передав параметры `-udf -iso-level 3` в man:mkisofs[8] и все связанные программы, например man:growisofs[1]. Это требуется только при создании ISO-образа или записи файлов непосредственно на диск. Поскольку диск, созданный таким образом, должен монтироваться как файловая система UDF с помощью man:mount_udf[8], он будет доступен только в операционных системах с поддержкой UDF. В противном случае файлы на диске будут выглядеть повреждёнными. -Для того, чтобы создать такой образ, выполните: +Чтобы создать ISO-файл такого типа: -[source,shell] +[source, shell] .... % mkisofs -R -J -udf -iso-level 3 -o imagefile.iso /path/to/data .... -Для того, чтобы записать файлы прямо на диск, наберите: +Для записи файлов непосредственно на диск: -[source,shell] +[source, shell] .... # growisofs -dvd-compat -udf -iso-level 3 -Z /dev/cd0 -J -R /path/to/data .... -Если у вас в распоряжении уже имеется образ, содержащий в себе файлы большого размера, то для записи образа на диск никаких дополнительных опций для man:growisofs[1] не потребуется. +Когда ISO-образ уже содержит большие файлы, для записи этого образа на диск с помощью `growisofs` не требуется дополнительных параметров. -Также удостоверьтесь, что у вас установлена последняя версия package:sysutils/cdrtools[] (man:mkisofs[8] принадлежит к этому порту), поскольку предыдущие версии утилит не поддерживают работу с большими файлами. Если с этим портом возникают проблемы, то установите package:sysutils/cdrtools-devel[] и прочитайте страницу справочника man:mkisofs[8]. +Убедитесь, что используется актуальная версия package:sysutils/cdrtools[], которая содержит man:mkisofs[8], так как более старая версия может не поддерживать большие файлы. Если последняя версия не работает, установите package:sysutils/cdrtools-devel[] и ознакомьтесь с его man:mkisofs[8]. ==== === Запись DVD-Video -DVD-Video это особая файловая система, базирующаяся на ISO 9660 и спецификациях micro-UDF (M-UDF). DVD-Video также представляет определенную иерархию структуры данных, поэтому для создания DVD потребуется особая программа, такая как package:multimedia/dvdauthor[]. +DVD-Video — это определённая структура файлов, основанная на спецификациях ISO 9660 и микро-UDF (M-UDF). Поскольку DVD-Video представляет собой конкретную иерархию структуры данных, для создания DVD требуется специальная программа, например package:multimedia/dvdauthor[]. -Если у вас уже есть образ файловой системы DVD-Video, просто запишите его как любой другой образ, примеры находятся в предыдущем разделе. Если вы создали DVD и результат находится в каталоге [.filename]#/path/to/video#, для записи DVD-Video должна быть использована следующая команда: +Если уже существует образ файловой системы DVD-Video, его можно записать так же, как и любой другой образ. Если для создания DVD использовался `dvdauthor` и результат находится в [.filename]#/path/to/video#, то для записи DVD-Video следует использовать следующую команду: -[source,shell] +[source, shell] .... # growisofs -Z /dev/cd0 -dvd-video /path/to/video .... -Параметр `-dvd-video` будет передан man:mkisofs[8] и укажет создать файловую систему DVD-Video. Помимо этого, параметр `-dvd-video` подразумевает параметр man:growisofs[1] `-dvd-compat`. +`-dvd-video` передается в man:mkisofs[8], чтобы указать создать файловую систему в формате DVD-Video. Эта опция подразумевает использование опции `-dvd-compat` man:growisofs[1]. === Использование DVD+RW -В отличие от CD-RW, новый DVD+RW необходимо отформатировать перед первым использованием. Программа man:growisofs[1] позаботится об этом сама при необходимости, и это _рекомендованный_ способ. Тем не менее, для форматирования DVD+RW вы можете использовать команду `dvd+rw-format`: +В отличие от CD-RW, новая DVD+RW требует форматирования перед первым использованием. _Рекомендуется_ позволить man:growisofs[1] автоматически выполнить это, когда это уместно. Однако можно использовать `dvd+rw-format` для форматирования DVD+RW: -[source,shell] +[source, shell] .... # dvd+rw-format /dev/cd0 .... -Эту операцию необходимо выполнить лишь однажды, помните, что только новые носители DVD+RW необходимо форматировать. Затем запишите DVD+RW тем способом, который описан в предыдущем разделе. +Выполняйте эту операцию только один раз и помните, что форматировать нужно только чистые носители DVD+RW. После форматирования DVD+RW можно записывать как обычно. -Если вы хотите записать новые данные (полностью новую файловую систему, а не дописать данные) на DVD+RW, его не нужно очищать, просто запишите поверх предыдущей записи (создав новую начальную сессию) примерно так : +Для записи совершенно новой файловой системы, а не просто добавления данных на DVD+RW, не требуется предварительно очищать носитель. Вместо этого можно перезаписать предыдущую запись следующим образом: -[source,shell] +[source, shell] .... # growisofs -Z /dev/cd0 -J -R /path/to/newdata .... -Формат DVD+RW делает возможным легко дописать данные к предыдущей записи. Операция состоит в присоединении предыдущей сессии к существующей, это не мультисессионная запись, man:growisofs[1] _расширит_ (grow) файловую систему ISO 9660, существующую на носителе. +Формат DVD+RW поддерживает добавление данных к предыдущей записи. Эта операция заключается в объединении нового сеанса с существующим, так как это не считается многосессионной записью. man:growisofs[1] будет _расширять_ файловую систему ISO 9660, присутствующую на носителе. -Например, для дозаписи данных к предыдущей сессии на DVD+RW, используется следующая команда: +Например, чтобы добавить данные на DVD+RW, используйте следующую команду: -[source,shell] +[source, shell] .... # growisofs -M /dev/cd0 -J -R /path/to/nextdata .... -При последующих записях man:mkisofs[8] необходимо передавать те же параметры, что и при первой записи. +Те же параметры `man:mkisofs[8]`, которые использовались для записи начальной сессии, следует применять при последующих записях. [NOTE] ==== -Вы можете использовать параметр `-dvd-compat` для улучшения совместимости с приводами DVD-ROM. В случае DVD+RW это не помешает добавлению данных. +Используйте `-dvd-compat` для лучшей совместимости носителя с приводами DVD-ROM. При использовании DVD+RW эта опция не предотвращает добавление данных. ==== -Если по какой-либо причине вам потребуется очистить носитель, используйте следующую команду: +Для очистки диска запустите: -[source,shell] +[source, shell] .... # growisofs -Z /dev/cd0=/dev/zero .... === Использование DVD-RW -Существует два формата дисков DVD-RW: последовательно дополняемый и с ограниченной перезаписью. По умолчанию формат дисков DVD-RW последовательный. +DVD-RW поддерживает два формата дисков: инкрементальный последовательный и с ограниченной перезаписью. По умолчанию диски DVD-RW имеют последовательный формат. -Новый DVD-RW может быть записан непосредственно без необходимости форматирования, однако DVD-RW с данными в последовательном формате необходимо очистить перед созданием новой начальной сессии. +Чистый DVD-RW можно записывать напрямую без форматирования. Однако DVD-RW в последовательном формате, который уже использовался, необходимо очистить перед записью нового начального сеанса. -Для очистки DVD-RW в последовательном формате, запустите: +Для очистки DVD-RW в последовательном режиме: -[source,shell] +[source, shell] .... # dvd+rw-format -blank=full /dev/cd0 .... [NOTE] ==== -Полная очистка (`-blank=full`) займет около одного часа на скорости 1x. Быструю очистку можно выполнить с параметром `-blank`, если DVD-RW будет записан в режиме Disk-At-Once (DAO). Для записи DVD-RW в режиме DAO, используйте команду: +Полное стирание с использованием `-blank=full` займет около одного часа для однократной записи (1x). Быстрое стирание можно выполнить с помощью `-blank`, если DVD-RW будет записываться в режиме Disk-At-Once (DAO). Для записи DVD-RW в режиме DAO используйте команду: -[source,shell] +[source, shell] .... # growisofs -use-the-force-luke=dao -Z /dev/cd0=imagefile.iso .... -Параметр `-use-the-force-luke=dao` не должен потребоваться, поскольку man:growisofs[1] попытается определить был ли носитель быстро очищен и включить DAO запись. +Поскольку man:growisofs[1] автоматически определяет быстро очищенные носители и использует запись DAO, параметр `-use-the-force-luke=dao` не требуется. -Фактически, лучше использовать режим с ограниченной перезаписью с любым DVD-RW, этот формат более гибкий, чем формат по умолчанию с последовательной записью. +Следует использовать режим ограниченной перезаписи для любых DVD-RW, так как этот формат более гибкий по сравнению со стандартным инкрементным последовательным. ==== -Для записи данных на последовательный DVD-RW, используйте ту же команду, что и для других форматов DVD: +Для записи данных на последовательную DVD-RW используйте те же инструкции, что и для других форматов DVD: -[source,shell] +[source, shell] .... # growisofs -Z /dev/cd0 -J -R /path/to/data .... -Если вы хотите добавить данные к предыдущей записи, используйте параметр man:growisofs[1] `-M`. Однако при добавлении данных на DVD-RW в последовательном режиме, на диске будет создана новая сессия и в результате получится мультисессионный диск. +Чтобы добавить данные к предыдущей записи, используйте `-M` с man:growisofs[1]. Однако если данные добавляются на DVD-RW в инкрементальном последовательном режиме, на диске будет создана новая сессия, и в результате получится многосессионный диск. -В формате DVD-RW с ограниченной перезаписью не требуется очищать носитель перед созданием новой начальной сессии, вам всего лишь нужно переписать диск с параметром `-Z`, подобно DVD+RW. Возможно также увеличение существующей файловой системы ISO 9660, записанной на диск тем же способом, как для DVD+RW с параметром `-M`. В результате получится односессионный DVD. +DVD-RW в формате с ограниченной перезаписью не требует очистки перед созданием новой начальной сессии. Вместо этого перезапишите диск с помощью `-Z`. Также можно расширить существующую файловую систему ISO 9660, записанную на диск, с помощью `-M`. Результатом будет односессионный DVD. -Для перевода DVD-RW в формат с ограниченной перезаписью, необходимо использовать следующую команду: +Чтобы перевести DVD-RW в формат ограниченной перезаписи, необходимо использовать следующую команду: -[source,shell] +[source, shell] .... # dvd+rw-format /dev/cd0 .... -Для перевода обратно в последовательный формат, выполните: +Для возврата к последовательному формату используйте: -[source,shell] +[source, shell] .... # dvd+rw-format -blank=full /dev/cd0 .... -=== Мультисессия +=== Многосеансовые диски -Лишь несколько DVD-ROM и проигрывателей поддерживают мультисессионные DVD, в основном они в лучшем случае прочтут только первую сессию. DVD+R, DVD-R и DVD-RW в последовательном формате могут работать с несколькими сессиями, и это не относится к форматам DVD+RW и DVD-RW в формате ограниченной перезаписи. +Немногие приводы DVD-ROM поддерживают многосеансовые DVD и в большинстве случаев читают только первый сеанс. DVD+R, DVD-R и DVD-RW в последовательном формате могут поддерживать несколько сеансов. Понятие множественных сеансов отсутствует для форматов DVD+RW и DVD-RW с ограниченной перезаписью. -Использование следующей команды после первой (не закрытой) сессии для DVD+R, DVD-R, или DVD-RW в последовательном формате, добавит на диск новую сессию: +Используя следующую команду после начального незакрытого сеанса на DVD+R, DVD-R или DVD-RW в последовательном формате, можно добавить новый сеанс на диск: -[source,shell] +[source, shell] .... # growisofs -M /dev/cd0 -J -R /path/to/nextdata .... -Использование этой командной строки с DVD+RW или DVD-RW в режиме ограниченной перезаписи добавит данные, объединив новую сессию с предыдущей. В результате получится односессионный диск. Такой способ используется для добавления данных после первой записи на эти носители. +Использование этой команды с DVD+RW или DVD-RW в режиме ограниченной перезаписи приведет к добавлению данных с объединением нового сеанса с существующим. В результате получится диск с одним сеансом. Используйте этот метод для добавления данных после первоначальной записи на таких типах носителей. [NOTE] ==== -Некоторый объем носителя используется между сессиями для завершения и начала сессии. Следовательно, для оптимизации объема хранения сессии должны быть большими. Количество сессий ограничено 154 для DVD+R, около 2000 для DVD-R и 127 для DVD+R Double Layer. +Поскольку некоторое пространство на носителе используется между каждым сеансом для отметки конца и начала сеансов, следует добавлять сеансы с большим объемом данных для оптимизации пространства на носителе. Количество сеансов ограничено 154 для DVD+R, около 2000 для DVD-R и 127 для DVD+R Double Layer. ==== -=== Дополнительная информация +=== Для получения дополнительной информации -Для получения дополнительной информации о DVD, можно запустить команду `dvd+rw-mediainfo _/dev/cd0_`, диск должен находиться в приводе. +Для получения дополнительной информации о DVD используйте команду `dvd+rw-mediainfo _/dev/cd0_`, когда диск находится в указанном приводе. -Дополнительная информация о dvd+rw-tools может быть найдена на странице справочника man:growisofs[1], на http://fy.chalmers.se/~appro/linux/DVD+RW/[Web-сайте dvd+rw-tools] и в архивах http://lists.debian.org/cdwrite/[списка рассылки cdwrite]. +Дополнительная информация о dvd+rw-tools доступна в man:growisofs[1], на http://fy.chalmers.se/~appro/linux/DVD+RW/[веб-сайте dvd+rw-tools] и в архивах http://lists.debian.org/cdwrite/[почтовой рассылки cdwrite]. [NOTE] ==== -Вывод `dvd+rw-mediainfo` при записи или проблемный носитель необходимы для любого сообщения о проблеме. Без этого вывода будет совершенно невозможно помочь вам. +При создании отчёта о проблеме, связанной с использованием dvd+rw-tools, всегда прилагайте вывод команды `dvd+rw-mediainfo`. ==== [[creating-dvd-ram]] === Использование DVD-RAM -==== Конфигурация - -Записывающие устройства DVD-RAM поставляются с интерфейсами SCSI и ATAPI. В последнем случае вы должны убедиться, что для них включен режим DMA, добавив в файл [.filename]#/boot/loader.conf# строку +Записывающие устройства DVD-RAM могут использовать интерфейс SCSI или ATAPI. Для устройств ATAPI необходимо включить доступ DMA, добавив следующую строку в [.filename]#/boot/loader.conf#: [.programlisting] .... hw.ata.atapi_dma="1" .... -==== Подготовка носителя - -Как указывалось ранее, DVD-RAM представляется съемным жестким диском. Как и другие дисковые устройства, DVD-RAM должен быть "подготовлен" к первому использованию. В нашем примере мы займём все пространство диска одной файловой системой UFS2: +DVD-RAM можно рассматривать как съемный жесткий диск. Как и любой другой жесткий диск, DVD-RAM необходимо отформатировать перед использованием. В этом примере все дисковое пространство будет отформатировано под стандартную файловую систему UFS2: -[source,shell] +[source, shell] .... # dd if=/dev/zero of=/dev/acd0 bs=2k count=1 # bsdlabel -Bw acd0 # newfs /dev/acd0 .... -Имя устройства DVD device, [.filename]#acd0#, должно соответствовать вашей конфигурации. +Устройство DVD, [.filename]#acd0#, должно быть изменено в соответствии с конфигурацией. -==== Использование носителя +После форматирования DVD-RAM его можно подключить как обычный жесткий диск: -После выполнения указанных выше команд, DVD-RAM может быть смонтирован как обычный жесткий диск: - -[source,shell] +[source, shell] .... # mount /dev/acd0 /mnt .... -После этого вы можете читать и писать на DVD-RAM. +После монтирования DVD-RAM будет доступен как для чтения, так и для записи. [[floppies]] -== Дискеты - -Хранение данных на дискетах иногда бывает полезным, например, когда нет других съёмных носителей или когда необходимо перенести небольшой объём данных на другой компьютер. - -В этом разделе будет описано, как использовать дискеты во FreeBSD. В основном речь пойдёт о форматировании и использовании дискет DOS размером 3.5 дюйма, однако общие принципы применимы и для других форматов гибких дисков. - -=== Форматирование дискет - -==== Устройство - -Доступ к гибким дискам, как, впрочем, и к остальным устройствам, осуществляется через соответствующие файлы в каталога [.filename]#/dev#. Чтобы обратиться к дискете, просто используйте [.filename]#/dev/fdN#. +== Создание и использование дискет -==== Форматирование +Этот раздел объясняет, как отформатировать 3,5-дюймовую дискету в FreeBSD. -Перед тем, как дискетой можно будет воспользоваться, её необходимо отформатировать на низком уровне. Обычно это выполняется производителем, однако форматирование является хорошим способом проверить целостность носителя. Большинство гибких дисков предназначены для использования с размером 1440kB, однако возможно задать меньший или больший размер. - -Для низкоуровневого форматирования дискет вам нужно использовать man:fdformat[1]. В качестве параметра этой утилите передаётся имя устройства. - -Обратите внимание на появление сообщений об ошибках, так как они могут помочь определить, хорошая это дискета или плохая. - -===== Форматирование гибких дисков +[.procedure] +==== +*Procedure: Steps to Format a Floppy* -Для форматирования гибких дисков используйте устройства [.filename]#/dev/fdN#. Вставьте новую 3.5-дюймовую дискету в дисковод и введите команду: +Дискету необходимо отформатировать на низком уровне перед использованием. Обычно это делается производителем, но форматирование — хороший способ проверить целостность носителя. Для низкоуровневого форматирования дискеты в FreeBSD используйте man:fdformat[1]. При работе с этой утилитой обратите внимание на сообщения об ошибках, так как они помогают определить, исправен диск или нет. -[source,shell] +. Для форматирования дискеты вставьте новую дискету размером 3,5 дюйма в первый дисковод и выполните команду: ++ +[source, shell] .... # /usr/sbin/fdformat -f 1440 /dev/fd0 .... - -=== Метка диска - -После низкоуровневого форматирования диска вам нужно поместить на него метку диска. Эта метка будет потом разрушена, но она будет нужна системе для определения размера диска и его характеристик. - -Новая метка диска будет касаться диска в целом, и будет содержать полную информацию о параметрах дискеты. Значения геометрии для метки диска перечислены в файле [.filename]#/etc/disktab#. - -Теперь вы можете запустить man:bsdlabel[8] примерно так: - -[source,shell] ++ +. После низкоуровневого форматирования диска создайте метку диска, так как она необходима системе для определения размера диска и его геометрии. Поддерживаемые значения геометрии перечислены в [.filename]#/etc/disktab#. ++ +Для записи метки диска используйте man:bsdlabel[8]: ++ +[source, shell] .... # /sbin/bsdlabel -B -w /dev/fd0 fd1440 .... - -=== Файловая система - -Теперь ваша дискета готова к высокоуровневому форматированию. При этом на неё будет помещаться новая файловая система, которая позволит FreeBSD читать и записывать информацию на диск. После создания новой файловой системы метка диска уничтожается, так что если вы захотите переформатировать диск, вам придётся создавать метку диска повторно. - -Файловой системой для дискеты может служить UFS или FAT. Вообще говоря, FAT для дискет походит лучше. - -Для размещения на дискете новой файловой системы, выполните: - -[source,shell] ++ +. Дискета теперь готова для высокоуровневого форматирования с файловой системой. Файловая система дискеты может быть UFS или FAT, причём FAT, как правило, является лучшим выбором для дискет. ++ +Чтобы отформатировать дискету в FAT, выполните: ++ +[source, shell] .... # /sbin/newfs_msdos /dev/fd0 .... +==== -Теперь диск готов к работе. - -=== Использование дискет - -Для работы с гибким диском смонтируйте его при помощи утилит man:mount_msdosfs[8]. Можно также использовать пакет package:emulators/mtools[] из коллекции портов. - -[[backups-tapebackups]] -== Создание и использование архивных копий на магнитной ленте - -К наиболее часто используемым носителям на магнитной ленте следует отнести ленты шириной 4мм и 8мм, а также типа QIC, мини-картриджи и DLT. - -[[backups-tapebackups-4mm]] -=== 4мм (DDS: Digital Data Storage) - -Ленты шириной 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 полных копий. - -[[backups-tapebackups-8mm]] -=== 8мм (Exabyte) - -Ленты шириной 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 градусов вокруг шпульки, которая держит головки. Во время скольжения ленты вокруг шпульки последняя вращается. В результате достигается высокая плотность записи данных с очень близко лежащими дорожками, расположенными под наклоном по всей ленте. - -[[backups-tapebackups-qic]] -=== QIC - -Ленты и накопители формата 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 резервных копий. - -[[backups-tapebackups-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 - это новый формат фирмы Sony, который позволяет хранить до 50 Гбайт (со сжатием) информации на одной ленте. Ленты содержат микросхемы памяти, на которых размещается каталог содержимого ленты. Этот каталог может быть быстро считан накопителем для определения расположения файлов на ленте, вместо того, чтобы тратить несколько минут на поиск, как это происходит с другими форматами. Такое программное обеспечение, как SAMS:Alexandria, может управлять сорока или большим количеством ленточных библиотек AIT, связываясь непосредственно с памятью лент для вывода их содержимого, определения того, какие файлы были скопированы на какую ленту, выбора нужной ленты, её загрузки и восстановления данных с ленты. - -Библиотеки с такими функциями стоят в районе $20,000, выводя их из ниши любительского рынка. - -=== Использование новой ленты первый раз +Диск готов к использованию. Чтобы использовать дискету, смонтируйте её с помощью man:mount_msdosfs[8]. Также можно установить и использовать package:emulators/mtools[] из Коллекции портов. -Если вы попытаетесь прочитать или записать новую, абсолютно чистую ленту, в первый раз, то вам это не удастся. Выводимые на консоль сообщения будут выглядеть примерно так: +[[backup-basics]] +== Основы резервного копирования -[source,shell] -.... -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`. -+ -Последующие операции с лентой будут успешными. +* Архивы всей системы, сохраненные на постоянных носителях вне площадки. Это обеспечивает защиту от всех перечисленных выше проблем, но восстановление происходит медленно и неудобно, особенно для непривилегированных пользователей. +* Снимки файловой системы, полезные для восстановления удалённых файлов или предыдущих версий файлов. +* Копии целых файловых систем или дисков, которые синхронизируются с другой системой в сети с использованием запланированного пакета:package:net/rsync[]. +* Аппаратный или программный RAID, который минимизирует или исключает простои при отказе диска. -[[backups-floppybackups]] -== Создание резервных копий на дискетах +Обычно используется комбинация методов резервного копирования. Например, можно создать расписание для автоматического еженедельного полного резервного копирования системы, которое хранится за пределами основной площадки, и дополнить его ежечасными снимками ZFS. Кроме того, можно вручную создавать резервные копии отдельных каталогов или файлов перед их редактированием или удалением. -[[floppies-using]] -=== Можно ли использовать дискеты для создания резервных копий моих данных? +В этом разделе описаны некоторые утилиты, которые можно использовать для создания резервных копий и управления ими в системе FreeBSD. -На самом деле дискеты не подходят для создания резервных копий, потому что: +=== Резервное копирование файловой системы -* Носитель ненадёжен, особенно если речь идет о больших сроках хранения. -* Создание резервных копий и восстановление данных происходит очень медленно. -* Дискеты имеют весьма ограниченную емкость (дни, когда весь винчестер копировался на десяток или около того дискет, давно прошли). +Традиционные программы UNIX(R) для резервного копирования файловой системы — это man:dump[8], который создаёт резервную копию, и man:restore[8], который восстанавливает данные из резервной копии. Эти утилиты работают на уровне блоков диска, ниже абстракций файлов, ссылок и каталогов, создаваемых файловыми системами. В отличие от другого программного обеспечения для резервного копирования, `dump` создаёт резервную копию всей файловой системы и не может сохранить только часть файловой системы или дерево каталогов, расположенное на нескольких файловых системах. Вместо записи файлов и каталогов `dump` записывает непосредственно блоки данных, из которых состоят файлы и каталоги. -Несмотря на все это, если у вас нет другого способа сделать резервную копию ваших данных, то дискеты все же лучше, чем ничего. +[NOTE] +==== +Если `dump` используется для корневого каталога, он не будет создавать резервные копии для [.filename]#/home#, [.filename]#/usr# и многих других каталогов, так как обычно они являются точками монтирования других файловых систем или символическими ссылками на них. +==== -Если вы используете дискеты, то проверьте, что они должны быть хорошего качества. Дискеты, которые валялись по всему офису в течении нескольких лет, не подойдут. Идеально использовать новые от известного производителя. +При восстановлении данных `restore` по умолчанию сохраняет временные файлы в [.filename]#/tmp/#. Если используется диск восстановления с малым объемом [.filename]#/tmp#, следует установить переменную `TMPDIR` в каталог с большим свободным пространством для успешного выполнения восстановления. -[[floppies-creating]] -=== Итак, как же сделать резервную копию данных на дискетах? +При использовании `dump` следует учитывать, что некоторые особенности остались с ранних времен версии 6 AT&T UNIX(R), примерно 1975 года. Параметры по умолчанию предполагают резервное копирование на 9-дорожечную магнитную ленту, а не на другой тип носителя или на современные высокоплотные ленты. Эти значения по умолчанию необходимо переопределять в командной строке. -Самым лучшим методом создания резервной копии на дискете является использование утилиты man:tar[1] с опцией `-M` (многотомные архивы), которая позволяет размещать архивы на нескольких дискетах. +Возможно выполнить резервное копирование файловой системы через сеть на другую систему или на ленточный накопитель, подключенный к другому компьютеру. Хотя для этого можно использовать утилиты man:rdump[8] и man:rrestore[8], они не считаются безопасными. -Для копирования всех файлов в текущем каталоге и подкаталогах выполните следующее (работая как пользователь `root`): +Вместо этого можно более безопасно использовать `dump` и `restore` через SSH-соединение. Этот пример создает полную сжатую резервную копию [.filename]#/usr# и отправляет её на указанный хост через SSH-соединение. -[source,shell] +.Использование `dump` через ssh +[example] +==== +[source, shell] .... -# tar Mcvf /dev/fd0 * +# /sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \ + targetuser@targetmachine.example.com dd of=/mybigfiles/dump-usr-l0.gz .... +==== -Когда первая дискета окажется полностью заполненной, программа man:tar[1] выдаст запрос на следующий том (так как работа утилиты man:tar[1] не зависит от носителя, она имеет дело с томами; здесь это означает дискету). +Этот пример устанавливает переменную окружения `RSH` для записи резервной копии на ленточный накопитель в удалённой системе через SSH-соединение: -[source,shell] +.Использование `dump` через ssh с установленной переменной `RSH` +[example] +==== +[source, shell] .... -Prepare volume 2 for /dev/fd0 and hit return: +# env RSH=/usr/bin/ssh /sbin/dump -0uan -f targetuser@targetmachine.example.com:/dev/sa0 /usr .... +==== -Это сообщение будет повторяться (со все увеличивающимся номером тома) до тех пор, пока все указанные файлы не будут заархивированы. +[TIP] +==== +Системы, использующие crossref:zfs[,файловую систему Z (ZFS)], могут использовать man:zfs[8] для создания снимков, а также crossref:zfs[zfs-zfs-send,их отправки и получения] на удалённые системы или с них. +==== -[[floppies-compress]] -=== Можно ли резервные копии подвергнуть компрессии? +=== Резервное копирование каталогов -К сожалению, man:tar[1] при создании многотомных архивов не позволяет использовать опцию `-z`. Вы конечно же, можете скомпрессировать все файлы утилитой man:gzip[1], программой man:gzip[1] скопировать их на дискеты, а затем распаковать файлы снова утилитой man:gunzip[1]! +Некоторые встроенные утилиты могут делать резервное копирование и восстановление указанных файлов и каталогов по мере необходимости. -[[floppies-restoring]] -=== Как восстановить данные из моих резервных копий? +Хорошим выбором для создания резервной копии всех файлов в каталоге является man:tar[1]. Эта утилита появилась ещё в шестой версии AT&T UNIX(R) и по умолчанию предполагает рекурсивное резервное копирование на локальное ленточное устройство. С помощью ключей можно указать имя файла для резервной копии. -Для полного восстановления архива воспользуйтесь такой командой: +Этот пример создаёт сжатую резервную копию текущего каталога и сохраняет её в [.filename]#/tmp/mybackup.tgz#. При создании резервной копии убедитесь, что она не сохраняется в тот же каталог, который резервируется. -[source,shell] +.Резервное копирование текущего каталога с помощью `tar` +[example] +==== +[source, shell] .... -# tar Mxvf /dev/fd0 +# tar czvf /tmp/mybackup.tgz . .... +==== -Есть два подхода к восстановлению только нужных вам файлов. В первом вы можете начать с первой дискеты и выдать такую команду: +Для восстановления всей резервной копии перейдите в каталог, в который нужно восстановить данные, и укажите имя резервной копии. Обратите внимание, что это перезапишет более новые версии файлов в каталоге восстановления. Если есть сомнения, восстановите данные во временный каталог или укажите имя файла внутри резервной копии для восстановления. -[source,shell] +.Восстановление текущего каталога с помощью `tar` +[example] +==== +[source, shell] .... -# tar Mxvf /dev/fd0 filename +# tar xzvf /tmp/mybackup.tgz .... - -Программа man:tar[1] будет выдавать запрос на подачу последующих дискет до тех пор, пока не найдет требуемый файл. - -Как альтернатива, если вы знаете, на какой дискете расположен файл, то вы можете просто подать ее и дать ту же самую команду, что и выше. Заметьте, что если первый файл на дискете является продолжением предыдущего, то man:tar[1] выдаст предупреждение о том, что не может его восстановить, хотя вы этого и не просили делать! - -[[backup-strategies]] -== Стратегии резервного копирования - -При разработке плана резервного копирования первым делом надо продумать методы защиты от следующих проблем: - -* Отказ жесткого диска -* Случайное удаление файлов -* Повреждение содержимого файлов -* Полное уничтожение компьютера (например, при пожаре), при котором погибнут также резервные копии, физически находящиеся рядом. - -Вполне возможно, что для ваших нужд нет единой стратегии, наилучшим образом покрывающей все описанные проблемы; более того, скорее всего, ее и не может быть (разве что для персональных систем, где ценность данных очень низка). - -Вот несколько наиболее распространенных технологий, применяемых для резервного копирования: - -* Архивация системы целиком с копированием на какой-либо надежный внешний носитель и размещение его вдалеке от основной системы. При этом вы защищены от всех перечисленных проблемы, однако этот метод требует много времени и неудобен в процессе восстановления. Вы можете хранить резервные копии рядом или даже смонтированными, однако все равно столкнетесь с неудобствами при восстановлении, в особенности для непривилегированных пользователей. -* Снэпшоты файловых систем. Помогают только от случайного удаления файлов, но как раз в этом случае _очень_ полезны и эффективны. -* Полные копии файловых систем или дисков (например, периодический запуск программы man:rsync[1] для машины целиком). Для защиты от отказа жестких дисков этот способ обычно несколько уступает RAID; для восстановления случайно удаленных файлов может быть сравним по удобству со снэпшотами UFS, в зависимости от вашей ситуации. -* RAID. Минимизирует или исключает вовсе простои при отказе жестких дисков. При этом средняя частота таких отказов увеличивается (поскольку количество дисков больше), но разбираться с ними становится много спокойнее. -* Проверка отпечатков файлов (fingerprints). Для этого весьма полезна утилита man:mtree[8]. Не являясь собственно технологией резервного копирования, этот метод помогает выяснять, когда вам пока обращаться к резервным копиям. В особенности это важно для "оффлайновых" резервных копий. - -Довольно легко придумать и другие стратегии резервного копирования; многие из них будут композициями уже упомянутых. Наличие специальных требований, как правило, приводит к специализированным же технологиям (например, резервное копирование базы данных, как правило, требует использования методов, специфичных для соответствующей СУБД). Главным остается знание опасностей потери данных, от которых вы хотите себя оградить, и методов защиты от них. - -[[backup-basics]] -== Основы технологии резервного копирования - -Тремя основными программами резервного копирования являются man:dump[8], man:tar[1] и man:cpio[1]. - -=== Dump и Restore - -Для UNIX(R) традиционными программами резервного копирования являются `dump` и `restore`. Они работают с приводом как с набором дисковых блоков, которые расположены ниже понятий файлов, связей и каталогов, создаваемых файловыми системами. В отличие от других программ для резервного копирования, программа `dump` выполняет резервное копирование всей файловой системы, располагающейся на устройстве. Невозможно выполнить резервное копирование части файловой системы или дерева каталогов, которые располагаются более чем в одной файловой системе. Утилита `dump` не записывает на ленту файлы и каталоги, она записывает блоки данных, из которых строятся файлы и каталоги. Утилита `restore` по умолчанию настроена так, что в процессе своей работы она сохраняет временные файлы в каталог [.filename]#/tmp/#. В некоторых ситуациях доступного в [.filename]#/tmp/# места бывает недостаточно: например, если вы работаете с диска восстановления (recovery disk). В таких случаях для успешной работы утилиты необходимо указать в переменной окружения `TMPDIR` путь к каталогу на менее заполненной файловой системе. - -[NOTE] -==== -Если вы используете программу `dump` для работы с корневым каталогом, при этом не будет выполняться резервное копирование [.filename]#/home#, [.filename]#/usr# и многих других каталогов, так как они обычно являются точками монтирования других файловых систем или символическими ссылками на эти файловые системы. ==== -В программе `dump` имеются некоторые неудобства, оставшиеся от её ранних дней в составе Version 6 операционной системы AT&T UNIX (примерно 1975). Параметры, используемые по умолчанию, подходят для 9-дорожечных лент (6250 bpi), но не для современных носителей с высокой плотностью записи информации (до 62,182 ftpi). Для использования ёмкостей нынешних накопителей на магнитной ленте эти параметры могут быть заданы в командной строке. - -При помощи `rdump` и `rrestore` возможно резервное копирование данных по сети на накопитель, подключенный к другому компьютеру. Обе программы используют в работе man:rcmd[3] и man:ruserok[3] для доступа к накопителю на магнитной ленте на удалённом компьютере. Поэтому пользователь, выполняющий резервное копирование, должен быть указан в файле [.filename]#.rhosts# на удалённом компьютере. Аргументы для `rdump` и `rrestore` должны подходить для использования на другом компьютере. При выполнении копирования по команде `rdump` на компьютере с FreeBSD на накопитель Exabyte, подключенный к машине Sun по имени `komodo`, используйте такую команду: - -[source,shell] -.... -# /sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nsa8 /dev/da0a 2>&1 -.... +Существуют десятки доступных параметров, описанных в man:tar[1]. Эта утилита также поддерживает использование шаблонов исключения для указания, какие файлы не должны включаться при резервном копировании указанного каталога или восстановлении файлов из резервной копии. -Будьте осторожны: есть проблемы с обеспечением безопасности при аутентификации посредством [.filename]#.rhosts#. Внимательно рассмотрите вашу ситуацию. +Для создания резервной копии с использованием указанного списка файлов и каталогов подходит утилита man:cpio[1]. В отличие от `tar`, `cpio` не умеет обходить дерево каталогов и требует предоставления списка файлов для резервирования. -Программы `dump` и `restore` можно использовать в более защищённом режиме посредством `ssh`. +Например, список файлов можно создать с помощью `ls` или `find`. Этот пример создаёт рекурсивный список текущего каталога, который затем передаётся в `cpio` для создания резервной копии с именем [.filename]#/tmp/mybackup.cpio#. -.Использование `dump` через ssh +.Использование `ls` и `cpio` для создания рекурсивной резервной копии текущего каталога [example] ==== - -[source,shell] +[source, shell] .... -# /sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \ -targetuser@targetmachine.example.com dd of=/mybigfiles/dump-usr-l0.gz +# ls -R | cpio -ovF /tmp/mybackup.cpio .... - ==== -Либо воспользуйтесь встроенной в `dump` возможностью, задав переменную окружения `RSH`: +Утилита для резервного копирования, которая пытается объединить возможности, предоставляемые `tar` и `cpio`, — это man:pax[1]. С течением времени различные версии `tar` и `cpio` стали немного несовместимыми. POSIX(R) создал `pax`, который пытается читать и записывать многие из различных форматов `cpio` и `tar`, а также новые собственные форматы. + +Эквивалент `pax` для предыдущих примеров будет: -.Использование `dump` при работе через ssh с заданием `RSH` +.Резервное копирование текущего каталога с помощью `pax` [example] ==== - -[source,shell] +[source, shell] .... -# RSH=/usr/bin/ssh /sbin/dump -0uan -f targetuser@targetmachine.example.com:/dev/sa0 /usr +# pax -wf /tmp/mybackup.pax . .... - ==== -=== `tar` +[[backups-tapebackups]] +=== Использование магнитных лент для резервного копирования -Утилита man:tar[1] также восходит корнями к Version 6 системы AT&T UNIX (около 1975). `tar` работает с файловой системой, записывая на ленту файлы и каталоги. Эта утилита поддерживает не полный набор опций, имеющихся в man:cpio[1], однако не требует необычного перенаправления в командной строке, которое используется в утилите `cpio`. +В то время как технология ленточных накопителей продолжает развиваться, современные системы резервного копирования обычно сочетают удалённое резервное копирование с локальными съёмными носителями. FreeBSD поддерживает любые ленточные накопители, использующие SCSI, такие как LTO или DAT. Поддержка SATA и USB ленточных накопителей ограничена. -Чтобы скопировать данные на накопитель Exabyte, подключенный к машине Sun по имени `komodo`, используйте такую команду: +Для SCSI-ленточных устройств FreeBSD использует драйвер man:sa[4] и устройства [.filename]#/dev/sa0#, [.filename]#/dev/nsa0# и [.filename]#/dev/esa0#. Физическое имя устройства — [.filename]#/dev/sa0#. При использовании [.filename]#/dev/nsa0# программа резервного копирования не перематывает ленту после записи файла, что позволяет записывать несколько файлов на одну ленту. Использование [.filename]#/dev/esa0# приводит к извлечению ленты после закрытия устройства. -[source,shell] +В FreeBSD `mt` используется для управления операциями ленточного накопителя, например, для поиска файлов на ленте или записи управляющих меток на ленту. Например, первые три файла на ленте можно сохранить, пропустив их перед записью нового файла: + +[source, shell] .... -# tar cf - . | rsh komodo dd of=tape-device obs=20b +# mt -f /dev/nsa0 fsf 3 .... -Если вы беспокоитесь о безопасности создания резервных копий по сети, то вместо `rsh` вам нужно использовать `ssh`. - -=== `cpio` +Эта утилита поддерживает множество операций. Подробности смотрите в man:mt[1]. -man:cpio[1] является оригинальной программой UNIX(R) для обмена файлами на магнитных носителях. В утилите `cpio` имеются опции (кроме всего прочего), позволяющие выполнять изменение порядка следования байтов, поддерживающие различные форматы архивов и выполняющие перенаправление данных другим программам. Последняя возможность делает `cpio` прекрасным выбором для целей установки. `cpio` не знает о том, как работать с каталогами, список файлов должен даваться через [.filename]#stdin#. +Для записи одного файла на ленту с помощью `tar` укажите имя устройства ленты и файл для резервного копирования: -`cpio` не поддерживает создание резервных копий по сети. Вы можете воспользоваться перенаправлением вывода и программой `rsh` для посылки данных на удалённый накопитель. - -[source,shell] +[source, shell] .... -# for f in directory_list; do -find $f >> backup.list -done -# cpio -v -o --format=newc < backup.list | ssh user@host "cat > backup_device" +# tar cvf /dev/sa0 file .... -Где directory_list это список директорий, c которых Вы хотите создать резервные копии, _user_@_host_ это комбинация пользователь/хост которая описывает того кто занимается резервированием, и __backup_device__ это устройство куда копии должны быть записаны (например, [.filename]#/dev/nsa0#). - -=== `pax` - -man:pax[1] является ответом IEEE/POSIX(R) на утилиты `tar` и `cpio`. В течение многих лет различные версии программ `tar` и `cpio` получались не совсем совместимыми. Так что вместо того, чтобы попытаться полностью их стандартизировать, POSIX(R) создал новую утилиту для работы с архивами. `pax` пытается читать и писать различные форматы `cpio` и `tar`, и, кроме того, свои собственные новые форматы. Набор команд этой утилиты больше напоминает `cpio`, чем `tar`. - -[[backups-programs-amanda]] -=== Amanda - -Amanda (Advanced Maryland Network Disk Archiver) является целой клиент/серверной системой резервного копирования, а не отдельной программой. Сервер Amanda сможет осуществлять резервное копирование на единственный накопитель любого количества компьютеров, на которых имеется клиент Amanda и которые могут связываться по сети с сервером Amanda. Общей проблемой систем с большим количеством больших дисков является то, что время, требуемое для непосредственной записи данных на ленту, превышает лимит времени, выделенный на эту задачу. Amanda решает эту проблему. Amanda может использовать "промежуточный диск" для резервного копирования нескольких файловых систем одновременно. Amanda создаёт "наборы архивов": группа лент, используемых в некоторый период времени для создания полных копий всех файловых систем, перечисленных в конфигурационном файле системы Amanda. "Архивный набор" содержит также создаваемый каждую ночь инкрементальные (или дифференциальные) резервные копии всех файловых систем. Восстановление повреждённой файловой системы требует наличия самой последней полной копии и инкрементальных резервных копий. - -Конфигурационный файл даёт прекрасный механизм для управления процессом резервного копирования и объёмом трафика, генерируемого системой Amanda. Amanda сможет использовать любую из перечисленных выше программ для записи данных на ленту. Amanda имеется в виде как порта, так и пакета, и по умолчанию она не установлена. - -=== Не делать ничего - -"Не делать ничего" - это не программа для компьютера, и в то же время это наиболее широко используемая стратегия резервного копирования. Здесь нет никаких первоначальных затрат. Здесь нет расписания, которому нужно следовать. Просто скажите нет. Если что-то случится с вашими данными, улыбнитесь и забудьте о них! - -Если ваше время и данные практически ничего не стоят, то "не делать ничего" является самой подходящей программой для вашего компьютера. Но будьте осторожны, POSIX(R) является весьма полезным инструментом, и через полгода вы можете обнаружить, что у вас есть набор файлов, представляющих для вас определенную ценность. - -"Ничего не делать" является правильным методом резервного копирования для [.filename]#/usr/obj# и других деревьев каталогов, которые могут быть в точности перегенерированы вашим компьютером. Примером являются файлы, представляющие страницы этого Руководства в форматах HTML или PostScript(R). Они генерируются из входных файлов в формате SGML. Создавать резервные копии файлов в форматах HTML и PostScript(R) не нужно. Исходные файлы в формате SGML копируются регулярно. +Для восстановления файлов из архива `tar` на ленте в текущий каталог: -=== Какая программа резервного копирования самая лучшая? - -man:dump[8] _Точка._ Elizabeth D. Zwicky протестировала все программы резервного копирования, обсуждаемые здесь. Беспроигрышным вариантом для сохранения всех ваших данных и особенностей файловых систем UNIX(R) является `dump`. Элизабет создала файловые системы, содержащие большое количество необычных элементов (и некоторых не так уж необычных) и тестировала каждую из программ, выполняя резервное копирование и последующее восстановление этих файловых систем. В число необычных элементов входили: файлы с дырами, файлы с дырами и блоком пустого места, файлы с необычными символами в их именах, нечитаемые и незаписываемые файлы, устройства, меняющие свой размер во время резервного копирования, файлы, создаваемые и удаляемые во время копирования и тому подобное. Она представила результаты на конференции LISA V в октябре 1991 года. Посмотрите ссылку на сайте http://www.coredumps.de/doc/dump/zwicky/testdump.doc.html[ torture-testing Backup and Archive Programs]. - -=== Процедура восстановления при сбое - -==== До того, как случится катастрофа - -Вам нужно выполнить всего лишь четыре шага для того, чтобы быть готовым к любому сбою. - -Во-первых, распечатайте разметку диска для всех ваших дисков (к примеру, `bsdlabel da0 | lpr`), таблицу файловых систем ([.filename]#/etc/fstab#) и все сообщения, выводимые при загрузке, каждого по два экземпляра. - -Во-вторых, запишите CD диск с "livefs". Этот диск позволяет загружаться в режим аварийного восстановления FreeBSD, давая возможность пользователю выполнять ряд утилит, среди которых man:dump[8], man:restore[8], man:fdisk[8], man:bsdlabel[8], man:newfs[8], man:mount[8] и т.д. Образ CD с "livefs" для FreeBSD/i386 {rel120-current}-RELEASE находится по адресу link:ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/ISO-IMAGES/{rel120-current}/FreeBSD-{rel120-current}-RELEASE-i386-livefs.iso[ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/ISO-IMAGES/{rel120-current}/FreeBSD-{rel120-current}-RELEASE-i386-livefs.iso]. - -В-третьих, регулярно создавайте резервные копии на ленте. Любые изменения, которые вы делали после последнего резервного копирования, могут быть безвозвратно потеряны. На лентах включайте защиту от записи. - -В-четвертых, проверяйте работу CD диска (который вы сделали при выполнении второго шага) и лент с резервными копиями. Ведите журнал выполняемых действий. Храните эти записи вместе с загрузочным CD диском, распечатками и лентами. Вы просто обезумеете при восстановлении данных, если окажется, что записи помогли бы избежать разрушения ваших резервных копий (Каким образом? Вместо команды `tar xvf /dev/sa0` вы могли случайно набрать `tar cvf /dev/sa0` и тем самым перезаписать вашу резервную копию). - -Для дополнительной страховки, каждый раз создавайте загрузочный CD диск с "livefs" и две резервные копии на ленте. Храните одну из копий в каком-то удаленном месте и НЕ в том же здании, где находится ваш офис. Достаточно большое количество компаний во Всемирном Торговом Центре изучило это на своей шкуре. Это удаленное хранилище должно быть физически отделено на большое расстояние от ваших компьютеров и дисковых устройств. - -==== После сбоя - -Главный вопрос: выжило ли ваше оборудование? Вы регулярно делали резервные копии, так что нет нужды беспокоиться о программном обеспечении. - -Если оборудование было повреждено, должны быть заменены неисправные компоненты. - -Если с оборудованием всё в порядке, вставьте CD диск с "livefs" в привод и загрузите компьютер. На экран будет выведено оригинальное меню установки. Выберите требуемую страну, потом - пункт меню [.guimenuitem]#Fixit -- Repair mode with CDROM/DVD/floppy or start a shell.#, а в нём выберите пункт [.guimenuitem]#CDROM/DVD -- Use the live filesystem CDROM/DVD#. Утилита `restore` и другие нужные вам программы находятся в каталоге [.filename]#/mnt2/rescue#. - -Восстановите по отдельности каждую файловую систему. - -Попробуйте выполнить команду `mount` (например, `mount /dev/da0a /mnt`) по отношению к корневому разделу вашего первого диска. Если метка диска была испорчена, то воспользуйтесь командой `bsdlabel` для переразбиения на разделы и разметки диска так, чтобы получившаяся метка совпала с той, которая вами была распечатана и сохранена. Для повторного создания файловых систем используйте утилиту `newfs`. Повторно смонтируйте корневой раздел диска в режиме чтения-записи (`mount -u -o rw /mnt`). Воспользуйтесь вашей программой резервного копирования и резервными копиями на лентах для восстановления данных для этой файловой системы (например. `restore vrf /dev/sa0`). Размонтируйте файловую систему (например, `umount /mnt`). Повторите эту процедуру для каждой файловой системы, которая была повреждена. - -Как только ваша система заработает, сделайте резервную копию на новые ленты. Что бы ни вызвало сбой или потерю данных, это может случиться снова. Ещё один час, потраченный в этот момент, может спасти вас от неприятностей в будущем. - -[[disks-virtual]] -== Сетевые файловые системы, файловые системы в памяти и с отображением в файл - -Кроме дисков, которые вы физически устанавливаете в ваш компьютер; дискеты, компакт-диски, винчестеры и так далее, FreeBSD воспринимает и другие типы дисков - _виртуальные диски_. - -Сюда могут быть отнесены сетевые файловые системы, такие, как crossref:network-servers[network-nfs,Network File System] и Coda, а также файловые системы с организацией в памяти и создаваемые в файлах. - -В зависимости от версии FreeBSD, которую вы используете, для создания и работы с файловыми системами, отображаемыми в оперативную память или файлы, вам нужно будет пользоваться разными инструментами. - -[NOTE] -==== -Пользователи FreeBSD 4.X для создания требуемых устройств должны использовать man:MAKEDEV[8]. Во FreeBSD 5.0 и более поздних версиях для создания файлов устройств используется man:devfs[5], которая выполняет это прозрачно для пользователей. -==== - -[[disks-vnconfig]] -=== Файловая система в файле во FreeBSD 4.X - -Утилита man:vnconfig[8] конфигурирует и позволяет использовать дисковые устройства на основе псевдо-устройств vnode. _vnode_ представляет собой файл и отвечает за работу с файлом. Это означает, что man:vnconfig[8] использует файлы для создания и работы с файловой системой. Одним из возможных способов использования является монтирование образов дискет или образов компакт-дисков, сброшенных в файлы. - -Для использования man:vnconfig[8] в конфигурационном файле ядра вам нужно включить поддержку man:vn[4]: - -[.programlisting] +[source, shell] .... -pseudo-device vn +# tar xvf /dev/sa0 .... -Чтобы смонтировать имеющийся образ файловой системы: - -.Использование vnconfig для монтирования имеющегося образа файловой системы во FreeBSD 4.X -[example] -==== +Для резервного копирования файловой системы UFS используйте `dump`. В этом примере выполняется резервное копирование [.filename]#/usr# без перемотки ленты по завершении: -[source,shell] +[source, shell] .... -# vnconfig vn0 diskimage -# mount /dev/vn0c /mnt +# dump -0aL -b64 -f /dev/nsa0 /usr .... -==== - -Для создания нового образа файловой системы с помощью man:vnconfig[8]: - -.Создание нового диска в файле с помощью `vnconfig` -[example] -==== +Для интерактивного восстановления файлов из файла `dump` на ленте в текущий каталог: -[source,shell] +[source, shell] .... -# dd if=/dev/zero of=newimage bs=1k count=5k -5120+0 records in -5120+0 records out -# vnconfig -s labels -c vn0 newimage -# bsdlabel -r -w vn0 auto -# 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 -# mount /dev/vn0c /mnt -# df /mnt -Filesystem 1K-blocks Used Avail Capacity Mounted on -/dev/vn0c 4927 1 4532 0% /mnt +# restore -i -f /dev/nsa0 .... -==== - -[[disks-mdconfig]] -=== Файловые системы, отображаемые в файлы +[[backups-programs-amanda]] +=== Сторонние утилиты резервного копирования -Во FreeBSD 5.X и более поздних для конфигурации и подключения дисков man:md[4], отображаемых в оперативную память, используется утилита man:mdconfig[8]. Для работы с man:mdconfig[8] вам нужно подгрузить модуль man:md[4] или добавить поддержку этих устройств в файл конфигурации ядра: +Коллекция портов FreeBSD предоставляет множество сторонних утилит, которые можно использовать для планирования создания резервных копий, упрощения резервного копирования на ленточные накопители, а также для повышения удобства и простоты этого процесса. Многие из этих приложений работают по принципу клиент-сервер и позволяют автоматизировать резервное копирование как отдельной системы, так и всех компьютеров в сети. -[.programlisting] -.... -device md -.... +Популярные утилиты включают: -Утилита man:mdconfig[8] поддерживает три типа виртуальных дисков, отображаемых в память: диски в памяти, которая выделяется запросами man:malloc[9] и диски в памяти, использующие в качестве устройств хранения файлы или раздел подкачки. Одним из возможных использований таких дисков является монтирование файлов с образами дискет или CD. + * Amanda (package:misc/amanda-server[] и package:misc/amanda-client[]), + * Bacula (package:sysutils/bacula13-server[] и package:sysutils/bacula13-client[]), + * Bareos (package:sysutils/bareos-server[] и package:sysutils/bareos-client[]), + * package:net/rsync[], + * package:sysutils/duply[], и + * package:sysutils/duplicity[]. -Для монтирования образа существующей файловой системы: +=== Процедура восстановления при сбое -.Использование `mdconfig` для монтирования файла с образом существующей файловой системы -[example] -==== +В дополнение к регулярному резервному копированию рекомендуется выполнить следующие шаги в рамках плана подготовки к чрезвычайным ситуациям. -[source,shell] -.... -# mdconfig -a -t vnode -f diskimage -u 0 -# mount /dev/md0 /mnt -.... +Создайте печатную копию вывода следующих команд: -==== +* `gpart show` +* `more /etc/fstab` +* `pkg prime-list` +* `dmesg` -Для создания образа новой файловой системы при помощи man:mdconfig[8]: +Сохраните эту распечатку и копию установочного носителя в надежном месте. В случае необходимости аварийного восстановления загрузитесь с установочного носителя и выберите `Live CD` для доступа к оболочке-спасателю — режиму аварийного восстановления. Этот режим восстановления можно использовать для просмотра текущего состояния системы и, при необходимости, для переразметки дисков и восстановления данных из резервных копий. -.Создание нового диска, отображаемого в файл, при помощи `mdconfig` -[example] -==== +Затем протестируйте аварийную оболочку и резервные копии. Задокументируйте процедуру. Храните эти записи вместе с носителями, распечатками и резервными копиями. Эти заметки могут предотвратить случайное уничтожение резервных копий в стрессовой ситуации во время аварийного восстановления. -[source,shell] -.... -# dd if=/dev/zero of=newimage bs=1k count=5k -5120+0 records in -5120+0 records out -# mdconfig -a -t vnode -f newimage -u 0 -# bsdlabel -w md0 auto -# 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 -# mount /dev/md0a /mnt -# df /mnt -Filesystem 1K-blocks Used Avail Capacity Mounted on -/dev/md0a 4710 4 4330 0% /mnt -.... - -==== +Для дополнительной безопасности храните последнюю резервную копию в удалённом месте, физически отделённом от компьютеров и дисков на значительное расстояние. -Если в параметре `-u` вы не задали номер устройства, то man:mdconfig[8] для выбора неиспользуемого устройства будет использовать функцию автоматическое выделения в man:md[4]. Имя выделенного устройства будет выдано на стандартное устройство выводы в виде, например, [.filename]#md4#. Для получения более полной информации о man:mdconfig[8], пожалуйста, обратитесь к соответствующей странице справочной системы. +[[disks-virtual]] +== Диски в памяти -Утилита man:mdconfig[8] весьма полезна, однако для создания файла с файловой системой требуется произвести много действий. Вместе с FreeBSD 5.0 поставляется утилита под названием man:mdmfs[8], которая создаёт диск man:md[4] при помощи man:mdconfig[8], размещает на нём файловую систему UFS при помощи man:newfs[8] и монтирует её командой man:mount[8]. Например, если вы хотите создать и смонтировать такой же образ файловой системе, как выше, просто наберите такую команду: +В дополнение к физическим дискам FreeBSD также поддерживает создание и использование RAM-дисков. Один из возможных вариантов применения RAM-диска — доступ к содержимому файловой системы ISO без необходимости предварительной записи на CD или DVD с последующим монтированием CD/DVD-носителя. -.Настройка и монтирование диска, отображаемого в файл, при помощи команды `mdmfs` -[example] -==== +В FreeBSD драйвер man:md[4] используется для поддержки дисков в памяти. Ядро [.filename]#GENERIC# включает этот драйвер. При использовании пользовательского конфигурационного файла ядра убедитесь, что он содержит следующую строку: -[source,shell] +[.programlisting] .... -# dd if=/dev/zero of=newimage bs=1k count=5k -5120+0 records in -5120+0 records out -# mdmfs -F newimage -s 5m md0 /mnt -# df /mnt -Filesystem 1K-blocks Used Avail Capacity Mounted on -/dev/md0 4718 4 4338 0% /mnt +device md .... -==== - -Если вы используете параметр `md` без номера устройства, то man:mdmfs[8] будет использовать автоматическую нумерацию man:md[4] для автоматического выбора неиспользуемого устройства. Более полную информацию о man:mdmfs[8] можно найти на страницах справочной системы. +[[disks-mdconfig]] +=== Присоединение и отсоединение существующих образов -[[disks-md-freebsd4]] -=== Файловая система в памяти во FreeBSD 4.X +Для подключения существующего образа файловой системы используйте `mdconfig`, указав имя файла ISO и свободный номер устройства. Затем, используя этот номер устройства, подключите его к существующей точке монтирования. После подключения файлы из ISO будут доступны в точке монтирования. В этом примере _diskimage.iso_ подключается к устройству в памяти [.filename]#/dev/md0#, которое затем монтируется в [.filename]#/mnt#: -Драйвер man:md[4] является простым и эффективным способом создания файловых систем в памяти во FreeBSD 4.X. Для выделения памяти используется man:malloc[9]. +[source, shell] +.... +# mdconfig -f diskimage.iso -u 0 +# mount -t cd9660 /dev/md0 /mnt +.... -Просто возьмите файловую систему, которую вы приготовили при помощи, скажем, man:vnconfig[8] и: +Обратите внимание, что `-t cd9660` был использован для монтирования формата ISO. Если номер устройства не указан с помощью `-u`, `mdconfig` автоматически выделит неиспользуемый диск в памяти и выведет имя выделенного устройства, например, [.filename]#md4#. Дополнительные сведения о данной команде и её параметрах можно найти в man:mdconfig[8]. -.Диск md в памяти во FreeBSD 4.X -[example] -==== +Когда диск в памяти больше не используется, его ресурсы должны быть возвращены обратно системе. Сначала размонтируйте файловую систему, затем используйте `mdconfig` для отключения диска от системы и освобождения его ресурсов. Чтобы продолжить этот пример: -[source,shell] +[source, shell] .... -# dd if=newimage of=/dev/md0 -5120+0 records in -5120+0 records out -# mount /dev/md0c /mnt -# df /mnt -Filesystem 1K-blocks Used Avail Capacity Mounted on -/dev/md0c 4927 1 4532 0% /mnt +# umount /mnt +# mdconfig -d -u 0 .... -==== - -Для получения более полной информации, пожалуйста, обратитесь к страницам справочной системы по man:md[4]. +Чтобы определить, подключены ли к системе какие-либо диски в памяти, введите `mdconfig -l`. [[disks-md-freebsd5]] -=== Файловые системы с отображением в память +=== Создание диска в памяти на основе файла или памяти -При работе с файловыми системами, отображаемыми в файл или память, используются одни и те же утилиты: man:mdconfig[8] или man:mdmfs[8]. Обычно для отображаемых в память файловых систем следует использовать опцию "хранение на области подкачки". Это не означает, что такая файловая система будет сразу сброшена на диск: место под нее будет выделено из общего пула памяти, и при необходимости может перемещаться в область подкачки. Также, возможно выделение места под файловую систему в основной памяти (через man:malloc[9]); однако, следует помнить, что использование таких файловых систем, в особенности большого размера, может привести к панике системы от исчерпания ядерной памяти. +FreeBSD также поддерживает диски в памяти, где хранилище выделяется либо с жёсткого диска, либо из области памяти. Первый метод обычно называют файловой системой на основе файла, а второй — файловой системой на основе памяти. Оба типа можно создать с помощью `mdconfig`. -.Создание нового диска с отображением в память при помощи `mdconfig` -[example] -==== +Для создания новой файловой системы в памяти укажите тип `swap` и размер создаваемого диска в памяти. Затем отформатируйте диск в памяти файловой системой и смонтируйте его как обычно. В этом примере создаётся диск в памяти размером 5M на устройстве `1`. Этот диск в памяти затем форматируется файловой системой UFS перед монтированием: -[source,shell] +[source, shell] .... # mdconfig -a -t swap -s 5m -u 1 # 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 + 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 # mount /dev/md1 /mnt @@ -1694,447 +1257,373 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md1 4718 4 4338 0% /mnt .... -==== +Чтобы создать новый файловый диск в памяти, сначала выделите область на диске для использования. В этом примере создается пустой файл размером 5 МБ с именем [.filename]#newimage#: -.Создание нового диска с отображением в память при помощи `mdmfs` -[example] -==== +[source, shell] +.... +# dd if=/dev/zero of=newimage bs=1k count=5k +5120+0 records in +5120+0 records out +.... + +Затем подключите этот файл к диску в памяти, создайте метку диска и отформатируйте его с файловой системой UFS, смонтируйте диск в памяти и проверьте размер диска на основе файла: -[source,shell] +[source, shell] .... -# mdmfs -s 5m md2 /mnt +# mdconfig -f newimage -u 0 +# bsdlabel -w md0 auto +# newfs -U md0a +/dev/md0a: 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 +# mount /dev/md0a /mnt # df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on -/dev/md2 4846 2 4458 0% /mnt +/dev/md0a 4710 4 4330 0% /mnt .... -==== - -=== Отключение диска, отображаемого в память, от системы - -Если файловые системы, отображаемые в память или файл, больше не используются, вам нужно высвободить все ресурсы для системы. Первым делом нужно размонтировать файловую систему, затем воспользоваться man:mdconfig[8] для отключения диска от системы и освободить ресурсы. - -К примеру, чтобы отключить и освободить все ресурсы, используемые [.filename]#/dev/md4#: +Для создания файловой системы на основе файла или оперативной памяти с помощью `mdconfig` требуется выполнить несколько команд. В FreeBSD также доступна утилита `mdmfs`, которая автоматически настраивает диск в памяти, форматирует его с файловой системой UFS и монтирует. Например, после создания образа _newimage_ с помощью `dd`, следующая команда эквивалентна выполнению команд `bsdlabel`, `newfs` и `mount`, приведённых выше: -[source,shell] +[source, shell] .... -# mdconfig -d -u 4 +# mdmfs -F newimage -s 5m md0 /mnt .... -Для выдачи информации об отконфигурированных устройствах man:md[4] используется команда `mdconfig -l`. - -Во FreeBSD 4.X для отключения устройства используется команда man:vnconfig[8]. Например, для отключения и освобождения всех ресурсов, используемых [.filename]#/dev/vn4#: +Чтобы вместо этого создать новый диск в памяти на основе оперативной памяти с помощью `mdmfs`, используйте следующую команду: -[source,shell] +[source, shell] .... -# vnconfig -u vn4 +# mdmfs -s 5m md1 /mnt .... +Если номер устройства не указан, `mdmfs` автоматически выберет неиспользуемое устройство памяти. Подробнее о `mdmfs` см. в man:mdmfs[8]. + [[snapshots]] -== Мгновенные копии файловых систем +== Снимки файловой системы + +FreeBSD предлагает функцию в сочетании с crossref:config[soft-updates,мягкими обновлениями]: создание снимков файловой системы. -Во FreeBSD 5.0 вместе с технологией crossref:cutting-edge[soft-updates, Отложенных обновлений] представлена новая возможность: генерация мгновенных копий файловых систем. +Снимки UFS позволяют пользователю создавать образы указанных файловых систем и работать с ними как с файлами. Если вы используете crossref:zfs[,файловую систему Z (ZFS)], обратитесь к crossref:zfs[zfs-zfs-snapshot,"Управление снимками"] для получения информации об использовании снимков. -Мгновенные копии позволяют пользователю создавать образы заданных файловых систем и работать с ними как с файлами. Файлы мгновенных копий должны создаваться в той файловой системе, над которой производится действие, и пользователь может создавать не более 20 мгновенных копий для каждой файловой системы. Активные копии записываются в суперблок, так что они остаются в силе между операциями монтирования и размонтирования в процессе системных перезагрузок. Если мгновенная копия больше не нужна, она может быть удалена стандартной командой man:rm[1]. Мгновенные копии могут удаляться в любом порядке, однако всё использованное пространство не может быть использовано, так как другая мгновенная копия может претендовать на некоторые блоки из освобождённых. +Файлы снимков должны быть созданы в той файловой системе, над которой выполняется действие, и пользователь может создать не более 20 снимков для каждой файловой системы. Активные снимки записываются в суперблок, поэтому они сохраняются после размонтирования и повторного монтирования, а также после перезагрузки системы. Когда снимок больше не нужен, его можно удалить с помощью man:rm[1]. Хотя снимки можно удалять в любом порядке, не все освобождаемое пространство может быть использовано, так как другой снимок может претендовать на часть освобожденных блоков. -Неизменяемый флаг `snapshot` устанавливается на файл при помощи man:mksnap_ffs[8] после первоначального создания файла мгновенной копии. Команда man:unlink[1] делает исключение для файлов мгновенных копий, позволяя их удалять. +Неизменяемый флаж файла `snapshot` устанавливается man:mksnap_ffs[8] после первоначального создания файла снимка. man:unlink[1] делает исключение для файлов снимков, так как позволяет их удалять. -Мгновенные копии создаются при помощи утилиты man:mount[8]. Чтобы создать мгновенную копию [.filename]#/var# в файле [.filename]#/var/snapshot/snap#, воспользуйтесь такой командой: +Снимки создаются с помощью man:mount[8]. Чтобы создать снимок [.filename]#/var# в файле [.filename]#/var/snapshot/snap#, используйте следующую команду: -[source,shell] +[source, shell] .... # mount -u -o snapshot /var/snapshot/snap /var .... -В качестве альтернативного средства создания мгновенных копий вы можете использовать утилиту man:mksnap_ffs[8]: +Или используйте man:mksnap_ffs[8] для создания снимка: -[source,shell] +[source, shell] .... # mksnap_ffs /var /var/snapshot/snap .... -Файлы мгновенных копий файловых систем (к примеру, [.filename]#/var#) можно найти при помощи команды man:find[1]: +Файлы снимков можно найти в файловой системе, например, в [.filename]#/var#, с помощью man:find[1]: -[source,shell] +[source, shell] .... # find /var -flags snapshot .... -После создания мгновенной копии есть несколько способов её использования: +После создания моментального снимка он может быть использован несколькими способами: -* Некоторые администраторы будут использовать файл мгновенной копии для целей создания резервной копии, так как мгновенная копия может быть перенесена на CD или магнитную ленту. -* Утилита проверка целостности файловой системы, man:fsck[8], может быть запущена над мгновенной копией. Полагая, что файловая система была в порядке, когда она была смонтирована, вы всегда должны получать нормальный (и неизменный) результат. Это именно то, что выполняет фоновый процесс man:fsck[8]. -* Запустить утилиту man:dump[8] с мгновенной копией. Будет создаваться дамп, соответствующий файловой системе на момент создания мгновенной копии. Утилита man:dump[8] при использовании опции `-L` тоже может работать с мгновенными копиями, создавать их дампы, а затем удалять за один проход. -* Смонтировать командой man:mount[8] мгновенную копию как замороженный образ файловой системы. Чтобы смонтировать командой man:mount[8] мгновенную копию [.filename]#/var/snapshot/snap#, запустите: +* Некоторые администраторы используют файл снимка для резервного копирования, так как снимок можно перенести на компакт-диски или магнитные ленты. +* Проверка целостности файловой системы, man:fsck[8], может быть запущена на снимке. При условии, что файловая система была чистой на момент монтирования, результат всегда должен быть чистым и неизменным. +* Запуск man:dump[8] на снимке создаст дамп-файл, согласованный с файловой системой и временной меткой снимка. man:dump[8] также может создать снимок, создать образ дампа и затем удалить снимок одной командой, используя опцию `-L`. +* Снимок может быть смонтирован как замороженный образ файловой системы. Для монтирования снимка [.filename]#/var/snapshot/snap# выполните команду man:mount[8]: + - -[source,shell] +[source, shell] .... -# mdconfig -a -t vnode -f /var/snapshot/snap -u 4 +# mdconfig -a -t vnode -o readonly -f /var/snapshot/snap -u 4 # mount -r /dev/md4 /mnt .... -Теперь вы можете пройтись по иерархии вашей зафиксированной файловой системы [.filename]#/var#, смонтированной в каталог [.filename]#/mnt#. Первоначально всё будет в том же самом состоянии, в каком это было во время создания мгновенной копии. Единственным исключением будет то, что любые ранее сделанные мгновенные копии будут видны как файлы нулевой длины. Когда использование мгновенной копии закончено, она может быть удалена командой: +Замороженный [.filename]#/var# теперь доступен через [.filename]#/mnt#. Все изначально будет находиться в том же состоянии, в котором было на момент создания снимка. Единственное исключение — любые предыдущие снимки будут отображаться как файлы нулевой длины. Чтобы отмонтировать снимок, используйте: -[source,shell] +[source, shell] .... # umount /mnt # mdconfig -d -u 4 .... -Для получения более полной информации о `softupdates` и мгновенных копиях файловых систем, включая технической описание, вы можете посетить сайт Маршалла Кёрка МакКузика (Marshall Kirk McKusick) по адресу http://www.mckusick.com/[http://www.mckusick.com/]. +Для получения дополнительной информации о `softupdates` и снимках файловых систем, включая технические документы, посетите веб-сайт Маршалла Кирка Маккусика по адресу http://www.mckusick.com/[http://www.mckusick.com/]. [[quotas]] -== Квотирование файловых систем +== Квоты на диске + +Дисковые квоты могут использоваться для ограничения объёма дискового пространства или количества файлов, которые пользователь или члены группы могут выделить в рамках одной файловой системы. Это предотвращает ситуацию, когда один пользователь или группа пользователей потребляет всё доступное дисковое пространство. + +Этот раздел описывает, как настроить квоты дисков для файловой системы UFS. Для настройки квот в файловой системе ZFS обратитесь к crossref:zfs[zfs-zfs-quota,"Квоты наборов данных, пользователей и групп"] -Квоты - это опциональная возможность операционной системы, которая позволяет ограничивать объем дискового пространства и/или количество файлов для конкретного пользователя или членов определенной группы в рамках одной файловой системы. Чаще всего эта возможность используется в системах разделения времени, когда желательно ограничить количество ресурсов, которые может использовать один пользователь или группа пользователей. Это позволит не допустить ситуации, когда один пользователь или группа пользователей заполняют всё доступное дисковое пространство. +=== Включение квот на диске -=== Настройка вашей системы на использование дисковых квот +Чтобы определить, поддерживает ли ядро FreeBSD квоты дискового пространства: + +[source, shell] +.... +% sysctl kern.features.ufs_quota +kern.features.ufs_quota: 1 +.... -Перед тем, как попытаться использовать дисковые квоты, необходимо убедиться, что квоты включены в вашем ядре. Это делается добавлением следующей строки в конфигурационный файл вашего ядра: +В этом примере `1` указывает на поддержку квот. Если значение равно `0`, добавьте следующую строку в файл конфигурации собственного ядра и пересоберите ядро, используя инструкции из crossref:kernelconfig[kernelconfig,Настройка ядра FreeBSD]: [.programlisting] .... options QUOTA .... -В стандартном ядре [.filename]#GENERIC# это по умолчанию не включено, так что для использования дисковых квот вам нужно будет настроить, откомпилировать и установить собственное ядро. Пожалуйста, обратитесь к crossref:kernelconfig[kernelconfig, Настройка ядра FreeBSD] за дополнительной информацией о настройке ядра. - -Затем вам потребуется включить квотирование дисков в файле [.filename]#/etc/rc.conf#. Это делается добавление такой строчки: +Далее включите квоты на диски в [.filename]#/etc/rc.conf#: [.programlisting] .... -enable_quotas="YES" +quota_enable="YES" .... -Для более полного контроля над запуском квотирования имеется дополнительная переменная для настройки. Как правило, при загрузке целостность квот каждой файловой системы проверяется программой man:quotacheck[8]. При работе программы man:quotacheck[8] проверяется точное соответствие данных в базе данных квот данным в файловой системе. Это весьма долгий процесс, что отражается на времени загрузки системы. Если вам захочется пропустить этот шаг, то для этого предназначена специальная переменная в файле [.filename]#/etc/rc.conf#: +Обычно при загрузке проверяется целостность квот для каждой файловой системы с помощью man:quotacheck[8]. Эта программа гарантирует, что данные в базе квот соответствуют данным в файловой системе. Это трудоёмкий процесс, который может значительно увеличить время загрузки системы. Чтобы пропустить этот шаг, добавьте следующую переменную в [.filename]#/etc/rc.conf#: [.programlisting] .... check_quotas="NO" .... -Наконец, вам потребуется отредактировать файл [.filename]#/etc/fstab# для включения дисковых квот на уровне файловых систем. Это то место, где вы можете включить квоты для пользователей, для групп или для обеих этих категорий для всех ваших файловых систем. - -Для включения пользовательских квот для файловой системы, добавьте параметр `userquota` в поле параметров файловой системы, на которой вы хотите включить квотирование, в файле [.filename]#/etc/fstab#. Например: +Наконец, отредактируйте [.filename]#/etc/fstab#, чтобы включить квоты диска для каждой файловой системы. Чтобы включить квоты для пользователей в файловой системе, добавьте `userquota` в поле опций записи [.filename]#/etc/fstab# для файловой системы, на которой нужно включить квоты. Например: [.programlisting] .... /dev/da1s2g /home ufs rw,userquota 1 2 .... -Подобным же образом для включения квотирования на уровне групп, воспользуйтесь параметром `groupquota` вместо `userquota`. Чтобы включить квотирование как для пользователей, так и для групп, измените строчку следующим образом: +Для включения квот групп используйте `groupquota` вместо этого. Чтобы включить квоты и для пользователей, и для групп, разделите параметры запятой: [.programlisting] .... -/dev/da1s2g /home ufs rw,userquota,groupquota 2 2 +/dev/da1s2g /home ufs rw,userquota,groupquota 1 2 .... -По умолчанию файлы квот хранятся в корневом каталоге файловой системы в файлах с именами [.filename]#quota.user# и [.filename]#quota.group# соответственно для пользовательских и групповых квот. Для получения подробной информации обратитесь к команде man:fstab[5]. Хотя справочная страница по man:fstab[5] утверждает, что вы можете указать другое местоположение файлов с квотами, этого делать не рекомендуется, потому что различные утилиты для работы с квотами не могут нормально работать в такой ситуации. +По умолчанию файлы квот хранятся в корневом каталоге файловой системы как [.filename]#quota.user# и [.filename]#quota.group#. Дополнительную информацию можно найти в man:fstab[5]. Указание альтернативного расположения для файлов квот не рекомендуется. -На этом этапе вы должны перезагрузить вашу систему с новым ядром. Скрипт [.filename]#/etc/rc# автоматически запустит соответствующие команды для создания начальных файлов для всех квот, которые вы создали в файле [.filename]#/etc/fstab#, так что нет нужды вручную создавать никаких файлов квот нулевой длины. +После завершения настройки перезагрузите систему, и [.filename]#/etc/rc# автоматически выполнит соответствующие команды для создания начальных файлов квот для всех включённых квот в [.filename]#/etc/fstab#. -При нормальной работе вам не потребуется вручную запускать программы man:quotacheck[8], man:quotaon[8] или man:quotaoff[8]. Однако вам нужно хотя бы прочесть страницы справочника по этим командам, просто чтобы ознакомиться с их функциями. +В обычном режиме работы нет необходимости вручную запускать man:quotacheck[8], man:quotaon[8] или man:quotaoff[8]. Однако рекомендуется ознакомиться с их руководствами, чтобы понимать принцип работы. -=== Установка квот +=== Установка ограничений квот -Как только вы настроили вашу систему на использование квот, проверьте, что они действительно были задействованы. Простым способом сделать это является запуск такой команды: +Для проверки включения квот выполните: -[source,shell] +[source, shell] .... # quota -v .... -Вы должны увидеть однострочную информацию, отражающую использование диска и текущие ограничения для каждой файловой системы, на которой включено квотирование. +Должна быть однострочная сводка об использовании диска и текущих лимитах квот для каждой файловой системы, на которой включены квоты. -Теперь вы действительно готовы задавать ограничения при помощи команды man:edquota[8]. +Система готова к назначению квот с помощью `edquota`. -У вас есть несколько вариантов того, как приводить в действие ограничения по объему дискового пространства, который могут занимать пользователь или группа, а также по количеству файлов, которые они могут создать. Вы можете ограничивать размещение ресурсов на основе объема дискового пространства (квотирование блоков), количества файлов (квотирование inode) или их комбинации. Каждое из этих ограничений, в свою очередь, делится на две категории: мягкие и жёсткие ограничения. +Доступно несколько вариантов для установки ограничений на объем дискового пространства, который может быть выделен пользователю или группе, а также на количество создаваемых ими файлов. Ограничения могут быть установлены на основе объема дискового пространства (блочные квоты), количества файлов (квоты inode) или их комбинации. Каждое ограничение дополнительно разделяется на две категории: жесткие и мягкие лимиты. -Жёсткое ограничение не может быть превышено. Как только пользователь достиг своих ограничений, ресурсы соответствующей файловой системы ему больше выделяться не будут. Например, если пользователь имеет жесткое ограничение в 500 Кбайт на файловой системе и в текущий момент использует 490 Кбайт, то пользователь может получить дополнительно ещё 10 Кбайт. Попытка занять ещё 11 Кбайт окончится неудачно. +Жёсткий лимит не может быть превышен. Как только пользователь достигает жёсткого лимита, он не может выделить дополнительные ресурсы на этой файловой системе. Например, если у пользователя жёсткий лимит в 500 КБ на файловой системе и он уже использует 490 КБ, он может выделить только дополнительные 10 КБ. Попытка выделить дополнительные 11 КБ завершится неудачей. -С другой стороны, мягкие ограничения могут быть превышены в течении некоторого периода времени. Этот период времени также называют периодом отсрочки, который по умолчанию равен одной неделе. Если пользователь превышает своё мягкое ограничение в течение периода времени, превышающего отсрочку, то это мягкое ограничение становится жестким и последующее выделение ресурсов будет запрещено. Когда пользователь вернётся обратно к отметке, меньшей, чем мягкое ограничение, то период отсрочки будет сброшен. +Мягкие ограничения могут быть превышены на ограниченное время, известное как льготный период, который по умолчанию составляет одну неделю. Если пользователь превышает своё ограничение дольше льготного периода, мягкое ограничение становится жёстким, и дальнейшие выделения ресурсов запрещаются. Когда пользователь снова опускается ниже мягкого ограничения, льготный период сбрасывается. -Далее приводится пример того, что вы можете наблюдать при запуске команды man:edquota[8]. Когда вызывается команда man:edquota[8], вы оказываетесь в редакторе, заданном переменной переменной окружения `EDITOR`, или в редакторе vi, если переменная `EDITOR` не задана, и можете редактировать квоты. +В следующем примере редактируется квота для учётной записи `test`. При запуске `edquota` открывается редактор, указанный в переменной `EDITOR`, для изменения ограничений квоты. Редактор по умолчанию установлен в vi. -[source,shell] +[source, shell] .... # edquota -u test -.... - -[.programlisting] -.... Quotas for user test: /usr: kbytes in use: 65, limits (soft = 50, hard = 75) - inodes in use: 7, limits (soft = 50, hard = 60) + 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) + inodes in use: 0, limits (soft = 50, hard = 60) .... -Для каждой файловой системы, на которой включено квотирование, вы должны увидеть две строки. В одной строке приведены ограничения на блоки, а в другой на количество inode. Например, чтобы увеличить ограничения на количество блоков для пользователя с мягкого ограничения в 50 и жёсткого ограничения в 75, на мягкое ограничение в 500 и жёсткое ограничение в 600, измените: - -[.programlisting] -.... -/usr: kbytes in use: 65, limits (soft = 50, hard = 75) -.... - -на: +Обычно для каждой файловой системы с включенными квотами есть две строки. Одна строка представляет ограничения на блоки, а другая — ограничения на файлы. Измените значение, чтобы изменить лимит квоты. Например, чтобы увеличить лимит блоков для [.filename]#/usr# до мягкого лимита `500` и жёсткого лимита `600`, измените значения в этой строке следующим образом: [.programlisting] .... /usr: kbytes in use: 65, limits (soft = 500, hard = 600) .... -Новые ограничения вступят в силу после выхода из редактора. +Новые ограничения квот вступают в силу после выхода из редактора. -Иногда желательно установить ограничения квот на некоторый диапазон UID (идентификаторов пользователей). Это можно сделать при помощи параметра `-p` в команде man:edquota[8]. Во-первых, установите желаемое ограничение для пользователя, а затем запустите команду `edquota -p protouser startuid-enduid`. Например, если пользователь `test` имеет желаемые ограничения, то для дублирования этих ограничений на пользователей с UID от 10000 до 19999 может быть использована такая команда: +Иногда требуется установить квоты для диапазона пользователей. Это можно сделать, сначала назначив желаемую квоту для одного пользователя, а затем используя опцию `-p` для копирования этой квоты в указанный диапазон идентификаторов пользователей (UID). Следующая команда скопирует эти квоты для UID с `10,000` по `19,999`: -[source,shell] +[source, shell] .... # edquota -p test 10000-19999 .... -Дополнительную информацию можно получить из справочной страницы по команде man:edquota[8]. +Для получения дополнительной информации обратитесь к man:edquota[8]. -=== Проверка ограничений и использования диска +=== Проверка ограничений квот и использования диска -Для проверки квот и использования дисков вы можете использовать команды man:quota[1] или man:repquota[8]. Команда man:quota[1] может быть использована для проверки квот отдельных пользователей, групп, а также использования дисков. Пользователь может только проверить собственную квоту и квоту той группы, к которой он принадлежит. Только администратор системы может проверить квоты всех пользователей и групп. Команду man:repquota[8] можно использовать для получения суммарной статистики всех квот и использования дисков для файловых систем с включенными квотами. +Для проверки квот и использования диска отдельными пользователями или группами используйте man:quota[1]. Пользователь может просматривать только свою собственную квоту и квоту группы, в которой он состоит. Только суперпользователь может просматривать все квоты пользователей и групп. Чтобы получить сводку по всем квотам и использованию диска для файловых систем с включёнными квотами, используйте man:repquota[8]. -Далее приведен пример вывода команды `quota -v` для пользователя, который имеет ограничения на двух файловых системах. +Обычно файловые системы, на которых пользователь не занимает места, не отображаются в выводе команды `quota`, даже если для пользователя установлено ограничение квоты для этой файловой системы. Используйте `-v`, чтобы отобразить эти файловые системы. Ниже приведён пример вывода `quota -v` для пользователя, у которого установлены ограничения квоты на двух файловых системах. [.programlisting] .... 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/var 0 50 75 0 50 60 .... -В этом примере для файловой системы [.filename]#/usr# пользователь превысил свое мягкое ограничение в 50 Кбайт на 15 Кбайт и имеет 5 дней до истечения отсрочки. Отметьте знак звездочки `*`, который указывает на превышение пользователем своего ограничения. - -Как правило, файловые системы, на которых пользователь не занимает дискового пространства, не показываются в выводе команды man:quota[1], даже если ему выделена квота на этой файловой системе. При использовании параметра `-v` эти файловые системы выводятся, как, например, файловая система [.filename]#/usr/var# в примере выше. +В этом примере пользователь превысил мягкое ограничение в 50 Кб на [.filename]#/usr# на 15 Кб, и у него осталось 5 дней льготного периода. Звёздочка `*` указывает, что пользователь в настоящее время превысил ограничение квоты. -=== Квоты в NFS +=== Квоты по NFS -Квоты определяются подсистемой квот на сервере NFS. Даемон man:rpc.rquotad[8] предоставляет информацию о квотах для программы man:quota[1] на клиентах NFS, позволяя пользователям на этих машинах смотреть свою статистику о квотах. +Квоты применяются подсистемой квот на NFS-сервере. Демон man:rpc.rquotad[8] предоставляет информацию о квотах для команды `quota` на NFS-клиентах, позволяя пользователям на этих машинах просматривать свою статистику по квотам. -Включите `rpc.rquotad` в файле [.filename]#/etc/inetd.conf# следующим образом: +На NFS-сервере включите `rpc.rquotad`, удалив `+#+` из этой строки в файле [.filename]*/etc/inetd.conf*: [.programlisting] .... rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad .... -Теперь перезапустите `inetd`: +Затем перезапустите `inetd`: -[source,shell] +[source, shell] .... -# /etc/rc.d/inetd restart +# service inetd restart .... [[disks-encrypting]] -== Шифрование дисковых разделов +== Шифрование разделов диска -FreeBSD предоставляет прекрасную возможность по защите от несанкционированного доступа к данным. Права на доступ к файлам и технология принудительного контроля доступа MAC (Mandatory Access Control) (смотрите see crossref:mac[mac, Принудительный контроль доступа (MAC)]) помогают предотвратить несанкционированный доступ посторонних лиц к данным, при условии работы операционной системы и компьютера. Однако права доступа, контролируемые операционной системой, не имеют значения, если нападающий получает физический доступ к компьютеру и может просто перенести жёсткий диск на другую машину для копирования и дальнейшего анализа важных данных. +FreeBSD обеспечивает отличную защиту от несанкционированного доступа к данным в режиме онлайн. Права доступа к файлам и crossref:mac[mac,Принудительный контроль доступа] (MAC) помогают предотвратить доступ к данным неавторизованных пользователей, пока операционная система активна и компьютер включен. Однако принудительно устанавливаемые операционной системой права доступа не имеют значения, если злоумышленник получит физический доступ к компьютеру и сможет переместить его жесткий диск в другую систему для копирования и анализа данных. -Вне зависимости от того, как атакующий завладел жёстким диском или выключенным компьютером, технологии gbde (GEOM Based Disk Encryption - шифрование диска на уровне GEOM) и криптографическая подсистема `geli` FreeBSD могут защитить данные файловой системы компьютера даже против очень заинтересованной атакующей стороны с достаточными ресурсами. В отличие от громоздких систем шифрования, которые шифруют отдельные файлы, `gbde` и `geli` шифруют в прозрачном режиме файловую систему в целом, при этом данные в открытом виде на диск никогда не записываются. +Независимо от того, как злоумышленник получил доступ к жесткому диску или выключенному компьютеру, криптографические подсистемы на основе GEOM, встроенные в FreeBSD, способны защитить данные в файловых системах компьютера даже от высокомотивированных злоумышленников с значительными ресурсами. В отличие от методов шифрования, которые шифруют отдельные файлы, встроенные утилиты `gbde` и `geli` могут использоваться для прозрачного шифрования целых файловых систем. Ни один открытый текст никогда не попадает на пластину жесткого диска. -=== Шифрование диска при помощи gbde +Эта глава демонстрирует, как создать зашифрованную файловую систему в FreeBSD. Сначала показан процесс с использованием `gbde`, а затем приведён тот же пример с использованием `geli`. -[.procedure] -==== +=== Шифрование диска с gbde -. Получите права пользователя `root` -+ -Настройка gbde требует права доступа администратора системы. -+ -[source,shell] -.... -% su - -Password: -.... -+ -. Включите поддержку man:gbde[4] в конфигурационный файл ядра -+ -Добавьте следующую строку в файл конфигурации вашего ядра: -+ -`options GEOM_BDE` -+ -Перестройте ядро FreeBSD. Этот процесс описан в crossref:kernelconfig[kernelconfig, Настройка ядра FreeBSD]. -+ -Перезагрузитесь, запустив новое ядро. -. Альтернативой пересборке ядра является использование `kldload` для загрузки модуля man:gbde[4]: -+ -[source,shell] +Целью средства man:gbde[4] является создание серьёзного препятствия для злоумышленника, пытающегося получить доступ к содержимому _отключённого_ устройства хранения данных. Однако, если компьютер скомпрометирован во время работы и устройство хранения активно подключено, или злоумышленник имеет доступ к корректной парольной фразе, это средство не обеспечивает защиты содержимого устройства хранения. Таким образом, важно обеспечивать физическую безопасность системы во время её работы и защищать парольную фразу, используемую механизмом шифрования. + +Это средство обеспечивает несколько уровней защиты данных, хранящихся в каждом секторе диска. Оно шифрует содержимое сектора диска с использованием 128-битного AES в режиме CBC. Каждый сектор на диске шифруется с использованием уникального ключа AES. Для получения дополнительной информации о криптографической схеме, включая способ получения ключей секторов из предоставленной пользователем парольной фразы, обратитесь к man:gbde[4]. + +FreeBSD предоставляет модуль ядра для gbde, который можно загрузить следующей командой: + +[source, shell] .... # kldload geom_bde .... -==== -==== Подготовка зашифрованного жёсткого диска +Если используется пользовательский конфигурационный файл ядра, убедитесь, что он содержит следующую строку: -В следующем примере предполагается, что в вашу систему вы добавляете новый винчестер, на котором будет располагаться единственный раздел с зашифрованными данными. Этот раздел будет монтироваться в каталог [.filename]#/private#. gbde может также использоваться для шифрования [.filename]#/home# и [.filename]#/var/mail#, но это требует более сложной последовательности действий, что выходит за рамки этого вводного материала. +`options GEOM_BDE` -[.procedure] -==== +Следующий пример демонстрирует добавление нового жесткого диска в систему, который будет содержать единственный зашифрованный раздел, монтируемый в [.filename]#/private#. -. Подключите новый жёсткий диск -+ -Установите новый диск в систему, как это описано в <<disks-adding>>. В рамках этого примера раздел, соответствующий новому жёсткому диску, будет называться [.filename]#/dev/ad4s1c#. Устройства [.filename]#/dev/ad0s1*# представляют существующие стандартные разделы FreeBSD нашей тестовой системы. +[.procedure] +.Процедура: Шифрование раздела с помощью gbde +. Добавьте новый жесткий диск ++ +Установите новый диск в систему, как описано в crossref:disks[disks-adding,Добавление дисков]. Для целей данного примера новый раздел жёсткого диска добавлен как [.filename]#/dev/ad4s1c#, а [.filename]#/dev/ad0s1*# представляет существующие стандартные разделы FreeBSD. + -[source,shell] +[source, shell] .... # 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` + -. Создайте каталог для размещения файлов блокировок GBDE -+ -[source,shell] +[source, shell] .... # mkdir /etc/gbde .... -+ -Файл блокировки gbde содержит информацию, которая нужна gbde для доступа к зашифрованному разделу. Не имея доступа к файлу блокировки, gbde не сможет расшифровать данные, хранимые в зашифрованном разделе, без значительного ручного вмешательства, что программно не поддерживается. Каждый зашифрованный раздел использует отдельный файл блокировки. -. Инициализируйте раздел gbde -+ -Перед началом работы с разделом gbde его необходимо проинициализировать. Эта инициализация производится только один раз: + -[source,shell] -.... -# gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c.lock -.... -+ -man:gbde[8] запустит редактор, что позволит вам задать в шаблоне различные конфигурационные параметры. При работе с файловыми системами UFS1 и UFS2 задайте значение sector_size равным 2048: +Файл блокировки `gbde` содержит информацию, необходимую `gbde` для доступа к зашифрованным разделам. Без доступа к файлу блокировки `gbde` не сможет расшифровать данные, содержащиеся в зашифрованном разделе, без значительного ручного вмешательства, которое не поддерживается программным обеспечением. Каждый зашифрованный раздел использует отдельный файл блокировки. +. Инициализируйте раздел `gbde` + -[.programlisting] +Раздел gbde необходимо инициализировать перед использованием. Эта инициализация выполняется только один раз. Данная команда откроет редактор по умолчанию для настройки различных параметров конфигурации в шаблоне. Для использования с файловой системой UFS установите sector_size в значение 2048: ++ +[source, shell] .... -$FreeBSD: src/sbin/gbde/template.txt,v 1.1 2002/10/20 11:16:13 phk Exp $ +# gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c.lock # # 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 +sector_size = 2048 [...] .... -+ -man:gbde[8] дважды запросит ввод пароля, который будет использоваться для защиты данных. Пароль в обоих случаях должен вводиться одинаковый. Возможности gbde по защите ваших данных полностью зависят от качества выбранной вами ключевой фразы. -+ -По команде `gbde init` создаётся файл блокировок для вашего раздела gbde, который в нашем случае будет иметь имя [.filename]#/etc/gbde/ad4s1c.lock#. Для того, чтобы файлы блокировок корректно распознавались стартовым скриптом [.filename]#/etc/rc.d/gbde#, их имена должны заканчиваться на ".lock". ++ +После сохранения изменений пользователю будет предложено дважды ввести парольную фразу, используемую для защиты данных. Парольная фраза должна быть одинаковой в обоих случаях. Способность gbde защищать данные полностью зависит от качества парольной фразы. Советы по выбору безопасной парольной фразы, которую легко запомнить, можно найти по ссылке http://world.std.com/\~reinhold/diceware.html[http://world.std.com/~reinhold/diceware.htm]. ++ +Такая инициализация создает файл блокировки для раздела gbde. В данном примере он сохраняется как [.filename]#/etc/gbde/ad4s1c.lock#. Файлы блокировки должны иметь расширение ".lock", чтобы корректно определяться скриптом запуска [.filename]#/etc/rc.d/gbde#. + [CAUTION] -====== +==== +Файлы блокировок _обязательно_ должны быть включены в резервную копию вместе с содержимым зашифрованных разделов. Без файла блокировки законный владелец не сможет получить доступ к данным на зашифрованном разделе. +==== -Резервные копии файлов блокировок gbde _должны_ храниться вместе с содержимым шифруемых разделов. Хотя удаление только блокировочного файла не сможет противостоять дешифрации атакующим раздела gbde, без этого файла даже легитимный пользователь не сможет получить доступ к данным без определённых и значительных усилий, что не поддерживается man:gbde[8] и его разработчиком. -====== -+ -. Подключите зашифрованный раздел к системе +. Присоедините зашифрованный раздел к ядру + -[source,shell] +[source, shell] .... # gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lock .... -+ -Будет выдан запрос на ввод ключевой фразы, которую вы выбирали во время инициализации зашифрованного раздела. Новое защищённое устройство будет видно в каталоге [.filename]#/dev# под названием [.filename]#/dev/device_name.bde#: + -[source,shell] +Эта команда запросит ввод парольной фразы, выбранной при инициализации зашифрованного раздела. Новое зашифрованное устройство появится в [.filename]#/dev# под именем [.filename]#/dev/имя_устройства.bde#: ++ +[source, shell] .... # 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] с параметром `-O2`. + -[source,shell] +После подключения зашифрованного устройства к ядру на нем можно создать файловую систему. В этом примере создается файловая система UFS с включенными мягкими обновлениями. Убедитесь, что указан раздел с расширением [.filename]#*.bde#: ++ +[source, shell] .... -# newfs -U -O2 /dev/ad4s1c.bde +# newfs -U /dev/ad4s1c.bde .... -+ -[NOTE] -====== -Запуск команды man:newfs[8] должен выполняться над подключенном разделе gbde, который идентифицируется по расширению [.filename]#*.bde# в имени устройства. -====== -+ + . Смонтируйте зашифрованный раздел -+ -Создайте точку монтирования для зашифрованной файловой системы. + -[source,shell] -.... -# mkdir /private -.... -+ -Смонтируйте защищённую файловую систему. +Создайте точку монтирования и подключите зашифрованную файловую систему: + -[source,shell] +[source, shell] .... +# mkdir /private # mount /dev/ad4s1c.bde /private .... + +. Проверьте, что зашифрованная файловая система доступна + -. Проверьте доступность зашифрованной файловой системы -+ -Защищённая файловая система теперь должна быть доступна утилите man:df[1] и доступной для использования. +Зашифрованная файловая система теперь должна быть видна и доступна для использования: + -[source,shell] +[source, shell] .... % df -H Filesystem Size Used Avail Capacity Mounted on -/dev/ad0s1a 1037M 72M 883M 8% +/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`. - -[.procedure] -==== - -. Подключение gbde-раздела к системе -+ -[source,shell] -.... -# gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lock -.... -+ -Будет выдан запрос на ввод ключевой фразы, выбранной на этапе инициализации зашифрованного раздела gbde. -. Проверка файловой системы на наличие ошибок -+ -Так как защищаемая файловая система не может пока быть указана в файле [.filename]#/etc/fstab# для автоматического монтирования, то она должны проверяться на наличие ошибок посредством ручного запуска man:fsck[8] до её монтирования. -+ -[source,shell] -.... -# fsck -p -t ffs /dev/ad4s1c.bde -.... -+ -. Монтирование зашифрованной файловой системы -+ -[source,shell] -.... -# mount /dev/ad4s1c.bde /private -.... -+ -Теперь защищённая файловая система доступна для работы. -==== - -===== Автоматическое монтирование зашифрованных разделов - -Для автоматического подключения, проверки и монтирования зашифрованного раздела можно создать скрипт, но по соображениям безопасности в этом скрипте пароля для man:gbde[8] быть не должно. Поэтому рекомендуется запускать такие скрипты вручную, а пароль задавать с консоли или сеанса man:ssh[1]. - -Кроме того, базовая система содержит скрипт [.filename]#rc.d# для автоматического монтирования шифрованных разделов. Его аргументы могут быть указаны в файле man:rc.conf[5]: +После каждой загрузки все зашифрованные файловые системы должны быть вручную повторно подключены к ядру, проверены на ошибки и смонтированы, прежде чем их можно будет использовать. Чтобы настроить эти шаги, добавьте следующие строки в [.filename]#/etc/rc.conf#: [.programlisting] .... @@ -2143,117 +1632,114 @@ gbde_devices="ad4s1c" gbde_lockdir="/etc/gbde" .... -При этом ключевая фраза для gbde должна быть введена на этапе загрузки. После введения ключевой фразы зашифрованный раздел будет смонтирован автоматически. Такой подход может быть очень удобным для использования gbde на ноутбуках. +Для этого необходимо ввести пароль на консоли во время загрузки. После ввода правильного пароля зашифрованный раздел будет автоматически подключен. Дополнительные параметры загрузки gbde доступны и перечислены в man:rc.conf[5]. -==== Криптографическая защита, применяемая в gbde - -man:gbde[8] шифрует содержимое секторов при помощи 128-битного AES в режиме CBC. Каждый сектор диска шифруется различным ключом AES. Более полная информацию о системе шифрования gbde, включая алгоритм генерации ключей для секторов из ключевой фразы, вводимой пользователем, можно найти на страницах справочной системы о man:gbde[4]. - -==== Вопросы совместимости - -man:sysinstall[8] несовместим с устройствами, зашифрованными gbde. Все устройства [.filename]#*.bde# перед запуском man:sysinstall[8] должны быть отключены от системы, или эта утилита аварийно завершит работу на этапе обнаружения устройств. Для отключения защищённого устройства, используемого в нашем примере, воспользуйтесь такой командой: +[NOTE] +==== +`sysinstall` несовместим с устройствами, зашифрованными `gbde`. Все устройства с именами `*.bde` должны быть отключены от ядра перед запуском `sysinstall`, иначе он завершится аварией во время начального сканирования устройств. Чтобы отключить зашифрованное устройство, использованное в примере, выполните следующую команду: -[source,shell] +[source, shell] .... # gbde detach /dev/ad4s1c .... +==== -=== Шифрование дисков при помощи `geli` - -Во FreeBSD имеется альтернативный криптографический класс GEOM - `geli`. В настоящий момент он поддерживается {pjd}. Утилита `geli` отличается от `gbde`; она предоставляет другой комплекс возможностей и использует иную схему криптования. - -Наиболее значимыми особенностями man:geli[8] являются: +[[disks-encrypting-geli]] +=== Шифрование диска с помощью `geli` -* Использование инфраструктуры man:crypto[9]: при наличии аппаратной криптографической поддержки, `geli` автоматически использует ее. -* Поддержка разнообразных криптоалгоритмов (в настоящее время AES, Blowfish и 3DES). -* Поддержка шифрованного корневого раздела. Для загрузки в такой ситуации потребуется ввести ключевую фразу. -* Поддержка двух независимых ключей шифрования (например, "основного ключа" и "ключа компании"). -* Высокая скорость работы `geli` за счет простого криптования сектор-сектор. -* Поддержка архивирования основных ключей. При необходимости текущие ключи могут быть уничтожены, а в дальнейшем доступ к данным восстановлен при помощи архивированных ключей. -* Поддержка криптования файловых систем случайным одноразовым ключом - например, для разделов подкачки или временных файловых систем. +Альтернативный криптографический класс GEOM доступен с использованием `geli`. Эта утилита управления предоставляет дополнительные возможности и использует другую схему для выполнения криптографических операций. Она обеспечивает следующие функции: -Другие возможности класса `geli` описаны в его странице справочника: man:geli[8]. +* Использует фреймворк man:crypto[9] и автоматически задействует криптографическое оборудование, когда оно доступно. +* Поддерживает несколько криптографических алгоритмов, таких как AES-XTS, AES-CBC и Camellia-CBCAES. +* Позволяет зашифровать корневой раздел. Пароль для доступа к зашифрованному корневому разделу будет запрашиваться при загрузке системы. +* Позволяет использование двух независимых ключей. +* Она быстрая, так как выполняет простое поблочное шифрование. +* Позволяет создавать резервные копии и восстанавливать мастер-ключи. Если пользователь уничтожит свои ключи, доступ к данным всё ещё можно получить, восстановив ключи из резервной копии. +* Позволяет подключить диск с одноразовым случайным ключом, что полезно для разделов подкачки и временных файловых систем. -Несколько следующих страниц будут посвящены описанию процесса конфигурации `geli` в ядре FreeBSD, а также объяснят, как создавать и использовать криптографический провайдер `geli`. +Дополнительные возможности и примеры использования приведены в man:geli[8]. -Поскольку в процессе настройки возникнет необходимость внесения изменений в конфигурацию ядра, потребуются также привилегии суперпользователя. +Следующий пример описывает, как сгенерировать ключевой файл, который будет использоваться как часть мастер-ключа для зашифрованного провайдера, монтируемого в [.filename]#/private#. Ключевой файл предоставит случайные данные, используемые для шифрования мастер-ключа. Мастер-ключ также будет защищён парольной фразой. Размер сектора провайдера составит 4 КБ. В примере описано, как подключиться к провайдеру `geli`, создать на нём файловую систему, смонтировать её, работать с ней и, наконец, отключить её. [.procedure] -==== - -. Добавление поддержки `geli` в ядро -+ -Добавьте в конфигурационный файл ядра следующие строки: +.Процедура: Шифрование раздела с помощью `geli` +. Загрузите поддержку `geli` ++ +Поддержка `geli` доступна в виде загружаемого модуля ядра. Чтобы настроить систему для автоматической загрузки модуля при загрузке, добавьте следующую строку в файл [.filename]#/boot/loader.conf#: + [.programlisting] .... -options GEOM_ELI -device crypto +geom_eli_load="YES" .... -+ -Перестройте ядро, как описано в разделе crossref:kernelconfig[kernelconfig, Настройка ядра FreeBSD]. -+ -Помимо этого, поддержка `geli` может быть активирована модулем ядра на этапе загрузки. Для этого добавьте в файл [.filename]#/boot/loader.conf# строку: ++ +Чтобы загрузуть модуля ядра сейчас: ++ +[source, shell] +.... +# kldload geom_eli +.... ++ +Для собственного ядра убедитесь, что файл конфигурации ядра содержит следующие строки: + [.programlisting] .... -geom_eli_load="YES" +options GEOM_ELI +device crypto .... -+ -Теперь ядро должно поддерживать man:geli[8]. -. Генерация главного ключа -+ -Предлагаемый пример описывает процесс генерации ключевого файла, который послужит частью главного ключа для шифрованного провайдера, монтируемого в каталог [.filename]#/private#. При помощи содержимого ключевого файла создается набор случайных данных, которым зашифровывается главный ключ. Кроме того, он будет защищен кодовой фразой. Размер сектора провайдера будет составлять 4kB. Наконец, мы обсудим, как присоединиться к провайдеру `geli`, создать на базе его файловую систему, как ее смонтировать и работать с ней, и, в заключение, как корректно завершить работу. -+ -Больший чем обычно размер сектора (как в нашем примере, 4 кБ) рекомендуется для увеличения производительности. -+ -Главный ключ будет защищен кодовой фразой; данные для ключевого файла берутся из [.filename]#/dev/random#. Размер сектора создаваемого нами шифрованного провайдера [.filename]#/dev/da2.eli# - 4кБ. + +. Сгенеририруйте мастер-ключа ++ +Следующие команды создают мастер-ключ, которым будут зашифрованы все данные. Этот ключ нельзя изменить. Вместо его прямого использования, он шифруется одним или несколькими пользовательскими ключами. Пользовательские ключи формируются из опциональной комбинации случайных байтов из файла [.filename]#/root/da2.key# и/или парольной фразы. В данном случае источником данных для ключевого файла является [.filename]#/dev/random#. Эта команда также устанавливает размер сектора провайдера ([.filename]#/dev/da2.eli#) равным 4 КБ для улучшения производительности: + -[source,shell] +[source, shell] .... # dd if=/dev/random of=/root/da2.key bs=64 count=1 -# geli init -s 4096 -K /root/da2.key /dev/da2 +# geli init -K /root/da2.key -s 4096 /dev/da2 Enter new passphrase: Reenter new passphrase: .... -+ -Использование одновременно кодовой фразы и ключевого файла не обязательно: любой из этих методов защиты главного ключа может применяться независимо. -+ -Если в качестве имени ключевого файла указан "-", используется стандартный ввод. Это позволяет использовать более одного ключевого файла: + -[source,shell] +Не обязательно использовать и парольную фразу, и файл ключа, так как каждый из этих методов защиты главного ключа может применяться отдельно. ++ +Если файл ключа указан как "-", будет использован стандартный ввод. Например, следующая команда генерирует три файла ключей: ++ +[source, shell] .... # cat keyfile1 keyfile2 keyfile3 | geli init -K - /dev/da2 .... + +. Присоедините поставщика с сгенерированным Ключом + -. Свяжите сгенерированный ключ с провайдером +Для подключения провайдера укажите файл ключа, имя диска и парольную фразу: + -[source,shell] +[source, shell] .... # geli attach -k /root/da2.key /dev/da2 Enter passphrase: .... -+ -Созданный при этом файл дискового устройства будет называться [.filename]#/dev/da2.eli#. + -[source,shell] +Это создает новое устройство с расширением [.filename]#.eli#: ++ +[source, shell] .... # ls /dev/da2* /dev/da2 /dev/da2.eli .... -+ + . Создайте новую файловую систему + -[source,shell] +Далее отформатируйте устройство с файловой системой UFS и смонтируйте его в существующей точке монтирования: ++ +[source, shell] .... # dd if=/dev/random of=/dev/da2.eli bs=1m # newfs /dev/da2.eli # mount /dev/da2.eli /private .... -+ -Зашифрованная файловая система будет видна в выводе утилиты man:df[1] и готова к использованию: + -[source,shell] +Зашифрованная файловая система теперь должна быть доступна для использования: ++ +[source, shell] .... # df -H Filesystem Size Used Avail Capacity Mounted on @@ -2264,108 +1750,407 @@ Filesystem Size Used Avail Capacity Mounted on /dev/ad0s1e 3.9G 1.3G 2.3G 35% /var /dev/da2.eli 150G 4.1K 138G 0% /private .... -+ -. Размонтирование и деактивация провайдера -+ -После завершения работы с шифрованным разделом, когда содержимое каталога [.filename]#/private# больше не нужно, будет разумным отключить раздел от системы. -+ -[source,shell] + +После завершения работы с зашифрованным разделом и когда раздел [.filename]#/private# больше не нужен, рекомендуется перевести устройство в холодное хранилище, размонтировав и отключив зашифрованный раздел `geli` от ядра: + +[source, shell] .... # umount /private # geli detach da2.eli .... -==== -Дополнительную информацию о man:geli[8] можно найти на соответствующей странице справочника. +Для упрощения монтирования зашифрованных устройств `geli` во время загрузки предоставляется скрипт [.filename]#rc.d#. Для данного примера добавьте следующие строки в [.filename]#/etc/rc.conf#: + +[.programlisting] +.... +geli_devices="da2" +geli_da2_flags="-k /root/da2.key" +.... + +В этом примере [.filename]#/dev/da2# настраивается как провайдер `geli` с мастер-ключом [.filename]#/root/da2.key#. Система автоматически отключит провайдер от ядра перед завершением работы. Во время загрузки скрипт запросит парольную фразу перед подключением провайдера. До или после запроса пароля могут отображаться другие сообщения ядра. Если процесс загрузки кажется зависшим, внимательно поищите запрос пароля среди других сообщений. После ввода правильной парольной фразы провайдер будет подключен. Файловая система затем монтируется, обычно с помощью записи в [.filename]#/etc/fstab#. Инструкции по настройке автоматического монтирования файловой системы при загрузке можно найти в crossref:basics[mount-unmount,“Монтирование и размонтирование файловых систем”]. + +[[swap-encrypting]] +== Шифрование раздела подкачки + +Как и шифрование разделов диска, шифрование раздела подкачки используется для защиты конфиденциальной информации. Рассмотрим приложение, работающее с паролями. Пока пароли находятся в физической памяти, они не записываются на диск и будут удалены после перезагрузки. Однако если FreeBSD начнёт выгружать страницы памяти для освобождения места, пароли могут быть записаны на диск в незашифрованном виде. Решением в этом случае может быть шифрование раздела подкачки. + +В этой части показано, как настроить зашифрованный раздел подкачки с использованием шифрования man:gbde[8] или man:geli[8]. Предполагается, что раздел подкачки — это [.filename]#/dev/ada0s1b#. + +=== Настройка зашифрованного раздела подкачки + +Разделы подкачки по умолчанию не шифруются, и перед продолжением работы следует удалить из них все конфиденциальные данные. Чтобы перезаписать текущий раздел подкачки случайными данными, выполните следующую команду: -==== Использование стартового скрипта [.filename]#rc.d# [.filename]#geli# +[source, shell] +.... +# dd if=/dev/random of=/dev/ada0s1b bs=1m +.... -Для удобства использования подсистемы `geli` в комплект базовой системы FreeBSD входит стартовый скрипт, работой которого можно управлять из man:rc.conf[5]: +Для шифрования раздела подкачки с помощью man:gbde[8] добавьте суффикс `.bde` к строке подкачки в [.filename]#/etc/fstab#: [.programlisting] .... -geli_devices="da2" -geli_da2_flags="-p -k /root/da2.key" +# Device Mountpoint FStype Options Dump Pass# +/dev/ada0s1b.bde none swap sw 0 0 .... -При этом дисковый раздел [.filename]#/dev/da2# будет сконфигурирован как провайдер `geli`, связан с ключевым файлом [.filename]#/root/da2.key#, а кодовая фраза не будет использоваться (отметим, что это возможно только в том случае, если при инициализации `geli init` был указан ключ `-P`). Шифрованный провайдер `geli` будет отсоединен перед выключением системы. +Для шифрования раздела подкачки с помощью man:geli[8] используйте суффикс `.eli`: -Дополнительную информацию о конфигурации скриптов [.filename]#rc.d# можно найти в соответствующей crossref:config[configtuning-rcd,главе] Руководства. +[.programlisting] +.... +# Device Mountpoint FStype Options Dump Pass# +/dev/ada0s1b.eli none swap sw 0 0 +.... -[[swap-encrypting]] -== Шифрование области подкачки +По умолчанию man:geli[8] использует алгоритм AES с длиной ключа 128 бит. Обычно стандартных настроек достаточно. При необходимости эти значения по умолчанию можно изменить в поле options файла [.filename]#/etc/fstab#. Доступные флаги: + +aalgo:: +Алгоритм проверки целостности данных, используемый для обеспечения отсутствия изменений в зашифрованных данных. Список поддерживаемых алгоритмов приведен в man:geli[8]. + +ealgo:: +Алгоритм шифрования, используемый для защиты данных. Список поддерживаемых алгоритмов приведён в man:geli[8]. + +keylen:: +Длина ключа, используемого для алгоритма шифрования. Подробнее о поддерживаемых длинах ключей для каждого алгоритма шифрования смотрите в man:geli[8]. + +sectorsize:: +Размер блоков, на которые разбиваются данные перед шифрованием. Увеличение размера секторов повышает производительность за счет большего расхода пространства. Рекомендуемый размер — 4096 байт. -Шифрование области подкачки в FreeBSD достаточно легко конфигурируется. Варианты конфигурации слегка различаются в зависимости от версии системы. Для шифрования разделов подкачки можно использовать утилиты man:gbde[8] или man:geli[8];. В обоих случаях используется скрипт crossref:config[configtuning-rcd,rc.d] [.filename]#encswap#. +В этом примере настраивается зашифрованный раздел подкачки с использованием алгоритма AES-XTS с длиной ключа 128 бит и размером сектора 4 килобайта: -Предыдущий раздел, <<disks-encrypting,Шифрование дисковых разделов>>, кратко описывает различные методы криптования. +[.programlisting] +.... +# Device Mountpoint FStype Options Dump Pass# +/dev/ada0s1b.eli none swap sw,ealgo=AES-XTS,keylen=128,sectorsize=4096 0 0 +.... + +=== Проверка зашифрованного раздела подкачки + +После перезагрузки системы корректную работу зашифрованного раздела подкачки можно проверить с помощью `swapinfo`. + +Если используется man:gbde[8]: + +[source, shell] +.... +% swapinfo +Device 1K-blocks Used Avail Capacity +/dev/ada0s1b.bde 542720 0 542720 0 +.... + +Если используется man:geli[8]: + +[source, shell] +.... +% swapinfo +Device 1K-blocks Used Avail Capacity +/dev/ada0s1b.eli 542720 0 542720 0 +.... + +[[disks-hast]] +== Высокодоступное хранилище (HAST) + +Высокая доступность — одно из основных требований для серьёзных бизнес-приложений, а высокодоступное хранилище является ключевым компонентом в таких средах. В FreeBSD framework Highly Available STorage (HAST) обеспечивает прозрачное хранение одних и тех же данных на нескольких физически разделённых машинах, соединённых через сеть TCP/IP. HAST можно рассматривать как сетевой RAID1 (зеркало), аналогичный системе хранения DRBD(R), используемой на платформе GNU/Linux(R). В сочетании с другими функциями высокой доступности FreeBSD, такими как CARP, HAST позволяет создавать высокодоступные кластеры хранения, устойчивые к аппаратным сбоям. + +Основные возможности HAST: + +* Может использоваться для маскировки ошибок ввода-вывода на локальных жестких дисках. +* Файлово-системно агностичен, так как работает с любой файловой системой, поддерживаемой FreeBSD. +* Эффективная и быстрая повторная синхронизация, так как синхронизируются только блоки, изменённые во время простоя узла. +* Может использоваться в уже развернутой среде для добавления дополнительной избыточности. +* Вместе с CARP, Heartbeat или другими инструментами он может использоваться для создания надежной и отказоустойчивой системы хранения данных. + +Прочитав этот раздел, вы узнаете: + +* Что такое HAST, как он работает и какие возможности предоставляет. +* Как настроить и использовать HAST в FreeBSD. +* Как интегрировать CARP и man:devd[8] для создания надежной системы хранения данных. -=== Зачем шифровать область подкачки? +Прежде чем читать этот раздел, вы должны: -Как и в случае дисковых разделов, шифрование области подкачки применяется для защиты важной информации. Возьмем, к примеру, приложение, которому требуется работать с паролями. До тех пор, пока пароли хранятся в физической памяти, все в порядке. Если же операционная система начинает выгружать отдельные участки памяти в область подкачки, чтобы освободить память для других приложений, пароли могут быть записаны на диск в открытом виде и тем самым оказаться легко доступными злоумышленнику (имеющему физический доступ к диску - прим. пер.). В таких ситуациях решением может стать шифрование раздела подкачки. +* Понимать основы UNIX(R) и FreeBSD (crossref:basics[basics,Основы FreeBSD]). +* Знать, как настраивать сетевые интерфейсы и другие основные подсистемы FreeBSD (crossref:config[config-tuning,Настройка и оптимизация]). +* Хорошо разбираться в сетевых возможностях FreeBSD (crossref:partiv[network-communication,"Сетевое взаимодействие"]). -=== Подготовка +Проект HAST был поддержан The FreeBSD Foundation при участии http://www.omc.net/[http://www.omc.net/] и http://www.transip.nl/[http://www.transip.nl/]. + +=== Работа HAST + +HAST обеспечивает синхронную репликацию на блочном уровне между двумя физическими машинами: _primary_ (основной) узел и _secondary_ (вторичный) узел. Вместе эти две машины называются кластером. + +Поскольку HAST работает в конфигурации "основной-вторичный", он позволяет только одному узлу кластера быть активным в любой момент времени. Основной узел, также называемый _активным_, обрабатывает все запросы ввода-вывода для устройств, управляемых HAST. Вторичный узел автоматически синхронизируется с основным. + +Физические компоненты системы HAST включают локальный диск на основном узле и диск на удаленном, резервном узле. + +HAST работает синхронно на блочном уровне, что делает его прозрачным для файловых систем и приложений. HAST предоставляет обычные GEOM-провайдеры в [.filename]#/dev/hast/# для использования другими инструментами или приложениями. Нет разницы между использованием устройств, предоставляемых HAST, и использованием обычных дисков или разделов. + +Каждая операция записи, удаления или сброса данных отправляется как на локальный диск, так и на удалённый диск через TCP/IP. Каждая операция чтения выполняется с локального диска, если только локальный диск не содержит актуальных данных или не возникает ошибка ввода-вывода. В таких случаях операция чтения отправляется на вторичный узел. + +HAST стремится обеспечить быстрое восстановление после сбоев. По этой причине важно сократить время синхронизации после отказа узла. Для быстрой синхронизации HAST использует битовую карту грязных экстентов на диске и синхронизирует только их в процессе обычной синхронизации, за исключением начальной синхронизации. + +Существует множество способов обработки синхронизации. HAST реализует несколько режимов репликации для работы с различными методами синхронизации: + +* _memsync_: В этом режиме операция записи считается завершённой, когда локальная операция записи завершена и когда удалённый узел подтверждает получение данных, но до фактического сохранения данных. Данные на удалённом узле будут сохранены сразу после отправки подтверждения. Этот режим предназначен для уменьшения задержки, но при этом обеспечивает хорошую надёжность. Этот режим используется по умолчанию. +* _fullsync_: В этом режиме операция записи считается завершённой, когда завершается как локальная, так и удалённая запись. Это самый безопасный и самый медленный режим репликации. +* _async_: В этом режиме операция записи считается завершенной, как только завершается локальная запись. Это самый быстрый и самый опасный режим репликации. Он должен использоваться только при репликации на удаленный узел, где задержка слишком высока для других режимов. + +=== Конфигурация HAST + +Фреймворк HAST состоит из нескольких компонентов: + +* Демон man:hastd[8], который обеспечивает синхронизацию данных. При запуске этого демона он автоматически загружает модуль `geom_gate.ko`. +* Служебная программа управления пользовательским пространством man:hastctl[8]. +* Файл конфигурации man:hast.conf[5]. Этот файл должен существовать до запуска hastd. + +Пользователи, которые предпочитают статически встраивать поддержку `GEOM_GATE` в ядро, должны добавить следующую строку в файл конфигурации собственного ядра, а затем пересобрать ядро, следуя инструкциям в crossref:kernelconfig[kernelconfig,Настройка ядра FreeBSD]: + +[.programlisting] +.... +options GEOM_GATE +.... + +Следующий пример описывает настройку двух узлов в режиме первичный-вторичный с использованием HAST для репликации данных между ними. Узлы будут называться `hasta` с IP-адресом `172.16.0.1` и `hastb` с IP-адресом `172.16.0.2`. Оба узла будут иметь выделенный жесткий диск [.filename]#/dev/ad6# одинакового размера для работы с HAST. Пул HAST, иногда называемый ресурсом или провайдером GEOM в [.filename]#/dev/hast/#, будет называться `test`. + +Настройка HAST выполняется с помощью файла [.filename]#/etc/hast.conf#. Этот файл должен быть идентичным на обоих узлах. Простейшая конфигурация выглядит следующим образом: + +[.programlisting] +.... +resource test { + on hasta { + local /dev/ad6 + remote 172.16.0.2 + } + on hastb { + local /dev/ad6 + remote 172.16.0.1 + } +} +.... + +Для более сложной настройки обратитесь к man:hast.conf[5]. + +[TIP] +==== +Также можно использовать имена хостов в операторах `remote`, если хосты разрешаемы и определены либо в [.filename]#/etc/hosts#, либо в локальном DNS. +==== + +После создания конфигурации на обоих узлах можно создать пул HAST. Выполните следующие команды на обоих узлах, чтобы разместить начальные метаданные на локальном диске и запустить man:hastd[8]: + +[source, shell] +.... +# hastctl create test +# service hastd onestart +.... [NOTE] ==== -В данном разделе мы будем считать, что разделом подкачки является [.filename]#ad0s1b#. +Невозможно использовать провайдеры GEOM с существующей файловой системой или преобразовать существующее хранилище в пул под управлением HAST. Эта процедура требует хранения некоторых метаданных на провайдере, и на существующем провайдере не будет достаточно необходимого пространства. ==== -До настоящего момента раздел подкачки не был зашифрован. Таким образом, на нем могут содержаться пароли или какая-либо иная важная информация в открытом виде. Чтобы избавиться от этого, заполним раздел подкачки случайными данными: +Роль `primary` или `secondary` узла HAST выбирается администратором или программным обеспечением, таким как Heartbeat, с помощью man:hastctl[8]. На основном узле `hasta` выполните следующую команду: -[source,shell] +[source, shell] .... -# dd if=/dev/random of=/dev/ad0s1b bs=1m +# hastctl role primary test .... -=== Шифрование раздела подкачки при помощи man:gbde[8] +Выполните эту команду на дополнительном узле, `hastb`: + +[source, shell] +.... +# hastctl role secondary test +.... -В строку файла [.filename]#/etc/fstab#, описывающую раздел подкачки, необходимо добавить суффикс `.bde`: +Проверьте результат, выполнив `hastctl` на каждом узле: -[.programlisting] +[source, shell] .... -# Device Mountpoint FStype Options Dump Pass# -/dev/ad0s1b.bde none swap sw 0 0 +# hastctl status test .... -=== Шифрование раздела подкачки при помощи man:geli[8] +Проверьте строку `status` в выводе. Если там указано `degraded`, значит, с файлом конфигурации что-то не так. На каждом узле должно быть указано `complete`, что означает начало синхронизации между узлами. Синхронизация завершается, когда `hastctl status` сообщает о 0 байтах в `dirty` экстентах. + +Следующий шаг — создать файловую систему на провайдере GEOM и смонтировать её. Это должно быть выполнено на узле `primary`. Создание файловой системы может занять несколько минут в зависимости от размера жёсткого диска. В этом примере создаётся файловая система UFS на [.filename]#/dev/hast/test#: + +[source, shell] +.... +# newfs -U /dev/hast/test +# mkdir /hast/test +# mount /dev/hast/test /hast/test +.... -Процедура при использовании man:geli[8] для шифрования раздела подкачки сходна с использованием man:gbde[8]. В строку файла [.filename]#/etc/fstab#, описывающую раздел подкачки, нужно добавить суффикс `.eli`: +После правильной настройки структуры HAST последним шагом является обеспечение автоматического запуска HAST во время загрузки системы. Добавьте следующую строку в [.filename]#/etc/rc.conf#: [.programlisting] .... -# Device Mountpoint FStype Options Dump Pass# -/dev/ad0s1b.eli none swap sw 0 0 +hastd_enable="YES" .... -По умолчанию, man:geli[8] использует алгоритм криптования AES с длиной ключа 256 бит. +==== Конфигурация отказоустойчивости -При необходимости эти параметры могут быть изменены в опции `geli_swap_flags` файла конфигурации [.filename]#/etc/rc.conf#. Приведенная ниже строка указывает, что скрипт rc.d [.filename]#encswap# должен использовать для криптования алгоритм Blowfish с ключом длиной 128 бит, размером сектора 4 килобайта и включенной опцией "отсоединиться при последнем закрытии": +Цель данного примера — создать надежную систему хранения, устойчивую к отказу любого узла. Если основной узел выходит из строя, резервный узел готов взять на себя управление без перерывов, проверить и смонтировать файловую систему, продолжив работу без потери данных. + +Для выполнения этой задачи используется Протокол избыточности общих адресов (CARP — Common Address Redundancy Protocol), который обеспечивает автоматическое переключение на резервный узел на IP-уровне. CARP позволяет нескольким узлам в одном сетевом сегменте совместно использовать один IP-адрес. Настройте CARP на обоих узлах кластера в соответствии с документацией, доступной в crossref:advanced-networking[carp,“Common Address Redundancy Protocol (CARP)”]. В этом примере каждый узел будет иметь свой собственный управляющий IP-адрес и общий IP-адрес _172.16.0.254_. Основной узел HAST в кластере должен быть основным узлом CARP. + +Созданный в предыдущем разделе пул HAST теперь готов к экспорту на другие узлы в сети. Это можно осуществить, экспортировав его через NFS или Samba, используя общий IP-адрес _172.16.0.254_. Единственная оставшаяся нерешенной проблема — это автоматический переход на резервный узел в случае отказа основного. + +В случае перехода интерфейсов CARP в состояние "включен" или "выключен", операционная система FreeBSD генерирует событие man:devd[8], что позволяет отслеживать изменения состояния интерфейсов CARP. Изменение состояния интерфейса CARP указывает на то, что один из узлов вышел из строя или вернулся в онлайн. Эти события изменения состояния позволяют запускать скрипт для автоматической обработки переключения при отказе в HAST. + +Для отслеживания изменений состояния на интерфейсах CARP добавьте следующую конфигурацию в [.filename]#/etc/devd.conf# на каждом узле, заменив `<vhid>` на идентификатор виртуального хоста и `<ifname>` на имя соответствующего интерфейса: [.programlisting] .... -geli_swap_flags="-e blowfish -l 128 -s 4096 -d" +notify 30 { + match "system" "CARP"; + match "subsystem" "<vhid>@<ifname>"; + match "type" "MASTER"; + action "/usr/local/sbin/carp-hast-switch primary"; +}; + +notify 30 { + match "system" "CARP"; + match "subsystem" "<vhid>@<ifname>"; + match "type" "BACKUP"; + action "/usr/local/sbin/carp-hast-switch secondary"; +}; .... -За списком возможных опций обращайтесь к описанию команды `onetime` в странице справочника man:geli[8]. +Перезапустите man:devd[8] на обоих узлах, чтобы новая конфигурация вступила в силу: -=== Окончательная проверка +[source, shell] +.... +# service devd restart +.... -После перезагрузки системы правильность работы шифрованного раздела подкачки может быть проверена при помощи команды `swapinfo`. +Когда состояние указанного интерфейса изменяется (переход вверх или вниз), система генерирует уведомление, позволяющее подсистеме man:devd[8] запустить указанный скрипт автоматического переключения [.filename]#/usr/local/sbin/carp-hast-switch#. Для дополнительных пояснений о данной конфигурации обратитесь к man:devd.conf[5]. -В случае использования man:gbde[8]: +Вот пример скрипта автоматического переключения при отказе: -[source,shell] -.... -% swapinfo -Device 1K-blocks Used Avail Capacity -/dev/ad0s1b.bde 542720 0 542720 0% +[.programlisting] .... +#!/bin/sh + +# Original script by Freddie Cash <fjwcash@gmail.com> +# Modified by Michael W. Lucas <mwlucas@BlackHelicopters.org> +# and Viktor Petersson <vpetersson@wireload.net> + +# The names of the HAST resources, as listed in /etc/hast.conf +resources="test" + +# delay in mounting HAST resource after becoming primary +# make your best guess +delay=3 + +# logging +log="local0.debug" +name="carp-hast" + +# end of user configurable stuff + +case "$1" in + primary) + logger -p $log -t $name "Switching to primary provider for ${resources}." + sleep ${delay} + + # Wait for any "hastd secondary" processes to stop + for disk in ${resources}; do + while $( pgrep -lf "hastd: ${disk} \(secondary\)" > /dev/null 2>&1 ); do + sleep 1 + done + + # Switch role for each disk + hastctl role primary ${disk} + if [ $? -ne 0 ]; then + logger -p $log -t $name "Unable to change role to primary for resource ${disk}." + exit 1 + fi + done + + # Wait for the /dev/hast/* devices to appear + for disk in ${resources}; do + for I in $( jot 60 ); do + [ -c "/dev/hast/${disk}" ] && break + sleep 0.5 + done + + if [ ! -c "/dev/hast/${disk}" ]; then + logger -p $log -t $name "GEOM provider /dev/hast/${disk} did not appear." + exit 1 + fi + done + + logger -p $log -t $name "Role for HAST resources ${resources} switched to primary." + + logger -p $log -t $name "Mounting disks." + for disk in ${resources}; do + mkdir -p /hast/${disk} + fsck -p -y -t ufs /dev/hast/${disk} + mount /dev/hast/${disk} /hast/${disk} + done + + ;; + + secondary) + logger -p $log -t $name "Switching to secondary provider for ${resources}." + + # Switch roles for the HAST resources + for disk in ${resources}; do + if ! mount | grep -q "^/dev/hast/${disk} on " + then + else + umount -f /hast/${disk} + fi + sleep $delay + hastctl role secondary ${disk} 2>&1 + if [ $? -ne 0 ]; then + logger -p $log -t $name "Unable to switch role to secondary for resource ${disk}." + exit 1 + fi + logger -p $log -t $name "Role switched to secondary for resource ${disk}." + done + ;; +esac +.... + +В двух словах, скрипт выполняет следующие действия, когда узел становится основным: + +* Переводит пул HAST в primary на другом узле. +* Проверяет файловую систему в пуле HAST. +* Подключает пул. + +Когда узел становится вторичным: + +* Размонтирует пул HAST. +* Переводит пул HAST в состояние secondary. + +[CAUTION] +==== +Это просто пример скрипта, который служит доказательством концепции. Он не обрабатывает все возможные сценарии и может быть расширен или изменён любым способом, например, для запуска или остановки необходимых служб. +==== + +[TIP] +==== +Для этого примера использовалась стандартная файловая система UFS. Чтобы сократить время, необходимое для восстановления, можно использовать журналируемую UFS или файловую систему ZFS. +==== + +Вместо использования высокодоступного хранилища локально, его также можно предоставить в общее пользование другим компьютерам в сети через crossref:network-servers[network-nfs,NFS], crossref:network-servers[network-iscsi,iSCSI], man:sshfs[1] или программы из портов (например, package:net/samba419[]). + +Более подробная информация с дополнительными примерами доступна по адресу http://wiki.FreeBSD.org/HAST[http://wiki.FreeBSD.org/HAST]. + +=== Устранение неполадок + +HAST, как правило, должен работать без проблем. Однако, как и с любым другим программным продуктом, могут возникнуть ситуации, когда он работает не так, как предполагается. Источники проблем могут быть разными, но главное правило — обеспечить синхронизацию времени между узлами кластера. -При использовании man:geli[8]: +При устранении неполадок HAST уровень отладки man:hastd[8] следует повысить, запустив `hastd` с параметром `-d`. Этот аргумент можно указать несколько раз для дальнейшего повышения уровня отладки. Также рекомендуется использовать `-F`, что запускает `hastd` в foreground. -[source,shell] +[[disks-hast-sb]] +==== Восстановление после раскола кластера + +_Раскол_ (split-brain) возникает, когда узлы кластера не могут связаться друг с другом, и оба настроены как первичные. Это опасная ситуация, так как она позволяет обоим узлам вносить противоречивые изменения в данные. Данная проблема должна быть устранена вручную системным администратором. + +Администратор должен либо определить, на каком узле находятся более важные изменения, либо выполнить слияние вручную. Затем следует позволить HAST выполнить полную синхронизацию узла с повреждёнными данными. Для этого выполните следующие команды на узле, который требует повторной синхронизации: + +[source, shell] .... -% swapinfo -Device 1K-blocks Used Avail Capacity -/dev/ad0s1b.eli 542720 0 542720 0% +# hastctl role init test +# hastctl create test +# hastctl role secondary test .... diff --git a/documentation/content/ru/books/handbook/disks/_index.po b/documentation/content/ru/books/handbook/disks/_index.po new file mode 100644 index 0000000000..b7581714b6 --- /dev/null +++ b/documentation/content/ru/books/handbook/disks/_index.po @@ -0,0 +1,6457 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-10-20 11:02+0300\n" +"PO-Revision-Date: 2025-06-14 11:10+0000\n" +"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n" +"Language-Team: Russian <https://translate-dev.freebsd.org/projects/" +"documentation/bookshandbookdisks_index/ru/>\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/handbook/disks/_index.adoc:1 +#, no-wrap +msgid "This chapter covers the use of disks and storage media in FreeBSD. This includes SCSI and IDE disks, CD and DVD media, memory-backed disks, and USB storage devices." +msgstr "Эта глава посвящена использованию дисков и носителей данных в FreeBSD. Здесь рассматриваются SCSI- и IDE-диски, CD- и DVD-носители, диски в оперативной памяти и USB-устройства хранения данных." + +#. type: Yaml Front Matter Hash Value: part +#: documentation/content/en/books/handbook/disks/_index.adoc:1 +#, no-wrap +msgid "Part III. System Administration" +msgstr "Часть III. Администрирование системы" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/handbook/disks/_index.adoc:1 +#, no-wrap +msgid "Chapter 20. Storage" +msgstr "Глава 20. Устройства хранения" + +#. type: Title = +#: documentation/content/en/books/handbook/disks/_index.adoc:15 +#, no-wrap +msgid "Storage" +msgstr "Устройства хранения" + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:53 +#, no-wrap +msgid "Synopsis" +msgstr "Обзор" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:57 +msgid "" +"This chapter covers the use of disks and storage media in FreeBSD. This " +"includes SCSI and IDE disks, CD and DVD media, memory-backed disks, and USB " +"storage devices." +msgstr "" +"Эта глава посвящена использованию дисков и носителей данных в FreeBSD. Сюда " +"входят SCSI- и IDE-диски, CD- и DVD-носители, диски в памяти и USB-" +"устройства хранения данных." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:59 +msgid "After reading this chapter, you will know:" +msgstr "Прочитав эту главу, вы будете знать:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:61 +msgid "How to add additional hard disks to a FreeBSD system." +msgstr "Как добавить дополнительные жесткие диски в систему FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:62 +msgid "How to grow the size of a disk's partition on FreeBSD." +msgstr "Как увеличить размер раздела диска в FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:63 +msgid "How to configure FreeBSD to use USB storage devices." +msgstr "Как настроить FreeBSD для использования USB-накопителей." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:64 +msgid "How to use CD and DVD media on a FreeBSD system." +msgstr "Как использовать CD и DVD носители в системе FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:65 +msgid "How to use the backup programs available under FreeBSD." +msgstr "" +"Как использовать программы резервного копирования, доступные в FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:66 +msgid "How to set up memory disks." +msgstr "Как настроить диски в памяти." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:67 +msgid "What file system snapshots are and how to use them efficiently." +msgstr "Что такое снимки файловой системы и как их эффективно использовать." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:68 +msgid "How to use quotas to limit disk space usage." +msgstr "" +"Как использовать квоты для ограничения использования дискового пространства." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:69 +msgid "How to encrypt disks and swap to secure them against attackers." +msgstr "Как зашифровать диски и раздел подкачки для защиты от злоумышленников." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:70 +msgid "How to configure a highly available storage network." +msgstr "Как настроить сеть хранения данных с высокой доступностью." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:72 +msgid "Before reading this chapter, you should:" +msgstr "Прежде чем читать эту главу, вы должны:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:74 +msgid "" +"Know how to crossref:kernelconfig[kernelconfig,configure and install a new " +"FreeBSD kernel]." +msgstr "" +"Знать, как crossref:kernelconfig[kernelconfig,конфигурировать и " +"установливать новое ядро FreeBSD]." + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:76 +#, no-wrap +msgid "Adding Disks" +msgstr "Добавление дисков" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:81 +msgid "" +"This section describes how to add a new SATA disk to a machine that " +"currently only has a single drive. First, turn off the computer and install " +"the drive in the computer following the instructions of the computer, " +"controller, and drive manufacturers. Reboot the system and become `root`." +msgstr "" +"В этом разделе описывается, как добавить новый диск SATA к компьютеру, в " +"котором в настоящее время установлен только один накопитель. Сначала " +"выключите компьютер и установите диск, следуя инструкциям производителей " +"компьютера, контроллера и диска. Перезагрузите систему и войдите в систему " +"как `root`." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:84 +msgid "" +"Inspect [.filename]#/var/run/dmesg.boot# to ensure the new disk was found. " +"In this example, the newly added SATA drive will appear as [.filename]#ada1#." +msgstr "" +"Проверьте [.filename]#/var/run/dmesg.boot#, чтобы убедиться, что новый диск " +"обнаружен. В этом примере новый SATA-диск будет отображаться как " +"[.filename]#ada1#." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:87 +msgid "" +"For this example, a single large partition will be created on the new disk. " +"The https://en.wikipedia.org/wiki/GUID_Partition_Table[GPT] partitioning " +"scheme will be used in preference to the older and less versatile MBR scheme." +msgstr "" +"Для этого примера на новом диске будет создан один большой раздел. Схема " +"разделов https://en.wikipedia.org/wiki/GUID_Partition_Table[GPT] будет " +"использована вместо более старой и менее универсальной схемы MBR." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:92 +msgid "" +"If the disk to be added is not blank, old partition information can be " +"removed with `gpart delete`. See man:gpart[8] for details." +msgstr "" +"Если добавляемый диск не пуст, старую информацию о разделах можно удалить с " +"помощью `gpart delete`. Подробности см. в man:gpart[8]." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:96 +msgid "" +"The partition scheme is created, and then a single partition is added. To " +"improve performance on newer disks with larger hardware block sizes, the " +"partition is aligned to one megabyte boundaries:" +msgstr "" +"Создается схема разделов, а затем добавляется единственный раздел. Для " +"повышения производительности на новых дисках с большими размерами аппаратных " +"блоков раздел выравнивается по границам одного мегабайта:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:101 +#, no-wrap +msgid "" +"# gpart create -s GPT ada1\n" +"# gpart add -t freebsd-ufs -a 1M ada1\n" +msgstr "" +"# gpart create -s GPT ada1\n" +"# gpart add -t freebsd-ufs -a 1M ada1\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:105 +msgid "" +"Depending on use, several smaller partitions may be desired. See " +"man:gpart[8] for options to create partitions smaller than a whole disk." +msgstr "" +"В зависимости от использования может потребоваться несколько небольших " +"разделов. См. man:gpart[8] для вариантов создания разделов меньше целого " +"диска." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:107 +msgid "The disk partition information can be viewed with `gpart show`:" +msgstr "Информацию о разделах диска можно просмотреть с помощью `gpart show`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:115 +#, no-wrap +msgid "" +"% gpart show ada1\n" +"=> 34 1465146988 ada1 GPT (699G)\n" +" 34 2014 - free - (1.0M)\n" +" 2048 1465143296 1 freebsd-ufs (699G)\n" +" 1465145344 1678 - free - (839K)\n" +msgstr "" +"% gpart show ada1\n" +"=> 34 1465146988 ada1 GPT (699G)\n" +" 34 2014 - free - (1.0M)\n" +" 2048 1465143296 1 freebsd-ufs (699G)\n" +" 1465145344 1678 - free - (839K)\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:118 +msgid "A file system is created in the new partition on the new disk:" +msgstr "Создается файловая система в новом разделе на новом диске:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:122 +#, no-wrap +msgid "# newfs -U /dev/ada1p1\n" +msgstr "# newfs -U /dev/ada1p1\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:125 +msgid "" +"An empty directory is created as a _mountpoint_, a location for mounting the " +"new disk in the original disk's file system:" +msgstr "" +"Создается пустой каталог как _точка монтирования_ — место для подключения " +"нового диска в файловой системе исходного диска:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:129 +#, no-wrap +msgid "# mkdir /newdisk\n" +msgstr "# mkdir /newdisk\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:132 +msgid "" +"Finally, an entry is added to [.filename]#/etc/fstab# so the new disk will " +"be mounted automatically at startup:" +msgstr "" +"Наконец, в файл [.filename]#/etc/fstab# добавляется запись, чтобы новый диск " +"автоматически монтировался при загрузке:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:136 +#, no-wrap +msgid "/dev/ada1p1\t/newdisk\tufs\trw\t2\t2\n" +msgstr "/dev/ada1p1\t/newdisk\tufs\trw\t2\t2\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:139 +msgid "The new disk can be mounted manually, without restarting the system:" +msgstr "Новый диск можно подключить вручную без перезагрузки системы:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:143 +#, no-wrap +msgid "# mount /newdisk\n" +msgstr "# mount /newdisk\n" + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:146 +#, no-wrap +msgid "Resizing and Growing Disks" +msgstr "Изменение размера и увеличение дисков" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:152 +msgid "" +"A disk's capacity can increase without any changes to the data already " +"present. This happens commonly with virtual machines, when the virtual disk " +"turns out to be too small and is enlarged. Sometimes a disk image is " +"written to a USB memory stick, but does not use the full capacity. Here we " +"describe how to resize or _grow_ disk contents to take advantage of " +"increased capacity." +msgstr "" +"Емкость диска может быть увеличена без изменения уже имеющихся данных. Это " +"часто происходит с виртуальными машинами, когда виртуальный диск оказывается " +"слишком маленьким и его расширяют. Иногда образ диска записывается на USB-" +"накопитель, но не использует его полную емкость. Здесь мы описываем, как " +"изменить размер или _расширить_ содержимое диска, чтобы использовать " +"увеличенную емкость." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:155 +msgid "" +"Determine the device name of the disk to be resized by inspecting " +"[.filename]#/var/run/dmesg.boot#. In this example, there is only one SATA " +"disk in the system, so the drive will appear as [.filename]#ada0#." +msgstr "" +"Определите имя устройства диска, который нужно изменить, просмотрев " +"[.filename]#/var/run/dmesg.boot#. В этом примере в системе только один SATA-" +"диск, поэтому диск будет отображаться как [.filename]#ada0#." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:157 +msgid "List the partitions on the disk to see the current configuration:" +msgstr "Перечислите разделы на диске, чтобы увидеть текущую конфигурацию:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:166 +#, no-wrap +msgid "" +"# gpart show ada0\n" +"=> 34 83886013 ada0 GPT (48G) [CORRUPT]\n" +" 34 128 1 freebsd-boot (64k)\n" +" 162 79691648 2 freebsd-ufs (38G)\n" +" 79691810 4194236 3 freebsd-swap (2G)\n" +" 83886046 1 - free - (512B)\n" +msgstr "" +"# gpart show ada0\n" +"=> 34 83886013 ada0 GPT (48G) [CORRUPT]\n" +" 34 128 1 freebsd-boot (64k)\n" +" 162 79691648 2 freebsd-ufs (38G)\n" +" 79691810 4194236 3 freebsd-swap (2G)\n" +" 83886046 1 - free - (512B)\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:172 +msgid "" +"If the disk was formatted with the https://en.wikipedia.org/wiki/" +"GUID_Partition_Table[GPT] partitioning scheme, it may show as \"corrupted\" " +"because the GPT backup partition table is no longer at the end of the " +"drive. Fix the backup partition table with `gpart`:" +msgstr "" +"Если диск был отформатирован с использованием схемы разделов https://" +"en.wikipedia.org/wiki/GUID_Partition_Table[GPT], он может отображаться как " +"\"повреждённый\", поскольку резервная таблица разделов GPT больше не " +"находится в конце диска. Восстановите резервную таблицу разделов с помощью " +"`gpart`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:177 +#, no-wrap +msgid "" +"# gpart recover ada0\n" +"ada0 recovered\n" +msgstr "" +"# gpart recover ada0\n" +"ada0 recovered\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:182 +msgid "" +"Now the additional space on the disk is available for use by a new " +"partition, or an existing partition can be expanded:" +msgstr "" +"Теперь дополнительное пространство на диске доступно для использования новым " +"разделом или для расширения существующего раздела:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:191 +#, no-wrap +msgid "" +"# gpart show ada0\n" +"=> 34 102399933 ada0 GPT (48G)\n" +" 34 128 1 freebsd-boot (64k)\n" +" 162 79691648 2 freebsd-ufs (38G)\n" +" 79691810 4194236 3 freebsd-swap (2G)\n" +" 83886046 18513921 - free - (8.8G)\n" +msgstr "" +"# gpart show ada0\n" +"=> 34 102399933 ada0 GPT (48G)\n" +" 34 128 1 freebsd-boot (64k)\n" +" 162 79691648 2 freebsd-ufs (38G)\n" +" 79691810 4194236 3 freebsd-swap (2G)\n" +" 83886046 18513921 - free - (8.8G)\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:196 +msgid "" +"Partitions can only be resized into contiguous free space. Here, the last " +"partition on the disk is the swap partition, but the second partition is the " +"one that needs to be resized. Swap partitions only contain temporary data, " +"so it can safely be unmounted, deleted, and then recreate the third " +"partition after resizing the second partition." +msgstr "" +"Разделы можно изменять в размере только в пределах непрерывного свободного " +"пространства. В данном случае последним разделом на диске является раздел " +"подкачки, но требуется изменить размер второго раздела. Поскольку разделы " +"подкачки содержат только временные данные, их можно безопасно отмонтировать, " +"удалить, а затем заново создать третий раздел после изменения размера " +"второго раздела." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:198 +msgid "Disable the swap partition:" +msgstr "Отключить раздел подкачки:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:202 +#, no-wrap +msgid "# swapoff /dev/ada0p3\n" +msgstr "# swapoff /dev/ada0p3\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:205 +msgid "" +"Delete the third partition, specified by the `-i` flag, from the disk _ada0_." +msgstr "Удалите третий раздел, указанный флагом `-i`, с диска _ada0_." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:215 +#, no-wrap +msgid "" +"# gpart delete -i 3 ada0\n" +"ada0p3 deleted\n" +"# gpart show ada0\n" +"=> 34 102399933 ada0 GPT (48G)\n" +" 34 128 1 freebsd-boot (64k)\n" +" 162 79691648 2 freebsd-ufs (38G)\n" +" 79691810 22708157 - free - (10G)\n" +msgstr "" +"# gpart delete -i 3 ada0\n" +"ada0p3 deleted\n" +"# gpart show ada0\n" +"=> 34 102399933 ada0 GPT (48G)\n" +" 34 128 1 freebsd-boot (64k)\n" +" 162 79691648 2 freebsd-ufs (38G)\n" +" 79691810 22708157 - free - (10G)\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:223 +msgid "" +"There is risk of data loss when modifying the partition table of a mounted " +"file system. It is best to perform the following steps on an unmounted file " +"system while running from a live CD-ROM or USB device. However, if " +"absolutely necessary, a mounted file system can be resized after disabling " +"GEOM safety features:" +msgstr "" +"Существует риск потери данных при изменении таблицы разделов смонтированной " +"файловой системы. Наилучшим вариантом будет выполнение следующих шагов на " +"размонтированной файловой системе, загрузившись с Live CD-ROM или USB-" +"устройства. Однако, если это крайне необходимо, смонтированную файловую " +"систему можно изменить, отключив защитные механизмы GEOM:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:227 +#, no-wrap +msgid "# sysctl kern.geom.debugflags=16\n" +msgstr "# sysctl kern.geom.debugflags=16\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:236 +msgid "" +"Resize the partition, leaving room to recreate a swap partition of the " +"desired size. The partition to resize is specified with `-i`, and the new " +"desired size with `-s`. Optionally, alignment of the partition is " +"controlled with `-a`. This only modifies the size of the partition. The " +"file system in the partition will be expanded in a separate step." +msgstr "" +"Измените размер раздела, оставив место для создания раздела подкачки нужного " +"размера. Раздел, который нужно изменить, указывается с помощью `-i`, а новый " +"желаемый размер — с помощью `-s`. Дополнительно выравнивание раздела " +"контролируется с помощью `-a`. Это изменяет только размер раздела. Файловая " +"система в разделе будет расширена в отдельном шаге." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:246 +#, no-wrap +msgid "" +"# gpart resize -i 2 -s 47G -a 4k ada0\n" +"ada0p2 resized\n" +"# gpart show ada0\n" +"=> 34 102399933 ada0 GPT (48G)\n" +" 34 128 1 freebsd-boot (64k)\n" +" 162 98566144 2 freebsd-ufs (47G)\n" +" 98566306 3833661 - free - (1.8G)\n" +msgstr "" +"# gpart resize -i 2 -s 47G -a 4k ada0\n" +"ada0p2 resized\n" +"# gpart show ada0\n" +"=> 34 102399933 ada0 GPT (48G)\n" +" 34 128 1 freebsd-boot (64k)\n" +" 162 98566144 2 freebsd-ufs (47G)\n" +" 98566306 3833661 - free - (1.8G)\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:250 +msgid "" +"Recreate the swap partition and activate it. If no size is specified with `-" +"s`, all remaining space is used:" +msgstr "" +"Воссоздайте раздел подкачки и активируйте его. Если размер не указан с " +"помощью `-s`, используется все оставшееся пространство:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:261 +#, no-wrap +msgid "" +"# gpart add -t freebsd-swap -a 4k ada0\n" +"ada0p3 added\n" +"# gpart show ada0\n" +"=> 34 102399933 ada0 GPT (48G)\n" +" 34 128 1 freebsd-boot (64k)\n" +" 162 98566144 2 freebsd-ufs (47G)\n" +" 98566306 3833661 3 freebsd-swap (1.8G)\n" +"# swapon /dev/ada0p3\n" +msgstr "" +"# gpart add -t freebsd-swap -a 4k ada0\n" +"ada0p3 added\n" +"# gpart show ada0\n" +"=> 34 102399933 ada0 GPT (48G)\n" +" 34 128 1 freebsd-boot (64k)\n" +" 162 98566144 2 freebsd-ufs (47G)\n" +" 98566306 3833661 3 freebsd-swap (1.8G)\n" +"# swapon /dev/ada0p3\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:264 +msgid "" +"Grow the UFS file system to use the new capacity of the resized partition:" +msgstr "" +"Увеличьте файловую систему UFS, чтобы использовать новую ёмкость изменённого " +"раздела:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:274 +#, no-wrap +msgid "" +"# growfs /dev/ada0p2\n" +"Device is mounted read-write; resizing will result in temporary write suspension for /.\n" +"It's strongly recommended to make a backup before growing the file system.\n" +"OK to grow file system on /dev/ada0p2, mounted on /, from 38GB to 47GB? [Yes/No] Yes\n" +"super-block backups (for fsck -b #) at:\n" +" 80781312, 82063552, 83345792, 84628032, 85910272, 87192512, 88474752,\n" +" 89756992, 91039232, 92321472, 93603712, 94885952, 96168192, 97450432\n" +msgstr "" +"# growfs /dev/ada0p2\n" +"Device is mounted read-write; resizing will result in temporary write suspension for /.\n" +"It's strongly recommended to make a backup before growing the file system.\n" +"OK to grow file system on /dev/ada0p2, mounted on /, from 38GB to 47GB? [Yes/No] Yes\n" +"super-block backups (for fsck -b #) at:\n" +" 80781312, 82063552, 83345792, 84628032, 85910272, 87192512, 88474752,\n" +" 89756992, 91039232, 92321472, 93603712, 94885952, 96168192, 97450432\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:277 +msgid "" +"If the file system is ZFS, the resize is triggered by running the `online` " +"subcommand with `-e`:" +msgstr "" +"Если файловая система ZFS, изменение размера запускается выполнением " +"подкоманды `online` с ключом `-e`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:281 +#, no-wrap +msgid "# zpool online -e zroot /dev/ada0p2\n" +msgstr "# zpool online -e zroot /dev/ada0p2\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:284 +msgid "" +"Both the partition and the file system on it have now been resized to use " +"the newly-available disk space." +msgstr "" +"Как раздел, так и файловая система на нем теперь изменены в размере для " +"использования нового доступного пространства на диске." + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:286 +#, no-wrap +msgid "USB Storage Devices" +msgstr "USB-накопители" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:290 +msgid "" +"Many external storage solutions, such as hard drives, USB thumbdrives, and " +"CD and DVD burners, use the Universal Serial Bus (USB). FreeBSD provides " +"support for USB 1.x, 2.0, and 3.0 devices." +msgstr "" +"Многие внешние устройства хранения данных, такие как жесткие диски, USB-" +"флешки, а также устройства для записи CD и DVD, используют универсальную " +"последовательную шину (USB). FreeBSD поддерживает устройства USB 1.x, 2.0 и " +"3.0." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:295 +msgid "" +"USB 3.0 support is not compatible with some hardware, including Haswell " +"(Lynx point) chipsets. If FreeBSD boots with a `failed with error 19` " +"message, disable xHCI/USB3 in the system BIOS." +msgstr "" +"Поддержка USB 3.0 несовместима с некоторым оборудованием, включая чипсеты " +"Haswell (Lynx point). Если FreeBSD загружается с сообщением `failed with " +"error 19`, отключите xHCI/USB3 в BIOS системы." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:299 +msgid "" +"Support for USB storage devices is built into the [.filename]#GENERIC# " +"kernel. For a custom kernel, be sure that the following lines are present " +"in the kernel configuration file:" +msgstr "" +"Поддержка USB-накопителей встроена в ядро [.filename]#GENERIC#. Для " +"собственной сборки ядра убедитесь, что следующие строки присутствуют в " +"конфигурационном файле ядра:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:312 +#, no-wrap +msgid "" +"device scbus\t# SCSI bus (required for ATA/SCSI)\n" +"device da\t# Direct Access (disks)\n" +"device pass\t# Passthrough device (direct ATA/SCSI access)\n" +"device uhci\t# provides USB 1.x support\n" +"device ohci\t# provides USB 1.x support\n" +"device ehci\t# provides USB 2.0 support\n" +"device xhci\t# provides USB 3.0 support\n" +"device usb\t# USB Bus (required)\n" +"device umass\t# Disks/Mass storage - Requires scbus and da\n" +"device cd\t# needed for CD and DVD burners\n" +msgstr "" +"device scbus\t# SCSI bus (required for ATA/SCSI)\n" +"device da\t# Direct Access (disks)\n" +"device pass\t# Passthrough device (direct ATA/SCSI access)\n" +"device uhci\t# provides USB 1.x support\n" +"device ohci\t# provides USB 1.x support\n" +"device ehci\t# provides USB 2.0 support\n" +"device xhci\t# provides USB 3.0 support\n" +"device usb\t# USB Bus (required)\n" +"device umass\t# Disks/Mass storage - Requires scbus and da\n" +"device cd\t# needed for CD and DVD burners\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:316 +msgid "" +"FreeBSD uses the man:umass[4] driver which uses the SCSI subsystem to access " +"USB storage devices. Since any USB device will be seen as a SCSI device by " +"the system, if the USB device is a CD or DVD burner, do _not_ include " +"`device atapicam` in a custom kernel configuration file." +msgstr "" +"FreeBSD использует драйвер man:umass[4], который задействует подсистему SCSI " +"для доступа к USB-устройствам хранения данных. Поскольку любое USB-" +"устройство будет распознаваться системой как SCSI-устройство, если USB-" +"устройство является записывающим CD- или DVD-приводом, _не_ включайте " +"`device atapicam` в конфигурационный файл пользовательского ядра." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:318 +msgid "" +"The rest of this section demonstrates how to verify that a USB storage " +"device is recognized by FreeBSD and how to configure the device so that it " +"can be used." +msgstr "" +"Оставшаяся часть этого раздела демонстрирует, как убедиться, что USB-" +"накопитель распознаётся FreeBSD, и как настроить устройство для " +"использования." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:319 +#, no-wrap +msgid "Device Configuration" +msgstr "Настройка устройств" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:324 +msgid "" +"To test the USB configuration, plug in the USB device. Use `dmesg` to " +"confirm that the drive appears in the system message buffer. It should look " +"something like this:" +msgstr "" +"Для проверки конфигурации USB подключите USB-устройство. Используйте " +"`dmesg`, чтобы убедиться, что устройство появилось в системном буфере " +"сообщений. Результат должен выглядеть примерно так:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:336 +#, no-wrap +msgid "" +"umass0: <STECH Simple Drive, class 0/0, rev 2.00/1.04, addr 3> on usbus0\n" +"umass0: SCSI over Bulk-Only; quirks = 0x0100\n" +"umass0:4:0:-1: Attached to scbus4\n" +"da0 at umass-sim0 bus 0 scbus4 target 0 lun 0\n" +"da0: <STECH Simple Drive 1.04> Fixed Direct Access SCSI-4 device\n" +"da0: Serial Number WD-WXE508CAN263\n" +"da0: 40.000MB/s transfers\n" +"da0: 152627MB (312581808 512 byte sectors: 255H 63S/T 19457C)\n" +"da0: quirks=0x2<NO_6_BYTE>\n" +msgstr "" +"umass0: <STECH Simple Drive, class 0/0, rev 2.00/1.04, addr 3> on usbus0\n" +"umass0: SCSI over Bulk-Only; quirks = 0x0100\n" +"umass0:4:0:-1: Attached to scbus4\n" +"da0 at umass-sim0 bus 0 scbus4 target 0 lun 0\n" +"da0: <STECH Simple Drive 1.04> Fixed Direct Access SCSI-4 device\n" +"da0: Serial Number WD-WXE508CAN263\n" +"da0: 40.000MB/s transfers\n" +"da0: 152627MB (312581808 512 byte sectors: 255H 63S/T 19457C)\n" +"da0: quirks=0x2<NO_6_BYTE>\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:339 +msgid "" +"The brand, device node ([.filename]#da0#), speed, and size will differ " +"according to the device." +msgstr "" +"Марка, файл устройства ([.filename]#da0#), скорость и размер будут " +"отличаться в зависимости от устройства." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:341 +msgid "" +"Since the USB device is seen as a SCSI one, `camcontrol` can be used to list " +"the USB storage devices attached to the system:" +msgstr "" +"Поскольку USB-устройство распознаётся как SCSI, для вывода списка USB-" +"накопителей, подключённых к системе, можно использовать `camcontrol`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:346 +#, no-wrap +msgid "" +"# camcontrol devlist\n" +"<STECH Simple Drive 1.04> at scbus4 target 0 lun 0 (pass3,da0)\n" +msgstr "" +"# camcontrol devlist\n" +"<STECH Simple Drive 1.04> at scbus4 target 0 lun 0 (pass3,da0)\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:350 +msgid "" +"Alternately, `usbconfig` can be used to list the device. Refer to " +"man:usbconfig[8] for more information about this command." +msgstr "" +"Или можно использовать `usbconfig` для вывода списка устройств. " +"Дополнительную информацию об этой команде смотрите в man:usbconfig[8]." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:355 +#, no-wrap +msgid "" +"# usbconfig\n" +"ugen0.3: <Simple Drive STECH> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (2mA)\n" +msgstr "" +"# usbconfig\n" +"ugen0.3: <Simple Drive STECH> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (2mA)\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:359 +msgid "" +"If the device has not been formatted, refer to crossref:disks[disks-adding, " +"Adding Disks] for instructions on how to format and create partitions on the " +"USB drive. If the drive comes with a file system, it can be mounted by " +"`root` using the instructions in crossref:basics[mount-unmount,“Mounting and " +"Unmounting File Systems”]." +msgstr "" +"Если устройство не было отформатировано, обратитесь к crossref:disks[disks-" +"adding,Добавление дисков] для получения инструкций по форматированию и " +"созданию разделов на USB-накопителе. Если накопитель поставляется с файловой " +"системой, он может быть смонтирован пользователем `root` с помощью " +"инструкций из crossref:basics[mount-unmount,«Монтирование и размонтирование " +"файловых систем»]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:364 +msgid "" +"Allowing untrusted users to mount arbitrary media, by enabling " +"`vfs.usermount` as described below, should not be considered safe from a " +"security point of view. Most file systems were not built to safeguard " +"against malicious devices." +msgstr "" +"Разрешение непривилегированным пользователям монтировать произвольные " +"носители путем включения `vfs.usermount`, как описано ниже, не должно " +"считаться безопасным с точки зрения защиты. Большинство файловых систем не " +"предназначены для защиты от вредоносных устройств." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:368 +msgid "" +"To make the device mountable as a normal user, one solution is to make all " +"users of the device a member of the `operator` group using man:pw[8]. Next, " +"ensure that `operator` is able to read and write the device by adding these " +"lines to [.filename]#/etc/devfs.rules#:" +msgstr "" +"Чтобы устройство можно было монтировать обычным пользователем, одним из " +"решений является добавление всех пользователей устройства в группу " +"`operator` с помощью man:pw[8]. Затем убедитесь, что группа `operator` имеет " +"права на чтение и запись устройства, добавив следующие строки в [.filename]#/" +"etc/devfs.rules#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:373 +#, no-wrap +msgid "" +"[localrules=5]\n" +"add path 'da*' mode 0660 group operator\n" +msgstr "" +"[localrules=5]\n" +"add path 'da*' mode 0660 group operator\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:378 +msgid "" +"If internal SCSI disks are also installed in the system, change the second " +"line as follows:" +msgstr "" +"Если в системе также установлены внутренние SCSI-диски, измените вторую " +"строку следующим образом:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:382 +#, no-wrap +msgid "add path 'da[3-9]*' mode 0660 group operator\n" +msgstr "add path 'da[3-9]*' mode 0660 group operator\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:387 +msgid "" +"This will exclude the first three SCSI disks ([.filename]#da0# to " +"[.filename]#da2#) from belonging to the `operator` group. Replace _3_ with " +"the number of internal SCSI disks. Refer to man:devfs.rules[5] for more " +"information about this file." +msgstr "" +"Это исключит первые три SCSI-диска ([.filename]#da0# — [.filename]#da2#) из " +"принадлежности к группе `operator`. Замените _3_ на количество внутренних " +"SCSI-дисков. Дополнительную информацию об этом файле смотрите в " +"man:devfs.rules[5]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:390 +msgid "Next, enable the ruleset in [.filename]#/etc/rc.conf#:" +msgstr "Затем включите набор правил в [.filename]#/etc/rc.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:394 +#, no-wrap +msgid "devfs_system_ruleset=\"localrules\"\n" +msgstr "devfs_system_ruleset=\"localrules\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:397 +msgid "" +"Then, instruct the system to allow regular users to mount file systems by " +"adding the following line to [.filename]#/etc/sysctl.conf#:" +msgstr "" +"Затем настройте систему для разрешения обычным пользователям монтировать " +"файловые системы, добавив следующую строку в [.filename]#/etc/sysctl.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:401 +#, no-wrap +msgid "vfs.usermount=1\n" +msgstr "vfs.usermount=1\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:404 +msgid "" +"Since this only takes effect after the next reboot, use `sysctl` to set this " +"variable now:" +msgstr "" +"Поскольку это вступит в силу только после следующей перезагрузки, " +"используйте `sysctl`, чтобы установить эту переменную сейчас:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:409 +#, no-wrap +msgid "" +"# sysctl vfs.usermount=1\n" +"vfs.usermount: 0 -> 1\n" +msgstr "" +"# sysctl vfs.usermount=1\n" +"vfs.usermount: 0 -> 1\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:415 +msgid "" +"The final step is to create a directory where the file system is to be " +"mounted. This directory needs to be owned by the user that is to mount the " +"file system. One way to do that is for `root` to create a subdirectory " +"owned by that user as [.filename]#/mnt/username#. In the following example, " +"replace _username_ with the login name of the user and _usergroup_ with the " +"user's primary group:" +msgstr "" +"Последним шагом является создание каталога, в который будет монтироваться " +"файловая система. Этот каталог должен принадлежать пользователю, который " +"будет монтировать файловую систему. Один из способов сделать это — создать " +"подкаталог от имени `root`, принадлежащий этому пользователю, например " +"[.filename]#/mnt/username#. В следующем примере замените _username_ на имя " +"пользователя, а _usergroup_ на основную группу пользователя:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:420 +#, no-wrap +msgid "" +"# mkdir /mnt/username\n" +"# chown username:usergroup /mnt/username\n" +msgstr "" +"# mkdir /mnt/username\n" +"# chown username:usergroup /mnt/username\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:424 +msgid "" +"Suppose a USB thumbdrive is plugged in, and a device [.filename]#/dev/da0s1# " +"appears. If the device is formatted with a FAT file system, the user can " +"mount it using:" +msgstr "" +"Предположим, подключена USB-флешка, и появилось устройство [.filename]#/dev/" +"da0s1#. Если устройство отформатировано с файловой системой FAT, " +"пользователь может смонтировать его с помощью:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:428 +#, no-wrap +msgid "% mount -t msdosfs -o -m=644,-M=755 /dev/da0s1 /mnt/username\n" +msgstr "% mount -t msdosfs -o -m=644,-M=755 /dev/da0s1 /mnt/username\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:431 +msgid "Before the device can be unplugged, it _must_ be unmounted first:" +msgstr "" +"Прежде чем устройство можно будет отключить, его _необходимо_ размонтировать:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:435 +#, no-wrap +msgid "% umount /mnt/username\n" +msgstr "% umount /mnt/username\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:438 +msgid "" +"After device removal, the system message buffer will show messages similar " +"to the following:" +msgstr "" +"После удаления устройства в системном буфере сообщений будут отображены " +"сообщения, аналогичные следующим:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:445 +#, no-wrap +msgid "" +"umass0: at uhub3, port 2, addr 3 (disconnected)\n" +"da0 at umass-sim0 bus 0 scbus4 target 0 lun 0\n" +"da0: <STECH Simple Drive 1.04> s/n WD-WXE508CAN263 detached\n" +"(da0:umass-sim0:0:0:0): Periph destroyed\n" +msgstr "" +"umass0: at uhub3, port 2, addr 3 (disconnected)\n" +"da0 at umass-sim0 bus 0 scbus4 target 0 lun 0\n" +"da0: <STECH Simple Drive 1.04> s/n WD-WXE508CAN263 detached\n" +"(da0:umass-sim0:0:0:0): Periph destroyed\n" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:447 +#, no-wrap +msgid "Automounting Removable Media" +msgstr "Автомонтирование съемных носителей" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:450 +msgid "" +"USB devices can be automatically mounted by uncommenting this line in " +"[.filename]#/etc/auto_master#:" +msgstr "" +"USB-устройства могут автоматически монтироваться при раскомментировании этой " +"строки в [.filename]#/etc/auto_master#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:454 +#, no-wrap +msgid "/media\t\t-media\t\t-nosuid\n" +msgstr "/media\t\t-media\t\t-nosuid\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:457 +msgid "Then add these lines to [.filename]#/etc/devd.conf#:" +msgstr "Затем добавьте следующие строки в [.filename]#/etc/devd.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:465 +#, no-wrap +msgid "" +"notify 100 {\n" +"\tmatch \"system\" \"GEOM\";\n" +"\tmatch \"subsystem\" \"DEV\";\n" +"\taction \"/usr/sbin/automount -c\";\n" +"};\n" +msgstr "" +"notify 100 {\n" +"\tmatch \"system\" \"GEOM\";\n" +"\tmatch \"subsystem\" \"DEV\";\n" +"\taction \"/usr/sbin/automount -c\";\n" +"};\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:468 +msgid "" +"Reload the configuration if man:autofs[5] and man:devd[8] are already " +"running:" +msgstr "" +"Перезагрузите конфигурацию, если man:autofs[5] и man:devd[8] уже запущены:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:473 +#, no-wrap +msgid "" +"# service automount restart\n" +"# service devd restart\n" +msgstr "" +"# service automount restart\n" +"# service devd restart\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:476 +msgid "" +"man:autofs[5] can be set to start at boot by adding this line to " +"[.filename]#/etc/rc.conf#:" +msgstr "" +"man:autofs[5] можно настроить для запуска при загрузке, добавив следующую " +"строку в [.filename]#/etc/rc.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:480 +#, no-wrap +msgid "autofs_enable=\"YES\"\n" +msgstr "autofs_enable=\"YES\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:483 +msgid "man:autofs[5] requires man:devd[8] to be enabled, as it is by default." +msgstr "" +"man:autofs[5] требует, чтобы man:devd[8] был включён, как это и настроено по " +"умолчанию." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:485 +msgid "Start the services immediately with:" +msgstr "Запустите службы немедленно с помощью:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:492 +#, no-wrap +msgid "" +"# service automount start\n" +"# service automountd start\n" +"# service autounmountd start\n" +"# service devd start\n" +msgstr "" +"# service automount start\n" +"# service automountd start\n" +"# service autounmountd start\n" +"# service devd start\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:497 +msgid "" +"Each file system that can be automatically mounted appears as a directory in " +"[.filename]#/media/#. The directory is named after the file system label. " +"If the label is missing, the directory is named after the device node." +msgstr "" +"Каждая файловая система, которая может быть автоматически смонтирована, " +"отображается как каталог в [.filename]#/media/#. Каталог именуется в " +"соответствии с меткой файловой системы. Если метка отсутствует, каталог " +"именуется в соответствии с устройством." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:500 +msgid "" +"The file system is transparently mounted on the first access, and unmounted " +"after a period of inactivity. Automounted drives can also be unmounted " +"manually:" +msgstr "" +"Файловая система автоматически монтируется при первом доступе и " +"размонтируется после периода неактивности. Автомонтируемые диски также можно " +"размонтировать вручную:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:504 +#, no-wrap +msgid "# automount -fu\n" +msgstr "# automount -fu\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:508 +msgid "" +"This mechanism is typically used for memory cards and USB memory sticks. It " +"can be used with any block device, including optical drives or iSCSILUNs." +msgstr "" +"Этот механизм обычно используется для карт памяти и USB-флешек. Он может " +"применяться с любыми блочными устройствами, включая оптические приводы или " +"iSCSI LUN." + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:510 +#, no-wrap +msgid "Creating and Using CD Media" +msgstr "Создание и использование CD-носителей" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:516 +msgid "" +"Compact Disc (CD) media provide a number of features that differentiate them " +"from conventional disks. They are designed so that they can be read " +"continuously without delays to move the head between tracks. While CD media " +"do have tracks, these refer to a section of data to be read continuously, " +"and not a physical property of the disk. The ISO 9660 file system was " +"designed to deal with these differences." +msgstr "" +"Компакт-диски (CD) обладают рядом особенностей, которые отличают их от " +"обычных дисков. Они спроектированы так, чтобы их можно было читать " +"непрерывно без задержек на перемещение головки между дорожками. Хотя на CD " +"действительно есть дорожки, они обозначают участки данных, предназначенные " +"для непрерывного чтения, а не физическое свойство диска. Файловая система " +"ISO 9660 была разработана для работы с этими различиями." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:520 +msgid "" +"The FreeBSD Ports Collection provides several utilities for burning and " +"duplicating audio and data CDs. This chapter demonstrates the use of " +"several command line utilities. For CD burning software with a graphical " +"utility, consider installing the package:sysutils/xcdroast[] or " +"package:sysutils/k3b[] packages or ports." +msgstr "" +"Коллекция портов FreeBSD предоставляет несколько утилит для записи и " +"копирования аудио- и данных на CD. В этой главе демонстрируется " +"использование нескольких утилит командной строки. Для записи CD с " +"графическим интерфейсом можно установить пакеты или порты package:sysutils/" +"xcdroast[] или package:sysutils/k3b[]." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:522 +#, no-wrap +msgid "Supported Devices" +msgstr "Поддерживаемые устройства" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:526 +msgid "" +"The [.filename]#GENERIC# kernel provides support for SCSI, USB, and ATAPICD " +"readers and burners. If a custom kernel is used, the options that need to " +"be present in the kernel configuration file vary by the type of device." +msgstr "" +"Ядро [.filename]#GENERIC# обеспечивает поддержку SCSI, USB и устройств " +"чтения и записи ATAPICD. Если используется собственное ядро, параметры, " +"которые должны присутствовать в конфигурационном файле ядра, зависят от типа " +"устройства." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:528 +msgid "For a SCSI burner, make sure these options are present:" +msgstr "" +"Для SCSI-устройства, записывающего CD или DVD диски, убедитесь, что " +"присутствуют следующие параметры:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:535 +#, no-wrap +msgid "" +"device scbus\t# SCSI bus (required for ATA/SCSI)\n" +"device da\t# Direct Access (disks)\n" +"device pass\t# Passthrough device (direct ATA/SCSI access)\n" +"device cd\t# needed for CD and DVD burners\n" +msgstr "" +"device scbus\t# SCSI bus (required for ATA/SCSI)\n" +"device da\t# Direct Access (disks)\n" +"device pass\t# Passthrough device (direct ATA/SCSI access)\n" +"device cd\t# needed for CD and DVD burners\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:538 +msgid "For a USB burner, make sure these options are present:" +msgstr "Для USB-привода убедитесь, что указаны следующие параметры:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:551 +#, no-wrap +msgid "" +"device scbus\t# SCSI bus (required for ATA/SCSI)\n" +"device da\t# Direct Access (disks)\n" +"device pass\t# Passthrough device (direct ATA/SCSI access)\n" +"device cd\t# needed for CD and DVD burners\n" +"device uhci\t# provides USB 1.x support\n" +"device ohci\t# provides USB 1.x support\n" +"device ehci\t# provides USB 2.0 support\n" +"device xhci\t# provides USB 3.0 support\n" +"device usb\t# USB Bus (required)\n" +"device umass\t# Disks/Mass storage - Requires scbus and da\n" +msgstr "" +"device scbus\t# SCSI bus (required for ATA/SCSI)\n" +"device da\t# Direct Access (disks)\n" +"device pass\t# Passthrough device (direct ATA/SCSI access)\n" +"device cd\t# needed for CD and DVD burners\n" +"device uhci\t# provides USB 1.x support\n" +"device ohci\t# provides USB 1.x support\n" +"device ehci\t# provides USB 2.0 support\n" +"device xhci\t# provides USB 3.0 support\n" +"device usb\t# USB Bus (required)\n" +"device umass\t# Disks/Mass storage - Requires scbus and da\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:554 +msgid "For an ATAPI burner, make sure these options are present:" +msgstr "" +"Для ATAPI устройств, записывающих CD или DVD диски, убедитесь, что указаны " +"следующие параметры:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:561 +#, no-wrap +msgid "" +"device ata\t# Legacy ATA/SATA controllers\n" +"device scbus\t# SCSI bus (required for ATA/SCSI)\n" +"device pass\t# Passthrough device (direct ATA/SCSI access)\n" +"device cd\t# needed for CD and DVD burners\n" +msgstr "" +"device ata\t# Legacy ATA/SATA controllers\n" +"device scbus\t# SCSI bus (required for ATA/SCSI)\n" +"device pass\t# Passthrough device (direct ATA/SCSI access)\n" +"device cd\t# needed for CD and DVD burners\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:566 +msgid "" +"On FreeBSD versions prior to 10.x, this line is also needed in the kernel " +"configuration file if the burner is an ATAPI device:" +msgstr "" +"В версиях FreeBSD до 10.x эта строка также необходима в конфигурационном " +"файле ядра, если устройство записи является ATAPI-устройством:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:570 +#, no-wrap +msgid "device atapicam\n" +msgstr "device atapicam\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:573 +msgid "" +"Alternately, this driver can be loaded at boot time by adding the following " +"line to [.filename]#/boot/loader.conf#:" +msgstr "" +"В качестве альтернативы, этот драйвер можно загрузить при загрузке, добавив " +"следующую строку в файл [.filename]#/boot/loader.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:577 +#, no-wrap +msgid "atapicam_load=\"YES\"\n" +msgstr "atapicam_load=\"YES\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:580 +msgid "" +"This will require a reboot of the system as this driver can only be loaded " +"at boot time." +msgstr "" +"Это потребует перезагрузки системы, так как этот драйвер может быть загружен " +"только во время загрузки." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:584 +msgid "" +"To verify that FreeBSD recognizes the device, run `dmesg` and look for an " +"entry for the device. On systems prior to 10.x, the device name in the " +"first line of the output will be [.filename]#acd0# instead of " +"[.filename]#cd0#." +msgstr "" +"Чтобы убедиться, что FreeBSD распознает устройство, выполните команду " +"`dmesg` и найдите запись об этом устройстве. В системах до версии 10.x имя " +"устройства в первой строке вывода будет [.filename]#acd0# вместо " +"[.filename]#cd0#." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:593 +#, no-wrap +msgid "" +"% dmesg | grep cd\n" +"cd0 at ahcich1 bus 0 scbus1 target 0 lun 0\n" +"cd0: <HL-DT-ST DVDRAM GU70N LT20> Removable CD-ROM SCSI-0 device\n" +"cd0: Serial Number M3OD3S34152\n" +"cd0: 150.000MB/s transfers (SATA 1.x, UDMA6, ATAPI 12bytes, PIO 8192bytes)\n" +"cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed\n" +msgstr "" +"% dmesg | grep cd\n" +"cd0 at ahcich1 bus 0 scbus1 target 0 lun 0\n" +"cd0: <HL-DT-ST DVDRAM GU70N LT20> Removable CD-ROM SCSI-0 device\n" +"cd0: Serial Number M3OD3S34152\n" +"cd0: 150.000MB/s transfers (SATA 1.x, UDMA6, ATAPI 12bytes, PIO 8192bytes)\n" +"cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed\n" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:596 +#, no-wrap +msgid "Burning a CD" +msgstr "Запись компакт-диска" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:600 +msgid "" +"In FreeBSD, `cdrecord` can be used to burn CDs. This command is installed " +"with the package:sysutils/cdrtools[] package or port." +msgstr "" +"В FreeBSD для записи компакт-дисков можно использовать `cdrecord`. Эта " +"команда устанавливается с пакетом или портом package:sysutils/cdrtools[]." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:603 +msgid "" +"While `cdrecord` has many options, basic usage is simple. Specify the name " +"of the ISO file to burn and, if the system has multiple burner devices, " +"specify the name of the device to use:" +msgstr "" +"Хотя `cdrecord` имеет множество опций, базовое использование просто. Укажите " +"имя ISO-файла для записи и, если в системе несколько устройств для записи, " +"укажите имя используемого устройства:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:607 +#, no-wrap +msgid "# cdrecord dev=device imagefile.iso\n" +msgstr "# cdrecord dev=device imagefile.iso\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:610 +msgid "" +"To determine the device name of the burner, use `-scanbus` which might " +"produce results like this:" +msgstr "" +"Чтобы определить имя устройства записывающего привода, используйте `-" +"scanbus`, что может дать результат, подобный следующему:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:634 +#, no-wrap +msgid "" +"# cdrecord -scanbus\n" +"ProDVD-ProBD-Clone 3.00 (amd64-unknown-freebsd10.0) Copyright (C) 1995-2010 Jörg Schilling\n" +"Using libscg version 'schily-0.9'\n" +"scsibus0:\n" +" 0,0,0 0) 'SEAGATE ' 'ST39236LW ' '0004' Disk\n" +" 0,1,0 1) 'SEAGATE ' 'ST39173W ' '5958' Disk\n" +" 0,2,0 2) *\n" +" 0,3,0 3) 'iomega ' 'jaz 1GB ' 'J.86' Removable Disk\n" +" 0,4,0 4) 'NEC ' 'CD-ROM DRIVE:466' '1.26' Removable CD-ROM\n" +" 0,5,0 5) *\n" +" 0,6,0 6) *\n" +" 0,7,0 7) *\n" +"scsibus1:\n" +" 1,0,0 100) *\n" +" 1,1,0 101) *\n" +" 1,2,0 102) *\n" +" 1,3,0 103) *\n" +" 1,4,0 104) *\n" +" 1,5,0 105) 'YAMAHA ' 'CRW4260 ' '1.0q' Removable CD-ROM\n" +" 1,6,0 106) 'ARTEC ' 'AM12S ' '1.06' Scanner\n" +" 1,7,0 107) *\n" +msgstr "" +"# cdrecord -scanbus\n" +"ProDVD-ProBD-Clone 3.00 (amd64-unknown-freebsd10.0) Copyright (C) 1995-2010 Jörg Schilling\n" +"Using libscg version 'schily-0.9'\n" +"scsibus0:\n" +" 0,0,0 0) 'SEAGATE ' 'ST39236LW ' '0004' Disk\n" +" 0,1,0 1) 'SEAGATE ' 'ST39173W ' '5958' Disk\n" +" 0,2,0 2) *\n" +" 0,3,0 3) 'iomega ' 'jaz 1GB ' 'J.86' Removable Disk\n" +" 0,4,0 4) 'NEC ' 'CD-ROM DRIVE:466' '1.26' Removable CD-ROM\n" +" 0,5,0 5) *\n" +" 0,6,0 6) *\n" +" 0,7,0 7) *\n" +"scsibus1:\n" +" 1,0,0 100) *\n" +" 1,1,0 101) *\n" +" 1,2,0 102) *\n" +" 1,3,0 103) *\n" +" 1,4,0 104) *\n" +" 1,5,0 105) 'YAMAHA ' 'CRW4260 ' '1.0q' Removable CD-ROM\n" +" 1,6,0 106) 'ARTEC ' 'AM12S ' '1.06' Scanner\n" +" 1,7,0 107) *\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:639 +msgid "" +"Locate the entry for the CD burner and use the three numbers separated by " +"commas as the value for `dev`. In this case, the Yamaha burner device is " +"`1,5,0`, so the appropriate input to specify that device is `dev=1,5,0`. " +"Refer to the manual page for `cdrecord` for other ways to specify this value " +"and for information on writing audio tracks and controlling the write speed." +msgstr "" +"Найдите запись устройство для записи CD и используйте три числа, разделенные " +"запятыми, в качестве значения для `dev`. В данном случае устройство Yamaha " +"имеет значение `1,5,0`, поэтому правильный ввод для указания этого " +"устройства — `dev=1,5,0`. Обратитесь к руководству `cdrecord` для других " +"способов указания этого значения, а также для получения информации о записи " +"аудиодорожек и управлении скоростью записи." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:641 +msgid "" +"Alternately, run the following command to get the device address of the " +"burner:" +msgstr "" +"Или выполните следующую команду, чтобы получить адрес записывающего " +"устройства:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:646 +#, no-wrap +msgid "" +"# camcontrol devlist\n" +"<MATSHITA CDRW/DVD UJDA740 1.00> at scbus1 target 0 lun 0 (cd0,pass0)\n" +msgstr "" +"# camcontrol devlist\n" +"<MATSHITA CDRW/DVD UJDA740 1.00> at scbus1 target 0 lun 0 (cd0,pass0)\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:650 +msgid "" +"Use the numeric values for `scbus`, `target`, and `lun`. For this example, " +"`1,0,0` is the device name to use." +msgstr "" +"Используйте числовые значения для `scbus`, `target` и `lun`. В этом примере " +"`1,0,0` — это имя устройства, которое следует использовать." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:652 +#, no-wrap +msgid "Writing Data to an ISO File System" +msgstr "Запись данных в файловую систему ISO" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:657 +msgid "" +"In order to produce a data CD, the data files that are going to make up the " +"tracks on the CD must be prepared before they can be burned to the CD. In " +"FreeBSD, package:sysutils/cdrtools[] installs `mkisofs`, which can be used " +"to produce an ISO 9660 file system that is an image of a directory tree " +"within a UNIX(R) file system. The simplest usage is to specify the name of " +"the ISO file to create and the path to the files to place into the ISO 9660 " +"file system:" +msgstr "" +"Для создания компакт-диска с данными файлы, которые будут составлять дорожки " +"на диске, необходимо подготовить перед записью на CD. В FreeBSD пакет " +"package:sysutils/cdrtools[] устанавливает `mkisofs`, который можно " +"использовать для создания файловой системы ISO 9660, представляющей образ " +"дерева каталогов в UNIX(R) файловой системе. Простейший способ использования " +"— указать имя создаваемого ISO-файла и путь к файлам, которые нужно " +"поместить в файловую систему ISO 9660:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:661 +#, no-wrap +msgid "# mkisofs -o imagefile.iso /path/to/tree\n" +msgstr "# mkisofs -o imagefile.iso /path/to/tree\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:664 +msgid "" +"This command maps the file names in the specified path to names that fit the " +"limitations of the standard ISO 9660 file system, and will exclude files " +"that do not meet the standard for ISO file systems." +msgstr "" +"Эта команда сопоставляет имена файлов в указанном пути с именами, " +"соответствующими ограничениям стандартной файловой системы ISO 9660, и " +"исключает файлы, не соответствующие стандарту для файловых систем ISO." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:667 +msgid "" +"A number of options are available to overcome the restrictions imposed by " +"the standard. In particular, `-R` enables the Rock Ridge extensions common " +"to UNIX(R) systems and `-J` enables Joliet extensions used by Microsoft(R) " +"systems." +msgstr "" +"Для преодоления ограничений стандарта доступен ряд опций. В частности, `-R` " +"включает расширения Rock Ridge, распространённые в системах UNIX(R), а `-J` " +"включает расширения Joliet, используемые в системах Microsoft(R)." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:670 +msgid "" +"For CDs that are going to be used only on FreeBSD systems, `-U` can be used " +"to disable all filename restrictions. When used with `-R`, it produces a " +"file system image that is identical to the specified FreeBSD tree, even if " +"it violates the ISO 9660 standard." +msgstr "" +"Для компакт-дисков, которые будут использоваться только в системах FreeBSD, " +"можно применить `-U` для отключения всех ограничений на имена файлов. При " +"использовании вместе с `-R` создаётся образ файловой системы, идентичный " +"указанному дереву FreeBSD, даже если он нарушает стандарт ISO 9660." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:678 +msgid "" +"The last option of general use is `-b`. This is used to specify the " +"location of a boot image for use in producing an \"El Torito\" bootable CD. " +"This option takes an argument which is the path to a boot image from the top " +"of the tree being written to the CD. By default, `mkisofs` creates an ISO " +"image in \"floppy disk emulation\" mode, and thus expects the boot image to " +"be exactly 1200, 1440 or 2880 KB in size. Some boot loaders, like the one " +"used by the FreeBSD distribution media, do not use emulation mode. In this " +"case, `-no-emul-boot` should be used. So, if [.filename]#/tmp/myboot# holds " +"a bootable FreeBSD system with the boot image in [.filename]#/tmp/myboot/" +"boot/cdboot#, this command would produce [.filename]#/tmp/bootable.iso#:" +msgstr "" +"Последняя опция общего назначения — `-b`. Она используется для указания " +"местоположения загрузочного образа при создании загрузочного CD в формате " +"\"El Torito\". Эта опция принимает аргумент — путь к загрузочному образу " +"относительно корня дерева, записываемого на CD. По умолчанию `mkisofs` " +"создаёт образ ISO в режиме \"эмуляции флоппи-диска\", поэтому ожидает, что " +"загрузочный образ будет иметь размер ровно 1200, 1440 или 2880 КБ. Некоторые " +"загрузчики, например, используемые на дистрибутивных носителях FreeBSD, не " +"применяют режим эмуляции. В этом случае следует использовать опцию `-no-emul-" +"boot`. Таким образом, если [.filename]#/tmp/myboot# содержит загрузочную " +"систему FreeBSD с загрузочным образом в [.filename]#/tmp/myboot/boot/" +"cdboot#, то следующая команда создаст [.filename]#/tmp/bootable.iso#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:682 +#, no-wrap +msgid "# mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot\n" +msgstr "# mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:685 +msgid "The resulting ISO image can be mounted as a memory disk with:" +msgstr "Полученный образ ISO можно подключить как диск в памяти с помощью:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:690 +#, no-wrap +msgid "" +"# mdconfig -a -t vnode -f /tmp/bootable.iso -u 0\n" +"# mount -t cd9660 /dev/md0 /mnt\n" +msgstr "" +"# mdconfig -a -t vnode -f /tmp/bootable.iso -u 0\n" +"# mount -t cd9660 /dev/md0 /mnt\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:693 +msgid "" +"One can then verify that [.filename]#/mnt# and [.filename]#/tmp/myboot# are " +"identical." +msgstr "" +"Затем можно убедиться, что [.filename]#/mnt# и [.filename]#/tmp/myboot# " +"идентичны." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:696 +msgid "" +"There are many other options available for `mkisofs` to fine-tune its " +"behavior. Refer to man:mkisofs[8] for details." +msgstr "" +"Доступно множество других опций для `mkisofs`, позволяющих точно настроить " +"его поведение. Подробности смотрите в man:mkisofs[8]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:701 +msgid "" +"It is possible to copy a data CD to an image file that is functionally " +"equivalent to the image file created with `mkisofs`. To do so, use " +"[.filename]#dd# with the device name as the input file and the name of the " +"ISO to create as the output file:" +msgstr "" +"Возможно скопировать компакт-диск с данными в файл образа, функционально " +"эквивалентный файлу образа, созданному с помощью `mkisofs`. Для этого " +"используйте [.filename]#dd#, указав имя устройства в качестве входного файла " +"и имя создаваемого ISO в качестве выходного файла:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:705 +#, no-wrap +msgid "# dd if=/dev/cd0 of=file.iso bs=2048\n" +msgstr "# dd if=/dev/cd0 of=file.iso bs=2048\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:708 +msgid "" +"The resulting image file can be burned to CD as described in " +"crossref:disks[cdrecord, Burning a CD]." +msgstr "" +"Полученный файл образа можно записать на компакт-диск, как описано в " +"crossref:disks[cdrecord,Запись компакт-диска]." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:711 +#, no-wrap +msgid "Using Data CDs" +msgstr "Использование компакт-дисков с данными" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:714 +msgid "" +"Once an ISO has been burned to a CD, it can be mounted by specifying the " +"file system type, the name of the device containing the CD, and an existing " +"mount point:" +msgstr "" +"После записи ISO-образа на компакт-диск его можно смонтировать, указав тип " +"файловой системы, имя устройства с компакт-диском и существующую точку " +"монтирования:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:718 +#, no-wrap +msgid "# mount -t cd9660 /dev/cd0 /mnt\n" +msgstr "# mount -t cd9660 /dev/cd0 /mnt\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:721 +msgid "" +"Since `mount` assumes that a file system is of type `ufs`, an `Incorrect " +"super block` error will occur if `-t cd9660` is not included when mounting a " +"data CD." +msgstr "" +"Поскольку `mount` предполагает, что файловая система имеет тип `ufs`, ошибка " +"`Incorrect super block` возникнет, если не указать `-t cd9660` при " +"монтировании компакт-диска с данными." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:726 +msgid "" +"While any data CD can be mounted this way, disks with certain ISO 9660 " +"extensions might behave oddly. For example, Joliet disks store all " +"filenames in two-byte Unicode characters. If some non-English characters " +"show up as question marks, specify the local charset with `-C`. For more " +"information, refer to man:mount_cd9660[8]." +msgstr "" +"В то время как любой компакт-диск с данными можно смонтировать таким " +"образом, диски с определёнными расширениями ISO 9660 могут работать " +"неожиданно. Например, диски Joliet хранят все имена файлов в двухбайтовых " +"символах Unicode. Если некоторые неанглийские символы отображаются как знаки " +"вопроса, укажите локальную кодировку с помощью `-C`. Для получения " +"дополнительной информации обратитесь к man:mount_cd9660[8]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:731 +msgid "" +"In order to do this character conversion with the help of `-C`, the kernel " +"requires the [.filename]#cd9660_iconv.ko# module to be loaded. This can be " +"done either by adding this line to [.filename]#loader.conf#:" +msgstr "" +"Для выполнения этого преобразования символов с помощью опции `-C` необходимо " +"загрузить модуль ядра [.filename]#cd9660_iconv.ko#. Это можно сделать, " +"добавив следующую строку в [.filename]#loader.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:735 +#, no-wrap +msgid "cd9660_iconv_load=\"YES\"\n" +msgstr "cd9660_iconv_load=\"YES\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:738 +msgid "" +"and then rebooting the machine, or by directly loading the module with " +"`kldload`." +msgstr "" +"и затем перезагрузить машину, или напрямую загрузить модуль с помощью " +"`kldload`." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:743 +msgid "" +"Occasionally, `Device not configured` will be displayed when trying to mount " +"a data CD. This usually means that the CD drive has not detected a disk in " +"the tray, or that the drive is not visible on the bus. It can take a couple " +"of seconds for a CD drive to detect media, so be patient." +msgstr "" +"Изредка при попытке смонтировать компакт-диск с данными может отображаться " +"сообщение `Device not configured`. Обычно это означает, что привод не " +"обнаружил диск в лотке или что привод не виден на шине. Обнаружение носителя " +"может занять несколько секунд, поэтому следует набраться терпения." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:747 +msgid "" +"Sometimes, a SCSICD drive may be missed because it did not have enough time " +"to answer the bus reset. To resolve this, a custom kernel can be created " +"which increases the default SCSI delay. Add the following option to the " +"custom kernel configuration file and rebuild the kernel using the " +"instructions in crossref:kernelconfig[kernelconfig-building,“Building and " +"Installing a Custom Kernel”]:" +msgstr "" +"Иногда привод SCSICD может быть пропущен, потому что у него не хватило " +"времени ответить на сброс шины. Чтобы решить эту проблему, можно создать " +"пользовательское ядро с увеличенной задержкой SCSI по умолчанию. Добавьте " +"следующую опцию в конфигурационный файл собственного ядра и пересоберите " +"ядро, следуя инструкциям в crossref:kernelconfig[kernelconfig-" +"building,“Сборка и установка собственного ядра”]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:751 +#, no-wrap +msgid "options SCSI_DELAY=15000\n" +msgstr "options SCSI_DELAY=15000\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:754 +msgid "" +"This tells the SCSI bus to pause 15 seconds during boot, to give the CD " +"drive every possible chance to answer the bus reset." +msgstr "" +"Это указывает шине SCSI сделать паузу в 15 секунд во время загрузки, чтобы " +"дать CD-приводу максимальный шанс ответить на сброс шины." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:759 +msgid "" +"It is possible to burn a file directly to CD, without creating an ISO 9660 " +"file system. This is known as burning a raw data CD and some people do this " +"for backup purposes." +msgstr "" +"Возможно записать файл непосредственно на CD без создания файловой системы " +"ISO 9660. Это называется записью сырых данных на CD, и некоторые люди делают " +"это для целей резервного копирования." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:763 +msgid "" +"This type of disk can not be mounted as a normal data CD. In order to " +"retrieve the data burned to such a CD, the data must be read from the raw " +"device node. For example, this command will extract a compressed tar file " +"located on the second CD device into the current working directory:" +msgstr "" +"Такой диск нельзя смонтировать как обычный CD с данными. Чтобы извлечь " +"данные, записанные на такой диск, их необходимо прочитать непосредственно с " +"устройства. Например, следующая команда извлечёт сжатый tar-архив со второго " +"CD-устройства в текущую рабочую директорию:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:767 +#, no-wrap +msgid "# tar xzvf /dev/cd1\n" +msgstr "# tar xzvf /dev/cd1\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:770 +msgid "In order to mount a data CD, the data must be written using `mkisofs`." +msgstr "" +"Для монтирования компакт-диска с данными они должны быть записаны с " +"использованием `mkisofs`." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:773 +#, no-wrap +msgid "Duplicating Audio CDs" +msgstr "Копирование аудио-CD" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:776 +msgid "" +"To duplicate an audio CD, extract the audio data from the CD to a series of " +"files, then write these files to a blank CD." +msgstr "" +"Для копирования аудио-CD извлеките аудиоданные с диска в виде набора файлов, " +"затем запишите эти файлы на чистый CD." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:780 +msgid "" +"crossref:disks[using-cdrecord, Duplicating an Audio CD] describes how to " +"duplicate and burn an audio CD. If the FreeBSD version is less than 10.0 " +"and the device is ATAPI, the `atapicam` module must be first loaded using " +"the instructions in crossref:disks[atapicam, Supported Devices]." +msgstr "" +"В crossref:disks[using-cdrecord, Копирование аудио-CD] описано, как " +"дублировать и записывать аудио-CD. Если версия FreeBSD меньше 10.0 и " +"устройство является ATAPI, необходимо сначала загрузить модуль `atapicam`, " +"следуя инструкциям в crossref:disks[atapicam, Поддерживаемые устройства]." + +#. type: Block title +#: documentation/content/en/books/handbook/disks/_index.adoc:783 +#, no-wrap +msgid "Procedure: Duplicating an Audio CD" +msgstr "Процедура: Копирование аудио-CD" + +#. type: .procedure +#: documentation/content/en/books/handbook/disks/_index.adoc:785 +msgid "" +"The package:sysutils/cdrtools[] package or port installs `cdda2wav`. This " +"command can be used to extract all of the audio tracks, with each track " +"written to a separate WAV file in the current working directory:" +msgstr "" +"Пакет или порт package:sysutils/cdrtools[] устанавливает `cdda2wav`. Эту " +"команду можно использовать для извлечения всех аудиодорожек, при этом каждая " +"дорожка записывается в отдельный WAV-файл в текущей рабочей директории:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:789 +#, no-wrap +msgid "% cdda2wav -vall -B -Owav\n" +msgstr "% cdda2wav -vall -B -Owav\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:793 +msgid "" +"A device name does not need to be specified if there is only one CD device " +"on the system. Refer to the `cdda2wav` manual page for instructions on how " +"to specify a device and to learn more about the other options available for " +"this command." +msgstr "" +"Имя устройства не нужно указывать, если в системе только одно устройство CD. " +"Обратитесь к руководству `cdda2wav` для получения инструкций по указанию " +"устройства и дополнительной информации о других параметрах этой команды." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:794 +msgid "Use `cdrecord` to write the [.filename]#.wav# files:" +msgstr "Используйте `cdrecord` для записи файлов [.filename]#.wav#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:798 +#, no-wrap +msgid "% cdrecord -v dev=2,0 -dao -useinfo *.wav\n" +msgstr "% cdrecord -v dev=2,0 -dao -useinfo *.wav\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:801 +msgid "" +"Make sure that _2,0_ is set appropriately, as described in " +"crossref:disks[cdrecord, Burning a CD]." +msgstr "" +"Убедитесь, что _2,0_ установлено правильно, как описано в " +"crossref:disks[cdrecord, Запись CD]." + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:803 +#, no-wrap +msgid "Creating and Using DVD Media" +msgstr "Создание и использование DVD-носителей" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:807 +msgid "" +"Compared to the CD, the DVD is the next generation of optical media storage " +"technology. The DVD can hold more data than any CD and is the standard for " +"video publishing." +msgstr "" +"По сравнению с компакт-диском, DVD представляет собой следующее поколение " +"технологии хранения данных на оптических носителях. DVD может вмещать больше " +"данных, чем любой компакт-диск, и является стандартом для издания видео." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:809 +msgid "Five physical recordable formats can be defined for a recordable DVD:" +msgstr "" +"Для записываемого DVD можно определить пять физических форматов записи:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:811 +msgid "" +"DVD-R: This was the first DVD recordable format available. The DVD-R " +"standard is defined by the http://www.dvdforum.org/forum.shtml[DVD Forum]. " +"This format is write once." +msgstr "" +"DVD-R: Это первый доступный формат записываемых DVD. Стандарт DVD-R " +"определен http://www.dvdforum.org/forum.shtml[DVD Forum]. Этот формат " +"поддерживает однократную запись." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:812 +msgid "" +"DVD-RW: This is the rewritable version of the DVD-R standard. A DVD-RW can " +"be rewritten about 1000 times." +msgstr "" +"DVD-RW: Это перезаписываемая версия стандарта DVD-R. DVD-RW можно " +"перезаписывать около 1000 раз." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:816 +msgid "" +"DVD-RAM: This is a rewritable format which can be seen as a removable hard " +"drive. However, this media is not compatible with most DVD-ROM drives and " +"DVD-Video players as only a few DVD writers support the DVD-RAM format. " +"Refer to crossref:disks[creating-dvd-ram, Using a DVD-RAM] for more " +"information on DVD-RAM use." +msgstr "" +"DVD-RAM: Это перезаписываемый формат, который можно рассматривать как " +"съемный жесткий диск. Однако, этот носитель не совместим с большинством " +"приводов DVD-ROM и DVD-видеоплееров, так как лишь немногие DVD-рекордеры " +"поддерживают формат DVD-RAM. Дополнительную информацию об использовании DVD-" +"RAM см. в crossref:disks[creating-dvd-ram, Использование DVD-RAM]." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:817 +msgid "" +"DVD+RW: This is a rewritable format defined by the https://en.wikipedia.org/" +"wiki/DVD%2BRW_Alliance[DVD+RW Alliance]. A DVD+RW can be rewritten about " +"1000 times." +msgstr "" +"DVD+RW: Это перезаписываемый формат, определенный https://en.wikipedia.org/" +"wiki/DVD%2BRW_Alliance[альянсом DVD+RW Alliance]. DVD+RW можно " +"перезаписывать около 1000 раз." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:818 +msgid "DVD+R: This format is the write once variation of the DVD+RW format." +msgstr "" +"DVD+R: Этот формат является однократно записываемой разновидностью формата " +"DVD+RW." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:820 +msgid "" +"A single layer recordable DVD can hold up to 4,700,000,000 bytes which is " +"actually 4.38 GB or 4485 MB as 1 kilobyte is 1024 bytes." +msgstr "" +"Однослойный записываемый DVD может вместить до 4 700 000 000 байт, что " +"фактически составляет 4,38 ГБ или 4485 МБ, так как 1 килобайт равен 1024 " +"байтам." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:826 +msgid "" +"A distinction must be made between the physical media and the application. " +"For example, a DVD-Video is a specific file layout that can be written on " +"any recordable DVD physical media such as DVD-R, DVD+R, or DVD-RW. Before " +"choosing the type of media, ensure that both the burner and the DVD-Video " +"player are compatible with the media under consideration." +msgstr "" +"Необходимо различать физический носитель и приложение. Например, DVD-Video — " +"это определённая структура файлов, которую можно записать на любой " +"перезаписываемый DVD-носитель, такой как DVD-R, DVD+R или DVD-RW. Перед " +"выбором типа носителя убедитесь, что и записывающее устройство, и " +"проигрыватель DVD-Video поддерживают рассматриваемый носитель." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:828 +#, no-wrap +msgid "Configuration" +msgstr "Конфигурация" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:832 +msgid "" +"To perform DVD recording, use man:growisofs[1]. This command is part of the " +"package:sysutils/dvd+rw-tools[] utilities which support all DVD media types." +msgstr "" +"Для записи DVD используйте man:growisofs[1]. Эта команда входит в набор " +"утилит package:sysutils/dvd+rw-tools[], которые поддерживают все типы DVD-" +"носителей." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:837 +msgid "" +"These tools use the SCSI subsystem to access the devices, therefore " +"crossref:disks[atapicam,ATAPI/CAM support] must be loaded or statically " +"compiled into the kernel. This support is not needed if the burner uses the " +"USB interface. Refer to crossref:disks[usb-disks, USB Storage Devices] for " +"more details on USB device configuration." +msgstr "" +"Эти инструменты используют подсистему SCSI для доступа к устройствам, " +"поэтому поддержка crossref:disks[atapicam,ATAPI/CAM] должна быть загружена " +"или статически собрана в ядре. Эта поддержка не требуется, если устройство " +"записи использует интерфейс USB. Подробнее о настройке USB-устройств см. в " +"разделе crossref:disks[usb-disks,USB-накопители]." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:839 +msgid "" +"DMA access must also be enabled for ATAPI devices, by adding the following " +"line to [.filename]#/boot/loader.conf#:" +msgstr "" +"Доступ DMA также должен быть включен для устройств ATAPI, добавив следующую " +"строку в [.filename]#/boot/loader.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:843 +#: documentation/content/en/books/handbook/disks/_index.adoc:1076 +#, no-wrap +msgid "hw.ata.atapi_dma=\"1\"\n" +msgstr "hw.ata.atapi_dma=\"1\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:846 +msgid "" +"Before attempting to use dvd+rw-tools, consult the http://fy.chalmers.se/" +"~appro/linux/DVD+RW/hcn.html[Hardware Compatibility Notes]." +msgstr "" +"Перед попыткой использования dvd+rw-tools ознакомьтесь с http://" +"fy.chalmers.se/~appro/linux/DVD+RW/hcn.html[примечаниями о совместимости " +"оборудования]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:850 +msgid "" +"For a graphical user interface, consider using package:sysutils/k3b[] which " +"provides a user friendly interface to man:growisofs[1] and many other " +"burning tools." +msgstr "" +"Для графического интерфейса можно использовать пакет package:sysutils/k3b[], " +"который предоставляет удобный интерфейс к man:growisofs[1] и многим другим " +"инструментам записи." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:852 +#, no-wrap +msgid "Burning Data DVDs" +msgstr "Запись данных на DVD" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:856 +msgid "" +"Since man:growisofs[1] is a front-end to crossref:disks[mkisofs,mkisofs], it " +"will invoke man:mkisofs[8] to create the file system layout and perform the " +"write on the DVD. This means that an image of the data does not need to be " +"created before the burning process." +msgstr "" +"Поскольку man:growisofs[1] является интерфейсом для " +"crossref:disks[mkisofs,mkisofs], он вызывает man:mkisofs[8] для создания " +"структуры файловой системы и записи на DVD. Это означает, что нет " +"необходимости создавать образ данных перед процессом записи." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:858 +msgid "" +"To burn to a DVD+R or a DVD-R the data in [.filename]#/path/to/data#, use " +"the following command:" +msgstr "" +"Для записи данных из [.filename]#/path/to/data# на DVD+R или DVD-R " +"используйте следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:862 +#, no-wrap +msgid "# growisofs -dvd-compat -Z /dev/cd0 -J -R /path/to/data\n" +msgstr "# growisofs -dvd-compat -Z /dev/cd0 -J -R /path/to/data\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:866 +msgid "" +"In this example, `-J -R` is passed to man:mkisofs[8] to create an ISO 9660 " +"file system with Joliet and Rock Ridge extensions. Refer to man:mkisofs[8] " +"for more details." +msgstr "" +"В этом примере `-J -R` передаются в man:mkisofs[8] для создания файловой " +"системы ISO 9660 с расширениями Joliet и Rock Ridge. Подробности см. в " +"man:mkisofs[8]." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:871 +msgid "" +"For the initial session recording, `-Z` is used for both single and multiple " +"sessions. Replace _/dev/cd0_, with the name of the DVD device. Using `-dvd-" +"compat` indicates that the disk will be closed and that the recording will " +"be unappendable. This should also provide better media compatibility with " +"DVD-ROM drives." +msgstr "" +"Для начальной записи сессии используется параметр `-Z` как для одиночных, " +"так и для множественных сессий. Замените _/dev/cd0_ на имя устройства DVD. " +"Использование `-dvd-compat` указывает, что диск будет закрыт и запись нельзя " +"будет дополнять. Это также обеспечивает лучшую совместимость носителя с " +"приводами DVD-ROM." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:873 +msgid "To burn a pre-mastered image, such as _imagefile.iso_, use:" +msgstr "" +"Для записи предварительно созданного образа, например _imagefile.iso_, " +"используйте:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:877 +#, no-wrap +msgid "# growisofs -dvd-compat -Z /dev/cd0=imagefile.iso\n" +msgstr "# growisofs -dvd-compat -Z /dev/cd0=imagefile.iso\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:881 +msgid "" +"The write speed should be detected and automatically set according to the " +"media and the drive being used. To force the write speed, use `-speed=`. " +"Refer to man:growisofs[1] for example usage." +msgstr "" +"Скорость записи должна определяться и автоматически устанавливаться в " +"зависимости от носителя и используемого привода. Для принудительного задания " +"скорости записи используйте `-speed=`. Примеры использования см. в " +"man:growisofs[1]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:888 +msgid "" +"In order to support working files larger than 4.38GB, an UDF/ISO-9660 hybrid " +"file system must be created by passing `-udf -iso-level 3` to man:mkisofs[8] " +"and all related programs, such as man:growisofs[1]. This is required only " +"when creating an ISO image file or when writing files directly to a disk. " +"Since a disk created this way must be mounted as an UDF file system with " +"man:mount_udf[8], it will be usable only on an UDF aware operating system. " +"Otherwise it will look as if it contains corrupted files." +msgstr "" +"Для поддержки файлов размером более 4,38 ГБ необходимо создать гибридную " +"файловую систему UDF/ISO-9660, передав параметры `-udf -iso-level 3` в " +"man:mkisofs[8] и все связанные программы, например man:growisofs[1]. Это " +"требуется только при создании ISO-образа или записи файлов непосредственно " +"на диск. Поскольку диск, созданный таким образом, должен монтироваться как " +"файловая система UDF с помощью man:mount_udf[8], он будет доступен только в " +"операционных системах с поддержкой UDF. В противном случае файлы на диске " +"будут выглядеть повреждёнными." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:890 +msgid "To create this type of ISO file:" +msgstr "Чтобы создать ISO-файл такого типа:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:894 +#, no-wrap +msgid "% mkisofs -R -J -udf -iso-level 3 -o imagefile.iso /path/to/data\n" +msgstr "% mkisofs -R -J -udf -iso-level 3 -o imagefile.iso /path/to/data\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:897 +msgid "To burn files directly to a disk:" +msgstr "Для записи файлов непосредственно на диск:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:901 +#, no-wrap +msgid "# growisofs -dvd-compat -udf -iso-level 3 -Z /dev/cd0 -J -R /path/to/data\n" +msgstr "# growisofs -dvd-compat -udf -iso-level 3 -Z /dev/cd0 -J -R /path/to/data\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:904 +msgid "" +"When an ISO image already contains large files, no additional options are " +"required for man:growisofs[1] to burn that image on a disk." +msgstr "" +"Когда ISO-образ уже содержит большие файлы, для записи этого образа на диск " +"с помощью `growisofs` не требуется дополнительных параметров." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:907 +msgid "" +"Be sure to use an up-to-date version of package:sysutils/cdrtools[], which " +"contains man:mkisofs[8], as an older version may not contain large files " +"support. If the latest version does not work, install package:sysutils/" +"cdrtools-devel[] and read its man:mkisofs[8]." +msgstr "" +"Убедитесь, что используется актуальная версия package:sysutils/cdrtools[], " +"которая содержит man:mkisofs[8], так как более старая версия может не " +"поддерживать большие файлы. Если последняя версия не работает, установите " +"package:sysutils/cdrtools-devel[] и ознакомьтесь с его man:mkisofs[8]." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:909 +#, no-wrap +msgid "Burning a DVD-Video" +msgstr "Запись DVD-Video" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:913 +msgid "" +"A DVD-Video is a specific file layout based on the ISO 9660 and micro-UDF (M-" +"UDF) specifications. Since DVD-Video presents a specific data structure " +"hierarchy, a particular program such as package:multimedia/dvdauthor[] is " +"needed to author the DVD." +msgstr "" +"DVD-Video — это определённая структура файлов, основанная на спецификациях " +"ISO 9660 и микро-UDF (M-UDF). Поскольку DVD-Video представляет собой " +"конкретную иерархию структуры данных, для создания DVD требуется специальная " +"программа, например package:multimedia/dvdauthor[]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:916 +msgid "" +"If an image of the DVD-Video file system already exists, it can be burned in " +"the same way as any other image. If `dvdauthor` was used to make the DVD " +"and the result is in [.filename]#/path/to/video#, the following command " +"should be used to burn the DVD-Video:" +msgstr "" +"Если уже существует образ файловой системы DVD-Video, его можно записать так " +"же, как и любой другой образ. Если для создания DVD использовался " +"`dvdauthor` и результат находится в [.filename]#/path/to/video#, то для " +"записи DVD-Video следует использовать следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:920 +#, no-wrap +msgid "# growisofs -Z /dev/cd0 -dvd-video /path/to/video\n" +msgstr "# growisofs -Z /dev/cd0 -dvd-video /path/to/video\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:924 +msgid "" +"`-dvd-video` is passed to man:mkisofs[8] to instruct it to create a DVD-" +"Video file system layout. This option implies the `-dvd-compat` " +"man:growisofs[1] option." +msgstr "" +"`-dvd-video` передается в man:mkisofs[8], чтобы указать создать файловую " +"систему в формате DVD-Video. Эта опция подразумевает использование опции `-" +"dvd-compat` man:growisofs[1]." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:925 +#, no-wrap +msgid "Using a DVD+RW" +msgstr "Использование DVD+RW" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:930 +msgid "" +"Unlike CD-RW, a virgin DVD+RW needs to be formatted before first use. It is " +"_recommended_ to let man:growisofs[1] take care of this automatically " +"whenever appropriate. However, it is possible to use `dvd+rw-format` to " +"format the DVD+RW:" +msgstr "" +"В отличие от CD-RW, новая DVD+RW требует форматирования перед первым " +"использованием. _Рекомендуется_ позволить man:growisofs[1] автоматически " +"выполнить это, когда это уместно. Однако можно использовать `dvd+rw-format` " +"для форматирования DVD+RW:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:934 +#: documentation/content/en/books/handbook/disks/_index.adoc:1024 +#, no-wrap +msgid "# dvd+rw-format /dev/cd0\n" +msgstr "# dvd+rw-format /dev/cd0\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:938 +msgid "" +"Only perform this operation once and keep in mind that only virgin DVD+RW " +"medias need to be formatted. Once formatted, the DVD+RW can be burned as " +"usual." +msgstr "" +"Выполняйте эту операцию только один раз и помните, что форматировать нужно " +"только чистые носители DVD+RW. После форматирования DVD+RW можно записывать " +"как обычно." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:941 +msgid "" +"To burn a totally new file system and not just append some data onto a " +"DVD+RW, the media does not need to be blanked first. Instead, write over " +"the previous recording like this:" +msgstr "" +"Для записи совершенно новой файловой системы, а не просто добавления данных " +"на DVD+RW, не требуется предварительно очищать носитель. Вместо этого можно " +"перезаписать предыдущую запись следующим образом:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:945 +#, no-wrap +msgid "# growisofs -Z /dev/cd0 -J -R /path/to/newdata\n" +msgstr "# growisofs -Z /dev/cd0 -J -R /path/to/newdata\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:950 +msgid "" +"The DVD+RW format supports appending data to a previous recording. This " +"operation consists of merging a new session to the existing one as it is not " +"considered to be multi-session writing. man:growisofs[1] will _grow_ the " +"ISO 9660 file system present on the media." +msgstr "" +"Формат DVD+RW поддерживает добавление данных к предыдущей записи. Эта " +"операция заключается в объединении нового сеанса с существующим, так как это " +"не считается многосессионной записью. man:growisofs[1] будет _расширять_ " +"файловую систему ISO 9660, присутствующую на носителе." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:952 +msgid "For example, to append data to a DVD+RW, use the following:" +msgstr "" +"Например, чтобы добавить данные на DVD+RW, используйте следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:956 +#: documentation/content/en/books/handbook/disks/_index.adoc:1044 +#, no-wrap +msgid "# growisofs -M /dev/cd0 -J -R /path/to/nextdata\n" +msgstr "# growisofs -M /dev/cd0 -J -R /path/to/nextdata\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:959 +msgid "" +"The same man:mkisofs[8] options used to burn the initial session should be " +"used during next writes." +msgstr "" +"Те же параметры `man:mkisofs[8]`, которые использовались для записи " +"начальной сессии, следует применять при последующих записях." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:964 +msgid "" +"Use `-dvd-compat` for better media compatibility with DVD-ROM drives. When " +"using DVD+RW, this option will not prevent the addition of data." +msgstr "" +"Используйте `-dvd-compat` для лучшей совместимости носителя с приводами DVD-" +"ROM. При использовании DVD+RW эта опция не предотвращает добавление данных." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:967 +msgid "To blank the media, use:" +msgstr "Для очистки диска запустите:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:971 +#, no-wrap +msgid "# growisofs -Z /dev/cd0=/dev/zero\n" +msgstr "# growisofs -Z /dev/cd0=/dev/zero\n" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:973 +#, no-wrap +msgid "Using a DVD-RW" +msgstr "Использование DVD-RW" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:977 +msgid "" +"A DVD-RW accepts two disc formats: incremental sequential and restricted " +"overwrite. By default, DVD-RW discs are in sequential format." +msgstr "" +"DVD-RW поддерживает два формата дисков: инкрементальный последовательный и с " +"ограниченной перезаписью. По умолчанию диски DVD-RW имеют последовательный " +"формат." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:980 +msgid "" +"A virgin DVD-RW can be directly written without being formatted. However, a " +"non-virgin DVD-RW in sequential format needs to be blanked before writing a " +"new initial session." +msgstr "" +"Чистый DVD-RW можно записывать напрямую без форматирования. Однако DVD-RW в " +"последовательном формате, который уже использовался, необходимо очистить " +"перед записью нового начального сеанса." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:982 +msgid "To blank a DVD-RW in sequential mode:" +msgstr "Для очистки DVD-RW в последовательном режиме:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:986 +#: documentation/content/en/books/handbook/disks/_index.adoc:1031 +#, no-wrap +msgid "# dvd+rw-format -blank=full /dev/cd0\n" +msgstr "# dvd+rw-format -blank=full /dev/cd0\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:993 +msgid "" +"A full blanking using `-blank=full` will take about one hour on a 1x media. " +"A fast blanking can be performed using `-blank`, if the DVD-RW will be " +"recorded in Disk-At-Once (DAO) mode. To burn the DVD-RW in DAO mode, use " +"the command:" +msgstr "" +"Полное стирание с использованием `-blank=full` займет около одного часа для " +"однократной записи (1x). Быстрое стирание можно выполнить с помощью `-" +"blank`, если DVD-RW будет записываться в режиме Disk-At-Once (DAO). Для " +"записи DVD-RW в режиме DAO используйте команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:997 +#, no-wrap +msgid "# growisofs -use-the-force-luke=dao -Z /dev/cd0=imagefile.iso\n" +msgstr "# growisofs -use-the-force-luke=dao -Z /dev/cd0=imagefile.iso\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1000 +msgid "" +"Since man:growisofs[1] automatically attempts to detect fast blanked media " +"and engage DAO write, `-use-the-force-luke=dao` should not be required." +msgstr "" +"Поскольку man:growisofs[1] автоматически определяет быстро очищенные " +"носители и использует запись DAO, параметр `-use-the-force-luke=dao` не " +"требуется." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1002 +msgid "" +"One should instead use restricted overwrite mode with any DVD-RW as this " +"format is more flexible than the default of incremental sequential." +msgstr "" +"Следует использовать режим ограниченной перезаписи для любых DVD-RW, так как " +"этот формат более гибкий по сравнению со стандартным инкрементным " +"последовательным." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1005 +msgid "" +"To write data on a sequential DVD-RW, use the same instructions as for the " +"other DVD formats:" +msgstr "" +"Для записи данных на последовательную DVD-RW используйте те же инструкции, " +"что и для других форматов DVD:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1009 +#, no-wrap +msgid "# growisofs -Z /dev/cd0 -J -R /path/to/data\n" +msgstr "# growisofs -Z /dev/cd0 -J -R /path/to/data\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1013 +msgid "" +"To append some data to a previous recording, use `-M` with " +"man:growisofs[1]. However, if data is appended on a DVD-RW in incremental " +"sequential mode, a new session will be created on the disc and the result " +"will be a multi-session disc." +msgstr "" +"Чтобы добавить данные к предыдущей записи, используйте `-M` с " +"man:growisofs[1]. Однако если данные добавляются на DVD-RW в инкрементальном " +"последовательном режиме, на диске будет создана новая сессия, и в результате " +"получится многосессионный диск." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1018 +msgid "" +"A DVD-RW in restricted overwrite format does not need to be blanked before a " +"new initial session. Instead, overwrite the disc with `-Z`. It is also " +"possible to grow an existing ISO 9660 file system written on the disc with `-" +"M`. The result will be a one-session DVD." +msgstr "" +"DVD-RW в формате с ограниченной перезаписью не требует очистки перед " +"созданием новой начальной сессии. Вместо этого перезапишите диск с помощью `-" +"Z`. Также можно расширить существующую файловую систему ISO 9660, записанную " +"на диск, с помощью `-M`. Результатом будет односессионный DVD." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1020 +msgid "" +"To put a DVD-RW in restricted overwrite format, the following command must " +"be used:" +msgstr "" +"Чтобы перевести DVD-RW в формат ограниченной перезаписи, необходимо " +"использовать следующую команду:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1027 +msgid "To change back to sequential format, use:" +msgstr "Для возврата к последовательному формату используйте:" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1033 +#, no-wrap +msgid "Multi-Session" +msgstr "Многосеансовые диски" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1038 +msgid "" +"Few DVD-ROM drives support multi-session DVDs and most of the time only read " +"the first session. DVD+R, DVD-R and DVD-RW in sequential format can accept " +"multiple sessions. The notion of multiple sessions does not exist for the " +"DVD+RW and the DVD-RW restricted overwrite formats." +msgstr "" +"Немногие приводы DVD-ROM поддерживают многосеансовые DVD и в большинстве " +"случаев читают только первый сеанс. DVD+R, DVD-R и DVD-RW в последовательном " +"формате могут поддерживать несколько сеансов. Понятие множественных сеансов " +"отсутствует для форматов DVD+RW и DVD-RW с ограниченной перезаписью." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1040 +msgid "" +"Using the following command after an initial non-closed session on a DVD+R, " +"DVD-R, or DVD-RW in sequential format, will add a new session to the disc:" +msgstr "" +"Используя следующую команду после начального незакрытого сеанса на DVD+R, " +"DVD-R или DVD-RW в последовательном формате, можно добавить новый сеанс на " +"диск:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1049 +msgid "" +"Using this command with a DVD+RW or a DVD-RW in restricted overwrite mode " +"will append data while merging the new session to the existing one. The " +"result will be a single-session disc. Use this method to add data after an " +"initial write on these types of media." +msgstr "" +"Использование этой команды с DVD+RW или DVD-RW в режиме ограниченной " +"перезаписи приведет к добавлению данных с объединением нового сеанса с " +"существующим. В результате получится диск с одним сеансом. Используйте этот " +"метод для добавления данных после первоначальной записи на таких типах " +"носителей." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1054 +msgid "" +"Since some space on the media is used between each session to mark the end " +"and start of sessions, one should add sessions with a large amount of data " +"to optimize media space. The number of sessions is limited to 154 for a " +"DVD+R, about 2000 for a DVD-R, and 127 for a DVD+R Double Layer." +msgstr "" +"Поскольку некоторое пространство на носителе используется между каждым " +"сеансом для отметки конца и начала сеансов, следует добавлять сеансы с " +"большим объемом данных для оптимизации пространства на носителе. Количество " +"сеансов ограничено 154 для DVD+R, около 2000 для DVD-R и 127 для DVD+R " +"Double Layer." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1056 +#, no-wrap +msgid "For More Information" +msgstr "Для получения дополнительной информации" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1059 +msgid "" +"To obtain more information about a DVD, use `dvd+rw-mediainfo _/dev/cd0_` " +"while the disc in the specified drive." +msgstr "" +"Для получения дополнительной информации о DVD используйте команду `dvd+rw-" +"mediainfo _/dev/cd0_`, когда диск находится в указанном приводе." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1061 +msgid "" +"More information about dvd+rw-tools can be found in man:growisofs[1], on the " +"http://fy.chalmers.se/~appro/linux/DVD+RW/[dvd+rw-tools web site], and in " +"the http://lists.debian.org/cdwrite/[cdwrite mailing list] archives." +msgstr "" +"Дополнительная информация о dvd+rw-tools доступна в man:growisofs[1], на " +"http://fy.chalmers.se/~appro/linux/DVD+RW/[веб-сайте dvd+rw-tools] и в " +"архивах http://lists.debian.org/cdwrite/[почтовой рассылки cdwrite]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1065 +msgid "" +"When creating a problem report related to the use of dvd+rw-tools, always " +"include the output of `dvd+rw-mediainfo`." +msgstr "" +"При создании отчёта о проблеме, связанной с использованием dvd+rw-tools, " +"всегда прилагайте вывод команды `dvd+rw-mediainfo`." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1068 +#, no-wrap +msgid "Using a DVD-RAM" +msgstr "Использование DVD-RAM" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1072 +msgid "" +"DVD-RAM writers can use either a SCSI or ATAPI interface. For ATAPI " +"devices, DMA access has to be enabled by adding the following line to " +"[.filename]#/boot/loader.conf#:" +msgstr "" +"Записывающие устройства DVD-RAM могут использовать интерфейс SCSI или ATAPI. " +"Для устройств ATAPI необходимо включить доступ DMA, добавив следующую строку " +"в [.filename]#/boot/loader.conf#:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1081 +msgid "" +"A DVD-RAM can be seen as a removable hard drive. Like any other hard drive, " +"the DVD-RAM must be formatted before it can be used. In this example, the " +"whole disk space will be formatted with a standard UFS2 file system:" +msgstr "" +"DVD-RAM можно рассматривать как съемный жесткий диск. Как и любой другой " +"жесткий диск, DVD-RAM необходимо отформатировать перед использованием. В " +"этом примере все дисковое пространство будет отформатировано под стандартную " +"файловую систему UFS2:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1087 +#, no-wrap +msgid "" +"# dd if=/dev/zero of=/dev/acd0 bs=2k count=1\n" +"# bsdlabel -Bw acd0\n" +"# newfs /dev/acd0\n" +msgstr "" +"# dd if=/dev/zero of=/dev/acd0 bs=2k count=1\n" +"# bsdlabel -Bw acd0\n" +"# newfs /dev/acd0\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1090 +msgid "" +"The DVD device, [.filename]#acd0#, must be changed according to the " +"configuration." +msgstr "" +"Устройство DVD, [.filename]#acd0#, должно быть изменено в соответствии с " +"конфигурацией." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1092 +msgid "" +"Once the DVD-RAM has been formatted, it can be mounted as a normal hard " +"drive:" +msgstr "" +"После форматирования DVD-RAM его можно подключить как обычный жесткий диск:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1096 +#, no-wrap +msgid "# mount /dev/acd0 /mnt\n" +msgstr "# mount /dev/acd0 /mnt\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1099 +msgid "Once mounted, the DVD-RAM will be both readable and writeable." +msgstr "" +"После монтирования DVD-RAM будет доступен как для чтения, так и для записи." + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:1101 +#, no-wrap +msgid "Creating and Using Floppy Disks" +msgstr "Создание и использование дискет" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1104 +msgid "This section explains how to format a 3.5 inch floppy disk in FreeBSD." +msgstr "" +"Этот раздел объясняет, как отформатировать 3,5-дюймовую дискету в FreeBSD." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1108 +#, fuzzy +#| msgid "*Procedure: Steps to Format a Floppy*\n" +msgid "*Procedure: Steps to Format a Floppy*" +msgstr "*Процедура: Шаги для форматирования дискеты*\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1113 +msgid "" +"A floppy disk needs to be low-level formatted before it can be used. This " +"is usually done by the vendor, but formatting is a good way to check media " +"integrity. To low-level format the floppy disk on FreeBSD, use " +"man:fdformat[1]. When using this utility, make note of any error messages, " +"as these can help determine if the disk is good or bad." +msgstr "" +"Дискету необходимо отформатировать на низком уровне перед использованием. " +"Обычно это делается производителем, но форматирование — хороший способ " +"проверить целостность носителя. Для низкоуровневого форматирования дискеты в " +"FreeBSD используйте man:fdformat[1]. При работе с этой утилитой обратите " +"внимание на сообщения об ошибках, так как они помогают определить, исправен " +"диск или нет." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1115 +msgid "" +"To format the floppy, insert a new 3.5 inch floppy disk into the first " +"floppy drive and issue:" +msgstr "" +"Для форматирования дискеты вставьте новую дискету размером 3,5 дюйма в " +"первый дисковод и выполните команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1119 +#, no-wrap +msgid "# /usr/sbin/fdformat -f 1440 /dev/fd0\n" +msgstr "# /usr/sbin/fdformat -f 1440 /dev/fd0\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1122 +msgid "" +"After low-level formatting the disk, create a disk label as it is needed by " +"the system to determine the size of the disk and its geometry. The supported " +"geometry values are listed in [.filename]#/etc/disktab#." +msgstr "" +"После низкоуровневого форматирования диска создайте метку диска, так как она " +"необходима системе для определения размера диска и его геометрии. " +"Поддерживаемые значения геометрии перечислены в [.filename]#/etc/disktab#." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1124 +msgid "To write the disk label, use man:bsdlabel[8]:" +msgstr "Для записи метки диска используйте man:bsdlabel[8]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1128 +#, no-wrap +msgid "# /sbin/bsdlabel -B -w /dev/fd0 fd1440\n" +msgstr "# /sbin/bsdlabel -B -w /dev/fd0 fd1440\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1131 +msgid "" +"The floppy is now ready to be high-level formatted with a file system. The " +"floppy's file system can be either UFS or FAT, where FAT is generally a " +"better choice for floppies." +msgstr "" +"Дискета теперь готова для высокоуровневого форматирования с файловой " +"системой. Файловая система дискеты может быть UFS или FAT, причём FAT, как " +"правило, является лучшим выбором для дискет." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1133 +msgid "To format the floppy with FAT, issue:" +msgstr "Чтобы отформатировать дискету в FAT, выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1137 +#, no-wrap +msgid "# /sbin/newfs_msdos /dev/fd0\n" +msgstr "# /sbin/newfs_msdos /dev/fd0\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1143 +msgid "" +"The disk is now ready for use. To use the floppy, mount it with " +"man:mount_msdosfs[8]. One can also install and use package:emulators/" +"mtools[] from the Ports Collection." +msgstr "" +"Диск готов к использованию. Чтобы использовать дискету, смонтируйте её с " +"помощью man:mount_msdosfs[8]. Также можно установить и использовать " +"package:emulators/mtools[] из Коллекции портов." + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:1145 +#, no-wrap +msgid "Backup Basics" +msgstr "Основы резервного копирования" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1148 +msgid "" +"Implementing a backup plan is essential in order to have the ability to " +"recover from disk failure, accidental file deletion, random file corruption, " +"or complete machine destruction, including destruction of on-site backups." +msgstr "" +"Реализация плана резервного копирования необходима для возможности " +"восстановления после выхода диска из строя, случайного удаления файлов, " +"повреждения данных или полного уничтожения машины, включая уничтожение " +"локальных резервных копий." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1151 +msgid "" +"The backup type and schedule will vary, depending upon the importance of the " +"data, the granularity needed for file restores, and the amount of acceptable " +"downtime. Some possible backup techniques include:" +msgstr "" +"Тип резервного копирования и его расписание будут варьироваться в " +"зависимости от важности данных, необходимой детализации для восстановления " +"файлов и допустимого времени простоя. Некоторые возможные методы резервного " +"копирования включают:" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1153 +msgid "" +"Archives of the whole system, backed up onto permanent, off-site media. This " +"provides protection against all of the problems listed above, but is slow " +"and inconvenient to restore from, especially for non-privileged users." +msgstr "" +"Архивы всей системы, сохраненные на постоянных носителях вне площадки. Это " +"обеспечивает защиту от всех перечисленных выше проблем, но восстановление " +"происходит медленно и неудобно, особенно для непривилегированных " +"пользователей." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1154 +msgid "" +"File system snapshots, which are useful for restoring deleted files or " +"previous versions of files." +msgstr "" +"Снимки файловой системы, полезные для восстановления удалённых файлов или " +"предыдущих версий файлов." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1155 +msgid "" +"Copies of whole file systems or disks which are synchronized with another " +"system on the network using a scheduled package:net/rsync[]." +msgstr "" +"Копии целых файловых систем или дисков, которые синхронизируются с другой " +"системой в сети с использованием запланированного пакета:package:net/rsync[]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1156 +msgid "" +"Hardware or software RAID, which minimizes or avoids downtime when a disk " +"fails." +msgstr "" +"Аппаратный или программный RAID, который минимизирует или исключает простои " +"при отказе диска." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1160 +msgid "" +"Typically, a mix of backup techniques is used. For example, one could " +"create a schedule to automate a weekly, full system backup that is stored " +"off-site and to supplement this backup with hourly ZFS snapshots. In " +"addition, one could make a manual backup of individual directories or files " +"before making file edits or deletions." +msgstr "" +"Обычно используется комбинация методов резервного копирования. Например, " +"можно создать расписание для автоматического еженедельного полного " +"резервного копирования системы, которое хранится за пределами основной " +"площадки, и дополнить его ежечасными снимками ZFS. Кроме того, можно вручную " +"создавать резервные копии отдельных каталогов или файлов перед их " +"редактированием или удалением." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1162 +msgid "" +"This section describes some of the utilities which can be used to create and " +"manage backups on a FreeBSD system." +msgstr "" +"В этом разделе описаны некоторые утилиты, которые можно использовать для " +"создания резервных копий и управления ими в системе FreeBSD." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1163 +#, no-wrap +msgid "File System Backups" +msgstr "Резервное копирование файловой системы" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1169 +msgid "" +"The traditional UNIX(R) programs for backing up a file system are " +"man:dump[8], which creates the backup, and man:restore[8], which restores " +"the backup. These utilities work at the disk block level, below the " +"abstractions of the files, links, and directories that are created by file " +"systems. Unlike other backup software, `dump` backs up an entire file " +"system and is unable to backup only part of a file system or a directory " +"tree that spans multiple file systems. Instead of writing files and " +"directories, `dump` writes the raw data blocks that comprise files and " +"directories." +msgstr "" +"Традиционные программы UNIX(R) для резервного копирования файловой системы — " +"это man:dump[8], который создаёт резервную копию, и man:restore[8], который " +"восстанавливает данные из резервной копии. Эти утилиты работают на уровне " +"блоков диска, ниже абстракций файлов, ссылок и каталогов, создаваемых " +"файловыми системами. В отличие от другого программного обеспечения для " +"резервного копирования, `dump` создаёт резервную копию всей файловой системы " +"и не может сохранить только часть файловой системы или дерево каталогов, " +"расположенное на нескольких файловых системах. Вместо записи файлов и " +"каталогов `dump` записывает непосредственно блоки данных, из которых состоят " +"файлы и каталоги." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1173 +msgid "" +"If `dump` is used on the root directory, it will not back up [.filename]#/" +"home#, [.filename]#/usr#, or many other directories since these are " +"typically mount points for other file systems or symbolic links into those " +"file systems." +msgstr "" +"Если `dump` используется для корневого каталога, он не будет создавать " +"резервные копии для [.filename]#/home#, [.filename]#/usr# и многих других " +"каталогов, так как обычно они являются точками монтирования других файловых " +"систем или символическими ссылками на них." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1177 +msgid "" +"When used to restore data, `restore` stores temporary files in [.filename]#/" +"tmp/# by default. When using a recovery disk with a small [.filename]#/" +"tmp#, set `TMPDIR` to a directory with more free space for the restore to " +"succeed." +msgstr "" +"При восстановлении данных `restore` по умолчанию сохраняет временные файлы в " +"[.filename]#/tmp/#. Если используется диск восстановления с малым объемом " +"[.filename]#/tmp#, следует установить переменную `TMPDIR` в каталог с " +"большим свободным пространством для успешного выполнения восстановления." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1181 +msgid "" +"When using `dump`, be aware that some quirks remain from its early days in " +"Version 6 of AT&T UNIX(R),circa 1975. The default parameters assume a " +"backup to a 9-track tape, rather than to another type of media or to the " +"high-density tapes available today. These defaults must be overridden on " +"the command line." +msgstr "" +"При использовании `dump` следует учитывать, что некоторые особенности " +"остались с ранних времен версии 6 AT&T UNIX(R), примерно 1975 года. " +"Параметры по умолчанию предполагают резервное копирование на 9-дорожечную " +"магнитную ленту, а не на другой тип носителя или на современные " +"высокоплотные ленты. Эти значения по умолчанию необходимо переопределять в " +"командной строке." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1184 +msgid "" +"It is possible to backup a file system across the network to another system " +"or a tape drive attached to another computer. While the man:rdump[8] and " +"man:rrestore[8] utilities can be used for this purpose, they are not " +"considered to be secure." +msgstr "" +"Возможно выполнить резервное копирование файловой системы через сеть на " +"другую систему или на ленточный накопитель, подключенный к другому " +"компьютеру. Хотя для этого можно использовать утилиты man:rdump[8] и " +"man:rrestore[8], они не считаются безопасными." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1187 +msgid "" +"Instead, one can use `dump` and `restore` more securely over an SSH " +"connection. This example creates a full, compressed backup of [.filename]#/" +"usr# and sends the backup file to the specified host over an SSH connection." +msgstr "" +"Вместо этого можно более безопасно использовать `dump` и `restore` через SSH-" +"соединение. Этот пример создает полную сжатую резервную копию [.filename]#/" +"usr# и отправляет её на указанный хост через SSH-соединение." + +#. type: Block title +#: documentation/content/en/books/handbook/disks/_index.adoc:1188 +#, no-wrap +msgid "Using `dump` over ssh" +msgstr "Использование `dump` через ssh" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1195 +#, no-wrap +msgid "" +"# /sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \\\n" +" targetuser@targetmachine.example.com dd of=/mybigfiles/dump-usr-l0.gz\n" +msgstr "" +"# /sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \\\n" +" targetuser@targetmachine.example.com dd of=/mybigfiles/dump-usr-l0.gz\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1199 +msgid "" +"This example sets `RSH` in order to write the backup to a tape drive on a " +"remote system over an SSH connection:" +msgstr "" +"Этот пример устанавливает переменную окружения `RSH` для записи резервной " +"копии на ленточный накопитель в удалённой системе через SSH-соединение:" + +#. type: Block title +#: documentation/content/en/books/handbook/disks/_index.adoc:1200 +#, no-wrap +msgid "Using `dump` over ssh with `RSH` Set" +msgstr "Использование `dump` через ssh с установленной переменной `RSH`" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1206 +#, no-wrap +msgid "# env RSH=/usr/bin/ssh /sbin/dump -0uan -f targetuser@targetmachine.example.com:/dev/sa0 /usr\n" +msgstr "# env RSH=/usr/bin/ssh /sbin/dump -0uan -f targetuser@targetmachine.example.com:/dev/sa0 /usr\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1212 +msgid "" +"Systems using the crossref:zfs[,Z file system (ZFS)] can make use of " +"man:zfs[8] for creating snapshots, as well as crossref:zfs[zfs-zfs-" +"send,sending and receiving] them to/from remote systems." +msgstr "" +"Системы, использующие crossref:zfs[,файловую систему Z (ZFS)], могут " +"использовать man:zfs[8] для создания снимков, а также crossref:zfs[zfs-zfs-" +"send,их отправки и получения] на удалённые системы или с них." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1214 +#, no-wrap +msgid "Directory Backups" +msgstr "Резервное копирование каталогов" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1217 +msgid "" +"Several built-in utilities are available for backing up and restoring " +"specified files and directories as needed." +msgstr "" +"Некоторые встроенные утилиты могут делать резервное копирование и " +"восстановление указанных файлов и каталогов по мере необходимости." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1221 +msgid "" +"A good choice for making a backup of all of the files in a directory is " +"man:tar[1]. This utility dates back to Version 6 of AT&T UNIX(R) and by " +"default assumes a recursive backup to a local tape device. Switches can be " +"used to instead specify the name of a backup file." +msgstr "" +"Хорошим выбором для создания резервной копии всех файлов в каталоге является " +"man:tar[1]. Эта утилита появилась ещё в шестой версии AT&T UNIX(R) и по " +"умолчанию предполагает рекурсивное резервное копирование на локальное " +"ленточное устройство. С помощью ключей можно указать имя файла для резервной " +"копии." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1224 +msgid "" +"This example creates a compressed backup of the current directory and saves " +"it to [.filename]#/tmp/mybackup.tgz#. When creating a backup file, make " +"sure that the backup is not saved to the same directory that is being backed " +"up." +msgstr "" +"Этот пример создаёт сжатую резервную копию текущего каталога и сохраняет её " +"в [.filename]#/tmp/mybackup.tgz#. При создании резервной копии убедитесь, " +"что она не сохраняется в тот же каталог, который резервируется." + +#. type: Block title +#: documentation/content/en/books/handbook/disks/_index.adoc:1225 +#, no-wrap +msgid "Backing Up the Current Directory with `tar`" +msgstr "Резервное копирование текущего каталога с помощью `tar`" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1231 +#, no-wrap +msgid "# tar czvf /tmp/mybackup.tgz .\n" +msgstr "# tar czvf /tmp/mybackup.tgz .\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1237 +msgid "" +"To restore the entire backup, `cd` into the directory to restore into and " +"specify the name of the backup. Note that this will overwrite any newer " +"versions of files in the restore directory. When in doubt, restore to a " +"temporary directory or specify the name of the file within the backup to " +"restore." +msgstr "" +"Для восстановления всей резервной копии перейдите в каталог, в который нужно " +"восстановить данные, и укажите имя резервной копии. Обратите внимание, что " +"это перезапишет более новые версии файлов в каталоге восстановления. Если " +"есть сомнения, восстановите данные во временный каталог или укажите имя " +"файла внутри резервной копии для восстановления." + +#. type: Block title +#: documentation/content/en/books/handbook/disks/_index.adoc:1238 +#, no-wrap +msgid "Restoring Up the Current Directory with `tar`" +msgstr "Восстановление текущего каталога с помощью `tar`" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1244 +#, no-wrap +msgid "# tar xzvf /tmp/mybackup.tgz\n" +msgstr "# tar xzvf /tmp/mybackup.tgz\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1249 +msgid "" +"There are dozens of available switches which are described in man:tar[1]. " +"This utility also supports the use of exclude patterns to specify which " +"files should not be included when backing up the specified directory or " +"restoring files from a backup." +msgstr "" +"Существуют десятки доступных параметров, описанных в man:tar[1]. Эта утилита " +"также поддерживает использование шаблонов исключения для указания, какие " +"файлы не должны включаться при резервном копировании указанного каталога или " +"восстановлении файлов из резервной копии." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1252 +msgid "" +"To create a backup using a specified list of files and directories, " +"man:cpio[1] is a good choice. Unlike `tar`, `cpio` does not know how to " +"walk the directory tree and it must be provided the list of files to backup." +msgstr "" +"Для создания резервной копии с использованием указанного списка файлов и " +"каталогов подходит утилита man:cpio[1]. В отличие от `tar`, `cpio` не умеет " +"обходить дерево каталогов и требует предоставления списка файлов для " +"резервирования." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1255 +msgid "" +"For example, a list of files can be created using `ls` or `find`. This " +"example creates a recursive listing of the current directory which is then " +"piped to `cpio` in order to create an output backup file named [.filename]#/" +"tmp/mybackup.cpio#." +msgstr "" +"Например, список файлов можно создать с помощью `ls` или `find`. Этот пример " +"создаёт рекурсивный список текущего каталога, который затем передаётся в " +"`cpio` для создания резервной копии с именем [.filename]#/tmp/mybackup.cpio#." + +#. type: Block title +#: documentation/content/en/books/handbook/disks/_index.adoc:1256 +#, no-wrap +msgid "Using `ls` and `cpio` to Make a Recursive Backup of the Current Directory" +msgstr "Использование `ls` и `cpio` для создания рекурсивной резервной копии текущего каталога" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1262 +#, no-wrap +msgid "# ls -R | cpio -ovF /tmp/mybackup.cpio\n" +msgstr "# ls -R | cpio -ovF /tmp/mybackup.cpio\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1268 +msgid "" +"A backup utility which tries to bridge the features provided by `tar` and " +"`cpio` is man:pax[1]. Over the years, the various versions of `tar` and " +"`cpio` became slightly incompatible. POSIX(R) created `pax` which attempts " +"to read and write many of the various `cpio` and `tar` formats, plus new " +"formats of its own." +msgstr "" +"Утилита для резервного копирования, которая пытается объединить возможности, " +"предоставляемые `tar` и `cpio`, — это man:pax[1]. С течением времени " +"различные версии `tar` и `cpio` стали немного несовместимыми. POSIX(R) " +"создал `pax`, который пытается читать и записывать многие из различных " +"форматов `cpio` и `tar`, а также новые собственные форматы." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1270 +msgid "The `pax` equivalent to the previous examples would be:" +msgstr "Эквивалент `pax` для предыдущих примеров будет:" + +#. type: Block title +#: documentation/content/en/books/handbook/disks/_index.adoc:1271 +#, no-wrap +msgid "Backing Up the Current Directory with `pax`" +msgstr "Резервное копирование текущего каталога с помощью `pax`" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1277 +#, no-wrap +msgid "# pax -wf /tmp/mybackup.pax .\n" +msgstr "# pax -wf /tmp/mybackup.pax .\n" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1281 +#, no-wrap +msgid "Using Data Tapes for Backups" +msgstr "Использование магнитных лент для резервного копирования" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1286 +msgid "" +"While tape technology has continued to evolve, modern backup systems tend to " +"combine off-site backups with local removable media. FreeBSD supports any " +"tape drive that uses SCSI, such as LTO or DAT. There is limited support for " +"SATA and USB tape drives." +msgstr "" +"В то время как технология ленточных накопителей продолжает развиваться, " +"современные системы резервного копирования обычно сочетают удалённое " +"резервное копирование с локальными съёмными носителями. FreeBSD поддерживает " +"любые ленточные накопители, использующие SCSI, такие как LTO или DAT. " +"Поддержка SATA и USB ленточных накопителей ограничена." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1290 +msgid "" +"For SCSI tape devices, FreeBSD uses the man:sa[4] driver and the " +"[.filename]#/dev/sa0#, [.filename]#/dev/nsa0#, and [.filename]#/dev/esa0# " +"devices. The physical device name is [.filename]#/dev/sa0#. When " +"[.filename]#/dev/nsa0# is used, the backup application will not rewind the " +"tape after writing a file, which allows writing more than one file to a " +"tape. Using [.filename]#/dev/esa0# ejects the tape after the device is " +"closed." +msgstr "" +"Для SCSI-ленточных устройств FreeBSD использует драйвер man:sa[4] и " +"устройства [.filename]#/dev/sa0#, [.filename]#/dev/nsa0# и [.filename]#/dev/" +"esa0#. Физическое имя устройства — [.filename]#/dev/sa0#. При использовании " +"[.filename]#/dev/nsa0# программа резервного копирования не перематывает " +"ленту после записи файла, что позволяет записывать несколько файлов на одну " +"ленту. Использование [.filename]#/dev/esa0# приводит к извлечению ленты " +"после закрытия устройства." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1293 +msgid "" +"In FreeBSD, `mt` is used to control operations of the tape drive, such as " +"seeking through files on a tape or writing tape control marks to the tape. " +"For example, the first three files on a tape can be preserved by skipping " +"past them before writing a new file:" +msgstr "" +"В FreeBSD `mt` используется для управления операциями ленточного накопителя, " +"например, для поиска файлов на ленте или записи управляющих меток на ленту. " +"Например, первые три файла на ленте можно сохранить, пропустив их перед " +"записью нового файла:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1297 +#, no-wrap +msgid "# mt -f /dev/nsa0 fsf 3\n" +msgstr "# mt -f /dev/nsa0 fsf 3\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1300 +msgid "This utility supports many operations. Refer to man:mt[1] for details." +msgstr "" +"Эта утилита поддерживает множество операций. Подробности смотрите в " +"man:mt[1]." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1302 +msgid "" +"To write a single file to tape using `tar`, specify the name of the tape " +"device and the file to backup:" +msgstr "" +"Для записи одного файла на ленту с помощью `tar` укажите имя устройства " +"ленты и файл для резервного копирования:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1306 +#, no-wrap +msgid "# tar cvf /dev/sa0 file\n" +msgstr "# tar cvf /dev/sa0 file\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1309 +msgid "" +"To recover files from a `tar` archive on tape into the current directory:" +msgstr "Для восстановления файлов из архива `tar` на ленте в текущий каталог:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1313 +#, no-wrap +msgid "# tar xvf /dev/sa0\n" +msgstr "# tar xvf /dev/sa0\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1317 +msgid "" +"To backup a UFS file system, use `dump`. This examples backs up " +"[.filename]#/usr# without rewinding the tape when finished:" +msgstr "" +"Для резервного копирования файловой системы UFS используйте `dump`. В этом " +"примере выполняется резервное копирование [.filename]#/usr# без перемотки " +"ленты по завершении:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1321 +#, no-wrap +msgid "# dump -0aL -b64 -f /dev/nsa0 /usr\n" +msgstr "# dump -0aL -b64 -f /dev/nsa0 /usr\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1324 +msgid "" +"To interactively restore files from a `dump` file on tape into the current " +"directory:" +msgstr "" +"Для интерактивного восстановления файлов из файла `dump` на ленте в текущий " +"каталог:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1328 +#, no-wrap +msgid "# restore -i -f /dev/nsa0\n" +msgstr "# restore -i -f /dev/nsa0\n" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1331 +#, no-wrap +msgid "Third-Party Backup Utilities" +msgstr "Сторонние утилиты резервного копирования" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1335 +msgid "" +"The FreeBSD Ports Collection provides many third-party utilities which can " +"be used to schedule the creation of backups, simplify tape backup, and make " +"backups easier and more convenient. Many of these applications are client/" +"server based and can be used to automate the backups of a single system or " +"all of the computers in a network." +msgstr "" +"Коллекция портов FreeBSD предоставляет множество сторонних утилит, которые " +"можно использовать для планирования создания резервных копий, упрощения " +"резервного копирования на ленточные накопители, а также для повышения " +"удобства и простоты этого процесса. Многие из этих приложений работают по " +"принципу клиент-сервер и позволяют автоматизировать резервное копирование " +"как отдельной системы, так и всех компьютеров в сети." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1337 +msgid "Popular utilities include:" +msgstr "Популярные утилиты включают:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1339 +msgid "Amanda (package:misc/amanda-server[] and package:misc/amanda-client[])," +msgstr "Amanda (package:misc/amanda-server[] и package:misc/amanda-client[])," + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1340 +msgid "" +"Bacula (package:sysutils/bacula13-server[] and package:sysutils/bacula13-" +"client[])," +msgstr "" +"Bacula (package:sysutils/bacula13-server[] и package:sysutils/bacula13-" +"client[])," + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1341 +msgid "" +"Bareos (package:sysutils/bareos-server[] and package:sysutils/bareos-" +"client[])," +msgstr "" +"Bareos (package:sysutils/bareos-server[] и package:sysutils/bareos-client[])," + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1342 +msgid "package:net/rsync[]," +msgstr "package:net/rsync[]," + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1343 +msgid "package:sysutils/duply[], and" +msgstr "package:sysutils/duply[], и" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1344 +msgid "package:sysutils/duplicity[]." +msgstr "package:sysutils/duplicity[]." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1345 +#, no-wrap +msgid "Emergency Recovery" +msgstr "Процедура восстановления при сбое" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1348 +msgid "" +"In addition to regular backups, it is recommended to perform the following " +"steps as part of an emergency preparedness plan." +msgstr "" +"В дополнение к регулярному резервному копированию рекомендуется выполнить " +"следующие шаги в рамках плана подготовки к чрезвычайным ситуациям." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1350 +msgid "Create a print copy of the output of the following commands:" +msgstr "Создайте печатную копию вывода следующих команд:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1352 +msgid "`gpart show`" +msgstr "`gpart show`" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1353 +msgid "`more /etc/fstab`" +msgstr "`more /etc/fstab`" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1354 +msgid "`pkg prime-list`" +msgstr "`pkg prime-list`" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1355 +msgid "`dmesg`" +msgstr "`dmesg`" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1359 +msgid "" +"Store this printout and a copy of the installation media in a secure " +"location. Should an emergency restore be needed, boot into the installation " +"media and select `Live CD` to access a rescue shell. This rescue mode can " +"be used to view the current state of the system, and if needed, to reformat " +"disks and restore data from backups." +msgstr "" +"Сохраните эту распечатку и копию установочного носителя в надежном месте. В " +"случае необходимости аварийного восстановления загрузитесь с установочного " +"носителя и выберите `Live CD` для доступа к оболочке-спасателю — режиму " +"аварийного восстановления. Этот режим восстановления можно использовать для " +"просмотра текущего состояния системы и, при необходимости, для переразметки " +"дисков и восстановления данных из резервных копий." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1364 +msgid "" +"Next, test the rescue shell and the backups. Make notes of the procedure. " +"Store these notes with the media, the printouts, and the backups. These " +"notes may prevent the inadvertent destruction of the backups while under the " +"stress of performing an emergency recovery." +msgstr "" +"Затем протестируйте аварийную оболочку и резервные копии. Задокументируйте " +"процедуру. Храните эти записи вместе с носителями, распечатками и резервными " +"копиями. Эти заметки могут предотвратить случайное уничтожение резервных " +"копий в стрессовой ситуации во время аварийного восстановления." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1366 +msgid "" +"For an added measure of security, store the latest backup at a remote " +"location which is physically separated from the computers and disk drives by " +"a significant distance." +msgstr "" +"Для дополнительной безопасности храните последнюю резервную копию в " +"удалённом месте, физически отделённом от компьютеров и дисков на " +"значительное расстояние." + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:1368 +#, no-wrap +msgid "Memory Disks" +msgstr "Диски в памяти" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1372 +msgid "" +"In addition to physical disks, FreeBSD also supports the creation and use of " +"memory disks. One possible use for a memory disk is to access the contents " +"of an ISO file system without the overhead of first burning it to a CD or " +"DVD, then mounting the CD/DVD media." +msgstr "" +"В дополнение к физическим дискам FreeBSD также поддерживает создание и " +"использование RAM-дисков. Один из возможных вариантов применения RAM-диска — " +"доступ к содержимому файловой системы ISO без необходимости предварительной " +"записи на CD или DVD с последующим монтированием CD/DVD-носителя." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1376 +msgid "" +"In FreeBSD, the man:md[4] driver is used to provide support for memory " +"disks. The [.filename]#GENERIC# kernel includes this driver. When using a " +"custom kernel configuration file, ensure it includes this line:" +msgstr "" +"В FreeBSD драйвер man:md[4] используется для поддержки дисков в памяти. Ядро " +"[.filename]#GENERIC# включает этот драйвер. При использовании " +"пользовательского конфигурационного файла ядра убедитесь, что он содержит " +"следующую строку:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1380 +#, no-wrap +msgid "device md\n" +msgstr "device md\n" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1383 +#, no-wrap +msgid "Attaching and Detaching Existing Images" +msgstr "Присоединение и отсоединение существующих образов" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1389 +msgid "" +"To mount an existing file system image, use `mdconfig` to specify the name " +"of the ISO file and a free unit number. Then, refer to that unit number to " +"mount it on an existing mount point. Once mounted, the files in the ISO " +"will appear in the mount point. This example attaches _diskimage.iso_ to " +"the memory device [.filename]#/dev/md0# then mounts that memory device on " +"[.filename]#/mnt#:" +msgstr "" +"Для подключения существующего образа файловой системы используйте " +"`mdconfig`, указав имя файла ISO и свободный номер устройства. Затем, " +"используя этот номер устройства, подключите его к существующей точке " +"монтирования. После подключения файлы из ISO будут доступны в точке " +"монтирования. В этом примере _diskimage.iso_ подключается к устройству в " +"памяти [.filename]#/dev/md0#, которое затем монтируется в [.filename]#/mnt#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1394 +#, no-wrap +msgid "" +"# mdconfig -f diskimage.iso -u 0\n" +"# mount -t cd9660 /dev/md0 /mnt\n" +msgstr "" +"# mdconfig -f diskimage.iso -u 0\n" +"# mount -t cd9660 /dev/md0 /mnt\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1399 +msgid "" +"Notice that `-t cd9660` was used to mount an ISO format. If a unit number " +"is not specified with `-u`, `mdconfig` will automatically allocate an unused " +"memory device and output the name of the allocated unit, such as " +"[.filename]#md4#. Refer to man:mdconfig[8] for more details about this " +"command and its options." +msgstr "" +"Обратите внимание, что `-t cd9660` был использован для монтирования формата " +"ISO. Если номер устройства не указан с помощью `-u`, `mdconfig` " +"автоматически выделит неиспользуемый диск в памяти и выведет имя выделенного " +"устройства, например, [.filename]#md4#. Дополнительные сведения о данной " +"команде и её параметрах можно найти в man:mdconfig[8]." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1403 +msgid "" +"When a memory disk is no longer in use, its resources should be released " +"back to the system. First, unmount the file system, then use `mdconfig` to " +"detach the disk from the system and release its resources. To continue this " +"example:" +msgstr "" +"Когда диск в памяти больше не используется, его ресурсы должны быть " +"возвращены обратно системе. Сначала размонтируйте файловую систему, затем " +"используйте `mdconfig` для отключения диска от системы и освобождения его " +"ресурсов. Чтобы продолжить этот пример:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1408 +#, no-wrap +msgid "" +"# umount /mnt\n" +"# mdconfig -d -u 0\n" +msgstr "" +"# umount /mnt\n" +"# mdconfig -d -u 0\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1411 +msgid "" +"To determine if any memory disks are still attached to the system, type " +"`mdconfig -l`." +msgstr "" +"Чтобы определить, подключены ли к системе какие-либо диски в памяти, введите " +"`mdconfig -l`." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1413 +#, no-wrap +msgid "Creating a File- or Memory-Backed Memory Disk" +msgstr "Создание диска в памяти на основе файла или памяти" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1418 +msgid "" +"FreeBSD also supports memory disks where the storage to use is allocated " +"from either a hard disk or an area of memory. The first method is commonly " +"referred to as a file-backed file system and the second method as a memory-" +"backed file system. Both types can be created using `mdconfig`." +msgstr "" +"FreeBSD также поддерживает диски в памяти, где хранилище выделяется либо с " +"жёсткого диска, либо из области памяти. Первый метод обычно называют " +"файловой системой на основе файла, а второй — файловой системой на основе " +"памяти. Оба типа можно создать с помощью `mdconfig`." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1423 +msgid "" +"To create a new memory-backed file system, specify a type of `swap` and the " +"size of the memory disk to create. Then, format the memory disk with a file " +"system and mount as usual. This example creates a 5M memory disk on unit " +"`1`. That memory disk is then formatted with the UFS file system before it " +"is mounted:" +msgstr "" +"Для создания новой файловой системы в памяти укажите тип `swap` и размер " +"создаваемого диска в памяти. Затем отформатируйте диск в памяти файловой " +"системой и смонтируйте его как обычно. В этом примере создаётся диск в " +"памяти размером 5M на устройстве `1`. Этот диск в памяти затем форматируется " +"файловой системой UFS перед монтированием:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1437 +#, no-wrap +msgid "" +"# mdconfig -a -t swap -s 5m -u 1\n" +"# newfs -U md1\n" +"/dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048\n" +" using 4 cylinder groups of 1.27MB, 81 blks, 192 inodes.\n" +" with soft updates\n" +"super-block backups (for fsck -b #) at:\n" +" 160, 2752, 5344, 7936\n" +"# mount /dev/md1 /mnt\n" +"# df /mnt\n" +"Filesystem 1K-blocks Used Avail Capacity Mounted on\n" +"/dev/md1 4718 4 4338 0% /mnt\n" +msgstr "" +"# mdconfig -a -t swap -s 5m -u 1\n" +"# newfs -U md1\n" +"/dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048\n" +" using 4 cylinder groups of 1.27MB, 81 blks, 192 inodes.\n" +" with soft updates\n" +"super-block backups (for fsck -b #) at:\n" +" 160, 2752, 5344, 7936\n" +"# mount /dev/md1 /mnt\n" +"# df /mnt\n" +"Filesystem 1K-blocks Used Avail Capacity Mounted on\n" +"/dev/md1 4718 4 4338 0% /mnt\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1441 +msgid "" +"To create a new file-backed memory disk, first allocate an area of disk to " +"use. This example creates an empty 5MB file named [.filename]#newimage#:" +msgstr "" +"Чтобы создать новый файловый диск в памяти, сначала выделите область на " +"диске для использования. В этом примере создается пустой файл размером 5 МБ " +"с именем [.filename]#newimage#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1447 +#, no-wrap +msgid "" +"# dd if=/dev/zero of=newimage bs=1k count=5k\n" +"5120+0 records in\n" +"5120+0 records out\n" +msgstr "" +"# dd if=/dev/zero of=newimage bs=1k count=5k\n" +"5120+0 records in\n" +"5120+0 records out\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1450 +msgid "" +"Next, attach that file to a memory disk, label the memory disk and format it " +"with the UFS file system, mount the memory disk, and verify the size of the " +"file-backed disk:" +msgstr "" +"Затем подключите этот файл к диску в памяти, создайте метку диска и " +"отформатируйте его с файловой системой UFS, смонтируйте диск в памяти и " +"проверьте размер диска на основе файла:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1464 +#, no-wrap +msgid "" +"# mdconfig -f newimage -u 0\n" +"# bsdlabel -w md0 auto\n" +"# newfs -U md0a\n" +"/dev/md0a: 5.0MB (10224 sectors) block size 16384, fragment size 2048\n" +" using 4 cylinder groups of 1.25MB, 80 blks, 192 inodes.\n" +"super-block backups (for fsck -b #) at:\n" +" 160, 2720, 5280, 7840\n" +"# mount /dev/md0a /mnt\n" +"# df /mnt\n" +"Filesystem 1K-blocks Used Avail Capacity Mounted on\n" +"/dev/md0a 4710 4 4330 0% /mnt\n" +msgstr "" +"# mdconfig -f newimage -u 0\n" +"# bsdlabel -w md0 auto\n" +"# newfs -U md0a\n" +"/dev/md0a: 5.0MB (10224 sectors) block size 16384, fragment size 2048\n" +" using 4 cylinder groups of 1.25MB, 80 blks, 192 inodes.\n" +"super-block backups (for fsck -b #) at:\n" +" 160, 2720, 5280, 7840\n" +"# mount /dev/md0a /mnt\n" +"# df /mnt\n" +"Filesystem 1K-blocks Used Avail Capacity Mounted on\n" +"/dev/md0a 4710 4 4330 0% /mnt\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1469 +msgid "" +"It takes several commands to create a file- or memory-backed file system " +"using `mdconfig`. FreeBSD also comes with `mdmfs` which automatically " +"configures a memory disk, formats it with the UFS file system, and mounts " +"it. For example, after creating _newimage_ with `dd`, this one command is " +"equivalent to running the `bsdlabel`, `newfs`, and `mount` commands shown " +"above:" +msgstr "" +"Для создания файловой системы на основе файла или оперативной памяти с " +"помощью `mdconfig` требуется выполнить несколько команд. В FreeBSD также " +"доступна утилита `mdmfs`, которая автоматически настраивает диск в памяти, " +"форматирует его с файловой системой UFS и монтирует. Например, после " +"создания образа _newimage_ с помощью `dd`, следующая команда эквивалентна " +"выполнению команд `bsdlabel`, `newfs` и `mount`, приведённых выше:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1473 +#, no-wrap +msgid "# mdmfs -F newimage -s 5m md0 /mnt\n" +msgstr "# mdmfs -F newimage -s 5m md0 /mnt\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1476 +msgid "" +"To instead create a new memory-based memory disk with `mdmfs`, use this one " +"command:" +msgstr "" +"Чтобы вместо этого создать новый диск в памяти на основе оперативной памяти " +"с помощью `mdmfs`, используйте следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1480 +#, no-wrap +msgid "# mdmfs -s 5m md1 /mnt\n" +msgstr "# mdmfs -s 5m md1 /mnt\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1484 +msgid "" +"If the unit number is not specified, `mdmfs` will automatically select an " +"unused memory device. For more details about `mdmfs`, refer to man:mdmfs[8]." +msgstr "" +"Если номер устройства не указан, `mdmfs` автоматически выберет " +"неиспользуемое устройство памяти. Подробнее о `mdmfs` см. в man:mdmfs[8]." + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:1486 +#, no-wrap +msgid "File System Snapshots" +msgstr "Снимки файловой системы" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1489 +msgid "" +"FreeBSD offers a feature in conjunction with crossref:config[soft-" +"updates,Soft Updates]: file system snapshots." +msgstr "" +"FreeBSD предлагает функцию в сочетании с crossref:config[soft-" +"updates,мягкими обновлениями]: создание снимков файловой системы." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1491 +msgid "" +"UFS snapshots allow a user to create images of specified file systems, and " +"treat them as a file. If you are using the crossref:zfs[,Z file system " +"(ZFS)], refer to crossref:zfs[zfs-zfs-snapshot,\"Managing Snapshots\"] on " +"how to use snapshots." +msgstr "" +"Снимки UFS позволяют пользователю создавать образы указанных файловых систем " +"и работать с ними как с файлами. Если вы используете crossref:zfs[,файловую " +"систему Z (ZFS)], обратитесь к crossref:zfs[zfs-zfs-snapshot,\"Управление " +"снимками\"] для получения информации об использовании снимков." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1496 +msgid "" +"Snapshot files must be created in the file system that the action is " +"performed on, and a user may create no more than 20 snapshots per file " +"system. Active snapshots are recorded in the superblock so they are " +"persistent across unmount and remount operations along with system reboots. " +"When a snapshot is no longer required, it can be removed using man:rm[1]. " +"While snapshots may be removed in any order, all the used space may not be " +"acquired because another snapshot will possibly claim some of the released " +"blocks." +msgstr "" +"Файлы снимков должны быть созданы в той файловой системе, над которой " +"выполняется действие, и пользователь может создать не более 20 снимков для " +"каждой файловой системы. Активные снимки записываются в суперблок, поэтому " +"они сохраняются после размонтирования и повторного монтирования, а также " +"после перезагрузки системы. Когда снимок больше не нужен, его можно удалить " +"с помощью man:rm[1]. Хотя снимки можно удалять в любом порядке, не все " +"освобождаемое пространство может быть использовано, так как другой снимок " +"может претендовать на часть освобожденных блоков." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1499 +msgid "" +"The un-alterable `snapshot` file flag is set by man:mksnap_ffs[8] after " +"initial creation of a snapshot file. man:unlink[1] makes an exception for " +"snapshot files since it allows them to be removed." +msgstr "" +"Неизменяемый флаж файла `snapshot` устанавливается man:mksnap_ffs[8] после " +"первоначального создания файла снимка. man:unlink[1] делает исключение для " +"файлов снимков, так как позволяет их удалять." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1502 +msgid "" +"Snapshots are created using man:mount[8]. To place a snapshot of " +"[.filename]#/var# in the file [.filename]#/var/snapshot/snap#, use the " +"following command:" +msgstr "" +"Снимки создаются с помощью man:mount[8]. Чтобы создать снимок [.filename]#/" +"var# в файле [.filename]#/var/snapshot/snap#, используйте следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1506 +#, no-wrap +msgid "# mount -u -o snapshot /var/snapshot/snap /var\n" +msgstr "# mount -u -o snapshot /var/snapshot/snap /var\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1509 +msgid "Alternatively, use man:mksnap_ffs[8] to create the snapshot:" +msgstr "Или используйте man:mksnap_ffs[8] для создания снимка:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1513 +#, no-wrap +msgid "# mksnap_ffs /var /var/snapshot/snap\n" +msgstr "# mksnap_ffs /var /var/snapshot/snap\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1516 +msgid "" +"One can find snapshot files on a file system, such as [.filename]#/var#, " +"using man:find[1]:" +msgstr "" +"Файлы снимков можно найти в файловой системе, например, в [.filename]#/var#, " +"с помощью man:find[1]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1520 +#, no-wrap +msgid "# find /var -flags snapshot\n" +msgstr "# find /var -flags snapshot\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1523 +msgid "Once a snapshot has been created, it has several uses:" +msgstr "" +"После создания моментального снимка он может быть использован несколькими " +"способами:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1525 +msgid "" +"Some administrators will use a snapshot file for backup purposes, because " +"the snapshot can be transferred to CDs or tape." +msgstr "" +"Некоторые администраторы используют файл снимка для резервного копирования, " +"так как снимок можно перенести на компакт-диски или магнитные ленты." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1526 +msgid "" +"The file system integrity checker, man:fsck[8], may be run on the snapshot. " +"Assuming that the file system was clean when it was mounted, this should " +"always provide a clean and unchanging result." +msgstr "" +"Проверка целостности файловой системы, man:fsck[8], может быть запущена на " +"снимке. При условии, что файловая система была чистой на момент " +"монтирования, результат всегда должен быть чистым и неизменным." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1527 +msgid "" +"Running man:dump[8] on the snapshot will produce a dump file that is " +"consistent with the file system and the timestamp of the snapshot. " +"man:dump[8] can also take a snapshot, create a dump image, and then remove " +"the snapshot in one command by using `-L`." +msgstr "" +"Запуск man:dump[8] на снимке создаст дамп-файл, согласованный с файловой " +"системой и временной меткой снимка. man:dump[8] также может создать снимок, " +"создать образ дампа и затем удалить снимок одной командой, используя опцию `-" +"L`." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1528 +msgid "" +"The snapshot can be mounted as a frozen image of the file system. To " +"man:mount[8] the snapshot [.filename]#/var/snapshot/snap# run:" +msgstr "" +"Снимок может быть смонтирован как замороженный образ файловой системы. Для " +"монтирования снимка [.filename]#/var/snapshot/snap# выполните команду " +"man:mount[8]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1533 +#, no-wrap +msgid "" +"# mdconfig -a -t vnode -o readonly -f /var/snapshot/snap -u 4\n" +"# mount -r /dev/md4 /mnt\n" +msgstr "" +"# mdconfig -a -t vnode -o readonly -f /var/snapshot/snap -u 4\n" +"# mount -r /dev/md4 /mnt\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1539 +msgid "" +"The frozen [.filename]#/var# is now available through [.filename]#/mnt#. " +"Everything will initially be in the same state it was during the snapshot " +"creation time. The only exception is that any earlier snapshots will appear " +"as zero length files. To unmount the snapshot, use:" +msgstr "" +"Замороженный [.filename]#/var# теперь доступен через [.filename]#/mnt#. Все " +"изначально будет находиться в том же состоянии, в котором было на момент " +"создания снимка. Единственное исключение — любые предыдущие снимки будут " +"отображаться как файлы нулевой длины. Чтобы отмонтировать снимок, " +"используйте:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1544 +#, no-wrap +msgid "" +"# umount /mnt\n" +"# mdconfig -d -u 4\n" +msgstr "" +"# umount /mnt\n" +"# mdconfig -d -u 4\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1547 +msgid "" +"For more information about `softupdates` and file system snapshots, " +"including technical papers, visit Marshall Kirk McKusick's website at http://" +"www.mckusick.com/[http://www.mckusick.com/]." +msgstr "" +"Для получения дополнительной информации о `softupdates` и снимках файловых " +"систем, включая технические документы, посетите веб-сайт Маршалла Кирка " +"Маккусика по адресу http://www.mckusick.com/[http://www.mckusick.com/]." + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:1549 +#, no-wrap +msgid "Disk Quotas" +msgstr "Квоты на диске" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1553 +msgid "" +"Disk quotas can be used to limit the amount of disk space or the number of " +"files a user or members of a group may allocate on a per-file system basis. " +"This prevents one user or group of users from consuming all of the available " +"disk space." +msgstr "" +"Дисковые квоты могут использоваться для ограничения объёма дискового " +"пространства или количества файлов, которые пользователь или члены группы " +"могут выделить в рамках одной файловой системы. Это предотвращает ситуацию, " +"когда один пользователь или группа пользователей потребляет всё доступное " +"дисковое пространство." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1556 +msgid "" +"This section describes how to configure disk quotas for the UFS file " +"system. To configure quotas on the ZFS file system, refer to " +"crossref:zfs[zfs-zfs-quota,\"Dataset, User, and Group Quotas\"]" +msgstr "" +"Этот раздел описывает, как настроить квоты дисков для файловой системы UFS. " +"Для настройки квот в файловой системе ZFS обратитесь к crossref:zfs[zfs-zfs-" +"quota,\"Квоты наборов данных, пользователей и групп\"]" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1557 +#, no-wrap +msgid "Enabling Disk Quotas" +msgstr "Включение квот на диске" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1560 +msgid "To determine if the FreeBSD kernel provides support for disk quotas:" +msgstr "" +"Чтобы определить, поддерживает ли ядро FreeBSD квоты дискового пространства:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1565 +#, no-wrap +msgid "" +"% sysctl kern.features.ufs_quota\n" +"kern.features.ufs_quota: 1\n" +msgstr "" +"% sysctl kern.features.ufs_quota\n" +"kern.features.ufs_quota: 1\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1569 +msgid "" +"In this example, the `1` indicates quota support. If the value is instead " +"`0`, add the following line to a custom kernel configuration file and " +"rebuild the kernel using the instructions in " +"crossref:kernelconfig[kernelconfig,Configuring the FreeBSD Kernel]:" +msgstr "" +"В этом примере `1` указывает на поддержку квот. Если значение равно `0`, " +"добавьте следующую строку в файл конфигурации собственного ядра и " +"пересоберите ядро, используя инструкции из " +"crossref:kernelconfig[kernelconfig,Настройка ядра FreeBSD]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1573 +#, no-wrap +msgid "options QUOTA\n" +msgstr "options QUOTA\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1576 +msgid "Next, enable disk quotas in [.filename]#/etc/rc.conf#:" +msgstr "Далее включите квоты на диски в [.filename]#/etc/rc.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1580 +#, no-wrap +msgid "quota_enable=\"YES\"\n" +msgstr "quota_enable=\"YES\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1586 +msgid "" +"Normally on bootup, the quota integrity of each file system is checked by " +"man:quotacheck[8]. This program insures that the data in the quota database " +"properly reflects the data on the file system. This is a time consuming " +"process that will significantly affect the time the system takes to boot. " +"To skip this step, add this variable to [.filename]#/etc/rc.conf#:" +msgstr "" +"Обычно при загрузке проверяется целостность квот для каждой файловой системы " +"с помощью man:quotacheck[8]. Эта программа гарантирует, что данные в базе " +"квот соответствуют данным в файловой системе. Это трудоёмкий процесс, " +"который может значительно увеличить время загрузки системы. Чтобы пропустить " +"этот шаг, добавьте следующую переменную в [.filename]#/etc/rc.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1590 +#, no-wrap +msgid "check_quotas=\"NO\"\n" +msgstr "check_quotas=\"NO\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1595 +msgid "" +"Finally, edit [.filename]#/etc/fstab# to enable disk quotas on a per-file " +"system basis. To enable per-user quotas on a file system, add `userquota` " +"to the options field in the [.filename]#/etc/fstab# entry for the file " +"system to enable quotas on. For example:" +msgstr "" +"Наконец, отредактируйте [.filename]#/etc/fstab#, чтобы включить квоты диска " +"для каждой файловой системы. Чтобы включить квоты для пользователей в " +"файловой системе, добавьте `userquota` в поле опций записи [.filename]#/etc/" +"fstab# для файловой системы, на которой нужно включить квоты. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1599 +#, no-wrap +msgid "/dev/da1s2g /home ufs rw,userquota 1 2\n" +msgstr "/dev/da1s2g /home ufs rw,userquota 1 2\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1603 +msgid "" +"To enable group quotas, use `groupquota` instead. To enable both user and " +"group quotas, separate the options with a comma:" +msgstr "" +"Для включения квот групп используйте `groupquota` вместо этого. Чтобы " +"включить квоты и для пользователей, и для групп, разделите параметры запятой:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1607 +#, no-wrap +msgid "/dev/da1s2g /home ufs rw,userquota,groupquota 1 2\n" +msgstr "/dev/da1s2g /home ufs rw,userquota,groupquota 1 2\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1612 +msgid "" +"By default, quota files are stored in the root directory of the file system " +"as [.filename]#quota.user# and [.filename]#quota.group#. Refer to " +"man:fstab[5] for more information. Specifying an alternate location for the " +"quota files is not recommended." +msgstr "" +"По умолчанию файлы квот хранятся в корневом каталоге файловой системы как " +"[.filename]#quota.user# и [.filename]#quota.group#. Дополнительную " +"информацию можно найти в man:fstab[5]. Указание альтернативного " +"расположения для файлов квот не рекомендуется." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1614 +msgid "" +"Once the configuration is complete, reboot the system and [.filename]#/etc/" +"rc# will automatically run the appropriate commands to create the initial " +"quota files for all of the quotas enabled in [.filename]#/etc/fstab#." +msgstr "" +"После завершения настройки перезагрузите систему, и [.filename]#/etc/rc# " +"автоматически выполнит соответствующие команды для создания начальных файлов " +"квот для всех включённых квот в [.filename]#/etc/fstab#." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1617 +msgid "" +"In the normal course of operations, there should be no need to manually run " +"man:quotacheck[8], man:quotaon[8], or man:quotaoff[8]. However, one should " +"read these manual pages to be familiar with their operation." +msgstr "" +"В обычном режиме работы нет необходимости вручную запускать " +"man:quotacheck[8], man:quotaon[8] или man:quotaoff[8]. Однако рекомендуется " +"ознакомиться с их руководствами, чтобы понимать принцип работы." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1618 +#, no-wrap +msgid "Setting Quota Limits" +msgstr "Установка ограничений квот" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1621 +msgid "To verify that quotas are enabled, run:" +msgstr "Для проверки включения квот выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1625 +#, no-wrap +msgid "# quota -v\n" +msgstr "# quota -v\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1628 +msgid "" +"There should be a one line summary of disk usage and current quota limits " +"for each file system that quotas are enabled on." +msgstr "" +"Должна быть однострочная сводка об использовании диска и текущих лимитах " +"квот для каждой файловой системы, на которой включены квоты." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1630 +msgid "The system is now ready to be assigned quota limits with `edquota`." +msgstr "Система готова к назначению квот с помощью `edquota`." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1634 +msgid "" +"Several options are available to enforce limits on the amount of disk space " +"a user or group may allocate, and how many files they may create. " +"Allocations can be limited based on disk space (block quotas), number of " +"files (inode quotas), or a combination of both. Each limit is further " +"broken down into two categories: hard and soft limits." +msgstr "" +"Доступно несколько вариантов для установки ограничений на объем дискового " +"пространства, который может быть выделен пользователю или группе, а также на " +"количество создаваемых ими файлов. Ограничения могут быть установлены на " +"основе объема дискового пространства (блочные квоты), количества файлов " +"(квоты inode) или их комбинации. Каждое ограничение дополнительно " +"разделяется на две категории: жесткие и мягкие лимиты." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1639 +msgid "" +"A hard limit may not be exceeded. Once a user reaches a hard limit, no " +"further allocations can be made on that file system by that user. For " +"example, if the user has a hard limit of 500 kbytes on a file system and is " +"currently using 490 kbytes, the user can only allocate an additional 10 " +"kbytes. Attempting to allocate an additional 11 kbytes will fail." +msgstr "" +"Жёсткий лимит не может быть превышен. Как только пользователь достигает " +"жёсткого лимита, он не может выделить дополнительные ресурсы на этой " +"файловой системе. Например, если у пользователя жёсткий лимит в 500 КБ на " +"файловой системе и он уже использует 490 КБ, он может выделить только " +"дополнительные 10 КБ. Попытка выделить дополнительные 11 КБ завершится " +"неудачей." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1643 +msgid "" +"Soft limits can be exceeded for a limited amount of time, known as the grace " +"period, which is one week by default. If a user stays over their limit " +"longer than the grace period, the soft limit turns into a hard limit and no " +"further allocations are allowed. When the user drops back below the soft " +"limit, the grace period is reset." +msgstr "" +"Мягкие ограничения могут быть превышены на ограниченное время, известное как " +"льготный период, который по умолчанию составляет одну неделю. Если " +"пользователь превышает своё ограничение дольше льготного периода, мягкое " +"ограничение становится жёстким, и дальнейшие выделения ресурсов запрещаются. " +"Когда пользователь снова опускается ниже мягкого ограничения, льготный " +"период сбрасывается." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1647 +msgid "" +"In the following example, the quota for the `test` account is being edited. " +"When `edquota` is invoked, the editor specified by `EDITOR` is opened in " +"order to edit the quota limits. The default editor is set to vi." +msgstr "" +"В следующем примере редактируется квота для учётной записи `test`. При " +"запуске `edquota` открывается редактор, указанный в переменной `EDITOR`, для " +"изменения ограничений квоты. Редактор по умолчанию установлен в vi." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1656 +#, no-wrap +msgid "" +"# edquota -u test\n" +"Quotas for user test:\n" +"/usr: kbytes in use: 65, limits (soft = 50, hard = 75)\n" +" inodes in use: 7, limits (soft = 50, hard = 60)\n" +"/usr/var: kbytes in use: 0, limits (soft = 50, hard = 75)\n" +" inodes in use: 0, limits (soft = 50, hard = 60)\n" +msgstr "" +"# edquota -u test\n" +"Quotas for user test:\n" +"/usr: kbytes in use: 65, limits (soft = 50, hard = 75)\n" +" inodes in use: 7, limits (soft = 50, hard = 60)\n" +"/usr/var: kbytes in use: 0, limits (soft = 50, hard = 75)\n" +" inodes in use: 0, limits (soft = 50, hard = 60)\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1662 +msgid "" +"There are normally two lines for each file system that has quotas enabled. " +"One line represents the block limits and the other represents the inode " +"limits. Change the value to modify the quota limit. For example, to raise " +"the block limit on [.filename]#/usr# to a soft limit of `500` and a hard " +"limit of `600`, change the values in that line as follows:" +msgstr "" +"Обычно для каждой файловой системы с включенными квотами есть две строки. " +"Одна строка представляет ограничения на блоки, а другая — ограничения на " +"файлы. Измените значение, чтобы изменить лимит квоты. Например, чтобы " +"увеличить лимит блоков для [.filename]#/usr# до мягкого лимита `500` и " +"жёсткого лимита `600`, измените значения в этой строке следующим образом:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1666 +#, no-wrap +msgid "/usr: kbytes in use: 65, limits (soft = 500, hard = 600)\n" +msgstr "/usr: kbytes in use: 65, limits (soft = 500, hard = 600)\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1669 +msgid "The new quota limits take effect upon exiting the editor." +msgstr "Новые ограничения квот вступают в силу после выхода из редактора." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1674 +msgid "" +"Sometimes it is desirable to set quota limits on a range of users. This can " +"be done by first assigning the desired quota limit to a user. Then, use `-" +"p` to duplicate that quota to a specified range of user IDs (UIDs). The " +"following command will duplicate those quota limits for UIDs `10,000` " +"through `19,999`:" +msgstr "" +"Иногда требуется установить квоты для диапазона пользователей. Это можно " +"сделать, сначала назначив желаемую квоту для одного пользователя, а затем " +"используя опцию `-p` для копирования этой квоты в указанный диапазон " +"идентификаторов пользователей (UID). Следующая команда скопирует эти квоты " +"для UID с `10,000` по `19,999`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1678 +#, no-wrap +msgid "# edquota -p test 10000-19999\n" +msgstr "# edquota -p test 10000-19999\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1681 +msgid "For more information, refer to man:edquota[8]." +msgstr "Для получения дополнительной информации обратитесь к man:edquota[8]." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1682 +#, no-wrap +msgid "Checking Quota Limits and Disk Usage" +msgstr "Проверка ограничений квот и использования диска" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1688 +msgid "" +"To check individual user or group quotas and disk usage, use man:quota[1]. " +"A user may only examine their own quota and the quota of a group they are a " +"member of. Only the superuser may view all user and group quotas. To get a " +"summary of all quotas and disk usage for file systems with quotas enabled, " +"use man:repquota[8]." +msgstr "" +"Для проверки квот и использования диска отдельными пользователями или " +"группами используйте man:quota[1]. Пользователь может просматривать только " +"свою собственную квоту и квоту группы, в которой он состоит. Только " +"суперпользователь может просматривать все квоты пользователей и групп. Чтобы " +"получить сводку по всем квотам и использованию диска для файловых систем с " +"включёнными квотами, используйте man:repquota[8]." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1692 +msgid "" +"Normally, file systems that the user is not using any disk space on will not " +"show in the output of `quota`, even if the user has a quota limit assigned " +"for that file system. Use `-v` to display those file systems. The " +"following is sample output from `quota -v` for a user that has quota limits " +"on two file systems." +msgstr "" +"Обычно файловые системы, на которых пользователь не занимает места, не " +"отображаются в выводе команды `quota`, даже если для пользователя " +"установлено ограничение квоты для этой файловой системы. Используйте `-v`, " +"чтобы отобразить эти файловые системы. Ниже приведён пример вывода `quota " +"-v` для пользователя, у которого установлены ограничения квоты на двух " +"файловых системах." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1699 +#, no-wrap +msgid "" +"Disk quotas for user test (uid 1002):\n" +" Filesystem usage quota limit grace files quota limit grace\n" +" /usr 65* 50 75 5days 7 50 60\n" +" /usr/var 0 50 75 0 50 60\n" +msgstr "" +"Disk quotas for user test (uid 1002):\n" +" Filesystem usage quota limit grace files quota limit grace\n" +" /usr 65* 50 75 5days 7 50 60\n" +" /usr/var 0 50 75 0 50 60\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1703 +msgid "" +"In this example, the user is currently 15 kbytes over the soft limit of 50 " +"kbytes on [.filename]#/usr# and has 5 days of grace period left. The " +"asterisk `*` indicates that the user is currently over the quota limit." +msgstr "" +"В этом примере пользователь превысил мягкое ограничение в 50 Кб на " +"[.filename]#/usr# на 15 Кб, и у него осталось 5 дней льготного периода. " +"Звёздочка `*` указывает, что пользователь в настоящее время превысил " +"ограничение квоты." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1704 +#, no-wrap +msgid "Quotas over NFS" +msgstr "Квоты по NFS" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1708 +msgid "" +"Quotas are enforced by the quota subsystem on the NFS server. The " +"man:rpc.rquotad[8] daemon makes quota information available to `quota` on " +"NFS clients, allowing users on those machines to see their quota statistics." +msgstr "" +"Квоты применяются подсистемой квот на NFS-сервере. Демон man:rpc.rquotad[8] " +"предоставляет информацию о квотах для команды `quota` на NFS-клиентах, " +"позволяя пользователям на этих машинах просматривать свою статистику по " +"квотам." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1710 +msgid "" +"On the NFS server, enable `rpc.rquotad` by removing the `+#+` from this line " +"in [.filename]*/etc/inetd.conf*:" +msgstr "" +"На NFS-сервере включите `rpc.rquotad`, удалив `+#+` из этой строки в файле " +"[.filename]*/etc/inetd.conf*:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1714 +#, no-wrap +msgid "rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad\n" +msgstr "rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1717 +msgid "Then, restart `inetd`:" +msgstr "Затем перезапустите `inetd`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1721 +#, no-wrap +msgid "# service inetd restart\n" +msgstr "# service inetd restart\n" + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:1724 +#, no-wrap +msgid "Encrypting Disk Partitions" +msgstr "Шифрование разделов диска" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1729 +msgid "" +"FreeBSD offers excellent online protections against unauthorized data " +"access. File permissions and crossref:mac[mac,Mandatory Access Control] " +"(MAC) help prevent unauthorized users from accessing data while the " +"operating system is active and the computer is powered up. However, the " +"permissions enforced by the operating system are irrelevant if an attacker " +"has physical access to a computer and can move the computer's hard drive to " +"another system to copy and analyze the data." +msgstr "" +"FreeBSD обеспечивает отличную защиту от несанкционированного доступа к " +"данным в режиме онлайн. Права доступа к файлам и " +"crossref:mac[mac,Принудительный контроль доступа] (MAC) помогают " +"предотвратить доступ к данным неавторизованных пользователей, пока " +"операционная система активна и компьютер включен. Однако принудительно " +"устанавливаемые операционной системой права доступа не имеют значения, если " +"злоумышленник получит физический доступ к компьютеру и сможет переместить " +"его жесткий диск в другую систему для копирования и анализа данных." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1733 +msgid "" +"Regardless of how an attacker may have come into possession of a hard drive " +"or powered-down computer, the GEOM-based cryptographic subsystems built into " +"FreeBSD are able to protect the data on the computer's file systems against " +"even highly-motivated attackers with significant resources. Unlike " +"encryption methods that encrypt individual files, the built-in `gbde` and " +"`geli` utilities can be used to transparently encrypt entire file systems. " +"No cleartext ever touches the hard drive's platter." +msgstr "" +"Независимо от того, как злоумышленник получил доступ к жесткому диску или " +"выключенному компьютеру, криптографические подсистемы на основе GEOM, " +"встроенные в FreeBSD, способны защитить данные в файловых системах " +"компьютера даже от высокомотивированных злоумышленников с значительными " +"ресурсами. В отличие от методов шифрования, которые шифруют отдельные файлы, " +"встроенные утилиты `gbde` и `geli` могут использоваться для прозрачного " +"шифрования целых файловых систем. Ни один открытый текст никогда не попадает " +"на пластину жесткого диска." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1736 +msgid "" +"This chapter demonstrates how to create an encrypted file system on " +"FreeBSD. It first demonstrates the process using `gbde` and then " +"demonstrates the same example using `geli`." +msgstr "" +"Эта глава демонстрирует, как создать зашифрованную файловую систему в " +"FreeBSD. Сначала показан процесс с использованием `gbde`, а затем приведён " +"тот же пример с использованием `geli`." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1737 +#, no-wrap +msgid "Disk Encryption with gbde" +msgstr "Шифрование диска с gbde" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1742 +msgid "" +"The objective of the man:gbde[4] facility is to provide a formidable " +"challenge for an attacker to gain access to the contents of a _cold_ storage " +"device. However, if the computer is compromised while up and running and " +"the storage device is actively attached, or the attacker has access to a " +"valid passphrase, it offers no protection to the contents of the storage " +"device. Thus, it is important to provide physical security while the system " +"is running and to protect the passphrase used by the encryption mechanism." +msgstr "" +"Целью средства man:gbde[4] является создание серьёзного препятствия для " +"злоумышленника, пытающегося получить доступ к содержимому _отключённого_ " +"устройства хранения данных. Однако, если компьютер скомпрометирован во время " +"работы и устройство хранения активно подключено, или злоумышленник имеет " +"доступ к корректной парольной фразе, это средство не обеспечивает защиты " +"содержимого устройства хранения. Таким образом, важно обеспечивать " +"физическую безопасность системы во время её работы и защищать парольную " +"фразу, используемую механизмом шифрования." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1747 +msgid "" +"This facility provides several barriers to protect the data stored in each " +"disk sector. It encrypts the contents of a disk sector using 128-bit AES in " +"CBC mode. Each sector on the disk is encrypted with a different AES key. " +"For more information on the cryptographic design, including how the sector " +"keys are derived from the user-supplied passphrase, refer to man:gbde[4]." +msgstr "" +"Это средство обеспечивает несколько уровней защиты данных, хранящихся в " +"каждом секторе диска. Оно шифрует содержимое сектора диска с использованием " +"128-битного AES в режиме CBC. Каждый сектор на диске шифруется с " +"использованием уникального ключа AES. Для получения дополнительной " +"информации о криптографической схеме, включая способ получения ключей " +"секторов из предоставленной пользователем парольной фразы, обратитесь к " +"man:gbde[4]." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1749 +msgid "" +"FreeBSD provides a kernel module for gbde which can be loaded with this " +"command:" +msgstr "" +"FreeBSD предоставляет модуль ядра для gbde, который можно загрузить " +"следующей командой:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1753 +#, no-wrap +msgid "# kldload geom_bde\n" +msgstr "# kldload geom_bde\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1756 +msgid "" +"If using a custom kernel configuration file, ensure it contains this line:" +msgstr "" +"Если используется пользовательский конфигурационный файл ядра, убедитесь, " +"что он содержит следующую строку:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1758 +msgid "`options GEOM_BDE`" +msgstr "`options GEOM_BDE`" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1760 +msgid "" +"The following example demonstrates adding a new hard drive to a system that " +"will hold a single encrypted partition that will be mounted as [.filename]#/" +"private#." +msgstr "" +"Следующий пример демонстрирует добавление нового жесткого диска в систему, " +"который будет содержать единственный зашифрованный раздел, монтируемый в " +"[.filename]#/private#." + +#. type: Block title +#: documentation/content/en/books/handbook/disks/_index.adoc:1762 +#, no-wrap +msgid "Procedure: Encrypting a Partition with gbde" +msgstr "Процедура: Шифрование раздела с помощью gbde" + +#. type: .procedure +#: documentation/content/en/books/handbook/disks/_index.adoc:1764 +msgid "Add the New Hard Drive" +msgstr "Добавьте новый жесткий диск" + +#. type: .procedure +#: documentation/content/en/books/handbook/disks/_index.adoc:1767 +msgid "" +"Install the new drive to the system as explained in crossref:disks[disks-" +"adding, Adding Disks]. For the purposes of this example, a new hard drive " +"partition has been added as [.filename]#/dev/ad4s1c# and [.filename]#/dev/" +"ad0s1*# represents the existing standard FreeBSD partitions." +msgstr "" +"Установите новый диск в систему, как описано в crossref:disks[disks-" +"adding,Добавление дисков]. Для целей данного примера новый раздел жёсткого " +"диска добавлен как [.filename]#/dev/ad4s1c#, а [.filename]#/dev/ad0s1*# " +"представляет существующие стандартные разделы FreeBSD." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1774 +#, no-wrap +msgid "" +"# ls /dev/ad*\n" +"/dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1\n" +"/dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c\n" +"/dev/ad0s1a /dev/ad0s1d /dev/ad4\n" +msgstr "" +"# ls /dev/ad*\n" +"/dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1\n" +"/dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c\n" +"/dev/ad0s1a /dev/ad0s1d /dev/ad4\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1777 +msgid "Create a Directory to Hold `gbde` Lock Files" +msgstr "Создайте каталог для хранения файлов блокировок `gbde`" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1781 +#, no-wrap +msgid "# mkdir /etc/gbde\n" +msgstr "# mkdir /etc/gbde\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1786 +msgid "" +"The gbde lock file contains information that gbde requires to access " +"encrypted partitions. Without access to the lock file, gbde will not be " +"able to decrypt the data contained in the encrypted partition without " +"significant manual intervention which is not supported by the software. " +"Each encrypted partition uses a separate lock file." +msgstr "" +"Файл блокировки `gbde` содержит информацию, необходимую `gbde` для доступа к " +"зашифрованным разделам. Без доступа к файлу блокировки `gbde` не сможет " +"расшифровать данные, содержащиеся в зашифрованном разделе, без значительного " +"ручного вмешательства, которое не поддерживается программным обеспечением. " +"Каждый зашифрованный раздел использует отдельный файл блокировки." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1787 +msgid "Initialize the `gbde` Partition" +msgstr "Инициализируйте раздел `gbde`" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1792 +msgid "" +"A gbde partition must be initialized before it can be used. This " +"initialization needs to be performed only once. This command will open the " +"default editor, in order to set various configuration options in a " +"template. For use with the UFS file system, set the sector_size to 2048:" +msgstr "" +"Раздел gbde необходимо инициализировать перед использованием. Эта " +"инициализация выполняется только один раз. Данная команда откроет редактор " +"по умолчанию для настройки различных параметров конфигурации в шаблоне. Для " +"использования с файловой системой UFS установите sector_size в значение 2048:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1804 +#, no-wrap +msgid "" +"# gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c.lock\n" +"#\n" +"# Sector size is the smallest unit of data which can be read or written.\n" +"# Making it too small decreases performance and decreases available space.\n" +"# Making it too large may prevent filesystems from working. 512 is the\n" +"# minimum and always safe. For UFS, use the fragment size\n" +"#\n" +"sector_size\t=\t2048\n" +"[...]\n" +msgstr "" +"# gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c.lock\n" +"#\n" +"# Sector size is the smallest unit of data which can be read or written.\n" +"# Making it too small decreases performance and decreases available space.\n" +"# Making it too large may prevent filesystems from working. 512 is the\n" +"# minimum and always safe. For UFS, use the fragment size\n" +"#\n" +"sector_size\t=\t2048\n" +"[...]\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1810 +msgid "" +"Once the edit is saved, the user will be asked twice to type the passphrase " +"used to secure the data. The passphrase must be the same both times. The " +"ability of gbde to protect data depends entirely on the quality of the " +"passphrase. For tips on how to select a secure passphrase that is easy to " +"remember, see http://world.std.com/\\~reinhold/diceware.html[http://" +"world.std.com/~reinhold/diceware.htm]." +msgstr "" +"После сохранения изменений пользователю будет предложено дважды ввести " +"парольную фразу, используемую для защиты данных. Парольная фраза должна быть " +"одинаковой в обоих случаях. Способность gbde защищать данные полностью " +"зависит от качества парольной фразы. Советы по выбору безопасной парольной " +"фразы, которую легко запомнить, можно найти по ссылке http://world.std.com/" +"\\~reinhold/diceware.html[http://world.std.com/~reinhold/diceware.htm]." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1814 +msgid "" +"This initialization creates a lock file for the gbde partition. In this " +"example, it is stored as [.filename]#/etc/gbde/ad4s1c.lock#. Lock files " +"must end in \".lock\" in order to be correctly detected by the [.filename]#/" +"etc/rc.d/gbde# start up script." +msgstr "" +"Такая инициализация создает файл блокировки для раздела gbde. В данном " +"примере он сохраняется как [.filename]#/etc/gbde/ad4s1c.lock#. Файлы " +"блокировки должны иметь расширение \".lock\", чтобы корректно определяться " +"скриптом запуска [.filename]#/etc/rc.d/gbde#." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1819 +msgid "" +"Lock files _must_ be backed up together with the contents of any encrypted " +"partitions. Without the lock file, the legitimate owner will be unable to " +"access the data on the encrypted partition." +msgstr "" +"Файлы блокировок _обязательно_ должны быть включены в резервную копию вместе " +"с содержимым зашифрованных разделов. Без файла блокировки законный владелец " +"не сможет получить доступ к данным на зашифрованном разделе." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1822 +msgid "Attach the Encrypted Partition to the Kernel" +msgstr "Присоедините зашифрованный раздел к ядру" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1826 +#, no-wrap +msgid "# gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lock\n" +msgstr "# gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lock\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1830 +msgid "" +"This command will prompt to input the passphrase that was selected during " +"the initialization of the encrypted partition. The new encrypted device " +"will appear in [.filename]#/dev# as [.filename]#/dev/device_name.bde#:" +msgstr "" +"Эта команда запросит ввод парольной фразы, выбранной при инициализации " +"зашифрованного раздела. Новое зашифрованное устройство появится в " +"[.filename]#/dev# под именем [.filename]#/dev/имя_устройства.bde#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1837 +#, no-wrap +msgid "" +"# ls /dev/ad*\n" +"/dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1\n" +"/dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c\n" +"/dev/ad0s1a /dev/ad0s1d /dev/ad4 /dev/ad4s1c.bde\n" +msgstr "" +"# ls /dev/ad*\n" +"/dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1\n" +"/dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c\n" +"/dev/ad0s1a /dev/ad0s1d /dev/ad4 /dev/ad4s1c.bde\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1840 +msgid "Create a File System on the Encrypted Device" +msgstr "Создайте файловую систему на зашифрованном устройстве" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1844 +msgid "" +"Once the encrypted device has been attached to the kernel, a file system can " +"be created on the device. This example creates a UFS file system with soft " +"updates enabled. Be sure to specify the partition which has a " +"[.filename]#*.bde# extension:" +msgstr "" +"После подключения зашифрованного устройства к ядру на нем можно создать " +"файловую систему. В этом примере создается файловая система UFS с " +"включенными мягкими обновлениями. Убедитесь, что указан раздел с расширением " +"[.filename]#*.bde#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1848 +#, no-wrap +msgid "# newfs -U /dev/ad4s1c.bde\n" +msgstr "# newfs -U /dev/ad4s1c.bde\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1851 +msgid "Mount the Encrypted Partition" +msgstr "Смонтируйте зашифрованный раздел" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1853 +msgid "Create a mount point and mount the encrypted file system:" +msgstr "" +"Создайте точку монтирования и подключите зашифрованную файловую систему:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1858 +#, no-wrap +msgid "" +"# mkdir /private\n" +"# mount /dev/ad4s1c.bde /private\n" +msgstr "" +"# mkdir /private\n" +"# mount /dev/ad4s1c.bde /private\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1861 +msgid "Verify That the Encrypted File System is Available" +msgstr "Проверьте, что зашифрованная файловая система доступна" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1863 +msgid "The encrypted file system should now be visible and available for use:" +msgstr "" +"Зашифрованная файловая система теперь должна быть видна и доступна для " +"использования:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1874 +#, no-wrap +msgid "" +"% df -H\n" +"Filesystem Size Used Avail Capacity Mounted on\n" +"/dev/ad0s1a 1037M 72M 883M 8% /\n" +"/devfs 1.0K 1.0K 0B 100% /dev\n" +"/dev/ad0s1f 8.1G 55K 7.5G 0% /home\n" +"/dev/ad0s1e 1037M 1.1M 953M 0% /tmp\n" +"/dev/ad0s1d 6.1G 1.9G 3.7G 35% /usr\n" +"/dev/ad4s1c.bde 150G 4.1K 138G 0% /private\n" +msgstr "" +"% df -H\n" +"Filesystem Size Used Avail Capacity Mounted on\n" +"/dev/ad0s1a 1037M 72M 883M 8% /\n" +"/devfs 1.0K 1.0K 0B 100% /dev\n" +"/dev/ad0s1f 8.1G 55K 7.5G 0% /home\n" +"/dev/ad0s1e 1037M 1.1M 953M 0% /tmp\n" +"/dev/ad0s1d 6.1G 1.9G 3.7G 35% /usr\n" +"/dev/ad4s1c.bde 150G 4.1K 138G 0% /private\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1878 +msgid "" +"After each boot, any encrypted file systems must be manually re-attached to " +"the kernel, checked for errors, and mounted, before the file systems can be " +"used. To configure these steps, add the following lines to [.filename]#/etc/" +"rc.conf#:" +msgstr "" +"После каждой загрузки все зашифрованные файловые системы должны быть вручную " +"повторно подключены к ядру, проверены на ошибки и смонтированы, прежде чем " +"их можно будет использовать. Чтобы настроить эти шаги, добавьте следующие " +"строки в [.filename]#/etc/rc.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1884 +#, no-wrap +msgid "" +"gbde_autoattach_all=\"YES\"\n" +"gbde_devices=\"ad4s1c\"\n" +"gbde_lockdir=\"/etc/gbde\"\n" +msgstr "" +"gbde_autoattach_all=\"YES\"\n" +"gbde_devices=\"ad4s1c\"\n" +"gbde_lockdir=\"/etc/gbde\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1889 +msgid "" +"This requires that the passphrase be entered at the console at boot time. " +"After typing the correct passphrase, the encrypted partition will be mounted " +"automatically. Additional gbde boot options are available and listed in " +"man:rc.conf[5]." +msgstr "" +"Для этого необходимо ввести пароль на консоли во время загрузки. После ввода " +"правильного пароля зашифрованный раздел будет автоматически подключен. " +"Дополнительные параметры загрузки gbde доступны и перечислены в " +"man:rc.conf[5]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1895 +msgid "" +"sysinstall is incompatible with gbde-encrypted devices. All " +"[.filename]#*.bde# devices must be detached from the kernel before starting " +"sysinstall or it will crash during its initial probing for devices. To " +"detach the encrypted device used in the example, use the following command:" +msgstr "" +"`sysinstall` несовместим с устройствами, зашифрованными `gbde`. Все " +"устройства с именами `*.bde` должны быть отключены от ядра перед запуском " +"`sysinstall`, иначе он завершится аварией во время начального сканирования " +"устройств. Чтобы отключить зашифрованное устройство, использованное в " +"примере, выполните следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1899 +#, no-wrap +msgid "# gbde detach /dev/ad4s1c\n" +msgstr "# gbde detach /dev/ad4s1c\n" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1903 +#, no-wrap +msgid "Disk Encryption with `geli`" +msgstr "Шифрование диска с помощью `geli`" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1908 +msgid "" +"An alternative cryptographic GEOM class is available using `geli`. This " +"control utility adds some features and uses a different scheme for doing " +"cryptographic work. It provides the following features:" +msgstr "" +"Альтернативный криптографический класс GEOM доступен с использованием " +"`geli`. Эта утилита управления предоставляет дополнительные возможности и " +"использует другую схему для выполнения криптографических операций. Она " +"обеспечивает следующие функции:" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1910 +msgid "" +"Utilizes the man:crypto[9] framework and automatically uses cryptographic " +"hardware when it is available." +msgstr "" +"Использует фреймворк man:crypto[9] и автоматически задействует " +"криптографическое оборудование, когда оно доступно." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1911 +msgid "" +"Supports multiple cryptographic algorithms such as AES-XTS, AES-CBC, and " +"Camellia-CBCAES." +msgstr "" +"Поддерживает несколько криптографических алгоритмов, таких как AES-XTS, AES-" +"CBC и Camellia-CBCAES." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1912 +msgid "" +"Allows the root partition to be encrypted. The passphrase used to access the " +"encrypted root partition will be requested during system boot." +msgstr "" +"Позволяет зашифровать корневой раздел. Пароль для доступа к зашифрованному " +"корневому разделу будет запрашиваться при загрузке системы." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1913 +msgid "Allows the use of two independent keys." +msgstr "Позволяет использование двух независимых ключей." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1914 +msgid "It is fast as it performs simple sector-to-sector encryption." +msgstr "Она быстрая, так как выполняет простое поблочное шифрование." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1915 +msgid "" +"Allows backup and restore of master keys. If a user destroys their keys, it " +"is still possible to get access to the data by restoring keys from the " +"backup." +msgstr "" +"Позволяет создавать резервные копии и восстанавливать мастер-ключи. Если " +"пользователь уничтожит свои ключи, доступ к данным всё ещё можно получить, " +"восстановив ключи из резервной копии." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1916 +msgid "" +"Allows a disk to attach with a random, one-time key which is useful for swap " +"partitions and temporary file systems." +msgstr "" +"Позволяет подключить диск с одноразовым случайным ключом, что полезно для " +"разделов подкачки и временных файловых систем." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1918 +msgid "More features and usage examples can be found in man:geli[8]." +msgstr "" +"Дополнительные возможности и примеры использования приведены в man:geli[8]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1924 +msgid "" +"The following example describes how to generate a key file which will be " +"used as part of the master key for the encrypted provider mounted under " +"[.filename]#/private#. The key file will provide some random data used to " +"encrypt the master key. The master key will also be protected by a " +"passphrase. The provider's sector size will be 4kB. The example describes " +"how to attach to the `geli` provider, create a file system on it, mount it, " +"work with it, and finally, how to detach it." +msgstr "" +"Следующий пример описывает, как сгенерировать ключевой файл, который будет " +"использоваться как часть мастер-ключа для зашифрованного провайдера, " +"монтируемого в [.filename]#/private#. Ключевой файл предоставит случайные " +"данные, используемые для шифрования мастер-ключа. Мастер-ключ также будет " +"защищён парольной фразой. Размер сектора провайдера составит 4 КБ. В примере " +"описано, как подключиться к провайдеру `geli`, создать на нём файловую " +"систему, смонтировать её, работать с ней и, наконец, отключить её." + +#. type: Block title +#: documentation/content/en/books/handbook/disks/_index.adoc:1926 +#, no-wrap +msgid "Procedure: Encrypting a Partition with `geli`" +msgstr "Процедура: Шифрование раздела с помощью `geli`" + +#. type: .procedure +#: documentation/content/en/books/handbook/disks/_index.adoc:1928 +msgid "Load `geli` Support" +msgstr "Загрузите поддержку `geli`" + +#. type: .procedure +#: documentation/content/en/books/handbook/disks/_index.adoc:1930 +msgid "" +"Support for `geli` is available as a loadable kernel module. To configure " +"the system to automatically load the module at boot time, add the following " +"line to [.filename]#/boot/loader.conf#:" +msgstr "" +"Поддержка `geli` доступна в виде загружаемого модуля ядра. Чтобы настроить " +"систему для автоматической загрузки модуля при загрузке, добавьте следующую " +"строку в файл [.filename]#/boot/loader.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1934 +#, no-wrap +msgid "geom_eli_load=\"YES\"\n" +msgstr "geom_eli_load=\"YES\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1937 +msgid "To load the kernel module now:" +msgstr "Чтобы загрузуть модуля ядра сейчас:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1941 +#, no-wrap +msgid "# kldload geom_eli\n" +msgstr "# kldload geom_eli\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1944 +msgid "" +"For a custom kernel, ensure the kernel configuration file contains these " +"lines:" +msgstr "" +"Для собственного ядра убедитесь, что файл конфигурации ядра содержит " +"следующие строки:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1949 +#, no-wrap +msgid "" +"options GEOM_ELI\n" +"device crypto\n" +msgstr "" +"options GEOM_ELI\n" +"device crypto\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1952 +msgid "Generate the Master Key" +msgstr "Сгенеририруйте мастер-ключа" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1959 +msgid "" +"The following commands generate a master key that all data will be encrypted " +"with. This key can never be changed. Rather than using it directly, it is " +"encrypted with one or more user keys. The user keys are made up of an " +"optional combination of random bytes from a file, [.filename]#/root/" +"da2.key#, and/or a passphrase. In this case, the data source for the key " +"file is [.filename]#/dev/random#. This command also configures the sector " +"size of the provider ([.filename]#/dev/da2.eli#) as 4kB, for better " +"performance:" +msgstr "" +"Следующие команды создают мастер-ключ, которым будут зашифрованы все данные. " +"Этот ключ нельзя изменить. Вместо его прямого использования, он шифруется " +"одним или несколькими пользовательскими ключами. Пользовательские ключи " +"формируются из опциональной комбинации случайных байтов из файла " +"[.filename]#/root/da2.key# и/или парольной фразы. В данном случае источником " +"данных для ключевого файла является [.filename]#/dev/random#. Эта команда " +"также устанавливает размер сектора провайдера ([.filename]#/dev/da2.eli#) " +"равным 4 КБ для улучшения производительности:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1966 +#, no-wrap +msgid "" +"# dd if=/dev/random of=/root/da2.key bs=64 count=1\n" +"# geli init -K /root/da2.key -s 4096 /dev/da2\n" +"Enter new passphrase:\n" +"Reenter new passphrase:\n" +msgstr "" +"# dd if=/dev/random of=/root/da2.key bs=64 count=1\n" +"# geli init -K /root/da2.key -s 4096 /dev/da2\n" +"Enter new passphrase:\n" +"Reenter new passphrase:\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1969 +msgid "" +"It is not mandatory to use both a passphrase and a key file as either method " +"of securing the master key can be used in isolation." +msgstr "" +"Не обязательно использовать и парольную фразу, и файл ключа, так как каждый " +"из этих методов защиты главного ключа может применяться отдельно." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1972 +msgid "" +"If the key file is given as \"-\", standard input will be used. For " +"example, this command generates three key files:" +msgstr "" +"Если файл ключа указан как \"-\", будет использован стандартный ввод. " +"Например, следующая команда генерирует три файла ключей:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1976 +#, no-wrap +msgid "# cat keyfile1 keyfile2 keyfile3 | geli init -K - /dev/da2\n" +msgstr "# cat keyfile1 keyfile2 keyfile3 | geli init -K - /dev/da2\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1979 +msgid "Attach the Provider with the Generated Key" +msgstr "Присоедините поставщика с сгенерированным Ключом" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1981 +msgid "" +"To attach the provider, specify the key file, the name of the disk, and the " +"passphrase:" +msgstr "" +"Для подключения провайдера укажите файл ключа, имя диска и парольную фразу:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1986 +#, no-wrap +msgid "" +"# geli attach -k /root/da2.key /dev/da2\n" +"Enter passphrase:\n" +msgstr "" +"# geli attach -k /root/da2.key /dev/da2\n" +"Enter passphrase:\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1989 +msgid "This creates a new device with an [.filename]#.eli# extension:" +msgstr "Это создает новое устройство с расширением [.filename]#.eli#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1994 +#, no-wrap +msgid "" +"# ls /dev/da2*\n" +"/dev/da2 /dev/da2.eli\n" +msgstr "" +"# ls /dev/da2*\n" +"/dev/da2 /dev/da2.eli\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1997 +msgid "Create the New File System" +msgstr "Создайте новую файловую систему" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1999 +msgid "" +"Next, format the device with the UFS file system and mount it on an existing " +"mount point:" +msgstr "" +"Далее отформатируйте устройство с файловой системой UFS и смонтируйте его в " +"существующей точке монтирования:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2005 +#, no-wrap +msgid "" +"# dd if=/dev/random of=/dev/da2.eli bs=1m\n" +"# newfs /dev/da2.eli\n" +"# mount /dev/da2.eli /private\n" +msgstr "" +"# dd if=/dev/random of=/dev/da2.eli bs=1m\n" +"# newfs /dev/da2.eli\n" +"# mount /dev/da2.eli /private\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2008 +msgid "The encrypted file system should now be available for use:" +msgstr "" +"Зашифрованная файловая система теперь должна быть доступна для использования:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2019 +#, no-wrap +msgid "" +"# df -H\n" +"Filesystem Size Used Avail Capacity Mounted on\n" +"/dev/ad0s1a 248M 89M 139M 38% /\n" +"/devfs 1.0K 1.0K 0B 100% /dev\n" +"/dev/ad0s1f 7.7G 2.3G 4.9G 32% /usr\n" +"/dev/ad0s1d 989M 1.5M 909M 0% /tmp\n" +"/dev/ad0s1e 3.9G 1.3G 2.3G 35% /var\n" +"/dev/da2.eli 150G 4.1K 138G 0% /private\n" +msgstr "" +"# df -H\n" +"Filesystem Size Used Avail Capacity Mounted on\n" +"/dev/ad0s1a 248M 89M 139M 38% /\n" +"/devfs 1.0K 1.0K 0B 100% /dev\n" +"/dev/ad0s1f 7.7G 2.3G 4.9G 32% /usr\n" +"/dev/ad0s1d 989M 1.5M 909M 0% /tmp\n" +"/dev/ad0s1e 3.9G 1.3G 2.3G 35% /var\n" +"/dev/da2.eli 150G 4.1K 138G 0% /private\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2022 +msgid "" +"Once the work on the encrypted partition is done, and the [.filename]#/" +"private# partition is no longer needed, it is prudent to put the device into " +"cold storage by unmounting and detaching the `geli` encrypted partition from " +"the kernel:" +msgstr "" +"После завершения работы с зашифрованным разделом и когда раздел [.filename]#/" +"private# больше не нужен, рекомендуется перевести устройство в холодное " +"хранилище, размонтировав и отключив зашифрованный раздел `geli` от ядра:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2027 +#, no-wrap +msgid "" +"# umount /private\n" +"# geli detach da2.eli\n" +msgstr "" +"# umount /private\n" +"# geli detach da2.eli\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2030 +msgid "" +"An [.filename]#rc.d# script is provided to simplify the mounting of `geli`-" +"encrypted devices at boot time. For this example, add these lines to " +"[.filename]#/etc/rc.conf#:" +msgstr "" +"Для упрощения монтирования зашифрованных устройств `geli` во время загрузки " +"предоставляется скрипт [.filename]#rc.d#. Для данного примера добавьте " +"следующие строки в [.filename]#/etc/rc.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2035 +#, no-wrap +msgid "" +"geli_devices=\"da2\"\n" +"geli_da2_flags=\"-k /root/da2.key\"\n" +msgstr "" +"geli_devices=\"da2\"\n" +"geli_da2_flags=\"-k /root/da2.key\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2045 +msgid "" +"This configures [.filename]#/dev/da2# as a `geli` provider with a master key " +"of [.filename]#/root/da2.key#. The system will automatically detach the " +"provider from the kernel before the system shuts down. During the startup " +"process, the script will prompt for the passphrase before attaching the " +"provider. Other kernel messages might be shown before and after the " +"password prompt. If the boot process seems to stall, look carefully for the " +"password prompt among the other messages. Once the correct passphrase is " +"entered, the provider is attached. The file system is then mounted, " +"typically by an entry in [.filename]#/etc/fstab#. Refer to " +"crossref:basics[mount-unmount,“Mounting and Unmounting File Systems”] for " +"instructions on how to configure a file system to mount at boot time." +msgstr "" +"В этом примере [.filename]#/dev/da2# настраивается как провайдер `geli` с " +"мастер-ключом [.filename]#/root/da2.key#. Система автоматически отключит " +"провайдер от ядра перед завершением работы. Во время загрузки скрипт " +"запросит парольную фразу перед подключением провайдера. До или после запроса " +"пароля могут отображаться другие сообщения ядра. Если процесс загрузки " +"кажется зависшим, внимательно поищите запрос пароля среди других сообщений. " +"После ввода правильной парольной фразы провайдер будет подключен. Файловая " +"система затем монтируется, обычно с помощью записи в [.filename]#/etc/" +"fstab#. Инструкции по настройке автоматического монтирования файловой " +"системы при загрузке можно найти в crossref:basics[mount-" +"unmount,“Монтирование и размонтирование файловых систем”]." + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:2047 +#, no-wrap +msgid "Encrypting Swap" +msgstr "Шифрование раздела подкачки" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2054 +msgid "" +"Like the encryption of disk partitions, encryption of swap space is used to " +"protect sensitive information. Consider an application that deals with " +"passwords. As long as these passwords stay in physical memory, they are not " +"written to disk and will be cleared after a reboot. However, if FreeBSD " +"starts swapping out memory pages to free space, the passwords may be written " +"to the disk unencrypted. Encrypting swap space can be a solution for this " +"scenario." +msgstr "" +"Как и шифрование разделов диска, шифрование раздела подкачки используется " +"для защиты конфиденциальной информации. Рассмотрим приложение, работающее с " +"паролями. Пока пароли находятся в физической памяти, они не записываются на " +"диск и будут удалены после перезагрузки. Однако если FreeBSD начнёт " +"выгружать страницы памяти для освобождения места, пароли могут быть записаны " +"на диск в незашифрованном виде. Решением в этом случае может быть шифрование " +"раздела подкачки." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2057 +msgid "" +"This section demonstrates how to configure an encrypted swap partition using " +"man:gbde[8] or man:geli[8] encryption. It assumes that [.filename]#/dev/" +"ada0s1b# is the swap partition." +msgstr "" +"В этой части показано, как настроить зашифрованный раздел подкачки с " +"использованием шифрования man:gbde[8] или man:geli[8]. Предполагается, что " +"раздел подкачки — это [.filename]#/dev/ada0s1b#." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:2058 +#, no-wrap +msgid "Configuring Encrypted Swap" +msgstr "Настройка зашифрованного раздела подкачки" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2062 +msgid "" +"Swap partitions are not encrypted by default and should be cleared of any " +"sensitive data before continuing. To overwrite the current swap partition " +"with random garbage, execute the following command:" +msgstr "" +"Разделы подкачки по умолчанию не шифруются, и перед продолжением работы " +"следует удалить из них все конфиденциальные данные. Чтобы перезаписать " +"текущий раздел подкачки случайными данными, выполните следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2066 +#, no-wrap +msgid "# dd if=/dev/random of=/dev/ada0s1b bs=1m\n" +msgstr "# dd if=/dev/random of=/dev/ada0s1b bs=1m\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2069 +msgid "" +"To encrypt the swap partition using man:gbde[8], add the `.bde` suffix to " +"the swap line in [.filename]#/etc/fstab#:" +msgstr "" +"Для шифрования раздела подкачки с помощью man:gbde[8] добавьте суффикс " +"`.bde` к строке подкачки в [.filename]#/etc/fstab#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2074 +#, no-wrap +msgid "" +"# Device\t\tMountpoint\tFStype\tOptions\t\tDump\tPass#\n" +"/dev/ada0s1b.bde\tnone\t\tswap\tsw\t\t0\t0\n" +msgstr "" +"# Device\t\tMountpoint\tFStype\tOptions\t\tDump\tPass#\n" +"/dev/ada0s1b.bde\tnone\t\tswap\tsw\t\t0\t0\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2077 +msgid "" +"To instead encrypt the swap partition using man:geli[8], use the `.eli` " +"suffix:" +msgstr "" +"Для шифрования раздела подкачки с помощью man:geli[8] используйте суффикс " +"`.eli`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2082 +#, no-wrap +msgid "" +"# Device\t\tMountpoint\tFStype\tOptions\t\tDump\tPass#\n" +"/dev/ada0s1b.eli\tnone\t\tswap\tsw\t\t0\t0\n" +msgstr "" +"# Device\t\tMountpoint\tFStype\tOptions\t\tDump\tPass#\n" +"/dev/ada0s1b.eli\tnone\t\tswap\tsw\t\t0\t0\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2087 +msgid "" +"By default, man:geli[8] uses the AES algorithm with a key length of 128 " +"bits. Normally the default settings will suffice. If desired, these " +"defaults can be altered in the options field in [.filename]#/etc/fstab#. The " +"possible flags are:" +msgstr "" +"По умолчанию man:geli[8] использует алгоритм AES с длиной ключа 128 бит. " +"Обычно стандартных настроек достаточно. При необходимости эти значения по " +"умолчанию можно изменить в поле options файла [.filename]#/etc/fstab#. " +"Доступные флаги:" + +#. type: Labeled list +#: documentation/content/en/books/handbook/disks/_index.adoc:2088 +#, no-wrap +msgid "aalgo" +msgstr "aalgo" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2091 +msgid "" +"Data integrity verification algorithm used to ensure that the encrypted data " +"has not been tampered with. See man:geli[8] for a list of supported " +"algorithms." +msgstr "" +"Алгоритм проверки целостности данных, используемый для обеспечения " +"отсутствия изменений в зашифрованных данных. Список поддерживаемых " +"алгоритмов приведен в man:geli[8]." + +#. type: Labeled list +#: documentation/content/en/books/handbook/disks/_index.adoc:2092 +#, no-wrap +msgid "ealgo" +msgstr "ealgo" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2095 +msgid "" +"Encryption algorithm used to protect the data. See man:geli[8] for a list " +"of supported algorithms." +msgstr "" +"Алгоритм шифрования, используемый для защиты данных. Список поддерживаемых " +"алгоритмов приведён в man:geli[8]." + +#. type: Labeled list +#: documentation/content/en/books/handbook/disks/_index.adoc:2096 +#, no-wrap +msgid "keylen" +msgstr "keylen" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2099 +msgid "" +"The length of the key used for the encryption algorithm. See man:geli[8] " +"for the key lengths that are supported by each encryption algorithm." +msgstr "" +"Длина ключа, используемого для алгоритма шифрования. Подробнее о " +"поддерживаемых длинах ключей для каждого алгоритма шифрования смотрите в " +"man:geli[8]." + +#. type: Labeled list +#: documentation/content/en/books/handbook/disks/_index.adoc:2100 +#, no-wrap +msgid "sectorsize" +msgstr "sectorsize" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2104 +msgid "" +"The size of the blocks data is broken into before it is encrypted. Larger " +"sector sizes increase performance at the cost of higher storage overhead. " +"The recommended size is 4096 bytes." +msgstr "" +"Размер блоков, на которые разбиваются данные перед шифрованием. Увеличение " +"размера секторов повышает производительность за счет большего расхода " +"пространства. Рекомендуемый размер — 4096 байт." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2106 +msgid "" +"This example configures an encrypted swap partition using the AES-XTS " +"algorithm with a key length of 128 bits and a sectorsize of 4 kilobytes:" +msgstr "" +"В этом примере настраивается зашифрованный раздел подкачки с использованием " +"алгоритма AES-XTS с длиной ключа 128 бит и размером сектора 4 килобайта:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2111 +#, no-wrap +msgid "" +"# Device\t\tMountpoint\tFStype\tOptions\t\t\t\tDump\tPass#\n" +"/dev/ada0s1b.eli\tnone\t\tswap\tsw,ealgo=AES-XTS,keylen=128,sectorsize=4096\t0\t0\n" +msgstr "" +"# Device\t\tMountpoint\tFStype\tOptions\t\t\t\tDump\tPass#\n" +"/dev/ada0s1b.eli\tnone\t\tswap\tsw,ealgo=AES-XTS,keylen=128,sectorsize=4096\t0\t0\n" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:2113 +#, no-wrap +msgid "Encrypted Swap Verification" +msgstr "Проверка зашифрованного раздела подкачки" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2116 +msgid "" +"Once the system has rebooted, proper operation of the encrypted swap can be " +"verified using `swapinfo`." +msgstr "" +"После перезагрузки системы корректную работу зашифрованного раздела подкачки " +"можно проверить с помощью `swapinfo`." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2118 +msgid "If man:gbde[8] is being used:" +msgstr "Если используется man:gbde[8]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2124 +#, no-wrap +msgid "" +"% swapinfo\n" +"Device 1K-blocks Used Avail Capacity\n" +"/dev/ada0s1b.bde 542720 0 542720 0\n" +msgstr "" +"% swapinfo\n" +"Device 1K-blocks Used Avail Capacity\n" +"/dev/ada0s1b.bde 542720 0 542720 0\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2127 +msgid "If man:geli[8] is being used:" +msgstr "Если используется man:geli[8]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2133 +#, no-wrap +msgid "" +"% swapinfo\n" +"Device 1K-blocks Used Avail Capacity\n" +"/dev/ada0s1b.eli 542720 0 542720 0\n" +msgstr "" +"% swapinfo\n" +"Device 1K-blocks Used Avail Capacity\n" +"/dev/ada0s1b.eli 542720 0 542720 0\n" + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:2136 +#, no-wrap +msgid "Highly Available Storage (HAST)" +msgstr "Высокодоступное хранилище (HAST)" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2142 +msgid "" +"High availability is one of the main requirements in serious business " +"applications and highly-available storage is a key component in such " +"environments. In FreeBSD, the Highly Available STorage (HAST) framework " +"allows transparent storage of the same data across several physically " +"separated machines connected by a TCP/IP network. HAST can be understood as " +"a network-based RAID1 (mirror), and is similar to the DRBD(R) storage system " +"used in the GNU/Linux(R) platform. In combination with other high-" +"availability features of FreeBSD like CARP, HAST makes it possible to build " +"a highly-available storage cluster that is resistant to hardware failures." +msgstr "" +"Высокая доступность — одно из основных требований для серьёзных бизнес-" +"приложений, а высокодоступное хранилище является ключевым компонентом в " +"таких средах. В FreeBSD framework Highly Available STorage (HAST) " +"обеспечивает прозрачное хранение одних и тех же данных на нескольких " +"физически разделённых машинах, соединённых через сеть TCP/IP. HAST можно " +"рассматривать как сетевой RAID1 (зеркало), аналогичный системе хранения " +"DRBD(R), используемой на платформе GNU/Linux(R). В сочетании с другими " +"функциями высокой доступности FreeBSD, такими как CARP, HAST позволяет " +"создавать высокодоступные кластеры хранения, устойчивые к аппаратным сбоям." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2144 +msgid "The following are the main features of HAST:" +msgstr "Основные возможности HAST:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2146 +msgid "Can be used to mask I/O errors on local hard drives." +msgstr "" +"Может использоваться для маскировки ошибок ввода-вывода на локальных жестких " +"дисках." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2147 +msgid "" +"File system agnostic as it works with any file system supported by FreeBSD." +msgstr "" +"Файлово-системно агностичен, так как работает с любой файловой системой, " +"поддерживаемой FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2148 +msgid "" +"Efficient and quick resynchronization as only the blocks that were modified " +"during the downtime of a node are synchronized." +msgstr "" +"Эффективная и быстрая повторная синхронизация, так как синхронизируются " +"только блоки, изменённые во время простоя узла." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2149 +msgid "" +"Can be used in an already deployed environment to add additional redundancy." +msgstr "" +"Может использоваться в уже развернутой среде для добавления дополнительной " +"избыточности." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2150 +msgid "" +"Together with CARP, Heartbeat, or other tools, it can be used to build a " +"robust and durable storage system." +msgstr "" +"Вместе с CARP, Heartbeat или другими инструментами он может использоваться " +"для создания надежной и отказоустойчивой системы хранения данных." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2152 +msgid "After reading this section, you will know:" +msgstr "Прочитав этот раздел, вы узнаете:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2154 +msgid "What HAST is, how it works, and which features it provides." +msgstr "Что такое HAST, как он работает и какие возможности предоставляет." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2155 +msgid "How to set up and use HAST on FreeBSD." +msgstr "Как настроить и использовать HAST в FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2156 +msgid "How to integrate CARP and man:devd[8] to build a robust storage system." +msgstr "" +"Как интегрировать CARP и man:devd[8] для создания надежной системы хранения " +"данных." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2158 +msgid "Before reading this section, you should:" +msgstr "Прежде чем читать этот раздел, вы должны:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2160 +msgid "" +"Understand UNIX(R) and FreeBSD basics (crossref:basics[basics,FreeBSD " +"Basics])." +msgstr "" +"Понимать основы UNIX(R) и FreeBSD (crossref:basics[basics,Основы FreeBSD])." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2161 +msgid "" +"Know how to configure network interfaces and other core FreeBSD subsystems " +"(crossref:config[config-tuning,Configuration and Tuning])." +msgstr "" +"Знать, как настраивать сетевые интерфейсы и другие основные подсистемы " +"FreeBSD (crossref:config[config-tuning,Настройка и оптимизация])." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2162 +msgid "" +"Have a good understanding of FreeBSD networking (crossref:partiv[network-" +"communication,\"Network Communication\"])." +msgstr "" +"Хорошо разбираться в сетевых возможностях FreeBSD (crossref:partiv[network-" +"communication,\"Сетевое взаимодействие\"])." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2164 +msgid "" +"The HAST project was sponsored by The FreeBSD Foundation with support from " +"http://www.omc.net/[http://www.omc.net/] and http://www.transip.nl/[http://" +"www.transip.nl/]." +msgstr "" +"Проект HAST был поддержан The FreeBSD Foundation при участии http://" +"www.omc.net/[http://www.omc.net/] и http://www.transip.nl/[http://" +"www.transip.nl/]." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:2165 +#, no-wrap +msgid "HAST Operation" +msgstr "Работа HAST" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2169 +msgid "" +"HAST provides synchronous block-level replication between two physical " +"machines: the _primary_ node and the _secondary_ node. These two machines " +"together are referred to as a cluster." +msgstr "" +"HAST обеспечивает синхронную репликацию на блочном уровне между двумя " +"физическими машинами: _primary_ (основной) узел и _secondary_ (вторичный) " +"узел. Вместе эти две машины называются кластером." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2173 +msgid "" +"Since HAST works in a primary-secondary configuration, it allows only one of " +"the cluster nodes to be active at any given time. The primary node, also " +"called _active_, is the one which will handle all the I/O requests to HAST-" +"managed devices. The secondary node is automatically synchronized from the " +"primary node." +msgstr "" +"Поскольку HAST работает в конфигурации \"основной-вторичный\", он позволяет " +"только одному узлу кластера быть активным в любой момент времени. Основной " +"узел, также называемый _активным_, обрабатывает все запросы ввода-вывода для " +"устройств, управляемых HAST. Вторичный узел автоматически синхронизируется с " +"основным." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2175 +msgid "" +"The physical components of the HAST system are the local disk on primary " +"node, and the disk on the remote, secondary node." +msgstr "" +"Физические компоненты системы HAST включают локальный диск на основном узле " +"и диск на удаленном, резервном узле." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2179 +msgid "" +"HAST operates synchronously on a block level, making it transparent to file " +"systems and applications. HAST provides regular GEOM providers in " +"[.filename]#/dev/hast/# for use by other tools or applications. There is no " +"difference between using HAST-provided devices and raw disks or partitions." +msgstr "" +"HAST работает синхронно на блочном уровне, что делает его прозрачным для " +"файловых систем и приложений. HAST предоставляет обычные GEOM-провайдеры в " +"[.filename]#/dev/hast/# для использования другими инструментами или " +"приложениями. Нет разницы между использованием устройств, предоставляемых " +"HAST, и использованием обычных дисков или разделов." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2183 +msgid "" +"Each write, delete, or flush operation is sent to both the local disk and to " +"the remote disk over TCP/IP. Each read operation is served from the local " +"disk, unless the local disk is not up-to-date or an I/O error occurs. In " +"such cases, the read operation is sent to the secondary node." +msgstr "" +"Каждая операция записи, удаления или сброса данных отправляется как на " +"локальный диск, так и на удалённый диск через TCP/IP. Каждая операция чтения " +"выполняется с локального диска, если только локальный диск не содержит " +"актуальных данных или не возникает ошибка ввода-вывода. В таких случаях " +"операция чтения отправляется на вторичный узел." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2187 +msgid "" +"HAST tries to provide fast failure recovery. For this reason, it is " +"important to reduce synchronization time after a node's outage. To provide " +"fast synchronization, HAST manages an on-disk bitmap of dirty extents and " +"only synchronizes those during a regular synchronization, with an exception " +"of the initial sync." +msgstr "" +"HAST стремится обеспечить быстрое восстановление после сбоев. По этой " +"причине важно сократить время синхронизации после отказа узла. Для быстрой " +"синхронизации HAST использует битовую карту грязных экстентов на диске и " +"синхронизирует только их в процессе обычной синхронизации, за исключением " +"начальной синхронизации." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2190 +msgid "" +"There are many ways to handle synchronization. HAST implements several " +"replication modes to handle different synchronization methods:" +msgstr "" +"Существует множество способов обработки синхронизации. HAST реализует " +"несколько режимов репликации для работы с различными методами синхронизации:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2192 +msgid "" +"_memsync_: This mode reports a write operation as completed when the local " +"write operation is finished and when the remote node acknowledges data " +"arrival, but before actually storing the data. The data on the remote node " +"will be stored directly after sending the acknowledgement. This mode is " +"intended to reduce latency, but still provides good reliability. This mode " +"is the default." +msgstr "" +"_memsync_: В этом режиме операция записи считается завершённой, когда " +"локальная операция записи завершена и когда удалённый узел подтверждает " +"получение данных, но до фактического сохранения данных. Данные на удалённом " +"узле будут сохранены сразу после отправки подтверждения. Этот режим " +"предназначен для уменьшения задержки, но при этом обеспечивает хорошую " +"надёжность. Этот режим используется по умолчанию." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2193 +msgid "" +"_fullsync_: This mode reports a write operation as completed when both the " +"local write and the remote write complete. This is the safest and the " +"slowest replication mode." +msgstr "" +"_fullsync_: В этом режиме операция записи считается завершённой, когда " +"завершается как локальная, так и удалённая запись. Это самый безопасный и " +"самый медленный режим репликации." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2194 +msgid "" +"_async_: This mode reports a write operation as completed when the local " +"write completes. This is the fastest and the most dangerous replication " +"mode. It should only be used when replicating to a distant node where " +"latency is too high for other modes." +msgstr "" +"_async_: В этом режиме операция записи считается завершенной, как только " +"завершается локальная запись. Это самый быстрый и самый опасный режим " +"репликации. Он должен использоваться только при репликации на удаленный " +"узел, где задержка слишком высока для других режимов." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:2195 +#, no-wrap +msgid "HAST Configuration" +msgstr "Конфигурация HAST" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2198 +msgid "The HAST framework consists of several components:" +msgstr "Фреймворк HAST состоит из нескольких компонентов:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2200 +msgid "" +"The man:hastd[8] daemon which provides data synchronization. When this " +"daemon is started, it will automatically load `geom_gate.ko`." +msgstr "" +"Демон man:hastd[8], который обеспечивает синхронизацию данных. При запуске " +"этого демона он автоматически загружает модуль `geom_gate.ko`." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2201 +msgid "The userland management utility, man:hastctl[8]." +msgstr "" +"Служебная программа управления пользовательским пространством man:hastctl[8]." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2202 +msgid "" +"The man:hast.conf[5] configuration file. This file must exist before " +"starting hastd." +msgstr "" +"Файл конфигурации man:hast.conf[5]. Этот файл должен существовать до запуска " +"hastd." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2204 +msgid "" +"Users who prefer to statically build `GEOM_GATE` support into the kernel " +"should add this line to the custom kernel configuration file, then rebuild " +"the kernel using the instructions in " +"crossref:kernelconfig[kernelconfig,Configuring the FreeBSD Kernel]:" +msgstr "" +"Пользователи, которые предпочитают статически встраивать поддержку " +"`GEOM_GATE` в ядро, должны добавить следующую строку в файл конфигурации " +"собственного ядра, а затем пересобрать ядро, следуя инструкциям в " +"crossref:kernelconfig[kernelconfig,Настройка ядра FreeBSD]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2208 +#, no-wrap +msgid "options\tGEOM_GATE\n" +msgstr "options\tGEOM_GATE\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2214 +msgid "" +"The following example describes how to configure two nodes in primary-" +"secondary operation using HAST to replicate the data between the two. The " +"nodes will be called `hasta`, with an IP address of `172.16.0.1`, and " +"`hastb`, with an IP address of `172.16.0.2`. Both nodes will have a " +"dedicated hard drive [.filename]#/dev/ad6# of the same size for HAST " +"operation. The HAST pool, sometimes referred to as a resource or the GEOM " +"provider in [.filename]#/dev/hast/#, will be called `test`." +msgstr "" +"Следующий пример описывает настройку двух узлов в режиме первичный-вторичный " +"с использованием HAST для репликации данных между ними. Узлы будут " +"называться `hasta` с IP-адресом `172.16.0.1` и `hastb` с IP-адресом " +"`172.16.0.2`. Оба узла будут иметь выделенный жесткий диск [.filename]#/dev/" +"ad6# одинакового размера для работы с HAST. Пул HAST, иногда называемый " +"ресурсом или провайдером GEOM в [.filename]#/dev/hast/#, будет называться " +"`test`." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2218 +msgid "" +"Configuration of HAST is done using [.filename]#/etc/hast.conf#. This file " +"should be identical on both nodes. The simplest configuration is:" +msgstr "" +"Настройка HAST выполняется с помощью файла [.filename]#/etc/hast.conf#. Этот " +"файл должен быть идентичным на обоих узлах. Простейшая конфигурация выглядит " +"следующим образом:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2231 +#, no-wrap +msgid "" +"resource test {\n" +"\ton hasta {\n" +"\t\tlocal /dev/ad6\n" +"\t\tremote 172.16.0.2\n" +"\t}\n" +"\ton hastb {\n" +"\t\tlocal /dev/ad6\n" +"\t\tremote 172.16.0.1\n" +"\t}\n" +"}\n" +msgstr "" +"resource test {\n" +"\ton hasta {\n" +"\t\tlocal /dev/ad6\n" +"\t\tremote 172.16.0.2\n" +"\t}\n" +"\ton hastb {\n" +"\t\tlocal /dev/ad6\n" +"\t\tremote 172.16.0.1\n" +"\t}\n" +"}\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2234 +msgid "For more advanced configuration, refer to man:hast.conf[5]." +msgstr "Для более сложной настройки обратитесь к man:hast.conf[5]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2238 +msgid "" +"It is also possible to use host names in the `remote` statements if the " +"hosts are resolvable and defined either in [.filename]#/etc/hosts# or in the " +"local DNS." +msgstr "" +"Также можно использовать имена хостов в операторах `remote`, если хосты " +"разрешаемы и определены либо в [.filename]#/etc/hosts#, либо в локальном DNS." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2242 +msgid "" +"Once the configuration exists on both nodes, the HAST pool can be created. " +"Run these commands on both nodes to place the initial metadata onto the " +"local disk and to start man:hastd[8]:" +msgstr "" +"После создания конфигурации на обоих узлах можно создать пул HAST. Выполните " +"следующие команды на обоих узлах, чтобы разместить начальные метаданные на " +"локальном диске и запустить man:hastd[8]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2247 +#, no-wrap +msgid "" +"# hastctl create test\n" +"# service hastd onestart\n" +msgstr "" +"# hastctl create test\n" +"# service hastd onestart\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2253 +msgid "" +"It is _not_ possible to use GEOM providers with an existing file system or " +"to convert an existing storage to a HAST-managed pool. This procedure needs " +"to store some metadata on the provider and there will not be enough required " +"space available on an existing provider." +msgstr "" +"Невозможно использовать провайдеры GEOM с существующей файловой системой или " +"преобразовать существующее хранилище в пул под управлением HAST. Эта " +"процедура требует хранения некоторых метаданных на провайдере, и на " +"существующем провайдере не будет достаточно необходимого пространства." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2257 +msgid "" +"A HAST node's `primary` or `secondary` role is selected by an administrator, " +"or software like Heartbeat, using man:hastctl[8]. On the primary node, " +"`hasta`, issue this command:" +msgstr "" +"Роль `primary` или `secondary` узла HAST выбирается администратором или " +"программным обеспечением, таким как Heartbeat, с помощью man:hastctl[8]. На " +"основном узле `hasta` выполните следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2261 +#, no-wrap +msgid "# hastctl role primary test\n" +msgstr "# hastctl role primary test\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2264 +msgid "Run this command on the secondary node, `hastb`:" +msgstr "Выполните эту команду на дополнительном узле, `hastb`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2268 +#, no-wrap +msgid "# hastctl role secondary test\n" +msgstr "# hastctl role secondary test\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2271 +msgid "Verify the result by running `hastctl` on each node:" +msgstr "Проверьте результат, выполнив `hastctl` на каждом узле:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2275 +#, no-wrap +msgid "# hastctl status test\n" +msgstr "# hastctl status test\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2281 +msgid "" +"Check the `status` line in the output. If it says `degraded`, something is " +"wrong with the configuration file. It should say `complete` on each node, " +"meaning that the synchronization between the nodes has started. The " +"synchronization completes when `hastctl status` reports 0 bytes of `dirty` " +"extents." +msgstr "" +"Проверьте строку `status` в выводе. Если там указано `degraded`, значит, с " +"файлом конфигурации что-то не так. На каждом узле должно быть указано " +"`complete`, что означает начало синхронизации между узлами. Синхронизация " +"завершается, когда `hastctl status` сообщает о 0 байтах в `dirty` экстентах." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2286 +msgid "" +"The next step is to create a file system on the GEOM provider and mount it. " +"This must be done on the `primary` node. Creating the file system can take " +"a few minutes, depending on the size of the hard drive. This example " +"creates a UFS file system on [.filename]#/dev/hast/test#:" +msgstr "" +"Следующий шаг — создать файловую систему на провайдере GEOM и смонтировать " +"её. Это должно быть выполнено на узле `primary`. Создание файловой системы " +"может занять несколько минут в зависимости от размера жёсткого диска. В этом " +"примере создаётся файловая система UFS на [.filename]#/dev/hast/test#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2292 +#, no-wrap +msgid "" +"# newfs -U /dev/hast/test\n" +"# mkdir /hast/test\n" +"# mount /dev/hast/test /hast/test\n" +msgstr "" +"# newfs -U /dev/hast/test\n" +"# mkdir /hast/test\n" +"# mount /dev/hast/test /hast/test\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2296 +msgid "" +"Once the HAST framework is configured properly, the final step is to make " +"sure that HAST is started automatically during system boot. Add this line " +"to [.filename]#/etc/rc.conf#:" +msgstr "" +"После правильной настройки структуры HAST последним шагом является " +"обеспечение автоматического запуска HAST во время загрузки системы. Добавьте " +"следующую строку в [.filename]#/etc/rc.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2300 +#, no-wrap +msgid "hastd_enable=\"YES\"\n" +msgstr "hastd_enable=\"YES\"\n" + +#. type: Title ==== +#: documentation/content/en/books/handbook/disks/_index.adoc:2302 +#, no-wrap +msgid "Failover Configuration" +msgstr "Конфигурация отказоустойчивости" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2306 +msgid "" +"The goal of this example is to build a robust storage system which is " +"resistant to the failure of any given node. If the primary node fails, the " +"secondary node is there to take over seamlessly, check and mount the file " +"system, and continue to work without missing a single bit of data." +msgstr "" +"Цель данного примера — создать надежную систему хранения, устойчивую к " +"отказу любого узла. Если основной узел выходит из строя, резервный узел " +"готов взять на себя управление без перерывов, проверить и смонтировать " +"файловую систему, продолжив работу без потери данных." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2312 +msgid "" +"To accomplish this task, the Common Address Redundancy Protocol (CARP) is " +"used to provide for automatic failover at the IP layer. CARP allows " +"multiple hosts on the same network segment to share an IP address. Set up " +"CARP on both nodes of the cluster according to the documentation available " +"in crossref:advanced-networking[carp,“Common Address Redundancy Protocol " +"(CARP)”]. In this example, each node will have its own management IP " +"address and a shared IP address of _172.16.0.254_. The primary HAST node of " +"the cluster must be the primary CARP node." +msgstr "" +"Для выполнения этой задачи используется Протокол избыточности общих адресов " +"(CARP — Common Address Redundancy Protocol), который обеспечивает " +"автоматическое переключение на резервный узел на IP-уровне. CARP позволяет " +"нескольким узлам в одном сетевом сегменте совместно использовать один IP-" +"адрес. Настройте CARP на обоих узлах кластера в соответствии с " +"документацией, доступной в crossref:advanced-networking[carp,“Common Address " +"Redundancy Protocol (CARP)”]. В этом примере каждый узел будет иметь свой " +"собственный управляющий IP-адрес и общий IP-адрес _172.16.0.254_. Основной " +"узел HAST в кластере должен быть основным узлом CARP." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2316 +msgid "" +"The HAST pool created in the previous section is now ready to be exported to " +"the other hosts on the network. This can be accomplished by exporting it " +"through NFS or Samba, using the shared IP address _172.16.0.254_. The only " +"problem which remains unresolved is an automatic failover should the primary " +"node fail." +msgstr "" +"Созданный в предыдущем разделе пул HAST теперь готов к экспорту на другие " +"узлы в сети. Это можно осуществить, экспортировав его через NFS или Samba, " +"используя общий IP-адрес _172.16.0.254_. Единственная оставшаяся нерешенной " +"проблема — это автоматический переход на резервный узел в случае отказа " +"основного." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2320 +msgid "" +"In the event of CARP interfaces going up or down, the FreeBSD operating " +"system generates a man:devd[8] event, making it possible to watch for state " +"changes on the CARP interfaces. A state change on the CARP interface is an " +"indication that one of the nodes failed or came back online. These state " +"change events make it possible to run a script which will automatically " +"handle the HAST failover." +msgstr "" +"В случае перехода интерфейсов CARP в состояние \"включен\" или \"выключен\", " +"операционная система FreeBSD генерирует событие man:devd[8], что позволяет " +"отслеживать изменения состояния интерфейсов CARP. Изменение состояния " +"интерфейса CARP указывает на то, что один из узлов вышел из строя или " +"вернулся в онлайн. Эти события изменения состояния позволяют запускать " +"скрипт для автоматической обработки переключения при отказе в HAST." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2322 +msgid "" +"To catch state changes on the CARP interfaces, add this configuration to " +"[.filename]#/etc/devd.conf# on each node, while replacing `<vhid>` with the " +"virtual host id and `<ifname>` with the associated interface name:" +msgstr "" +"Для отслеживания изменений состояния на интерфейсах CARP добавьте следующую " +"конфигурацию в [.filename]#/etc/devd.conf# на каждом узле, заменив `<vhid>` " +"на идентификатор виртуального хоста и `<ifname>` на имя соответствующего " +"интерфейса:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2331 +#, no-wrap +msgid "" +"notify 30 {\n" +"\tmatch \"system\" \"CARP\";\n" +"\tmatch \"subsystem\" \"<vhid>@<ifname>\";\n" +"\tmatch \"type\" \"MASTER\";\n" +"\taction \"/usr/local/sbin/carp-hast-switch primary\";\n" +"};\n" +msgstr "" +"notify 30 {\n" +"\tmatch \"system\" \"CARP\";\n" +"\tmatch \"subsystem\" \"<vhid>@<ifname>\";\n" +"\tmatch \"type\" \"MASTER\";\n" +"\taction \"/usr/local/sbin/carp-hast-switch primary\";\n" +"};\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2338 +#, no-wrap +msgid "" +"notify 30 {\n" +"\tmatch \"system\" \"CARP\";\n" +"\tmatch \"subsystem\" \"<vhid>@<ifname>\";\n" +"\tmatch \"type\" \"BACKUP\";\n" +"\taction \"/usr/local/sbin/carp-hast-switch secondary\";\n" +"};\n" +msgstr "" +"notify 30 {\n" +"\tmatch \"system\" \"CARP\";\n" +"\tmatch \"subsystem\" \"<vhid>@<ifname>\";\n" +"\tmatch \"type\" \"BACKUP\";\n" +"\taction \"/usr/local/sbin/carp-hast-switch secondary\";\n" +"};\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2341 +msgid "" +"Restart man:devd[8] on both nodes to put the new configuration into effect:" +msgstr "" +"Перезапустите man:devd[8] на обоих узлах, чтобы новая конфигурация вступила " +"в силу:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2345 +#, no-wrap +msgid "# service devd restart\n" +msgstr "# service devd restart\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2349 +msgid "" +"When the specified interface state changes by going up or down , the system " +"generates a notification, allowing the man:devd[8] subsystem to run the " +"specified automatic failover script, [.filename]#/usr/local/sbin/carp-hast-" +"switch#. For further clarification about this configuration, refer to " +"man:devd.conf[5]." +msgstr "" +"Когда состояние указанного интерфейса изменяется (переход вверх или вниз), " +"система генерирует уведомление, позволяющее подсистеме man:devd[8] запустить " +"указанный скрипт автоматического переключения [.filename]#/usr/local/sbin/" +"carp-hast-switch#. Для дополнительных пояснений о данной конфигурации " +"обратитесь к man:devd.conf[5]." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2351 +msgid "Here is an example of an automated failover script:" +msgstr "Вот пример скрипта автоматического переключения при отказе:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2355 +#, no-wrap +msgid "#!/bin/sh\n" +msgstr "#!/bin/sh\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2359 +#, no-wrap +msgid "" +"# Original script by Freddie Cash <fjwcash@gmail.com>\n" +"# Modified by Michael W. Lucas <mwlucas@BlackHelicopters.org>\n" +"# and Viktor Petersson <vpetersson@wireload.net>\n" +msgstr "" +"# Original script by Freddie Cash <fjwcash@gmail.com>\n" +"# Modified by Michael W. Lucas <mwlucas@BlackHelicopters.org>\n" +"# and Viktor Petersson <vpetersson@wireload.net>\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2362 +#, no-wrap +msgid "" +"# The names of the HAST resources, as listed in /etc/hast.conf\n" +"resources=\"test\"\n" +msgstr "" +"# The names of the HAST resources, as listed in /etc/hast.conf\n" +"resources=\"test\"\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2366 +#, no-wrap +msgid "" +"# delay in mounting HAST resource after becoming primary\n" +"# make your best guess\n" +"delay=3\n" +msgstr "" +"# delay in mounting HAST resource after becoming primary\n" +"# make your best guess\n" +"delay=3\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2370 +#, no-wrap +msgid "" +"# logging\n" +"log=\"local0.debug\"\n" +"name=\"carp-hast\"\n" +msgstr "" +"# logging\n" +"log=\"local0.debug\"\n" +"name=\"carp-hast\"\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2372 +#, no-wrap +msgid "# end of user configurable stuff\n" +msgstr "# end of user configurable stuff\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2377 +#, no-wrap +msgid "" +"case \"$1\" in\n" +"\tprimary)\n" +"\t\tlogger -p $log -t $name \"Switching to primary provider for ${resources}.\"\n" +"\t\tsleep ${delay}\n" +msgstr "" +"case \"$1\" in\n" +"\tprimary)\n" +"\t\tlogger -p $log -t $name \"Switching to primary provider for ${resources}.\"\n" +"\t\tsleep ${delay}\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2383 +#, no-wrap +msgid "" +"\t\t# Wait for any \"hastd secondary\" processes to stop\n" +"\t\tfor disk in ${resources}; do\n" +"\t\t\twhile $( pgrep -lf \"hastd: ${disk} \\(secondary\\)\" > /dev/null 2>&1 ); do\n" +"\t\t\t\tsleep 1\n" +"\t\t\tdone\n" +msgstr "" +"\t\t# Wait for any \"hastd secondary\" processes to stop\n" +"\t\tfor disk in ${resources}; do\n" +"\t\t\twhile $( pgrep -lf \"hastd: ${disk} \\(secondary\\)\" > /dev/null 2>&1 ); do\n" +"\t\t\t\tsleep 1\n" +"\t\t\tdone\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2391 +#, no-wrap +msgid "" +"\t\t\t# Switch role for each disk\n" +"\t\t\thastctl role primary ${disk}\n" +"\t\t\tif [ $? -ne 0 ]; then\n" +"\t\t\t\tlogger -p $log -t $name \"Unable to change role to primary for resource ${disk}.\"\n" +"\t\t\t\texit 1\n" +"\t\t\tfi\n" +"\t\tdone\n" +msgstr "" +"\t\t\t# Switch role for each disk\n" +"\t\t\thastctl role primary ${disk}\n" +"\t\t\tif [ $? -ne 0 ]; then\n" +"\t\t\t\tlogger -p $log -t $name \"Unable to change role to primary for resource ${disk}.\"\n" +"\t\t\t\texit 1\n" +"\t\t\tfi\n" +"\t\tdone\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2398 +#, no-wrap +msgid "" +"\t\t# Wait for the /dev/hast/* devices to appear\n" +"\t\tfor disk in ${resources}; do\n" +"\t\t\tfor I in $( jot 60 ); do\n" +"\t\t\t\t[ -c \"/dev/hast/${disk}\" ] && break\n" +"\t\t\t\tsleep 0.5\n" +"\t\t\tdone\n" +msgstr "" +"\t\t# Wait for the /dev/hast/* devices to appear\n" +"\t\tfor disk in ${resources}; do\n" +"\t\t\tfor I in $( jot 60 ); do\n" +"\t\t\t\t[ -c \"/dev/hast/${disk}\" ] && break\n" +"\t\t\t\tsleep 0.5\n" +"\t\t\tdone\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2404 +#, no-wrap +msgid "" +"\t\t\tif [ ! -c \"/dev/hast/${disk}\" ]; then\n" +"\t\t\t\tlogger -p $log -t $name \"GEOM provider /dev/hast/${disk} did not appear.\"\n" +"\t\t\t\texit 1\n" +"\t\t\tfi\n" +"\t\tdone\n" +msgstr "" +"\t\t\tif [ ! -c \"/dev/hast/${disk}\" ]; then\n" +"\t\t\t\tlogger -p $log -t $name \"GEOM provider /dev/hast/${disk} did not appear.\"\n" +"\t\t\t\texit 1\n" +"\t\t\tfi\n" +"\t\tdone\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2406 +#, no-wrap +msgid "\t\tlogger -p $log -t $name \"Role for HAST resources ${resources} switched to primary.\"\n" +msgstr "\t\tlogger -p $log -t $name \"Role for HAST resources ${resources} switched to primary.\"\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2413 +#, no-wrap +msgid "" +"\t\tlogger -p $log -t $name \"Mounting disks.\"\n" +"\t\tfor disk in ${resources}; do\n" +"\t\t\tmkdir -p /hast/${disk}\n" +"\t\t\tfsck -p -y -t ufs /dev/hast/${disk}\n" +"\t\t\tmount /dev/hast/${disk} /hast/${disk}\n" +"\t\tdone\n" +msgstr "" +"\t\tlogger -p $log -t $name \"Mounting disks.\"\n" +"\t\tfor disk in ${resources}; do\n" +"\t\t\tmkdir -p /hast/${disk}\n" +"\t\t\tfsck -p -y -t ufs /dev/hast/${disk}\n" +"\t\t\tmount /dev/hast/${disk} /hast/${disk}\n" +"\t\tdone\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2415 +#, no-wrap +msgid "\t;;\n" +msgstr "\t;;\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2418 +#, no-wrap +msgid "" +"\tsecondary)\n" +"\t\tlogger -p $log -t $name \"Switching to secondary provider for ${resources}.\"\n" +msgstr "" +"\tsecondary)\n" +"\t\tlogger -p $log -t $name \"Switching to secondary provider for ${resources}.\"\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2436 +#, no-wrap +msgid "" +"\t\t# Switch roles for the HAST resources\n" +"\t\tfor disk in ${resources}; do\n" +"\t\t\tif ! mount | grep -q \"^/dev/hast/${disk} on \"\n" +"\t\t\tthen\n" +"\t\t\telse\n" +"\t\t\t\tumount -f /hast/${disk}\n" +"\t\t\tfi\n" +"\t\t\tsleep $delay\n" +"\t\t\thastctl role secondary ${disk} 2>&1\n" +"\t\t\tif [ $? -ne 0 ]; then\n" +"\t\t\t\tlogger -p $log -t $name \"Unable to switch role to secondary for resource ${disk}.\"\n" +"\t\t\t\texit 1\n" +"\t\t\tfi\n" +"\t\t\tlogger -p $log -t $name \"Role switched to secondary for resource ${disk}.\"\n" +"\t\tdone\n" +"\t;;\n" +"esac\n" +msgstr "" +"\t\t# Switch roles for the HAST resources\n" +"\t\tfor disk in ${resources}; do\n" +"\t\t\tif ! mount | grep -q \"^/dev/hast/${disk} on \"\n" +"\t\t\tthen\n" +"\t\t\telse\n" +"\t\t\t\tumount -f /hast/${disk}\n" +"\t\t\tfi\n" +"\t\t\tsleep $delay\n" +"\t\t\thastctl role secondary ${disk} 2>&1\n" +"\t\t\tif [ $? -ne 0 ]; then\n" +"\t\t\t\tlogger -p $log -t $name \"Unable to switch role to secondary for resource ${disk}.\"\n" +"\t\t\t\texit 1\n" +"\t\t\tfi\n" +"\t\t\tlogger -p $log -t $name \"Role switched to secondary for resource ${disk}.\"\n" +"\t\tdone\n" +"\t;;\n" +"esac\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2439 +msgid "" +"In a nutshell, the script takes these actions when a node becomes primary:" +msgstr "" +"В двух словах, скрипт выполняет следующие действия, когда узел становится " +"основным:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2441 +msgid "Promotes the HAST pool to primary on the other node." +msgstr "Переводит пул HAST в primary на другом узле." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2442 +msgid "Checks the file system under the HAST pool." +msgstr "Проверяет файловую систему в пуле HAST." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2443 +msgid "Mounts the pool." +msgstr "Подключает пул." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2445 +msgid "When a node becomes secondary:" +msgstr "Когда узел становится вторичным:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2447 +msgid "Unmounts the HAST pool." +msgstr "Размонтирует пул HAST." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2448 +msgid "Degrades the HAST pool to secondary." +msgstr "Переводит пул HAST в состояние secondary." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2453 +msgid "" +"This is just an example script which serves as a proof of concept. It does " +"not handle all the possible scenarios and can be extended or altered in any " +"way, for example, to start or stop required services." +msgstr "" +"Это просто пример скрипта, который служит доказательством концепции. Он не " +"обрабатывает все возможные сценарии и может быть расширен или изменён любым " +"способом, например, для запуска или остановки необходимых служб." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2459 +msgid "" +"For this example, a standard UFS file system was used. To reduce the time " +"needed for recovery, a journal-enabled UFS or ZFS file system can be used " +"instead." +msgstr "" +"Для этого примера использовалась стандартная файловая система UFS. Чтобы " +"сократить время, необходимое для восстановления, можно использовать " +"журналируемую UFS или файловую систему ZFS." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2462 +msgid "" +"Instead of using the highly available storage locally, it can also be shared " +"to other computers on a network via crossref:network-servers[network-" +"nfs,NFS], crossref:network-servers[network-iscsi,iSCSI], man:sshfs[1], or " +"programs in ports (i.e. package:net/samba419[])." +msgstr "" +"Вместо использования высокодоступного хранилища локально, его также можно " +"предоставить в общее пользование другим компьютерам в сети через " +"crossref:network-servers[network-nfs,NFS], crossref:network-servers[network-" +"iscsi,iSCSI], man:sshfs[1] или программы из портов (например, package:net/" +"samba419[])." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2464 +msgid "" +"More detailed information with additional examples can be found at http://" +"wiki.FreeBSD.org/HAST[http://wiki.FreeBSD.org/HAST]." +msgstr "" +"Более подробная информация с дополнительными примерами доступна по адресу " +"http://wiki.FreeBSD.org/HAST[http://wiki.FreeBSD.org/HAST]." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:2465 +#, no-wrap +msgid "Troubleshooting" +msgstr "Устранение неполадок" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2470 +msgid "" +"HAST should generally work without issues. However, as with any other " +"software product, there may be times when it does not work as supposed. The " +"sources of the problems may be different, but the rule of thumb is to ensure " +"that the time is synchronized between the nodes of the cluster." +msgstr "" +"HAST, как правило, должен работать без проблем. Однако, как и с любым другим " +"программным продуктом, могут возникнуть ситуации, когда он работает не так, " +"как предполагается. Источники проблем могут быть разными, но главное правило " +"— обеспечить синхронизацию времени между узлами кластера." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2474 +msgid "" +"When troubleshooting HAST, the debugging level of man:hastd[8] should be " +"increased by starting `hastd` with `-d`. This argument may be specified " +"multiple times to further increase the debugging level. Consider also using " +"`-F`, which starts `hastd` in the foreground." +msgstr "" +"При устранении неполадок HAST уровень отладки man:hastd[8] следует повысить, " +"запустив `hastd` с параметром `-d`. Этот аргумент можно указать несколько " +"раз для дальнейшего повышения уровня отладки. Также рекомендуется " +"использовать `-F`, что запускает `hastd` в foreground." + +#. type: Title ==== +#: documentation/content/en/books/handbook/disks/_index.adoc:2476 +#, no-wrap +msgid "Recovering from the Split-brain Condition" +msgstr "Восстановление после раскола кластера" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2481 +msgid "" +"_Split-brain_ occurs when the nodes of the cluster are unable to communicate " +"with each other, and both are configured as primary. This is a dangerous " +"condition because it allows both nodes to make incompatible changes to the " +"data. This problem must be corrected manually by the system administrator." +msgstr "" +"_Раскол_ (split-brain) возникает, когда узлы кластера не могут связаться " +"друг с другом, и оба настроены как первичные. Это опасная ситуация, так как " +"она позволяет обоим узлам вносить противоречивые изменения в данные. Данная " +"проблема должна быть устранена вручную системным администратором." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2485 +msgid "" +"The administrator must either decide which node has more important changes, " +"or perform the merge manually. Then, let HAST perform full synchronization " +"of the node which has the broken data. To do this, issue these commands on " +"the node which needs to be resynchronized:" +msgstr "" +"Администратор должен либо определить, на каком узле находятся более важные " +"изменения, либо выполнить слияние вручную. Затем следует позволить HAST " +"выполнить полную синхронизацию узла с повреждёнными данными. Для этого " +"выполните следующие команды на узле, который требует повторной синхронизации:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2491 +#, no-wrap +msgid "" +"# hastctl role init test\n" +"# hastctl create test\n" +"# hastctl role secondary test\n" +msgstr "" +"# hastctl role init test\n" +"# hastctl create test\n" +"# hastctl role secondary test\n" |