Установка 9.0 RELEASE на MBR+ZFS

Цель: в этой небольшой заметке, которая не исключает официальную документацию постараюсь описать кратко, но не в ущерб качеству, как мне удалось поставить FreeBSD 9.0 на MBR разметкой и ZFS в качестве ФС. Не так давно я купил новый девайс Lenovo ThinkPad Edge E120 и мне очень захотелось поставить туда FreeBSD. На данный момент модно ставить GPT , а сверху ZFS. Однако у меня появились не малые траблы с этим. В списке TODO на сайте проекта FreeBSD выяснил что EFI booting еще в планах и не реализован. Это собственно и стало причиной почему я не стал применять GPT. Изначальлно все что ниже описано было опровано на 9.0 amd64 RC3, но оно также проверялось и на 9.0 RELEASE.

Задача: становить FreeBSD 9.0 с корнем и основной ФС на базе ZFS.


Hardware:

  • Процессор : 64-битный
  • Жесткий диск : 298 ГБ
  • Оперативка : 2ГБ

Терминология:

пул - под этим словом понимается пул устройств создаваемый командой "zfs create";
amd64zfs - используется в качестве имени ZFS пула;
ada0 - это имя устройства жесткого HITACHI SATA-диска, куда я ставлю систему;
ada0s1 - это имя устройства слайса в MBR на который размечаем BSD-разметку;
Fixit - Командная строка LiveCD. Нужно загрузиться с memstick или DVD образа.  Выбрать на старте опцию "LiveCD"

Дополнительная литература:

1. Размечаем диск в MBR и создаем слайс:

Fixit# gpart create -s MBR ada0
Fixit# gpart add -t freebsd ada0

2. Размечаем слайс в BSD и создаем партиции:

Fixit# gpart create -s BSD ada0s1
Fixit# gpart add -s 294G -t freebsd-zfs ada0s1
Fixit# gpart add -t freebsd-swap ada0s1

Note: swap должен быть после zfs-партиции.

3. Задаем активный слайс:

Fixit# gpart set -a active -i 1 ada0

4. Увеличиваем /tmp до 512МБ:

Fixit# umount /dev/md1
Fixit# mdmfs -s 512M md1 /tmp

5. Создаем zfs пул:

Fixit# zpool create amd64zfs /dev/ada0s1a
Fixit# zpool set bootfs=amd64zfs amd64zfs
Fixit# zfs set checksum=fletcher4 amd64zfs

6. Пишем загрузчик:

Fixit# gpart bootcode -b /boot/mbr ada0

7. Временно монтируем пул:

Fixit# zfs set mountpoint=/mnt amd64zfs

8. Устанавливаем ZFS-загрузчик:

* Экспортируем пул перед установкой буткода

Fixit# zpool export amd64zfs

* Сетапим буткод стадии №1

Fixit# dd if=/boot/zfsboot of=/dev/ad0s1 count=1

Note: Если появится сообщение "operation not permitted", то попробуй:

Fixit# sysctl kern.geom.debugflags=0x10

* Сетапим буткод Стадия №2

Fixit# dd if=/boot/zfsboot of=/dev/ad0s1a skip=1 seek=1024

Note: Важно понимать что этот буткод устанавливается в подходящую дыру на диске в ФС согласно формату ZFS это как раз после ZFS мета-данных, т.е. seek=1024

* Импортируем пул для продолжения установки

Fixit# zpool import -o cachefile=/tmp/zpool.cache amd64zfs

9. Создаем файловые схемы:

Fixit# zfs create amd64zfs/data
Fixit# zfs create amd64zfs/usr
Fixit# zfs create amd64zfs/usr/home
Fixit# zfs create -o quota=4G amd64zfs/tmp
Fixit# zfs create -o quota=4G amd64zfs/var
Fixit# zfs create -o quota=4G amd64zfs/var/tmp
Fixit# zfs create -o setuid=off amd64zfs/var/db
Fixit# zfs create -o setuid=off amd64zfs/usr/obj
Fixit# zfs create -o exec=off -o setuid=off amd64zfs/var/empty
Fixit# zfs create -o compression=lzjb -o exec=on -o setuid=off amd64zfs/usr/src
Fixit# zfs create -o compression=off -o exec=on -o setuid=off amd64zfs/usr/ports
Fixit# zfs create -o compression=lzjb -o exec=off -o setuid=off amd64zfs/var/crash
Fixit# zfs create -o compression=off -o exec=off -o setuid=off amd64zfs/usr/ports/distfiles
Fixit# zfs create -o compression=off -o exec=off -o setuid=off amd64zfs/usr/ports/packages

10. Задаем привычные права:

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

11. Создадим под-шел:

Fixit# sh

Note: По умолчанию используется tsch.

12. Установка системы:

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

13. Задание настроек загрузчика:

Fixit# echo 'zfs_enable="YES"' >> /mnt/etc/rc.conf
Fixit# echo 'zfs_load="YES"' >> /mnt/boot/loader.conf
Fixit# echo 'vfs.root.mountfrom="zfs:amd64zfs"' >> /mnt/boot/loader.conf
Fixit# cat << EOF > /mnt/etc/fstab

Пишем следующее:

# Device Mountpoint FStype Options Dump Pass#
/dev/ada0s1b none swap sw 0 0
EOF(т.е. жмем Ctrl+D)

Note: Посмотри и убедись в назначении ada0s1b это точно своп?

14. Копирование кэша пула:

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

15. Размонтировать все системы:

Fixit# zfs set readonly=on amd64zfs/var/empty
Fixit# umount -f /mnt
Fixit# zfs umount -a

16. Изменяем точки монтирования для пула:

Fixit# zfs set mountpoint=legacy amd64zfs
Fixit# zfs set mountpoint=/tmp amd64zfs/tmp
Fixit# zfs set mountpoint=/usr amd64zfs/usr
Fixit# zfs set mountpoint=/var amd64zfs/var

На этом процесс установки завершен.

ttys


3. Задаем активный слайс:

  1. Fixit# gpart set -a active -i 1 ada0

зачем эта процедура? разве gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0 не делает это?

вообще для себя я делал скрипт )) http://www.dtulyakov.org.ua/content/zfs-gpt

и по моему проще zfs без gpt юзать http://www.dtulyakov.org.ua/content/zfs-without-gpt

sys_dev

>>зачем эта процедура? разве gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0 не делает это?



Затем что Вы прочитали статью по диагонали!

Вы предлагаете установить GPT ZFS Boot , а статья про  MBR !!! Ога?


>>вообще для себя я делал скрипт )) http://www.dtulyakov.org.ua/content/zfs-gpt
>>и по моему проще zfs без gpt юзать http://www.dtulyakov.org.ua/content/zfs-without-gpt
Второй раз говорю:

Статья про MBR , а не GPT !!!



Перечитать статью и высказать имхо по существу,а не поверхностные ошметки мыслев

Гость (не проверено)

Can't get enough of good vintage wine. Whether it's red or white, it just elevates any occasion. Anyone else here love wine?





#WineTasting





my page :: ขายไวน์ยกลัง - http://Mignonmuse.com/bbs/board.php?bo_table=free&wr_id=549006

Гость (не проверено)

Can't get ennough of ood wine. Fromm a local vineyard


or imported, wine always makes the moment better.


Anyone ellse here love wine?





Here is my site: ขายไวน์ราคาส่ง -


http://biz.Godwebs.com/bbs/board.php?bo_table=free&wr_id=245778

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

CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.

Последние комментарии

Яндекс.Метрика