diff options
Diffstat (limited to 'documentation/content/en/books/handbook/disks/_index.po')
-rw-r--r-- | documentation/content/en/books/handbook/disks/_index.po | 5018 |
1 files changed, 5018 insertions, 0 deletions
diff --git a/documentation/content/en/books/handbook/disks/_index.po b/documentation/content/en/books/handbook/disks/_index.po new file mode 100644 index 0000000000..1124a6ec62 --- /dev/null +++ b/documentation/content/en/books/handbook/disks/_index.po @@ -0,0 +1,5018 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2024-01-17 20:35-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\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 "" + +#. type: YAML Front Matter: part +#: documentation/content/en/books/handbook/disks/_index.adoc:1 +#, no-wrap +msgid "Part III. System Administration" +msgstr "" + +#. type: YAML Front Matter: title +#: documentation/content/en/books/handbook/disks/_index.adoc:1 +#, no-wrap +msgid "Chapter 20. Storage" +msgstr "" + +#. type: Title = +#: documentation/content/en/books/handbook/disks/_index.adoc:14 +#, no-wrap +msgid "Storage" +msgstr "" + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:52 +#, no-wrap +msgid "Synopsis" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:56 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:58 +msgid "After reading this chapter, you will know:" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:60 +msgid "How to add additional hard disks to a FreeBSD system." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:61 +msgid "How to grow the size of a disk's partition on FreeBSD." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:62 +msgid "How to configure FreeBSD to use USB storage devices." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:63 +msgid "How to use CD and DVD media on a FreeBSD system." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:64 +msgid "How to use the backup programs available under FreeBSD." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:65 +msgid "How to set up memory disks." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:66 +msgid "What file system snapshots are and how to use them efficiently." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:67 +msgid "How to use quotas to limit disk space usage." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:68 +msgid "How to encrypt disks and swap to secure them against attackers." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:69 +msgid "How to configure a highly available storage network." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:71 +msgid "Before reading this chapter, you should:" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:73 +msgid "" +"Know how to crossref:kernelconfig[kernelconfig,configure and install a new " +"FreeBSD kernel]." +msgstr "" + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:75 +#, no-wrap +msgid "Adding Disks" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:80 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:83 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:86 +msgid "" +"For this example, a single large partition will be created on the new disk. " +"The http://en.wikipedia.org/wiki/GUID_Partition_Table[GPT] partitioning " +"scheme will be used in preference to the older and less versatile MBR scheme." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:91 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:95 +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:100 +#, no-wrap +msgid "" +"# gpart create -s GPT ada1\n" +"# gpart add -t freebsd-ufs -a 1M ada1\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:104 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:106 +msgid "The disk partition information can be viewed with `gpart show`:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:114 +#, 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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:117 +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:121 +#, no-wrap +msgid "# newfs -U /dev/ada1p1\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:124 +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:128 +#, no-wrap +msgid "# mkdir /newdisk\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:131 +msgid "" +"Finally, an entry is added to [.filename]#/etc/fstab# so the new disk will " +"be mounted automatically at startup:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:135 +#, no-wrap +msgid "/dev/ada1p1\t/newdisk\tufs\trw\t2\t2\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:138 +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:142 +#, no-wrap +msgid "# mount /newdisk\n" +msgstr "" + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:145 +#, no-wrap +msgid "Resizing and Growing Disks" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:151 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:154 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:156 +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:165 +#, 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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:171 +msgid "" +"If the disk was formatted with the http://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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:176 +#, no-wrap +msgid "" +"# gpart recover ada0\n" +"ada0 recovered\n" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:181 +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:190 +#, 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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:195 +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:197 +msgid "Disable the swap partition:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:201 +#, no-wrap +msgid "# swapoff /dev/ada0p3\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:204 +msgid "" +"Delete the third partition, specified by the `-i` flag, from the disk _ada0_." +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:214 +#, 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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:222 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:226 +#, no-wrap +msgid "# sysctl kern.geom.debugflags=16\n" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:235 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:245 +#, 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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:249 +msgid "" +"Recreate the swap partition and activate it. If no size is specified with `-" +"s`, all remaining space is used:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:260 +#, 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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:263 +msgid "" +"Grow the UFS file system to use the new capacity of the resized partition:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:273 +#, 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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:276 +msgid "" +"If the file system is ZFS, the resize is triggered by running the `online` " +"subcommand with `-e`:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:280 +#, no-wrap +msgid "# zpool online -e zroot /dev/ada0p2\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:283 +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:285 +#, no-wrap +msgid "USB Storage Devices" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:289 +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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:294 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:298 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:311 +#, 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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:315 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:317 +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 "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:318 +#, no-wrap +msgid "Device Configuration" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:323 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:335 +#, no-wrap +msgid "" +"umass0: <STECH Simple Drive, class 0/0, rev 2.00/1.04, addr 3> on usbus0\n" +"umass0: SCSI over Bulk-Only; quirks = 0x0100\n" +"umass0:4:0:-1: Attached to scbus4\n" +"da0 at umass-sim0 bus 0 scbus4 target 0 lun 0\n" +"da0: <STECH Simple Drive 1.04> Fixed Direct Access SCSI-4 device\n" +"da0: Serial Number WD-WXE508CAN263\n" +"da0: 40.000MB/s transfers\n" +"da0: 152627MB (312581808 512 byte sectors: 255H 63S/T 19457C)\n" +"da0: quirks=0x2<NO_6_BYTE>\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:338 +msgid "" +"The brand, device node ([.filename]#da0#), speed, and size will differ " +"according to the device." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:340 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:345 +#, no-wrap +msgid "" +"# camcontrol devlist\n" +"<STECH Simple Drive 1.04> at scbus4 target 0 lun 0 (pass3,da0)\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:349 +msgid "" +"Alternately, `usbconfig` can be used to list the device. Refer to man:" +"usbconfig[8] for more information about this command." +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:354 +#, no-wrap +msgid "" +"# usbconfig\n" +"ugen0.3: <Simple Drive STECH> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (2mA)\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:358 +msgid "" +"If the device has not been formatted, refer to <<disks-adding>> 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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:363 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:367 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:372 +#, no-wrap +msgid "" +"[localrules=5]\n" +"add path 'da*' mode 0660 group operator\n" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:377 +msgid "" +"If internal SCSI disks are also installed in the system, change the second " +"line as follows:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:381 +#, no-wrap +msgid "add path 'da[3-9]*' mode 0660 group operator\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:386 +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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:389 +msgid "Next, enable the ruleset in [.filename]#/etc/rc.conf#:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:393 +#, no-wrap +msgid "devfs_system_ruleset=\"localrules\"\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:396 +msgid "" +"Then, instruct the system to allow regular users to mount file systems by " +"adding the following line to [.filename]#/etc/sysctl.conf#:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:400 +#, no-wrap +msgid "vfs.usermount=1\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:403 +msgid "" +"Since this only takes effect after the next reboot, use `sysctl` to set this " +"variable now:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:408 +#, no-wrap +msgid "" +"# sysctl vfs.usermount=1\n" +"vfs.usermount: 0 -> 1\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:414 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:419 +#, no-wrap +msgid "" +"# mkdir /mnt/username\n" +"# chown username:usergroup /mnt/username\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:423 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:427 +#, no-wrap +msgid "% mount -t msdosfs -o -m=644,-M=755 /dev/da0s1 /mnt/username\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:430 +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:434 +#, no-wrap +msgid "% umount /mnt/username\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:437 +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:444 +#, no-wrap +msgid "" +"umass0: at uhub3, port 2, addr 3 (disconnected)\n" +"da0 at umass-sim0 bus 0 scbus4 target 0 lun 0\n" +"da0: <STECH Simple Drive 1.04> s/n WD-WXE508CAN263 detached\n" +"(da0:umass-sim0:0:0:0): Periph destroyed\n" +msgstr "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:446 +#, no-wrap +msgid "Automounting Removable Media" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:449 +msgid "" +"USB devices can be automatically mounted by uncommenting this line in [." +"filename]#/etc/auto_master#:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:453 +#, no-wrap +msgid "/media\t\t-media\t\t-nosuid\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:456 +msgid "Then add these lines to [.filename]#/etc/devd.conf#:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:464 +#, no-wrap +msgid "" +"notify 100 {\n" +"\tmatch \"system\" \"GEOM\";\n" +"\tmatch \"subsystem\" \"DEV\";\n" +"\taction \"/usr/sbin/automount -c\";\n" +"};\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:467 +msgid "" +"Reload the configuration if man:autofs[5] and man:devd[8] are already " +"running:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:472 +#, no-wrap +msgid "" +"# service automount restart\n" +"# service devd restart\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:475 +msgid "" +"man:autofs[5] can be set to start at boot by adding this line to [." +"filename]#/etc/rc.conf#:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:479 +#, no-wrap +msgid "autofs_enable=\"YES\"\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:482 +msgid "man:autofs[5] requires man:devd[8] to be enabled, as it is by default." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:484 +msgid "Start the services immediately with:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:491 +#, no-wrap +msgid "" +"# service automount start\n" +"# service automountd start\n" +"# service autounmountd start\n" +"# service devd start\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:496 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:499 +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:503 +#, no-wrap +msgid "# automount -fu\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:507 +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 "" + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:509 +#, no-wrap +msgid "Creating and Using CD Media" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:515 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:519 +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 "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:521 +#, no-wrap +msgid "Supported Devices" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:525 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:527 +msgid "For a SCSI burner, make sure these options are present:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:534 +#, 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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:537 +msgid "For a USB burner, make sure these options are present:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:550 +#, 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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:553 +msgid "For an ATAPI burner, make sure these options are present:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:560 +#, 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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:565 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:569 +#, no-wrap +msgid "device atapicam\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:572 +msgid "" +"Alternately, this driver can be loaded at boot time by adding the following " +"line to [.filename]#/boot/loader.conf#:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:576 +#, no-wrap +msgid "atapicam_load=\"YES\"\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:579 +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:583 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:592 +#, no-wrap +msgid "" +"% dmesg | grep cd\n" +"cd0 at ahcich1 bus 0 scbus1 target 0 lun 0\n" +"cd0: <HL-DT-ST DVDRAM GU70N LT20> Removable CD-ROM SCSI-0 device\n" +"cd0: Serial Number M3OD3S34152\n" +"cd0: 150.000MB/s transfers (SATA 1.x, UDMA6, ATAPI 12bytes, PIO 8192bytes)\n" +"cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed\n" +msgstr "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:595 +#, no-wrap +msgid "Burning a CD" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:599 +msgid "" +"In FreeBSD, `cdrecord` can be used to burn CDs. This command is installed " +"with the package:sysutils/cdrtools[] package or port." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:602 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:606 +#, no-wrap +msgid "# cdrecord dev=device imagefile.iso\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:609 +msgid "" +"To determine the device name of the burner, use `-scanbus` which might " +"produce results like this:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:633 +#, 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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:638 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:640 +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:645 +#, no-wrap +msgid "" +"# camcontrol devlist\n" +"<MATSHITA CDRW/DVD UJDA740 1.00> at scbus1 target 0 lun 0 (cd0,pass0)\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:649 +msgid "" +"Use the numeric values for `scbus`, `target`, and `lun`. For this example, " +"`1,0,0` is the device name to use." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:651 +#, no-wrap +msgid "Writing Data to an ISO File System" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:656 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:660 +#, no-wrap +msgid "# mkisofs -o imagefile.iso /path/to/tree\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:663 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:666 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:669 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:677 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:681 +#, no-wrap +msgid "# mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:684 +msgid "The resulting ISO image can be mounted as a memory disk with:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:689 +#, no-wrap +msgid "" +"# mdconfig -a -t vnode -f /tmp/bootable.iso -u 0\n" +"# mount -t cd9660 /dev/md0 /mnt\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:692 +msgid "" +"One can then verify that [.filename]#/mnt# and [.filename]#/tmp/myboot# are " +"identical." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:695 +msgid "" +"There are many other options available for `mkisofs` to fine-tune its " +"behavior. Refer to man:mkisofs[8] for details." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:700 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:704 +#, no-wrap +msgid "# dd if=/dev/cd0 of=file.iso bs=2048\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:707 +msgid "" +"The resulting image file can be burned to CD as described in <<cdrecord>>." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:710 +#, no-wrap +msgid "Using Data CDs" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:713 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:717 +#, no-wrap +msgid "# mount -t cd9660 /dev/cd0 /mnt\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:720 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:725 +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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:730 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:734 +#, no-wrap +msgid "cd9660_iconv_load=\"YES\"\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:737 +msgid "" +"and then rebooting the machine, or by directly loading the module with " +"`kldload`." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:742 +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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:746 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:750 +#, no-wrap +msgid "options SCSI_DELAY=15000\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:753 +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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:758 +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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:762 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:766 +#, no-wrap +msgid "# tar xzvf /dev/cd1\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:769 +msgid "In order to mount a data CD, the data must be written using `mkisofs`." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:772 +#, no-wrap +msgid "Duplicating Audio CDs" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:775 +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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:778 +msgid "" +"<<using-cdrecord>> 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 <<atapicam>>." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/handbook/disks/_index.adoc:781 +#, no-wrap +msgid "Procedure: Duplicating an Audio CD" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:783 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:787 +#, no-wrap +msgid "% cdda2wav -vall -B -Owav\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:791 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:792 +msgid "Use `cdrecord` to write the [.filename]#.wav# files:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:796 +#, no-wrap +msgid "% cdrecord -v dev=2,0 -dao -useinfo *.wav\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:799 +msgid "" +"Make sure that _2,0_ is set appropriately, as described in <<cdrecord>>." +msgstr "" + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:801 +#, no-wrap +msgid "Creating and Using DVD Media" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:805 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:807 +msgid "Five physical recordable formats can be defined for a recordable DVD:" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:809 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:810 +msgid "" +"DVD-RW: This is the rewritable version of the DVD-R standard. A DVD-RW can " +"be rewritten about 1000 times." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:811 +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 <<creating-dvd-ram>> for more information on DVD-RAM use." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:812 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:813 +msgid "DVD+R: This format is the write once variation of the DVD+RW format." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:815 +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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:821 +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 "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:823 +#, no-wrap +msgid "Configuration" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:827 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:831 +msgid "" +"These tools use the SCSI subsystem to access the devices, therefore " +"<<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 <<usb-disks>> for more details on USB device " +"configuration." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:833 +msgid "" +"DMA access must also be enabled for ATAPI devices, by adding the following " +"line to [.filename]#/boot/loader.conf#:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:837 +#: documentation/content/en/books/handbook/disks/_index.adoc:1070 +#, no-wrap +msgid "hw.ata.atapi_dma=\"1\"\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:840 +msgid "" +"Before attempting to use dvd+rw-tools, consult the http://fy.chalmers.se/" +"~appro/linux/DVD+RW/hcn.html[Hardware Compatibility Notes]." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:844 +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 "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:846 +#, no-wrap +msgid "Burning Data DVDs" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:850 +msgid "" +"Since man:growisofs[1] is a front-end to <<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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:852 +msgid "" +"To burn to a DVD+R or a DVD-R the data in [.filename]#/path/to/data#, use " +"the following command:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:856 +#, no-wrap +msgid "# growisofs -dvd-compat -Z /dev/cd0 -J -R /path/to/data\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:860 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:865 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:867 +msgid "To burn a pre-mastered image, such as _imagefile.iso_, use:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:871 +#, no-wrap +msgid "# growisofs -dvd-compat -Z /dev/cd0=imagefile.iso\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:875 +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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:882 +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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:884 +msgid "To create this type of ISO file:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:888 +#, no-wrap +msgid "% mkisofs -R -J -udf -iso-level 3 -o imagefile.iso /path/to/data\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:891 +msgid "To burn files directly to a disk:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:895 +#, no-wrap +msgid "# growisofs -dvd-compat -udf -iso-level 3 -Z /dev/cd0 -J -R /path/to/data\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:898 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:901 +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 "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:903 +#, no-wrap +msgid "Burning a DVD-Video" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:907 +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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:910 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:914 +#, no-wrap +msgid "# growisofs -Z /dev/cd0 -dvd-video /path/to/video\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:918 +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 "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:919 +#, no-wrap +msgid "Using a DVD+RW" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:924 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:928 +#: documentation/content/en/books/handbook/disks/_index.adoc:1018 +#, no-wrap +msgid "# dvd+rw-format /dev/cd0\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:932 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:935 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:939 +#, no-wrap +msgid "# growisofs -Z /dev/cd0 -J -R /path/to/newdata\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:944 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:946 +msgid "For example, to append data to a DVD+RW, use the following:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:950 +#: documentation/content/en/books/handbook/disks/_index.adoc:1038 +#, no-wrap +msgid "# growisofs -M /dev/cd0 -J -R /path/to/nextdata\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:953 +msgid "" +"The same man:mkisofs[8] options used to burn the initial session should be " +"used during next writes." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:958 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:961 +msgid "To blank the media, use:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:965 +#, no-wrap +msgid "# growisofs -Z /dev/cd0=/dev/zero\n" +msgstr "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:967 +#, no-wrap +msgid "Using a DVD-RW" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:971 +msgid "" +"A DVD-RW accepts two disc formats: incremental sequential and restricted " +"overwrite. By default, DVD-RW discs are in sequential format." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:974 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:976 +msgid "To blank a DVD-RW in sequential mode:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:980 +#: documentation/content/en/books/handbook/disks/_index.adoc:1025 +#, no-wrap +msgid "# dvd+rw-format -blank=full /dev/cd0\n" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:987 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:991 +#, no-wrap +msgid "# growisofs -use-the-force-luke=dao -Z /dev/cd0=imagefile.iso\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:994 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:996 +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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:999 +msgid "" +"To write data on a sequential DVD-RW, use the same instructions as for the " +"other DVD formats:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1003 +#, no-wrap +msgid "# growisofs -Z /dev/cd0 -J -R /path/to/data\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1007 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1012 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1014 +msgid "" +"To put a DVD-RW in restricted overwrite format, the following command must " +"be used:" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1021 +msgid "To change back to sequential format, use:" +msgstr "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1027 +#, no-wrap +msgid "Multi-Session" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1032 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1034 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1043 +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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1048 +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 "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1050 +#, no-wrap +msgid "For More Information" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1053 +msgid "" +"To obtain more information about a DVD, use `dvd+rw-mediainfo _/dev/cd0_` " +"while the disc in the specified drive." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1055 +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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1059 +msgid "" +"When creating a problem report related to the use of dvd+rw-tools, always " +"include the output of `dvd+rw-mediainfo`." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1062 +#, no-wrap +msgid "Using a DVD-RAM" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1066 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1075 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1081 +#, no-wrap +msgid "" +"# dd if=/dev/zero of=/dev/acd0 bs=2k count=1\n" +"# bsdlabel -Bw acd0\n" +"# newfs /dev/acd0\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1084 +msgid "" +"The DVD device, [.filename]#acd0#, must be changed according to the " +"configuration." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1086 +msgid "" +"Once the DVD-RAM has been formatted, it can be mounted as a normal hard " +"drive:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1090 +#, no-wrap +msgid "# mount /dev/acd0 /mnt\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1093 +msgid "Once mounted, the DVD-RAM will be both readable and writeable." +msgstr "" + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:1095 +#, no-wrap +msgid "Creating and Using Floppy Disks" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1098 +msgid "This section explains how to format a 3.5 inch floppy disk in FreeBSD." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1102 +#, no-wrap +msgid "*Procedure: Steps to Format a Floppy*\n" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1107 +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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1109 +msgid "" +"To format the floppy, insert a new 3.5 inch floppy disk into the first " +"floppy drive and issue:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1113 +#, no-wrap +msgid "# /usr/sbin/fdformat -f 1440 /dev/fd0\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1116 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1118 +msgid "To write the disk label, use man:bsdlabel[8]:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1122 +#, no-wrap +msgid "# /sbin/bsdlabel -B -w /dev/fd0 fd1440\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1125 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1127 +msgid "To format the floppy with FAT, issue:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1131 +#, no-wrap +msgid "# /sbin/newfs_msdos /dev/fd0\n" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1137 +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 "" + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:1139 +#, no-wrap +msgid "Using NTFS Disks" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1142 +msgid "This section explains how to mount NTFS disks in FreeBSD." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1147 +msgid "" +"NTFS (New Technology File System) is a proprietary journaling file system " +"developed by Microsoft(R). It has been the default file system in Microsoft " +"Windows(R) for many years. FreeBSD can mount NTFS volumes using a FUSE file " +"system. These file systems are implemented as user space programs which " +"interact with the man:fusefs[5] kernel module via a well defined interface." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1151 +#, no-wrap +msgid "*Procedure: Steps to Mount a NTFS Disk*\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1154 +msgid "" +"Before using a FUSE file system we need to load the man:fusefs[5] kernel " +"module:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1158 +#, no-wrap +msgid "# kldload fusefs\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1161 +msgid "Use man:sysrc[8] to load the module at startup:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1165 +#, no-wrap +msgid "# sysrc kld_list+=fusefs\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1168 +msgid "" +"Install the actual NTFS file system from packages as in the example (see " +"crossref:ports[pkgng-intro,Using pkg for Binary Package Management]) or from " +"ports (see crossref:ports[ports-using,Using the Ports Collection]):" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1172 +#, no-wrap +msgid "# pkg install fusefs-ntfs\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1175 +msgid "" +"Last we need to create a directory where the file system will be mounted:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1179 +#, no-wrap +msgid "# mkdir /mnt/usb\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1182 +msgid "" +"Suppose a USB disk is plugged in. The disk partition information can be " +"viewed with man:gpart[8]:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1188 +#, no-wrap +msgid "" +"# gpart show da0\n" +"=>\t 63 1953525105 da0 MBR (932G)\n" +"\t 63 1953525105 1 ntfs (932G)\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1191 +msgid "We can mount the disk using the following command:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1195 +#, no-wrap +msgid "# ntfs-3g /dev/da0s1 /mnt/usb/\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1197 +msgid "The disk is now ready to use." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1199 +msgid "Additionally, an entry can be added to /etc/fstab:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1203 +#, no-wrap +msgid "/dev/da0s1 /mnt/usb\tntfs mountprog=/usr/local/bin/ntfs-3g,noauto,rw 0 0\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1206 +msgid "Now the disk can be now mounted with:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1210 +#, no-wrap +msgid "# mount /mnt/usb\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1213 +msgid "The disk can be unmounted with:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1217 +#, no-wrap +msgid "# umount /mnt/usb/\n" +msgstr "" + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:1221 +#, no-wrap +msgid "Backup Basics" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1224 +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:1227 +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:1229 +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:1230 +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:1231 +msgid "" +"Copies of whole file systems or disks which are synchronized with another " +"system on the network using a scheduled package:net/rsync[]." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1232 +msgid "" +"Hardware or software RAID, which minimizes or avoids downtime when a disk " +"fails." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1236 +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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1238 +msgid "" +"This section describes some of the utilities which can be used to create and " +"manage backups on a FreeBSD system." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1239 +#, no-wrap +msgid "File System Backups" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1245 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1249 +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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1253 +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 in order for the " +"restore to succeed." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1257 +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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1260 +msgid "" +"It is possible to backup a file system across the network to a another " +"system or to 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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1263 +msgid "" +"Instead, one can use `dump` and `restore` in a more secure fashion over an " +"SSH connection. This example creates a full, compressed backup of [." +"filename]#/usr# and sends the backup file to the specified host over a SSH " +"connection." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/handbook/disks/_index.adoc:1264 +#, no-wrap +msgid "Using `dump` over ssh" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1271 +#, 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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1275 +msgid "" +"This example sets `RSH` in order to write the backup to a tape drive on a " +"remote system over a SSH connection:" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/handbook/disks/_index.adoc:1276 +#, no-wrap +msgid "Using `dump` over ssh with `RSH` Set" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1282 +#, no-wrap +msgid "# env RSH=/usr/bin/ssh /sbin/dump -0uan -f targetuser@targetmachine.example.com:/dev/sa0 /usr\n" +msgstr "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1285 +#, no-wrap +msgid "Directory Backups" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1288 +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:1292 +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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1295 +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 "" + +#. type: Block title +#: documentation/content/en/books/handbook/disks/_index.adoc:1296 +#, no-wrap +msgid "Backing Up the Current Directory with `tar`" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1302 +#, no-wrap +msgid "# tar czvf /tmp/mybackup.tgz .\n" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1308 +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:1309 +#, no-wrap +msgid "Restoring Up the Current Directory with `tar`" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1315 +#, no-wrap +msgid "# tar xzvf /tmp/mybackup.tgz\n" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1320 +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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1323 +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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1326 +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 "" + +#. type: Block title +#: documentation/content/en/books/handbook/disks/_index.adoc:1327 +#, no-wrap +msgid "Using `ls` and `cpio` to Make a Recursive Backup of the Current Directory" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1333 +#, no-wrap +msgid "# ls -R | cpio -ovF /tmp/mybackup.cpio\n" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1339 +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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1341 +msgid "The `pax` equivalent to the previous examples would be:" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/handbook/disks/_index.adoc:1342 +#, no-wrap +msgid "Backing Up the Current Directory with `pax`" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1348 +#, no-wrap +msgid "# pax -wf /tmp/mybackup.pax .\n" +msgstr "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1352 +#, no-wrap +msgid "Using Data Tapes for Backups" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1357 +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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1361 +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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1364 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1368 +#, no-wrap +msgid "# mt -f /dev/nsa0 fsf 3\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1371 +msgid "This utility supports many operations. Refer to man:mt[1] for details." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1373 +msgid "" +"To write a single file to tape using `tar`, specify the name of the tape " +"device and the file to backup:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1377 +#, no-wrap +msgid "# tar cvf /dev/sa0 file\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1380 +msgid "" +"To recover files from a `tar` archive on tape into the current directory:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1384 +#, no-wrap +msgid "# tar xvf /dev/sa0\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1388 +msgid "" +"To backup a UFS file system, use `dump`. This examples backs up [." +"filename]#/usr# without rewinding the tape when finished:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1392 +#, no-wrap +msgid "# dump -0aL -b64 -f /dev/nsa0 /usr\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1395 +msgid "" +"To interactively restore files from a `dump` file on tape into the current " +"directory:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1399 +#, no-wrap +msgid "# restore -i -f /dev/nsa0\n" +msgstr "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1402 +#, no-wrap +msgid "Third-Party Backup Utilities" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1406 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1408 +msgid "Popular utilities include Amanda, Bacula, rsync, and duplicity." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1409 +#, no-wrap +msgid "Emergency Recovery" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1412 +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:1414 +msgid "Create a print copy of the output of the following commands:" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1416 +msgid "`gpart show`" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1417 +msgid "`more /etc/fstab`" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1418 +msgid "`dmesg`" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1422 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1427 +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:1429 +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:1431 +#, no-wrap +msgid "Memory Disks" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1435 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1439 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1443 +#, no-wrap +msgid "device md\n" +msgstr "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1446 +#, no-wrap +msgid "Attaching and Detaching Existing Images" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1452 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1457 +#, no-wrap +msgid "" +"# mdconfig -f diskimage.iso -u 0\n" +"# mount -t cd9660 /dev/md0 /mnt\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1462 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1466 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1471 +#, no-wrap +msgid "" +"# umount /mnt\n" +"# mdconfig -d -u 0\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1474 +msgid "" +"To determine if any memory disks are still attached to the system, type " +"`mdconfig -l`." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1476 +#, no-wrap +msgid "Creating a File- or Memory-Backed Memory Disk" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1481 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1486 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1500 +#, 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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1504 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1510 +#, 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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1513 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1527 +#, 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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1532 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1536 +#, no-wrap +msgid "# mdmfs -F newimage -s 5m md0 /mnt\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1539 +msgid "" +"To instead create a new memory-based memory disk with `mdmfs`, use this one " +"command:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1543 +#, no-wrap +msgid "# mdmfs -s 5m md1 /mnt\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1547 +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 "" + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:1549 +#, no-wrap +msgid "File System Snapshots" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1552 +msgid "" +"FreeBSD offers a feature in conjunction with crossref:config[soft-updates," +"Soft Updates]: file system snapshots." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1558 +msgid "" +"UFS snapshots allow a user to create images of specified file systems, and " +"treat them as a file. 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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1561 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1564 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1568 +#, no-wrap +msgid "# mount -u -o snapshot /var/snapshot/snap /var\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1571 +msgid "Alternatively, use man:mksnap_ffs[8] to create the snapshot:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1575 +#, no-wrap +msgid "# mksnap_ffs /var /var/snapshot/snap\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1578 +msgid "" +"One can find snapshot files on a file system, such as [.filename]#/var#, " +"using man:find[1]:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1582 +#, no-wrap +msgid "# find /var -flags snapshot\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1585 +msgid "Once a snapshot has been created, it has several uses:" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1587 +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:1588 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1589 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1590 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1595 +#, no-wrap +msgid "" +"# mdconfig -a -t vnode -o readonly -f /var/snapshot/snap -u 4\n" +"# mount -r /dev/md4 /mnt\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1601 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1606 +#, no-wrap +msgid "" +"# umount /mnt\n" +"# mdconfig -d -u 4\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1609 +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 "" + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:1611 +#, no-wrap +msgid "Disk Quotas" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1615 +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:1618 +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 "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1619 +#, no-wrap +msgid "Enabling Disk Quotas" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1622 +msgid "To determine if the FreeBSD kernel provides support for disk quotas:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1627 +#, no-wrap +msgid "" +"% sysctl kern.features.ufs_quota\n" +"kern.features.ufs_quota: 1\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1631 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1635 +#, no-wrap +msgid "options QUOTA\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1638 +msgid "Next, enable disk quotas in [.filename]#/etc/rc.conf#:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1642 +#, no-wrap +msgid "quota_enable=\"YES\"\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1648 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1652 +#, no-wrap +msgid "check_quotas=\"NO\"\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1657 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1661 +#, no-wrap +msgid "/dev/da1s2g /home ufs rw,userquota 1 2\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1665 +msgid "" +"To enable group quotas, use `groupquota` instead. To enable both user and " +"group quotas, separate the options with a comma:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1669 +#, no-wrap +msgid "/dev/da1s2g /home ufs rw,userquota,groupquota 1 2\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1674 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1676 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1679 +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 "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1680 +#, no-wrap +msgid "Setting Quota Limits" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1683 +msgid "To verify that quotas are enabled, run:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1687 +#, no-wrap +msgid "# quota -v\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1690 +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:1692 +msgid "The system is now ready to be assigned quota limits with `edquota`." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1696 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1701 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1705 +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:1709 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1718 +#, 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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1724 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1728 +#, no-wrap +msgid "/usr: kbytes in use: 65, limits (soft = 500, hard = 600)\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1731 +msgid "The new quota limits take effect upon exiting the editor." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1736 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1740 +#, no-wrap +msgid "# edquota -p test 10000-19999\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1743 +msgid "For more information, refer to man:edquota[8]." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1744 +#, no-wrap +msgid "Checking Quota Limits and Disk Usage" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1750 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1754 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1761 +#, 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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1765 +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 "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1766 +#, no-wrap +msgid "Quotas over NFS" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1770 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1772 +msgid "" +"On the NFS server, enable `rpc.rquotad` by removing the `+#+` from this line " +"in [.filename]*/etc/inetd.conf*:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1776 +#, no-wrap +msgid "rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1779 +msgid "Then, restart `inetd`:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1783 +#, no-wrap +msgid "# service inetd restart\n" +msgstr "" + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:1786 +#, no-wrap +msgid "Encrypting Disk Partitions" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1791 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1795 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1798 +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 "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1799 +#, no-wrap +msgid "Disk Encryption with gbde" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1804 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1809 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1811 +msgid "" +"FreeBSD provides a kernel module for gbde which can be loaded with this " +"command:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1815 +#, no-wrap +msgid "# kldload geom_bde\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1818 +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:1820 +msgid "`options GEOM_BDE`" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1822 +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 "" + +#. type: Block title +#: documentation/content/en/books/handbook/disks/_index.adoc:1824 +#, no-wrap +msgid "Procedure: Encrypting a Partition with gbde" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1826 +msgid "Add the New Hard Drive" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1829 +msgid "" +"Install the new drive to the system as explained in <<disks-adding>>. 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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1836 +#, 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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1839 +msgid "Create a Directory to Hold `gbde` Lock Files" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1843 +#, no-wrap +msgid "# mkdir /etc/gbde\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1848 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1849 +msgid "Initialize the `gbde` Partition" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1854 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1867 +#, no-wrap +msgid "" +"# gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c.lock\n" +"# $FreeBSD: src/sbin/gbde/template.txt,v 1.1.36.1 2009/08/03 08:13:06 kensmith Exp $\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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1873 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1877 +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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1882 +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:1885 +msgid "Attach the Encrypted Partition to the Kernel" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1889 +#, no-wrap +msgid "# gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lock\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1893 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1900 +#, 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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1903 +msgid "Create a File System on the Encrypted Device" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1907 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1911 +#, no-wrap +msgid "# newfs -U /dev/ad4s1c.bde\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1914 +msgid "Mount the Encrypted Partition" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1916 +msgid "Create a mount point and mount the encrypted file system:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1921 +#, no-wrap +msgid "" +"# mkdir /private\n" +"# mount /dev/ad4s1c.bde /private\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1924 +msgid "Verify That the Encrypted File System is Available" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1926 +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:1937 +#, 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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1941 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1947 +#, no-wrap +msgid "" +"gbde_autoattach_all=\"YES\"\n" +"gbde_devices=\"ad4s1c\"\n" +"gbde_lockdir=\"/etc/gbde\"\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1952 +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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1958 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1962 +#, no-wrap +msgid "# gbde detach /dev/ad4s1c\n" +msgstr "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1966 +#, no-wrap +msgid "Disk Encryption with `geli`" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1971 +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 "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1973 +msgid "" +"Utilizes the man:crypto[9] framework and automatically uses cryptographic " +"hardware when it is available." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1974 +msgid "" +"Supports multiple cryptographic algorithms such as AES, Blowfish, and 3DES." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1975 +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:1976 +msgid "Allows the use of two independent keys." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1977 +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:1978 +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:1979 +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:1981 +msgid "More features and usage examples can be found in man:geli[8]." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1987 +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 "" + +#. type: Block title +#: documentation/content/en/books/handbook/disks/_index.adoc:1989 +#, no-wrap +msgid "Procedure: Encrypting a Partition with `geli`" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1991 +msgid "Load `geli` Support" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1993 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1997 +#, no-wrap +msgid "geom_eli_load=\"YES\"\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2000 +msgid "To load the kernel module now:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2004 +#, no-wrap +msgid "# kldload geom_eli\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2007 +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:2012 +#, no-wrap +msgid "" +"options GEOM_ELI\n" +"device crypto\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2015 +msgid "Generate the Master Key" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2022 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2029 +#, 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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2032 +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:2035 +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:2039 +#, no-wrap +msgid "# cat keyfile1 keyfile2 keyfile3 | geli init -K - /dev/da2\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2042 +msgid "Attach the Provider with the Generated Key" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2044 +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:2049 +#, no-wrap +msgid "" +"# geli attach -k /root/da2.key /dev/da2\n" +"Enter passphrase:\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2052 +msgid "This creates a new device with an [.filename]#.eli# extension:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2057 +#, no-wrap +msgid "" +"# ls /dev/da2*\n" +"/dev/da2 /dev/da2.eli\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2060 +msgid "Create the New File System" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2062 +msgid "" +"Next, format the device with the UFS file system and mount it on an existing " +"mount point:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2068 +#, 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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2071 +msgid "The encrypted file system should now be available for use:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2082 +#, 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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2085 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2090 +#, no-wrap +msgid "" +"# umount /private\n" +"# geli detach da2.eli\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2093 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2098 +#, no-wrap +msgid "" +"geli_devices=\"da2\"\n" +"geli_da2_flags=\"-k /root/da2.key\"\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2108 +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 "" + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:2110 +#, no-wrap +msgid "Encrypting Swap" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2117 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2120 +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 "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:2121 +#, no-wrap +msgid "Configuring Encrypted Swap" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2125 +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:2129 +#, no-wrap +msgid "# dd if=/dev/random of=/dev/ada0s1b bs=1m\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2132 +msgid "" +"To encrypt the swap partition using man:gbde[8], add the `.bde` suffix to " +"the swap line in [.filename]#/etc/fstab#:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2137 +#, no-wrap +msgid "" +"# Device\t\tMountpoint\tFStype\tOptions\t\tDump\tPass#\n" +"/dev/ada0s1b.bde\tnone\t\tswap\tsw\t\t0\t0\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2140 +msgid "" +"To instead encrypt the swap partition using man:geli[8], use the `.eli` " +"suffix:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2145 +#, no-wrap +msgid "" +"# Device\t\tMountpoint\tFStype\tOptions\t\tDump\tPass#\n" +"/dev/ada0s1b.eli\tnone\t\tswap\tsw\t\t0\t0\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2150 +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 "" + +#. type: Labeled list +#: documentation/content/en/books/handbook/disks/_index.adoc:2151 +#, no-wrap +msgid "aalgo" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2154 +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 "" + +#. type: Labeled list +#: documentation/content/en/books/handbook/disks/_index.adoc:2155 +#, no-wrap +msgid "ealgo" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2158 +msgid "" +"Encryption algorithm used to protect the data. See man:geli[8] for a list " +"of supported algorithms." +msgstr "" + +#. type: Labeled list +#: documentation/content/en/books/handbook/disks/_index.adoc:2159 +#, no-wrap +msgid "keylen" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2162 +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 "" + +#. type: Labeled list +#: documentation/content/en/books/handbook/disks/_index.adoc:2163 +#, no-wrap +msgid "sectorsize" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2167 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2169 +msgid "" +"This example configures an encrypted swap partition using the Blowfish " +"algorithm with a key length of 128 bits and a sectorsize of 4 kilobytes:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2174 +#, no-wrap +msgid "" +"# Device\t\tMountpoint\tFStype\tOptions\t\t\t\tDump\tPass#\n" +"/dev/ada0s1b.eli\tnone\t\tswap\tsw,ealgo=blowfish,keylen=128,sectorsize=4096\t0\t0\n" +msgstr "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:2176 +#, no-wrap +msgid "Encrypted Swap Verification" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2179 +msgid "" +"Once the system has rebooted, proper operation of the encrypted swap can be " +"verified using `swapinfo`." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2181 +msgid "If man:gbde[8] is being used:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2187 +#, no-wrap +msgid "" +"% swapinfo\n" +"Device 1K-blocks Used Avail Capacity\n" +"/dev/ada0s1b.bde 542720 0 542720 0\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2190 +msgid "If man:geli[8] is being used:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2196 +#, no-wrap +msgid "" +"% swapinfo\n" +"Device 1K-blocks Used Avail Capacity\n" +"/dev/ada0s1b.eli 542720 0 542720 0\n" +msgstr "" + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:2199 +#, no-wrap +msgid "Highly Available Storage (HAST)" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2205 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2207 +msgid "The following are the main features of HAST:" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2209 +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:2210 +msgid "" +"File system agnostic as it works with any file system supported by FreeBSD." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2211 +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:2212 +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:2213 +msgid "" +"Together with CARP, Heartbeat, or other tools, it can be used to build a " +"robust and durable storage system." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2215 +msgid "After reading this section, you will know:" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2217 +msgid "What HAST is, how it works, and which features it provides." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2218 +msgid "How to set up and use HAST on FreeBSD." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2219 +msgid "How to integrate CARP and man:devd[8] to build a robust storage system." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2221 +msgid "Before reading this section, you should:" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2223 +msgid "" +"Understand UNIX(R) and FreeBSD basics (crossref:basics[basics,FreeBSD " +"Basics])." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2224 +msgid "" +"Know how to configure network interfaces and other core FreeBSD subsystems " +"(crossref:config[config-tuning,Configuration and Tuning])." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2225 +msgid "" +"Have a good understanding of FreeBSD networking (crossref:partiv[network-" +"communication,\"Network Communication\"])." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2227 +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 "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:2228 +#, no-wrap +msgid "HAST Operation" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2232 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2236 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2238 +msgid "" +"The physical components of the HAST system are the local disk on primary " +"node, and the disk on the remote, secondary node." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2242 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2246 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2250 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2253 +msgid "" +"There are many ways to handle synchronization. HAST implements several " +"replication modes to handle different synchronization methods:" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2255 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2256 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2257 +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 "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:2258 +#, no-wrap +msgid "HAST Configuration" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2261 +msgid "The HAST framework consists of several components:" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2263 +msgid "" +"The man:hastd[8] daemon which provides data synchronization. When this " +"daemon is started, it will automatically load `geom_gate.ko`." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2264 +msgid "The userland management utility, man:hastctl[8]." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2265 +msgid "" +"The man:hast.conf[5] configuration file. This file must exist before " +"starting hastd." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2267 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2271 +#, no-wrap +msgid "options\tGEOM_GATE\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2277 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2281 +msgid "" +"Configuration of HAST is done using [.filename]#/etc/hast.conf#. This file " +"should be identical on both nodes. The simplest configuration is:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2294 +#, 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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2297 +msgid "For more advanced configuration, refer to man:hast.conf[5]." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2301 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2305 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2310 +#, no-wrap +msgid "" +"# hastctl create test\n" +"# service hastd onestart\n" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2316 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2320 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2324 +#, no-wrap +msgid "# hastctl role primary test\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2327 +msgid "Run this command on the secondary node, `hastb`:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2331 +#, no-wrap +msgid "# hastctl role secondary test\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2334 +msgid "Verify the result by running `hastctl` on each node:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2338 +#, no-wrap +msgid "# hastctl status test\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2344 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2349 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2355 +#, no-wrap +msgid "" +"# newfs -U /dev/hast/test\n" +"# mkdir /hast/test\n" +"# mount /dev/hast/test /hast/test\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2359 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2363 +#, no-wrap +msgid "hastd_enable=\"YES\"\n" +msgstr "" + +#. type: Title ==== +#: documentation/content/en/books/handbook/disks/_index.adoc:2365 +#, no-wrap +msgid "Failover Configuration" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2369 +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:2375 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2379 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2383 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2385 +msgid "" +"To catch state changes on the CARP interfaces, add this configuration to [." +"filename]#/etc/devd.conf# on each node:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2394 +#, no-wrap +msgid "" +"notify 30 {\n" +"\tmatch \"system\" \"IFNET\";\n" +"\tmatch \"subsystem\" \"carp0\";\n" +"\tmatch \"type\" \"LINK_UP\";\n" +"\taction \"/usr/local/sbin/carp-hast-switch primary\";\n" +"};\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2401 +#, no-wrap +msgid "" +"notify 30 {\n" +"\tmatch \"system\" \"IFNET\";\n" +"\tmatch \"subsystem\" \"carp0\";\n" +"\tmatch \"type\" \"LINK_DOWN\";\n" +"\taction \"/usr/local/sbin/carp-hast-switch secondary\";\n" +"};\n" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2406 +msgid "" +"If the systems are running FreeBSD 10 or higher, replace [.filename]#carp0# " +"with the name of the CARP-configured interface." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2409 +msgid "" +"Restart man:devd[8] on both nodes to put the new configuration into effect:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2413 +#, no-wrap +msgid "# service devd restart\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2417 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2419 +msgid "Here is an example of an automated failover script:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2423 +#, no-wrap +msgid "#!/bin/sh\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2427 +#, no-wrap +msgid "" +"# Original script by Freddie Cash <fjwcash@gmail.com>\n" +"# Modified by Michael W. Lucas <mwlucas@BlackHelicopters.org>\n" +"# and Viktor Petersson <vpetersson@wireload.net>\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2430 +#, no-wrap +msgid "" +"# The names of the HAST resources, as listed in /etc/hast.conf\n" +"resources=\"test\"\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2434 +#, no-wrap +msgid "" +"# delay in mounting HAST resource after becoming primary\n" +"# make your best guess\n" +"delay=3\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2438 +#, no-wrap +msgid "" +"# logging\n" +"log=\"local0.debug\"\n" +"name=\"carp-hast\"\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2440 +#, no-wrap +msgid "# end of user configurable stuff\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2445 +#, 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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2451 +#, 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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2459 +#, 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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2466 +#, 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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2472 +#, 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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2474 +#, no-wrap +msgid "\t\tlogger -p $log -t $name \"Role for HAST resources ${resources} switched to primary.\"\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2481 +#, 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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2483 +#, no-wrap +msgid "\t;;\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2486 +#, no-wrap +msgid "" +"\tsecondary)\n" +"\t\tlogger -p $log -t $name \"Switching to secondary provider for ${resources}.\"\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2504 +#, 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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2507 +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:2509 +msgid "Promotes the HAST pool to primary on the other node." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2510 +msgid "Checks the file system under the HAST pool." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2511 +msgid "Mounts the pool." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2513 +msgid "When a node becomes secondary:" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2515 +msgid "Unmounts the HAST pool." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2516 +msgid "Degrades the HAST pool to secondary." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2521 +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:2527 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2530 +msgid "" +"More detailed information with additional examples can be found at http://" +"wiki.FreeBSD.org/HAST[http://wiki.FreeBSD.org/HAST]." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:2531 +#, no-wrap +msgid "Troubleshooting" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2536 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2540 +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 "" + +#. type: Title ==== +#: documentation/content/en/books/handbook/disks/_index.adoc:2542 +#, no-wrap +msgid "Recovering from the Split-brain Condition" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2547 +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 "" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2551 +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 "" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2557 +#, no-wrap +msgid "" +"# hastctl role init test\n" +"# hastctl create test\n" +"# hastctl role secondary test\n" +msgstr "" |