Commit Graph

486 Commits

Author SHA1 Message Date
ae
7cdacf726f Remove superfluous word from "gpart bootcode" usage message.
Approved by:	kib (mentor)
2010-09-26 21:48:32 +00:00
pjd
e14477fa4d - Add support for loading passphrase from a file (-J and -j options).
This is especially useful for things like installers, where regular
  geli prompt can't be used.
- Add support for specifing multiple -K or -k options, so there is no
  need to cat all keyfiles and read them from standard input.

Requested by:	Kris Moore <kris@pcbsd.org>, thompsa
MFC after:	2 weeks
2010-09-25 17:38:57 +00:00
ae
0bc1967ac3 Implement "force" (-F) option for gpart destroy verb.
This option doesn't passed to kernel and handled in user-space.
With -F option gpart creates new "delete" request for each
partition in table. Each request has flags="X" that disables
auto-commit feature. Last request is the original "destroy" request.
It has own flags and can have disabled or enabled auto-commit feature.
If error is occurred when deleting partitions, then new "undo" request
is created and all changes will be rolled back.

Approved by:	kib (mentor)
2010-09-24 08:40:43 +00:00
pjd
e2ef5877c7 - Simplify code by using g_*() API.
- Don't use u_char and u_int in userland.
- Change 'unsigned' to 'unsigned int'.
- Update copyright years.

MFC after:	1 week
2010-09-23 12:04:12 +00:00
pjd
fd5757cec0 Update copyright years.
MFC after:	1 week
2010-09-23 12:02:42 +00:00
pjd
ebb6f1249d Document AES-XTS.
MFC after:	1 week
2010-09-23 12:00:40 +00:00
pjd
248dc70769 - When trashing metadata, repeat overwrite kern.geom.eli.overwrites times.
- Flush write cache after each write.

MFC after:	1 week
2010-09-23 11:18:02 +00:00
pjd
263a3faf1d - Use g_*() API when doing backups.
- fsync() created filed.

MFC after:	1 week
2010-09-23 11:04:50 +00:00
pjd
c7c339d606 Because we first write metadata into new place and then trash old place we
don't want situation where old size is equal to new size, as we will trash
newly written metadata.

MFC after:	1 week
2010-09-23 10:58:13 +00:00
pjd
08e51b6267 - Make use of g_*() API.
- Flush cache after writing metadata.

MFC after:	1 week
2010-09-23 10:55:45 +00:00
pjd
1b2b33546a Simplify code a bit by using g_*() API from libgeom.
MFC after:	1 week
2010-09-23 10:50:17 +00:00
brian
ee15e08fc2 Add a geli resize subcommand to resize encrypted filesystems prior
to growing the filesystem.

Refuse to attach providers where the metadata provider size is
wrong.  This makes post-boot attaches behave consistently with
pre-boot attaches.  Also refuse to restore metadata to a provider
of the wrong size without the new -f switch.  The new -f switch
forces the metadata restoration despite the provider size, and
updates the provider size in the restored metadata to the correct
value.

Helped by:	pjd
Reviewed by:	pjd
2010-09-20 22:04:59 +00:00
pjd
031a4b95b9 Fix indent. 2010-09-19 10:51:55 +00:00
pjd
51d5293d0c GPART_PARAM_INDEX is now G_TYPE_NUMBER. 2010-09-15 21:37:26 +00:00
pjd
fe072f18cf Remove dead code. 2010-09-14 20:54:22 +00:00
pjd
4922377ac7 Remove now unused G_TYPE_ASCNUM. 2010-09-14 16:22:22 +00:00
pjd
e87685cef9 - Change all places where G_TYPE_ASCNUM is used to G_TYPE_NUMBER.
It turns out the new type wasn't really needed.
- Reorganize code a little bit.
2010-09-14 16:21:13 +00:00
pjd
2042c5c815 Update two last places where "arg0" should be used instead of "geom". 2010-09-14 16:19:09 +00:00
pjd
6ca1075f10 All gpart(8) subcommands apart from the 'bootcode' subcommand handle
given geom/provider names with and without /dev/ prefix. Teach the
'bootcode' subcommand to handle /dev/<foo> names as well.
2010-09-14 11:36:26 +00:00
pjd
66201bc109 Remove dot which shouldn't be here, as err(3) will attach error message
at the end of the string.
2010-09-14 11:19:21 +00:00
pjd
1896db90b9 Introduce special G_VAL_OPTIONAL define, which when given in value field
tells geom(8) to ignore it when it is not given and don't try to obtain
default value.
2010-09-14 11:13:46 +00:00
pjd
ec902e91d5 Add G_TYPE_MULTI flag, which when set for the given option, will
allow the option to be specified multiple times. This will help to
implement things like passing multiple keyfiles to geli(8) instead of
cat(1)ing them all into stdin and reading from there using one '-k -'
option.
2010-09-13 13:59:28 +00:00
pjd
3d8ce965d3 - Remove gc_argname field. It was introduced for gpart(8), but if I
understand everything correctly, we don't really need it.
- Provide default numeric value as strings. This allows to simplify
  a lot of code.
- Bump version number.
2010-09-13 13:48:18 +00:00
pjd
6f96b7c228 - Allow to specify value as const pointers.
- Make optional string values always an empty string.
2010-09-13 08:56:07 +00:00
maxim
45affde03f o List MOUNTVER and SCHED classes. X-ref gsched(8). Bump Dd.
PR:		docs/149925
Submitted by:	arundel
2010-09-01 08:32:40 +00:00
uqs
9112be80d8 gsched(8): fix example usage, mdoc nits
- ad0 was referred to as da0
- wrong parameter -s instead of -a in example
- use double quotes consistently

PR:            docs/150082
Submitted by:  N.J. Mann <njm@njm.me.uk>
MFC after:     2 weeks
2010-08-29 11:32:41 +00:00
des
3a511a56fe expand_number(3) takes a uint64_t * now; intmax_t was never correct
except by accident.

MFC after:	3 weeks
2010-08-19 11:20:24 +00:00
joel
dd1fff9bcb Fix typos, spelling, formatting and mdoc mistakes found by Nobuyuki while
translating these manual pages.  Minor corrections by me.

Submitted by:	Nobuyuki Koganemaru <n-kogane@syd.odn.ne.jp>
2010-08-16 15:18:30 +00:00
mjacob
af324b1be0 Avoid a memory leak.
Submitted by:	Dmitry Luhtionov via Alexander Motin
MFC after:	1 week
2010-08-13 15:17:19 +00:00
joel
f4e8725880 Fix typos and spelling mistakes. 2010-08-06 14:33:42 +00:00
uqs
8f44a70be6 gsched(8) was first released with FreeBSD 8.1
MFC after:	3 days
2010-07-30 12:56:34 +00:00
bcr
3571b845b3 Small typo fix: s/ommited/omitted
PR:             docs/148977
Submitted by:   Warren Block (wblock at wonkity dot com)
MFC after:      4 days
2010-07-27 17:23:40 +00:00
ae
fe77546977 Document that SI unit suffixes are supported for -b and -s options
of add verb. Mention about maximum size limit for "freebsd-boot"
partition. It should be smaller than 545 KB (hardcoded in pmbr).
Show usage of SI unit suffixes in example.

Approved by:	mav (mentor)
MFC after:	1 week
2010-07-23 11:00:43 +00:00
mav
129dba6435 Do not bzero() NULL pointer on malloc() error.
Submitted by:	Dmitry Luhtionov
2010-07-14 15:14:00 +00:00
mjacob
7f00128735 Fix the clear function which has been broken for a bit.
MFC after:	1 week
2010-07-04 22:17:56 +00:00
ae
1ae32ded97 Check for overflow before it occurs. Also add check for
negative numbers.

Suggested by:	ache
Approved by:	kib (mentor)
2010-06-21 12:50:54 +00:00
ae
9f1bacec49 Remove G_TYPE_ASCLBA type and replace it with G_TYPE_STRING in gpart.
Move code that converts params from humanized numbers to sectors count
to subr.c and adjust comment.
Add post-processing for "size" and "start offset" params in gpart,
now they are properly converted to sectors count with known sector size
that can be greater that 512 bytes.
Also replace "unsigned long long" type to "off_t" for unify code since
it used for medium size in libgeom(3) and DIOCGMEDIASIZE ioctl.

PR:		bin/146277
Reviewed by:	marcel (previous version)
Approved by:	kib (mentor)
MFC after:	1 month
2010-06-21 08:24:50 +00:00
uqs
a8e27bd6d3 mdoc nitpicking for gsched.8
- remove stray argument [1]
- remove stray whitespace
- use canonical wording for the HISTORY section

PR:		docs/147119 [1]
Submitted by:	Alexander Best <alexbestms@wwu.de> [1]
MFC after:	1 week
2010-06-19 18:52:37 +00:00
ae
7233caf7de bgeom(3) does strdup of param name.
Don't leak memory when deleting param from gctl_req.

Reviewed by:	marcel
Approved by:	mav (mentor)
MFC after:	2 weeks
2010-06-07 07:41:41 +00:00
marius
37567a7281 - Mention that VTOC8 labels are found in Fujitsu SPARC64 machines as well.
- Add information regarding VTOC8 bootrstrap code and how it's handled with
  r208777 in place.
- Document the mapping of partition types to VTOC8 tags.
- Add examples for VTOC8 to the respective section.
- Eliminated hard sentence breaks.

Reviewed by:	marcel (slightly buggy version)
MFC after:	3 days
2010-06-03 13:04:56 +00:00
marius
2972c267be - In gpart_bootfile_read() fix an off-by-one error preventing the bootstrap
file to be of maximum size.
- Add special handling required for SMI/VTOC8 disklabel partcode, i.e. avoid
  overwriting the label when writing the bootstrap code to the partition
  starting at 0 and install it to all partitions when the -i option is omitted
  just like geom_sunlabel(4) and sunlabel(8) do by default.
- Add missing prototypes.
- Add const where applicable.

Reviewed by:	marcel
MFC after:	3 days
2010-06-03 13:01:55 +00:00
nwhitehorn
9090794d6c Teach gpart about bootcode on APM. 2010-05-16 22:21:33 +00:00
marcel
554a376550 Add and describe GEOM_PART_EBR. 2010-04-23 03:37:39 +00:00
marcel
236b68eaae Implement the resize command for resizing partitions. Without new
size, the partition in question is resized to fill all available
space. Quality work by Andrey!

Submitted by:	"Andrey V. Elsukov" <bu7cher@yandex.ru>
2010-04-23 03:14:04 +00:00
pjd
0d94bcf279 Flush disk write cache after storing and clearing metadata. 2010-04-15 16:35:34 +00:00
luigi
05b4eb119e fix copyright format, as requested by Joel Dahl 2010-04-13 09:56:17 +00:00
luigi
473063af6b use correct .PATH, remove unused CFLAGS 2010-04-13 09:52:42 +00:00
luigi
fa43d14d2c Bring in geom_sched, support for scheduling disk I/O requests
in a device independent manner. Also include an example anticipatory
scheduler, gsched_rr, which gives very nice performance improvements
in presence of competing random access patterns.

This is joint work with Fabio Checconi, developed last year
and presented at BSDCan 2009. You can find details in the
README file or at

http://info.iet.unipi.it/~luigi/geom_sched/
2010-04-12 16:37:45 +00:00
mjacob
93d13fc5c9 Change how multipath labels are created and managed. This makes it easier
to support various storage boxes which really aren't active-active.

We only write the label on the *first* provider. For all other providers
we just "add" the disk. This also allows for an "add" verb.

A usage implication is that you should specificy the currently active
storage path as the first provider.

Note that this does not add RDAC-like functionality, but better allows for
autovolumefailover configurations (additional checkins elsewhere will support
this).

Sponsored by:	Panasas
MFC after:	1 month
2010-03-29 18:04:06 +00:00
mjacob
48555863a3 Add 'rotate' and 'getactive' verbs to provide some control and information
about what the currently active path is.

Sponsored by:	Panasas
MFC after:	1 month
2010-03-21 15:02:47 +00:00
joel
0b73196964 Use our standard license text. No more voices in the authors head. :-)
Approved by:	trasz
2010-03-04 19:38:24 +00:00
ru
4d27ff91d0 Fixed dependencies (make checkdpadd). 2010-02-25 20:24:19 +00:00
mjacob
ea889e75a5 Add the long missing "destroy" option.
MFC after:	2 weeks
2010-02-04 21:51:33 +00:00
delphij
98e7419fd1 Also output stripeoffset for consumer even if stripesize is zero, while
stripeoffset is non-zero.

Pointed out by:	mav
2010-01-18 19:39:55 +00:00
brueffer
a112824734 Small fixes. 2010-01-17 19:33:32 +00:00
delphij
0683dca976 Stripe offset may be usable even without stripe size known,
so give the output when either is non-zero.

Suggested by:	mav
2010-01-17 08:10:37 +00:00
delphij
16c4a5ec20 Expose stripe offset and stripe size through libgeom and geom(8) userland
utilities.

Reviewed by:	pjd, mav (earlier version)
2010-01-17 06:20:30 +00:00
trasz
ba210e8afe Add gmountver, disk mount verification GEOM class.
Note that due to e.g. write throttling ('wdrain'), it can stall all the disk
I/O instead of just the device it's configured for.  Using it for removable
media is therefore not a good idea.

Reviewed by:	pjd (earlier version)
2010-01-16 09:52:49 +00:00
mav
0b756fd13c Increase default block size from 4K to 64K. It was reduces 6 yeard ago,
when trees were big and FAST mode was enabled by default.

So small block size doesn't benefits linear I/O operations in FAST and
significantly slowdowns in ECONOMIC (default) mode. For single stream random
I/Os so small block doesn't give much benefits, as access time is usually
bigger then transfer time there. Same time it requires all heads to seek
together for every single request, reducing performance on parallel load.
2010-01-06 17:12:18 +00:00
mav
4d057b4b28 For completeness, add -s argument, manually specifying array block size. 2010-01-05 13:25:12 +00:00
trasz
c1156f33b3 Add manual page for gcache(8). 2010-01-03 15:20:52 +00:00
ru
7969d41262 The default balance algorithm has changed from "split" to
(the improved version of) "load".
2009-12-09 11:00:00 +00:00
mav
9a2663dbad Change gmirror default balance algorithm from "split" to "load".
"split" is very ineffective for devices with rotating media as HDDs.
To be effective, it needs that transfer time reduction due to block
splitting was bigger then access time increase due to non-sequential
access. For modern HDDs I was able to reproduce it only with read sizes
of 2MB and above, which is almost not applicable in real life.
"load" algorithm same time is more universal and effective now.

Reviewed by:	pjd
2009-12-08 22:43:29 +00:00
lulf
18f719f38d - Initialize variable in order to avoid GCC warning and enable WARNS=6.
PR:		bin/139970
Submitted by:	Ulrich Spörlein <uqs -at- spoerlein.net>
2009-10-26 07:43:41 +00:00
ru
763b9ae1f8 Switch the default WARNS level for sbin/ to 6.
Submitted by:	Ulrich Spörlein
2009-10-19 16:00:24 +00:00
ru
85b9238297 Clean up markup (mainly). 2009-10-19 15:50:59 +00:00
brueffer
74b9532893 Fix the example, -w is the right switch for write failure probability.
PR:		136219
Submitted by:	Kouki Hashimoto <hsmtkk@gmail.com>
Patch by:	gavin
MFC after:	3 days
2009-09-17 13:04:46 +00:00
pjd
3ea12e8235 Actually component with the greatest priority is used by the prefer balance
algorithm.
2009-09-09 19:06:01 +00:00
pjd
e816f77286 Add support for changing providers priority.
Submitted by:	Mel Flynn
2009-09-06 06:52:06 +00:00
pjd
4a0af0108a Update copyright years. 2009-09-06 06:49:59 +00:00
pjd
e091741877 For any given subcommand allow to specify multi-line usage (separated by \n).
Submitted by:	Mel Flynn
2009-09-06 06:48:50 +00:00
ivoras
192a9f15c1 Remove (c) line.
Requested by:	pjd
Approved by:	gnn (mentor)
MFC after:	1 month
2009-08-23 18:15:13 +00:00
marcel
5519023e6b Emit a proper error message instead of dumping core when 1)
GEOM_PART does not exist in the kernel, and 2) the GEOM in
question does not exist.
Additionally abort in case of programming errors that result
in neither the class nor geom not being present in the gctl
request.

Submitted by:	"Andrey V. Elsukov" <bu7cher@yandex.ru>
Approved by:	re (kib)
2009-08-16 21:27:35 +00:00
ivoras
79583448b4 Add support for labels derived from GPT metadata.
Approved by:	gnn (mentor)
Reviewed by:	pjd
PR:		128398
Submitted by:	Marius Nuennerich < marius at nuenneri.ch >
2009-06-13 00:27:03 +00:00
jhb
d80013685e Change the printf format string to match the variable type to quiet
warnings.
2009-06-08 15:54:07 +00:00
marcel
87bc9febc2 Make the size (-s) and start (-b) parameters of the add verb optional.
The missing parameter(s) are automatically filled-in.
2009-06-08 02:13:24 +00:00
marcel
d754678fa9 Allow humanized numbers for LBAs, as well as partition indices for
gpart(8). LBAs in particular are ugly. The ganularity is a sector,
but users expect byte granularity when specifying the size or offset
with a SI unit. Handle LBAs specially to deal with this.
2009-06-07 20:12:14 +00:00
maxim
de9b6ef979 o Fix typo in the example.
PR:		docs/134930
Submitted by:	Alex Keda
MFC after:	1 week
2009-05-25 09:52:58 +00:00
trasz
678fe0aa03 Add links to libgeom(3) where appropriate. 2009-05-19 12:10:48 +00:00
trasz
1fa36791b4 Slightly improve gjournal documentation.
Reviewed by:	pjd
2009-04-29 10:02:50 +00:00
ivoras
6b1dc0f39c Man page accompanying r190423 - introduce UFS ID labels.
Actually-by:	pjd
Approved by:	gnn (mentor)
2009-03-25 20:40:34 +00:00
pjd
b91f13056e - Punctuation fixes.
- New sentence - new line.

Reported by:	Ben Kaduk <minimarmot@gmail.com>

- No more than 80 chars per line.
2009-02-22 15:03:29 +00:00
pjd
77887f8543 Correct the year.
Reported by:	Florian Smeets <flo@kasimir.com>
2009-02-17 20:35:11 +00:00
pjd
566ae59e82 Document kern.geom.journal.* sysctls.
PR:		docs/130548
Submitted by:	Hywel Mallett <hywel@hmallett.co.uk>
MFC after:	1 week
2009-02-17 20:30:17 +00:00
marcel
088f6e21bd Prefer the start and end attributes over the offset and size
attributes. The start and end more accurately describe the
space taken by a partition. The offset and size are used to
describe the effective (usable) storage of that partition.
2009-02-08 20:19:19 +00:00
lulf
2660392853 - Use a separate pointer to the allocated memory for freeing, as strsep may
modify the pointer argument passed to it. This triggered an assert in malloc
  when a geom command being run under the livefs environment.

PR:		bin/130632
Submitted by:	Dimitry Andric <dimitry -at- andric.com>
Pointy hat to:	me
MFC after:	2 days
2009-02-02 19:22:53 +00:00
danger
6baab2313c - grammar and language fixes
- hard sentence breaks
- trim EXIT STATUS section and move it to DIAGNOSTICS as well as use .Er
  macro
- sort SEE ALSO

MFC after:	7 days
2009-01-04 15:41:01 +00:00
ivoras
a11a5141a6 Several significant updates:
* Better wording of sections dealing with physical storage
* A new section on assumptions gvirstor has on its consumer devices
  (components) and its interaction  with file systems
* Improved markup (by hrs@)

Reviewed by:	hrs
Approved by:	gnn (mentor)
2009-01-04 11:31:03 +00:00
lulf
798a67faaf - Back out r186038. Rather than changing the intent of the caller, the problem
should be handled internally in gvinum.

Suggested by:	pjd
2008-12-27 14:24:24 +00:00
lulf
5aef9be9a2 - When writing metadata to a geom provider, open the it as read-write since it
might do subsequent reads from other providers. This stopped geli (and
  probably other classes using g_metadata_store as well) from being put on top
  of gvinum raid5 volumes.

Note:
The reason it fails in the gvinum raid5 case is that gvinum will read back the
old parity stripe before calculating the new parity stripe to be written out
again.  The write will then fail because the underlying disk to be read is
opened write only.

MFC after:	1 week
2008-12-13 14:14:56 +00:00
marcel
5c813d4376 Print error messages as-is, when they don't conform to
<errno> [<parameter> 'value']
These are error messages from (lib)geom itself.
2008-11-30 23:46:31 +00:00
marcel
875a18edd5 Call gctl_free() after we processed the error string.
It's being freed as part of the request.
2008-11-30 23:38:44 +00:00
marcel
3e94b73b94 Parse the error string returned by the kernel. The format is:
<errno> [<parameter> <value>]
So, rather than printing the error:
	gpart: 22 scheme 'gpt'
gpart(8) now prints:
	gpart: scheme 'gpt': invalid argument
2008-11-29 21:20:07 +00:00
delphij
7a676b30d1 Grammar improvements.
Submitted by:	kensmith
2008-11-18 20:38:07 +00:00
marcel
f9226694db Use humanize_number(), rather than a home-grown algorithm for
formatting a number in a human-friendly way.

Note that with this commit a megabyte changed from 1000000 to
1048576 and a 80G disk is now printed as being 75G in size.
This is deliberate. It's consistent with the core of geom(8).
However, the original choice for a megabyte being 1000000 was
on purpose and matches what disk vendors put on the box. The
consistency is considered more important.

Submitted by:	delphij
2008-11-18 04:04:01 +00:00
marcel
171191e7f7 Sort includes
Submitted by:	delphij
2008-11-18 03:43:02 +00:00
marcel
a439cdd8d4 Pad the bootcode we write to the partition to a multiple of the
sector size.

Submitted by:	Alexey Shuvaev <shuvaev@physik.uni-wuerzburg.de>
Prompted by: 	delphij
MFC after:	3 days
2008-11-18 00:03:30 +00:00
marcel
48fb5445ab Add support for multiple attributes. This is required for the
PC98 scheme.
2008-10-20 05:12:50 +00:00
delphij
f39dcb8b69 Add some examples to demostrate gpart(8).
--此行及以下内容将会被忽略--
> Description of fields to fill in above:                     76 columns --|
> PR:            If a GNATS PR is affected by the change.
> Submitted by:  If someone else sent in the change.
> Reviewed by:   If someone else reviewed your modification.
> Approved by:   If you needed approval for this commit.
> Obtained from: If the change is from a third party.
> MFC after:     N [day[s]|week[s]|month[s]].  Request a reminder email.
> Security:      Vulnerability reference (one per line) or description.
> Empty fields above will be automatically removed.

M    gpart.8
2008-10-09 06:23:04 +00:00
pjd
eb18064487 By default backup geli metadata to a file. It is quite critical 512 bytes,
once it is lost, all data is gone.

Option '-B none' can by used to prevent backup. Option '-B path' can be
used to backup metadata to a different file than the default, which is
/var/backups/<prov>.eli.

The 'geli init' command also prints backup file location and gives short
procedure how to restore metadata.

The 'geli setkey' command now warns that even after passphrase change or keys
update there could be version of the master key encrypted with old
keys/passphrase in the backup file.

Add regression tests to verify that new functionality works as expected.

Update other regression tests so they don't create backup files.

Reviewed by:	keramida, rink
Dedicated to:	a friend who lost 400GB of his live by accidentally overwritting geli metadata
MFC after:	2 weeks
2008-08-29 18:10:18 +00:00
pjd
fb30298666 - Give algorithms recommendation.
- Keep options in alphabetical order.
2008-08-29 17:13:07 +00:00
pjd
88abc02c6e geli onetime command can take only one GEOM provider at a time. 2008-08-12 19:42:03 +00:00
ivoras
b5c57a6aa5 Clean up of dead code and possible unassigned variable usage.
Found by:	LLVM/Clang Static Checker
Approved by:	gnn (mentor)
2008-08-09 16:47:30 +00:00
marcel
ad8d265406 Add NO_MAN for the static variant of geom(8). Both the RESCUE and the
RELEASE_CRUNCH builds use NO_MAN anyway, so this change is primarily
to avoid that developers have to set NO_MAN manually when they build
the static variant.
2008-07-03 19:40:59 +00:00
marcel
b12551bbfa Implement the set and unset verbs. While here, have the manpage
catch up with various changes.
2008-06-18 01:46:32 +00:00
marcel
94a61263f9 Implement the -l and -r options for gpart show.
The -l option changes the output to show the partition label, if applicable
and when present. The -r option changes the output to show the raw (i.e.
scheme-specific) partition types.
2008-06-13 00:04:10 +00:00
marcel
f031db47ee Document the new -p and -i options for writing bootstrap code into
a partition. Make it clear that the -b option embeds boot code in
the meta-data.
2008-06-07 00:14:06 +00:00
marcel
e4a5218866 Enhance the bootcode command to also allow bootcode to be written
to a partition. This avoids that users need to use dd(1) to install
boot code (as is needed for VTOC8 and booting GPT on PCs).
2008-06-06 23:58:29 +00:00
marcel
0cbc50b4b0 Add two support functions:
o  gctl_delete_param() -- intended for parameters that are consumed
   by geom(8) itself and which should not be passed to the kernel.
o  gctl_has_param() -- intended to check if optional parameters are
   present.

Both are needed by gpart(8) to process the optional parameter for
writing bootcode to a partition (as part of the bootcode verb).
However, the kernel is itself not involved in this matter and the
parameter needs to be removed from the request destined for the
kernel.
2008-06-06 22:44:03 +00:00
marcel
dd14f4af05 Update the manpage to reflect reality:
o  The BSD, PC98 and VTOC8 schemes are supported.
o  The bootcode command was added to allow installing bootstrap code
   into the scheme's metadata.
2008-06-06 05:14:16 +00:00
marcel
0f5461ba9a Allow building a static geom(8) for release related crunched
binaries. In particular, this allows geom to be added to the
boot_crunch binary on ia64.
2008-06-05 15:24:10 +00:00
marcel
cb0dec71b1 Replace checks for RESCUE in sources with checks for STATIC_GEOM_CLASSES
and define STATIC_GEOM_CLASSES when building the rescue binary. This way
geom can more easily be part of other crunched binaries, as it requires
only a Makefile change.
2008-06-04 20:07:59 +00:00
marcel
ecdc3b6d8c Add the bootcode verb for installing boot code. Boot code
is supported for the MBR, GPT and PC98 schemes, where GPT
installs boot code into the PMBR.
2008-04-13 19:54:54 +00:00
remko
eae5804c54 I keep taking timemachines to get back in time. Update the
year to 2008.

Noticed by:	ceri
2008-04-13 11:05:59 +00:00
remko
1aaa158b9c Add missing device in tunefs entry.
PR:		docs/122702
Submitted by:	Yoshihiro Ota <ota@j.email.ne.jp>
MFC After:	3 days
2008-04-13 07:48:05 +00:00
brueffer
28b47dfe8b - Use an uppercase provider name in the example, to make the name change
after labeling the provider more obvious. (1)
- Correct nomenclature usage

PR:		121487 (1)
Submitted by:	Anatoly Borodin <anatoly.borodin@gmail.com>
MFC after:	3 days
2008-03-13 15:37:02 +00:00
brueffer
f36e3d2dcc Fix typos.
PR:		121486
Submitted by:	Anatoly Borodin <anatoly.borodin@gmail.com>
MFC after:	3 days
2008-03-08 12:13:00 +00:00
delphij
2d536251f1 Make it possible to build glabel into rescue geom(8) utility.
Ok'ed by:	marcel
No objection:	-current@
2008-03-05 23:31:49 +00:00
pjd
59c523d02a Add info about few missing GEOM classes that use geom(8). 2008-03-05 11:51:13 +00:00
lulf
f36063cdb2 - Update geom(8) to explain that GEOM_LIBRARY_PATH can take a comma-separated
list of paths.

Approved by:	pjd (mentor)
MFC after:	2 days
2008-02-05 14:02:55 +00:00
lulf
ce24cd825a - Make geom commands handle multiple library paths in the GEOM_LIBRARY_PATH
environment variable using ':' as a separator.

Approved by:	pjd (mentor)
MFC after:	3 days
2008-02-04 12:17:02 +00:00
brueffer
7b5e1ce2f6 Minor language cleanup.
MFC after:	3 days
2007-11-24 09:32:45 +00:00
jb
19119333df Fix signed/unsigned comparison compiler warning. 2007-11-18 03:17:56 +00:00
ru
438aba4018 Briefly document what the -c option of the "label" command does.
MFC after:	3 days
2007-11-15 06:31:18 +00:00
ru
559f4f76c6 Revise the markup and apply some wordsmithing.
Reviewed by:	pjd
MFC after:	3 days
2007-11-15 06:23:33 +00:00
marcel
e52d34f074 Allow building of a special rescue version of geom that
has a subset of the classes compiled-in.
2007-11-04 00:32:54 +00:00
marcel
69e9c2d1b9 Fix a last-minute, but more importantly, an untested change that
made the previous commit non-functional: the usage string was put
in the wrong field...
2007-10-21 19:38:21 +00:00
marcel
df8581071a Add the show command to print the partition information ala gpt(8).
Update the manpage accordingly. While here, mention the MBR scheme
and add a bugs section. With this commit gpt(8) can be obsoleted.
2007-10-21 00:04:23 +00:00
pjd
27bd800e61 Bring in the GEOM Virtualisation class, which allows to create huge GEOM
providers with limited physical storage and add physical storage as
needed.

Submitted by:	Ivan Voras
Sponsored by:	Google Summer of Code 2006
Approved by:	re (kensmith)
2007-09-23 07:34:23 +00:00
pjd
427fb1f9be For arguments declared as numbers always use expand_number(3).
This allows to use numbers in human-readable form in many geom(8)
utilities. Such a simple change and makes live so much nicer.
Some examples:

	gstripe label -s 16k
	gmirror label -s 4k
	gnop create -o 1g -s 128m -S 2k
	gjournal label -s 2g
	geli label -i 128k -s 4k

Approved by:	re (kensmith)
2007-09-21 10:00:05 +00:00
pjd
5f96c6e1c1 Use 'val' function argument instead of 'optarg' global variable.
This doesn't fix any real bug, because in those tw ocases we always
passed 'optarg' as 'val'.

Approved by:	re (kensmith)
2007-09-21 09:52:43 +00:00
pjd
9afb74d049 Add support for Camellia encryption algorithm.
PR:		kern/113790
Submitted by:	Yoshisato YANAGISAWA <yanagisawa@csg.is.titech.ac.jp>
Approved by:	re (bmah)
2007-09-01 06:33:02 +00:00
ru
83a9e56e14 Fix the online usage for the "dump" command. 2007-05-24 09:21:20 +00:00
marcel
39b684b294 Fix the construction of the gctl_req that got broken by my
previous commit and that introduced optional parameters.
Existing classes (like geli(8)) use empty strings by default
and expect the parameter to be passed to the kernel as such.
Also, the default value of a string argument can be NULL.
Fix both cases by making the optional parameter conditional
upon gc_argname being set and making sure to test for NULL
before dereferencing the pointer.

Reported by: brueffer@
2007-05-17 15:34:51 +00:00
marcel
767af45f82 Bump G_LIB_VERSION to reflect the ABI change.
Pointed out by: pjd@
2007-05-16 23:32:40 +00:00
marcel
40656d0851 Add gpart(8).
In order to support gpart(8), geom(8) needs to support a named
argument. Also, optional string parameters are a requirement.
Both have been added to the infrastructure. The former required
all existing classes to be adjusted.
2007-05-15 20:25:18 +00:00
pjd
241a16483d Correct some typos. 2007-05-06 14:54:41 +00:00
pjd
50b6494029 Fix mdoc warnings. 2007-05-06 00:31:38 +00:00
pjd
40cd52d558 Do some cleanups (like freeing memory and closing file descriptors) before
leaving the functions.
2007-05-01 23:33:12 +00:00
pjd
5ef608fbbe - Protect against specifing journal less than 100MB and against journal
which size is not multiple of sector size.

  Reported by:	Eric Anderson <anderson@centtech.com>

- Improve wording in error message. I'm sorry, I don't remember who
  submitted this one.
2007-04-03 15:29:16 +00:00
pjd
47635a5d8e Exit status should be 1 on error.
PR:		bin/110705
Reported by:	Tom Judge
MFC after:	2 weeks
2007-03-23 21:05:36 +00:00
pjd
b23a2a2ffb Warn when user use sectorsize bigger than the page size, which will lead
to problems when the geli device is used with file system or as a swap.

Hopefully will prevent problems like kern/98742 in the future.

MFC after:	1 week
2007-03-05 12:41:44 +00:00
pjd
9c67960d12 Fix incorrect comment. Geli will protect against data modification, of
course! It won't protect against reply attacks - try harder to explain
them correctly.

MFC after:	1 week
2007-03-05 12:39:49 +00:00
ale
cd574ae8e2 Call the multipath device with its real name. 2007-02-27 08:56:11 +00:00
brueffer
a9f47f5d5d First cleanup pass: new sentence -> new line, typos fixed, some markup
errors fixed.
2007-02-27 07:53:20 +00:00
mjacob
ffe78e7e5c Add a man page. 2007-02-27 07:29:15 +00:00
mjacob
05b92097cb First cut at GEOM based multipath. This is an active/passive{/passive...}
arrangement that has no intrinsic internal knowledge of whether devices
it is given are truly multipath devices. As such, this is a simplistic
approach, but still a useful one.

The basic approach is to (at present- this will change soon) use camcontrol
to find likely identical devices and and label the trailing sector of the
first one. This label contains both a full UUID and a name. The name is
what is presented in /dev/multipath, but the UUID is used as a true
distinguishor at g_taste time, thus making sure we don't have chaos
on a shared SAN where everyone names their data multipath as "Fred".

The first of N identical devices (and N *may* be 1!) becomes the active
path until a BIO request is failed with EIO or ENXIO. When this occurs,
the active disk is ripped away and the next in a list is picked to
(retry and) continue with.

During g_taste events new disks that meet the match criteria for existing
multipath geoms get added to the tail end of the list.

Thus, this active/passive setup actually does work for devices which
go away and come back, as do (now) mpt(4) and isp(4) SAN based disks.

There is still a lot to do to improve this- like about 5 of the 12
recommendations I've received about it,  but it's been functional enough
for a while that it deserves a broader test base.

Reviewed by: pjd
Sponsored by: IronPort Systems
MFC: 2 months
2007-02-27 04:01:58 +00:00
pjd
57251e44a2 Correct typo.
Spotted by:	Tomasz Dudzisz
2007-02-22 19:25:37 +00:00
pjd
cde10fcea6 Forgot to hook up gjournal manual page to the build.
Reminded by:	simon, piso
2007-02-10 17:59:46 +00:00
pjd
1fff60d4b2 Add gjournal(8) manual page. Documentation of kern.geom.journal.* sysctls
is still missing, ehh.

Reviewed by:	trhodes
2007-01-29 22:12:22 +00:00
pjd
dc2987aa01 When the following conditions are meet:
- First configured key is based only on keyfile (no passphrase).
- Device is attached.
- User changes first key (setkey) from keyfile to passphrase and doesn't
  specify number of iterations (with -i option).
...geli(8) won't store calculated number of iterations in metadata.
This result in device beeing unaccesable after detach.

One can recover from this situation by guessing number of iterations
generated, storing it in metadata and trying to attach device.
Recovery procedure isn't nice, but one's data is not lost.

Reported by:	Thomas Nickl <T.Nickl@gmx.net>
MFC after:	1 week
2007-01-25 11:44:03 +00:00
pjd
3cd8e7b357 Implement gctl_change_param() function, which changes value of existing
parameter.

MFC after:	1 week
2007-01-25 11:35:27 +00:00
ceri
26cde0529c Remove duplicate "clear" subcommand.
PR:		docs/106947
Submitted by:	TAOKA Fumiyoshi
2006-12-21 18:30:23 +00:00
ceri
8ea2c97d73 Bump .Dd for -f|-F. 2006-11-02 10:44:02 +00:00
pjd
b34fb80d83 Now, that we have gjournal in the tree add possibility to configure
gmirror and graid3 in a way that it is not resynchronized after a
power failure or system crash.
It is safe when gjournal is running on top of gmirror/graid3.
2006-11-01 22:51:49 +00:00
pjd
3d8e2e0a6f G_TYPE_NONE was replaced with G_TYPE_BOOL. 2006-11-01 22:28:11 +00:00
pjd
2774462fb7 Fix powerpc build.
Reported by:	Peter Grehan <grehan@freebsd.org>
2006-11-01 09:22:33 +00:00
pjd
ac6b680a94 Hook up gjournal bits to the build.
Sponsored by:	home.pl
2006-10-31 22:22:30 +00:00
pjd
c0defeafe6 Add userland control utility for gjournal GEOM class.
Sponsored by:	home.pl
2006-10-31 21:32:54 +00:00
pjd
0c8c135ad5 Be sure to not create devices with (mediasize % sectorsize) != 0.
Reported by:	xride
MFC after:	1 week
2006-10-10 15:00:32 +00:00
pjd
1eddb4416c Be sure to not create device which 2006-10-10 14:58:21 +00:00
ru
f53bc81fe1 A GEOM cache can speed up read performance by sending fixed size
read requests to its consumer.  It has been developed to address
the problem of a horrible read performance of a 64k blocksize FS
residing on a RAID3 array with 8 data components, where a single
disk component would only get 8k read requests, thus effectively
killing disk performance under high load.  Documentation will be
provided later.  I'd like to thank Vsevolod Lobko for his bright
ideas, and Pawel Jakub Dawidek for helping me fix the nasty bug.
2006-10-06 08:27:07 +00:00
pjd
929c7f22f0 MFp4: G_TYPE_BOOL sounds much better than G_TYPE_NONE.
Changes:	98722
2006-09-30 14:40:50 +00:00
pjd
0160abf37e MFp4:
- Print proper error message when argument is specified twice.
  Before the change it was detected properly, because of how
  G_OPT_DONE() macro worked.
- Use err(3) functions where appropriate.
- Add some assertions.
- Bump version number, because G_TYPE_BOOL addition breaks API and ABI.

Changes:	98721,98722,98723,101360,106985
2006-09-30 14:39:18 +00:00
pjd
59b61d5e58 Add __printflike() attribute to various functions. 2006-09-30 14:35:37 +00:00
ru
731fda35ce Markup fixes. 2006-09-18 11:55:10 +00:00
brueffer
87e4e476d6 Remove a contraction and add a missing article. 2006-09-17 11:30:44 +00:00
pjd
1328564157 Fix copy&paste mistake.
Submitted by:	Matthias Lederhofer <matled@gmx.net>
2006-09-16 10:47:30 +00:00
pjd
2e387b9b85 Add 'configure' subcommand which for now only allows setting and removing
of the BOOT flag. It can be performed on both attached and detached
providers.

Requested by:	Matthias Lederhofer <matled@gmx.net>
MFC after:	1 week
2006-09-16 10:43:17 +00:00
pjd
43d315f0a2 Note that we don't destroy keys on read-only attached providers.
MFC after:	1 week
2006-09-16 09:27:54 +00:00
pjd
034bd1e695 First kill detached providers, because of two reasons:
- after killing all attached providers, all providers are then detached
  and operation is repeated for those who were attached,
- we don't want to remove keys for read-only attached providers, we only
  want to detach them.

MFC after:	1 week
2006-09-16 09:26:57 +00:00
pjd
40cda51553 - Split failure probability configuration into read failure probability and
write failure probability.
- Allow to specify an error number to return of failure.

MFC after:	3 days
2006-09-08 09:21:21 +00:00
maxim
73fe45cc82 o Spell.
Submitted by:	ru
2006-08-10 01:13:38 +00:00
maxim
e14db770e3 o Strip eol whitespaces. 2006-08-09 19:41:34 +00:00
maxim
a1d59e56fe o New sentence, new line.
o Touch Dd for -r.
2006-08-09 18:35:31 +00:00
pjd
b2ae936be5 Allow geli to operate on read-only providers.
Initial patch from:	vd
MFC after:		2 weeks
2006-08-09 18:11:14 +00:00
pjd
1022710a43 Add missing #. 2006-08-07 20:09:09 +00:00
pjd
ec70ef58cb Allow to use the old -a option to specify an encryption algorithm to use
(for backward compatibility), but print a warning to inform about the
change.
2006-06-06 22:06:24 +00:00
brueffer
b3ea269400 Clarify and merge two sentences.
Discussed with:		pjd
2006-06-06 19:03:51 +00:00
brueffer
f3473b2245 Mdoc cleanup and some wording improvements. 2006-06-06 14:02:13 +00:00
pjd
5025e88863 Remove section committed by mistake. It is not yet ready. 2006-06-06 07:10:42 +00:00
pjd
a79e05219d Document geli(8) data authentication.
Supported by:	Wheel Sp. z o.o. (http://www.wheel.pl)
2006-06-05 21:43:51 +00:00
pjd
f75bb255dc Userland bits of geli(8) data authentication.
Now, encryption algorithm is given using '-e' option, not '-a'.
The '-a' option is now used to specify authentication algorithm.

Supported by:	Wheel Sp. z o.o. (http://www.wheel.pl)
2006-06-05 21:40:54 +00:00
pjd
f2ed81d3aa Correct error messages.
MFC after:	2 weeks
2006-05-01 12:05:45 +00:00
pjd
aa5c1066ff Allocate memory for NUL-termination as well.
MFC after:	2 days
2006-04-07 15:33:04 +00:00
ru
388e590f95 Reimplementation of world/kernel build options. For details, see:
http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html

The src.conf(5) manpage is to follow in a few days.

Brought to you by:	imp, jhb, kris, phk, ru (all bugs are mine)
2006-03-17 18:54:44 +00:00
pjd
65255e20ba Add some notes how to properly dump kernel onto gmirror provider.
Reviewed and corrected by:	brueffer
MFC after:	3 days
2006-03-08 08:50:52 +00:00
wkoszek
d8eb71788e Print "clear" and "dump" only once.
Reviewed by:	pjd
Approved by:	cognet (mentor)
MFC after:	3 days
2006-03-03 21:35:57 +00:00
pjd
ab17cb5277 Add an example how to use keyfiles for encrypted providers which should be
attached before the root file system is mounted.

MFC after:	3 days
2006-02-11 13:18:47 +00:00
pjd
8f76601c25 - Allow to use -b without passphrase or with keyfiles as it will be
supported for a moment.
- Don't allow to use -i when no passphrase is given. Now if iterations is
  equal to -1 (not set), we know that we should not ask for the passphrase
  on boot.
  It still doesn't handle situation when one key is protected with
  passphrase and the other is not. There is no quick fix for this.
  The complete solution will be to make number of iterations a per-key
  value. Because this need metadata format change and is only needed for
  devices attached on boot, I'll leave it as it is for now.

MFC after:	3 days
2006-02-11 13:04:10 +00:00
pjd
85ddd3fd4b Deny init/attach/setkey subcommands when no key components are given.
MFC after:	3 days
Tested with:	prove /usr/src/tools/regression/geom_eli
2006-02-01 15:01:55 +00:00
joel
87dcb0582d Expand contractions. 2006-02-01 14:33:14 +00:00
pjd
f31d2a3b5c Remove trailing spaces. 2006-02-01 12:11:37 +00:00
pjd
2c22d1672b Remove unused argument.
MFC after:	3 days
2006-01-31 15:55:52 +00:00
pjd
74978a10e1 Allow to specify only one disk. This is helpful when we want to extend
our concatenated device later.

MFC after:	1 week
2006-01-30 22:47:07 +00:00
pjd
bb27db910a Add a reference to geli(8).
MFC after:	3 days
2006-01-29 00:32:40 +00:00
pjd
7ea810fefd Teach NOP GEOM class how to gather the following statistics:
- number of read I/O requests,
- number of write I/O requests,
- number of read bytes,
- number of written bytes.
Add 'reset' subcommand for resetting statistics.
2005-12-08 23:00:31 +00:00
pjd
03a6ffac1f - The geom(8) utility only uses three types of arguments: string (char *),
value (intmax_t) and boolean (int).
  Based on that provide three functions:
        - gctl_get_ascii()
        - gctl_get_int()
        - gctl_get_intmax()
- Hide gctl_get_param() function, as it is only used internally in
  subr.c.
- Allow to provide argument name as (fmt, ...).
- Assert geom(8) bugs (missing argument is a geom(8) bug).

- Clean-up and simplify the code by using new functions and assumtions
  (no more checking for missing argument).

Tested by:	regression tests
2005-12-07 01:38:27 +00:00
joel
7eed0b9958 s/5.5/6.0/ in HISTORY section.
Discussed with:	ru
2005-11-24 09:25:10 +00:00
ceri
a4edf83a8d gmirror.8:
Note the default balancing algorithm and stripe size.

geom_mirror.c:
  Slightly friendlier error message.

Reviewed by:	pjd
2005-10-25 13:45:07 +00:00