Установка FreeBSD 9.x на программный RAID

Для установки FreeBSD 9.x на программный рейд (gmirror) необходимо загрузиться с live-CD.
В начале удаляем существующие разделы на дисках:
gpart destroy -F ada0
gpart destroy -F ada1


Теперь запускаем bsdinstall, первые шаги проходим, как обычно. В диалоге “Partitioning” нам будут предложены варианты методики разбивки диска – Guided, Manual, Shell. Выбираем Shell и попадаем в командную строку. Создаем разделы и устанавливаем загрузчик:
# —- Setup 1st disk
#
gpart create -s gpt ada0
gpart add -s 64k -t freebsd-boot -l boot0 ada0
gpart add -s 8G -t freebsd-swap -l swap0 ada0
gpart add -s 1G-t freebsd-ufs -l root0 ada0
gpart add -s 100G -t freebsd-ufs -l usr0 ada0
gpart add -s 5G -t freebsd-ufs -l var0 ada0
gpart add -s 100G -t freebsd-ufs -l spool0 ada0
gpart add -t freebsd-ufs -l mail0 ada0

# — Install boot code to first disk
gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada0

# —- Setup 2nd disk
#
gpart create -s gpt ada1
gpart add -s 64k -t freebsd-boot -l boot1 ada1
gpart add -s 8G -t freebsd-swap -l swap1 ada1
gpart add -s 1G-t freebsd-ufs -l root1 ada1
gpart add -s 100G -t freebsd-ufs -l usr1 ada1
gpart add -s 5G -t freebsd-ufs -l var1 ada1
gpart add -s 100G -t freebsd-ufs -l spool1 ada1
gpart add -t freebsd-ufs -l mail1 ada1

# — Install boot code to 2nd disk
gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada1
Сообщаем дисковой подсистеме, что у нас есть новая метки на дисках:
true > /dev/ada0
true > /dev/ada1
Проверить, что система перечитала информацию о наших дисках можно следующей командой:
ls -l /dev/gpt/
Далее – загружаем модуль в ядро и создаем RAID1 (“зеркало”) с использованием gmirror.
# — Load the geo_mirror KLD
kldload geom_mirror

# — Build gmirrors
gmirror label boot /dev/gpt/boot0 /dev/gpt/boot1
gmirror label swap /dev/gpt/swap0 /dev/gpt/swap1
gmirror label root /dev/gpt/root0 /dev/gpt/root1
gmirror label usr /dev/gpt/usr0 /dev/gpt/usr1
gmirror label var /dev/gpt/var0 /dev/gpt/var1
gmirror label spool /dev/gpt/spool0 /dev/gpt/spool1
gmirror label mail /dev/gpt/mail0 /dev/gpt/mail1

# — Check status
gmirror status
Теперь воспользуемся newfs для создания файловой системы, монтируем ее. Обратите внимание на флаги newfs: -U включает soft-updates, -L root указывает метку раздела.
newfs -L root /dev/mirror/root
mount /dev/mirror/root /mnt
newfs -U -L usr /dev/mirror/usr
mkdir /mnt/usr
mount /dev/mirror/usr /mnt/usr
newfs -U -L var /dev/mirror/var
mkdir /mnt/var
mount /dev/mirror/var /mnt/var
newfs -U -L spool /dev/mirror/spool
mkdir /mnt/var/spool
mount /dev/mirror/spool /mnt/var/spool
newfs -U -L mail /dev/mirror/mail
mkdir /mnt/var/mail
mount /dev/mirror/mail /mnt/var/mail

Пришло время создать правильный fstab. Для этого открываем с помощью самого правильного текстового редактора vi файл /tmp/bsdinstall_etc/fstab. Скопируйте в fstab следующее:
# Device Mountpoint FStype Options Dump Pass#
/dev/mirror/swap none swap sw 0 0
/dev/mirror/root / ufs rw 1 1
/dev/mirror/usr /usr ufs rw 1 1
/dev/mirror/var /var ufs rw 1 1
/dev/mirror/spool /var/spool ufs rw 1 1
/dev/mirror/mail /var/mail ufs rw 1 1
Подготовка дисков завершена. Набирайте в командной строке exit для возврата в инсталлятор и продолжайте установку. В конце инсталлятор покажет диалог “Manual Configuration” и спросит, не желаем ли мы что-то изменить в свежеустановленной системе. Выбираем Yes – нам необходимо указать системе на необходимость загружать дополнительный модуль ядра. Модифицируем loader.conf и включаем генерацию отчетов о состоянии дисковой подсистемы:
# — Make sure gmirror module comes up on boot
echo ‘geom_mirror_load=»YES»‘ >> /boot/loader.conf

# — Enable daily status reporting
echo ‘daily_status_gmirror_enable=»YES»‘ >> /etc/periodic.conf
На этом установка, фактически, закончена. Командой exit выходим из командной строки, инсталлятор завершает свою работу. После этого перезагружаемся и если все сделано по данной инструкции – вы получите FreeBSD 9, установленную на softraid на базе gmirror. Если же нет – загрузка с livecd поможет найти причину проблемы и устранить её.