Commit Graph

228 Commits

Author SHA1 Message Date
ae
4527ee8503 It seems that libdisk(3) incorrectly sets d_secperunit value.
Automatically fix it like GEOM_PART_BSD does.

MFC after:	1 week
2012-04-11 06:35:13 +00:00
ed
23524b572c Globally replace u_int*_t from (non-contributed) man pages.
The reasoning behind this, is that if we are consistent in our
documentation about the uint*_t stuff, people will be less tempted to
write new code that uses the non-standard types.

I am not going to bump the man page dates, as these changes can be
considered style nits. The meaning of the man pages is unaffected.

MFC after:	1 month
2012-02-12 18:29:56 +00:00
uqs
5f1ca9b982 Spelling fixes for sbin/ 2012-01-07 16:09:33 +00:00
ed
e7e5b53bf1 Replace index() and rindex() calls with strchr() and strrchr().
The index() and rindex() functions were marked LEGACY in the 2001
revision of POSIX and were subsequently removed from the 2008 revision.
The strchr() and strrchr() functions are part of the C standard.

This makes the source code a lot more consistent, as most of these C
files also call into other str*() routines. In fact, about a dozen
already perform strchr() calls.
2012-01-03 18:51:58 +00:00
sobomax
3592175cf3 Use in-label sectorsize to determine position of the label when
writing label into a file image. The most common use - putting disklabel
into ISO file. Before this change the label would always go to
the offset 512, while geom_part code expects it to be in the 1st
sector (i.e. 2048 incase of ISO). BSD disklabels provide good and
lightweight way to logically split livecds. It is non-intrusive as
far as ISO9660 goes (both boot-wise and metadata-wise) and
completely transparent to anything but BSD, so you can have
BSD-specific area appended after regular ISO.

And with a little bit of GEOM trickery you can do even more
interesting stuff with it.

For example we make "hybrid" bootable CDs using this method.
We create bootable ISO with kernel and such and append UFS
image compressed with UZIP and it works like a charm. We put
label based on the offsef of the BSD part into the ISO. The kernel
boots off normal ISO9660 part, tastes label attaches it,
tastes UZIP, attaches it and finally mounts UFS using GEOM_LABEL.
This provides much better way of eliminating waste than doing
"crunched" build.

MFC after:	1 month
2011-12-31 00:09:33 +00:00
ed
6abf118b1e Add missing static keyword.
All global variables and functions are marked static. Simply because
this is an enum, doesn't mean we can't do so as well.
2011-12-11 19:28:04 +00:00
ae
19e5b9fafd Fix multi-line comment formatting.
MFC after:	2 weeks
2011-11-07 07:51:10 +00:00
ae
92dbb9bc84 Add recommendation to use gpart(8) when user tries write disklabel
or bootcode to already opened provider.

MFC after:	1 week
2011-11-06 20:32:55 +00:00
ae
e81522e7f1 Remove unneeded checks.
MFC after:	1 week
2011-11-06 19:03:07 +00:00
ae
8cbc1bac70 bsdlabel(8) could automatically fill many of disklabel's deprecated
fields, but user could specify some of those fields when edits disklabel
with `bsdlabel -e`. But without -A flag these fields might be
overwritten with default values from the virgin disklabel.
So, don't overwrite such fields if they are not zero. Also add checks
to prevent creating disklabel with less than DEFPARTITIONS and more
than MAXPARTITIONS partitions.

PR:		bin/162332
Tested by:	Eugene Grosbein
MFC after:	1 week
2011-11-06 18:59:42 +00:00
ae
8fdc44b459 To be in sync with GEOM_PART_BSD limit the maximum number of supported
partitions to 20.

MFC after:	1 week
2011-11-06 17:30:32 +00:00
uqs
1252bd6d41 Widen fields that display partition offset/length.
This makes partitions between 50GiB and 2TiB (16TiB for 4k drives) print
correctly aligned.

While here, fix type of secsize. g_sectorsize() returns ssize_t, don't
store this in an unsigned var. Bump WARNS to 6.

MFC after:	4 weeks
2011-03-10 08:24:33 +00:00
uqs
f218dc0c6f Remove dead code in bsdlabel depending on __alpha__ 2011-03-10 08:24:21 +00:00
uqs
4489e3bc5b Remove bsdlabel test-script that was full of broken assumptions.
- the default label now includes an a: partition by default
- the c: partition is no longer exported via devfs
- writing of the labels usually works in all cases, though the script
  assumes half of them have to fail
2011-03-10 08:24:10 +00:00
uqs
f83c8c08c4 Remove bsdlabel.5, which hasn't been installed in over 7 years
and contains little more than an out-dated copy of <sys/disklabel.h>
2011-03-10 08:23:58 +00:00
kevlo
33ed69008d Closing file descriptors when it's done 2010-12-01 08:07:32 +00:00
brucec
621e6d10d8 Fix some more warnings found by clang. 2010-11-22 20:10:48 +00:00
jh
b83dbc1038 Don't attempt to write label with GEOM_BSD based method if the class is
not available. This improves error reporting when bsdlabel(8) is unable
to open a device for writing. If GEOM_BSD was unavailable, only a rather
obscure error message "Class not found" was printed.

PR:		bin/58390
Reviewed by:	ae
Discussed with:	marcel
MFC after:	1 month
2010-08-27 11:08:11 +00:00
imp
c3a399c4ba MFtbemd:
Prefer MACHNE_CPUARCH to MACHINE_ARCH in most contexts where you want
to test of all the CPUs of a given family conform.
2010-08-23 22:24:11 +00:00
jh
f407cc3b8b - Check that strtoul(3) succeeds to convert the entire string in a few
places.
- In getasciilabel(), set the disk type only when a valid type is given.

PR:		bin/86765
MFC after:	2 weeks
2010-08-15 17:49:41 +00:00
jh
0cae6dc51c - Don't assign the return value from read(2) to a variable of type
int.
- Use errx(3) instead of err(3) to print the error message on short
  reads in readlabel(). errno won't be set on short reads which can
  easily occur here due to the fixed size read request.

PR:		144307
Reviewed by:	bde
2010-06-30 18:34:45 +00:00
kevlo
9100ea8887 Use setresuid/setresgid to drop privileges 2010-05-16 08:03:24 +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
marcel
53fdefea9d Remove the dependency on the kernel -- in particular the gctl request to
the GEOM_BSD class -- to translate the absolute offsets in the label to
relative ones. This makes bslabel(8) work correctly with GEOM_PART and
also when the BSD label is nested under arbitrary partitioning schemes.

Inspired by:	Eygene Ryabinkin <rea-fbsd@codelabs.ru>
Approved by:	re (kib)
2009-08-19 16:29:20 +00:00
maxim
45ffeb7fc2 o One more s/gpt/gpart/. 2008-11-05 09:28:30 +00:00
maxim
98f206c208 o Replace Xr to gpt(8) which is gone by gpart(8). 2008-11-05 09:27:13 +00:00
lulf
54c73027a0 - A call to close(2) might overwrite errno and thus give a wrong error message
on g_providername failure.

Suggested by:	pjd
Approved by:	pjd (mentor)
2008-09-30 11:46:14 +00:00
lulf
5eb1ad1462 - Improve error message given on g_providername call failure.
- While there, make error messages consistent with the rest.

Approved by:	kib (mentor)
2008-09-30 07:18:49 +00:00
ru
bc0c6af203 Add missing library dependencies.
PR:		bin/127573
Submitted by:	Eygene Ryabinkin
2008-09-23 13:12:51 +00:00
lulf
22c689e9c4 - Make bsdlabel use libgeom to determine provider name, device path, the media
size and the sector size.
- Fix a bug where bsdlabel would try to read a regular file using the geom_bsd
  class.

Quick review by:	phk
Approved by:	pjd (mentor)
2008-09-18 14:04:02 +00:00
rodrigc
38c1e60cae Remove comment about "-r" flag from readlabel. "-r" is a no-op.
The is comment is left over from the old disklabel command.

Reviewed by:	phk
2008-03-23 03:01:10 +00:00
marcel
9bdadf99de Allow bsdlabel to operate on labels that have at most 26 partitions
by virtue of there not being any (lower-case) letters avaliable for
more partitions.
2007-12-09 22:58:49 +00:00
remko
8070e34b15 Remove redundant whitespace.
Noticed by:	brueffer
2007-12-08 23:41:13 +00:00
remko
22e1b7f7fa Attempt to describe the ''auto'' type a bit better in the default
section (if nothing had been specified, or if the auto type had
been specified, a default layout is used).

PR:		docs/116047
Submitted by:	Ian Smith <smithi at nimnet dot asn dot au>
		Minor modifications by me.
2007-12-08 19:57:22 +00:00
ru
5c31567231 - Fix markup.
- Somewhat improve wording.

- Change the layout of the EXAMPLES section so that descriptions
  come before example, as in most other manpages.

- Fix a bad example that edits a label using a `c' partition.
2006-12-29 16:28:38 +00:00
maxim
0a091591c8 o '-s' flag was killed in rev. 1.75. Clean getopt(3).
PR:		bin/104616
Submitted by:	Oliver Fromme
MFC after:	1 week
2006-10-20 13:10:27 +00:00
ru
18c613474d - Don't mention (wrong) defaults for FFS file system parameters,
replace them with references to newfs(8) which documents them.

- Remove mentions of LFS support for which was retired in 1998.

- Regenerate an example output.

PR:		docs/84913
MFC after:	3 days
2006-10-13 15:44:29 +00:00
ru
25a8d25034 Fix utility's short description.
PR:		docs/84467
Submitted by:	Gary W. Swearingen
MFC after:	3 days
2006-10-12 20:29:20 +00:00
ru
731fda35ce Markup fixes. 2006-09-18 11:55:10 +00:00
ru
4d582ffe09 Remove alpha left-overs. 2006-08-22 08:03:01 +00:00
pjd
fdc6dcb893 Explain why the first partition should start at offset 16.
Requested by:	hrs
2006-03-08 14:17:26 +00:00
pjd
ed6a721c81 Fix evil examples - first partition should start at offset 16.
MFC after:	3 days
2006-03-04 12:09:50 +00:00
ru
4de1ee30af -mdoc sweep. 2005-11-18 10:36:29 +00:00
rodrigc
ef8331fe9f Clarify wording for -m flag.
PR:	docs/84704
2005-09-17 15:10:39 +00:00
iedowse
f498e6f1c8 Attempt to improve the logic for automatically sizing partitions
to take into account the new default of starting the first partition
after the boot blocks instead of at sector 0. If you used automatic
sizing when the first partition did not start at 0, you would get
an error that the automatically sized partition extended beyond the
end of the disk.

Note that there are probably still many more complex cases where
automatic sizing and placement will not work (e.g. non-contiguous
or out of order partitions).
2005-08-14 22:46:50 +00:00
ru
c56f1c1871 Scheduled mdoc(7) sweep. 2005-01-10 16:17:34 +00:00
rse
fad9806e75 Fix the derivation of the GEOM name from the specified device name by
complementing the existing special case of a not existing /dev prefix
with the recognition of an already existing /dev prefix.

This implicitly solves the following two issues related to working on
GEOM devices /dev/foo/bar (which have the GEOM provider name "foo/bar")
with the expected commands like "bsdlabel /dev/foo/bar":

1. the error "Geom not found" when trying to write or edit the BSD
   label (because previously the incorrect GEOM name "bar" instead of
   "foo/bar" was derived from "/dev/foo/bar").

2. the multiple times reported "magically introduced" partition offset
   of 63 blocks and the resulting errors like "partition extends past
   end of unit" and "partition c doesn't start at 0!".

   This implicitly resulted because bsdlabel(8) determines the "MBR
   offset" via GEOM and (intentionally) silently falls back to an offset
   of 0 if it could not be queried (which is the case if the name was
   incorrectly derived).

   Usually (at least on PCs) the offset for the first slice is 63 blocks
   and bsdlabel(8) automatically subtracts them from the absolute
   offsets in the read on-disk BSD label, resulting in the display of an
   effective offset of 0. If the GEOM query fails, the assumed offset of
   0 is subtracted and an incorrect effective offset of 63 is displayed
   and tried to be worked upon.

Reviewed by: pjd
MFC after: 1 week
2005-01-07 12:19:57 +00:00
brooks
0073b704f8 The disk labels generated by bsdlabel can no address more than
0xffffffff sectors.  Document this limit and avoid installing bogus
labels on disks with more sectors.

Allowing the installation of labels addressing as much of the disk as
possiable may be a useful addition in some situations, but this was easy
to implement and should reduce confusion.

PR:		bin/71408
2004-09-09 07:46:53 +00:00
des
d8c5c6847c The multiplier prefix is actually a multiplier suffix. 2004-08-09 14:43:50 +00:00
des
9c026741d8 Use fallthrough to simplify the multiplier logic; optimistically add
support for the T multiplier; improve the error message for unrecognized
multipliers.
2004-08-08 23:14:44 +00:00