Столкнулся с проблемой реализации подобной связки GPT и gmirror на FreeBSD 9.0.

Методом проб и ошибок получилась вот такая пошаговая инструкция:

  1. Загружаемся с диска FreeBSD 9.0 amd64 в режиме LiveCD, система спросит логин, вводим root, а вместо пароля просто жмем Enter.
  2. Удаляем все GPT данные с дисков:
gpart destroy -F ada0
gpart destroy -F ada1
  1. Создаем GPT на 1 диске: bash gpart create -s gpt ada0
  2. Создаем GPT разметку на 1 диске: 3.1 Загрузочный раздел
gpart add -b 34 -s 94 -t freebsd-boot ada0

3.2 Раздел подкачки

gpart add -s 5G -t freebsd-swap ada0

3.3 Файловую систему UFS

gpart add -t freebsd-ufs ada0

3.4 Проверяем все ли так, как мы задумали

gpart show
=>        34  2930277101  ada0  GPT  (1.4T)
          34          94     1  freebsd-boot  (47k)
         128     2097152     2  freebsd-swap  (1.0G)
     2097280  2928179855     3  freebsd-ufs  (1.4T)

3.5 Записываем загрузчик

gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada0

3.6 Копируем разметку GTP с 1 диска на 2 диск

gpart backup ada0 | gpart restore -F ada1

3.7. Проверяем что теперь получилось:

gpart show
=>        34  2930277101  ada0  GPT  (1.4T)
          34          94     1  freebsd-boot  (47k)
         128     2097152     2  freebsd-swap  (1.0G)
     2097280  2928179855     3  freebsd-ufs  (1.4T)

=>        34  2930277101  ada1  GPT  (1.4T)
          34          94     1  freebsd-boot  (47k)
         128     2097152     2  freebsd-swap  (1.0G)
     2097280  2928179855     3  freebsd-ufs  (1.4T)
  1. загружаем gmirror:
gmirror load

4.1 Создаем RAID1 для SWAP раздела

gmirror label -v -b round-robin swap /dev/ada0p2

4.2 Добавляем 2-ой диск в зеркало:

gmirror insert swap /dev/ada1p2

4.3 Создаем RAID1 для UFS раздела:

gmirror label -v -b round-robin rootfs ada0p3

4.4 Добавляем 2-ой диск в зеркало:

gmirror insert rootfs /dev/ada1p3

4.5 Удалить случайно созданные RAID1 разделы(если вдруг чего-то напутали выше)

gmirror remove swap ada0p2 ada1p2
  1. Создаем файловые системы на RAID1 разделах
newfs -m 1 -U /dev/mirror/rootfs
  1. УСТАНОВКА FreeBSD: 6.1 Монтируем созданную файловую систему в /mnt
mount /dev/mirror/rootfs /mnt

6.2 Устанавливаем FreeBSD 9.0

cd /usr/freebsd-dist
sh
export DESTDIR=/mnt
for file in base.txz kernel.txz lib32.txz; do (cat $file | tar --unlink -xpJf - -C ${DESTDIR:-/}); done

6.3 Создаем /etc/fstab для установленной системы:

cat > /mnt/etc/fstab <<-__EOF__
#dev   #mount #fs #opts #dump #pass
/dev/mirror/rootfs / ufs rw 1 1
/dev/mirror/swap none swap sw 0 0
__EOF__

6.4 Создаем /boot/loader.conf

cat > /mnt/boot/loader.conf <<-__EOF__
geom_mirror_load="YES"
__EOF__
  1. Отмонтируем зеркало
umount /mnt
  1. все готово, теперь можно перезагружаться и смотреть на результат

Ссылки по теме: http://forums.freebsd.org/showthread.php?t=29098 HOWTO: Install FreeBSD 9.0 RELEASE (Root on UFS + ZFS, RAID1) http://bu7cher.blogspot.com/2011/03/freebsd-gmirror-gpt-ufs.html Варианты загрузки FreeBSD: gmirror + GPT + UFS http://www.lissyara.su/articles/freebsd/file_system/gmirror/ Использование gmirror для создания программного зеркалирования дисков http://forums.freebsd.org/showthread.php?t=28348 [Solved] No gmirror in 9.0, now what? http://www.wonkity.com/~wblock/docs/html/gmirror.html gmirror With Disk Partitions http://blather.michaelwlucas.com/archives/1071 mirroring FreeBSD-9 disks with GPT


Comments

comments powered by Disqus