Subject: Re: port-i386/28588
To: None <hubertf@NetBSD.org, gnats-admin@netbsd.org,>
From: Havard Eidnes <he@NetBSD.org>
List: netbsd-bugs
Date: 12/15/2006 11:30:03
The following reply was made to PR port-i386/28588; it has been noted by GNATS.

From: Havard Eidnes <he@NetBSD.org>
To: hubertf@NetBSD.org
Cc: gnats-admin@netbsd.org, netbsd-bugs@netbsd.org,
	carl@rollcage2.bl.echidna.id.au, gnats-bugs@NetBSD.org
Subject: Re: port-i386/28588
Date: Fri, 15 Dec 2006 12:25:44 +0100 (CET)

 Hi,
 
 seeing this PR reminded me that the procedure as stated in the
 NetBSD guide is horribly complicated -- more so than it needs to
 be, with "failing a component" and all that stuff.
 
 Here is the procedure I have used when installing NetBSD/i386 on
 a mirrored set of 2 disks, admittedly with 3.0, but I think it
 should work for 2.0 as well as long as it has support for booting
 from a mirrored raid set.
 
 The procedure I used requires some use of tools outside of
 sysinst before sysinst is run, and a bit of manual calculation
 (for partition sizes), but is conceptually straight-forward:
 
 1) boot NetBSD from boot media, typically CD-ROM
 
 2) Initialize NetBSD fdisk partitions on the two drives, in my
    case the two drives are wd0 and wd1:
 
    fdisk -a -i -u -B wd0
 
    I used "entire drive, save the 63 first sectors, made the
    NetBSD partition the active partition, used mbr_bootsel, and
    used NetBSD-0 as the menu entry, boot from first active
    partition.
 
    Repeat for wd1, I used NetBSD-1 there.
 
 3) Put a disklabel on both drives:
 
    Use "disklabel wd0" to get the "default" label and see the
    total size, in my case 156312576 sectors, and initialize +
    edit the label:
 
    disklabel -I -e wd0
 
    I used:
 
    a: 156312513    63     RAID
 
    and let "c" cover the same area and "d" the entire disk.
 
    Repeat for wd1.
 
 4) Make a configuration file for raidframe:
 
    ed /etc/raid.conf
    a
    START array
    # numRow numCol numSpare
    1 2 0
 
    START disks
    /dev/wd0a
    /dev/wd1a
 
    START layout
    # sectPerSU SUsPerParityUnit SUsPerReconUnit RAID_level_1
    64 1 1 1
 
    START fifo
    fifo 100
    .=
 
    w
    q
 
    (Indented for readability here.)
 
 5) Configure the raid set, and set it to auto-config and
    root-on-raid:
 
    raidctl -C /etc/raid.conf raid0
    raidctl -I 4711 raid0
    raidctl -i raid0
    raidctl -A yes raid0
    raidctl -A root raid0
 
 6) Optional, check parity regeneration status:
 
    raidctl -S raid0
 
    You may interrupt the display with ^C.
 
 7) Use sysinst to install NetBSD to the newly configured raid0
    raid set in the normal manner.  Sysinst should list raid0 as a
    usable drive.
 
    sysinst
 
 8) Install the NetBSD boot code on rwd0a and rwd1a.  Sysinst has
    not left any boot code there, only inside raid0, and this is
    required to be able to boot from the raid set:
 
    installboot -v -o console=3Dcom0,timeout=3D10 /dev/rwd0a /usr/mdec/b=
 ootxx_ffsv1
    installboot -v -o console=3Dcom0,timeout=3D10 /dev/rwd1a /usr/mdec/b=
 ootxx_ffsv1
 
 9) Remove boot media, reboot the system, and ensure that the
    following is either part of the defaults or is placed in
    rc.conf:
 
    # Allow clean raid unconfigure on shutdown
    swapoff=3DYES
 
 And you're done.
 
 None of that complicated "artificially fail one component,
 restore to new" stuff required.
 
 Ideally, sysinst should be taught to guide the user through this
 process.
 
 Best regards,
 
 - H=E5vard