OpenZFS on Linux and FreeBSD
Go to file
Zachary Bedell 7a0232735d Make libefi-created GPT compatible with gptfdisk
GPT's created by libefi set the HeaderSize attribute in the GPT
header to 512 -- size of the GPT header INCLUDING the 420 padding
bytes at the end.  Most other tools set the size to 92 -- size of
the actual header itself excluding the padding.  Most tools check
the recorded HeaderSize when verifying CRC, but gptfdisk hardcodes
92 and thus reports CRC verification problems for full-disk vdevs
created IE with `zpool create pool sdc`.

This commit changes libefi's behavior for GPT creation and also
fixes several edge cases where libefi's behavior was similar
(though in an incompatible manner) to gptfdisk.  Libefi assumed
HeaderSize was always 512 even if the GPT recorded a different
value.  Sanity checks of the GPT headersize read from disk were
added before applying checksum calculation -- this will prevent
segfault in cases of bogus on-disk values.

Zpools created with the resuling libefi are verified as correct
both by parted and gptfdisk.  Also pool have been tested to
import correctly on ZFS on Linux as well as Solaris Express 11
livecd.

Signed-off-by: Zachary Bedell <zac@thebedells.org>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #344
2011-09-26 09:44:43 -07:00
cmd Fixed uninitialized variable 2011-08-19 16:26:06 -07:00
config Convert 'if' statements to AS_IF in kernel.m4 2011-09-06 13:20:48 -07:00
dracut Fix boot failure in Dracut scripts. 2011-09-26 09:29:51 -07:00
etc Use automatic variable in Makefile 2011-09-26 09:22:30 -07:00
include Make libefi-created GPT compatible with gptfdisk 2011-09-26 09:44:43 -07:00
lib Make libefi-created GPT compatible with gptfdisk 2011-09-26 09:44:43 -07:00
man Autogen refresh for udev changes 2011-08-08 16:30:27 -07:00
module Suppress kmem_alloc() warning in zfs_prop_set_special() 2011-09-15 20:26:51 -07:00
patches Add build system 2010-08-31 13:41:27 -07:00
scripts Autogen refresh for udev changes 2011-08-08 16:30:27 -07:00
udev Move 90-zfs udev rule from dracut to udev/rules.d 2011-08-19 16:26:13 -07:00
.gitignore Ignore unsigned module build products 2010-03-09 14:14:09 -08:00
AUTHORS Add "ashift" property to zpool create 2011-06-17 16:35:49 -07:00
COPYING Relocate COPYING+COPYRIGHT, remove README cruft 2008-12-01 15:34:53 -08:00
COPYRIGHT Update COPYRIGHT to reference zpios CDDL exceptions. 2010-05-18 14:25:28 -07:00
ChangeLog Add build system 2010-08-31 13:41:27 -07:00
DISCLAIMER Update COPYRIGHT and DISCLAIMER. 2010-05-18 10:32:23 -07:00
META Prep zfs-0.6.0-rc5 tag 2011-07-01 15:24:34 -07:00
Makefile.am Move udev rules from /etc/udev to /lib/udev 2011-08-08 16:21:10 -07:00
Makefile.in Autogen refresh for udev changes 2011-08-08 16:30:27 -07:00
OPENSOLARIS.LICENSE Add CDDL license file 2008-12-01 14:49:34 -08:00
README.markdown Fix markdown rendering 2010-09-15 09:09:37 -07:00
ZFS.RELEASE Update to onnv_147 2010-08-26 14:24:34 -07:00
autogen.sh Make autogen.sh executable 2011-07-26 10:15:35 -07:00
configure Convert 'if' statements to AS_IF in kernel.m4 2011-09-06 13:20:48 -07:00
configure.ac Fix autoconf variable substitution in init scripts. 2011-08-19 16:26:14 -07:00
zfs-modules.spec.in Fix package URLs to use the github repository 2011-09-06 13:37:13 -07:00
zfs-script-config.sh.in Unconditionally load core kernel modules 2010-11-11 11:38:25 -08:00
zfs.spec.in Install zfs-devel headers in /usr/include 2011-09-12 11:45:23 -07:00
zfs_config.h.in Add backing_device_info per-filesystem 2011-08-04 13:37:38 -07:00

README.markdown

Native ZFS for Linux! ZFS is an advanced file system and volume manager which was originally developed for Solaris. It has been successfully ported to FreeBSD and now there is a functional Linux ZFS kernel port too. The port currently includes a fully functional and stable SPA, DMU, and ZVOL with a ZFS Posix Layer (ZPL) on the way!

$ ./configure
$ make pkg

Full documentation for building, configuring, and using ZFS can be found at: http://zfsonlinux.org