This howto assumes a few things...
- You have a copy of the Gentoo handbook readily available as I will not cover all the steps involved.
- You've installed Gentoo before. If not, you might find attempting to do a raid install rather difficult to say the least.
Download, burn and boot the Gentoo install CD. Once it's on the network and able to resolve continue.
Load the required modules.
# modprobe raid0 # modprobe raid1
Next, create the partition structure you want to use on 1 of the 2 drives. NOTE: /boot MUST be mirrored (raid1) and can NOT be striped (raid0)
My setup looks like this:
/sda1 + /sdb1 = md1 /boot raid1 /sda2 SWAP none /sdb2 SWAP none /sda3 + /sdb4 = md4 / raid1 /sda5 + /sdb5 = md5 /usr raid0 /sda6 + /sdb6 = md6 /var raid0 /sda7 + /sdb7 = md7 /opt raid0 /sda8 + /sdb8 = md8 /tmp raid0 /sda9 + /sdb9 = md9 /home raid0
I used quite an in depth partition system. whereby I kept / along with /etc on a raid-1 system so that if I lost a drive along with all my data, at least I don't lose all my configuration.
# fdisk -l /dev/sda Disk /dev/sda: 203.9 GB, 203928109056 bytes 255 heads, 63 sectors/track, 24792 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 24 192748+ fd Linux raid autodetect /dev/sda2 25 149 1004062+ 82 Linux swap / Solaris /dev/sda3 150 2581 19535040 fd Linux raid autodetect /dev/sda4 2582 24792 178409857+ 5 Extended /dev/sda5 2582 5013 19535008+ fd Linux raid autodetect /dev/sda6 5014 6229 9767488+ fd Linux raid autodetect /dev/sda7 6230 6837 4883728+ fd Linux raid autodetect /dev/sda8 6838 7080 1951866 fd Linux raid autodetect /dev/sda9 7081 24792 142271608+ fd Linux raid autodetect
Once your first disk is partitioned, you can easily copy the partition structure accross to the second drive.
# sfdisk -d /dev/sda | sfdisk /dev/sdb
Now create the blocks to mount the raid arrays.
# cd /dev # MAKEDEV md
Now create the raid arrays.
# mdadm --create --verbose /dev/md1 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1 # mdadm --create --verbose /dev/md3 --level=1 --raid-devices=2 /dev/sda3 /dev/sdb3 # mdadm --create --verbose /dev/md5 --level=0 --raid-devices=2 /dev/sda5 /dev/sdb5 # mdadm --create --verbose /dev/md6 --level=0 --raid-devices=2 /dev/sda6 /dev/sdb6 # mdadm --create --verbose /dev/md7 --level=0 --raid-devices=2 /dev/sda7 /dev/sdb7 # mdadm --create --verbose /dev/md8 --level=0 --raid-devices=2 /dev/sda8 /dev/sdb8 # mdadm --create --verbose /dev/md9 --level=0 --raid-devices=2 /dev/sda9 /dev/sdb9
Raid-1 arrays take a while to sync. You can follow the progress of the sync by checking /proc/mdstat
# cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 sdb3[1] sda3[0]
184859840 blocks [2/2] [UU]
[======>..............] resync = 33.1% (61296896/184859840)
finish=34.3min speed=59895K/secNow that the file system has been create, update the mdadm config file.
# mdadm --detail --scan >> /etc/mdadm.conf
Technically you can create the filesystem before the sync is complete, but I didn't.
# mke2fs /dev/md1 # mke2fs -j /dev/md3 # mkreiserfs /dev/md5 # mkreiserfs /dev/md6 # mkreiserfs /dev/md7 # mkreiserfs /dev/md8 # mkreiserfs /dev/md9 # mkswap /dev/sda2 # mkswap /dev/sdb2 # swapon -p 1 /dev/sda2 # swapon -p 1 /dev/sdb2
Now mount
# mount /dev/md3 /mnt/gentoo # cd /mnt/gentoo # mkdir boot usr var opt tmp home # mount /dev/md1 /mnt/gentoo/boot # mount /dev/md5 /mnt/gentoo/usr # mount /dev/md6 /mnt/gentoo/var # mount /dev/md7 /mnt/gentoo/opt # mount /dev/md8 /mnt/gentoo/tmp # mount /dev/md9 /mnt/gentoo/home # mount -t proc none /mnt/gentoo/proc # mount -o bind /dev /mnt/gentoo/dev
Download and extract Stage3 file to /mnt/gentoo
Use a console based browser "links2"
# tar xvjpf stage3-*.tar.bz2 ...
Now cd to /mnt/gentoo/usr download the latest portage snapshot to the same location and extract.
# tar xvjf portage-latest.tar.bz2 ...
Copy some files from your livecd environment onto your newly extracted hdd install.
# cp -Lfv /etc/resolv.conf /mnt/gentoo/etc/ # cp -Lfv /etc/mdadm.conf /mnt/gentoo/etc/
Edit /mnt/gentoo/etc/make.conf (Personally I do this once the system is bootable and then reemerge EVERYTHING effectively making my install a stage-1 install.
Change root
# chroot /mnt/gentoo /bin/bash # env-update >> Regenerating /etc/ld.so.cache... # source /etc/profile # export PS1="(chroot) $PS1"
Follow the Gentoo handbook from here.
When you get to the kernel configuration, be sure to include the following so that your system can boot.
Multi-device support (RAID and LVM) ---> [*] Multiple devices driver support (RAID and LVM) <*> RAID support < > Linear (append) mode (NEW) <*> RAID-0 (striping) mode <*> RAID-1 (mirroring) mode < > RAID-10 (mirrored striping) mode (EXPERIMENTAL) (NEW) < > RAID-4/RAID-5 mode (NEW) < > RAID-6 mode (NEW) < > Multipath I/O support (NEW) < > Faulty test module for MD (NEW) <*> Device mapper support < > Crypt target support (NEW) < > Snapshot target (EXPERIMENTAL) (NEW) < > Mirror target (EXPERIMENTAL) (NEW) < > Zero target (EXPERIMENTAL) (NEW) < > Multipath target (EXPERIMENTAL) (NEW) < > Bad Block Relocation Device Target (EXPERIMENTAL) (NEW)
/etc/fstab
# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts. /dev/md1 /boot ext2 noauto,noatime 1 2 /dev/md3 / ext3 noatime 0 1 /dev/sda2 none swap sw,pri=1 0 0 /dev/sdb2 none swap sw,pri=1 0 0 /dev/md5 /usr reiserfs noatime 1 2 /dev/md6 /var reiserfs noatime 1 2 /dev/md7 /opt reiserfs noatime 1 2 /dev/md8 /tmp reiserfs noatime 1 2 /dev/md9 /home reiserfs noatime 1 2 /dev/sdd1 /export reiserfs noatime 0 0 /dev/cdrom /mnt/cdrom audo noauto,ro 0 0
Be sure to install mdadm and add it to boot runlevel.
(chroot) # emerge mdadm (chroot) # rc-update add mdadm boot
GRUB
It is very important that you install grub to all the drives in your array.
To find which drives to install to
grub> find /boot/grub/stage1 (hd0,0) (hd1,0) grub>
Install to drive 1
grub> device (hd0) /dev/sda grub> root (hd0,0) grub> setup (hd0)
Install to drive 2
grub> device (hd0) /dev/sdb grub> root (hd0,0) grub> setup (hd0)
/boot/grub/grub.conf
default 0 timeout 10 title=Gentoo root (hd0,0) kernel /boot/vanilla-2.6.21.6 root=/dev/md3

