Загружаемся с установочного диска FreeBSD 9-RELEASE.
Запускаем Shell, который предоставляется загрузчиком install.
Изменяем переменную ядра kern.geom.debugflags:
# sysctl kern.geom.debugflags=16
Загружаем модуль ядра geom_mirror.ko:
# kldload /boot/kernel/geom_mirror.ko
С помощью утилиты gmirror создаем зеркало и включаем в него оба диска:
# gmirror label -v -b round-robin gm0 /dev/ada0
# gmirror insert gm0 /dev/ada1
Дополнительные опции gmirror:
gmirror label - создание зеркала;
gmirror insert - добавление диска в зеркало;
-v - включение режима отладки;
-b round-robin - режим балансировки;
gm0 - имя зеркала;
/dev/ada0 - диск, с которого берем данные для зеркалирования;
/dev/ada1 - диск на который будем выполнять синхронизацию
Дожидаемся полной синхронизации дисков. Просмотреть текущее состояние можно такой коммандой:
# gmirror list
Обратите внимание на общее состояние зеркала -DEGRADED, а также на флаг SYNCHRONIZING. По завершению синхронизации, статус зеркала изменится на COMPLETE.
Выходим из Shell обратно в install:
# exit
Создаем раздел GPT на gm0 и необходимые партиции.
freebsd-boot (47k)
freebsd-swap (2.0G)
freebsd-ufs / (80.0G) (зависит от размерв Вашего диска.)
По завершению развертывания системы, install предлагает произвести редактирование системных файлов. Добавляем загрузку модуля GEOM в loader.conf:
# echo 'geom_mirror_load="YES"' > /boot/loader.conf << __EOF__
> geom_mirror_load="YES"
> __EOF__
Проверяем, что в fstab прописаны партиции с gm0. Пример записи: /dev/mirror/gm0p2.
# ee /etc/fstab
Перезагружаемся.
# shutdown -r now
На этом установка системы и настройка gmirror с разметкой GPT заканчивается.
Перед началом загрузки системы видим сообщение "Invalid backup GPT header". Дело в том, что GPT была создана поверх зеркала.
На этом все, все очень просто. 🙂