Editorial review of mirror chapter.
Mostly fixes to acronyms, links, and "filesystems" and sentences beginning with commands. Sponsored by: iXsystems
This commit is contained in:
parent
7680bfa8e7
commit
2fbb99f2c7
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=44662
1 changed files with 74 additions and 89 deletions
|
@ -295,8 +295,8 @@ Done.</screen>
|
||||||
</warning>
|
</warning>
|
||||||
|
|
||||||
<warning>
|
<warning>
|
||||||
<para>&man.dump.8; is used in these procedures to copy file
|
<para>While <command>dump</command> is used in these procedures to copy file
|
||||||
systems. But &man.dump.8; does not work on file systems with
|
systems, it does not work on file systems with
|
||||||
soft updates journaling. See &man.tunefs.8; for information
|
soft updates journaling. See &man.tunefs.8; for information
|
||||||
on detecting and disabling soft updates journaling.</para>
|
on detecting and disabling soft updates journaling.</para>
|
||||||
</warning>
|
</warning>
|
||||||
|
@ -307,34 +307,34 @@ Done.</screen>
|
||||||
<para>Many disk systems store metadata at the end of each disk.
|
<para>Many disk systems store metadata at the end of each disk.
|
||||||
Old metadata should be erased before reusing the disk for a
|
Old metadata should be erased before reusing the disk for a
|
||||||
mirror. Most problems are caused by two particular types of
|
mirror. Most problems are caused by two particular types of
|
||||||
leftover metadata: GPT partition tables, and old
|
leftover metadata: <acronym>GPT</acronym> partition tables and old
|
||||||
&man.gmirror.8; metadata from a previous mirror.</para>
|
metadata from a previous mirror.</para>
|
||||||
|
|
||||||
<para>GPT metadata can be erased with &man.gpart.8;. This
|
<para><acronym>GPT</acronym> metadata can be erased with <command>gpart</command>. This
|
||||||
example erases both primary and backup GPT partition tables
|
example erases both primary and backup <acronym>GPT</acronym> partition tables
|
||||||
from disk <filename>ada8</filename>:</para>
|
from disk <filename>ada8</filename>:</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>gpart destroy -F ada8</userinput></screen>
|
<screen>&prompt.root; <userinput>gpart destroy -F ada8</userinput></screen>
|
||||||
|
|
||||||
<para>&man.gmirror.8; can remove a disk from an active mirror
|
<para>A disk can be removed from an active mirror and the
|
||||||
and erase the metadata in one step. Here, the example disk
|
metadata erased in one step using <command>gmirror</command>. Here, the example disk
|
||||||
<filename>ada8</filename> is removed from the active
|
<filename>ada8</filename> is removed from the active
|
||||||
mirror <filename>gm4</filename>:</para>
|
mirror <filename>gm4</filename>:</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>gmirror remove gm4 ada8</userinput></screen>
|
<screen>&prompt.root; <userinput>gmirror remove gm4 ada8</userinput></screen>
|
||||||
|
|
||||||
<para>If the mirror is not running but old mirror metadata is
|
<para>If the mirror is not running, but old mirror metadata is
|
||||||
still on the disk, use <command>gmirror clear</command> to
|
still on the disk, use <command>gmirror clear</command> to
|
||||||
remove it:</para>
|
remove it:</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>gmirror clear ada8</userinput></screen>
|
<screen>&prompt.root; <userinput>gmirror clear ada8</userinput></screen>
|
||||||
|
|
||||||
<para>&man.gmirror.8; stores one block of metadata at the end of
|
<para>When <command>gmirror</command> is used, one block of metadata is stored at the end of
|
||||||
the disk. Because GPT partition schemes also store metadata
|
the disk. Because <acronym>GPT</acronym> partition schemes also store metadata
|
||||||
at the end of the disk, mirroring entire GPT disks with
|
at the end of the disk, mirroring entire <acronym>GPT</acronym> disks with
|
||||||
&man.gmirror.8; is not recommended. MBR partitioning is used
|
<command>gmirror</command> is not recommended. <acronym>MBR</acronym> partitioning is used
|
||||||
here because it only stores a partition table at the start of
|
here because it only stores a partition table at the start of
|
||||||
the disk and does not conflict with &man.gmirror.8;.</para>
|
the disk and does not conflict with <command>gmirror</command>.</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2 xml:id="geom-mirror-two-new-disks">
|
<sect2 xml:id="geom-mirror-two-new-disks">
|
||||||
|
@ -347,8 +347,8 @@ Done.</screen>
|
||||||
system. A new mirror will be created on these two disks and
|
system. A new mirror will be created on these two disks and
|
||||||
used to replace the old single disk.</para>
|
used to replace the old single disk.</para>
|
||||||
|
|
||||||
<para>&man.gmirror.8; requires a kernel module,
|
<para>The
|
||||||
<filename>geom_mirror.ko</filename>, either built into the
|
<filename>geom_mirror.ko</filename> kernel module must either be built into the
|
||||||
kernel or loaded at boot- or run-time. Manually load the
|
kernel or loaded at boot- or run-time. Manually load the
|
||||||
kernel module now:</para>
|
kernel module now:</para>
|
||||||
|
|
||||||
|
@ -358,17 +358,17 @@ Done.</screen>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>gmirror label -v gm0 /dev/ada1 /dev/ada2</userinput></screen>
|
<screen>&prompt.root; <userinput>gmirror label -v gm0 /dev/ada1 /dev/ada2</userinput></screen>
|
||||||
|
|
||||||
<para><filename>gm0</filename> is a user-chosen device name
|
<para>In this example, <filename>gm0</filename> is a user-chosen device name
|
||||||
assigned to the new mirror. After the mirror has been
|
assigned to the new mirror. After the mirror has been
|
||||||
started, this device name will appear in
|
started, this device name will appear in
|
||||||
<filename>/dev/mirror/</filename>.</para>
|
<filename>/dev/mirror/</filename>.</para>
|
||||||
|
|
||||||
<para>MBR and bsdlabel partition tables can now be created on
|
<para><acronym>MBR</acronym> and <application>bsdlabel</application> partition tables can now be created on
|
||||||
the mirror with &man.gpart.8;. Here we show a traditional
|
the mirror with <command>gpart</command>. This example uses a traditional
|
||||||
split-filesystem layout, with partitions for
|
file system layout, with partitions for
|
||||||
<filename>/</filename>, swap, <filename>/var</filename>,
|
<filename>/</filename>, swap, <filename>/var</filename>,
|
||||||
<filename>/tmp</filename>, and <filename>/usr</filename>. A
|
<filename>/tmp</filename>, and <filename>/usr</filename>. A
|
||||||
single <filename>/</filename> filesystem and a swap partition
|
single <filename>/</filename> file system and a swap partition
|
||||||
will also work.</para>
|
will also work.</para>
|
||||||
|
|
||||||
<para>Partitions on the mirror do not have to be the same size
|
<para>Partitions on the mirror do not have to be the same size
|
||||||
|
@ -400,14 +400,14 @@ Done.</screen>
|
||||||
18874370 137426928 6 freebsd-ufs (65G)
|
18874370 137426928 6 freebsd-ufs (65G)
|
||||||
156301298 1 - free - (512B)</screen>
|
156301298 1 - free - (512B)</screen>
|
||||||
|
|
||||||
<para>Make the mirror bootable by installing bootcode in the MBR
|
<para>Make the mirror bootable by installing bootcode in the <acronym>MBR</acronym>
|
||||||
and bsdlabel and setting the active slice:</para>
|
and bsdlabel and setting the active slice:</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>gpart bootcode -b /boot/mbr mirror/gm0</userinput>
|
<screen>&prompt.root; <userinput>gpart bootcode -b /boot/mbr mirror/gm0</userinput>
|
||||||
&prompt.root; <userinput>gpart set -a active -i 1 mirror/gm0</userinput>
|
&prompt.root; <userinput>gpart set -a active -i 1 mirror/gm0</userinput>
|
||||||
&prompt.root; <userinput>gpart bootcode -b /boot/boot mirror/gm0s1</userinput></screen>
|
&prompt.root; <userinput>gpart bootcode -b /boot/boot mirror/gm0s1</userinput></screen>
|
||||||
|
|
||||||
<para>Format the filesystems on the new mirror, enabling
|
<para>Format the file systems on the new mirror, enabling
|
||||||
soft-updates.</para>
|
soft-updates.</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1a</userinput>
|
<screen>&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1a</userinput>
|
||||||
|
@ -415,9 +415,9 @@ Done.</screen>
|
||||||
&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1e</userinput>
|
&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1e</userinput>
|
||||||
&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1f</userinput></screen>
|
&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1f</userinput></screen>
|
||||||
|
|
||||||
<para>Filesystems from the original
|
<para>File systems from the original
|
||||||
<filename>ada0</filename> disk can now be copied onto the
|
<filename>ada0</filename> disk can now be copied onto the
|
||||||
mirror with &man.dump.8; and &man.restore.8;.</para>
|
mirror with <command>dump</command> and <command>restore</command>.</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>mount /dev/mirror/gm0s1a /mnt</userinput>
|
<screen>&prompt.root; <userinput>mount /dev/mirror/gm0s1a /mnt</userinput>
|
||||||
&prompt.root; <userinput>dump -C16 -b64 -0aL -f - / | (cd /mnt && restore -rf -)</userinput>
|
&prompt.root; <userinput>dump -C16 -b64 -0aL -f - / | (cd /mnt && restore -rf -)</userinput>
|
||||||
|
@ -428,8 +428,8 @@ Done.</screen>
|
||||||
&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /tmp | (cd /mnt/tmp && restore -rf -)</userinput>
|
&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /tmp | (cd /mnt/tmp && restore -rf -)</userinput>
|
||||||
&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /usr | (cd /mnt/usr && restore -rf -)</userinput></screen>
|
&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /usr | (cd /mnt/usr && restore -rf -)</userinput></screen>
|
||||||
|
|
||||||
<para><filename>/mnt/etc/fstab</filename> must be edited to
|
<para>Next, edit <filename>/mnt/etc/fstab</filename> to
|
||||||
point to the new mirror filesystems:</para>
|
point to the new mirror file systems:</para>
|
||||||
|
|
||||||
<programlisting># Device Mountpoint FStype Options Dump Pass#
|
<programlisting># Device Mountpoint FStype Options Dump Pass#
|
||||||
/dev/mirror/gm0s1a / ufs rw 1 1
|
/dev/mirror/gm0s1a / ufs rw 1 1
|
||||||
|
@ -438,21 +438,21 @@ Done.</screen>
|
||||||
/dev/mirror/gm0s1e /tmp ufs rw 2 2
|
/dev/mirror/gm0s1e /tmp ufs rw 2 2
|
||||||
/dev/mirror/gm0s1f /usr ufs rw 2 2</programlisting>
|
/dev/mirror/gm0s1f /usr ufs rw 2 2</programlisting>
|
||||||
|
|
||||||
<para>If the &man.gmirror.8; kernel module has not been built
|
<para>If the <filename>geom_mirror.ko</filename> kernel module has not been built
|
||||||
into the kernel, <filename>/mnt/boot/loader.conf</filename> is
|
into the kernel, <filename>/mnt/boot/loader.conf</filename> is
|
||||||
edited to load the module at boot:</para>
|
edited to load the module at boot:</para>
|
||||||
|
|
||||||
<programlisting>geom_mirror_load="YES"</programlisting>
|
<programlisting>geom_mirror_load="YES"</programlisting>
|
||||||
|
|
||||||
<para>Reboot the system to test the new mirror and verify that
|
<para>Reboot the system to test the new mirror and verify that
|
||||||
all data has been copied. The BIOS will see the mirror as two
|
all data has been copied. The <acronym>BIOS</acronym> will see the mirror as two
|
||||||
individual drives rather than a mirror. Because the drives
|
individual drives rather than a mirror. Because the drives
|
||||||
are identical, it does not matter which is selected to
|
are identical, it does not matter which is selected to
|
||||||
boot.</para>
|
boot.</para>
|
||||||
|
|
||||||
<para>See the <link
|
<para>See <xref
|
||||||
linkend="gmirror-troubleshooting">Troubleshooting</link>
|
linkend="gmirror-troubleshooting"/>
|
||||||
section if there are problems booting. Powering down and
|
if there are problems booting. Powering down and
|
||||||
disconnecting the original <filename>ada0</filename> disk
|
disconnecting the original <filename>ada0</filename> disk
|
||||||
will allow it to be kept as an offline backup.</para>
|
will allow it to be kept as an offline backup.</para>
|
||||||
|
|
||||||
|
@ -469,17 +469,17 @@ Done.</screen>
|
||||||
system. A one-disk mirror will be created on the new disk,
|
system. A one-disk mirror will be created on the new disk,
|
||||||
the existing system copied onto it, and then the old disk will
|
the existing system copied onto it, and then the old disk will
|
||||||
be inserted into the mirror. This slightly complex procedure
|
be inserted into the mirror. This slightly complex procedure
|
||||||
is required because &man.gmirror.8; needs to put a 512-byte
|
is required because <command>gmirror</command> needs to put a 512-byte
|
||||||
block of metadata at the end of each disk, and the existing
|
block of metadata at the end of each disk, and the existing
|
||||||
<filename>ada0</filename> has usually had all of its space
|
<filename>ada0</filename> has usually had all of its space
|
||||||
already allocated.</para>
|
already allocated.</para>
|
||||||
|
|
||||||
<para>Load the &man.gmirror.8; kernel module:</para>
|
<para>Load the <filename>geom_mirror.ko</filename> kernel module:</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>gmirror load</userinput></screen>
|
<screen>&prompt.root; <userinput>gmirror load</userinput></screen>
|
||||||
|
|
||||||
<para>Check the media size of the original disk with
|
<para>Check the media size of the original disk with
|
||||||
&man.diskinfo.8;:</para>
|
<command>diskinfo</command>:</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>diskinfo -v ada0 | head -n3</userinput>
|
<screen>&prompt.root; <userinput>diskinfo -v ada0 | head -n3</userinput>
|
||||||
/dev/ada0
|
/dev/ada0
|
||||||
|
@ -488,39 +488,37 @@ Done.</screen>
|
||||||
|
|
||||||
<para>Create a mirror on the new disk. To make certain that the
|
<para>Create a mirror on the new disk. To make certain that the
|
||||||
mirror capacity is not any larger than the original drive,
|
mirror capacity is not any larger than the original drive,
|
||||||
&man.gnop.8; is used to create a fake drive of the exact same
|
<command>gnop</command> is used to create a fake drive of the exact same
|
||||||
size. This drive does not store any data, but is used only to
|
size. This drive does not store any data, but is used only to
|
||||||
limit the size of the mirror. When &man.gmirror.8; creates
|
limit the size of the mirror. When <command>gmirror</command> creates
|
||||||
the mirror, it will restrict the capacity to the size of
|
the mirror, it will restrict the capacity to the size of
|
||||||
<filename>gzero.nop</filename>, even if the new drive
|
<filename>gzero.nop</filename>, even if the new drive
|
||||||
(<filename>ada1</filename>) has more space. Note that the
|
(<filename>ada1</filename>) has more space. Note that the
|
||||||
<replaceable>1000204821504</replaceable> in the second line
|
<replaceable>1000204821504</replaceable> in the second line
|
||||||
should be equal to <filename>ada0</filename>'s media size
|
should be equal to <filename>ada0</filename>'s media size
|
||||||
as shown by &man.diskinfo.8; above.</para>
|
as shown by <command>diskinfo</command> above.</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>geom zero load</userinput>
|
<screen>&prompt.root; <userinput>geom zero load</userinput>
|
||||||
&prompt.root; <userinput>gnop create -s 1000204821504 gzero</userinput>
|
&prompt.root; <userinput>gnop create -s 1000204821504 gzero</userinput>
|
||||||
&prompt.root; <userinput>gmirror label -v gm0 gzero.nop ada1</userinput>
|
&prompt.root; <userinput>gmirror label -v gm0 gzero.nop ada1</userinput>
|
||||||
&prompt.root; <userinput>gmirror forget gm0</userinput></screen>
|
&prompt.root; <userinput>gmirror forget gm0</userinput></screen>
|
||||||
|
|
||||||
<para><filename>gzero.nop</filename> does not store any
|
<para>Since <filename>gzero.nop</filename> does not store any
|
||||||
data, so the mirror does not see it as connected. The mirror
|
data, the mirror does not see it as connected. The mirror
|
||||||
is told to <quote>forget</quote> unconnected components,
|
is told to <quote>forget</quote> unconnected components,
|
||||||
removing references to <filename>gzero.nop</filename>.
|
removing references to <filename>gzero.nop</filename>.
|
||||||
The result is a mirror device containing only a single disk,
|
The result is a mirror device containing only a single disk,
|
||||||
<filename>ada1</filename>.</para>
|
<filename>ada1</filename>.</para>
|
||||||
|
|
||||||
<para>After creating <filename>gm0</filename>, view the
|
<para>After creating <filename>gm0</filename>, view the
|
||||||
partition table on <filename>ada0</filename>.</para>
|
partition table on <filename>ada0</filename>. This output is from a 1 TB drive. If there is some
|
||||||
|
|
||||||
<para>This output is from a 1 TB drive. If there is some
|
|
||||||
unallocated space at the end of the drive, the contents may be
|
unallocated space at the end of the drive, the contents may be
|
||||||
copied directly from <filename>ada0</filename> to the new
|
copied directly from <filename>ada0</filename> to the new
|
||||||
mirror.</para>
|
mirror.</para>
|
||||||
|
|
||||||
<para>However, if the output shows that all of the space on the
|
<para>However, if the output shows that all of the space on the
|
||||||
disk is allocated like the following listing, there is no
|
disk is allocated, like in the following listing, there is no
|
||||||
space available for the 512-byte &man.gmirror.8; metadata at
|
space available for the 512-byte mirror metadata at
|
||||||
the end of the disk.</para>
|
the end of the disk.</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>gpart show ada0</userinput>
|
<screen>&prompt.root; <userinput>gpart show ada0</userinput>
|
||||||
|
@ -533,9 +531,8 @@ Done.</screen>
|
||||||
be explained later.</para>
|
be explained later.</para>
|
||||||
|
|
||||||
<para>In either case, partition tables on the primary disk
|
<para>In either case, partition tables on the primary disk
|
||||||
should be copied first with the &man.gpart.8;
|
should be first copied using <command>gpart backup</command>
|
||||||
<command>backup</command> and <command>restore</command>
|
and <command>gpart restore</command>.</para>
|
||||||
subcommands.</para>
|
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>gpart backup ada0 > table.ada0</userinput>
|
<screen>&prompt.root; <userinput>gpart backup ada0 > table.ada0</userinput>
|
||||||
&prompt.root; <userinput>gpart backup ada0s1 > table.ada0s1</userinput></screen>
|
&prompt.root; <userinput>gpart backup ada0s1 > table.ada0s1</userinput></screen>
|
||||||
|
@ -615,7 +612,7 @@ BSD 8
|
||||||
<para>Both the slice and the last partition should have some
|
<para>Both the slice and the last partition should have some
|
||||||
free space at the end of each disk.</para>
|
free space at the end of each disk.</para>
|
||||||
|
|
||||||
<para>Create filesystems on these new partitions. The
|
<para>Create file systems on these new partitions. The
|
||||||
number of partitions will vary, matching the partitions on the
|
number of partitions will vary, matching the partitions on the
|
||||||
original disk, <filename>ada0</filename>.</para>
|
original disk, <filename>ada0</filename>.</para>
|
||||||
|
|
||||||
|
@ -625,7 +622,7 @@ BSD 8
|
||||||
&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1f</userinput>
|
&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1f</userinput>
|
||||||
&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1g</userinput></screen>
|
&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1g</userinput></screen>
|
||||||
|
|
||||||
<para>Make the mirror bootable by installing bootcode in the MBR
|
<para>Make the mirror bootable by installing bootcode in the <acronym>MBR</acronym>
|
||||||
and bsdlabel and setting the active slice:</para>
|
and bsdlabel and setting the active slice:</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>gpart bootcode -b /boot/mbr mirror/gm0</userinput>
|
<screen>&prompt.root; <userinput>gpart bootcode -b /boot/mbr mirror/gm0</userinput>
|
||||||
|
@ -650,15 +647,15 @@ BSD 8
|
||||||
/dev/mirror/gm0s1f /data1 ufs rw 2 2
|
/dev/mirror/gm0s1f /data1 ufs rw 2 2
|
||||||
/dev/mirror/gm0s1g /data2 ufs rw 2 2</programlisting>
|
/dev/mirror/gm0s1g /data2 ufs rw 2 2</programlisting>
|
||||||
|
|
||||||
<para>If the &man.gmirror.8; kernel module has not been built
|
<para>If the <filename>geom_mirror.ko</filename> kernel module has not been built
|
||||||
into the kernel, edit <filename>/boot/loader.conf</filename>
|
into the kernel, edit <filename>/boot/loader.conf</filename>
|
||||||
to load it:</para>
|
to load it:</para>
|
||||||
|
|
||||||
<programlisting>geom_mirror_load="YES"</programlisting>
|
<programlisting>geom_mirror_load="YES"</programlisting>
|
||||||
|
|
||||||
<para>Filesystems from the original disk can now be copied onto
|
<para>File systems from the original disk can now be copied onto
|
||||||
the mirror with &man.dump.8; and &man.restore.8;. Note that
|
the mirror with <command>dump</command> and <command>restore</command>. Note that
|
||||||
it may take some time to create a snapshot for each filesystem
|
it may take some time to create a snapshot for each file system
|
||||||
dumped with <command>dump -L</command>.</para>
|
dumped with <command>dump -L</command>.</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>mount /dev/mirror/gm0s1a /mnt</userinput>
|
<screen>&prompt.root; <userinput>mount /dev/mirror/gm0s1a /mnt</userinput>
|
||||||
|
@ -676,9 +673,9 @@ BSD 8
|
||||||
<filename>ada1</filename>. If everything is working, the
|
<filename>ada1</filename>. If everything is working, the
|
||||||
system will boot from <filename>mirror/gm0</filename>,
|
system will boot from <filename>mirror/gm0</filename>,
|
||||||
which now contains the same data as
|
which now contains the same data as
|
||||||
<filename>ada0</filename> had previously. See the
|
<filename>ada0</filename> had previously. See
|
||||||
<link linkend="gmirror-troubleshooting">Troubleshooting</link>
|
<xref linkend="gmirror-troubleshooting"/>
|
||||||
section if there are problems booting.</para>
|
if there are problems booting.</para>
|
||||||
|
|
||||||
<para>At this point, the mirror still consists of only the
|
<para>At this point, the mirror still consists of only the
|
||||||
single <filename>ada1</filename> disk.</para>
|
single <filename>ada1</filename> disk.</para>
|
||||||
|
@ -694,9 +691,9 @@ BSD 8
|
||||||
<filename>mirror/gm0</filename> has the same contents as
|
<filename>mirror/gm0</filename> has the same contents as
|
||||||
<filename>ada0</filename> before adding
|
<filename>ada0</filename> before adding
|
||||||
<filename>ada0</filename> to the mirror. If there is
|
<filename>ada0</filename> to the mirror. If there is
|
||||||
something wrong with the contents copied by &man.dump.8; and
|
something wrong with the contents copied by <command>dump</command> and
|
||||||
&man.restore.8;, revert <filename>/etc/fstab</filename> to
|
<command>restore</command>, revert <filename>/etc/fstab</filename> to
|
||||||
mount the filesystems on <filename>ada0</filename>,
|
mount the file systems on <filename>ada0</filename>,
|
||||||
reboot, and try the whole procedure again.</para>
|
reboot, and try the whole procedure again.</para>
|
||||||
</important>
|
</important>
|
||||||
|
|
||||||
|
@ -704,8 +701,8 @@ BSD 8
|
||||||
GEOM_MIRROR: Device gm0: rebuilding provider ada0</screen>
|
GEOM_MIRROR: Device gm0: rebuilding provider ada0</screen>
|
||||||
|
|
||||||
<para>Synchronization between the two disks will start
|
<para>Synchronization between the two disks will start
|
||||||
immediately. &man.gmirror.8; <command>status</command>
|
immediately. Use <command>gmirror status</command>
|
||||||
shows the progress.</para>
|
to view the progress.</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>gmirror status</userinput>
|
<screen>&prompt.root; <userinput>gmirror status</userinput>
|
||||||
Name Status Components
|
Name Status Components
|
||||||
|
@ -720,7 +717,7 @@ mirror/gm0 DEGRADED ada1 (ACTIVE)
|
||||||
mirror/gm0 COMPLETE ada1 (ACTIVE)
|
mirror/gm0 COMPLETE ada1 (ACTIVE)
|
||||||
ada0 (ACTIVE)</screen>
|
ada0 (ACTIVE)</screen>
|
||||||
|
|
||||||
<para><filename>mirror/gm0</filename> now consists of
|
<para>The mirror, <filename>mirror/gm0</filename>, now consists of
|
||||||
the two disks <filename>ada0</filename> and
|
the two disks <filename>ada0</filename> and
|
||||||
<filename>ada1</filename>, and the contents are
|
<filename>ada1</filename>, and the contents are
|
||||||
automatically synchronized with each other. In use,
|
automatically synchronized with each other. In use,
|
||||||
|
@ -731,21 +728,12 @@ mirror/gm0 COMPLETE ada1 (ACTIVE)
|
||||||
<sect2 xml:id="gmirror-troubleshooting">
|
<sect2 xml:id="gmirror-troubleshooting">
|
||||||
<title>Troubleshooting</title>
|
<title>Troubleshooting</title>
|
||||||
|
|
||||||
<sect3>
|
<para>If the system no longer boots, <acronym>BIOS</acronym>
|
||||||
<title>Problems with Booting</title>
|
settings may have to be changed to boot from one
|
||||||
|
|
||||||
<sect4>
|
|
||||||
<title>BIOS Settings</title>
|
|
||||||
|
|
||||||
<para>BIOS settings may have to be changed to boot from one
|
|
||||||
of the new mirrored drives. Either mirror drive can be
|
of the new mirrored drives. Either mirror drive can be
|
||||||
used for booting, as they contain identical data.</para>
|
used for booting, as they contain identical data.</para>
|
||||||
</sect4>
|
|
||||||
|
|
||||||
<sect4>
|
<para>If the boot stops with this message, something is
|
||||||
<title>Boot Problems</title>
|
|
||||||
|
|
||||||
<para>If the boot stopped with this message, something is
|
|
||||||
wrong with the mirror device:</para>
|
wrong with the mirror device:</para>
|
||||||
|
|
||||||
<screen>Mounting from ufs:/dev/mirror/gm0s1a failed with error 19.
|
<screen>Mounting from ufs:/dev/mirror/gm0s1a failed with error 19.
|
||||||
|
@ -771,7 +759,7 @@ Manual root filesystem specification:
|
||||||
mountroot></screen>
|
mountroot></screen>
|
||||||
|
|
||||||
<para>Forgetting to load the
|
<para>Forgetting to load the
|
||||||
<filename>geom_mirror</filename> module in
|
<filename>geom_mirror.ko</filename> module in
|
||||||
<filename>/boot/loader.conf</filename> can cause this
|
<filename>/boot/loader.conf</filename> can cause this
|
||||||
problem. To fix it, boot from a &os; 9.0 or later
|
problem. To fix it, boot from a &os; 9.0 or later
|
||||||
installation media and choose <literal>Shell</literal> at
|
installation media and choose <literal>Shell</literal> at
|
||||||
|
@ -788,15 +776,15 @@ mountroot></screen>
|
||||||
|
|
||||||
<para>Save the file and reboot.</para>
|
<para>Save the file and reboot.</para>
|
||||||
|
|
||||||
<para>Other problems that cause <literal>error 19</literal>
|
<para>Other problems that cause <errorname>error 19</errorname>
|
||||||
require more effort to fix. Enter
|
require more effort to fix. Although the system should boot from
|
||||||
<literal>ufs:/dev/ada0s1a</literal> at the boot loader
|
|
||||||
prompt. Although the system should boot from
|
|
||||||
<filename>ada0</filename>, another prompt to select a
|
<filename>ada0</filename>, another prompt to select a
|
||||||
shell appears because <filename>/etc/fstab</filename> is
|
shell will appear if <filename>/etc/fstab</filename> is
|
||||||
incorrect. Press the Enter key at the prompt. Undo the
|
incorrect. Enter
|
||||||
modifications so far by reverting
|
<literal>ufs:/dev/ada0s1a</literal> at the boot loader
|
||||||
<filename>/etc/fstab</filename>, mounting filesystems from
|
prompt and press <keycap>Enter</keycap>. Undo the
|
||||||
|
edits in
|
||||||
|
<filename>/etc/fstab</filename> then mount the file systems from
|
||||||
the original disk (<filename>ada0</filename>) instead
|
the original disk (<filename>ada0</filename>) instead
|
||||||
of the mirror. Reboot the system and try the procedure
|
of the mirror. Reboot the system and try the procedure
|
||||||
again.</para>
|
again.</para>
|
||||||
|
@ -804,8 +792,6 @@ mountroot></screen>
|
||||||
<screen>Enter full pathname of shell or RETURN for /bin/sh:
|
<screen>Enter full pathname of shell or RETURN for /bin/sh:
|
||||||
&prompt.root; <userinput>cp /etc/fstab.orig /etc/fstab</userinput>
|
&prompt.root; <userinput>cp /etc/fstab.orig /etc/fstab</userinput>
|
||||||
&prompt.root; <userinput>reboot</userinput></screen>
|
&prompt.root; <userinput>reboot</userinput></screen>
|
||||||
</sect4>
|
|
||||||
</sect3>
|
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2>
|
<sect2>
|
||||||
|
@ -833,9 +819,8 @@ mountroot></screen>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>gmirror forget gm0</userinput></screen>
|
<screen>&prompt.root; <userinput>gmirror forget gm0</userinput></screen>
|
||||||
|
|
||||||
<para>Any old metadata should be
|
<para>Any old metadata should be cleared from the replacement disk using the instructions in
|
||||||
<link linkend="geom-mirror-metadata">cleared from the
|
<xref linkend="geom-mirror-metadata"/>. Then the disk,
|
||||||
replacement disk</link>. Then the disk,
|
|
||||||
<filename>ada4</filename> for this example, is inserted into
|
<filename>ada4</filename> for this example, is inserted into
|
||||||
the mirror:</para>
|
the mirror:</para>
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue