# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR The FreeBSD Project # This file is distributed under the same license as the FreeBSD Documentation package. # Vladlen Popolitov , 2025, 2026. msgid "" msgstr "" "Project-Id-Version: FreeBSD Documentation VERSION\n" "POT-Creation-Date: 2026-02-22 15:58+0000\n" "PO-Revision-Date: 2026-03-09 04:45+0000\n" "Last-Translator: Vladlen Popolitov \n" "Language-Team: Russian \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: 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: part #: documentation/content/en/books/handbook/disks/_index.adoc:1 #, no-wrap msgid "Part III. System Administration" msgstr "Часть III. Администрирование системы" #. type: YAML Front Matter: 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 #: documentation/content/en/books/handbook/disks/_index.adoc:2158 msgid "Read this chapter to learn:" 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:" 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: 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: 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\n" msgstr "" "umass0: 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: 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\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" " at scbus4 target 0 lun 0 (pass3,da0)\n" msgstr "" "# camcontrol devlist\n" " 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: at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (2mA)\n" msgstr "" "# usbconfig\n" "ugen0.3: 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: 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: 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: 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: 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" " at scbus1 target 0 lun 0 (cd0,pass0)\n" msgstr "" "# camcontrol devlist\n" " 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: delimited block = 4 #: 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 #, no-wrap msgid "*Procedure: Steps to Format a Floppy*\n" 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: Plain text #: 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: delimited block = 4 #: 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: delimited block = 4 #: 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: delimited block = 4 #: 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: delimited block = 4 #: 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: Plain text #: 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: delimited block = 4 #: 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: delimited block = 4 #: 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: delimited block = 4 #: 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 soft updates: file system " "snapshots." msgstr "" "FreeBSD предлагает функцию в сочетании с мягкими обновлениями: создание " "снимков файловой системы." #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:1492 msgid "" "UFS snapshots allow a user to create images of specified file systems, and " "treat them as a file. When 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:1497 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:1500 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:1503 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:1507 #, 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:1510 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:1514 #, 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:1517 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:1521 #, 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:1524 msgid "Once a snapshot has been created, it has several uses:" msgstr "" "После создания моментального снимка он может быть использован несколькими " "способами:" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:1526 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:1527 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:1528 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:1529 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:1534 #, 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:1540 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:1545 #, 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:1548 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:1550 #, no-wrap msgid "Disk Quotas" msgstr "Квоты на диске" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:1554 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:1557 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:1558 #, no-wrap msgid "Enabling Disk Quotas" msgstr "Включение квот на диске" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:1561 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:1566 #, 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:1570 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:1574 #, no-wrap msgid "options QUOTA\n" msgstr "options QUOTA\n" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:1577 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:1581 #, no-wrap msgid "quota_enable=\"YES\"\n" msgstr "quota_enable=\"YES\"\n" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:1587 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:1591 #, no-wrap msgid "check_quotas=\"NO\"\n" msgstr "check_quotas=\"NO\"\n" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:1596 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:1600 #, 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:1604 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:1608 #, 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:1613 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:1615 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:1618 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:1619 #, no-wrap msgid "Setting Quota Limits" msgstr "Установка ограничений квот" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:1622 msgid "To verify that quotas are enabled, run:" msgstr "Для проверки включения квот выполните:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/disks/_index.adoc:1626 #, no-wrap msgid "# quota -v\n" msgstr "# quota -v\n" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:1629 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:1631 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:1635 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:1640 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:1644 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:1648 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:1657 #, 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:1663 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:1667 #, 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:1670 msgid "The new quota limits take effect upon exiting the editor." msgstr "Новые ограничения квот вступают в силу после выхода из редактора." #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:1675 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:1679 #, 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:1682 msgid "For more information, refer to man:edquota[8]." msgstr "Для получения дополнительной информации обратитесь к man:edquota[8]." #. type: Title === #: documentation/content/en/books/handbook/disks/_index.adoc:1683 #, no-wrap msgid "Checking Quota Limits and Disk Usage" msgstr "Проверка ограничений квот и использования диска" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:1689 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:1693 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:1700 #, 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:1704 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:1705 #, no-wrap msgid "Quotas over NFS" msgstr "Квоты по NFS" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:1709 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:1711 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:1715 #, 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:1718 msgid "Then, restart `inetd`:" msgstr "Затем перезапустите `inetd`:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/disks/_index.adoc:1722 #, no-wrap msgid "# service inetd restart\n" msgstr "# service inetd restart\n" #. type: Title == #: documentation/content/en/books/handbook/disks/_index.adoc:1725 #, no-wrap msgid "Encrypting Disk Partitions" msgstr "Шифрование разделов диска" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:1730 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:1734 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:1737 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: delimited block = 4 #: documentation/content/en/books/handbook/disks/_index.adoc:1741 msgid "GBDE disk-encryption is deprecated, and removed in FreeBSD 15.0." msgstr "Подсистема шифрования дисков GBDE устарела и удалена в FreeBSD 15.0." #. type: Title === #: documentation/content/en/books/handbook/disks/_index.adoc:1743 #, no-wrap msgid "Disk Encryption with gbde" msgstr "Шифрование диска с gbde" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:1748 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:1753 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:1755 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:1759 #, no-wrap msgid "# kldload geom_bde\n" msgstr "# kldload geom_bde\n" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:1762 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:1764 msgid "`options GEOM_BDE`" msgstr "`options GEOM_BDE`" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:1766 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:1768 #, no-wrap msgid "Procedure: Encrypting a Partition with gbde" msgstr "Процедура: Шифрование раздела с помощью gbde" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:1770 msgid "Add the New Hard Drive" msgstr "Добавьте новый жёсткий диск" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:1773 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:1780 #, 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:1783 msgid "Create a Directory to Hold `gbde` Lock Files" msgstr "Создайте каталог для хранения файлов блокировок `gbde`" #. type: delimited block . 4 #: documentation/content/en/books/handbook/disks/_index.adoc:1787 #, no-wrap msgid "# mkdir /etc/gbde\n" msgstr "# mkdir /etc/gbde\n" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:1792 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:1793 msgid "Initialize the `gbde` Partition" msgstr "Инициализируйте раздел `gbde`" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:1798 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:1810 #, 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:1816 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:1820 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:1825 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:1828 msgid "Attach the Encrypted Partition to the Kernel" msgstr "Присоедините зашифрованный раздел к ядру" #. type: delimited block . 4 #: documentation/content/en/books/handbook/disks/_index.adoc:1832 #, 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:1836 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:1843 #, 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:1846 msgid "Create a File System on the Encrypted Device" msgstr "Создайте файловую систему на зашифрованном устройстве" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:1850 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:1854 #, 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:1857 msgid "Mount the Encrypted Partition" msgstr "Смонтируйте зашифрованный раздел" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:1859 msgid "Create a mount point and mount the encrypted file system:" msgstr "" "Создайте точку монтирования и подключите зашифрованную файловую систему:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/disks/_index.adoc:1864 #, 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:1867 msgid "Verify That the Encrypted File System is Available" msgstr "Проверьте, что зашифрованная файловая система доступна" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:1869 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:1880 #, 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:1884 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:1890 #, 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:1895 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:1901 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:1905 #, no-wrap msgid "# gbde detach /dev/ad4s1c\n" msgstr "# gbde detach /dev/ad4s1c\n" #. type: Title === #: documentation/content/en/books/handbook/disks/_index.adoc:1909 #, no-wrap msgid "Disk Encryption with `geli`" msgstr "Шифрование диска с помощью `geli`" #. type: delimited block = 4 #: documentation/content/en/books/handbook/disks/_index.adoc:1914 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:1916 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:1917 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:1918 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:1919 msgid "Allows the use of two independent keys." msgstr "Позволяет использование двух независимых ключей." #. type: delimited block = 4 #: documentation/content/en/books/handbook/disks/_index.adoc:1920 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:1921 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:1922 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:1924 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:1930 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:1932 #, no-wrap msgid "Procedure: Encrypting a Partition with `geli`" msgstr "Процедура: Шифрование раздела с помощью `geli`" #. type: delimited block = 4 #: documentation/content/en/books/handbook/disks/_index.adoc:1934 msgid "Load `geli` Support" msgstr "Загрузите поддержку `geli`" #. type: delimited block = 4 #: documentation/content/en/books/handbook/disks/_index.adoc:1936 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:1940 #, 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:1943 msgid "To load the kernel module now:" msgstr "Чтобы загрузить модуль ядра сейчас:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/disks/_index.adoc:1947 #, no-wrap msgid "# kldload geom_eli\n" msgstr "# kldload geom_eli\n" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:1950 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:1955 #, 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:1958 msgid "Generate the Master Key" msgstr "Сгенерируйте мастер-ключа" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:1965 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:1972 #, 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:1975 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:1978 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:1982 #, 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:1985 msgid "Attach the Provider with the Generated Key" msgstr "Присоедините поставщика с сгенерированным Ключом" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:1987 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:1992 #, 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:1995 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:2000 #, 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:2003 msgid "Create the New File System" msgstr "Создайте новую файловую систему" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:2005 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:2011 #, 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:2014 msgid "The encrypted file system should now be available for use:" msgstr "" "Зашифрованная файловая система теперь должна быть доступна для использования:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/disks/_index.adoc:2025 #, 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:2028 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:2033 #, 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:2036 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:2041 #, 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:2051 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:2053 #, no-wrap msgid "Encrypting Swap" msgstr "Шифрование раздела подкачки" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:2060 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:2063 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:2064 #, no-wrap msgid "Configuring Encrypted Swap" msgstr "Настройка зашифрованного раздела подкачки" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:2068 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:2072 #, 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:2075 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:2080 #, 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:2083 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:2088 #, 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:2093 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:2094 #, no-wrap msgid "aalgo" msgstr "aalgo" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:2097 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:2098 #, no-wrap msgid "ealgo" msgstr "ealgo" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:2101 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:2102 #, no-wrap msgid "keylen" msgstr "keylen" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:2105 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:2106 #, no-wrap msgid "sectorsize" msgstr "sectorsize" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:2110 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:2112 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:2117 #, 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:2119 #, no-wrap msgid "Encrypted Swap Verification" msgstr "Проверка зашифрованного раздела подкачки" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:2122 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:2124 msgid "If man:gbde[8] is being used:" msgstr "Если используется man:gbde[8]:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/disks/_index.adoc:2130 #, 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:2133 msgid "If man:geli[8] is being used:" msgstr "Если используется man:geli[8]:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/disks/_index.adoc:2139 #, 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:2142 #, no-wrap msgid "Highly Available Storage (HAST)" msgstr "Высокодоступное хранилище (HAST)" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:2148 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 фреймворк 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:2150 msgid "The following are the main features of HAST:" msgstr "Основные возможности HAST:" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:2152 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:2153 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:2154 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:2155 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:2156 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:2160 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:2161 msgid "How to set up and use HAST on FreeBSD." msgstr "Как настроить и использовать HAST в FreeBSD." #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:2162 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:2164 msgid "Before reading this section:" msgstr "Прежде чем читать этот раздел, вы должны:" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:2166 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:2167 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:2168 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:2170 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 был поддержан Фондом FreeBSD при участии 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:2171 #, no-wrap msgid "HAST Operation" msgstr "Работа HAST" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:2175 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:2179 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:2181 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:2185 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:2189 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:2193 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:2196 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:2198 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:2199 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:2200 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:2201 #, no-wrap msgid "HAST Configuration" msgstr "Конфигурация HAST" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:2204 msgid "The HAST framework consists of several components:" msgstr "Фреймворк HAST состоит из нескольких компонентов:" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:2206 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:2207 msgid "The userland management utility, man:hastctl[8]." msgstr "" "Служебная программа управления пользовательским пространством man:hastctl[8]." #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:2208 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:2210 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:2214 #, no-wrap msgid "options\tGEOM_GATE\n" msgstr "options\tGEOM_GATE\n" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:2220 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:2224 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:2237 #, 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:2240 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:2244 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:2248 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:2253 #, 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:2259 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:2263 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:2267 #, 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:2270 msgid "Run this command on the secondary node, `hastb`:" msgstr "Выполните эту команду на дополнительном узле, `hastb`:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/disks/_index.adoc:2274 #, 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:2277 msgid "Verify the result by running `hastctl` on each node:" msgstr "Проверьте результат, выполнив `hastctl` на каждом узле:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/disks/_index.adoc:2281 #, no-wrap msgid "# hastctl status test\n" msgstr "# hastctl status test\n" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:2287 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:2292 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:2298 #, 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:2302 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:2306 #, no-wrap msgid "hastd_enable=\"YES\"\n" msgstr "hastd_enable=\"YES\"\n" #. type: Title ==== #: documentation/content/en/books/handbook/disks/_index.adoc:2308 #, no-wrap msgid "Failover Configuration" msgstr "Конфигурация отказоустойчивости" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:2312 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:2318 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:2322 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:2326 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:2328 msgid "" "To catch state changes on the CARP interfaces, add this configuration to [." "filename]#/etc/devd.conf# on each node, while replacing `` with the " "virtual host id and `` with the associated interface name:" msgstr "" "Для отслеживания изменений состояния на интерфейсах CARP добавьте следующую " "конфигурацию в [.filename]#/etc/devd.conf# на каждом узле, заменив `` " "на идентификатор виртуального хоста и `` на имя соответствующего " "интерфейса:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/disks/_index.adoc:2337 #, no-wrap msgid "" "notify 30 {\n" "\tmatch \"system\" \"CARP\";\n" "\tmatch \"subsystem\" \"@\";\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\" \"@\";\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:2344 #, no-wrap msgid "" "notify 30 {\n" "\tmatch \"system\" \"CARP\";\n" "\tmatch \"subsystem\" \"@\";\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\" \"@\";\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:2347 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:2351 #, no-wrap msgid "# service devd restart\n" msgstr "# service devd restart\n" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:2355 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:2357 msgid "Here is an example of an automated failover script:" msgstr "Вот пример скрипта автоматического переключения при отказе:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/disks/_index.adoc:2361 #, no-wrap msgid "#!/bin/sh\n" msgstr "#!/bin/sh\n" #. type: delimited block . 4 #: documentation/content/en/books/handbook/disks/_index.adoc:2365 #, no-wrap msgid "" "# Original script by Freddie Cash \n" "# Modified by Michael W. Lucas \n" "# and Viktor Petersson \n" msgstr "" "# Original script by Freddie Cash \n" "# Modified by Michael W. Lucas \n" "# and Viktor Petersson \n" #. type: delimited block . 4 #: documentation/content/en/books/handbook/disks/_index.adoc:2368 #, 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:2372 #, 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:2376 #, 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:2378 #, 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:2383 #, 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:2389 #, 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:2397 #, 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:2404 #, 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:2410 #, 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:2412 #, 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:2419 #, 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:2421 #, no-wrap msgid "\t;;\n" msgstr "\t;;\n" #. type: delimited block . 4 #: documentation/content/en/books/handbook/disks/_index.adoc:2424 #, 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:2442 #, 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:2445 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:2447 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:2448 msgid "Checks the file system under the HAST pool." msgstr "Проверяет файловую систему в пуле HAST." #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:2449 msgid "Mounts the pool." msgstr "Подключает пул." #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:2451 msgid "When a node becomes secondary:" msgstr "Когда узел становится вторичным:" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:2453 msgid "Unmounts the HAST pool." msgstr "Размонтирует пул HAST." #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:2454 msgid "Degrades the HAST pool to secondary." msgstr "Переводит пул HAST в состояние secondary." #. type: delimited block = 4 #: documentation/content/en/books/handbook/disks/_index.adoc:2459 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:2465 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:2468 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:2470 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:2471 #, no-wrap msgid "Troubleshooting" msgstr "Устранение неполадок" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:2476 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:2480 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:2482 #, no-wrap msgid "Recovering from the Split-brain Condition" msgstr "Восстановление после раскола кластера" #. type: Plain text #: documentation/content/en/books/handbook/disks/_index.adoc:2487 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:2491 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:2497 #, 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" #~ msgid "After reading this section, you will know:" #~ msgstr "Прочитав этот раздел, вы узнаете:"