On Mon, Dec 19, 2011 at 10:18:05AM +0000, Darren J Moffat wrote:
> On 12/18/11 11:52, Pawel Jakub Dawidek wrote:
> > On Thu, Dec 15, 2011 at 04:39:07PM -0700, Cindy Swearingen wrote:
> >> Hi Anon,
> >>
> >> The disk that you attach to the root pool will need an SMI label
> >> and a slice 0.
> >>
> >> The syntax to attach a disk to create a mirrored root pool
> >> is like this, for example:
> >>
> >> # zpool attach rpool c1t0d0s0 c1t1d0s0
> >
> > BTW. Can you, Cindy, or someone else reveal why one cannot boot from
> > RAIDZ on Solaris? Is this because Solaris is using GRUB and RAIDZ code
> > would have to be licensed under GPL as the rest of the boot code?
> >
> > I'm asking, because I see no technical problems with this functionality.
> > Booting off of RAIDZ (even RAIDZ3) and also from multi-top-level-vdev
> > pools works just fine on FreeBSD for a long time now. Not being forced
> > to have dedicated pool just for the root if you happen to have more than
> > two disks in you box is very convenient.
> For those of us not familiar with how FreeBSD is installed and boots can 
> you explain how boot works (ie do you use GRUB at all and if so which 
> version and where the early boot ZFS code is).

We don't use GRUB, no. We use three stages for booting. Stage 0 is
bascially 512 byte of very simple MBR boot loader installed at the
begining of the disk that is used to launch stage 1 boot loader. Stage 1
is where we interpret all ZFS (or UFS) structure and read real files.
When you use GPT, there is dedicated partition (of type freebsd-boot)
where you install gptzfsboot binary (stage 0 looks for GPT partition of
type freebsd-boot, loads it and starts the code in there). This
partition doesn't contain file system of course, boot0 is too simple to
read any file system. The gptzfsboot is where we handle all ZFS-related
operations. gptzfsboot is mostly used to find root dataset and load
zfsloader from there. The zfsloader is the last stage in booting. It
shares the same ZFS-related code as gptzfsboot (but compiled into
separate binary), it loads modules and the kernel and starts it.
The zfsloader is stored in /boot/ directory on the root dataset.

Pawel Jakub Dawidek                       http://www.wheelsystems.com
FreeBSD committer                         http://www.FreeBSD.org
Am I Evil? Yes, I Am!                     http://yomoli.com

Attachment: pgpRIZh6GXH13.pgp
Description: PGP signature

zfs-discuss mailing list

Reply via email to