Установил gentoo на zfs раздел, делюсь своей историей успеха - может кому-то будет интересно.
По следам этой темы и статьи в вики.
1. Создаём разделы. Их нужно как минимум два - загрузочный, и основной - с zfs.
При создании раздела с zfs нужно указать тип раздела (Hex Code) - BF00.
2. Создаём пул
zpool create -f -o ashift=12 -o cachefile= -O compression=on -m none -R /mnt/gentoo rpool /dev_name ashift - задаёт размер блока файловой системы в виде степеней двойки, в данном случае 4 килобайта
compression=on - включает сжатие
rpool - название пула
/dev_name - название устройства
Тут я сразу отключил дедупликацию, обновление временных меток и xattr.
zfs set dedup=off rpool
zfs set atime=off rpool
zfs set xattr=off rpoolИ переключил алгоритм сжатия
zfs set compress=lzjb rpool3. Создаём файловые системы
zfs create -o mountpoint=none rpool/ROOT
zfs create -o mountpoint=/ rpool/ROOT/gentoo
zfs create -o mountpoint=/home rpool/HOME
zfs create -o mountpoint=/root rpool/HOME/root
zfs create -o mountpoint=none rpool/GENTOO
zfs create -o mountpoint=/usr/src rpool/GENTOO/src
zfs create -o mountpoint=/var rpool/GENTOO/var
zfs create -o mountpoint=/usr/portage -o compression=off rpool/GENTOO/portage
zfs create -o mountpoint=/usr/portage/distfiles -o compression=off rpool/GENTOO/distfilesКопируем файл zpool.cache в новое окружение
mkdir -p /mnt/gentoo/etc/zfs
cp /etc/zfs/zpool.cache /mnt/gentoo/etc/zfsСоздаём пустой файл mtab
touch /mnt/gentoo/etc/mtab4. Делаем chroot и дальше до сборки ядра ставим по рукакниге.
5. Сборка ядра.
Можно конечно наложить патч zfs вручную, но я думаю легче взять ебилд с автоматическим наложением нужного патча.
Добавляем оверлей init6
layman -a init6
layman -s init6Отключаем запрет использования флага kernel-builtin для zfs и собираем geek-sources
echo 'sys-fs/zfs -kernel-builtin' >> /etc/portage/profile/package.use.mask
echo 'sys-fs/zfs kernel-builtin' >> /etc/portage/package.use
echo 'sys-kernel/geek-sources zfs' >> /etc/portage/package.use
USE="zfs" emerge sys-kernel/geek-sourcesТеперь собираем само ядро. Включаем SPL и ZFS (не модулями), и поддержку initrd.
Собираем ядро, после чего ставим genkernel и собираем им initramfs
emerge -av genkernel
genkernel --zfs initramfs6. Ставим загрузчик, указываем ему ядро и inirtd, а в качестве опций - это:
real_root=ZFS=rpool/ROOT/gentoo dozfs=forceДобавляем zfs на уровень инициализации boot
rc-update add zfs boot7. Выходим из chroot'a, отмонтируем файловые системы, экспортируем пул и перезагружаемся
exit
cd /mnt/gentoo
umount proc dev sys bootcd /
zpool export -f rpoolreboot


