Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 1 May 2012 21:04:17 +0000
From:      "Bjoern A. Zeeb" <bzeeb-lists@lists.zabbadoz.net>
To:        Marius Strobl <marius@FreeBSD.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r234898 - in head/sys/boot: ofw/libofw sparc64 sparc64/boot1 sparc64/loader sparc64/zfsboot sparc64/zfsloader zfs
Message-ID:  <25AED007-FC77-46EB-95AF-9715D33A486E@lists.zabbadoz.net>
In-Reply-To: <201205011716.q41HG1fL036603@svn.freebsd.org>
References:  <201205011716.q41HG1fL036603@svn.freebsd.org>

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

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
>=20
> 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.
>=20
>  Steps for ZFS booting:
>=20
>  1. create VTOC8 label
>  # gpart create -s vtoc8 da0
>=20
>  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
>  =3D>        0  143331930  da0  VTOC8  (68G)
>            0  125821080    1  freebsd-zfs  (60G)
>    125821080   17510850    2  freebsd-swap  (8.4G)
>=20
>  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 ...
>=20
>  4. set bootfs
>  # zpool set bootfs=3Dbunker bunker
>=20
>  5. install zfsboot
>  # zpool export bunker
>  # gpart bootcode -p /boot/zfsboot da0
>=20
>  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=3D0x10
>  # dd if=3D/boot/zfsloader of=3D/dev/da0a bs=3D512 oseek=3D1024 =
conv=3Dnotrunc
>  # zpool import bunker
>=20
>  7. install system on ZFS filesystem
>  Don't forget to set 'zfs_load=3D"YES"' and =
vfs.root.mountfrom=3D"zfs:bunker" in
>  loader.conf as well as 'zfs_enable=3D"YES"'in rc.conf.
>=20
>  8. copy zpool.cache to the ZFS filesystem
>  cp -p /boot/zfs/zpool.cache /bunker/boot/zfs/zpool.cache
>=20
>  9. set mountpoint
>  # zfs set mountpoint=3D/ bunker
>=20
>  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.

Great news for spacr64 users however, I think.


--=20
Bjoern A. Zeeb                                 You have to have visions!
   It does not matter how good you are. It matters what good you do!




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?25AED007-FC77-46EB-95AF-9715D33A486E>