svn commit: r234898 - in head/sys/boot: ofw/libofw sparc64
sparc64/boot1 sparc64/loader sparc64/zfsboot sparc64/zfsloader zfs
Marius Strobl
marius at alchemy.franken.de
Tue May 1 21:23:22 UTC 2012
On Tue, May 01, 2012 at 09:04:17PM +0000, Bjoern A. Zeeb wrote:
>
> On 1. May 2012, at 17:16 , Marius Strobl wrote:
>
> > Author: marius
> > Date: Tue May 1 17:16:01 2012
> > New Revision: 234898
> > URL: http://svn.freebsd.org/changeset/base/234898
> >
> > Log:
> > Add initial support for booting from ZFS on sparc64. At least on Sun Fire
> > V100, the firmware is known to be broken and not allowing to simultaneously
> > open disk devices, causing attempts to boot from a mirror or RAIDZ to cause
> > a crash. This will be worked around later. The firmwares of newer sun4u models
> > don't seem to exhibit this problem though.
> >
> > Steps for ZFS booting:
> >
> > 1. create VTOC8 label
> > # gpart create -s vtoc8 da0
> >
> > 2. add partitions, f.e.:
> > # gpart add -t freebsd-zfs -s 60g da0
> > # gpart add -t freebsd-swap da0
> > resulting in something like:
> > # gpart show
> > => 0 143331930 da0 VTOC8 (68G)
> > 0 125821080 1 freebsd-zfs (60G)
> > 125821080 17510850 2 freebsd-swap (8.4G)
> >
> > 3. create zpool
> > # zpool create bunker da0a
> > or for mirror/RAIDZ (after preparing additional disks as in steps 1. + 2.):
> > # zpool create bunker mirror da0a da1a
> > # zpool create bunker raidz da0a da1a da2a ...
> >
> > 4. set bootfs
> > # zpool set bootfs=bunker bunker
> >
> > 5. install zfsboot
> > # zpool export bunker
> > # gpart bootcode -p /boot/zfsboot da0
> >
> > 6. write zfsloader to the ZFS Boot Block (so far, there's no dedicated tool
> > for this, so dd(1) has to be used for this purpose)
> > When using mirror/RAIDZ, step 4. and the dd(1) invocation should be repeated
> > for the additional disks in order to be able to boot from another disk in
> > case of failure.
> > # sysctl kern.geom.debugflags=0x10
> > # dd if=/boot/zfsloader of=/dev/da0a bs=512 oseek=1024 conv=notrunc
> > # zpool import bunker
> >
> > 7. install system on ZFS filesystem
> > Don't forget to set 'zfs_load="YES"' and vfs.root.mountfrom="zfs:bunker" in
> > loader.conf as well as 'zfs_enable="YES"'in rc.conf.
> >
> > 8. copy zpool.cache to the ZFS filesystem
> > cp -p /boot/zfs/zpool.cache /bunker/boot/zfs/zpool.cache
> >
> > 9. set mountpoint
> > # zfs set mountpoint=/ bunker
> >
> > 10. Now, given that aliases for all disks in the zpool exists (check with
> > the `devalias` command on the boot monitor prompt) and disk0 corresponds
> > to da0 (likewise for additional disks), the system can be booted from the
> > ZFS with:
> > {1} ok boot disk0
>
>
> These steps belong into documentation (man page, handbook, ...) bit not really
> into the commit message.
>
We've seen way larger commit messages across totally unrelated
parts in the past and the commit message seemed like a good place
for ensuring the instructions not getting lost for now ...
In any case, I'm desperately waiting for property editing on svn:log
to be enabled :)
Marius
More information about the svn-src-all
mailing list