Установка FreeBSD на ZFS (mirror)

Для установки FreeBSD на ZFS нам понадобится либо DVD образ либо
USB Memstick. У меня почему то возникли проблемы с USB Memstick — как то странно обрабатывались сигналы с клавиатуры в Fixit консоли, а вот с DVD все заработало нормально.

1) У нас есть DVD диск с FreeBSD (На момент написания была FreeBSD 8.1)

2) Загружаемся с диска, в sysinstsll’e выбираем Fixit консоль, выбираем носитель в данном случае (DVD).

3) Нужно создать GPT разметку дисков(список дисков можно посмотреть atacontrol list)

Fixit# atacontrol list
ATA channel 0:

Master: ad4 <ST31000528AS/CC38> SATA revision 2.x Slave: no device present ATA channel 1: Master: ad6 <ST31032552AD/CC42> SATA revision 2.x Slave: no device present

Fixit# gpart create -s gpt ad4
Fixit# gpart create -s gpt ad6

4) Создание boot,swap и zfs разделов.

Под swap выделяем 4GB. Под zfs все оставшееся место.

Fixit# gpart add -b 34 -s 64k -t freebsd-boot ad4 #создание boot раздела
Fixit# gpart add -s 4G -t freebsd-swap -l swap0 ad4 #swap
Fixit# gpart add -t freebsd-zfs -l disk0 ad4 #zfs
Fixit# gpart add -b 34 -s 64k -t freebsd-boot ad6
Fixit# gpart add -s 4G -t freebsd-swap -l swap1 ad6
Fixit# gpart add -t freebsd-zfs -l disk1 ad6

5) Установка загрузчика на оба раздела

Fixit# gpart bootcode -b /mnt2/boot/pmbr -p /mnt2/boot/gptzfsboot -i 1 ad4
Fixit# gpart bootcode -b /mnt2/boot/pmbr -p /mnt2/boot/gptzfsboot -i 1 ad6

Если возникал ошибка «operation not permitted» попробуйте это (я не столкнулся с такой ошибкой)

Fixit# sysctl kern.geom.debugflags=0x10

6) Загрузка ZFS модулей

Fixit# kldload /mnt2/boot/kernel/opensolaris.ko
Fixit# kldload /mnt2/boot/kernel/zfs.ko

7) Создание ZFS пула «zroot» в зеркале — можно назвать как угодно

Fixit# mkdir /boot/zfs
Fixit# zpool create zroot mirror /dev/gpt/disk0 /dev/gpt/disk1
Fixit# zpool set bootfs=zroot zroot

8) Установка FreeBSD

8.1) Создание каталогов

 Fixit# zfs set checksum=fletcher4                                      zroot
 Fixit# zfs create -o compression=on    -o exec=on      -o setuid=off   zroot/tmp
 Fixit# chmod 1777 /zroot/tmp
 Fixit# zfs create                                                      zroot/usr
 Fixit# zfs create                                                      zroot/usr/home
 Fixit# cd /zroot ; ln -s /usr/home home
Fixit# zfs create                                                      zroot/var
 Fixit# zfs create -o compression=lzjb  -o exec=on      -o setuid=off   zroot/var/tmp
 Fixit# chmod 1777 /zroot/var/tmp

8.2) Установка FreeBSD в zroot

Fixit# cd /dist/8.0-*
 Fixit# export DESTDIR=/zroot
 Fixit# for dir in base catpages dict doc games info lib32 manpages ports; \
          do (cd $dir ; ./install.sh) ; done
 Fixit# cd src ; ./install.sh all
 Fixit# cd ../kernels ; ./install.sh generic
 Fixit# cd /zroot/boot ; cp -Rlp GENERIC/* /zroot/boot/kernel/

#некоторые настройка
Fixit# chroot /zroot

Fixit# echo ‘zfs_enable=»YES»‘ > /etc/rc.conf
Fixit# echo ‘hostname=»mehost»‘ >> /etc/rc.conf

Fixit# echo ‘zfs_load=»YES»‘ > /boot/loader.conf
Fixit# echo ‘vfs.root.mountfrom=»zfs:zroot»‘ >> /boot/loader.conf

Fixit# echo ‘LOADER_ZFS_SUPPORT=YES’ > /etc/src.conf
 Fixit# mount -t devfs devfs /dev
 Fixit# export DESTDIR=»»
 Fixit# cd /usr/src/sys/boot/
 Fixit# make obj
 Fixit# make depend
 Fixit# make
 Fixit# cd i386/loader

 Fixit# make install

Fixit# passwd #установка пароля root

Fixit# tzsetup #установка временной зоны

Fixit# cd /etc/mail
 Fixit# make aliases #создание /etc/mail/aliases.db
Fixit# umount /dev
 Fixit# exit
Fixit# cp /boot/zfs/zpool.cache /zroot/boot/zfs/zpool.cache

 

8.3) Swap то же объединим в зеркало через gmirror

Fixit# kldload /mnt2/boot/kernel/geom_mirror.ko
Fixit# gmirror label -b prefer swap gpt/swap0 gpt/swap1
Fixit# ee /zroot/etc/fstab
# Device                       Mountpoint              FStype  Options         Dump    Pass#
/dev/mirror/swap               none                    swap    sw              0       0

Fixit# echo ‘geom_mirror_load=»YES»‘ >> /zroot/boot/loader.conf

Fixit# export LD_LIBRARY_PATH=/mnt2/lib
Fixit# zfs unmount -a
#Установим точки монтирования для пула
Fixit# zfs set mountpoint=legacy zroot
Fixit# zfs set mountpoint=/tmp zroot/tmp
Fixit# zfs set mountpoint=/usr zroot/usr
Fixit# zfs set mountpoint=/var zroot/var

Fixit# exit

Взято с http://wiki.freebsd.org/RootOnZFS/GPTZFSBoot/Mirror

 

 

 

 

 

 

 

 

 

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

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