aboutsummaryrefslogtreecommitdiff
path: root/documentation/content/en/books/handbook/geom/_index.po
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/content/en/books/handbook/geom/_index.po')
-rw-r--r--documentation/content/en/books/handbook/geom/_index.po2364
1 files changed, 2364 insertions, 0 deletions
diff --git a/documentation/content/en/books/handbook/geom/_index.po b/documentation/content/en/books/handbook/geom/_index.po
new file mode 100644
index 0000000000..614d5c4a67
--- /dev/null
+++ b/documentation/content/en/books/handbook/geom/_index.po
@@ -0,0 +1,2364 @@
+# 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/geom/_index.adoc:1
+#, no-wrap
+msgid "In FreeBSD, the GEOM framework permits access and control to classes, such as Master Boot Records and BSD labels, through the use of providers, or the disk devices in /dev."
+msgstr ""
+
+#. type: YAML Front Matter: part
+#: documentation/content/en/books/handbook/geom/_index.adoc:1
+#, no-wrap
+msgid "Part III. System Administration"
+msgstr ""
+
+#. type: YAML Front Matter: title
+#: documentation/content/en/books/handbook/geom/_index.adoc:1
+#, no-wrap
+msgid "Chapter 21. GEOM: Modular Disk Transformation Framework"
+msgstr ""
+
+#. type: Title =
+#: documentation/content/en/books/handbook/geom/_index.adoc:14
+#, no-wrap
+msgid "GEOM: Modular Disk Transformation Framework"
+msgstr ""
+
+#. type: Title ==
+#: documentation/content/en/books/handbook/geom/_index.adoc:52
+#, no-wrap
+msgid "Synopsis"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:56
+msgid ""
+"In FreeBSD, the GEOM framework permits access and control to classes, such "
+"as Master Boot Records and BSD labels, through the use of providers, or the "
+"disk devices in [.filename]#/dev#. By supporting various software RAID "
+"configurations, GEOM transparently provides access to the operating system "
+"and operating system utilities."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:60
+msgid ""
+"This chapter covers the use of disks under the GEOM framework in FreeBSD. "
+"This includes the major RAID control utilities which use the framework for "
+"configuration. This chapter is not a definitive guide to RAID "
+"configurations and only GEOM-supported RAID classifications are discussed."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:62
+msgid "After reading this chapter, you will know:"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:64
+msgid "What type of RAID support is available through GEOM."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:65
+msgid ""
+"How to use the base utilities to configure, maintain, and manipulate the "
+"various RAID levels."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:66
+msgid ""
+"How to mirror, stripe, encrypt, and remotely connect disk devices through "
+"GEOM."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:67
+msgid "How to troubleshoot disks attached to the GEOM framework."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:69
+msgid "Before reading this chapter, you should:"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:71
+msgid ""
+"Understand how FreeBSD treats disk devices (crossref:disks[disks,Storage])."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:72
+msgid ""
+"Know how to configure and install a new kernel (crossref:"
+"kernelconfig[kernelconfig,Configuring the FreeBSD Kernel])."
+msgstr ""
+
+#. type: Title ==
+#: documentation/content/en/books/handbook/geom/_index.adoc:74
+#, no-wrap
+msgid "RAID0 - Striping"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:79
+msgid ""
+"Striping combines several disk drives into a single volume. Striping can be "
+"performed through the use of hardware RAID controllers. The GEOM disk "
+"subsystem provides software support for disk striping, also known as RAID0, "
+"without the need for a RAID disk controller."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:83
+msgid ""
+"In RAID0, data is split into blocks that are written across all the drives "
+"in the array. As seen in the following illustration, instead of having to "
+"wait on the system to write 256k to one disk, RAID0 can simultaneously write "
+"64k to each of the four disks in the array, offering superior I/O "
+"performance. This performance can be enhanced further by using multiple "
+"disk controllers."
+msgstr ""
+
+#. type: Positional ($1) AttributeList argument for macro 'image'
+#: documentation/content/en/books/handbook/geom/_index.adoc:84
+#, no-wrap
+msgid "Disk Striping Illustration"
+msgstr ""
+
+#. type: Target for macro image
+#: documentation/content/en/books/handbook/geom/_index.adoc:84
+#, no-wrap
+msgid "striping.png"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:87
+msgid ""
+"Each disk in a RAID0 stripe must be of the same size, since I/O requests are "
+"interleaved to read or write to multiple disks in parallel."
+msgstr ""
+
+#. type: delimited block = 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:93
+msgid ""
+"RAID0 does _not_ provide any redundancy. This means that if one disk in the "
+"array fails, all of the data on the disks is lost. If the data is "
+"important, implement a backup strategy that regularly saves backups to a "
+"remote system or device."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:97
+msgid ""
+"The process for creating a software, GEOM-based RAID0 on a FreeBSD system "
+"using commodity disks is as follows. Once the stripe is created, refer to "
+"man:gstripe[8] for more information on how to control an existing stripe."
+msgstr ""
+
+#. type: delimited block * 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:101
+#, no-wrap
+msgid "*Procedure: Creating a Stripe of Unformatted ATA Disks*\n"
+msgstr ""
+
+#. type: delimited block * 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:103
+msgid "Load the [.filename]#geom_stripe.ko# module:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:107
+#, no-wrap
+msgid "# kldload geom_stripe\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:110
+msgid ""
+"Ensure that a suitable mount point exists. If this volume will become a root "
+"partition, then temporarily use another mount point such as [.filename]#/"
+"mnt#."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:111
+msgid ""
+"Determine the device names for the disks which will be striped, and create "
+"the new stripe device. For example, to stripe two unused and unpartitioned "
+"ATA disks with device names of [.filename]#/dev/ad2# and [.filename]#/dev/"
+"ad3#:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:118
+#, no-wrap
+msgid ""
+"# gstripe label -v st0 /dev/ad2 /dev/ad3\n"
+"Metadata value stored on /dev/ad2.\n"
+"Metadata value stored on /dev/ad3.\n"
+"Done.\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:121
+msgid ""
+"Write a standard label, also known as a partition table, on the new volume "
+"and install the default bootstrap code:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:125
+#, no-wrap
+msgid "# bsdlabel -wB /dev/stripe/st0\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:128
+msgid ""
+"This process should create two other devices in [.filename]#/dev/stripe# in "
+"addition to [.filename]#st0#. Those include [.filename]#st0a# and [."
+"filename]#st0c#. At this point, a UFS file system can be created on [."
+"filename]#st0a# using `newfs`:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:132
+#, no-wrap
+msgid "# newfs -U /dev/stripe/st0a\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:136
+msgid ""
+"Many numbers will glide across the screen, and after a few seconds, the "
+"process will be complete. The volume has been created and is ready to be "
+"mounted."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:137
+msgid "To manually mount the created disk stripe:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:141
+#, no-wrap
+msgid "# mount /dev/stripe/st0a /mnt\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:144
+msgid ""
+"To mount this striped file system automatically during the boot process, "
+"place the volume information in [.filename]#/etc/fstab#. In this example, a "
+"permanent mount point, named [.filename]#stripe#, is created:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:150
+#, no-wrap
+msgid ""
+"# mkdir /stripe\n"
+"# echo \"/dev/stripe/st0a /stripe ufs rw 2 2\" \\\n"
+">> /etc/fstab\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:153
+msgid ""
+"The [.filename]#geom_stripe.ko# module must also be automatically loaded "
+"during system initialization, by adding a line to [.filename]#/boot/loader."
+"conf#:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:157
+#, no-wrap
+msgid "# echo 'geom_stripe_load=\"YES\"' >> /boot/loader.conf\n"
+msgstr ""
+
+#. type: Title ==
+#: documentation/content/en/books/handbook/geom/_index.adoc:161
+#, no-wrap
+msgid "RAID1 - Mirroring"
+msgstr ""
+
+#. type: delimited block * 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:168
+msgid ""
+"RAID1, or _mirroring_, is the technique of writing the same data to more "
+"than one disk drive. Mirrors are usually used to guard against data loss "
+"due to drive failure. Each drive in a mirror contains an identical copy of "
+"the data. When an individual drive fails, the mirror continues to work, "
+"providing data from the drives that are still functioning. The computer "
+"keeps running, and the administrator has time to replace the failed drive "
+"without user interruption."
+msgstr ""
+
+#. type: delimited block * 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:173
+msgid ""
+"Two common situations are illustrated in these examples. The first creates "
+"a mirror out of two new drives and uses it as a replacement for an existing "
+"single drive. The second example creates a mirror on a single new drive, "
+"copies the old drive's data to it, then inserts the old drive into the "
+"mirror. While this procedure is slightly more complicated, it only requires "
+"one new drive."
+msgstr ""
+
+#. type: delimited block * 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:178
+msgid ""
+"Traditionally, the two drives in a mirror are identical in model and "
+"capacity, but man:gmirror[8] does not require that. Mirrors created with "
+"dissimilar drives will have a capacity equal to that of the smallest drive "
+"in the mirror. Extra space on larger drives will be unused. Drives "
+"inserted into the mirror later must have at least as much capacity as the "
+"smallest drive already in the mirror."
+msgstr ""
+
+#. type: delimited block = 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:182
+msgid ""
+"The mirroring procedures shown here are non-destructive, but as with any "
+"major disk operation, make a full backup first."
+msgstr ""
+
+#. type: delimited block = 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:188
+msgid ""
+"While man:dump[8] is used in these procedures to copy file systems, it does "
+"not work on file systems with soft updates journaling. See man:tunefs[8] "
+"for information on detecting and disabling soft updates journaling."
+msgstr ""
+
+#. type: Title ===
+#: documentation/content/en/books/handbook/geom/_index.adoc:191
+#, no-wrap
+msgid "Metadata Issues"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:196
+msgid ""
+"Many disk systems store metadata at the end of each disk. Old metadata "
+"should be erased before reusing the disk for a mirror. Most problems are "
+"caused by two particular types of leftover metadata: GPT partition tables "
+"and old metadata from a previous mirror."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:199
+msgid ""
+"GPT metadata can be erased with man:gpart[8]. This example erases both "
+"primary and backup GPT partition tables from disk [.filename]#ada8#:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:203
+#, no-wrap
+msgid "# gpart destroy -F ada8\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:207
+msgid ""
+"A disk can be removed from an active mirror and the metadata erased in one "
+"step using man:gmirror[8]. Here, the example disk [.filename]#ada8# is "
+"removed from the active mirror [.filename]#gm4#:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:211
+#, no-wrap
+msgid "# gmirror remove gm4 ada8\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:214
+msgid ""
+"If the mirror is not running, but old mirror metadata is still on the disk, "
+"use `gmirror clear` to remove it:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:218
+#, no-wrap
+msgid "# gmirror clear ada8\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:223
+msgid ""
+"man:gmirror[8] stores one block of metadata at the end of the disk. As GPT "
+"partition schemes also store metadata at the end of the disk, mirroring "
+"entire GPT disks with man:gmirror[8] is not recommended. MBR partitioning "
+"is used here because it only stores a partition table at the start of the "
+"disk and does not conflict with the mirror metadata."
+msgstr ""
+
+#. type: Title ===
+#: documentation/content/en/books/handbook/geom/_index.adoc:225
+#, no-wrap
+msgid "Creating a Mirror with Two New Disks"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:230
+msgid ""
+"In this example, FreeBSD has already been installed on a single disk, [."
+"filename]#ada0#. Two new disks, [.filename]#ada1# and [.filename]#ada2#, "
+"have been connected to the system. A new mirror will be created on these "
+"two disks and used to replace the old single disk."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:233
+msgid ""
+"The [.filename]#geom_mirror.ko# kernel module must either be built into the "
+"kernel or loaded at boot- or run-time. Manually load the kernel module now:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:237
+#: documentation/content/en/books/handbook/geom/_index.adoc:359
+#, no-wrap
+msgid "# gmirror load\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:240
+msgid "Create the mirror with the two new drives:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:244
+#, no-wrap
+msgid "# gmirror label -v gm0 /dev/ada1 /dev/ada2\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:248
+msgid ""
+"[.filename]#gm0# is a user-chosen device name assigned to the new mirror. "
+"After the mirror has been started, this device name appears in [.filename]#/"
+"dev/mirror/#."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:252
+msgid ""
+"MBR and bsdlabel partition tables can now be created on the mirror with man:"
+"gpart[8]. This example uses a traditional file system layout, with "
+"partitions for [.filename]#/#, swap, [.filename]#/var#, [.filename]#/tmp#, "
+"and [.filename]#/usr#. A single [.filename]#/# and a swap partition will "
+"also work."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:254
+msgid ""
+"Partitions on the mirror do not have to be the same size as those on the "
+"existing disk, but they must be large enough to hold all the data already "
+"present on [.filename]#ada0#."
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:264
+#, no-wrap
+msgid ""
+"# gpart create -s MBR mirror/gm0\n"
+"# gpart add -t freebsd -a 4k mirror/gm0\n"
+"# gpart show mirror/gm0\n"
+"=> 63 156301423 mirror/gm0 MBR (74G)\n"
+" 63 63 - free - (31k)\n"
+" 126 156301299 1 freebsd (74G)\n"
+" 156301425 61 - free - (30k)\n"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:283
+#, no-wrap
+msgid ""
+"# gpart create -s BSD mirror/gm0s1\n"
+"# gpart add -t freebsd-ufs -a 4k -s 2g mirror/gm0s1\n"
+"# gpart add -t freebsd-swap -a 4k -s 4g mirror/gm0s1\n"
+"# gpart add -t freebsd-ufs -a 4k -s 2g mirror/gm0s1\n"
+"# gpart add -t freebsd-ufs -a 4k -s 1g mirror/gm0s1\n"
+"# gpart add -t freebsd-ufs -a 4k mirror/gm0s1\n"
+"# gpart show mirror/gm0s1\n"
+"=> 0 156301299 mirror/gm0s1 BSD (74G)\n"
+" 0 2 - free - (1.0k)\n"
+" 2 4194304 1 freebsd-ufs (2.0G)\n"
+" 4194306 8388608 2 freebsd-swap (4.0G)\n"
+" 12582914 4194304 4 freebsd-ufs (2.0G)\n"
+" 16777218 2097152 5 freebsd-ufs (1.0G)\n"
+" 18874370 137426928 6 freebsd-ufs (65G)\n"
+" 156301298 1 - free - (512B)\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:286
+#: documentation/content/en/books/handbook/geom/_index.adoc:504
+msgid ""
+"Make the mirror bootable by installing bootcode in the MBR and bsdlabel and "
+"setting the active slice:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:292
+#: documentation/content/en/books/handbook/geom/_index.adoc:510
+#, no-wrap
+msgid ""
+"# gpart bootcode -b /boot/mbr mirror/gm0\n"
+"# gpart set -a active -i 1 mirror/gm0\n"
+"# gpart bootcode -b /boot/boot mirror/gm0s1\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:295
+msgid "Format the file systems on the new mirror, enabling soft-updates."
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:302
+#, no-wrap
+msgid ""
+"# newfs -U /dev/mirror/gm0s1a\n"
+"# newfs -U /dev/mirror/gm0s1d\n"
+"# newfs -U /dev/mirror/gm0s1e\n"
+"# newfs -U /dev/mirror/gm0s1f\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:305
+msgid ""
+"File systems from the original [.filename]#ada0# disk can now be copied onto "
+"the mirror with man:dump[8] and man:restore[8]."
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:316
+#, no-wrap
+msgid ""
+"# mount /dev/mirror/gm0s1a /mnt\n"
+"# dump -C16 -b64 -0aL -f - / | (cd /mnt && restore -rf -)\n"
+"# mount /dev/mirror/gm0s1d /mnt/var\n"
+"# mount /dev/mirror/gm0s1e /mnt/tmp\n"
+"# mount /dev/mirror/gm0s1f /mnt/usr\n"
+"# dump -C16 -b64 -0aL -f - /var | (cd /mnt/var && restore -rf -)\n"
+"# dump -C16 -b64 -0aL -f - /tmp | (cd /mnt/tmp && restore -rf -)\n"
+"# dump -C16 -b64 -0aL -f - /usr | (cd /mnt/usr && restore -rf -)\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:319
+msgid ""
+"Edit [.filename]#/mnt/etc/fstab# to point to the new mirror file systems:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:328
+#, no-wrap
+msgid ""
+"# Device\t\tMountpoint\tFStype\tOptions\tDump\tPass#\n"
+"/dev/mirror/gm0s1a\t/\t\tufs\trw\t1\t1\n"
+"/dev/mirror/gm0s1b\tnone\t\tswap\tsw\t0\t0\n"
+"/dev/mirror/gm0s1d\t/var\t\tufs\trw\t2\t2\n"
+"/dev/mirror/gm0s1e\t/tmp\t\tufs\trw\t2\t2\n"
+"/dev/mirror/gm0s1f\t/usr\t\tufs\trw\t2\t2\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:331
+msgid ""
+"If the [.filename]#geom_mirror.ko# kernel module has not been built into the "
+"kernel, [.filename]#/mnt/boot/loader.conf# is edited to load the module at "
+"boot:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:335
+#: documentation/content/en/books/handbook/geom/_index.adoc:538
+#: documentation/content/en/books/handbook/geom/_index.adoc:651
+#, no-wrap
+msgid "geom_mirror_load=\"YES\"\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:340
+msgid ""
+"Reboot the system to test the new mirror and verify that all data has been "
+"copied. The BIOS will see the mirror as two individual drives rather than a "
+"mirror. Since the drives are identical, it does not matter which is "
+"selected to boot."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:343
+msgid ""
+"See <<gmirror-troubleshooting>> if there are problems booting. Powering "
+"down and disconnecting the original [.filename]#ada0# disk will allow it to "
+"be kept as an offline backup."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:345
+msgid "In use, the mirror will behave just like the original single drive."
+msgstr ""
+
+#. type: Title ===
+#: documentation/content/en/books/handbook/geom/_index.adoc:347
+#, no-wrap
+msgid "Creating a Mirror with an Existing Drive"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:353
+msgid ""
+"In this example, FreeBSD has already been installed on a single disk, [."
+"filename]#ada0#. A new disk, [.filename]#ada1#, has been connected to the "
+"system. A one-disk mirror will be created on the new disk, the existing "
+"system copied onto it, and then the old disk will be inserted into the "
+"mirror. This slightly complex procedure is required because `gmirror` needs "
+"to put a 512-byte block of metadata at the end of each disk, and the "
+"existing [.filename]#ada0# has usually had all of its space already "
+"allocated."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:355
+msgid "Load the [.filename]#geom_mirror.ko# kernel module:"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:362
+msgid "Check the media size of the original disk with `diskinfo`:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:369
+#, no-wrap
+msgid ""
+"# diskinfo -v ada0 | head -n3\n"
+"/dev/ada0\n"
+" 512 # sectorsize\n"
+" 1000204821504 # mediasize in bytes (931G)\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:376
+msgid ""
+"Create a mirror on the new disk. To make certain that the mirror capacity "
+"is not any larger than the original [.filename]#ada0# drive, man:gnop[8] is "
+"used to create a fake drive of the same size. This drive does not store any "
+"data, but is used only to limit the size of the mirror. When man:gmirror[8] "
+"creates the mirror, it will restrict the capacity to the size of [."
+"filename]#gzero.nop#, even if the new [.filename]#ada1# drive has more "
+"space. Note that the _1000204821504_ in the second line is equal to [."
+"filename]#ada0#'s media size as shown by `diskinfo` above."
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:383
+#, no-wrap
+msgid ""
+"# geom zero load\n"
+"# gnop create -s 1000204821504 gzero\n"
+"# gmirror label -v gm0 gzero.nop ada1\n"
+"# gmirror forget gm0\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:388
+msgid ""
+"Since [.filename]#gzero.nop# does not store any data, the mirror does not "
+"see it as connected. The mirror is told to \"forget\" unconnected "
+"components, removing references to [.filename]#gzero.nop#. The result is a "
+"mirror device containing only a single disk, [.filename]#ada1#."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:392
+msgid ""
+"After creating [.filename]#gm0#, view the partition table on [."
+"filename]#ada0#. This output is from a 1 TB drive. If there is some "
+"unallocated space at the end of the drive, the contents may be copied "
+"directly from [.filename]#ada0# to the new mirror."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:394
+msgid ""
+"However, if the output shows that all of the space on the disk is allocated, "
+"as in the following listing, there is no space available for the 512-byte "
+"mirror metadata at the end of the disk."
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:400
+#, no-wrap
+msgid ""
+"# gpart show ada0\n"
+"=> 63 1953525105 ada0 MBR (931G)\n"
+" 63 1953525105 1 freebsd [active] (931G)\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:404
+msgid ""
+"In this case, the partition table must be edited to reduce the capacity by "
+"one sector on [.filename]#mirror/gm0#. The procedure will be explained "
+"later."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:406
+msgid ""
+"In either case, partition tables on the primary disk should be first copied "
+"using `gpart backup` and `gpart restore`."
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:411
+#, no-wrap
+msgid ""
+"# gpart backup ada0 > table.ada0\n"
+"# gpart backup ada0s1 > table.ada0s1\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:415
+msgid ""
+"These commands create two files, [.filename]#table.ada0# and [."
+"filename]#table.ada0s1#. This example is from a 1 TB drive:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:421
+#, no-wrap
+msgid ""
+"# cat table.ada0\n"
+"MBR 4\n"
+"1 freebsd 63 1953525105 [active]\n"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:433
+#, no-wrap
+msgid ""
+"# cat table.ada0s1\n"
+"BSD 8\n"
+"1 freebsd-ufs 0 4194304\n"
+"2 freebsd-swap 4194304 33554432\n"
+"4 freebsd-ufs 37748736 50331648\n"
+"5 freebsd-ufs 88080384 41943040\n"
+"6 freebsd-ufs 130023424 838860800\n"
+"7 freebsd-ufs 968884224 984640881\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:438
+msgid ""
+"If no free space is shown at the end of the disk, the size of both the slice "
+"and the last partition must be reduced by one sector. Edit the two files, "
+"reducing the size of both the slice and last partition by one. These are "
+"the last numbers in each listing."
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:444
+#, no-wrap
+msgid ""
+"# cat table.ada0\n"
+"MBR 4\n"
+"1 freebsd 63 1953525104 [active]\n"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:456
+#, no-wrap
+msgid ""
+"# cat table.ada0s1\n"
+"BSD 8\n"
+"1 freebsd-ufs 0 4194304\n"
+"2 freebsd-swap 4194304 33554432\n"
+"4 freebsd-ufs 37748736 50331648\n"
+"5 freebsd-ufs 88080384 41943040\n"
+"6 freebsd-ufs 130023424 838860800\n"
+"7 freebsd-ufs 968884224 984640880\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:459
+msgid ""
+"If at least one sector was unallocated at the end of the disk, these two "
+"files can be used without modification."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:461
+msgid "Now restore the partition table into [.filename]#mirror/gm0#:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:466
+#, no-wrap
+msgid ""
+"# gpart restore mirror/gm0 < table.ada0\n"
+"# gpart restore mirror/gm0s1 < table.ada0s1\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:470
+msgid ""
+"Check the partition table with `gpart show`. This example has [."
+"filename]#gm0s1a# for [.filename]#/#, [.filename]#gm0s1d# for [.filename]#/"
+"var#, [.filename]#gm0s1e# for [.filename]#/usr#, [.filename]#gm0s1f# for [."
+"filename]#/data1#, and [.filename]#gm0s1g# for [.filename]#/data2#."
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:477
+#, no-wrap
+msgid ""
+"# gpart show mirror/gm0\n"
+"=> 63 1953525104 mirror/gm0 MBR (931G)\n"
+" 63 1953525042 1 freebsd [active] (931G)\n"
+" 1953525105 62 - free - (31k)\n"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:487
+#, no-wrap
+msgid ""
+"# gpart show mirror/gm0s1\n"
+"=> 0 1953525042 mirror/gm0s1 BSD (931G)\n"
+" 0 2097152 1 freebsd-ufs (1.0G)\n"
+" 2097152 16777216 2 freebsd-swap (8.0G)\n"
+" 18874368 41943040 4 freebsd-ufs (20G)\n"
+" 60817408 20971520 5 freebsd-ufs (10G)\n"
+" 81788928 629145600 6 freebsd-ufs (300G)\n"
+" 710934528 1242590514 7 freebsd-ufs (592G)\n"
+" 1953525042 63 - free - (31k)\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:490
+msgid ""
+"Both the slice and the last partition must have at least one free block at "
+"the end of the disk."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:493
+msgid ""
+"Create file systems on these new partitions. The number of partitions will "
+"vary to match the original disk, [.filename]#ada0#."
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:501
+#, no-wrap
+msgid ""
+"# newfs -U /dev/mirror/gm0s1a\n"
+"# newfs -U /dev/mirror/gm0s1d\n"
+"# newfs -U /dev/mirror/gm0s1e\n"
+"# newfs -U /dev/mirror/gm0s1f\n"
+"# newfs -U /dev/mirror/gm0s1g\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:514
+msgid ""
+"Adjust [.filename]#/etc/fstab# to use the new partitions on the mirror. "
+"Back up this file first by copying it to [.filename]#/etc/fstab.orig#."
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:518
+#, no-wrap
+msgid "# cp /etc/fstab /etc/fstab.orig\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:521
+msgid ""
+"Edit [.filename]#/etc/fstab#, replacing [.filename]#/dev/ada0# with [."
+"filename]#mirror/gm0#."
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:531
+#, no-wrap
+msgid ""
+"# Device\t\tMountpoint\tFStype\tOptions\tDump\tPass#\n"
+"/dev/mirror/gm0s1a\t/\t\tufs\trw\t1\t1\n"
+"/dev/mirror/gm0s1b\tnone\t\tswap\tsw\t0\t0\n"
+"/dev/mirror/gm0s1d\t/var\t\tufs\trw\t2\t2\n"
+"/dev/mirror/gm0s1e\t/usr\t\tufs\trw\t2\t2\n"
+"/dev/mirror/gm0s1f\t/data1\t\tufs\trw\t2\t2\n"
+"/dev/mirror/gm0s1g\t/data2\t\tufs\trw\t2\t2\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:534
+msgid ""
+"If the [.filename]#geom_mirror.ko# kernel module has not been built into the "
+"kernel, edit [.filename]#/boot/loader.conf# to load it at boot:"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:542
+msgid ""
+"File systems from the original disk can now be copied onto the mirror with "
+"man:dump[8] and man:restore[8]. Each file system dumped with `dump -L` will "
+"create a snapshot first, which can take some time."
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:555
+#, no-wrap
+msgid ""
+"# mount /dev/mirror/gm0s1a /mnt\n"
+"# dump -C16 -b64 -0aL -f - / | (cd /mnt && restore -rf -)\n"
+"# mount /dev/mirror/gm0s1d /mnt/var\n"
+"# mount /dev/mirror/gm0s1e /mnt/usr\n"
+"# mount /dev/mirror/gm0s1f /mnt/data1\n"
+"# mount /dev/mirror/gm0s1g /mnt/data2\n"
+"# dump -C16 -b64 -0aL -f - /usr | (cd /mnt/usr && restore -rf -)\n"
+"# dump -C16 -b64 -0aL -f - /var | (cd /mnt/var && restore -rf -)\n"
+"# dump -C16 -b64 -0aL -f - /data1 | (cd /mnt/data1 && restore -rf -)\n"
+"# dump -C16 -b64 -0aL -f - /data2 | (cd /mnt/data2 && restore -rf -)\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:560
+msgid ""
+"Restart the system, booting from [.filename]#ada1#. If everything is "
+"working, the system will boot from [.filename]#mirror/gm0#, which now "
+"contains the same data as [.filename]#ada0# had previously. See <<gmirror-"
+"troubleshooting>> if there are problems booting."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:562
+msgid ""
+"At this point, the mirror still consists of only the single [."
+"filename]#ada1# disk."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:564
+msgid ""
+"After booting from [.filename]#mirror/gm0# successfully, the final step is "
+"inserting [.filename]#ada0# into the mirror."
+msgstr ""
+
+#. type: delimited block = 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:570
+msgid ""
+"When [.filename]#ada0# is inserted into the mirror, its former contents will "
+"be overwritten by data from the mirror. Make certain that [."
+"filename]#mirror/gm0# has the same contents as [.filename]#ada0# before "
+"adding [.filename]#ada0# to the mirror. If the contents previously copied "
+"by man:dump[8] and man:restore[8] are not identical to what was on [."
+"filename]#ada0#, revert [.filename]#/etc/fstab# to mount the file systems on "
+"[.filename]#ada0#, reboot, and start the whole procedure again."
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:576
+#, no-wrap
+msgid ""
+"# gmirror insert gm0 ada0\n"
+"GEOM_MIRROR: Device gm0: rebuilding provider ada0\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:580
+msgid ""
+"Synchronization between the two disks will start immediately. Use `gmirror "
+"status` to view the progress."
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:587
+#, no-wrap
+msgid ""
+"# gmirror status\n"
+" Name Status Components\n"
+"mirror/gm0 DEGRADED ada1 (ACTIVE)\n"
+" ada0 (SYNCHRONIZING, 64%)\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:590
+msgid "After a while, synchronization will finish."
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:598
+#, no-wrap
+msgid ""
+"GEOM_MIRROR: Device gm0: rebuilding provider ada0 finished.\n"
+"# gmirror status\n"
+" Name Status Components\n"
+"mirror/gm0 COMPLETE ada1 (ACTIVE)\n"
+" ada0 (ACTIVE)\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:602
+msgid ""
+"[.filename]#mirror/gm0# now consists of the two disks [.filename]#ada0# and "
+"[.filename]#ada1#, and the contents are automatically synchronized with each "
+"other. In use, [.filename]#mirror/gm0# will behave just like the original "
+"single drive."
+msgstr ""
+
+#. type: Title ===
+#: documentation/content/en/books/handbook/geom/_index.adoc:604
+#, no-wrap
+msgid "Troubleshooting"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:608
+msgid ""
+"If the system no longer boots, BIOS settings may have to be changed to boot "
+"from one of the new mirrored drives. Either mirror drive can be used for "
+"booting, as they contain identical data."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:610
+msgid ""
+"If the boot stops with this message, something is wrong with the mirror "
+"device:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:614
+#, no-wrap
+msgid "Mounting from ufs:/dev/mirror/gm0s1a failed with error 19.\n"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:618
+#, no-wrap
+msgid ""
+"Loader variables:\n"
+" vfs.root.mountfrom=ufs:/dev/mirror/gm0s1a\n"
+" vfs.root.mountfrom.options=rw\n"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:623
+#, no-wrap
+msgid ""
+"Manual root filesystem specification:\n"
+" <fstype>:<device> [options]\n"
+" Mount <device> using filesystem <fstype>\n"
+" and with the specified (optional) option list.\n"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:628
+#, no-wrap
+msgid ""
+" e.g. ufs:/dev/da0s1a\n"
+" zfs:tank\n"
+" cd9660:/dev/acd0 ro\n"
+" (which is equivalent to: mount -t cd9660 -o ro /dev/acd0 /)\n"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:632
+#, no-wrap
+msgid ""
+" ? List valid disk boot devices\n"
+" . Yield 1 second (for background tasks)\n"
+" <empty line> Abort manual input\n"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:634
+#, no-wrap
+msgid "mountroot>\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:639
+msgid ""
+"Forgetting to load the [.filename]#geom_mirror.ko# module in [.filename]#/"
+"boot/loader.conf# can cause this problem. To fix it, boot from a FreeBSD "
+"installation media and choose `Shell` at the first prompt. Then load the "
+"mirror module and mount the mirror device:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:644
+#, no-wrap
+msgid ""
+"# gmirror load\n"
+"# mount /dev/mirror/gm0s1a /mnt\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:647
+msgid ""
+"Edit [.filename]#/mnt/boot/loader.conf#, adding a line to load the mirror "
+"module:"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:654
+msgid "Save the file and reboot."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:660
+msgid ""
+"Other problems that cause `error 19` require more effort to fix. Although "
+"the system should boot from [.filename]#ada0#, another prompt to select a "
+"shell will appear if [.filename]#/etc/fstab# is incorrect. Enter `ufs:/dev/"
+"ada0s1a` at the boot loader prompt and press kbd:[Enter]. Undo the edits in "
+"[.filename]#/etc/fstab# then mount the file systems from the original disk "
+"([.filename]#ada0#) instead of the mirror. Reboot the system and try the "
+"procedure again."
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:666
+#, no-wrap
+msgid ""
+"Enter full pathname of shell or RETURN for /bin/sh:\n"
+"# cp /etc/fstab.orig /etc/fstab\n"
+"# reboot\n"
+msgstr ""
+
+#. type: Title ===
+#: documentation/content/en/books/handbook/geom/_index.adoc:668
+#, no-wrap
+msgid "Recovering from Disk Failure"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:672
+msgid ""
+"The benefit of disk mirroring is that an individual disk can fail without "
+"causing the mirror to lose any data. In the above example, if [."
+"filename]#ada0# fails, the mirror will continue to work, providing data from "
+"the remaining working drive, [.filename]#ada1#."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:676
+msgid ""
+"To replace the failed drive, shut down the system and physically replace the "
+"failed drive with a new drive of equal or greater capacity. Manufacturers "
+"use somewhat arbitrary values when rating drives in gigabytes, and the only "
+"way to really be sure is to compare the total count of sectors shown by "
+"`diskinfo -v`. A drive with larger capacity than the mirror will work, "
+"although the extra space on the new drive will not be used."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:679
+msgid ""
+"After the computer is powered back up, the mirror will be running in a "
+"\"degraded\" mode with only one drive. The mirror is told to forget drives "
+"that are not currently connected:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:683
+#, no-wrap
+msgid "# gmirror forget gm0\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:687
+msgid ""
+"Any old metadata should be cleared from the replacement disk using the "
+"instructions in <<geom-mirror-metadata>>. Then the replacement disk, [."
+"filename]#ada4# for this example, is inserted into the mirror:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:691
+#, no-wrap
+msgid "# gmirror insert gm0 /dev/ada4\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:696
+msgid ""
+"Resynchronization begins when the new drive is inserted into the mirror. "
+"This process of copying mirror data to a new drive can take a while. "
+"Performance of the mirror will be greatly reduced during the copy, so "
+"inserting new drives is best done when there is low demand on the computer."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:699
+msgid ""
+"Progress can be monitored with `gmirror status`, which shows drives that are "
+"being synchronized and the percentage of completion. During "
+"resynchronization, the status will be `DEGRADED`, changing to `COMPLETE` "
+"when the process is finished."
+msgstr ""
+
+#. type: Title ==
+#: documentation/content/en/books/handbook/geom/_index.adoc:701
+#, no-wrap
+msgid "RAID3 - Byte-level Striping with Dedicated Parity"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:709
+msgid ""
+"RAID3 is a method used to combine several disk drives into a single volume "
+"with a dedicated parity disk. In a RAID3 system, data is split up into a "
+"number of bytes that are written across all the drives in the array except "
+"for one disk which acts as a dedicated parity disk. This means that disk "
+"reads from a RAID3 implementation access all disks in the array. "
+"Performance can be enhanced by using multiple disk controllers. The RAID3 "
+"array provides a fault tolerance of 1 drive, while providing a capacity of 1 "
+"- 1/n times the total capacity of all drives in the array, where n is the "
+"number of hard drives in the array. Such a configuration is mostly suitable "
+"for storing data of larger sizes such as multimedia files."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:713
+msgid ""
+"At least 3 physical hard drives are required to build a RAID3 array. Each "
+"disk must be of the same size, since I/O requests are interleaved to read or "
+"write to multiple disks in parallel. Also, due to the nature of RAID3, the "
+"number of drives must be equal to 3, 5, 9, 17, and so on, or 2^n + 1."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:715
+msgid ""
+"This section demonstrates how to create a software RAID3 on a FreeBSD system."
+msgstr ""
+
+#. type: delimited block = 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:719
+msgid ""
+"While it is theoretically possible to boot from a RAID3 array on FreeBSD, "
+"that configuration is uncommon and is not advised."
+msgstr ""
+
+#. type: Title ===
+#: documentation/content/en/books/handbook/geom/_index.adoc:721
+#, no-wrap
+msgid "Creating a Dedicated RAID3 Array"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:725
+msgid ""
+"In FreeBSD, support for RAID3 is implemented by the man:graid3[8] GEOM "
+"class. Creating a dedicated RAID3 array on FreeBSD requires the following "
+"steps."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:728
+msgid ""
+"First, load the [.filename]#geom_raid3.ko# kernel module by issuing one of "
+"the following commands:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:732
+#, no-wrap
+msgid "# graid3 load\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:735
+msgid "or:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:739
+#, no-wrap
+msgid "# kldload geom_raid3\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:742
+msgid ""
+"Ensure that a suitable mount point exists. This command creates a new "
+"directory to use as the mount point:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:746
+#, no-wrap
+msgid "# mkdir /multimedia\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:749
+msgid ""
+"Determine the device names for the disks which will be added to the array, "
+"and create the new RAID3 device. The final device listed will act as the "
+"dedicated parity disk. This example uses three unpartitioned ATA drives: [."
+"filename]#ada1# and [.filename]#ada2# for data, and [.filename]#ada3# for "
+"parity."
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:757
+#, no-wrap
+msgid ""
+"# graid3 label -v gr0 /dev/ada1 /dev/ada2 /dev/ada3\n"
+"Metadata value stored on /dev/ada1.\n"
+"Metadata value stored on /dev/ada2.\n"
+"Metadata value stored on /dev/ada3.\n"
+"Done.\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:760
+msgid ""
+"Partition the newly created [.filename]#gr0# device and put a UFS file "
+"system on it:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:766
+#, no-wrap
+msgid ""
+"# gpart create -s GPT /dev/raid3/gr0\n"
+"# gpart add -t freebsd-ufs /dev/raid3/gr0\n"
+"# newfs -j /dev/raid3/gr0p1\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:770
+msgid ""
+"Many numbers will glide across the screen, and after a bit of time, the "
+"process will be complete. The volume has been created and is ready to be "
+"mounted:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:774
+#, no-wrap
+msgid "# mount /dev/raid3/gr0p1 /multimedia/\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:777
+msgid "The RAID3 array is now ready to use."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:779
+msgid ""
+"Additional configuration is needed to retain this setup across system "
+"reboots."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:782
+msgid ""
+"The [.filename]#geom_raid3.ko# module must be loaded before the array can be "
+"mounted. To automatically load the kernel module during system "
+"initialization, add the following line to [.filename]#/boot/loader.conf#:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:786
+#, no-wrap
+msgid "geom_raid3_load=\"YES\"\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:789
+msgid ""
+"The following volume information must be added to [.filename]#/etc/fstab# in "
+"order to automatically mount the array's file system during the system boot "
+"process:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:793
+#, no-wrap
+msgid "/dev/raid3/gr0p1\t/multimedia\tufs\trw\t2\t2\n"
+msgstr ""
+
+#. type: Title ==
+#: documentation/content/en/books/handbook/geom/_index.adoc:796
+#, no-wrap
+msgid "Software RAID Devices"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:801
+msgid ""
+"Some motherboards and expansion cards add some simple hardware, usually just "
+"a ROM, that allows the computer to boot from a RAID array. After booting, "
+"access to the RAID array is handled by software running on the computer's "
+"main processor. This \"hardware-assisted software RAID\" gives RAID arrays "
+"that are not dependent on any particular operating system, and which are "
+"functional even before an operating system is loaded."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:804
+msgid ""
+"Several levels of RAID are supported, depending on the hardware in use. See "
+"man:graid[8] for a complete list."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:807
+msgid ""
+"man:graid[8] requires the [.filename]#geom_raid.ko# kernel module, which is "
+"included in the [.filename]#GENERIC# kernel starting with FreeBSD 9.1. If "
+"needed, it can be loaded manually with `graid load`."
+msgstr ""
+
+#. type: Title ===
+#: documentation/content/en/books/handbook/geom/_index.adoc:809
+#, no-wrap
+msgid "Creating an Array"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:814
+msgid ""
+"Software RAID devices often have a menu that can be entered by pressing "
+"special keys when the computer is booting. The menu can be used to create "
+"and delete RAID arrays. man:graid[8] can also create arrays directly from "
+"the command line."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:818
+msgid ""
+"`graid label` is used to create a new array. The motherboard used for this "
+"example has an Intel software RAID chipset, so the Intel metadata format is "
+"specified. The new array is given a label of [.filename]#gm0#, it is a "
+"mirror (RAID1), and uses drives [.filename]#ada0# and [.filename]#ada1#."
+msgstr ""
+
+#. type: delimited block = 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:823
+msgid ""
+"Some space on the drives will be overwritten when they are made into a new "
+"array. Back up existing data first!"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:837
+#, no-wrap
+msgid ""
+"# graid label Intel gm0 RAID1 ada0 ada1\n"
+"GEOM_RAID: Intel-a29ea104: Array Intel-a29ea104 created.\n"
+"GEOM_RAID: Intel-a29ea104: Disk ada0 state changed from NONE to ACTIVE.\n"
+"GEOM_RAID: Intel-a29ea104: Subdisk gm0:0-ada0 state changed from NONE to ACTIVE.\n"
+"GEOM_RAID: Intel-a29ea104: Disk ada1 state changed from NONE to ACTIVE.\n"
+"GEOM_RAID: Intel-a29ea104: Subdisk gm0:1-ada1 state changed from NONE to ACTIVE.\n"
+"GEOM_RAID: Intel-a29ea104: Array started.\n"
+"GEOM_RAID: Intel-a29ea104: Volume gm0 state changed from STARTING to OPTIMAL.\n"
+"Intel-a29ea104 created\n"
+"GEOM_RAID: Intel-a29ea104: Provider raid/r0 for volume gm0 created.\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:840
+msgid "A status check shows the new mirror is ready for use:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:847
+#: documentation/content/en/books/handbook/geom/_index.adoc:1023
+#, no-wrap
+msgid ""
+"# graid status\n"
+" Name Status Components\n"
+"raid/r0 OPTIMAL ada0 (ACTIVE (ACTIVE))\n"
+" ada1 (ACTIVE (ACTIVE))\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:852
+msgid ""
+"The array device appears in [.filename]#/dev/raid/#. The first array is "
+"called [.filename]#r0#. Additional arrays, if present, will be [."
+"filename]#r1#, [.filename]#r2#, and so on."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:856
+msgid ""
+"The BIOS menu on some of these devices can create arrays with special "
+"characters in their names. To avoid problems with those special characters, "
+"arrays are given simple numbered names like [.filename]#r0#. To show the "
+"actual labels, like [.filename]#gm0# in the example above, use man:sysctl[8]:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:860
+#, no-wrap
+msgid "# sysctl kern.geom.raid.name_format=1\n"
+msgstr ""
+
+#. type: Title ===
+#: documentation/content/en/books/handbook/geom/_index.adoc:863
+#, no-wrap
+msgid "Multiple Volumes"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:869
+msgid ""
+"Some software RAID devices support more than one _volume_ on an array. "
+"Volumes work like partitions, allowing space on the physical drives to be "
+"split and used in different ways. For example, Intel software RAID devices "
+"support two volumes. This example creates a 40 G mirror for safely storing "
+"the operating system, followed by a 20 G RAID0 (stripe) volume for fast "
+"temporary storage:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:874
+#, no-wrap
+msgid ""
+"# graid label -S 40G Intel gm0 RAID1 ada0 ada1\n"
+"# graid add -S 20G gm0 RAID0\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:878
+msgid ""
+"Volumes appear as additional [.filename]#rX# entries in [.filename]#/dev/"
+"raid/#. An array with two volumes will show [.filename]#r0# and [."
+"filename]#r1#."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:880
+msgid ""
+"See man:graid[8] for the number of volumes supported by different software "
+"RAID devices."
+msgstr ""
+
+#. type: Title ===
+#: documentation/content/en/books/handbook/geom/_index.adoc:882
+#, no-wrap
+msgid "Converting a Single Drive to a Mirror"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:886
+msgid ""
+"Under certain specific conditions, it is possible to convert an existing "
+"single drive to a man:graid[8] array without reformatting. To avoid data "
+"loss during the conversion, the existing drive must meet these minimum "
+"requirements:"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:888
+msgid ""
+"The drive must be partitioned with the MBR partitioning scheme. GPT or other "
+"partitioning schemes with metadata at the end of the drive will be "
+"overwritten and corrupted by the man:graid[8] metadata."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:889
+msgid ""
+"There must be enough unpartitioned and unused space at the end of the drive "
+"to hold the man:graid[8] metadata. This metadata varies in size, but the "
+"largest occupies 64 M, so at least that much free space is recommended."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:892
+msgid ""
+"If the drive meets these requirements, start by making a full backup. Then "
+"create a single-drive mirror with that drive:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:896
+#, no-wrap
+msgid "# graid label Intel gm0 RAID1 ada0 NONE\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:900
+msgid ""
+"man:graid[8] metadata was written to the end of the drive in the unused "
+"space. A second drive can now be inserted into the mirror:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:904
+#, no-wrap
+msgid "# graid insert raid/r0 ada1\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:908
+msgid ""
+"Data from the original drive will immediately begin to be copied to the "
+"second drive. The mirror will operate in degraded status until the copy is "
+"complete."
+msgstr ""
+
+#. type: Title ===
+#: documentation/content/en/books/handbook/geom/_index.adoc:910
+#, no-wrap
+msgid "Inserting New Drives into the Array"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:915
+msgid ""
+"Drives can be inserted into an array as replacements for drives that have "
+"failed or are missing. If there are no failed or missing drives, the new "
+"drive becomes a spare. For example, inserting a new drive into a working "
+"two-drive mirror results in a two-drive mirror with one spare drive, not a "
+"three-drive mirror."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:918
+msgid ""
+"In the example mirror array, data immediately begins to be copied to the "
+"newly-inserted drive. Any existing information on the new drive will be "
+"overwritten."
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:926
+#, no-wrap
+msgid ""
+"# graid insert raid/r0 ada1\n"
+"GEOM_RAID: Intel-a29ea104: Disk ada1 state changed from NONE to ACTIVE.\n"
+"GEOM_RAID: Intel-a29ea104: Subdisk gm0:1-ada1 state changed from NONE to NEW.\n"
+"GEOM_RAID: Intel-a29ea104: Subdisk gm0:1-ada1 state changed from NEW to REBUILD.\n"
+"GEOM_RAID: Intel-a29ea104: Subdisk gm0:1-ada1 rebuild start at 0.\n"
+msgstr ""
+
+#. type: Title ===
+#: documentation/content/en/books/handbook/geom/_index.adoc:929
+#, no-wrap
+msgid "Removing Drives from the Array"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:932
+msgid ""
+"Individual drives can be permanently removed from a from an array and their "
+"metadata erased:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:939
+#, no-wrap
+msgid ""
+"# graid remove raid/r0 ada1\n"
+"GEOM_RAID: Intel-a29ea104: Disk ada1 state changed from ACTIVE to OFFLINE.\n"
+"GEOM_RAID: Intel-a29ea104: Subdisk gm0:1-[unknown] state changed from ACTIVE to NONE.\n"
+"GEOM_RAID: Intel-a29ea104: Volume gm0 state changed from OPTIMAL to DEGRADED.\n"
+msgstr ""
+
+#. type: Title ===
+#: documentation/content/en/books/handbook/geom/_index.adoc:942
+#, no-wrap
+msgid "Stopping the Array"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:946
+msgid ""
+"An array can be stopped without removing metadata from the drives. The "
+"array will be restarted when the system is booted."
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:950
+#, no-wrap
+msgid "# graid stop raid/r0\n"
+msgstr ""
+
+#. type: Title ===
+#: documentation/content/en/books/handbook/geom/_index.adoc:953
+#, no-wrap
+msgid "Checking Array Status"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:957
+msgid ""
+"Array status can be checked at any time. After a drive was added to the "
+"mirror in the example above, data is being copied from the original drive to "
+"the new drive:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:964
+#, no-wrap
+msgid ""
+"# graid status\n"
+" Name Status Components\n"
+"raid/r0 DEGRADED ada0 (ACTIVE (ACTIVE))\n"
+" ada1 (ACTIVE (REBUILD 28%))\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:968
+msgid ""
+"Some types of arrays, like `RAID0` or `CONCAT`, may not be shown in the "
+"status report if disks have failed. To see these partially-failed arrays, "
+"add `-ga`:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:974
+#, no-wrap
+msgid ""
+"# graid status -ga\n"
+" Name Status Components\n"
+"Intel-e2d07d9a BROKEN ada6 (ACTIVE (ACTIVE))\n"
+msgstr ""
+
+#. type: Title ===
+#: documentation/content/en/books/handbook/geom/_index.adoc:977
+#, no-wrap
+msgid "Deleting Arrays"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:981
+msgid ""
+"Arrays are destroyed by deleting all of the volumes from them. When the "
+"last volume present is deleted, the array is stopped and metadata is removed "
+"from the drives:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:985
+#: documentation/content/en/books/handbook/geom/_index.adoc:1030
+#, no-wrap
+msgid "# graid delete raid/r0\n"
+msgstr ""
+
+#. type: Title ===
+#: documentation/content/en/books/handbook/geom/_index.adoc:988
+#, no-wrap
+msgid "Deleting Unexpected Arrays"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:993
+msgid ""
+"Drives may unexpectedly contain man:graid[8] metadata, either from previous "
+"use or manufacturer testing. man:graid[8] will detect these drives and "
+"create an array, interfering with access to the individual drive. To remove "
+"the unwanted metadata:"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:996
+msgid ""
+"Boot the system. At the boot menu, select `2` for the loader prompt. Enter:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:1001
+#, no-wrap
+msgid ""
+"OK set kern.geom.raid.enable=0\n"
+"OK boot\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1004
+msgid "The system will boot with man:graid[8] disabled."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1005
+msgid "Back up all data on the affected drive."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1006
+msgid "As a workaround, man:graid[8] array detection can be disabled by adding"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:1010
+#, no-wrap
+msgid "kern.geom.raid.enable=0\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1013
+msgid "to [.filename]#/boot/loader.conf#."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1016
+msgid ""
+"To permanently remove the man:graid[8] metadata from the affected drive, "
+"boot a FreeBSD installation CD-ROM or memory stick, and select `Shell`. Use "
+"`status` to find the name of the array, typically `raid/r0`:"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1026
+msgid "Delete the volume by name:"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1034
+msgid ""
+"If there is more than one volume shown, repeat the process for each volume. "
+"After the last array has been deleted, the volume will be destroyed."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1037
+msgid ""
+"Reboot and verify data, restoring from backup if necessary. After the "
+"metadata has been removed, the `kern.geom.raid.enable=0` entry in [."
+"filename]#/boot/loader.conf# can also be removed."
+msgstr ""
+
+#. type: Title ==
+#: documentation/content/en/books/handbook/geom/_index.adoc:1039
+#, no-wrap
+msgid "GEOM Gate Network"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1044
+msgid ""
+"GEOM provides a simple mechanism for providing remote access to devices such "
+"as disks, CDs, and file systems through the use of the GEOM Gate network "
+"daemon, ggated. The system with the device runs the server daemon which "
+"handles requests made by clients using ggatec. The devices should not "
+"contain any sensitive data as the connection between the client and the "
+"server is not encrypted."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1048
+msgid ""
+"Similar to NFS, which is discussed in crossref:network-servers[network-nfs,"
+"\"Network File System (NFS)\"], ggated is configured using an exports file. "
+"This file specifies which systems are permitted to access the exported "
+"resources and what level of access they are offered. For example, to give "
+"the client `192.168.1.5` read and write access to the fourth slice on the "
+"first SCSI disk, create [.filename]#/etc/gg.exports# with this line:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:1052
+#, no-wrap
+msgid "192.168.1.5 RW /dev/da0s4d\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1056
+msgid ""
+"Before exporting the device, ensure it is not currently mounted. Then, "
+"start ggated:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:1060
+#, no-wrap
+msgid "# ggated\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1064
+msgid ""
+"Several options are available for specifying an alternate listening port or "
+"changing the default location of the exports file. Refer to man:ggated[8] "
+"for details."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1069
+msgid ""
+"To access the exported device on the client machine, first use `ggatec` to "
+"specify the IP address of the server and the device name of the exported "
+"device. If successful, this command will display a `ggate` device name to "
+"mount. Mount that specified device name on a free mount point. This "
+"example connects to the [.filename]#/dev/da0s4d# partition on `192.168.1.1`, "
+"then mounts [.filename]#/dev/ggate0# on [.filename]#/mnt#:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:1075
+#, no-wrap
+msgid ""
+"# ggatec create -o rw 192.168.1.1 /dev/da0s4d\n"
+"ggate0\n"
+"# mount /dev/ggate0 /mnt\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1079
+msgid ""
+"The device on the server may now be accessed through [.filename]#/mnt# on "
+"the client. For more details about `ggatec` and a few usage examples, refer "
+"to man:ggatec[8]."
+msgstr ""
+
+#. type: delimited block = 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:1084
+msgid ""
+"The mount will fail if the device is currently mounted on either the server "
+"or any other client on the network. If simultaneous access is needed to "
+"network resources, use NFS instead."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1087
+msgid ""
+"When the device is no longer needed, unmount it with `umount` so that the "
+"resource is available to other clients."
+msgstr ""
+
+#. type: Title ==
+#: documentation/content/en/books/handbook/geom/_index.adoc:1089
+#, no-wrap
+msgid "Labeling Disk Devices"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1095
+msgid ""
+"During system initialization, the FreeBSD kernel creates device nodes as "
+"devices are found. This method of probing for devices raises some issues. "
+"For instance, what if a new disk device is added via USB? It is likely that "
+"a flash device may be handed the device name of [.filename]#da0# and the "
+"original [.filename]#da0# shifted to [.filename]#da1#. This will cause "
+"issues mounting file systems if they are listed in [.filename]#/etc/fstab# "
+"which may also prevent the system from booting."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1100
+msgid ""
+"One solution is to chain SCSI devices in order so a new device added to the "
+"SCSI card will be issued unused device numbers. But what about USB devices "
+"which may replace the primary SCSI disk? This happens because USB devices "
+"are usually probed before the SCSI card. One solution is to only insert "
+"these devices after the system has been booted. Another method is to use "
+"only a single ATA drive and never list the SCSI devices in [.filename]#/etc/"
+"fstab#."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1104
+msgid ""
+"A better solution is to use `glabel` to label the disk devices and use the "
+"labels in [.filename]#/etc/fstab#. Since `glabel` stores the label in the "
+"last sector of a given provider, the label will remain persistent across "
+"reboots. By using this label as a device, the file-system may always be "
+"mounted regardless of what device node it is accessed through."
+msgstr ""
+
+#. type: delimited block = 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:1109
+msgid ""
+"`glabel` can create both transient and permanent labels. Only permanent "
+"labels are consistent across reboots. Refer to man:glabel[8] for more "
+"information on the differences between labels."
+msgstr ""
+
+#. type: Title ===
+#: documentation/content/en/books/handbook/geom/_index.adoc:1111
+#, no-wrap
+msgid "Label Types and Examples"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1119
+msgid ""
+"Permanent labels can be a generic or a file system label. Permanent file "
+"system labels can be created with man:tunefs[8] or man:newfs[8]. These "
+"types of labels are created in a sub-directory of [.filename]#/dev#, and "
+"will be named according to the file system type. For example, UFS2 file "
+"system labels will be created in [.filename]#/dev/ufs#. Generic permanent "
+"labels can be created with `glabel label`. These are not file system "
+"specific and will be created in [.filename]#/dev/label#."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1123
+msgid ""
+"Temporary labels are destroyed at the next reboot. These labels are created "
+"in [.filename]#/dev/label# and are suited to experimentation. A temporary "
+"label can be created using `glabel create`."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1125
+msgid ""
+"To create a permanent label for a UFS2 file system without destroying any "
+"data, issue the following command:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:1129
+#, no-wrap
+msgid "# tunefs -L home /dev/da3\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1132
+msgid ""
+"A label should now exist in [.filename]#/dev/ufs# which may be added to [."
+"filename]#/etc/fstab#:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:1136
+#, no-wrap
+msgid "/dev/ufs/home\t\t/home ufs rw 2 2\n"
+msgstr ""
+
+#. type: delimited block = 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:1141
+msgid "The file system must not be mounted while attempting to run `tunefs`."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1144
+msgid "Now the file system may be mounted:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:1148
+#, no-wrap
+msgid "# mount /home\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1151
+msgid ""
+"From this point on, so long as the [.filename]#geom_label.ko# kernel module "
+"is loaded at boot with [.filename]#/boot/loader.conf# or the `GEOM_LABEL` "
+"kernel option is present, the device node may change without any ill effect "
+"on the system."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1154
+msgid ""
+"File systems may also be created with a default label by using the `-L` flag "
+"with `newfs`. Refer to man:newfs[8] for more information."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1156
+msgid "The following command can be used to destroy the label:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:1160
+#, no-wrap
+msgid "# glabel destroy home\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1163
+msgid "The following example shows how to label the partitions of a boot disk."
+msgstr ""
+
+#. type: Block title
+#: documentation/content/en/books/handbook/geom/_index.adoc:1164
+#, no-wrap
+msgid "Labeling Partitions on the Boot Disk"
+msgstr ""
+
+#. type: delimited block = 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:1170
+msgid ""
+"By permanently labeling the partitions on the boot disk, the system should "
+"be able to continue to boot normally, even if the disk is moved to another "
+"controller or transferred to a different system. For this example, it is "
+"assumed that a single ATA disk is used, which is currently recognized by the "
+"system as [.filename]#ad0#. It is also assumed that the standard FreeBSD "
+"partition scheme is used, with [.filename]#/#, [.filename]#/var#, [."
+"filename]#/usr# and [.filename]#/tmp#, as well as a swap partition."
+msgstr ""
+
+#. type: delimited block = 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:1173
+msgid ""
+"Reboot the system, and at the man:loader[8] prompt, press kbd:[4] to boot "
+"into single user mode. Then enter the following commands:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:1187
+#, no-wrap
+msgid ""
+"# glabel label rootfs /dev/ad0s1a\n"
+"GEOM_LABEL: Label for provider /dev/ad0s1a is label/rootfs\n"
+"# glabel label var /dev/ad0s1d\n"
+"GEOM_LABEL: Label for provider /dev/ad0s1d is label/var\n"
+"# glabel label usr /dev/ad0s1f\n"
+"GEOM_LABEL: Label for provider /dev/ad0s1f is label/usr\n"
+"# glabel label tmp /dev/ad0s1e\n"
+"GEOM_LABEL: Label for provider /dev/ad0s1e is label/tmp\n"
+"# glabel label swap /dev/ad0s1b\n"
+"GEOM_LABEL: Label for provider /dev/ad0s1b is label/swap\n"
+"# exit\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1192
+msgid ""
+"The system will continue with multi-user boot. After the boot completes, "
+"edit [.filename]#/etc/fstab# and replace the conventional device names, with "
+"their respective labels. The final [.filename]#/etc/fstab# will look like "
+"this:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:1201
+#, no-wrap
+msgid ""
+"# Device Mountpoint FStype Options Dump Pass#\n"
+"/dev/label/swap none swap sw 0 0\n"
+"/dev/label/rootfs / ufs rw 1 1\n"
+"/dev/label/tmp /tmp ufs rw 2 2\n"
+"/dev/label/usr /usr ufs rw 2 2\n"
+"/dev/label/var /var ufs rw 2 2\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1205
+msgid ""
+"The system can now be rebooted. If everything went well, it will come up "
+"normally and `mount` will show:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:1214
+#, no-wrap
+msgid ""
+"# mount\n"
+"/dev/label/rootfs on / (ufs, local)\n"
+"devfs on /dev (devfs, local)\n"
+"/dev/label/tmp on /tmp (ufs, local, soft-updates)\n"
+"/dev/label/usr on /usr (ufs, local, soft-updates)\n"
+"/dev/label/var on /var (ufs, local, soft-updates)\n"
+msgstr ""
+
+#. type: delimited block = 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:1222
+msgid ""
+"The man:glabel[8] class supports a label type for UFS file systems, based on "
+"the unique file system id, `ufsid`. These labels may be found in [."
+"filename]#/dev/ufsid# and are created automatically during system startup. "
+"It is possible to use `ufsid` labels to mount partitions using [.filename]#/"
+"etc/fstab#. Use `glabel status` to receive a list of file systems and their "
+"corresponding `ufsid` labels:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:1229
+#, no-wrap
+msgid ""
+"% glabel status\n"
+" Name Status Components\n"
+"ufsid/486b6fc38d330916 N/A ad4s1d\n"
+"ufsid/486b6fc16926168e N/A ad4s1f\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1233
+msgid ""
+"In the above example, [.filename]#ad4s1d# represents [.filename]#/var#, "
+"while [.filename]#ad4s1f# represents [.filename]#/usr#. Using the `ufsid` "
+"values shown, these partitions may now be mounted with the following entries "
+"in [.filename]#/etc/fstab#:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:1238
+#, no-wrap
+msgid ""
+"/dev/ufsid/486b6fc38d330916 /var ufs rw 2 2\n"
+"/dev/ufsid/486b6fc16926168e /usr ufs rw 2 2\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1241
+msgid ""
+"Any partitions with `ufsid` labels can be mounted in this way, eliminating "
+"the need to manually create permanent labels, while still enjoying the "
+"benefits of device name independent mounting."
+msgstr ""
+
+#. type: Title ==
+#: documentation/content/en/books/handbook/geom/_index.adoc:1243
+#, no-wrap
+msgid "UFS Journaling Through GEOM"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1249
+msgid ""
+"Support for journals on UFS file systems is available on FreeBSD. The "
+"implementation is provided through the GEOM subsystem and is configured "
+"using `gjournal`. Unlike other file system journaling implementations, the "
+"`gjournal` method is block based and not implemented as part of the file "
+"system. It is a GEOM extension."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1252
+msgid ""
+"Journaling stores a log of file system transactions, such as changes that "
+"make up a complete disk write operation, before meta-data and file writes "
+"are committed to the disk. This transaction log can later be replayed to "
+"redo file system transactions, preventing file system inconsistencies."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1257
+msgid ""
+"This method provides another mechanism to protect against data loss and "
+"inconsistencies of the file system. Unlike Soft Updates, which tracks and "
+"enforces meta-data updates, and snapshots, which create an image of the file "
+"system, a log is stored in disk space specifically for this task. For "
+"better performance, the journal may be stored on another disk. In this "
+"configuration, the journal provider or storage device should be listed after "
+"the device to enable journaling on."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1260
+msgid ""
+"The [.filename]#GENERIC# kernel provides support for `gjournal`. To "
+"automatically load the [.filename]#geom_journal.ko# kernel module at boot "
+"time, add the following line to [.filename]#/boot/loader.conf#:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:1264
+#, no-wrap
+msgid "geom_journal_load=\"YES\"\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1267
+msgid ""
+"If a custom kernel is used, ensure the following line is in the kernel "
+"configuration file:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:1271
+#, no-wrap
+msgid "options\tGEOM_JOURNAL\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1275
+msgid ""
+"Once the module is loaded, a journal can be created on a new file system "
+"using the following steps. In this example, [.filename]#da4# is a new SCSI "
+"disk:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:1280
+#, no-wrap
+msgid ""
+"# gjournal load\n"
+"# gjournal label /dev/da4\n"
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1283
+msgid ""
+"This will load the module and create a [.filename]#/dev/da4.journal# device "
+"node on [.filename]#/dev/da4#."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1285
+msgid ""
+"A UFS file system may now be created on the journaled device, then mounted "
+"on an existing mount point:"
+msgstr ""
+
+#. type: delimited block . 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:1290
+#, no-wrap
+msgid ""
+"# newfs -O 2 -J /dev/da4.journal\n"
+"# mount /dev/da4.journal /mnt\n"
+msgstr ""
+
+#. type: delimited block = 4
+#: documentation/content/en/books/handbook/geom/_index.adoc:1296
+msgid ""
+"In the case of several slices, a journal will be created for each individual "
+"slice. For instance, if [.filename]#ad4s1# and [.filename]#ad4s2# are both "
+"slices, then `gjournal` will create [.filename]#ad4s1.journal# and [."
+"filename]#ad4s2.journal#."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1302
+msgid ""
+"Journaling may also be enabled on current file systems by using `tunefs`. "
+"However, _always_ make a backup before attempting to alter an existing file "
+"system. In most cases, `gjournal` will fail if it is unable to create the "
+"journal, but this does not protect against data loss incurred as a result of "
+"misusing `tunefs`. Refer to man:gjournal[8] and man:tunefs[8] for more "
+"information about these commands."
+msgstr ""
+
+#. type: Plain text
+#: documentation/content/en/books/handbook/geom/_index.adoc:1304
+msgid ""
+"It is possible to journal the boot disk of a FreeBSD system. Refer to the "
+"article extref:{gjournal-desktop}[Implementing UFS Journaling on a Desktop "
+"PC] for detailed instructions."
+msgstr ""