Установка FreeBSD 9 на ZFS.

Январь 17, 2012 at 9:18 дп (Главное)

1) Загрузите компьютер (сервер) с использованием DVD диска FreeBSD 9 или USB Flash и выберите пункт загрузочного меню “Live CD”.

2) На католог /tmp установите права разрешающие запись в него (777) и перемонтируем его.

chmod 777 /tmp
umount /dev/md1
mdmfs -s 512M md1 /tmp

3) Создаём необходимые ZFS разделы диска и добавляем загрузочную запись.

a) Для простой установки:

gpart create -s gpt ada0
gpart add -b 34 -s 64k -t freebsd-boot ada0
gpart add -t freebsd-zfs -l disk0 ada0
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0

b) Если осуществляем зеркальную установку то повторяем предыдущее действие и для второго диска:

gpart create -s gpt ada1
gpart add -b 34 -s 64k -t freebsd-boot ada1
gpart add -t freebsd-zfs -l disk1 ada1
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada1

4) Создаём ZFS пул.

a) Для простой установки:

zpool create zroot /dev/gpt/disk0


b) Для зеркала:

zpool create zroot mirror /dev/gpt/disk0 /dev/gpt/disk1

5) Устанавливаем опции bootfs, контрольные суммы и точки монтирования. (На этом этапе игнорируем любые сообщения кроме ошибок)

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


6) Экспортируем пулл zroot.cache в каталог /tmp.

zpool export zroot
zpool import -o cachefile=/tmp/zpool.cache zroot

7)Создаём соответствующие файловые системы (Если вы опытны в работе на ZFS то можете внести свои коррективы в обратном случае лучше оставить как есть):

zfs create zroot/usr
zfs create zroot/usr/home
zfs create zroot/var
zfs create -o compression=on -o exec=on -o setuid=off zroot/tmp
zfs create -o compression=lzjb -o setuid=off zroot/usr/ports
zfs create -o compression=off -o exec=off -o setuid=off zroot/usr/ports/distfiles
zfs create -o compression=off -o exec=off -o setuid=off zroot/usr/ports/packages
zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/usr/src
zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/var/crash
zfs create -o exec=off -o setuid=off zroot/var/db
zfs create -o compression=lzjb -o exec=on -o setuid=off zroot/var/db/pkg
zfs create -o exec=off -o setuid=off zroot/var/empty
zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/var/log
zfs create -o compression=gzip -o exec=off -o setuid=off zroot/var/mail
zfs create -o exec=off -o setuid=off zroot/var/run
zfs create -o compression=lzjb -o exec=on -o setuid=off zroot/var/tmp

8) Создаём swap раздел и отключаем проверку контрольных сумм. В данном случае создаётся SWAP раздел размеров 4GB.

zfs create -V 4G zroot/swap
zfs set org.freebsd:swap=on zroot/swap
zfs set checksum=off zroot/swap

9) Создаём symlink на каталог /home и выставляем необходимые права доступа.

chmod 1777 /mnt/tmp
cd /mnt ; ln -s usr/home home
chmod 1777 /mnt/var/tmp

10) Распаковываем файлы FreeBSD 9 (по факту и есть установка).

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

11) Копируем zpool.cache (Очень важно, не пропустите этот шаг)

cp /tmp/zpool.cache /mnt/boot/zfs/zpool.cache

12) Редактируем файл настроек /etc/rc.conf, /boot/loader.conf и создаём пустой /etc/fstab (если не сделать то нас пошлют на этапе загрузки системы).

echo 'zfs_enable="YES"' >> /mnt/etc/rc.conf
echo 'zfs_load="YES"' >> /mnt/boot/loader.conf
echo 'vfs.root.mountfrom="zfs:zroot"' >> /mnt/boot/loader.conf
touch /mnt/etc/fstab

13) Делаем последние штрихи.

zfs set readonly=on zroot/var/empty
zfs umount -a
zfs set mountpoint=legacy zroot
zfs set mountpoint=/tmp zroot/tmp
zfs set mountpoint=/usr zroot/usr
zfs set mountpoint=/var zroot/var

14) При умирании винта (если использовалось зеркало):

1) Инициализируем новый винт, как в пункте 3b
2) zpool online zroot ada1p2; zpool replace zroot ada1p2
3) после перестроения зеркала: zpool clear zroot

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

Fill in your details below or click an icon to log in:

Логотип WordPress.com

You are commenting using your WordPress.com account. Log Out / Изменить )

Фотография Twitter

You are commenting using your Twitter account. Log Out / Изменить )

Фотография Facebook

You are commenting using your Facebook account. Log Out / Изменить )

Connecting to %s

Follow

Get every new post delivered to your Inbox.