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
> 
> 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.

Great news for spacr64 users however, I think.


-- 
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>