Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 10 Mar 2009 18:11:43 +0100
From:      Borja Marcos <BORJAMAR@SARENET.ES>
To:        freebsd-stable@freebsd.org
Subject:   ZFS root file system fun, flash USB, swap
Message-ID:  <0295B0E5-EAE8-4317-A2F8-F93F6F9CCF1E@SARENET.ES>

next in thread | raw e-mail | index | archive | help

Hello,

I have a couple of questions, I'm using ZFS on FreeBSD 7.1/amd64.

To avoid issues with sharing the disks with ZFS and UFS, I am using a  
USB pendrive on which I copy the /boot directory.

My first problem is: the presence of the /boot/zfs/zpool.cache file is  
critical. Without it the kernel won't recognise the pool, so it stalls  
on boot.

Is it possible to avoid it? Please note that I'm not using any disk  
partitioning scheme, I'm creating the pools using the complete disk. / 
dev/da0, /dev/da1.

Somewhere I've read about GEOM provider and a ZFS improvement. Should  
I partition the disks in a given way so that ZFS would recognise the  
device? My goal is to have a box of configuration independent boot  
flash pendrives, with a pretty much generic kernel for different Dell  
models. But having the pendrives tied to particular machines would be  
a pain in the ass.

As all the Dell machines are not the same, I need generic kernels with  
support for a pool created over a "mfi" raid5, or using individual  
disks, etc.

Second question. Ivan Voras mentions in his wiki that swap on FreeBSD  
7.1 over ZFS doesn't work. The post is from 2007. Is it still _not_  
working? It seems that documentation over this issue is very sparse.

Regarding the method to create the root filesystem, etc, what I'm  
doing is:

zpool create pool/root
zpool create pool/root/usr
zpool create pool/root/var

zpool create pool/home
zpool create pool/whatever

 From a minimal FreeBSD installed on the flash,

tar -c --exclude "./pool/" -f - | ( cd /pool/root && tar xpf -)

#with that I have the system files in their proper place

I edit the fstab in pool/root/etc so that /, /usr and /var point to  
pool/root, pool/root/usr and pool/root/var

zpool set mountpoint=legacy pool/root

For the rest of the datasets I set the proper mountpoints, and boot  
from the flash with a loader.conf instructing the kernel to get the  
root file system from "zfs:pool/root".

It's quite simple, actually.







Borja.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?0295B0E5-EAE8-4317-A2F8-F93F6F9CCF1E>