Устанавливаем FreeBSD 9.1 на файловую систему ZFS c GPT

ZFS (Zettabyte File System) — файловая система от Sun Microsystems для Solaris. ZFS — проект с открытым кодом и лицензируется под CDDL (Common Development and Distribution License). ZFS предоставляет полный контроль над физическими и логическими носителями, способна обеспечить высокую скорость доступа к ним, контроль их целостности, а также минимизацию фрагментации данных.

Итак. Имеем тестовую машину и образ системы FreeBSD-9.1-i386-disc1.iso записанный на диск.

Устанавливаем в BIOS загрузку с cd-rom и загружаемся с записанного диска.

После загрузки выбираем «Shell».

Смотрим какие устройства есть в системе

ls /dev/

На всякий случай привожу обозначение устройств в системе FreeBSD:

/dev/ad*IDE диски, где

/dev/ad0Master на 1-м IDE-канале
/dev/ad1Slave на 1-м IDE-канале
/dev/ad2Master на 2-м IDE-канале
/dev/ad3Slave на 2-м IDE-канале

/dev/ada*SATA диски
/dev/acd*CDROM
/dev/da*устройства SCSI-дисков,
/dev/fd*флоппи-дисководы, где * с большой вероятностью 0
/dev/ccd*программные RAID-массивы

Скорее всего наш винт обозначается , как ada0. Но чтобы быть до конца уверенным набираем

dmesg

Вот собственно и наш диск

Я буду устанавливать на чистый диск, но на всякий случай приведу команду по-удалению

разделов:

gpart delete -i 1 ada0

таблицы разделов

gpart destroy -F ada0

и сразу проверяем, что все чисто

gpart show ada0

Переходим к созданию таблицы разделов GPT

gpart create -s gpt ada0

Загрузочный раздел, сразу после таблицы GPT, занимает 34 блока. Его размер я задам в 128 блоков (запасливый), что составляет 64 кБайт.

gpart add -b 34 -s 128 -t freebsd-boot -l boot0 ada0

Где

-b 34смещение от первого блока, т.е. мы создадим разрузочный раздел начиная с 34 логического блока
-s 128размер загрузочного раздела в блоках
-l — метка
-t freebsd-boot тип раздела. Раздел выделен специально под загрузчик FreeBSD

Начиная с freebsd 8 в параметре -b утилиты gpart по-умолчанию смещение начального блока берется минимально возможным. А если не указать размер ( -s ), будет использоваться все оставшееся свободное пространство. Например, та же команда для создания загрузочного раздела, может выглядеть так:

gpart add -s 128 -t freebsd-boot -l boot0 ada0

Теперь создадим раздел для ZFS пула, под который отведем все оставшееся пространство. Тип раздела «freebsd-zfs«:

gpart add -t freebsd-zfs -l disk0 ada0

Записываем загрузочный код

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

Проверяем, что сделали:

gpart show

Создаём пул

zpool create zroot /dev/gpt/disk0

Не обращаем внимание на ошибку

cannot mount '/zroot' : failed to create mountpoint

zpool set bootfs=zroot zroot
zfs set checksum=fletcher4 zroot
zfs set mountpoint=/mnt zroot

Возможные ошибки

cat

В качестве бонуса расмотрим установка системы на raid

ссылки:

http://www.aisecure.net/2011/11/28/root-zfs-freebsd9/

http://www.freebsd.org/doc/ru/books/handbook/filesystems-zfs.html

http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/filesystems-zfs.html

http://greendail.ru/node/544

http://msnp.ru/393

Ссылки и документация для вкуривания:

  1. wiki.freebsd.org/RootOnZFS/GPTZFSBoot
  2. Руководство по администрированию файловых систем ZFS Solaris
Share

You may also like...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *