PC :
Make Live CD dependent to your release.
Recent FreeBSD CD2 is not an Live CD. Get CD1.
# fetch ftp://ftp.freebsd.org/pub/FreeBSD/ISO-IMAGES-i386/6.1/6.1-RELEASE-i386-disc1.iso
# burncd -f /dev/acd0 data 6.1-RELEASE-i386-disc1.iso fixate
Make sure what dev's are to be gmirror'ed.
% grep 'kernel: ad' /var/log/messages
Nov 4 11:10:30 kuro kernel: ad4: 76319MB <Seagate ST380817AS 3.42> at ata2-master SATA150
Nov 4 11:10:30 kuro kernel: ad6: 157066MB <Hitachi HDS721616PLA380 P22OABEA> at ata3-master SATA150
Reboot with Live CD.
Change BIOS or some to boot CD.
After boot, start fixit.
# chroot /dist
# mount_devfs devfs /dev
# gmirror load
# gmirror label -v -b split m0 /dev/ad4
# mount /dev/mirror/m0s1a /mnt
# echo 'geom_mirror_load="YES"' >> /mnt/boot/loader.conf
# echo 'swapoff="YES"' >> /mnt/etc/rc.conf
# sed "s%ad4%mirror/m0%" /mnt/etc/fstab > /mnt/etc/fstab.new
# mv /mnt/etc/fstab /mnt/etc/fstab.orig
# mv /mnt/etc/fstab.new /mnt/etc/fstab
# exit
Cf. http://www.karashi.org/~poppen/d/20051118.html#p05
Shutdown, connect ad6 and boot on multi user mode.
# fdisk -i -1 ad6
# bsdlabel -w ad6
Begin building mirror.
# gmirror insert -v m0 ad6
Done.
# gmirror status
Name Status Components
mirror/m0 DEGRADED ad4
ad6 (0%)
Nov 4 11:10:30 kuro kernel: GEOM_MIRROR: Device m0: provider ad4 detected.
Nov 4 11:10:30 kuro kernel: GEOM_MIRROR: Device m0: provider ad4 activated.
Nov 4 11:10:30 kuro kernel: GEOM_MIRROR: Device m0: provider mirror/m0 launched.
Nov 4 11:28:41 kuro kernel: GEOM_MIRROR: Device m0: provider ad6 detected.
Nov 4 11:28:41 kuro kernel: GEOM_MIRROR: Device m0: rebuilding provider ad6.
Nov 4 11:58:25 kuro kernel: GEOM_MIRROR: Device m0: rebuilding provider ad6 finished.
Nov 4 11:58:25 kuro kernel: GEOM_MIRROR: Device m0: provider ad6 activated.
* Disable disk once marked if named by mistaken.
# gmirror deactivate marked_name ad6s1a
If not recognised ad4?
After shutdown, power-off ad4 and start.
Boot up from ad6 automatically with some errors, not fatal.
Nov 4 12:22:00 kuro kernel: GEOM_MIRROR: Device m0 created (id=3510722158).
Nov 4 12:22:00 kuro kernel: GEOM_MIRROR: Device m0: provider ad6 detected.
Nov 4 12:22:00 kuro kernel: GEOM_MIRROR: Force device m0 start due to timeout.
Nov 4 12:22:00 kuro kernel: GEOM_MIRROR: Device m0: provider ad6 activated.
Nov 4 12:22:00 kuro kernel: GEOM_MIRROR: Device m0: provider mirror/m0 launched.
Works without problems.
Restore.
Shutdown again and power-on ad4 and start.
BIOS should be set ad4 first-boot.
Boot up without any errors and any seeking noise,
because booting from ad6 that's newer than ad4.
And starts mirroring ad6 to ad4 from the top to the bottom automatically.
This is a rebuilding.
# gmirror list
Geom name: m0
State: DEGRADED
Components: 2
Balance: split
Slice: 4096
Flags: NONE
GenID: 0
SyncID: 2
ID: 3510722158
Providers:
1. Name: mirror/m0
Mediasize: 80026361344 (75G)
Sectorsize: 512
Mode: r8w7e8
Consumers:
1. Name: ad4
Mediasize: 80026361856 (75G)
Sectorsize: 512
Mode: r1w1e1
State: SYNCHRONIZING
Priority: 0
Flags: DIRTY, SYNCHRONIZING
GenID: 0
SyncID: 2
Synchronized: 19%
ID: 1330449739
2. Name: ad6
Mediasize: 164696555520 (153G)
Sectorsize: 512
Mode: r1w1e1
State: ACTIVE
Priority: 0
Flags: DIRTY
GenID: 0
SyncID: 2
ID: 3834783892
# gmirror status
Name Status Components
mirror/m0 DEGRADED ad4 (20%)
ad6
Nov 4 12:26:52 kuro kernel: GEOM_MIRROR: Device m0 created (id=3510722158).
Nov 4 12:26:52 kuro kernel: GEOM_MIRROR: Device m0: provider ad4 detected.
Nov 4 12:26:52 kuro kernel: GEOM_MIRROR: Device m0: provider ad6 detected.
Nov 4 12:26:52 kuro kernel: GEOM_MIRROR: Device m0: provider ad6 activated.
Nov 4 12:26:52 kuro kernel: GEOM_MIRROR: Device m0: provider mirror/m0 launched.
Nov 4 12:26:52 kuro kernel: GEOM_MIRROR: Device m0: rebuilding provider ad4.
Nov 4 13:00:04 kuro kernel: GEOM_MIRROR: Device m0: rebuilding provider ad4 finished.
Nov 4 13:00:04 kuro kernel: GEOM_MIRROR: Device m0: provider ad4 activated.
See the slices of the latter added HDD?
# gmirror status
Name Status Components
mirror/m0 COMPLETE ad4
ad6
Cannot see each HDDs before removing.
# gmirror remove ad6
Too few arguments.
# gmirror remove m0 ad6
# bsdlabel ad6
bsdlabel: /dev/ad6: no valid label found
# bsdlabel ad6s1
# /dev/ad6s1:
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
a: 1048576 0 4.2BSD 0 0 0
b: 3880592 1048576 swap
c: 156296322 0 unused 0 0 # "raw" part, don't edit
d: 4036608 4929168 4.2BSD 0 0 0
e: 1048576 8965776 4.2BSD 0 0 0
f: 41943040 10014352 4.2BSD 0 0 0
g: 4194304 51957392 4.2BSD 2048 16384 28552
h: 100144626 56151696 4.2BSD 2048 16384 28552
See the first attatched HDD also.
# bsdlabel ad4s1
bsdlabel: /dev/ad4s1: No such file or directory
# bsdlabel mirror/m0s1
# /dev/mirror/m0s1:
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
a: 1048576 0 4.2BSD 0 0 0
b: 3880592 1048576 swap
c: 156296322 0 unused 0 0 # "raw" part, don't edit
d: 4036608 4929168 4.2BSD 0 0 0
e: 1048576 8965776 4.2BSD 0 0 0
f: 41943040 10014352 4.2BSD 0 0 0
g: 4194304 51957392 4.2BSD 2048 16384 28552
h: 100144626 56151696 4.2BSD 2048 16384 28552
They are just the same despite the sizes are different from
each other, not shown here.
Restore the latter added HDD to gmirror.
# gmirror insert ad6
Too few arguments.
# gmirror insert m0 ad6
# gmirror status
Name Status Components
mirror/m0 DEGRADED ad4
ad6 (0%)
#
Starts rebuilding as if this is the first time added.