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>
index | next in thread | previous in thread | raw e-mail
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!home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?25AED007-FC77-46EB-95AF-9715D33A486E>
