gmirror problem on 5.3-R i386 (SOLVED)
doug at polands.org
Fri Jan 14 11:43:08 PST 2005
On Thu, Jan 13, 2005 at 09:51:03AM +0100, Christian Hiris wrote:
> Hash: SHA1
> On Thursday 13 January 2005 03:54, Doug Poland wrote:
> > I'm having a problem with gmirror. It would seem that I cannot add my
> > first disk to the mirror after booting off the second drive. My current
> > status is a degraded mirror and I cannot see any of the partitions on
> > disk one.
> > # dd if=/dev/zero of=/dev/ad4 bs=512 count=79
> You probably destroyed your slice table here. The dd command only makes sense
> if you insert whole disks (ie. /dev/ad4 and /dev/ad6) as providers. Otherwise
> you need to create (or already have) a valid slice table on the disk, which
> enables gmirror to locate and insert your slice.
One of my problems was incorrect partition sizes when I created the
bsdlabel for /dev/mirror/gm0s1. I didn't really know what I was doing
nor did I understand the consequences of my actions ;)
> (!) Before you start to correct your gmirror setup, please read all of my
> comments, because to me it looks like you run a mirror of ad6 and not ad6s1.
I'm not sure why gmirror label shows that but it's definately misleading.
Since this is a brand-new box with nothing but a minimal install, I
decided to re-install 5.3-R. This time I got the install right and
Geom name: gm0s1
1. Name: mirror/gm0s1
Mediasize: 80026329088 (75G)
1. Name: ad4
Mediasize: 80026361856 (75G)
2. Name: ad6
Mediasize: 80026361856 (75G)
Geom name: gm0s1.sync
I'm going to include the steps I took, with one deviation from the
published doc I referenced, and ask a couple more questions.
1 dd if=/dev/zero of=/dev/ad6 bs=512 count=79
2 fdisk -v -B -I /dev/ad6
4 gmirror label -v -n -b round-robin gm0s1 /dev/ad6s1
5 gmirror load
7 bsdlabel -w -B /dev/mirror/gm0s1
8 bsdlabel -e /dev/mirror/gm0s1
10 newfs -U /dev/mirror/gm0s1a
11 mount /dev/mirror/gm0s1a /mnt
12 dump -L -0 -f- / | ( cd /mnt ; restore -r -v -f- )
13 newfs -U /dev/mirror/gm0s1d
14 mount /dev/mirror/gm0s1d /mnt/var
15 dump -L -0 -f- /var | ( cd /mnt/var ; restore -r -v -f- )
16 newfs -U /dev/mirror/gm0s1e
17 mount /dev/mirror/gm0s1e /mnt/tmp
18 dump -L -0 -f- /tmp | ( cd /mnt/tmp ; restore -r -v -f- )
19 newfs -U /dev/mirror/gm0s1f
20 mount /dev/mirror/gm0s1f /mnt/usr
21 dump -L -0 -f- /usr | ( cd /mnt/usr ; restore -r -v -f- )
23 cp -p /mnt/etc/fstab /mnt/etc/fstab.orig
24 sed -e 's/dev\/ad4s1/dev\/mirror\/gm0s1/g' < /mnt/etc/fstab.orig > /mnt/etc/fstab
25 echo 'swapoff="YES"' >> /mnt/etc/rc.conf
26 echo 'geom_mirror_load="YES"' >> /mnt/boot/loader.conf
27 echo "1:ad(6,a)/boot/loader" > /boot.config
29 shutdown -r now
31 dd if=/dev/zero of=/dev/ad4 bs=512 count=79
32 fdisk -v -B -I /dev/ad4
33 gmirror configure -a gm0s1
34 gmirror insert gm0s1 /dev/ad4s1
35 sh -c 'while [ ".`gmirror list | grep SYNCHRONIZING`" != . ]; do sleep 1; done'
37 shutdown -r now
On line 32, I deviated from the instructions on:
The published command was:
size=`fdisk ad6 | grep ', size ' | head -1 | sed -e 's;^.*size \([0-9]*\).*$;\1;'` (echo "p 1 165 63 $size"; echo "a 1") | fdisk -v -B -f- -i /dev/ad4
That command returned: "improperly placed quotes ()". I set the value
of $size manually but it was some small number like 50000. I wrote it
to ad4 but the command on line 33 puked. So I simply issued the command
shown on line 32.
Question: On line 27 we issue the command to...
# instruct boot stage 2 loader on first disk to boot
# with the boot stage 3 loader from the second disk
# (mainly because BIOS might not allow easy booting from second ATA disk
# or at least requires manual intervention on the console)
So how do I get rid of that boot.config file? Should I get rid of it?
Question: On line 25 we set swapoff=YES. Is this necessary if I'm going
to run 5-STABLE? What are the implications of having swap on a mirror
Thanks for your help!
More information about the freebsd-questions