svn commit: r234898 - in head/sys/boot: ofw/libofw sparc64 sparc64/boot1 sparc64/loader sparc64/zfsboot sparc64/zfsloader zfs

Bjoern A. Zeeb bzeeb-lists at lists.zabbadoz.net
Tue May 1 21:04:22 UTC 2012


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!



More information about the svn-src-head mailing list