В виду того что купил новый девайс Lenovo ThinkPad Edge E120 мне очень захотелось поставить туда FreeBSD. На данный момент модно ставить GPT , а сверху ZFS. Однако у меня появились не малые траблы с этим. По видимому EFI там весьма кривой. Вот собственно тема про трудности и что собственно я предпринял.
В этой заметке описываю как ставить на базе MBR + GPT + 9.0 amd64 RC3
Задача:
Установить FreeBSD 9.0 amd64 RC3 с корнем и основной ФС на базе ZFS.
В наличии:
Процессор : 64-битный
Жесткий диск : 298 ГБ
Оперативка : 2ГБ
Терминология:
пул - под этим словом понимается пул устройств создаваемый командой "zfs create"
amd64zfs - используется в качестве имени ZFS пула
ada0 - это имя устройства жесткого HITACHI SATA-диска, куда я ставлю систему
ada0s1 - это имя устройства слайса в MBR на который размечаем BSD-разметку
Fixit - Командная строка LiveCD. Нужно загрузиться с memstick или DVD образа. Выбрать на старте опцию "LiveCD"
Опираемся на статьи:
3. Задаем активный слайс:
* Экспортируем пул перед установкой буткода
* Импортируем пул для продолжения установки
12. Установка системы:
# Device Mountpoint FStype Options Dump Pass#
/dev/ada0s1b none swap sw 0 0
EOF
Note: Посмотри и убедись в назначении ada0s1b это точно своп?
14. Копирование кэша пула:
P.S.:
Donate - Поддержать блог
В этой заметке описываю как ставить на базе MBR + GPT + 9.0 amd64 RC3
Задача:
Установить FreeBSD 9.0 amd64 RC3 с корнем и основной ФС на базе ZFS.
В наличии:
Процессор : 64-битный
Жесткий диск : 298 ГБ
Оперативка : 2ГБ
Терминология:
пул - под этим словом понимается пул устройств создаваемый командой "zfs create"
amd64zfs - используется в качестве имени ZFS пула
ada0 - это имя устройства жесткого HITACHI SATA-диска, куда я ставлю систему
ada0s1 - это имя устройства слайса в MBR на который размечаем BSD-разметку
Fixit - Командная строка LiveCD. Нужно загрузиться с memstick или DVD образа. Выбрать на старте опцию "LiveCD"
Опираемся на статьи:
- http://wiki.freebsd.org/RootOnZFS/ZFSBootPartition
- http://www.aisecure.net/2011/11/28/root-zfs-freebsd9/
Fixit# gpart create -s MBR ada02. Размечаем слайс в BSD и создаем партиции:
Fixit# gpart add -t freebsd ada0
Fixit# gpart create -s BSD ada0s1Note: swap должен быть после zfs-партиции
Fixit# gpart add -s 294G -t freebsd-zfs ada0s1
Fixit# gpart add -t freebsd-swap ada0s1
3. Задаем активный слайс:
Fixit# gpart set -a active -i 1 ada04. Увеличиваем /tmp до 512МБ:
Fixit# umount /dev/md15. Создаем zfs пул:
Fixit# mdmfs -s 512M md1 /tmp
Fixit# zpool create amd64zfs /dev/ada0s1a6. Пишем загрузчик:
Fixit# zpool set bootfs=amd64zfs amd64zfs
Fixit# zfs set checksum=fletcher4 amd64zfs
Fixit# gpart bootcode -b /boot/mbr ada07. Временно монтируем пул:
Fixit# zfs set mountpoint=/mnt amd64zfs8. Устанавливаем ZFS-загрузчик
* Экспортируем пул перед установкой буткода
Fixit: zpool export amd64zfs* Сетапим будтод стадии №1
Fixit# dd if=/boot/zfsboot of=/dev/ada0s1 count=1Note: Если появится сообщение "operation not permitted", то попробуй:
Fixit# sysctl kern.geom.debugflags=0x10* Сетапим буткод Стадия №2
Fixit# dd if=/boot/zfsboot of=/dev/ada0s1a skip=1 seek=1024Note: Важно понимать что этот буткод устанавливается в подходящую дыру на диске в ФС согласно формату ZFS это как раз после ZFS мета-данных, т.е. seek=1024
* Импортируем пул для продолжения установки
Fixit: zpool import -o cachefile=/tmp/zpool.cache amd64zfs9. Создаем файловые схемы:
Fixit# zfs create amd64zfs/data10. Задаем привычные права:
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
Fixit# chmod 1777 /mnt/tmp11. Создадим под-шел:
Fixit# chmod 1777 /mnt/var/tmp
Fixit# cd /mnt ; ln -s usr/home home
Fixit# shNote: По умолчанию используется tsch.
12. Установка системы:
Fixit# cd /usr/freebsd-dist13. Задание настроек загрузчика:
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
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
Note: Посмотри и убедись в назначении ada0s1b это точно своп?
14. Копирование кэша пула:
Fixit# cp /tmp/zpool.cache /mnt/boot/zfs/zpool.cache15. Размонтировать все системы:
Fixit# zfs set readonly=on amd64zfs/var/empty16. Изменяем точки монтирования для пула?
Fixit# umount -f /mnt
Fixit# zfs umount -a
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
P.S.:
Donate - Поддержать блог
Комментариев нет:
Отправить комментарий