Вообще для этого можно практически дословно вспользоваться инструкцией http://wiki.freebsd.org/RootOnZFS/UFSBoot , но наличие дополнительного ufs раздела мне не нравится: это fsck после unclean shutdown, отсутствие дешевых снапшотов (к хорошему привыкаешь быстро). Поэтому была взята за основу эта статья, http://wiki.freebsd.org/RootOnZFS/GPTZFSBoot и вместе творчески доработаны до получения конфигурации с двумя zfs pool.
# gpart show ada0
=> 34 976773101 ada0 GPT (466G)
34 30 - free - (15K)
64 128 1 freebsd-boot (64K)
192 1856 - free - (928K)
2048 16777216 2 freebsd-swap (8.0G)
16779264 2097152 3 freebsd-zfs (1.0G)
18876416 957896719 4 freebsd-zfs (457G)
Тут опять напоминаю владельцам дисков WesternDigital о желательности выравнивания начала разделов по 4K границе (gpart сам этого не делает).swap в принципе может размещаться на zpool, но при этом не будет возможности получить crash dump ядра.
Понятно что на ada0 надо накатить pmbr и gptzfsboot
На 3-й раздел я повесил gpt label zboot для удобства. Использовать метку на 4-м разделе не получится: он должен быть размечен через geli с -b , а при этом ядро как только увидит geli label на ada0p4 , так сразу и запросит для него пароль, не зависимо от наличия gpt label
# geli list Geom name: ada0p4.eli EncryptionAlgorithm: AES-CBC KeyLength: 128 Crypto: software UsedKey: 0 Flags: BOOT Providers: 1. Name: ada0p4.eli Mediasize: 490443119616 (457G) Sectorsize: 512 Mode: r1w1e1 Consumers: 1. Name: ada0p4 Mediasize: 490443120128 (457G) Sectorsize: 512 Mode: r1w1e1Кстати geli label содержит определенные метаданные, без которых получить данные с раздела не возможно. Поэтому не забывайте о необходимости сохранить их с помощью чего-нибудь типа
# geli backup ada0p4 /boot/geli.metaНу а дальше можно создавать два пула:
# zpool status
pool: zboot
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
zboot ONLINE 0 0 0
gpt/zboot ONLINE 0 0 0
errors: No known data errors
pool: zdata
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
zdata ONLINE 0 0 0
ada0p4.eli ONLINE 0 0 0
errors: No known data errors
# zpool get bootfs zboot
NAME PROPERTY VALUE SOURCE
zboot bootfs zboot local
# zpool get bootfs zdata
NAME PROPERTY VALUE SOURCE
zdata bootfs - default
# zfs list -o name,mountpoint zboot
NAME MOUNTPOINT
zboot /zboot
# zfs list -o name,mountpoint,exec,compression -r zdata
NAME MOUNTPOINT EXEC COMPRESS
zdata legacy on off
zdata/usr /usr on off
zdata/usr/home /usr/home on off
zdata/usr/local /usr/local on off
zdata/usr/local/arch /usr/local/arch on lzjb
zdata/usr/local/jails /usr/local/jails on off
zdata/usr/local/tinderbox /usr/local/tinderbox on off
zdata/usr/ports /usr/ports on lzjb
zdata/usr/ports/distfiles /usr/ports/distfiles off off
zdata/usr/ports/packages /usr/ports/packages off off
zdata/usr/src /usr/src off lzjb
zdata/var /var on off
zdata/var/crash /var/crash off lzjb
zdata/var/db /var/db off off
zdata/var/db/pkg /var/db/pkg on lzjb
zdata/var/empty /var/empty off off
zdata/var/log /var/log off lzjb
zdata/var/mail /var/mail off gzip
zdata/var/run /var/run off off
zdata/var/tmp /var/tmp on lzjb
# ls -l /boot
lrwxr-xr-x 1 root wheel 11 12 кві 18:30 /boot -> /zboot/boot
# fgrep zfs /boot/loader.conf
zfs_load="YES"
vfs.root.mountfrom="zfs:zdata"
vfs.zfs.debug=1
#
# cat /etc/fstab
# Device Mountpoint FStype Options Dump Pass#
/dev/gpt/swap none swap sw 0 0 0
tmpfs /tmp tmpfs rw,size=3221225472 0 0
proc /proc procfs rw 0 0
fdescfs /dev/fd fdescfs rw 0 0
linproc /usr/compat/linux/proc linprocfs rw,late 0 0
/dev/cd0 /cdrom cd9660 ro,noauto,-CKOI8-U 0 0
Вот так оно и живет на моем ноутбуке. Уже больше месяца как.
Немає коментарів:
Дописати коментар