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